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 field_expr(&self) -> Option<FieldExpr> {
3176        support::child(&self.syntax)
3177    }
3178    #[inline]
3179    pub fn index_expr(&self) -> Option<IndexExpr> {
3180        support::child(&self.syntax)
3181    }
3182    #[inline]
3183    pub fn initially_deferred_constraint_option(
3184        &self,
3185    ) -> Option<InitiallyDeferredConstraintOption> {
3186        support::child(&self.syntax)
3187    }
3188    #[inline]
3189    pub fn initially_immediate_constraint_option(
3190        &self,
3191    ) -> Option<InitiallyImmediateConstraintOption> {
3192        support::child(&self.syntax)
3193    }
3194    #[inline]
3195    pub fn name(&self) -> Option<Name> {
3196        support::child(&self.syntax)
3197    }
3198    #[inline]
3199    pub fn name_ref(&self) -> Option<NameRef> {
3200        support::child(&self.syntax)
3201    }
3202    #[inline]
3203    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3204        support::child(&self.syntax)
3205    }
3206    #[inline]
3207    pub fn not_enforced(&self) -> Option<NotEnforced> {
3208        support::child(&self.syntax)
3209    }
3210    #[inline]
3211    pub fn storage(&self) -> Option<Storage> {
3212        support::child(&self.syntax)
3213    }
3214    #[inline]
3215    pub fn ty(&self) -> Option<Type> {
3216        support::child(&self.syntax)
3217    }
3218    #[inline]
3219    pub fn with_options(&self) -> Option<WithOptions> {
3220        support::child(&self.syntax)
3221    }
3222    #[inline]
3223    pub fn period_token(&self) -> Option<SyntaxToken> {
3224        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3225    }
3226}
3227
3228#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3229pub struct ColumnList {
3230    pub(crate) syntax: SyntaxNode,
3231}
3232impl ColumnList {
3233    #[inline]
3234    pub fn columns(&self) -> AstChildren<Column> {
3235        support::children(&self.syntax)
3236    }
3237    #[inline]
3238    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3239        support::token(&self.syntax, SyntaxKind::L_PAREN)
3240    }
3241    #[inline]
3242    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3243        support::token(&self.syntax, SyntaxKind::R_PAREN)
3244    }
3245}
3246
3247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3248pub struct CommentOn {
3249    pub(crate) syntax: SyntaxNode,
3250}
3251impl CommentOn {
3252    #[inline]
3253    pub fn aggregate(&self) -> Option<Aggregate> {
3254        support::child(&self.syntax)
3255    }
3256    #[inline]
3257    pub fn cast_sig(&self) -> Option<CastSig> {
3258        support::child(&self.syntax)
3259    }
3260    #[inline]
3261    pub fn function_sig(&self) -> Option<FunctionSig> {
3262        support::child(&self.syntax)
3263    }
3264    #[inline]
3265    pub fn literal(&self) -> Option<Literal> {
3266        support::child(&self.syntax)
3267    }
3268    #[inline]
3269    pub fn name_ref(&self) -> Option<NameRef> {
3270        support::child(&self.syntax)
3271    }
3272    #[inline]
3273    pub fn op(&self) -> Option<Op> {
3274        support::child(&self.syntax)
3275    }
3276    #[inline]
3277    pub fn path(&self) -> Option<Path> {
3278        support::child(&self.syntax)
3279    }
3280    #[inline]
3281    pub fn ty(&self) -> Option<Type> {
3282        support::child(&self.syntax)
3283    }
3284    #[inline]
3285    pub fn using_method(&self) -> Option<UsingMethod> {
3286        support::child(&self.syntax)
3287    }
3288    #[inline]
3289    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3290        support::token(&self.syntax, SyntaxKind::L_PAREN)
3291    }
3292    #[inline]
3293    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3294        support::token(&self.syntax, SyntaxKind::R_PAREN)
3295    }
3296    #[inline]
3297    pub fn comma_token(&self) -> Option<SyntaxToken> {
3298        support::token(&self.syntax, SyntaxKind::COMMA)
3299    }
3300    #[inline]
3301    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3302        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3303    }
3304    #[inline]
3305    pub fn access_token(&self) -> Option<SyntaxToken> {
3306        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3307    }
3308    #[inline]
3309    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3310        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3311    }
3312    #[inline]
3313    pub fn cast_token(&self) -> Option<SyntaxToken> {
3314        support::token(&self.syntax, SyntaxKind::CAST_KW)
3315    }
3316    #[inline]
3317    pub fn class_token(&self) -> Option<SyntaxToken> {
3318        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3319    }
3320    #[inline]
3321    pub fn collation_token(&self) -> Option<SyntaxToken> {
3322        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3323    }
3324    #[inline]
3325    pub fn column_token(&self) -> Option<SyntaxToken> {
3326        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3327    }
3328    #[inline]
3329    pub fn comment_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3331    }
3332    #[inline]
3333    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3334        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3335    }
3336    #[inline]
3337    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3338        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3339    }
3340    #[inline]
3341    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3342        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3343    }
3344    #[inline]
3345    pub fn data_token(&self) -> Option<SyntaxToken> {
3346        support::token(&self.syntax, SyntaxKind::DATA_KW)
3347    }
3348    #[inline]
3349    pub fn database_token(&self) -> Option<SyntaxToken> {
3350        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3351    }
3352    #[inline]
3353    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3354        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3355    }
3356    #[inline]
3357    pub fn domain_token(&self) -> Option<SyntaxToken> {
3358        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3359    }
3360    #[inline]
3361    pub fn event_token(&self) -> Option<SyntaxToken> {
3362        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3363    }
3364    #[inline]
3365    pub fn extension_token(&self) -> Option<SyntaxToken> {
3366        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3367    }
3368    #[inline]
3369    pub fn family_token(&self) -> Option<SyntaxToken> {
3370        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3371    }
3372    #[inline]
3373    pub fn for_token(&self) -> Option<SyntaxToken> {
3374        support::token(&self.syntax, SyntaxKind::FOR_KW)
3375    }
3376    #[inline]
3377    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3378        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3379    }
3380    #[inline]
3381    pub fn function_token(&self) -> Option<SyntaxToken> {
3382        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3383    }
3384    #[inline]
3385    pub fn graph_token(&self) -> Option<SyntaxToken> {
3386        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3387    }
3388    #[inline]
3389    pub fn index_token(&self) -> Option<SyntaxToken> {
3390        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3391    }
3392    #[inline]
3393    pub fn is_token(&self) -> Option<SyntaxToken> {
3394        support::token(&self.syntax, SyntaxKind::IS_KW)
3395    }
3396    #[inline]
3397    pub fn language_token(&self) -> Option<SyntaxToken> {
3398        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3399    }
3400    #[inline]
3401    pub fn large_token(&self) -> Option<SyntaxToken> {
3402        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3403    }
3404    #[inline]
3405    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3406        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3407    }
3408    #[inline]
3409    pub fn method_token(&self) -> Option<SyntaxToken> {
3410        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3411    }
3412    #[inline]
3413    pub fn null_token(&self) -> Option<SyntaxToken> {
3414        support::token(&self.syntax, SyntaxKind::NULL_KW)
3415    }
3416    #[inline]
3417    pub fn object_token(&self) -> Option<SyntaxToken> {
3418        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3419    }
3420    #[inline]
3421    pub fn on_token(&self) -> Option<SyntaxToken> {
3422        support::token(&self.syntax, SyntaxKind::ON_KW)
3423    }
3424    #[inline]
3425    pub fn operator_token(&self) -> Option<SyntaxToken> {
3426        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3427    }
3428    #[inline]
3429    pub fn parser_token(&self) -> Option<SyntaxToken> {
3430        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3431    }
3432    #[inline]
3433    pub fn policy_token(&self) -> Option<SyntaxToken> {
3434        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3435    }
3436    #[inline]
3437    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3438        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3439    }
3440    #[inline]
3441    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3442        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3443    }
3444    #[inline]
3445    pub fn property_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3447    }
3448    #[inline]
3449    pub fn publication_token(&self) -> Option<SyntaxToken> {
3450        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3451    }
3452    #[inline]
3453    pub fn role_token(&self) -> Option<SyntaxToken> {
3454        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3455    }
3456    #[inline]
3457    pub fn routine_token(&self) -> Option<SyntaxToken> {
3458        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3459    }
3460    #[inline]
3461    pub fn rule_token(&self) -> Option<SyntaxToken> {
3462        support::token(&self.syntax, SyntaxKind::RULE_KW)
3463    }
3464    #[inline]
3465    pub fn schema_token(&self) -> Option<SyntaxToken> {
3466        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3467    }
3468    #[inline]
3469    pub fn search_token(&self) -> Option<SyntaxToken> {
3470        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3471    }
3472    #[inline]
3473    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3474        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3475    }
3476    #[inline]
3477    pub fn server_token(&self) -> Option<SyntaxToken> {
3478        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3479    }
3480    #[inline]
3481    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3482        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3483    }
3484    #[inline]
3485    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3486        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3487    }
3488    #[inline]
3489    pub fn table_token(&self) -> Option<SyntaxToken> {
3490        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3491    }
3492    #[inline]
3493    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3494        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3495    }
3496    #[inline]
3497    pub fn template_token(&self) -> Option<SyntaxToken> {
3498        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3499    }
3500    #[inline]
3501    pub fn text_token(&self) -> Option<SyntaxToken> {
3502        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3503    }
3504    #[inline]
3505    pub fn transform_token(&self) -> Option<SyntaxToken> {
3506        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3507    }
3508    #[inline]
3509    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3510        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3511    }
3512    #[inline]
3513    pub fn type_token(&self) -> Option<SyntaxToken> {
3514        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3515    }
3516    #[inline]
3517    pub fn view_token(&self) -> Option<SyntaxToken> {
3518        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3519    }
3520    #[inline]
3521    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3522        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3523    }
3524}
3525
3526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3527pub struct Commit {
3528    pub(crate) syntax: SyntaxNode,
3529}
3530impl Commit {
3531    #[inline]
3532    pub fn literal(&self) -> Option<Literal> {
3533        support::child(&self.syntax)
3534    }
3535    #[inline]
3536    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3537        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3538    }
3539    #[inline]
3540    pub fn and_token(&self) -> Option<SyntaxToken> {
3541        support::token(&self.syntax, SyntaxKind::AND_KW)
3542    }
3543    #[inline]
3544    pub fn chain_token(&self) -> Option<SyntaxToken> {
3545        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3546    }
3547    #[inline]
3548    pub fn commit_token(&self) -> Option<SyntaxToken> {
3549        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3550    }
3551    #[inline]
3552    pub fn no_token(&self) -> Option<SyntaxToken> {
3553        support::token(&self.syntax, SyntaxKind::NO_KW)
3554    }
3555    #[inline]
3556    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3557        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3558    }
3559    #[inline]
3560    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3561        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3562    }
3563    #[inline]
3564    pub fn work_token(&self) -> Option<SyntaxToken> {
3565        support::token(&self.syntax, SyntaxKind::WORK_KW)
3566    }
3567}
3568
3569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3570pub struct CompoundSelect {
3571    pub(crate) syntax: SyntaxNode,
3572}
3573impl CompoundSelect {
3574    #[inline]
3575    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3576        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3577    }
3578    #[inline]
3579    pub fn all_token(&self) -> Option<SyntaxToken> {
3580        support::token(&self.syntax, SyntaxKind::ALL_KW)
3581    }
3582    #[inline]
3583    pub fn except_token(&self) -> Option<SyntaxToken> {
3584        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3585    }
3586    #[inline]
3587    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3588        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3589    }
3590    #[inline]
3591    pub fn union_token(&self) -> Option<SyntaxToken> {
3592        support::token(&self.syntax, SyntaxKind::UNION_KW)
3593    }
3594}
3595
3596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3597pub struct CompressionMethod {
3598    pub(crate) syntax: SyntaxNode,
3599}
3600impl CompressionMethod {
3601    #[inline]
3602    pub fn compression_token(&self) -> Option<SyntaxToken> {
3603        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3604    }
3605    #[inline]
3606    pub fn default_token(&self) -> Option<SyntaxToken> {
3607        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3608    }
3609    #[inline]
3610    pub fn ident_token(&self) -> Option<SyntaxToken> {
3611        support::token(&self.syntax, SyntaxKind::IDENT)
3612    }
3613}
3614
3615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3616pub struct ConflictDoNothing {
3617    pub(crate) syntax: SyntaxNode,
3618}
3619impl ConflictDoNothing {
3620    #[inline]
3621    pub fn do_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::DO_KW)
3623    }
3624    #[inline]
3625    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3626        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3627    }
3628}
3629
3630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3631pub struct ConflictDoSelect {
3632    pub(crate) syntax: SyntaxNode,
3633}
3634impl ConflictDoSelect {
3635    #[inline]
3636    pub fn locking_clause(&self) -> Option<LockingClause> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn where_clause(&self) -> Option<WhereClause> {
3641        support::child(&self.syntax)
3642    }
3643    #[inline]
3644    pub fn do_token(&self) -> Option<SyntaxToken> {
3645        support::token(&self.syntax, SyntaxKind::DO_KW)
3646    }
3647    #[inline]
3648    pub fn select_token(&self) -> Option<SyntaxToken> {
3649        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3650    }
3651}
3652
3653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3654pub struct ConflictDoUpdateSet {
3655    pub(crate) syntax: SyntaxNode,
3656}
3657impl ConflictDoUpdateSet {
3658    #[inline]
3659    pub fn set_clause(&self) -> Option<SetClause> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn where_clause(&self) -> Option<WhereClause> {
3664        support::child(&self.syntax)
3665    }
3666    #[inline]
3667    pub fn do_token(&self) -> Option<SyntaxToken> {
3668        support::token(&self.syntax, SyntaxKind::DO_KW)
3669    }
3670    #[inline]
3671    pub fn update_token(&self) -> Option<SyntaxToken> {
3672        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3673    }
3674}
3675
3676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3677pub struct ConflictIndexItem {
3678    pub(crate) syntax: SyntaxNode,
3679}
3680impl ConflictIndexItem {
3681    #[inline]
3682    pub fn collate(&self) -> Option<Collate> {
3683        support::child(&self.syntax)
3684    }
3685    #[inline]
3686    pub fn expr(&self) -> Option<Expr> {
3687        support::child(&self.syntax)
3688    }
3689    #[inline]
3690    pub fn ident_token(&self) -> Option<SyntaxToken> {
3691        support::token(&self.syntax, SyntaxKind::IDENT)
3692    }
3693}
3694
3695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3696pub struct ConflictIndexItemList {
3697    pub(crate) syntax: SyntaxNode,
3698}
3699impl ConflictIndexItemList {
3700    #[inline]
3701    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3702        support::children(&self.syntax)
3703    }
3704    #[inline]
3705    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3706        support::token(&self.syntax, SyntaxKind::L_PAREN)
3707    }
3708    #[inline]
3709    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3710        support::token(&self.syntax, SyntaxKind::R_PAREN)
3711    }
3712}
3713
3714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3715pub struct ConflictOnConstraint {
3716    pub(crate) syntax: SyntaxNode,
3717}
3718impl ConflictOnConstraint {
3719    #[inline]
3720    pub fn name_ref(&self) -> Option<NameRef> {
3721        support::child(&self.syntax)
3722    }
3723    #[inline]
3724    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3725        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3726    }
3727    #[inline]
3728    pub fn on_token(&self) -> Option<SyntaxToken> {
3729        support::token(&self.syntax, SyntaxKind::ON_KW)
3730    }
3731}
3732
3733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3734pub struct ConflictOnIndex {
3735    pub(crate) syntax: SyntaxNode,
3736}
3737impl ConflictOnIndex {
3738    #[inline]
3739    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3740        support::child(&self.syntax)
3741    }
3742    #[inline]
3743    pub fn where_clause(&self) -> Option<WhereClause> {
3744        support::child(&self.syntax)
3745    }
3746}
3747
3748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3749pub struct ConstraintExclusion {
3750    pub(crate) syntax: SyntaxNode,
3751}
3752impl ConstraintExclusion {
3753    #[inline]
3754    pub fn expr(&self) -> Option<Expr> {
3755        support::child(&self.syntax)
3756    }
3757    #[inline]
3758    pub fn op(&self) -> Option<Op> {
3759        support::child(&self.syntax)
3760    }
3761    #[inline]
3762    pub fn with_token(&self) -> Option<SyntaxToken> {
3763        support::token(&self.syntax, SyntaxKind::WITH_KW)
3764    }
3765}
3766
3767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3768pub struct ConstraintExclusionList {
3769    pub(crate) syntax: SyntaxNode,
3770}
3771impl ConstraintExclusionList {
3772    #[inline]
3773    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3774        support::children(&self.syntax)
3775    }
3776    #[inline]
3777    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3778        support::token(&self.syntax, SyntaxKind::L_PAREN)
3779    }
3780    #[inline]
3781    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3782        support::token(&self.syntax, SyntaxKind::R_PAREN)
3783    }
3784}
3785
3786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3787pub struct ConstraintIncludeClause {
3788    pub(crate) syntax: SyntaxNode,
3789}
3790impl ConstraintIncludeClause {
3791    #[inline]
3792    pub fn include_token(&self) -> Option<SyntaxToken> {
3793        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3794    }
3795}
3796
3797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3798pub struct ConstraintIndexMethod {
3799    pub(crate) syntax: SyntaxNode,
3800}
3801impl ConstraintIndexMethod {
3802    #[inline]
3803    pub fn using_token(&self) -> Option<SyntaxToken> {
3804        support::token(&self.syntax, SyntaxKind::USING_KW)
3805    }
3806}
3807
3808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3809pub struct ConstraintIndexTablespace {
3810    pub(crate) syntax: SyntaxNode,
3811}
3812impl ConstraintIndexTablespace {
3813    #[inline]
3814    pub fn name_ref(&self) -> Option<NameRef> {
3815        support::child(&self.syntax)
3816    }
3817    #[inline]
3818    pub fn index_token(&self) -> Option<SyntaxToken> {
3819        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3820    }
3821    #[inline]
3822    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3823        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3824    }
3825    #[inline]
3826    pub fn using_token(&self) -> Option<SyntaxToken> {
3827        support::token(&self.syntax, SyntaxKind::USING_KW)
3828    }
3829}
3830
3831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3832pub struct ConstraintName {
3833    pub(crate) syntax: SyntaxNode,
3834}
3835impl ConstraintName {
3836    #[inline]
3837    pub fn name(&self) -> Option<Name> {
3838        support::child(&self.syntax)
3839    }
3840    #[inline]
3841    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3843    }
3844}
3845
3846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3847pub struct Copy {
3848    pub(crate) syntax: SyntaxNode,
3849}
3850impl Copy {
3851    #[inline]
3852    pub fn column_list(&self) -> Option<ColumnList> {
3853        support::child(&self.syntax)
3854    }
3855    #[inline]
3856    pub fn literal(&self) -> Option<Literal> {
3857        support::child(&self.syntax)
3858    }
3859    #[inline]
3860    pub fn path(&self) -> Option<Path> {
3861        support::child(&self.syntax)
3862    }
3863    #[inline]
3864    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3865        support::child(&self.syntax)
3866    }
3867    #[inline]
3868    pub fn where_clause(&self) -> Option<WhereClause> {
3869        support::child(&self.syntax)
3870    }
3871    #[inline]
3872    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3873        support::token(&self.syntax, SyntaxKind::L_PAREN)
3874    }
3875    #[inline]
3876    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3877        support::token(&self.syntax, SyntaxKind::R_PAREN)
3878    }
3879    #[inline]
3880    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3882    }
3883    #[inline]
3884    pub fn binary_token(&self) -> Option<SyntaxToken> {
3885        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3886    }
3887    #[inline]
3888    pub fn copy_token(&self) -> Option<SyntaxToken> {
3889        support::token(&self.syntax, SyntaxKind::COPY_KW)
3890    }
3891    #[inline]
3892    pub fn from_token(&self) -> Option<SyntaxToken> {
3893        support::token(&self.syntax, SyntaxKind::FROM_KW)
3894    }
3895    #[inline]
3896    pub fn program_token(&self) -> Option<SyntaxToken> {
3897        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3898    }
3899    #[inline]
3900    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3901        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3902    }
3903    #[inline]
3904    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3905        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3906    }
3907    #[inline]
3908    pub fn to_token(&self) -> Option<SyntaxToken> {
3909        support::token(&self.syntax, SyntaxKind::TO_KW)
3910    }
3911    #[inline]
3912    pub fn with_token(&self) -> Option<SyntaxToken> {
3913        support::token(&self.syntax, SyntaxKind::WITH_KW)
3914    }
3915}
3916
3917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3918pub struct CopyOption {
3919    pub(crate) syntax: SyntaxNode,
3920}
3921impl CopyOption {
3922    #[inline]
3923    pub fn name(&self) -> Option<Name> {
3924        support::child(&self.syntax)
3925    }
3926}
3927
3928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3929pub struct CopyOptionList {
3930    pub(crate) syntax: SyntaxNode,
3931}
3932impl CopyOptionList {
3933    #[inline]
3934    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3935        support::children(&self.syntax)
3936    }
3937    #[inline]
3938    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3939        support::token(&self.syntax, SyntaxKind::L_PAREN)
3940    }
3941    #[inline]
3942    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3943        support::token(&self.syntax, SyntaxKind::R_PAREN)
3944    }
3945}
3946
3947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3948pub struct CostFuncOption {
3949    pub(crate) syntax: SyntaxNode,
3950}
3951impl CostFuncOption {
3952    #[inline]
3953    pub fn cost_token(&self) -> Option<SyntaxToken> {
3954        support::token(&self.syntax, SyntaxKind::COST_KW)
3955    }
3956}
3957
3958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3959pub struct CreateAccessMethod {
3960    pub(crate) syntax: SyntaxNode,
3961}
3962impl CreateAccessMethod {
3963    #[inline]
3964    pub fn handler_clause(&self) -> Option<HandlerClause> {
3965        support::child(&self.syntax)
3966    }
3967    #[inline]
3968    pub fn name(&self) -> Option<Path> {
3969        support::child(&self.syntax)
3970    }
3971    #[inline]
3972    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3973        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3974    }
3975    #[inline]
3976    pub fn access_token(&self) -> Option<SyntaxToken> {
3977        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3978    }
3979    #[inline]
3980    pub fn create_token(&self) -> Option<SyntaxToken> {
3981        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3982    }
3983    #[inline]
3984    pub fn index_token(&self) -> Option<SyntaxToken> {
3985        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3986    }
3987    #[inline]
3988    pub fn method_token(&self) -> Option<SyntaxToken> {
3989        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3990    }
3991    #[inline]
3992    pub fn table_token(&self) -> Option<SyntaxToken> {
3993        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3994    }
3995    #[inline]
3996    pub fn type_token(&self) -> Option<SyntaxToken> {
3997        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3998    }
3999}
4000
4001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4002pub struct CreateAggregate {
4003    pub(crate) syntax: SyntaxNode,
4004}
4005impl CreateAggregate {
4006    #[inline]
4007    pub fn or_replace(&self) -> Option<OrReplace> {
4008        support::child(&self.syntax)
4009    }
4010    #[inline]
4011    pub fn param_list(&self) -> Option<ParamList> {
4012        support::child(&self.syntax)
4013    }
4014    #[inline]
4015    pub fn path(&self) -> Option<Path> {
4016        support::child(&self.syntax)
4017    }
4018    #[inline]
4019    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4020        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4021    }
4022    #[inline]
4023    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
4024        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
4025    }
4026    #[inline]
4027    pub fn create_token(&self) -> Option<SyntaxToken> {
4028        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4029    }
4030}
4031
4032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4033pub struct CreateCast {
4034    pub(crate) syntax: SyntaxNode,
4035}
4036impl CreateCast {
4037    #[inline]
4038    pub fn cast_sig(&self) -> Option<CastSig> {
4039        support::child(&self.syntax)
4040    }
4041    #[inline]
4042    pub fn function_sig(&self) -> Option<FunctionSig> {
4043        support::child(&self.syntax)
4044    }
4045    #[inline]
4046    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4047        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4048    }
4049    #[inline]
4050    pub fn as_token(&self) -> Option<SyntaxToken> {
4051        support::token(&self.syntax, SyntaxKind::AS_KW)
4052    }
4053    #[inline]
4054    pub fn assignment_token(&self) -> Option<SyntaxToken> {
4055        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
4056    }
4057    #[inline]
4058    pub fn cast_token(&self) -> Option<SyntaxToken> {
4059        support::token(&self.syntax, SyntaxKind::CAST_KW)
4060    }
4061    #[inline]
4062    pub fn create_token(&self) -> Option<SyntaxToken> {
4063        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4064    }
4065    #[inline]
4066    pub fn function_token(&self) -> Option<SyntaxToken> {
4067        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4068    }
4069    #[inline]
4070    pub fn implicit_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
4072    }
4073    #[inline]
4074    pub fn inout_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::INOUT_KW)
4076    }
4077    #[inline]
4078    pub fn with_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::WITH_KW)
4080    }
4081    #[inline]
4082    pub fn without_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
4084    }
4085}
4086
4087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4088pub struct CreateCollation {
4089    pub(crate) syntax: SyntaxNode,
4090}
4091impl CreateCollation {
4092    #[inline]
4093    pub fn path(&self) -> Option<Path> {
4094        support::child(&self.syntax)
4095    }
4096    #[inline]
4097    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4098        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4099    }
4100    #[inline]
4101    pub fn collation_token(&self) -> Option<SyntaxToken> {
4102        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
4103    }
4104    #[inline]
4105    pub fn create_token(&self) -> Option<SyntaxToken> {
4106        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4107    }
4108}
4109
4110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4111pub struct CreateConversion {
4112    pub(crate) syntax: SyntaxNode,
4113}
4114impl CreateConversion {
4115    #[inline]
4116    pub fn literal(&self) -> Option<Literal> {
4117        support::child(&self.syntax)
4118    }
4119    #[inline]
4120    pub fn path(&self) -> Option<Path> {
4121        support::child(&self.syntax)
4122    }
4123    #[inline]
4124    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4125        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4126    }
4127    #[inline]
4128    pub fn conversion_token(&self) -> Option<SyntaxToken> {
4129        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
4130    }
4131    #[inline]
4132    pub fn create_token(&self) -> Option<SyntaxToken> {
4133        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4134    }
4135    #[inline]
4136    pub fn default_token(&self) -> Option<SyntaxToken> {
4137        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4138    }
4139    #[inline]
4140    pub fn for_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::FOR_KW)
4142    }
4143    #[inline]
4144    pub fn from_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::FROM_KW)
4146    }
4147    #[inline]
4148    pub fn to_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::TO_KW)
4150    }
4151}
4152
4153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4154pub struct CreateDatabase {
4155    pub(crate) syntax: SyntaxNode,
4156}
4157impl CreateDatabase {
4158    #[inline]
4159    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
4160        support::child(&self.syntax)
4161    }
4162    #[inline]
4163    pub fn name(&self) -> Option<Name> {
4164        support::child(&self.syntax)
4165    }
4166    #[inline]
4167    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4168        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4169    }
4170    #[inline]
4171    pub fn create_token(&self) -> Option<SyntaxToken> {
4172        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4173    }
4174    #[inline]
4175    pub fn database_token(&self) -> Option<SyntaxToken> {
4176        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
4177    }
4178}
4179
4180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4181pub struct CreateDatabaseOption {
4182    pub(crate) syntax: SyntaxNode,
4183}
4184impl CreateDatabaseOption {
4185    #[inline]
4186    pub fn literal(&self) -> Option<Literal> {
4187        support::child(&self.syntax)
4188    }
4189    #[inline]
4190    pub fn eq_token(&self) -> Option<SyntaxToken> {
4191        support::token(&self.syntax, SyntaxKind::EQ)
4192    }
4193    #[inline]
4194    pub fn connection_token(&self) -> Option<SyntaxToken> {
4195        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4196    }
4197    #[inline]
4198    pub fn default_token(&self) -> Option<SyntaxToken> {
4199        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4200    }
4201    #[inline]
4202    pub fn encoding_token(&self) -> Option<SyntaxToken> {
4203        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
4204    }
4205    #[inline]
4206    pub fn ident_token(&self) -> Option<SyntaxToken> {
4207        support::token(&self.syntax, SyntaxKind::IDENT)
4208    }
4209    #[inline]
4210    pub fn limit_token(&self) -> Option<SyntaxToken> {
4211        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
4212    }
4213    #[inline]
4214    pub fn owner_token(&self) -> Option<SyntaxToken> {
4215        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4216    }
4217    #[inline]
4218    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4219        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4220    }
4221    #[inline]
4222    pub fn template_token(&self) -> Option<SyntaxToken> {
4223        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4224    }
4225}
4226
4227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4228pub struct CreateDatabaseOptionList {
4229    pub(crate) syntax: SyntaxNode,
4230}
4231impl CreateDatabaseOptionList {
4232    #[inline]
4233    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4234        support::children(&self.syntax)
4235    }
4236    #[inline]
4237    pub fn with_token(&self) -> Option<SyntaxToken> {
4238        support::token(&self.syntax, SyntaxKind::WITH_KW)
4239    }
4240}
4241
4242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4243pub struct CreateDomain {
4244    pub(crate) syntax: SyntaxNode,
4245}
4246impl CreateDomain {
4247    #[inline]
4248    pub fn collate(&self) -> Option<Collate> {
4249        support::child(&self.syntax)
4250    }
4251    #[inline]
4252    pub fn constraints(&self) -> AstChildren<Constraint> {
4253        support::children(&self.syntax)
4254    }
4255    #[inline]
4256    pub fn path(&self) -> Option<Path> {
4257        support::child(&self.syntax)
4258    }
4259    #[inline]
4260    pub fn ty(&self) -> Option<Type> {
4261        support::child(&self.syntax)
4262    }
4263    #[inline]
4264    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4265        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4266    }
4267    #[inline]
4268    pub fn as_token(&self) -> Option<SyntaxToken> {
4269        support::token(&self.syntax, SyntaxKind::AS_KW)
4270    }
4271    #[inline]
4272    pub fn create_token(&self) -> Option<SyntaxToken> {
4273        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4274    }
4275    #[inline]
4276    pub fn domain_token(&self) -> Option<SyntaxToken> {
4277        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4278    }
4279}
4280
4281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4282pub struct CreateEventTrigger {
4283    pub(crate) syntax: SyntaxNode,
4284}
4285impl CreateEventTrigger {
4286    #[inline]
4287    pub fn call_expr(&self) -> Option<CallExpr> {
4288        support::child(&self.syntax)
4289    }
4290    #[inline]
4291    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4292        support::child(&self.syntax)
4293    }
4294    #[inline]
4295    pub fn name(&self) -> Option<Name> {
4296        support::child(&self.syntax)
4297    }
4298    #[inline]
4299    pub fn name_ref(&self) -> Option<NameRef> {
4300        support::child(&self.syntax)
4301    }
4302    #[inline]
4303    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4304        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4305    }
4306    #[inline]
4307    pub fn create_token(&self) -> Option<SyntaxToken> {
4308        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4309    }
4310    #[inline]
4311    pub fn event_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4313    }
4314    #[inline]
4315    pub fn execute_token(&self) -> Option<SyntaxToken> {
4316        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4317    }
4318    #[inline]
4319    pub fn function_token(&self) -> Option<SyntaxToken> {
4320        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4321    }
4322    #[inline]
4323    pub fn on_token(&self) -> Option<SyntaxToken> {
4324        support::token(&self.syntax, SyntaxKind::ON_KW)
4325    }
4326    #[inline]
4327    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4328        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4329    }
4330    #[inline]
4331    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4332        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4333    }
4334}
4335
4336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4337pub struct CreateExtension {
4338    pub(crate) syntax: SyntaxNode,
4339}
4340impl CreateExtension {
4341    #[inline]
4342    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4343        support::child(&self.syntax)
4344    }
4345    #[inline]
4346    pub fn name(&self) -> Option<Name> {
4347        support::child(&self.syntax)
4348    }
4349    #[inline]
4350    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4352    }
4353    #[inline]
4354    pub fn create_token(&self) -> Option<SyntaxToken> {
4355        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4356    }
4357    #[inline]
4358    pub fn extension_token(&self) -> Option<SyntaxToken> {
4359        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4360    }
4361}
4362
4363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4364pub struct CreateForeignDataWrapper {
4365    pub(crate) syntax: SyntaxNode,
4366}
4367impl CreateForeignDataWrapper {
4368    #[inline]
4369    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4370        support::child(&self.syntax)
4371    }
4372    #[inline]
4373    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4374        support::child(&self.syntax)
4375    }
4376    #[inline]
4377    pub fn name(&self) -> Option<Name> {
4378        support::child(&self.syntax)
4379    }
4380    #[inline]
4381    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4382        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4383    }
4384    #[inline]
4385    pub fn create_token(&self) -> Option<SyntaxToken> {
4386        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4387    }
4388    #[inline]
4389    pub fn data_token(&self) -> Option<SyntaxToken> {
4390        support::token(&self.syntax, SyntaxKind::DATA_KW)
4391    }
4392    #[inline]
4393    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4394        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4395    }
4396    #[inline]
4397    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4398        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4399    }
4400}
4401
4402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4403pub struct CreateForeignTable {
4404    pub(crate) syntax: SyntaxNode,
4405}
4406impl CreateForeignTable {
4407    #[inline]
4408    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4409        support::child(&self.syntax)
4410    }
4411    #[inline]
4412    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4413        support::child(&self.syntax)
4414    }
4415    #[inline]
4416    pub fn inherits(&self) -> Option<Inherits> {
4417        support::child(&self.syntax)
4418    }
4419    #[inline]
4420    pub fn partition_of(&self) -> Option<PartitionOf> {
4421        support::child(&self.syntax)
4422    }
4423    #[inline]
4424    pub fn partition_type(&self) -> Option<PartitionType> {
4425        support::child(&self.syntax)
4426    }
4427    #[inline]
4428    pub fn path(&self) -> Option<Path> {
4429        support::child(&self.syntax)
4430    }
4431    #[inline]
4432    pub fn server_name(&self) -> Option<ServerName> {
4433        support::child(&self.syntax)
4434    }
4435    #[inline]
4436    pub fn table_arg_list(&self) -> Option<TableArgList> {
4437        support::child(&self.syntax)
4438    }
4439    #[inline]
4440    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4441        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4442    }
4443    #[inline]
4444    pub fn create_token(&self) -> Option<SyntaxToken> {
4445        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4446    }
4447    #[inline]
4448    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4449        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4450    }
4451    #[inline]
4452    pub fn table_token(&self) -> Option<SyntaxToken> {
4453        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4454    }
4455}
4456
4457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4458pub struct CreateFunction {
4459    pub(crate) syntax: SyntaxNode,
4460}
4461impl CreateFunction {
4462    #[inline]
4463    pub fn option_list(&self) -> Option<FuncOptionList> {
4464        support::child(&self.syntax)
4465    }
4466    #[inline]
4467    pub fn or_replace(&self) -> Option<OrReplace> {
4468        support::child(&self.syntax)
4469    }
4470    #[inline]
4471    pub fn param_list(&self) -> Option<ParamList> {
4472        support::child(&self.syntax)
4473    }
4474    #[inline]
4475    pub fn path(&self) -> Option<Path> {
4476        support::child(&self.syntax)
4477    }
4478    #[inline]
4479    pub fn ret_type(&self) -> Option<RetType> {
4480        support::child(&self.syntax)
4481    }
4482    #[inline]
4483    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4484        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4485    }
4486    #[inline]
4487    pub fn create_token(&self) -> Option<SyntaxToken> {
4488        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4489    }
4490    #[inline]
4491    pub fn function_token(&self) -> Option<SyntaxToken> {
4492        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4493    }
4494}
4495
4496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4497pub struct CreateGroup {
4498    pub(crate) syntax: SyntaxNode,
4499}
4500impl CreateGroup {
4501    #[inline]
4502    pub fn name(&self) -> Option<Name> {
4503        support::child(&self.syntax)
4504    }
4505    #[inline]
4506    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4507        support::child(&self.syntax)
4508    }
4509    #[inline]
4510    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4511        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4512    }
4513    #[inline]
4514    pub fn create_token(&self) -> Option<SyntaxToken> {
4515        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4516    }
4517    #[inline]
4518    pub fn group_token(&self) -> Option<SyntaxToken> {
4519        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4520    }
4521}
4522
4523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4524pub struct CreateIndex {
4525    pub(crate) syntax: SyntaxNode,
4526}
4527impl CreateIndex {
4528    #[inline]
4529    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4530        support::child(&self.syntax)
4531    }
4532    #[inline]
4533    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4534        support::child(&self.syntax)
4535    }
4536    #[inline]
4537    pub fn name(&self) -> Option<Name> {
4538        support::child(&self.syntax)
4539    }
4540    #[inline]
4541    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4542        support::child(&self.syntax)
4543    }
4544    #[inline]
4545    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4546        support::child(&self.syntax)
4547    }
4548    #[inline]
4549    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4550        support::child(&self.syntax)
4551    }
4552    #[inline]
4553    pub fn relation_name(&self) -> Option<RelationName> {
4554        support::child(&self.syntax)
4555    }
4556    #[inline]
4557    pub fn tablespace(&self) -> Option<Tablespace> {
4558        support::child(&self.syntax)
4559    }
4560    #[inline]
4561    pub fn using_method(&self) -> Option<UsingMethod> {
4562        support::child(&self.syntax)
4563    }
4564    #[inline]
4565    pub fn where_clause(&self) -> Option<WhereClause> {
4566        support::child(&self.syntax)
4567    }
4568    #[inline]
4569    pub fn with_params(&self) -> Option<WithParams> {
4570        support::child(&self.syntax)
4571    }
4572    #[inline]
4573    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4574        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4575    }
4576    #[inline]
4577    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4578        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4579    }
4580    #[inline]
4581    pub fn create_token(&self) -> Option<SyntaxToken> {
4582        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4583    }
4584    #[inline]
4585    pub fn index_token(&self) -> Option<SyntaxToken> {
4586        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4587    }
4588    #[inline]
4589    pub fn on_token(&self) -> Option<SyntaxToken> {
4590        support::token(&self.syntax, SyntaxKind::ON_KW)
4591    }
4592    #[inline]
4593    pub fn unique_token(&self) -> Option<SyntaxToken> {
4594        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4595    }
4596}
4597
4598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4599pub struct CreateLanguage {
4600    pub(crate) syntax: SyntaxNode,
4601}
4602impl CreateLanguage {
4603    #[inline]
4604    pub fn name(&self) -> Option<Name> {
4605        support::child(&self.syntax)
4606    }
4607    #[inline]
4608    pub fn or_replace(&self) -> Option<OrReplace> {
4609        support::child(&self.syntax)
4610    }
4611    #[inline]
4612    pub fn path(&self) -> Option<Path> {
4613        support::child(&self.syntax)
4614    }
4615    #[inline]
4616    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4617        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4618    }
4619    #[inline]
4620    pub fn create_token(&self) -> Option<SyntaxToken> {
4621        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4622    }
4623    #[inline]
4624    pub fn handler_token(&self) -> Option<SyntaxToken> {
4625        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4626    }
4627    #[inline]
4628    pub fn inline_token(&self) -> Option<SyntaxToken> {
4629        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4630    }
4631    #[inline]
4632    pub fn language_token(&self) -> Option<SyntaxToken> {
4633        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4634    }
4635    #[inline]
4636    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4638    }
4639    #[inline]
4640    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4641        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4642    }
4643    #[inline]
4644    pub fn validator_token(&self) -> Option<SyntaxToken> {
4645        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4646    }
4647}
4648
4649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4650pub struct CreateMaterializedView {
4651    pub(crate) syntax: SyntaxNode,
4652}
4653impl CreateMaterializedView {
4654    #[inline]
4655    pub fn column_list(&self) -> Option<ColumnList> {
4656        support::child(&self.syntax)
4657    }
4658    #[inline]
4659    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4660        support::child(&self.syntax)
4661    }
4662    #[inline]
4663    pub fn path(&self) -> Option<Path> {
4664        support::child(&self.syntax)
4665    }
4666    #[inline]
4667    pub fn query(&self) -> Option<SelectVariant> {
4668        support::child(&self.syntax)
4669    }
4670    #[inline]
4671    pub fn tablespace(&self) -> Option<Tablespace> {
4672        support::child(&self.syntax)
4673    }
4674    #[inline]
4675    pub fn using_method(&self) -> Option<UsingMethod> {
4676        support::child(&self.syntax)
4677    }
4678    #[inline]
4679    pub fn with_data(&self) -> Option<WithData> {
4680        support::child(&self.syntax)
4681    }
4682    #[inline]
4683    pub fn with_no_data(&self) -> Option<WithNoData> {
4684        support::child(&self.syntax)
4685    }
4686    #[inline]
4687    pub fn with_params(&self) -> Option<WithParams> {
4688        support::child(&self.syntax)
4689    }
4690    #[inline]
4691    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4692        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4693    }
4694    #[inline]
4695    pub fn as_token(&self) -> Option<SyntaxToken> {
4696        support::token(&self.syntax, SyntaxKind::AS_KW)
4697    }
4698    #[inline]
4699    pub fn create_token(&self) -> Option<SyntaxToken> {
4700        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4701    }
4702    #[inline]
4703    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4704        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4705    }
4706    #[inline]
4707    pub fn view_token(&self) -> Option<SyntaxToken> {
4708        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4709    }
4710}
4711
4712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4713pub struct CreateOperator {
4714    pub(crate) syntax: SyntaxNode,
4715}
4716impl CreateOperator {
4717    #[inline]
4718    pub fn attribute_list(&self) -> Option<AttributeList> {
4719        support::child(&self.syntax)
4720    }
4721    #[inline]
4722    pub fn op(&self) -> Option<Op> {
4723        support::child(&self.syntax)
4724    }
4725    #[inline]
4726    pub fn path(&self) -> Option<Path> {
4727        support::child(&self.syntax)
4728    }
4729    #[inline]
4730    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4731        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4732    }
4733    #[inline]
4734    pub fn create_token(&self) -> Option<SyntaxToken> {
4735        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4736    }
4737    #[inline]
4738    pub fn operator_token(&self) -> Option<SyntaxToken> {
4739        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4740    }
4741}
4742
4743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4744pub struct CreateOperatorClass {
4745    pub(crate) syntax: SyntaxNode,
4746}
4747impl CreateOperatorClass {
4748    #[inline]
4749    pub fn name_ref(&self) -> Option<NameRef> {
4750        support::child(&self.syntax)
4751    }
4752    #[inline]
4753    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4754        support::child(&self.syntax)
4755    }
4756    #[inline]
4757    pub fn path(&self) -> Option<Path> {
4758        support::child(&self.syntax)
4759    }
4760    #[inline]
4761    pub fn ty(&self) -> Option<Type> {
4762        support::child(&self.syntax)
4763    }
4764    #[inline]
4765    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4766        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4767    }
4768    #[inline]
4769    pub fn as_token(&self) -> Option<SyntaxToken> {
4770        support::token(&self.syntax, SyntaxKind::AS_KW)
4771    }
4772    #[inline]
4773    pub fn class_token(&self) -> Option<SyntaxToken> {
4774        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4775    }
4776    #[inline]
4777    pub fn create_token(&self) -> Option<SyntaxToken> {
4778        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4779    }
4780    #[inline]
4781    pub fn default_token(&self) -> Option<SyntaxToken> {
4782        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4783    }
4784    #[inline]
4785    pub fn family_token(&self) -> Option<SyntaxToken> {
4786        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4787    }
4788    #[inline]
4789    pub fn for_token(&self) -> Option<SyntaxToken> {
4790        support::token(&self.syntax, SyntaxKind::FOR_KW)
4791    }
4792    #[inline]
4793    pub fn operator_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4795    }
4796    #[inline]
4797    pub fn type_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4799    }
4800    #[inline]
4801    pub fn using_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::USING_KW)
4803    }
4804}
4805
4806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4807pub struct CreateOperatorFamily {
4808    pub(crate) syntax: SyntaxNode,
4809}
4810impl CreateOperatorFamily {
4811    #[inline]
4812    pub fn name_ref(&self) -> Option<NameRef> {
4813        support::child(&self.syntax)
4814    }
4815    #[inline]
4816    pub fn path(&self) -> Option<Path> {
4817        support::child(&self.syntax)
4818    }
4819    #[inline]
4820    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4821        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4822    }
4823    #[inline]
4824    pub fn create_token(&self) -> Option<SyntaxToken> {
4825        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4826    }
4827    #[inline]
4828    pub fn family_token(&self) -> Option<SyntaxToken> {
4829        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4830    }
4831    #[inline]
4832    pub fn operator_token(&self) -> Option<SyntaxToken> {
4833        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4834    }
4835    #[inline]
4836    pub fn using_token(&self) -> Option<SyntaxToken> {
4837        support::token(&self.syntax, SyntaxKind::USING_KW)
4838    }
4839}
4840
4841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4842pub struct CreatePolicy {
4843    pub(crate) syntax: SyntaxNode,
4844}
4845impl CreatePolicy {
4846    #[inline]
4847    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4848        support::child(&self.syntax)
4849    }
4850    #[inline]
4851    pub fn name(&self) -> Option<Name> {
4852        support::child(&self.syntax)
4853    }
4854    #[inline]
4855    pub fn on_table(&self) -> Option<OnTable> {
4856        support::child(&self.syntax)
4857    }
4858    #[inline]
4859    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4860        support::child(&self.syntax)
4861    }
4862    #[inline]
4863    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4864        support::child(&self.syntax)
4865    }
4866    #[inline]
4867    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4868        support::child(&self.syntax)
4869    }
4870    #[inline]
4871    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4872        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4873    }
4874    #[inline]
4875    pub fn all_token(&self) -> Option<SyntaxToken> {
4876        support::token(&self.syntax, SyntaxKind::ALL_KW)
4877    }
4878    #[inline]
4879    pub fn create_token(&self) -> Option<SyntaxToken> {
4880        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4881    }
4882    #[inline]
4883    pub fn delete_token(&self) -> Option<SyntaxToken> {
4884        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4885    }
4886    #[inline]
4887    pub fn for_token(&self) -> Option<SyntaxToken> {
4888        support::token(&self.syntax, SyntaxKind::FOR_KW)
4889    }
4890    #[inline]
4891    pub fn insert_token(&self) -> Option<SyntaxToken> {
4892        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4893    }
4894    #[inline]
4895    pub fn policy_token(&self) -> Option<SyntaxToken> {
4896        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4897    }
4898    #[inline]
4899    pub fn select_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4901    }
4902    #[inline]
4903    pub fn to_token(&self) -> Option<SyntaxToken> {
4904        support::token(&self.syntax, SyntaxKind::TO_KW)
4905    }
4906    #[inline]
4907    pub fn update_token(&self) -> Option<SyntaxToken> {
4908        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4909    }
4910}
4911
4912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4913pub struct CreateProcedure {
4914    pub(crate) syntax: SyntaxNode,
4915}
4916impl CreateProcedure {
4917    #[inline]
4918    pub fn option_list(&self) -> Option<FuncOptionList> {
4919        support::child(&self.syntax)
4920    }
4921    #[inline]
4922    pub fn or_replace(&self) -> Option<OrReplace> {
4923        support::child(&self.syntax)
4924    }
4925    #[inline]
4926    pub fn param_list(&self) -> Option<ParamList> {
4927        support::child(&self.syntax)
4928    }
4929    #[inline]
4930    pub fn path(&self) -> Option<Path> {
4931        support::child(&self.syntax)
4932    }
4933    #[inline]
4934    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4935        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4936    }
4937    #[inline]
4938    pub fn create_token(&self) -> Option<SyntaxToken> {
4939        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4940    }
4941    #[inline]
4942    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4943        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4944    }
4945}
4946
4947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4948pub struct CreatePropertyGraph {
4949    pub(crate) syntax: SyntaxNode,
4950}
4951impl CreatePropertyGraph {
4952    #[inline]
4953    pub fn edge_tables(&self) -> Option<EdgeTables> {
4954        support::child(&self.syntax)
4955    }
4956    #[inline]
4957    pub fn path(&self) -> Option<Path> {
4958        support::child(&self.syntax)
4959    }
4960    #[inline]
4961    pub fn persistence(&self) -> Option<Persistence> {
4962        support::child(&self.syntax)
4963    }
4964    #[inline]
4965    pub fn vertex_tables(&self) -> Option<VertexTables> {
4966        support::child(&self.syntax)
4967    }
4968    #[inline]
4969    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4970        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4971    }
4972    #[inline]
4973    pub fn create_token(&self) -> Option<SyntaxToken> {
4974        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4975    }
4976    #[inline]
4977    pub fn graph_token(&self) -> Option<SyntaxToken> {
4978        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4979    }
4980    #[inline]
4981    pub fn property_token(&self) -> Option<SyntaxToken> {
4982        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4983    }
4984}
4985
4986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4987pub struct CreatePublication {
4988    pub(crate) syntax: SyntaxNode,
4989}
4990impl CreatePublication {
4991    #[inline]
4992    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4993        support::child(&self.syntax)
4994    }
4995    #[inline]
4996    pub fn name(&self) -> Option<Name> {
4997        support::child(&self.syntax)
4998    }
4999    #[inline]
5000    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
5001        support::children(&self.syntax)
5002    }
5003    #[inline]
5004    pub fn with_params(&self) -> Option<WithParams> {
5005        support::child(&self.syntax)
5006    }
5007    #[inline]
5008    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5009        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5010    }
5011    #[inline]
5012    pub fn all_token(&self) -> Option<SyntaxToken> {
5013        support::token(&self.syntax, SyntaxKind::ALL_KW)
5014    }
5015    #[inline]
5016    pub fn create_token(&self) -> Option<SyntaxToken> {
5017        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5018    }
5019    #[inline]
5020    pub fn for_token(&self) -> Option<SyntaxToken> {
5021        support::token(&self.syntax, SyntaxKind::FOR_KW)
5022    }
5023    #[inline]
5024    pub fn publication_token(&self) -> Option<SyntaxToken> {
5025        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5026    }
5027    #[inline]
5028    pub fn tables_token(&self) -> Option<SyntaxToken> {
5029        support::token(&self.syntax, SyntaxKind::TABLES_KW)
5030    }
5031}
5032
5033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5034pub struct CreateRole {
5035    pub(crate) syntax: SyntaxNode,
5036}
5037impl CreateRole {
5038    #[inline]
5039    pub fn name(&self) -> Option<Name> {
5040        support::child(&self.syntax)
5041    }
5042    #[inline]
5043    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5044        support::child(&self.syntax)
5045    }
5046    #[inline]
5047    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5048        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5049    }
5050    #[inline]
5051    pub fn create_token(&self) -> Option<SyntaxToken> {
5052        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5053    }
5054    #[inline]
5055    pub fn role_token(&self) -> Option<SyntaxToken> {
5056        support::token(&self.syntax, SyntaxKind::ROLE_KW)
5057    }
5058}
5059
5060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5061pub struct CreateRule {
5062    pub(crate) syntax: SyntaxNode,
5063}
5064impl CreateRule {
5065    #[inline]
5066    pub fn name(&self) -> Option<Name> {
5067        support::child(&self.syntax)
5068    }
5069    #[inline]
5070    pub fn or_replace(&self) -> Option<OrReplace> {
5071        support::child(&self.syntax)
5072    }
5073    #[inline]
5074    pub fn rule_do(&self) -> Option<RuleDo> {
5075        support::child(&self.syntax)
5076    }
5077    #[inline]
5078    pub fn rule_on(&self) -> Option<RuleOn> {
5079        support::child(&self.syntax)
5080    }
5081    #[inline]
5082    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5083        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5084    }
5085    #[inline]
5086    pub fn as_token(&self) -> Option<SyntaxToken> {
5087        support::token(&self.syntax, SyntaxKind::AS_KW)
5088    }
5089    #[inline]
5090    pub fn create_token(&self) -> Option<SyntaxToken> {
5091        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5092    }
5093    #[inline]
5094    pub fn rule_token(&self) -> Option<SyntaxToken> {
5095        support::token(&self.syntax, SyntaxKind::RULE_KW)
5096    }
5097}
5098
5099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5100pub struct CreateSchema {
5101    pub(crate) syntax: SyntaxNode,
5102}
5103impl CreateSchema {
5104    #[inline]
5105    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5106        support::child(&self.syntax)
5107    }
5108    #[inline]
5109    pub fn name(&self) -> Option<Name> {
5110        support::child(&self.syntax)
5111    }
5112    #[inline]
5113    pub fn role(&self) -> Option<Role> {
5114        support::child(&self.syntax)
5115    }
5116    #[inline]
5117    pub fn role_ref(&self) -> Option<RoleRef> {
5118        support::child(&self.syntax)
5119    }
5120    #[inline]
5121    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
5122        support::children(&self.syntax)
5123    }
5124    #[inline]
5125    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5126        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5127    }
5128    #[inline]
5129    pub fn authorization_token(&self) -> Option<SyntaxToken> {
5130        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
5131    }
5132    #[inline]
5133    pub fn create_token(&self) -> Option<SyntaxToken> {
5134        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5135    }
5136    #[inline]
5137    pub fn schema_token(&self) -> Option<SyntaxToken> {
5138        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5139    }
5140}
5141
5142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5143pub struct CreateSequence {
5144    pub(crate) syntax: SyntaxNode,
5145}
5146impl CreateSequence {
5147    #[inline]
5148    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5149        support::child(&self.syntax)
5150    }
5151    #[inline]
5152    pub fn path(&self) -> Option<Path> {
5153        support::child(&self.syntax)
5154    }
5155    #[inline]
5156    pub fn persistence(&self) -> Option<Persistence> {
5157        support::child(&self.syntax)
5158    }
5159    #[inline]
5160    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
5161        support::children(&self.syntax)
5162    }
5163    #[inline]
5164    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5165        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5166    }
5167    #[inline]
5168    pub fn create_token(&self) -> Option<SyntaxToken> {
5169        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5170    }
5171    #[inline]
5172    pub fn sequence_token(&self) -> Option<SyntaxToken> {
5173        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
5174    }
5175}
5176
5177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5178pub struct CreateServer {
5179    pub(crate) syntax: SyntaxNode,
5180}
5181impl CreateServer {
5182    #[inline]
5183    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5184        support::child(&self.syntax)
5185    }
5186    #[inline]
5187    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5188        support::child(&self.syntax)
5189    }
5190    #[inline]
5191    pub fn literal(&self) -> Option<Literal> {
5192        support::child(&self.syntax)
5193    }
5194    #[inline]
5195    pub fn name(&self) -> Option<Name> {
5196        support::child(&self.syntax)
5197    }
5198    #[inline]
5199    pub fn name_ref(&self) -> Option<NameRef> {
5200        support::child(&self.syntax)
5201    }
5202    #[inline]
5203    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5204        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5205    }
5206    #[inline]
5207    pub fn create_token(&self) -> Option<SyntaxToken> {
5208        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5209    }
5210    #[inline]
5211    pub fn data_token(&self) -> Option<SyntaxToken> {
5212        support::token(&self.syntax, SyntaxKind::DATA_KW)
5213    }
5214    #[inline]
5215    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5216        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5217    }
5218    #[inline]
5219    pub fn server_token(&self) -> Option<SyntaxToken> {
5220        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5221    }
5222    #[inline]
5223    pub fn type_token(&self) -> Option<SyntaxToken> {
5224        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5225    }
5226    #[inline]
5227    pub fn version_token(&self) -> Option<SyntaxToken> {
5228        support::token(&self.syntax, SyntaxKind::VERSION_KW)
5229    }
5230    #[inline]
5231    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5232        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5233    }
5234}
5235
5236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5237pub struct CreateStatistics {
5238    pub(crate) syntax: SyntaxNode,
5239}
5240impl CreateStatistics {
5241    #[inline]
5242    pub fn from_table(&self) -> Option<FromTable> {
5243        support::child(&self.syntax)
5244    }
5245    #[inline]
5246    pub fn name_refs(&self) -> AstChildren<NameRef> {
5247        support::children(&self.syntax)
5248    }
5249    #[inline]
5250    pub fn path(&self) -> Option<Path> {
5251        support::child(&self.syntax)
5252    }
5253    #[inline]
5254    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5255        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5256    }
5257    #[inline]
5258    pub fn create_token(&self) -> Option<SyntaxToken> {
5259        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5260    }
5261    #[inline]
5262    pub fn on_token(&self) -> Option<SyntaxToken> {
5263        support::token(&self.syntax, SyntaxKind::ON_KW)
5264    }
5265    #[inline]
5266    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5267        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5268    }
5269}
5270
5271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5272pub struct CreateSubscription {
5273    pub(crate) syntax: SyntaxNode,
5274}
5275impl CreateSubscription {
5276    #[inline]
5277    pub fn literal(&self) -> Option<Literal> {
5278        support::child(&self.syntax)
5279    }
5280    #[inline]
5281    pub fn name(&self) -> Option<Name> {
5282        support::child(&self.syntax)
5283    }
5284    #[inline]
5285    pub fn name_ref(&self) -> Option<NameRef> {
5286        support::child(&self.syntax)
5287    }
5288    #[inline]
5289    pub fn name_refs(&self) -> AstChildren<NameRef> {
5290        support::children(&self.syntax)
5291    }
5292    #[inline]
5293    pub fn with_params(&self) -> Option<WithParams> {
5294        support::child(&self.syntax)
5295    }
5296    #[inline]
5297    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5298        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5299    }
5300    #[inline]
5301    pub fn connection_token(&self) -> Option<SyntaxToken> {
5302        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5303    }
5304    #[inline]
5305    pub fn create_token(&self) -> Option<SyntaxToken> {
5306        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5307    }
5308    #[inline]
5309    pub fn publication_token(&self) -> Option<SyntaxToken> {
5310        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5311    }
5312    #[inline]
5313    pub fn server_token(&self) -> Option<SyntaxToken> {
5314        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5315    }
5316    #[inline]
5317    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5318        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5319    }
5320}
5321
5322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5323pub struct CreateTable {
5324    pub(crate) syntax: SyntaxNode,
5325}
5326impl CreateTable {
5327    #[inline]
5328    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5329        support::child(&self.syntax)
5330    }
5331    #[inline]
5332    pub fn inherits(&self) -> Option<Inherits> {
5333        support::child(&self.syntax)
5334    }
5335    #[inline]
5336    pub fn of_type(&self) -> Option<OfType> {
5337        support::child(&self.syntax)
5338    }
5339    #[inline]
5340    pub fn on_commit(&self) -> Option<OnCommit> {
5341        support::child(&self.syntax)
5342    }
5343    #[inline]
5344    pub fn partition_by(&self) -> Option<PartitionBy> {
5345        support::child(&self.syntax)
5346    }
5347    #[inline]
5348    pub fn partition_of(&self) -> Option<PartitionOf> {
5349        support::child(&self.syntax)
5350    }
5351    #[inline]
5352    pub fn path(&self) -> Option<Path> {
5353        support::child(&self.syntax)
5354    }
5355    #[inline]
5356    pub fn persistence(&self) -> Option<Persistence> {
5357        support::child(&self.syntax)
5358    }
5359    #[inline]
5360    pub fn table_arg_list(&self) -> Option<TableArgList> {
5361        support::child(&self.syntax)
5362    }
5363    #[inline]
5364    pub fn tablespace(&self) -> Option<Tablespace> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn using_method(&self) -> Option<UsingMethod> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn with_params(&self) -> Option<WithParams> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn without_oids(&self) -> Option<WithoutOids> {
5377        support::child(&self.syntax)
5378    }
5379    #[inline]
5380    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5382    }
5383    #[inline]
5384    pub fn create_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5386    }
5387    #[inline]
5388    pub fn table_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5390    }
5391}
5392
5393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5394pub struct CreateTableAs {
5395    pub(crate) syntax: SyntaxNode,
5396}
5397impl CreateTableAs {
5398    #[inline]
5399    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5400        support::child(&self.syntax)
5401    }
5402    #[inline]
5403    pub fn on_commit(&self) -> Option<OnCommit> {
5404        support::child(&self.syntax)
5405    }
5406    #[inline]
5407    pub fn path(&self) -> Option<Path> {
5408        support::child(&self.syntax)
5409    }
5410    #[inline]
5411    pub fn persistence(&self) -> Option<Persistence> {
5412        support::child(&self.syntax)
5413    }
5414    #[inline]
5415    pub fn query(&self) -> Option<SelectVariant> {
5416        support::child(&self.syntax)
5417    }
5418    #[inline]
5419    pub fn tablespace(&self) -> Option<Tablespace> {
5420        support::child(&self.syntax)
5421    }
5422    #[inline]
5423    pub fn using_method(&self) -> Option<UsingMethod> {
5424        support::child(&self.syntax)
5425    }
5426    #[inline]
5427    pub fn with_data(&self) -> Option<WithData> {
5428        support::child(&self.syntax)
5429    }
5430    #[inline]
5431    pub fn with_no_data(&self) -> Option<WithNoData> {
5432        support::child(&self.syntax)
5433    }
5434    #[inline]
5435    pub fn with_params(&self) -> Option<WithParams> {
5436        support::child(&self.syntax)
5437    }
5438    #[inline]
5439    pub fn without_oids(&self) -> Option<WithoutOids> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5444        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5445    }
5446    #[inline]
5447    pub fn as_token(&self) -> Option<SyntaxToken> {
5448        support::token(&self.syntax, SyntaxKind::AS_KW)
5449    }
5450    #[inline]
5451    pub fn create_token(&self) -> Option<SyntaxToken> {
5452        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5453    }
5454    #[inline]
5455    pub fn table_token(&self) -> Option<SyntaxToken> {
5456        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5457    }
5458}
5459
5460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5461pub struct CreateTablespace {
5462    pub(crate) syntax: SyntaxNode,
5463}
5464impl CreateTablespace {
5465    #[inline]
5466    pub fn literal(&self) -> Option<Literal> {
5467        support::child(&self.syntax)
5468    }
5469    #[inline]
5470    pub fn name(&self) -> Option<Name> {
5471        support::child(&self.syntax)
5472    }
5473    #[inline]
5474    pub fn role_ref(&self) -> Option<RoleRef> {
5475        support::child(&self.syntax)
5476    }
5477    #[inline]
5478    pub fn with_params(&self) -> Option<WithParams> {
5479        support::child(&self.syntax)
5480    }
5481    #[inline]
5482    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5483        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5484    }
5485    #[inline]
5486    pub fn create_token(&self) -> Option<SyntaxToken> {
5487        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5488    }
5489    #[inline]
5490    pub fn location_token(&self) -> Option<SyntaxToken> {
5491        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5492    }
5493    #[inline]
5494    pub fn owner_token(&self) -> Option<SyntaxToken> {
5495        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5496    }
5497    #[inline]
5498    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5499        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5500    }
5501}
5502
5503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5504pub struct CreateTextSearchConfiguration {
5505    pub(crate) syntax: SyntaxNode,
5506}
5507impl CreateTextSearchConfiguration {
5508    #[inline]
5509    pub fn attribute_list(&self) -> Option<AttributeList> {
5510        support::child(&self.syntax)
5511    }
5512    #[inline]
5513    pub fn path(&self) -> Option<Path> {
5514        support::child(&self.syntax)
5515    }
5516    #[inline]
5517    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5518        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5519    }
5520    #[inline]
5521    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5522        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5523    }
5524    #[inline]
5525    pub fn create_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5527    }
5528    #[inline]
5529    pub fn search_token(&self) -> Option<SyntaxToken> {
5530        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5531    }
5532    #[inline]
5533    pub fn text_token(&self) -> Option<SyntaxToken> {
5534        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5535    }
5536}
5537
5538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5539pub struct CreateTextSearchDictionary {
5540    pub(crate) syntax: SyntaxNode,
5541}
5542impl CreateTextSearchDictionary {
5543    #[inline]
5544    pub fn attribute_list(&self) -> Option<AttributeList> {
5545        support::child(&self.syntax)
5546    }
5547    #[inline]
5548    pub fn path(&self) -> Option<Path> {
5549        support::child(&self.syntax)
5550    }
5551    #[inline]
5552    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5554    }
5555    #[inline]
5556    pub fn create_token(&self) -> Option<SyntaxToken> {
5557        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5558    }
5559    #[inline]
5560    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5561        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5562    }
5563    #[inline]
5564    pub fn search_token(&self) -> Option<SyntaxToken> {
5565        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5566    }
5567    #[inline]
5568    pub fn text_token(&self) -> Option<SyntaxToken> {
5569        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5570    }
5571}
5572
5573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5574pub struct CreateTextSearchParser {
5575    pub(crate) syntax: SyntaxNode,
5576}
5577impl CreateTextSearchParser {
5578    #[inline]
5579    pub fn attribute_list(&self) -> Option<AttributeList> {
5580        support::child(&self.syntax)
5581    }
5582    #[inline]
5583    pub fn path(&self) -> Option<Path> {
5584        support::child(&self.syntax)
5585    }
5586    #[inline]
5587    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5588        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5589    }
5590    #[inline]
5591    pub fn create_token(&self) -> Option<SyntaxToken> {
5592        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5593    }
5594    #[inline]
5595    pub fn parser_token(&self) -> Option<SyntaxToken> {
5596        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5597    }
5598    #[inline]
5599    pub fn search_token(&self) -> Option<SyntaxToken> {
5600        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5601    }
5602    #[inline]
5603    pub fn text_token(&self) -> Option<SyntaxToken> {
5604        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5605    }
5606}
5607
5608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5609pub struct CreateTextSearchTemplate {
5610    pub(crate) syntax: SyntaxNode,
5611}
5612impl CreateTextSearchTemplate {
5613    #[inline]
5614    pub fn attribute_list(&self) -> Option<AttributeList> {
5615        support::child(&self.syntax)
5616    }
5617    #[inline]
5618    pub fn path(&self) -> Option<Path> {
5619        support::child(&self.syntax)
5620    }
5621    #[inline]
5622    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5623        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5624    }
5625    #[inline]
5626    pub fn create_token(&self) -> Option<SyntaxToken> {
5627        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5628    }
5629    #[inline]
5630    pub fn search_token(&self) -> Option<SyntaxToken> {
5631        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5632    }
5633    #[inline]
5634    pub fn template_token(&self) -> Option<SyntaxToken> {
5635        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5636    }
5637    #[inline]
5638    pub fn text_token(&self) -> Option<SyntaxToken> {
5639        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5640    }
5641}
5642
5643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5644pub struct CreateTransform {
5645    pub(crate) syntax: SyntaxNode,
5646}
5647impl CreateTransform {
5648    #[inline]
5649    pub fn from_func(&self) -> Option<TransformFromFunc> {
5650        support::child(&self.syntax)
5651    }
5652    #[inline]
5653    pub fn language(&self) -> Option<NameRef> {
5654        support::child(&self.syntax)
5655    }
5656    #[inline]
5657    pub fn or_replace(&self) -> Option<OrReplace> {
5658        support::child(&self.syntax)
5659    }
5660    #[inline]
5661    pub fn to_func(&self) -> Option<TransformToFunc> {
5662        support::child(&self.syntax)
5663    }
5664    #[inline]
5665    pub fn ty(&self) -> Option<Type> {
5666        support::child(&self.syntax)
5667    }
5668    #[inline]
5669    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5670        support::token(&self.syntax, SyntaxKind::L_PAREN)
5671    }
5672    #[inline]
5673    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5674        support::token(&self.syntax, SyntaxKind::R_PAREN)
5675    }
5676    #[inline]
5677    pub fn comma_token(&self) -> Option<SyntaxToken> {
5678        support::token(&self.syntax, SyntaxKind::COMMA)
5679    }
5680    #[inline]
5681    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5682        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5683    }
5684    #[inline]
5685    pub fn create_token(&self) -> Option<SyntaxToken> {
5686        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5687    }
5688    #[inline]
5689    pub fn for_token(&self) -> Option<SyntaxToken> {
5690        support::token(&self.syntax, SyntaxKind::FOR_KW)
5691    }
5692    #[inline]
5693    pub fn language_token(&self) -> Option<SyntaxToken> {
5694        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5695    }
5696    #[inline]
5697    pub fn transform_token(&self) -> Option<SyntaxToken> {
5698        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5699    }
5700}
5701
5702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5703pub struct CreateTrigger {
5704    pub(crate) syntax: SyntaxNode,
5705}
5706impl CreateTrigger {
5707    #[inline]
5708    pub fn call_expr(&self) -> Option<CallExpr> {
5709        support::child(&self.syntax)
5710    }
5711    #[inline]
5712    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5713        support::child(&self.syntax)
5714    }
5715    #[inline]
5716    pub fn from_table(&self) -> Option<FromTable> {
5717        support::child(&self.syntax)
5718    }
5719    #[inline]
5720    pub fn initially_deferred_constraint_option(
5721        &self,
5722    ) -> Option<InitiallyDeferredConstraintOption> {
5723        support::child(&self.syntax)
5724    }
5725    #[inline]
5726    pub fn initially_immediate_constraint_option(
5727        &self,
5728    ) -> Option<InitiallyImmediateConstraintOption> {
5729        support::child(&self.syntax)
5730    }
5731    #[inline]
5732    pub fn name(&self) -> Option<Name> {
5733        support::child(&self.syntax)
5734    }
5735    #[inline]
5736    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5737        support::child(&self.syntax)
5738    }
5739    #[inline]
5740    pub fn on_table(&self) -> Option<OnTable> {
5741        support::child(&self.syntax)
5742    }
5743    #[inline]
5744    pub fn or_replace(&self) -> Option<OrReplace> {
5745        support::child(&self.syntax)
5746    }
5747    #[inline]
5748    pub fn referencing(&self) -> Option<Referencing> {
5749        support::child(&self.syntax)
5750    }
5751    #[inline]
5752    pub fn timing(&self) -> Option<Timing> {
5753        support::child(&self.syntax)
5754    }
5755    #[inline]
5756    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5757        support::child(&self.syntax)
5758    }
5759    #[inline]
5760    pub fn when_condition(&self) -> Option<WhenCondition> {
5761        support::child(&self.syntax)
5762    }
5763    #[inline]
5764    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5765        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5766    }
5767    #[inline]
5768    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5769        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5770    }
5771    #[inline]
5772    pub fn create_token(&self) -> Option<SyntaxToken> {
5773        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5774    }
5775    #[inline]
5776    pub fn each_token(&self) -> Option<SyntaxToken> {
5777        support::token(&self.syntax, SyntaxKind::EACH_KW)
5778    }
5779    #[inline]
5780    pub fn execute_token(&self) -> Option<SyntaxToken> {
5781        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5782    }
5783    #[inline]
5784    pub fn for_token(&self) -> Option<SyntaxToken> {
5785        support::token(&self.syntax, SyntaxKind::FOR_KW)
5786    }
5787    #[inline]
5788    pub fn function_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5790    }
5791    #[inline]
5792    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5794    }
5795    #[inline]
5796    pub fn row_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::ROW_KW)
5798    }
5799    #[inline]
5800    pub fn statement_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5802    }
5803    #[inline]
5804    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5805        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5806    }
5807}
5808
5809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5810pub struct CreateType {
5811    pub(crate) syntax: SyntaxNode,
5812}
5813impl CreateType {
5814    #[inline]
5815    pub fn attribute_list(&self) -> Option<AttributeList> {
5816        support::child(&self.syntax)
5817    }
5818    #[inline]
5819    pub fn column_list(&self) -> Option<ColumnList> {
5820        support::child(&self.syntax)
5821    }
5822    #[inline]
5823    pub fn path(&self) -> Option<Path> {
5824        support::child(&self.syntax)
5825    }
5826    #[inline]
5827    pub fn variant_list(&self) -> Option<VariantList> {
5828        support::child(&self.syntax)
5829    }
5830    #[inline]
5831    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5832        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5833    }
5834    #[inline]
5835    pub fn as_token(&self) -> Option<SyntaxToken> {
5836        support::token(&self.syntax, SyntaxKind::AS_KW)
5837    }
5838    #[inline]
5839    pub fn create_token(&self) -> Option<SyntaxToken> {
5840        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5841    }
5842    #[inline]
5843    pub fn enum_token(&self) -> Option<SyntaxToken> {
5844        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5845    }
5846    #[inline]
5847    pub fn range_token(&self) -> Option<SyntaxToken> {
5848        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5849    }
5850    #[inline]
5851    pub fn type_token(&self) -> Option<SyntaxToken> {
5852        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5853    }
5854}
5855
5856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5857pub struct CreateUser {
5858    pub(crate) syntax: SyntaxNode,
5859}
5860impl CreateUser {
5861    #[inline]
5862    pub fn name(&self) -> Option<Name> {
5863        support::child(&self.syntax)
5864    }
5865    #[inline]
5866    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5867        support::child(&self.syntax)
5868    }
5869    #[inline]
5870    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5871        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5872    }
5873    #[inline]
5874    pub fn create_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5876    }
5877    #[inline]
5878    pub fn user_token(&self) -> Option<SyntaxToken> {
5879        support::token(&self.syntax, SyntaxKind::USER_KW)
5880    }
5881}
5882
5883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5884pub struct CreateUserMapping {
5885    pub(crate) syntax: SyntaxNode,
5886}
5887impl CreateUserMapping {
5888    #[inline]
5889    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5890        support::child(&self.syntax)
5891    }
5892    #[inline]
5893    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5894        support::child(&self.syntax)
5895    }
5896    #[inline]
5897    pub fn role_ref(&self) -> Option<RoleRef> {
5898        support::child(&self.syntax)
5899    }
5900    #[inline]
5901    pub fn server_name(&self) -> Option<ServerName> {
5902        support::child(&self.syntax)
5903    }
5904    #[inline]
5905    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5906        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5907    }
5908    #[inline]
5909    pub fn create_token(&self) -> Option<SyntaxToken> {
5910        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5911    }
5912    #[inline]
5913    pub fn for_token(&self) -> Option<SyntaxToken> {
5914        support::token(&self.syntax, SyntaxKind::FOR_KW)
5915    }
5916    #[inline]
5917    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5918        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5919    }
5920    #[inline]
5921    pub fn user_token(&self) -> Option<SyntaxToken> {
5922        support::token(&self.syntax, SyntaxKind::USER_KW)
5923    }
5924}
5925
5926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5927pub struct CreateView {
5928    pub(crate) syntax: SyntaxNode,
5929}
5930impl CreateView {
5931    #[inline]
5932    pub fn column_list(&self) -> Option<ColumnList> {
5933        support::child(&self.syntax)
5934    }
5935    #[inline]
5936    pub fn or_replace(&self) -> Option<OrReplace> {
5937        support::child(&self.syntax)
5938    }
5939    #[inline]
5940    pub fn path(&self) -> Option<Path> {
5941        support::child(&self.syntax)
5942    }
5943    #[inline]
5944    pub fn persistence(&self) -> Option<Persistence> {
5945        support::child(&self.syntax)
5946    }
5947    #[inline]
5948    pub fn query(&self) -> Option<SelectVariant> {
5949        support::child(&self.syntax)
5950    }
5951    #[inline]
5952    pub fn with_params(&self) -> Option<WithParams> {
5953        support::child(&self.syntax)
5954    }
5955    #[inline]
5956    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5957        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5958    }
5959    #[inline]
5960    pub fn as_token(&self) -> Option<SyntaxToken> {
5961        support::token(&self.syntax, SyntaxKind::AS_KW)
5962    }
5963    #[inline]
5964    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5965        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5966    }
5967    #[inline]
5968    pub fn check_token(&self) -> Option<SyntaxToken> {
5969        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5970    }
5971    #[inline]
5972    pub fn create_token(&self) -> Option<SyntaxToken> {
5973        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5974    }
5975    #[inline]
5976    pub fn local_token(&self) -> Option<SyntaxToken> {
5977        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5978    }
5979    #[inline]
5980    pub fn option_token(&self) -> Option<SyntaxToken> {
5981        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5982    }
5983    #[inline]
5984    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5985        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5986    }
5987    #[inline]
5988    pub fn view_token(&self) -> Option<SyntaxToken> {
5989        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5990    }
5991    #[inline]
5992    pub fn with_token(&self) -> Option<SyntaxToken> {
5993        support::token(&self.syntax, SyntaxKind::WITH_KW)
5994    }
5995}
5996
5997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5998pub struct CustomOp {
5999    pub(crate) syntax: SyntaxNode,
6000}
6001impl CustomOp {
6002    #[inline]
6003    pub fn bang_token(&self) -> Option<SyntaxToken> {
6004        support::token(&self.syntax, SyntaxKind::BANG)
6005    }
6006    #[inline]
6007    pub fn pound_token(&self) -> Option<SyntaxToken> {
6008        support::token(&self.syntax, SyntaxKind::POUND)
6009    }
6010    #[inline]
6011    pub fn percent_token(&self) -> Option<SyntaxToken> {
6012        support::token(&self.syntax, SyntaxKind::PERCENT)
6013    }
6014    #[inline]
6015    pub fn amp_token(&self) -> Option<SyntaxToken> {
6016        support::token(&self.syntax, SyntaxKind::AMP)
6017    }
6018    #[inline]
6019    pub fn star_token(&self) -> Option<SyntaxToken> {
6020        support::token(&self.syntax, SyntaxKind::STAR)
6021    }
6022    #[inline]
6023    pub fn plus_token(&self) -> Option<SyntaxToken> {
6024        support::token(&self.syntax, SyntaxKind::PLUS)
6025    }
6026    #[inline]
6027    pub fn minus_token(&self) -> Option<SyntaxToken> {
6028        support::token(&self.syntax, SyntaxKind::MINUS)
6029    }
6030    #[inline]
6031    pub fn slash_token(&self) -> Option<SyntaxToken> {
6032        support::token(&self.syntax, SyntaxKind::SLASH)
6033    }
6034    #[inline]
6035    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6037    }
6038    #[inline]
6039    pub fn eq_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::EQ)
6041    }
6042    #[inline]
6043    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::R_ANGLE)
6045    }
6046    #[inline]
6047    pub fn question_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::QUESTION)
6049    }
6050    #[inline]
6051    pub fn at_token(&self) -> Option<SyntaxToken> {
6052        support::token(&self.syntax, SyntaxKind::AT)
6053    }
6054    #[inline]
6055    pub fn caret_token(&self) -> Option<SyntaxToken> {
6056        support::token(&self.syntax, SyntaxKind::CARET)
6057    }
6058    #[inline]
6059    pub fn backtick_token(&self) -> Option<SyntaxToken> {
6060        support::token(&self.syntax, SyntaxKind::BACKTICK)
6061    }
6062    #[inline]
6063    pub fn pipe_token(&self) -> Option<SyntaxToken> {
6064        support::token(&self.syntax, SyntaxKind::PIPE)
6065    }
6066    #[inline]
6067    pub fn tilde_token(&self) -> Option<SyntaxToken> {
6068        support::token(&self.syntax, SyntaxKind::TILDE)
6069    }
6070}
6071
6072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6073pub struct Deallocate {
6074    pub(crate) syntax: SyntaxNode,
6075}
6076impl Deallocate {
6077    #[inline]
6078    pub fn name_ref(&self) -> Option<NameRef> {
6079        support::child(&self.syntax)
6080    }
6081    #[inline]
6082    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6083        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6084    }
6085    #[inline]
6086    pub fn all_token(&self) -> Option<SyntaxToken> {
6087        support::token(&self.syntax, SyntaxKind::ALL_KW)
6088    }
6089    #[inline]
6090    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
6091        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
6092    }
6093    #[inline]
6094    pub fn prepare_token(&self) -> Option<SyntaxToken> {
6095        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
6096    }
6097}
6098
6099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6100pub struct Declare {
6101    pub(crate) syntax: SyntaxNode,
6102}
6103impl Declare {
6104    #[inline]
6105    pub fn name(&self) -> Option<Name> {
6106        support::child(&self.syntax)
6107    }
6108    #[inline]
6109    pub fn query(&self) -> Option<SelectVariant> {
6110        support::child(&self.syntax)
6111    }
6112    #[inline]
6113    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6114        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6115    }
6116    #[inline]
6117    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
6118        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
6119    }
6120    #[inline]
6121    pub fn binary_token(&self) -> Option<SyntaxToken> {
6122        support::token(&self.syntax, SyntaxKind::BINARY_KW)
6123    }
6124    #[inline]
6125    pub fn cursor_token(&self) -> Option<SyntaxToken> {
6126        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
6127    }
6128    #[inline]
6129    pub fn declare_token(&self) -> Option<SyntaxToken> {
6130        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
6131    }
6132    #[inline]
6133    pub fn for_token(&self) -> Option<SyntaxToken> {
6134        support::token(&self.syntax, SyntaxKind::FOR_KW)
6135    }
6136    #[inline]
6137    pub fn hold_token(&self) -> Option<SyntaxToken> {
6138        support::token(&self.syntax, SyntaxKind::HOLD_KW)
6139    }
6140    #[inline]
6141    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
6143    }
6144    #[inline]
6145    pub fn no_token(&self) -> Option<SyntaxToken> {
6146        support::token(&self.syntax, SyntaxKind::NO_KW)
6147    }
6148    #[inline]
6149    pub fn scroll_token(&self) -> Option<SyntaxToken> {
6150        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
6151    }
6152    #[inline]
6153    pub fn with_token(&self) -> Option<SyntaxToken> {
6154        support::token(&self.syntax, SyntaxKind::WITH_KW)
6155    }
6156    #[inline]
6157    pub fn without_token(&self) -> Option<SyntaxToken> {
6158        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6159    }
6160}
6161
6162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6163pub struct DefaultConstraint {
6164    pub(crate) syntax: SyntaxNode,
6165}
6166impl DefaultConstraint {
6167    #[inline]
6168    pub fn expr(&self) -> Option<Expr> {
6169        support::child(&self.syntax)
6170    }
6171    #[inline]
6172    pub fn name_ref(&self) -> Option<NameRef> {
6173        support::child(&self.syntax)
6174    }
6175    #[inline]
6176    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6177        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6178    }
6179    #[inline]
6180    pub fn default_token(&self) -> Option<SyntaxToken> {
6181        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6182    }
6183}
6184
6185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6186pub struct Deferrable {
6187    pub(crate) syntax: SyntaxNode,
6188}
6189impl Deferrable {
6190    #[inline]
6191    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6192        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6193    }
6194}
6195
6196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6197pub struct DeferrableConstraintOption {
6198    pub(crate) syntax: SyntaxNode,
6199}
6200impl DeferrableConstraintOption {
6201    #[inline]
6202    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6203        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6204    }
6205}
6206
6207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6208pub struct Delete {
6209    pub(crate) syntax: SyntaxNode,
6210}
6211impl Delete {
6212    #[inline]
6213    pub fn alias(&self) -> Option<Alias> {
6214        support::child(&self.syntax)
6215    }
6216    #[inline]
6217    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
6218        support::child(&self.syntax)
6219    }
6220    #[inline]
6221    pub fn relation_name(&self) -> Option<RelationName> {
6222        support::child(&self.syntax)
6223    }
6224    #[inline]
6225    pub fn returning_clause(&self) -> Option<ReturningClause> {
6226        support::child(&self.syntax)
6227    }
6228    #[inline]
6229    pub fn using_clause(&self) -> Option<UsingClause> {
6230        support::child(&self.syntax)
6231    }
6232    #[inline]
6233    pub fn where_clause(&self) -> Option<WhereClause> {
6234        support::child(&self.syntax)
6235    }
6236    #[inline]
6237    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
6238        support::child(&self.syntax)
6239    }
6240    #[inline]
6241    pub fn with_clause(&self) -> Option<WithClause> {
6242        support::child(&self.syntax)
6243    }
6244    #[inline]
6245    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6246        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6247    }
6248    #[inline]
6249    pub fn delete_token(&self) -> Option<SyntaxToken> {
6250        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6251    }
6252    #[inline]
6253    pub fn from_token(&self) -> Option<SyntaxToken> {
6254        support::token(&self.syntax, SyntaxKind::FROM_KW)
6255    }
6256}
6257
6258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6259pub struct DeleteRows {
6260    pub(crate) syntax: SyntaxNode,
6261}
6262impl DeleteRows {
6263    #[inline]
6264    pub fn delete_token(&self) -> Option<SyntaxToken> {
6265        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6266    }
6267    #[inline]
6268    pub fn rows_token(&self) -> Option<SyntaxToken> {
6269        support::token(&self.syntax, SyntaxKind::ROWS_KW)
6270    }
6271}
6272
6273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6274pub struct DependsOnExtension {
6275    pub(crate) syntax: SyntaxNode,
6276}
6277impl DependsOnExtension {
6278    #[inline]
6279    pub fn name_ref(&self) -> Option<NameRef> {
6280        support::child(&self.syntax)
6281    }
6282    #[inline]
6283    pub fn depends_token(&self) -> Option<SyntaxToken> {
6284        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
6285    }
6286    #[inline]
6287    pub fn extension_token(&self) -> Option<SyntaxToken> {
6288        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6289    }
6290    #[inline]
6291    pub fn on_token(&self) -> Option<SyntaxToken> {
6292        support::token(&self.syntax, SyntaxKind::ON_KW)
6293    }
6294}
6295
6296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6297pub struct DestVertexTable {
6298    pub(crate) syntax: SyntaxNode,
6299}
6300impl DestVertexTable {
6301    #[inline]
6302    pub fn column_list(&self) -> Option<ColumnList> {
6303        support::child(&self.syntax)
6304    }
6305    #[inline]
6306    pub fn name_ref(&self) -> Option<NameRef> {
6307        support::child(&self.syntax)
6308    }
6309    #[inline]
6310    pub fn references_table(&self) -> Option<ReferencesTable> {
6311        support::child(&self.syntax)
6312    }
6313    #[inline]
6314    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6315        support::token(&self.syntax, SyntaxKind::L_PAREN)
6316    }
6317    #[inline]
6318    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6319        support::token(&self.syntax, SyntaxKind::R_PAREN)
6320    }
6321    #[inline]
6322    pub fn destination_token(&self) -> Option<SyntaxToken> {
6323        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
6324    }
6325    #[inline]
6326    pub fn key_token(&self) -> Option<SyntaxToken> {
6327        support::token(&self.syntax, SyntaxKind::KEY_KW)
6328    }
6329}
6330
6331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6332pub struct DetachPartition {
6333    pub(crate) syntax: SyntaxNode,
6334}
6335impl DetachPartition {
6336    #[inline]
6337    pub fn path(&self) -> Option<Path> {
6338        support::child(&self.syntax)
6339    }
6340    #[inline]
6341    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6342        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6343    }
6344    #[inline]
6345    pub fn detach_token(&self) -> Option<SyntaxToken> {
6346        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6347    }
6348    #[inline]
6349    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6350        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6351    }
6352    #[inline]
6353    pub fn partition_token(&self) -> Option<SyntaxToken> {
6354        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6355    }
6356}
6357
6358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6359pub struct DisableRls {
6360    pub(crate) syntax: SyntaxNode,
6361}
6362impl DisableRls {
6363    #[inline]
6364    pub fn disable_token(&self) -> Option<SyntaxToken> {
6365        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6366    }
6367    #[inline]
6368    pub fn level_token(&self) -> Option<SyntaxToken> {
6369        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6370    }
6371    #[inline]
6372    pub fn row_token(&self) -> Option<SyntaxToken> {
6373        support::token(&self.syntax, SyntaxKind::ROW_KW)
6374    }
6375    #[inline]
6376    pub fn security_token(&self) -> Option<SyntaxToken> {
6377        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6378    }
6379}
6380
6381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6382pub struct DisableRule {
6383    pub(crate) syntax: SyntaxNode,
6384}
6385impl DisableRule {
6386    #[inline]
6387    pub fn disable_token(&self) -> Option<SyntaxToken> {
6388        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6389    }
6390    #[inline]
6391    pub fn rule_token(&self) -> Option<SyntaxToken> {
6392        support::token(&self.syntax, SyntaxKind::RULE_KW)
6393    }
6394}
6395
6396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6397pub struct DisableTrigger {
6398    pub(crate) syntax: SyntaxNode,
6399}
6400impl DisableTrigger {
6401    #[inline]
6402    pub fn disable_token(&self) -> Option<SyntaxToken> {
6403        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6404    }
6405    #[inline]
6406    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6407        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6408    }
6409}
6410
6411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6412pub struct Discard {
6413    pub(crate) syntax: SyntaxNode,
6414}
6415impl Discard {
6416    #[inline]
6417    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6418        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6419    }
6420    #[inline]
6421    pub fn all_token(&self) -> Option<SyntaxToken> {
6422        support::token(&self.syntax, SyntaxKind::ALL_KW)
6423    }
6424    #[inline]
6425    pub fn discard_token(&self) -> Option<SyntaxToken> {
6426        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6427    }
6428    #[inline]
6429    pub fn plans_token(&self) -> Option<SyntaxToken> {
6430        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6431    }
6432    #[inline]
6433    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6434        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6435    }
6436    #[inline]
6437    pub fn temp_token(&self) -> Option<SyntaxToken> {
6438        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6439    }
6440    #[inline]
6441    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6442        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6443    }
6444}
6445
6446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6447pub struct DistinctClause {
6448    pub(crate) syntax: SyntaxNode,
6449}
6450impl DistinctClause {
6451    #[inline]
6452    pub fn exprs(&self) -> AstChildren<Expr> {
6453        support::children(&self.syntax)
6454    }
6455    #[inline]
6456    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6457        support::token(&self.syntax, SyntaxKind::L_PAREN)
6458    }
6459    #[inline]
6460    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6461        support::token(&self.syntax, SyntaxKind::R_PAREN)
6462    }
6463    #[inline]
6464    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6465        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6466    }
6467    #[inline]
6468    pub fn on_token(&self) -> Option<SyntaxToken> {
6469        support::token(&self.syntax, SyntaxKind::ON_KW)
6470    }
6471}
6472
6473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6474pub struct Do {
6475    pub(crate) syntax: SyntaxNode,
6476}
6477impl Do {
6478    #[inline]
6479    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6480        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6481    }
6482    #[inline]
6483    pub fn do_token(&self) -> Option<SyntaxToken> {
6484        support::token(&self.syntax, SyntaxKind::DO_KW)
6485    }
6486}
6487
6488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6489pub struct DoubleType {
6490    pub(crate) syntax: SyntaxNode,
6491}
6492impl DoubleType {
6493    #[inline]
6494    pub fn double_token(&self) -> Option<SyntaxToken> {
6495        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6496    }
6497    #[inline]
6498    pub fn precision_token(&self) -> Option<SyntaxToken> {
6499        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6500    }
6501    #[inline]
6502    pub fn setof_token(&self) -> Option<SyntaxToken> {
6503        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6504    }
6505}
6506
6507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6508pub struct Drop {
6509    pub(crate) syntax: SyntaxNode,
6510}
6511impl Drop {
6512    #[inline]
6513    pub fn drop_token(&self) -> Option<SyntaxToken> {
6514        support::token(&self.syntax, SyntaxKind::DROP_KW)
6515    }
6516}
6517
6518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6519pub struct DropAccessMethod {
6520    pub(crate) syntax: SyntaxNode,
6521}
6522impl DropAccessMethod {
6523    #[inline]
6524    pub fn if_exists(&self) -> Option<IfExists> {
6525        support::child(&self.syntax)
6526    }
6527    #[inline]
6528    pub fn name_ref(&self) -> Option<NameRef> {
6529        support::child(&self.syntax)
6530    }
6531    #[inline]
6532    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6534    }
6535    #[inline]
6536    pub fn access_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6538    }
6539    #[inline]
6540    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6541        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6542    }
6543    #[inline]
6544    pub fn drop_token(&self) -> Option<SyntaxToken> {
6545        support::token(&self.syntax, SyntaxKind::DROP_KW)
6546    }
6547    #[inline]
6548    pub fn method_token(&self) -> Option<SyntaxToken> {
6549        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6550    }
6551    #[inline]
6552    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6553        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6554    }
6555}
6556
6557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6558pub struct DropAggregate {
6559    pub(crate) syntax: SyntaxNode,
6560}
6561impl DropAggregate {
6562    #[inline]
6563    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6564        support::children(&self.syntax)
6565    }
6566    #[inline]
6567    pub fn if_exists(&self) -> Option<IfExists> {
6568        support::child(&self.syntax)
6569    }
6570    #[inline]
6571    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6572        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6573    }
6574    #[inline]
6575    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6576        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6577    }
6578    #[inline]
6579    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6580        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6581    }
6582    #[inline]
6583    pub fn drop_token(&self) -> Option<SyntaxToken> {
6584        support::token(&self.syntax, SyntaxKind::DROP_KW)
6585    }
6586    #[inline]
6587    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6588        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6589    }
6590}
6591
6592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6593pub struct DropAttribute {
6594    pub(crate) syntax: SyntaxNode,
6595}
6596impl DropAttribute {
6597    #[inline]
6598    pub fn cascade(&self) -> Option<Cascade> {
6599        support::child(&self.syntax)
6600    }
6601    #[inline]
6602    pub fn if_exists(&self) -> Option<IfExists> {
6603        support::child(&self.syntax)
6604    }
6605    #[inline]
6606    pub fn restrict(&self) -> Option<Restrict> {
6607        support::child(&self.syntax)
6608    }
6609    #[inline]
6610    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6611        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6612    }
6613    #[inline]
6614    pub fn drop_token(&self) -> Option<SyntaxToken> {
6615        support::token(&self.syntax, SyntaxKind::DROP_KW)
6616    }
6617}
6618
6619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6620pub struct DropCast {
6621    pub(crate) syntax: SyntaxNode,
6622}
6623impl DropCast {
6624    #[inline]
6625    pub fn cast_sig(&self) -> Option<CastSig> {
6626        support::child(&self.syntax)
6627    }
6628    #[inline]
6629    pub fn if_exists(&self) -> Option<IfExists> {
6630        support::child(&self.syntax)
6631    }
6632    #[inline]
6633    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6634        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6635    }
6636    #[inline]
6637    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6638        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6639    }
6640    #[inline]
6641    pub fn cast_token(&self) -> Option<SyntaxToken> {
6642        support::token(&self.syntax, SyntaxKind::CAST_KW)
6643    }
6644    #[inline]
6645    pub fn drop_token(&self) -> Option<SyntaxToken> {
6646        support::token(&self.syntax, SyntaxKind::DROP_KW)
6647    }
6648    #[inline]
6649    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6650        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6651    }
6652}
6653
6654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6655pub struct DropCollation {
6656    pub(crate) syntax: SyntaxNode,
6657}
6658impl DropCollation {
6659    #[inline]
6660    pub fn if_exists(&self) -> Option<IfExists> {
6661        support::child(&self.syntax)
6662    }
6663    #[inline]
6664    pub fn paths(&self) -> AstChildren<Path> {
6665        support::children(&self.syntax)
6666    }
6667    #[inline]
6668    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6669        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6670    }
6671    #[inline]
6672    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6673        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6674    }
6675    #[inline]
6676    pub fn collation_token(&self) -> Option<SyntaxToken> {
6677        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6678    }
6679    #[inline]
6680    pub fn drop_token(&self) -> Option<SyntaxToken> {
6681        support::token(&self.syntax, SyntaxKind::DROP_KW)
6682    }
6683    #[inline]
6684    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6685        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6686    }
6687}
6688
6689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6690pub struct DropColumn {
6691    pub(crate) syntax: SyntaxNode,
6692}
6693impl DropColumn {
6694    #[inline]
6695    pub fn if_exists(&self) -> Option<IfExists> {
6696        support::child(&self.syntax)
6697    }
6698    #[inline]
6699    pub fn name_ref(&self) -> Option<NameRef> {
6700        support::child(&self.syntax)
6701    }
6702    #[inline]
6703    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6704        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6705    }
6706    #[inline]
6707    pub fn column_token(&self) -> Option<SyntaxToken> {
6708        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6709    }
6710    #[inline]
6711    pub fn drop_token(&self) -> Option<SyntaxToken> {
6712        support::token(&self.syntax, SyntaxKind::DROP_KW)
6713    }
6714    #[inline]
6715    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6716        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6717    }
6718}
6719
6720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6721pub struct DropConstraint {
6722    pub(crate) syntax: SyntaxNode,
6723}
6724impl DropConstraint {
6725    #[inline]
6726    pub fn if_exists(&self) -> Option<IfExists> {
6727        support::child(&self.syntax)
6728    }
6729    #[inline]
6730    pub fn name_ref(&self) -> Option<NameRef> {
6731        support::child(&self.syntax)
6732    }
6733    #[inline]
6734    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6735        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6736    }
6737    #[inline]
6738    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6739        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6740    }
6741    #[inline]
6742    pub fn drop_token(&self) -> Option<SyntaxToken> {
6743        support::token(&self.syntax, SyntaxKind::DROP_KW)
6744    }
6745    #[inline]
6746    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6747        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6748    }
6749}
6750
6751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6752pub struct DropConversion {
6753    pub(crate) syntax: SyntaxNode,
6754}
6755impl DropConversion {
6756    #[inline]
6757    pub fn if_exists(&self) -> Option<IfExists> {
6758        support::child(&self.syntax)
6759    }
6760    #[inline]
6761    pub fn path(&self) -> Option<Path> {
6762        support::child(&self.syntax)
6763    }
6764    #[inline]
6765    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6766        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6767    }
6768    #[inline]
6769    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6770        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6771    }
6772    #[inline]
6773    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6774        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6775    }
6776    #[inline]
6777    pub fn drop_token(&self) -> Option<SyntaxToken> {
6778        support::token(&self.syntax, SyntaxKind::DROP_KW)
6779    }
6780    #[inline]
6781    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6782        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6783    }
6784}
6785
6786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6787pub struct DropDatabase {
6788    pub(crate) syntax: SyntaxNode,
6789}
6790impl DropDatabase {
6791    #[inline]
6792    pub fn if_exists(&self) -> Option<IfExists> {
6793        support::child(&self.syntax)
6794    }
6795    #[inline]
6796    pub fn name_ref(&self) -> Option<NameRef> {
6797        support::child(&self.syntax)
6798    }
6799    #[inline]
6800    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6801        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6802    }
6803    #[inline]
6804    pub fn database_token(&self) -> Option<SyntaxToken> {
6805        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6806    }
6807    #[inline]
6808    pub fn drop_token(&self) -> Option<SyntaxToken> {
6809        support::token(&self.syntax, SyntaxKind::DROP_KW)
6810    }
6811}
6812
6813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6814pub struct DropDefault {
6815    pub(crate) syntax: SyntaxNode,
6816}
6817impl DropDefault {
6818    #[inline]
6819    pub fn default_token(&self) -> Option<SyntaxToken> {
6820        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6821    }
6822    #[inline]
6823    pub fn drop_token(&self) -> Option<SyntaxToken> {
6824        support::token(&self.syntax, SyntaxKind::DROP_KW)
6825    }
6826}
6827
6828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6829pub struct DropDomain {
6830    pub(crate) syntax: SyntaxNode,
6831}
6832impl DropDomain {
6833    #[inline]
6834    pub fn if_exists(&self) -> Option<IfExists> {
6835        support::child(&self.syntax)
6836    }
6837    #[inline]
6838    pub fn paths(&self) -> AstChildren<Path> {
6839        support::children(&self.syntax)
6840    }
6841    #[inline]
6842    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6843        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6844    }
6845    #[inline]
6846    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6847        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6848    }
6849    #[inline]
6850    pub fn domain_token(&self) -> Option<SyntaxToken> {
6851        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6852    }
6853    #[inline]
6854    pub fn drop_token(&self) -> Option<SyntaxToken> {
6855        support::token(&self.syntax, SyntaxKind::DROP_KW)
6856    }
6857    #[inline]
6858    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6859        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6860    }
6861}
6862
6863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6864pub struct DropEdgeTables {
6865    pub(crate) syntax: SyntaxNode,
6866}
6867impl DropEdgeTables {
6868    #[inline]
6869    pub fn names(&self) -> AstChildren<Name> {
6870        support::children(&self.syntax)
6871    }
6872    #[inline]
6873    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6874        support::token(&self.syntax, SyntaxKind::L_PAREN)
6875    }
6876    #[inline]
6877    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6878        support::token(&self.syntax, SyntaxKind::R_PAREN)
6879    }
6880    #[inline]
6881    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6882        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6883    }
6884    #[inline]
6885    pub fn drop_token(&self) -> Option<SyntaxToken> {
6886        support::token(&self.syntax, SyntaxKind::DROP_KW)
6887    }
6888    #[inline]
6889    pub fn edge_token(&self) -> Option<SyntaxToken> {
6890        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6891    }
6892    #[inline]
6893    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6894        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6895    }
6896    #[inline]
6897    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6898        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6899    }
6900    #[inline]
6901    pub fn tables_token(&self) -> Option<SyntaxToken> {
6902        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6903    }
6904}
6905
6906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6907pub struct DropEventTrigger {
6908    pub(crate) syntax: SyntaxNode,
6909}
6910impl DropEventTrigger {
6911    #[inline]
6912    pub fn if_exists(&self) -> Option<IfExists> {
6913        support::child(&self.syntax)
6914    }
6915    #[inline]
6916    pub fn name_ref(&self) -> Option<NameRef> {
6917        support::child(&self.syntax)
6918    }
6919    #[inline]
6920    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6921        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6922    }
6923    #[inline]
6924    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6925        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6926    }
6927    #[inline]
6928    pub fn drop_token(&self) -> Option<SyntaxToken> {
6929        support::token(&self.syntax, SyntaxKind::DROP_KW)
6930    }
6931    #[inline]
6932    pub fn event_token(&self) -> Option<SyntaxToken> {
6933        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6934    }
6935    #[inline]
6936    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6937        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6938    }
6939    #[inline]
6940    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6941        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6942    }
6943}
6944
6945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6946pub struct DropExpression {
6947    pub(crate) syntax: SyntaxNode,
6948}
6949impl DropExpression {
6950    #[inline]
6951    pub fn if_exists(&self) -> Option<IfExists> {
6952        support::child(&self.syntax)
6953    }
6954    #[inline]
6955    pub fn drop_token(&self) -> Option<SyntaxToken> {
6956        support::token(&self.syntax, SyntaxKind::DROP_KW)
6957    }
6958    #[inline]
6959    pub fn expression_token(&self) -> Option<SyntaxToken> {
6960        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6961    }
6962}
6963
6964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6965pub struct DropExtension {
6966    pub(crate) syntax: SyntaxNode,
6967}
6968impl DropExtension {
6969    #[inline]
6970    pub fn if_exists(&self) -> Option<IfExists> {
6971        support::child(&self.syntax)
6972    }
6973    #[inline]
6974    pub fn name_refs(&self) -> AstChildren<NameRef> {
6975        support::children(&self.syntax)
6976    }
6977    #[inline]
6978    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6979        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6980    }
6981    #[inline]
6982    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6983        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6984    }
6985    #[inline]
6986    pub fn drop_token(&self) -> Option<SyntaxToken> {
6987        support::token(&self.syntax, SyntaxKind::DROP_KW)
6988    }
6989    #[inline]
6990    pub fn extension_token(&self) -> Option<SyntaxToken> {
6991        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6992    }
6993    #[inline]
6994    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6995        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6996    }
6997}
6998
6999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7000pub struct DropForeignDataWrapper {
7001    pub(crate) syntax: SyntaxNode,
7002}
7003impl DropForeignDataWrapper {
7004    #[inline]
7005    pub fn if_exists(&self) -> Option<IfExists> {
7006        support::child(&self.syntax)
7007    }
7008    #[inline]
7009    pub fn name_refs(&self) -> AstChildren<NameRef> {
7010        support::children(&self.syntax)
7011    }
7012    #[inline]
7013    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7014        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7015    }
7016    #[inline]
7017    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7018        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7019    }
7020    #[inline]
7021    pub fn data_token(&self) -> Option<SyntaxToken> {
7022        support::token(&self.syntax, SyntaxKind::DATA_KW)
7023    }
7024    #[inline]
7025    pub fn drop_token(&self) -> Option<SyntaxToken> {
7026        support::token(&self.syntax, SyntaxKind::DROP_KW)
7027    }
7028    #[inline]
7029    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7030        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7031    }
7032    #[inline]
7033    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7034        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7035    }
7036    #[inline]
7037    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
7038        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
7039    }
7040}
7041
7042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7043pub struct DropForeignTable {
7044    pub(crate) syntax: SyntaxNode,
7045}
7046impl DropForeignTable {
7047    #[inline]
7048    pub fn if_exists(&self) -> Option<IfExists> {
7049        support::child(&self.syntax)
7050    }
7051    #[inline]
7052    pub fn path(&self) -> Option<Path> {
7053        support::child(&self.syntax)
7054    }
7055    #[inline]
7056    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7057        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7058    }
7059    #[inline]
7060    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7061        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7062    }
7063    #[inline]
7064    pub fn drop_token(&self) -> Option<SyntaxToken> {
7065        support::token(&self.syntax, SyntaxKind::DROP_KW)
7066    }
7067    #[inline]
7068    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7069        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7070    }
7071    #[inline]
7072    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7073        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7074    }
7075    #[inline]
7076    pub fn table_token(&self) -> Option<SyntaxToken> {
7077        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7078    }
7079}
7080
7081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7082pub struct DropFunction {
7083    pub(crate) syntax: SyntaxNode,
7084}
7085impl DropFunction {
7086    #[inline]
7087    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7088        support::child(&self.syntax)
7089    }
7090    #[inline]
7091    pub fn if_exists(&self) -> Option<IfExists> {
7092        support::child(&self.syntax)
7093    }
7094    #[inline]
7095    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7096        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7097    }
7098    #[inline]
7099    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7100        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7101    }
7102    #[inline]
7103    pub fn drop_token(&self) -> Option<SyntaxToken> {
7104        support::token(&self.syntax, SyntaxKind::DROP_KW)
7105    }
7106    #[inline]
7107    pub fn function_token(&self) -> Option<SyntaxToken> {
7108        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
7109    }
7110    #[inline]
7111    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7112        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7113    }
7114}
7115
7116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7117pub struct DropGroup {
7118    pub(crate) syntax: SyntaxNode,
7119}
7120impl DropGroup {
7121    #[inline]
7122    pub fn if_exists(&self) -> Option<IfExists> {
7123        support::child(&self.syntax)
7124    }
7125    #[inline]
7126    pub fn name_refs(&self) -> AstChildren<NameRef> {
7127        support::children(&self.syntax)
7128    }
7129    #[inline]
7130    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7131        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7132    }
7133    #[inline]
7134    pub fn drop_token(&self) -> Option<SyntaxToken> {
7135        support::token(&self.syntax, SyntaxKind::DROP_KW)
7136    }
7137    #[inline]
7138    pub fn group_token(&self) -> Option<SyntaxToken> {
7139        support::token(&self.syntax, SyntaxKind::GROUP_KW)
7140    }
7141}
7142
7143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7144pub struct DropIdentity {
7145    pub(crate) syntax: SyntaxNode,
7146}
7147impl DropIdentity {
7148    #[inline]
7149    pub fn if_exists(&self) -> Option<IfExists> {
7150        support::child(&self.syntax)
7151    }
7152    #[inline]
7153    pub fn drop_token(&self) -> Option<SyntaxToken> {
7154        support::token(&self.syntax, SyntaxKind::DROP_KW)
7155    }
7156    #[inline]
7157    pub fn identity_token(&self) -> Option<SyntaxToken> {
7158        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7159    }
7160}
7161
7162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7163pub struct DropIndex {
7164    pub(crate) syntax: SyntaxNode,
7165}
7166impl DropIndex {
7167    #[inline]
7168    pub fn if_exists(&self) -> Option<IfExists> {
7169        support::child(&self.syntax)
7170    }
7171    #[inline]
7172    pub fn paths(&self) -> AstChildren<Path> {
7173        support::children(&self.syntax)
7174    }
7175    #[inline]
7176    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7177        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7178    }
7179    #[inline]
7180    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7181        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7182    }
7183    #[inline]
7184    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
7185        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
7186    }
7187    #[inline]
7188    pub fn drop_token(&self) -> Option<SyntaxToken> {
7189        support::token(&self.syntax, SyntaxKind::DROP_KW)
7190    }
7191    #[inline]
7192    pub fn index_token(&self) -> Option<SyntaxToken> {
7193        support::token(&self.syntax, SyntaxKind::INDEX_KW)
7194    }
7195    #[inline]
7196    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7197        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7198    }
7199}
7200
7201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7202pub struct DropLanguage {
7203    pub(crate) syntax: SyntaxNode,
7204}
7205impl DropLanguage {
7206    #[inline]
7207    pub fn if_exists(&self) -> Option<IfExists> {
7208        support::child(&self.syntax)
7209    }
7210    #[inline]
7211    pub fn name_ref(&self) -> Option<NameRef> {
7212        support::child(&self.syntax)
7213    }
7214    #[inline]
7215    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7216        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7217    }
7218    #[inline]
7219    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7220        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7221    }
7222    #[inline]
7223    pub fn drop_token(&self) -> Option<SyntaxToken> {
7224        support::token(&self.syntax, SyntaxKind::DROP_KW)
7225    }
7226    #[inline]
7227    pub fn language_token(&self) -> Option<SyntaxToken> {
7228        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7229    }
7230    #[inline]
7231    pub fn procedural_token(&self) -> Option<SyntaxToken> {
7232        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
7233    }
7234    #[inline]
7235    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7236        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7237    }
7238}
7239
7240#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7241pub struct DropMaterializedView {
7242    pub(crate) syntax: SyntaxNode,
7243}
7244impl DropMaterializedView {
7245    #[inline]
7246    pub fn if_exists(&self) -> Option<IfExists> {
7247        support::child(&self.syntax)
7248    }
7249    #[inline]
7250    pub fn paths(&self) -> AstChildren<Path> {
7251        support::children(&self.syntax)
7252    }
7253    #[inline]
7254    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7255        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7256    }
7257    #[inline]
7258    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7259        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7260    }
7261    #[inline]
7262    pub fn drop_token(&self) -> Option<SyntaxToken> {
7263        support::token(&self.syntax, SyntaxKind::DROP_KW)
7264    }
7265    #[inline]
7266    pub fn materialized_token(&self) -> Option<SyntaxToken> {
7267        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
7268    }
7269    #[inline]
7270    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7271        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7272    }
7273    #[inline]
7274    pub fn view_token(&self) -> Option<SyntaxToken> {
7275        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7276    }
7277}
7278
7279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7280pub struct DropNotNull {
7281    pub(crate) syntax: SyntaxNode,
7282}
7283impl DropNotNull {
7284    #[inline]
7285    pub fn drop_token(&self) -> Option<SyntaxToken> {
7286        support::token(&self.syntax, SyntaxKind::DROP_KW)
7287    }
7288    #[inline]
7289    pub fn not_token(&self) -> Option<SyntaxToken> {
7290        support::token(&self.syntax, SyntaxKind::NOT_KW)
7291    }
7292    #[inline]
7293    pub fn null_token(&self) -> Option<SyntaxToken> {
7294        support::token(&self.syntax, SyntaxKind::NULL_KW)
7295    }
7296}
7297
7298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7299pub struct DropOpClassOption {
7300    pub(crate) syntax: SyntaxNode,
7301}
7302impl DropOpClassOption {
7303    #[inline]
7304    pub fn literal(&self) -> Option<Literal> {
7305        support::child(&self.syntax)
7306    }
7307    #[inline]
7308    pub fn param_list(&self) -> Option<ParamList> {
7309        support::child(&self.syntax)
7310    }
7311    #[inline]
7312    pub fn function_token(&self) -> Option<SyntaxToken> {
7313        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
7314    }
7315    #[inline]
7316    pub fn operator_token(&self) -> Option<SyntaxToken> {
7317        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7318    }
7319}
7320
7321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7322pub struct DropOpClassOptionList {
7323    pub(crate) syntax: SyntaxNode,
7324}
7325impl DropOpClassOptionList {
7326    #[inline]
7327    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
7328        support::children(&self.syntax)
7329    }
7330}
7331
7332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7333pub struct DropOpClassOptions {
7334    pub(crate) syntax: SyntaxNode,
7335}
7336impl DropOpClassOptions {
7337    #[inline]
7338    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
7339        support::child(&self.syntax)
7340    }
7341    #[inline]
7342    pub fn drop_token(&self) -> Option<SyntaxToken> {
7343        support::token(&self.syntax, SyntaxKind::DROP_KW)
7344    }
7345}
7346
7347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7348pub struct DropOperator {
7349    pub(crate) syntax: SyntaxNode,
7350}
7351impl DropOperator {
7352    #[inline]
7353    pub fn if_exists(&self) -> Option<IfExists> {
7354        support::child(&self.syntax)
7355    }
7356    #[inline]
7357    pub fn op_sig_list(&self) -> Option<OpSigList> {
7358        support::child(&self.syntax)
7359    }
7360    #[inline]
7361    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7362        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7363    }
7364    #[inline]
7365    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7366        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7367    }
7368    #[inline]
7369    pub fn drop_token(&self) -> Option<SyntaxToken> {
7370        support::token(&self.syntax, SyntaxKind::DROP_KW)
7371    }
7372    #[inline]
7373    pub fn operator_token(&self) -> Option<SyntaxToken> {
7374        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7375    }
7376    #[inline]
7377    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7378        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7379    }
7380}
7381
7382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7383pub struct DropOperatorClass {
7384    pub(crate) syntax: SyntaxNode,
7385}
7386impl DropOperatorClass {
7387    #[inline]
7388    pub fn if_exists(&self) -> Option<IfExists> {
7389        support::child(&self.syntax)
7390    }
7391    #[inline]
7392    pub fn name_ref(&self) -> Option<NameRef> {
7393        support::child(&self.syntax)
7394    }
7395    #[inline]
7396    pub fn path(&self) -> Option<Path> {
7397        support::child(&self.syntax)
7398    }
7399    #[inline]
7400    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7401        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7402    }
7403    #[inline]
7404    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7405        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7406    }
7407    #[inline]
7408    pub fn class_token(&self) -> Option<SyntaxToken> {
7409        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7410    }
7411    #[inline]
7412    pub fn drop_token(&self) -> Option<SyntaxToken> {
7413        support::token(&self.syntax, SyntaxKind::DROP_KW)
7414    }
7415    #[inline]
7416    pub fn operator_token(&self) -> Option<SyntaxToken> {
7417        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7418    }
7419    #[inline]
7420    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7421        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7422    }
7423    #[inline]
7424    pub fn using_token(&self) -> Option<SyntaxToken> {
7425        support::token(&self.syntax, SyntaxKind::USING_KW)
7426    }
7427}
7428
7429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7430pub struct DropOperatorFamily {
7431    pub(crate) syntax: SyntaxNode,
7432}
7433impl DropOperatorFamily {
7434    #[inline]
7435    pub fn if_exists(&self) -> Option<IfExists> {
7436        support::child(&self.syntax)
7437    }
7438    #[inline]
7439    pub fn name_ref(&self) -> Option<NameRef> {
7440        support::child(&self.syntax)
7441    }
7442    #[inline]
7443    pub fn path(&self) -> Option<Path> {
7444        support::child(&self.syntax)
7445    }
7446    #[inline]
7447    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7448        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7449    }
7450    #[inline]
7451    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7452        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7453    }
7454    #[inline]
7455    pub fn drop_token(&self) -> Option<SyntaxToken> {
7456        support::token(&self.syntax, SyntaxKind::DROP_KW)
7457    }
7458    #[inline]
7459    pub fn family_token(&self) -> Option<SyntaxToken> {
7460        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7461    }
7462    #[inline]
7463    pub fn operator_token(&self) -> Option<SyntaxToken> {
7464        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7465    }
7466    #[inline]
7467    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7468        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7469    }
7470    #[inline]
7471    pub fn using_token(&self) -> Option<SyntaxToken> {
7472        support::token(&self.syntax, SyntaxKind::USING_KW)
7473    }
7474}
7475
7476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7477pub struct DropOwned {
7478    pub(crate) syntax: SyntaxNode,
7479}
7480impl DropOwned {
7481    #[inline]
7482    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7483        support::child(&self.syntax)
7484    }
7485    #[inline]
7486    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7487        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7488    }
7489    #[inline]
7490    pub fn by_token(&self) -> Option<SyntaxToken> {
7491        support::token(&self.syntax, SyntaxKind::BY_KW)
7492    }
7493    #[inline]
7494    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7495        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7496    }
7497    #[inline]
7498    pub fn drop_token(&self) -> Option<SyntaxToken> {
7499        support::token(&self.syntax, SyntaxKind::DROP_KW)
7500    }
7501    #[inline]
7502    pub fn owned_token(&self) -> Option<SyntaxToken> {
7503        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7504    }
7505    #[inline]
7506    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7507        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7508    }
7509}
7510
7511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7512pub struct DropPolicy {
7513    pub(crate) syntax: SyntaxNode,
7514}
7515impl DropPolicy {
7516    #[inline]
7517    pub fn if_exists(&self) -> Option<IfExists> {
7518        support::child(&self.syntax)
7519    }
7520    #[inline]
7521    pub fn name_ref(&self) -> Option<NameRef> {
7522        support::child(&self.syntax)
7523    }
7524    #[inline]
7525    pub fn on_table(&self) -> Option<OnTable> {
7526        support::child(&self.syntax)
7527    }
7528    #[inline]
7529    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7530        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7531    }
7532    #[inline]
7533    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7534        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7535    }
7536    #[inline]
7537    pub fn drop_token(&self) -> Option<SyntaxToken> {
7538        support::token(&self.syntax, SyntaxKind::DROP_KW)
7539    }
7540    #[inline]
7541    pub fn policy_token(&self) -> Option<SyntaxToken> {
7542        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7543    }
7544    #[inline]
7545    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7546        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7547    }
7548}
7549
7550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7551pub struct DropProcedure {
7552    pub(crate) syntax: SyntaxNode,
7553}
7554impl DropProcedure {
7555    #[inline]
7556    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7557        support::child(&self.syntax)
7558    }
7559    #[inline]
7560    pub fn if_exists(&self) -> Option<IfExists> {
7561        support::child(&self.syntax)
7562    }
7563    #[inline]
7564    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7565        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7566    }
7567    #[inline]
7568    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7569        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7570    }
7571    #[inline]
7572    pub fn drop_token(&self) -> Option<SyntaxToken> {
7573        support::token(&self.syntax, SyntaxKind::DROP_KW)
7574    }
7575    #[inline]
7576    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7577        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7578    }
7579    #[inline]
7580    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7581        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7582    }
7583}
7584
7585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7586pub struct DropPropertyGraph {
7587    pub(crate) syntax: SyntaxNode,
7588}
7589impl DropPropertyGraph {
7590    #[inline]
7591    pub fn if_exists(&self) -> Option<IfExists> {
7592        support::child(&self.syntax)
7593    }
7594    #[inline]
7595    pub fn path(&self) -> Option<Path> {
7596        support::child(&self.syntax)
7597    }
7598    #[inline]
7599    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7600        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7601    }
7602    #[inline]
7603    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7604        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7605    }
7606    #[inline]
7607    pub fn drop_token(&self) -> Option<SyntaxToken> {
7608        support::token(&self.syntax, SyntaxKind::DROP_KW)
7609    }
7610    #[inline]
7611    pub fn graph_token(&self) -> Option<SyntaxToken> {
7612        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7613    }
7614    #[inline]
7615    pub fn property_token(&self) -> Option<SyntaxToken> {
7616        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7617    }
7618    #[inline]
7619    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7620        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7621    }
7622}
7623
7624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7625pub struct DropPublication {
7626    pub(crate) syntax: SyntaxNode,
7627}
7628impl DropPublication {
7629    #[inline]
7630    pub fn if_exists(&self) -> Option<IfExists> {
7631        support::child(&self.syntax)
7632    }
7633    #[inline]
7634    pub fn name_refs(&self) -> AstChildren<NameRef> {
7635        support::children(&self.syntax)
7636    }
7637    #[inline]
7638    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7639        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7640    }
7641    #[inline]
7642    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7643        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7644    }
7645    #[inline]
7646    pub fn drop_token(&self) -> Option<SyntaxToken> {
7647        support::token(&self.syntax, SyntaxKind::DROP_KW)
7648    }
7649    #[inline]
7650    pub fn publication_token(&self) -> Option<SyntaxToken> {
7651        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7652    }
7653    #[inline]
7654    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7655        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7656    }
7657}
7658
7659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7660pub struct DropRole {
7661    pub(crate) syntax: SyntaxNode,
7662}
7663impl DropRole {
7664    #[inline]
7665    pub fn if_exists(&self) -> Option<IfExists> {
7666        support::child(&self.syntax)
7667    }
7668    #[inline]
7669    pub fn name_refs(&self) -> AstChildren<NameRef> {
7670        support::children(&self.syntax)
7671    }
7672    #[inline]
7673    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7674        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7675    }
7676    #[inline]
7677    pub fn drop_token(&self) -> Option<SyntaxToken> {
7678        support::token(&self.syntax, SyntaxKind::DROP_KW)
7679    }
7680    #[inline]
7681    pub fn role_token(&self) -> Option<SyntaxToken> {
7682        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7683    }
7684}
7685
7686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7687pub struct DropRoutine {
7688    pub(crate) syntax: SyntaxNode,
7689}
7690impl DropRoutine {
7691    #[inline]
7692    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7693        support::child(&self.syntax)
7694    }
7695    #[inline]
7696    pub fn if_exists(&self) -> Option<IfExists> {
7697        support::child(&self.syntax)
7698    }
7699    #[inline]
7700    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7701        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7702    }
7703    #[inline]
7704    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7705        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7706    }
7707    #[inline]
7708    pub fn drop_token(&self) -> Option<SyntaxToken> {
7709        support::token(&self.syntax, SyntaxKind::DROP_KW)
7710    }
7711    #[inline]
7712    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7713        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7714    }
7715    #[inline]
7716    pub fn routine_token(&self) -> Option<SyntaxToken> {
7717        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7718    }
7719}
7720
7721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7722pub struct DropRule {
7723    pub(crate) syntax: SyntaxNode,
7724}
7725impl DropRule {
7726    #[inline]
7727    pub fn if_exists(&self) -> Option<IfExists> {
7728        support::child(&self.syntax)
7729    }
7730    #[inline]
7731    pub fn name_ref(&self) -> Option<NameRef> {
7732        support::child(&self.syntax)
7733    }
7734    #[inline]
7735    pub fn on_table(&self) -> Option<OnTable> {
7736        support::child(&self.syntax)
7737    }
7738    #[inline]
7739    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7740        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7741    }
7742    #[inline]
7743    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7744        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7745    }
7746    #[inline]
7747    pub fn drop_token(&self) -> Option<SyntaxToken> {
7748        support::token(&self.syntax, SyntaxKind::DROP_KW)
7749    }
7750    #[inline]
7751    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7752        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7753    }
7754    #[inline]
7755    pub fn rule_token(&self) -> Option<SyntaxToken> {
7756        support::token(&self.syntax, SyntaxKind::RULE_KW)
7757    }
7758}
7759
7760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7761pub struct DropSchema {
7762    pub(crate) syntax: SyntaxNode,
7763}
7764impl DropSchema {
7765    #[inline]
7766    pub fn if_exists(&self) -> Option<IfExists> {
7767        support::child(&self.syntax)
7768    }
7769    #[inline]
7770    pub fn name_refs(&self) -> AstChildren<NameRef> {
7771        support::children(&self.syntax)
7772    }
7773    #[inline]
7774    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7775        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7776    }
7777    #[inline]
7778    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7779        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7780    }
7781    #[inline]
7782    pub fn drop_token(&self) -> Option<SyntaxToken> {
7783        support::token(&self.syntax, SyntaxKind::DROP_KW)
7784    }
7785    #[inline]
7786    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7787        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7788    }
7789    #[inline]
7790    pub fn schema_token(&self) -> Option<SyntaxToken> {
7791        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7792    }
7793}
7794
7795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7796pub struct DropSequence {
7797    pub(crate) syntax: SyntaxNode,
7798}
7799impl DropSequence {
7800    #[inline]
7801    pub fn if_exists(&self) -> Option<IfExists> {
7802        support::child(&self.syntax)
7803    }
7804    #[inline]
7805    pub fn paths(&self) -> AstChildren<Path> {
7806        support::children(&self.syntax)
7807    }
7808    #[inline]
7809    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7810        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7811    }
7812    #[inline]
7813    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7814        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7815    }
7816    #[inline]
7817    pub fn drop_token(&self) -> Option<SyntaxToken> {
7818        support::token(&self.syntax, SyntaxKind::DROP_KW)
7819    }
7820    #[inline]
7821    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7822        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7823    }
7824    #[inline]
7825    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7826        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7827    }
7828}
7829
7830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7831pub struct DropServer {
7832    pub(crate) syntax: SyntaxNode,
7833}
7834impl DropServer {
7835    #[inline]
7836    pub fn if_exists(&self) -> Option<IfExists> {
7837        support::child(&self.syntax)
7838    }
7839    #[inline]
7840    pub fn name_ref(&self) -> Option<NameRef> {
7841        support::child(&self.syntax)
7842    }
7843    #[inline]
7844    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7845        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7846    }
7847    #[inline]
7848    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7849        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7850    }
7851    #[inline]
7852    pub fn drop_token(&self) -> Option<SyntaxToken> {
7853        support::token(&self.syntax, SyntaxKind::DROP_KW)
7854    }
7855    #[inline]
7856    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7857        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7858    }
7859    #[inline]
7860    pub fn server_token(&self) -> Option<SyntaxToken> {
7861        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7862    }
7863}
7864
7865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7866pub struct DropStatistics {
7867    pub(crate) syntax: SyntaxNode,
7868}
7869impl DropStatistics {
7870    #[inline]
7871    pub fn if_exists(&self) -> Option<IfExists> {
7872        support::child(&self.syntax)
7873    }
7874    #[inline]
7875    pub fn paths(&self) -> AstChildren<Path> {
7876        support::children(&self.syntax)
7877    }
7878    #[inline]
7879    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7880        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7881    }
7882    #[inline]
7883    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7884        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7885    }
7886    #[inline]
7887    pub fn drop_token(&self) -> Option<SyntaxToken> {
7888        support::token(&self.syntax, SyntaxKind::DROP_KW)
7889    }
7890    #[inline]
7891    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7892        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7893    }
7894    #[inline]
7895    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7896        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7897    }
7898}
7899
7900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7901pub struct DropSubscription {
7902    pub(crate) syntax: SyntaxNode,
7903}
7904impl DropSubscription {
7905    #[inline]
7906    pub fn if_exists(&self) -> Option<IfExists> {
7907        support::child(&self.syntax)
7908    }
7909    #[inline]
7910    pub fn name_ref(&self) -> Option<NameRef> {
7911        support::child(&self.syntax)
7912    }
7913    #[inline]
7914    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7915        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7916    }
7917    #[inline]
7918    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7919        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7920    }
7921    #[inline]
7922    pub fn drop_token(&self) -> Option<SyntaxToken> {
7923        support::token(&self.syntax, SyntaxKind::DROP_KW)
7924    }
7925    #[inline]
7926    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7927        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7928    }
7929    #[inline]
7930    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7931        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7932    }
7933}
7934
7935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7936pub struct DropTable {
7937    pub(crate) syntax: SyntaxNode,
7938}
7939impl DropTable {
7940    #[inline]
7941    pub fn if_exists(&self) -> Option<IfExists> {
7942        support::child(&self.syntax)
7943    }
7944    #[inline]
7945    pub fn path(&self) -> Option<Path> {
7946        support::child(&self.syntax)
7947    }
7948    #[inline]
7949    pub fn comma_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::COMMA)
7951    }
7952    #[inline]
7953    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7954        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7955    }
7956    #[inline]
7957    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7958        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7959    }
7960    #[inline]
7961    pub fn drop_token(&self) -> Option<SyntaxToken> {
7962        support::token(&self.syntax, SyntaxKind::DROP_KW)
7963    }
7964    #[inline]
7965    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7966        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7967    }
7968    #[inline]
7969    pub fn table_token(&self) -> Option<SyntaxToken> {
7970        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7971    }
7972}
7973
7974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7975pub struct DropTablespace {
7976    pub(crate) syntax: SyntaxNode,
7977}
7978impl DropTablespace {
7979    #[inline]
7980    pub fn if_exists(&self) -> Option<IfExists> {
7981        support::child(&self.syntax)
7982    }
7983    #[inline]
7984    pub fn name_ref(&self) -> Option<NameRef> {
7985        support::child(&self.syntax)
7986    }
7987    #[inline]
7988    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7990    }
7991    #[inline]
7992    pub fn drop_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::DROP_KW)
7994    }
7995    #[inline]
7996    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7997        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7998    }
7999}
8000
8001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8002pub struct DropTextSearchConfig {
8003    pub(crate) syntax: SyntaxNode,
8004}
8005impl DropTextSearchConfig {
8006    #[inline]
8007    pub fn if_exists(&self) -> Option<IfExists> {
8008        support::child(&self.syntax)
8009    }
8010    #[inline]
8011    pub fn path(&self) -> Option<Path> {
8012        support::child(&self.syntax)
8013    }
8014    #[inline]
8015    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8017    }
8018    #[inline]
8019    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8020        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8021    }
8022    #[inline]
8023    pub fn configuration_token(&self) -> Option<SyntaxToken> {
8024        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
8025    }
8026    #[inline]
8027    pub fn drop_token(&self) -> Option<SyntaxToken> {
8028        support::token(&self.syntax, SyntaxKind::DROP_KW)
8029    }
8030    #[inline]
8031    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8032        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8033    }
8034    #[inline]
8035    pub fn search_token(&self) -> Option<SyntaxToken> {
8036        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8037    }
8038    #[inline]
8039    pub fn text_token(&self) -> Option<SyntaxToken> {
8040        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8041    }
8042}
8043
8044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8045pub struct DropTextSearchDict {
8046    pub(crate) syntax: SyntaxNode,
8047}
8048impl DropTextSearchDict {
8049    #[inline]
8050    pub fn if_exists(&self) -> Option<IfExists> {
8051        support::child(&self.syntax)
8052    }
8053    #[inline]
8054    pub fn path(&self) -> Option<Path> {
8055        support::child(&self.syntax)
8056    }
8057    #[inline]
8058    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8059        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8060    }
8061    #[inline]
8062    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8063        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8064    }
8065    #[inline]
8066    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
8067        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
8068    }
8069    #[inline]
8070    pub fn drop_token(&self) -> Option<SyntaxToken> {
8071        support::token(&self.syntax, SyntaxKind::DROP_KW)
8072    }
8073    #[inline]
8074    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8075        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8076    }
8077    #[inline]
8078    pub fn search_token(&self) -> Option<SyntaxToken> {
8079        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8080    }
8081    #[inline]
8082    pub fn text_token(&self) -> Option<SyntaxToken> {
8083        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8084    }
8085}
8086
8087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8088pub struct DropTextSearchParser {
8089    pub(crate) syntax: SyntaxNode,
8090}
8091impl DropTextSearchParser {
8092    #[inline]
8093    pub fn if_exists(&self) -> Option<IfExists> {
8094        support::child(&self.syntax)
8095    }
8096    #[inline]
8097    pub fn path(&self) -> Option<Path> {
8098        support::child(&self.syntax)
8099    }
8100    #[inline]
8101    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8102        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8103    }
8104    #[inline]
8105    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8106        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8107    }
8108    #[inline]
8109    pub fn drop_token(&self) -> Option<SyntaxToken> {
8110        support::token(&self.syntax, SyntaxKind::DROP_KW)
8111    }
8112    #[inline]
8113    pub fn parser_token(&self) -> Option<SyntaxToken> {
8114        support::token(&self.syntax, SyntaxKind::PARSER_KW)
8115    }
8116    #[inline]
8117    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8118        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8119    }
8120    #[inline]
8121    pub fn search_token(&self) -> Option<SyntaxToken> {
8122        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8123    }
8124    #[inline]
8125    pub fn text_token(&self) -> Option<SyntaxToken> {
8126        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8127    }
8128}
8129
8130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8131pub struct DropTextSearchTemplate {
8132    pub(crate) syntax: SyntaxNode,
8133}
8134impl DropTextSearchTemplate {
8135    #[inline]
8136    pub fn if_exists(&self) -> Option<IfExists> {
8137        support::child(&self.syntax)
8138    }
8139    #[inline]
8140    pub fn path(&self) -> Option<Path> {
8141        support::child(&self.syntax)
8142    }
8143    #[inline]
8144    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8145        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8146    }
8147    #[inline]
8148    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8149        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8150    }
8151    #[inline]
8152    pub fn drop_token(&self) -> Option<SyntaxToken> {
8153        support::token(&self.syntax, SyntaxKind::DROP_KW)
8154    }
8155    #[inline]
8156    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8157        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8158    }
8159    #[inline]
8160    pub fn search_token(&self) -> Option<SyntaxToken> {
8161        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8162    }
8163    #[inline]
8164    pub fn template_token(&self) -> Option<SyntaxToken> {
8165        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
8166    }
8167    #[inline]
8168    pub fn text_token(&self) -> Option<SyntaxToken> {
8169        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8170    }
8171}
8172
8173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8174pub struct DropTransform {
8175    pub(crate) syntax: SyntaxNode,
8176}
8177impl DropTransform {
8178    #[inline]
8179    pub fn if_exists(&self) -> Option<IfExists> {
8180        support::child(&self.syntax)
8181    }
8182    #[inline]
8183    pub fn language(&self) -> Option<NameRef> {
8184        support::child(&self.syntax)
8185    }
8186    #[inline]
8187    pub fn ty(&self) -> Option<Type> {
8188        support::child(&self.syntax)
8189    }
8190    #[inline]
8191    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8192        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8193    }
8194    #[inline]
8195    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8196        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8197    }
8198    #[inline]
8199    pub fn drop_token(&self) -> Option<SyntaxToken> {
8200        support::token(&self.syntax, SyntaxKind::DROP_KW)
8201    }
8202    #[inline]
8203    pub fn for_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::FOR_KW)
8205    }
8206    #[inline]
8207    pub fn language_token(&self) -> Option<SyntaxToken> {
8208        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
8209    }
8210    #[inline]
8211    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8212        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8213    }
8214    #[inline]
8215    pub fn transform_token(&self) -> Option<SyntaxToken> {
8216        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
8217    }
8218}
8219
8220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8221pub struct DropTrigger {
8222    pub(crate) syntax: SyntaxNode,
8223}
8224impl DropTrigger {
8225    #[inline]
8226    pub fn if_exists(&self) -> Option<IfExists> {
8227        support::child(&self.syntax)
8228    }
8229    #[inline]
8230    pub fn on_table(&self) -> Option<OnTable> {
8231        support::child(&self.syntax)
8232    }
8233    #[inline]
8234    pub fn path(&self) -> Option<Path> {
8235        support::child(&self.syntax)
8236    }
8237    #[inline]
8238    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8239        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8240    }
8241    #[inline]
8242    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8243        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8244    }
8245    #[inline]
8246    pub fn drop_token(&self) -> Option<SyntaxToken> {
8247        support::token(&self.syntax, SyntaxKind::DROP_KW)
8248    }
8249    #[inline]
8250    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8251        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8252    }
8253    #[inline]
8254    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8255        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8256    }
8257}
8258
8259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8260pub struct DropType {
8261    pub(crate) syntax: SyntaxNode,
8262}
8263impl DropType {
8264    #[inline]
8265    pub fn if_exists(&self) -> Option<IfExists> {
8266        support::child(&self.syntax)
8267    }
8268    #[inline]
8269    pub fn paths(&self) -> AstChildren<Path> {
8270        support::children(&self.syntax)
8271    }
8272    #[inline]
8273    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8274        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8275    }
8276    #[inline]
8277    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8278        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8279    }
8280    #[inline]
8281    pub fn drop_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::DROP_KW)
8283    }
8284    #[inline]
8285    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8287    }
8288    #[inline]
8289    pub fn type_token(&self) -> Option<SyntaxToken> {
8290        support::token(&self.syntax, SyntaxKind::TYPE_KW)
8291    }
8292}
8293
8294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8295pub struct DropUser {
8296    pub(crate) syntax: SyntaxNode,
8297}
8298impl DropUser {
8299    #[inline]
8300    pub fn if_exists(&self) -> Option<IfExists> {
8301        support::child(&self.syntax)
8302    }
8303    #[inline]
8304    pub fn name_refs(&self) -> AstChildren<NameRef> {
8305        support::children(&self.syntax)
8306    }
8307    #[inline]
8308    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8310    }
8311    #[inline]
8312    pub fn drop_token(&self) -> Option<SyntaxToken> {
8313        support::token(&self.syntax, SyntaxKind::DROP_KW)
8314    }
8315    #[inline]
8316    pub fn user_token(&self) -> Option<SyntaxToken> {
8317        support::token(&self.syntax, SyntaxKind::USER_KW)
8318    }
8319}
8320
8321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8322pub struct DropUserMapping {
8323    pub(crate) syntax: SyntaxNode,
8324}
8325impl DropUserMapping {
8326    #[inline]
8327    pub fn if_exists(&self) -> Option<IfExists> {
8328        support::child(&self.syntax)
8329    }
8330    #[inline]
8331    pub fn role_ref(&self) -> Option<RoleRef> {
8332        support::child(&self.syntax)
8333    }
8334    #[inline]
8335    pub fn server_name(&self) -> Option<ServerName> {
8336        support::child(&self.syntax)
8337    }
8338    #[inline]
8339    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8340        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8341    }
8342    #[inline]
8343    pub fn drop_token(&self) -> Option<SyntaxToken> {
8344        support::token(&self.syntax, SyntaxKind::DROP_KW)
8345    }
8346    #[inline]
8347    pub fn for_token(&self) -> Option<SyntaxToken> {
8348        support::token(&self.syntax, SyntaxKind::FOR_KW)
8349    }
8350    #[inline]
8351    pub fn mapping_token(&self) -> Option<SyntaxToken> {
8352        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
8353    }
8354    #[inline]
8355    pub fn user_token(&self) -> Option<SyntaxToken> {
8356        support::token(&self.syntax, SyntaxKind::USER_KW)
8357    }
8358}
8359
8360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8361pub struct DropVertexEdgeLabel {
8362    pub(crate) syntax: SyntaxNode,
8363}
8364impl DropVertexEdgeLabel {
8365    #[inline]
8366    pub fn name_ref(&self) -> Option<NameRef> {
8367        support::child(&self.syntax)
8368    }
8369    #[inline]
8370    pub fn alter_token(&self) -> Option<SyntaxToken> {
8371        support::token(&self.syntax, SyntaxKind::ALTER_KW)
8372    }
8373    #[inline]
8374    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8375        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8376    }
8377    #[inline]
8378    pub fn drop_token(&self) -> Option<SyntaxToken> {
8379        support::token(&self.syntax, SyntaxKind::DROP_KW)
8380    }
8381    #[inline]
8382    pub fn edge_token(&self) -> Option<SyntaxToken> {
8383        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8384    }
8385    #[inline]
8386    pub fn label_token(&self) -> Option<SyntaxToken> {
8387        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8388    }
8389    #[inline]
8390    pub fn node_token(&self) -> Option<SyntaxToken> {
8391        support::token(&self.syntax, SyntaxKind::NODE_KW)
8392    }
8393    #[inline]
8394    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8395        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8396    }
8397    #[inline]
8398    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8399        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8400    }
8401    #[inline]
8402    pub fn table_token(&self) -> Option<SyntaxToken> {
8403        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8404    }
8405    #[inline]
8406    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8407        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8408    }
8409}
8410
8411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8412pub struct DropVertexEdgeLabelProperties {
8413    pub(crate) syntax: SyntaxNode,
8414}
8415impl DropVertexEdgeLabelProperties {
8416    #[inline]
8417    pub fn name_ref(&self) -> Option<NameRef> {
8418        support::child(&self.syntax)
8419    }
8420    #[inline]
8421    pub fn names(&self) -> AstChildren<Name> {
8422        support::children(&self.syntax)
8423    }
8424    #[inline]
8425    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8426        support::token(&self.syntax, SyntaxKind::L_PAREN)
8427    }
8428    #[inline]
8429    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8430        support::token(&self.syntax, SyntaxKind::R_PAREN)
8431    }
8432    #[inline]
8433    pub fn alter_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::ALTER_KW)
8435    }
8436    #[inline]
8437    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8438        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8439    }
8440    #[inline]
8441    pub fn drop_token(&self) -> Option<SyntaxToken> {
8442        support::token(&self.syntax, SyntaxKind::DROP_KW)
8443    }
8444    #[inline]
8445    pub fn edge_token(&self) -> Option<SyntaxToken> {
8446        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8447    }
8448    #[inline]
8449    pub fn label_token(&self) -> Option<SyntaxToken> {
8450        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8451    }
8452    #[inline]
8453    pub fn node_token(&self) -> Option<SyntaxToken> {
8454        support::token(&self.syntax, SyntaxKind::NODE_KW)
8455    }
8456    #[inline]
8457    pub fn properties_token(&self) -> Option<SyntaxToken> {
8458        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
8459    }
8460    #[inline]
8461    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8462        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8463    }
8464    #[inline]
8465    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8466        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8467    }
8468    #[inline]
8469    pub fn table_token(&self) -> Option<SyntaxToken> {
8470        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8471    }
8472    #[inline]
8473    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8474        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8475    }
8476}
8477
8478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8479pub struct DropVertexTables {
8480    pub(crate) syntax: SyntaxNode,
8481}
8482impl DropVertexTables {
8483    #[inline]
8484    pub fn names(&self) -> AstChildren<Name> {
8485        support::children(&self.syntax)
8486    }
8487    #[inline]
8488    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8489        support::token(&self.syntax, SyntaxKind::L_PAREN)
8490    }
8491    #[inline]
8492    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8493        support::token(&self.syntax, SyntaxKind::R_PAREN)
8494    }
8495    #[inline]
8496    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8497        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8498    }
8499    #[inline]
8500    pub fn drop_token(&self) -> Option<SyntaxToken> {
8501        support::token(&self.syntax, SyntaxKind::DROP_KW)
8502    }
8503    #[inline]
8504    pub fn node_token(&self) -> Option<SyntaxToken> {
8505        support::token(&self.syntax, SyntaxKind::NODE_KW)
8506    }
8507    #[inline]
8508    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8509        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8510    }
8511    #[inline]
8512    pub fn tables_token(&self) -> Option<SyntaxToken> {
8513        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8514    }
8515    #[inline]
8516    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8517        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8518    }
8519}
8520
8521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8522pub struct DropView {
8523    pub(crate) syntax: SyntaxNode,
8524}
8525impl DropView {
8526    #[inline]
8527    pub fn if_exists(&self) -> Option<IfExists> {
8528        support::child(&self.syntax)
8529    }
8530    #[inline]
8531    pub fn path(&self) -> Option<Path> {
8532        support::child(&self.syntax)
8533    }
8534    #[inline]
8535    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8536        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8537    }
8538    #[inline]
8539    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8540        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8541    }
8542    #[inline]
8543    pub fn drop_token(&self) -> Option<SyntaxToken> {
8544        support::token(&self.syntax, SyntaxKind::DROP_KW)
8545    }
8546    #[inline]
8547    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8548        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8549    }
8550    #[inline]
8551    pub fn view_token(&self) -> Option<SyntaxToken> {
8552        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8553    }
8554}
8555
8556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8557pub struct EdgeAny {
8558    pub(crate) syntax: SyntaxNode,
8559}
8560impl EdgeAny {
8561    #[inline]
8562    pub fn is_label(&self) -> Option<IsLabel> {
8563        support::child(&self.syntax)
8564    }
8565    #[inline]
8566    pub fn name(&self) -> Option<Name> {
8567        support::child(&self.syntax)
8568    }
8569    #[inline]
8570    pub fn where_clause(&self) -> Option<WhereClause> {
8571        support::child(&self.syntax)
8572    }
8573    #[inline]
8574    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8575        support::token(&self.syntax, SyntaxKind::L_BRACK)
8576    }
8577    #[inline]
8578    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8579        support::token(&self.syntax, SyntaxKind::R_BRACK)
8580    }
8581    #[inline]
8582    pub fn minus_token(&self) -> Option<SyntaxToken> {
8583        support::token(&self.syntax, SyntaxKind::MINUS)
8584    }
8585}
8586
8587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8588pub struct EdgeLeft {
8589    pub(crate) syntax: SyntaxNode,
8590}
8591impl EdgeLeft {
8592    #[inline]
8593    pub fn is_label(&self) -> Option<IsLabel> {
8594        support::child(&self.syntax)
8595    }
8596    #[inline]
8597    pub fn name(&self) -> Option<Name> {
8598        support::child(&self.syntax)
8599    }
8600    #[inline]
8601    pub fn where_clause(&self) -> Option<WhereClause> {
8602        support::child(&self.syntax)
8603    }
8604    #[inline]
8605    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8606        support::token(&self.syntax, SyntaxKind::L_BRACK)
8607    }
8608    #[inline]
8609    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8610        support::token(&self.syntax, SyntaxKind::R_BRACK)
8611    }
8612    #[inline]
8613    pub fn minus_token(&self) -> Option<SyntaxToken> {
8614        support::token(&self.syntax, SyntaxKind::MINUS)
8615    }
8616    #[inline]
8617    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8618        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8619    }
8620}
8621
8622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8623pub struct EdgeRight {
8624    pub(crate) syntax: SyntaxNode,
8625}
8626impl EdgeRight {
8627    #[inline]
8628    pub fn is_label(&self) -> Option<IsLabel> {
8629        support::child(&self.syntax)
8630    }
8631    #[inline]
8632    pub fn name(&self) -> Option<Name> {
8633        support::child(&self.syntax)
8634    }
8635    #[inline]
8636    pub fn where_clause(&self) -> Option<WhereClause> {
8637        support::child(&self.syntax)
8638    }
8639    #[inline]
8640    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::L_BRACK)
8642    }
8643    #[inline]
8644    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::R_BRACK)
8646    }
8647    #[inline]
8648    pub fn minus_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::MINUS)
8650    }
8651    #[inline]
8652    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8653        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8654    }
8655}
8656
8657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8658pub struct EdgeTableDef {
8659    pub(crate) syntax: SyntaxNode,
8660}
8661impl EdgeTableDef {
8662    #[inline]
8663    pub fn column_list(&self) -> Option<ColumnList> {
8664        support::child(&self.syntax)
8665    }
8666    #[inline]
8667    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8668        support::child(&self.syntax)
8669    }
8670    #[inline]
8671    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8672        support::child(&self.syntax)
8673    }
8674    #[inline]
8675    pub fn name(&self) -> Option<Name> {
8676        support::child(&self.syntax)
8677    }
8678    #[inline]
8679    pub fn path(&self) -> Option<Path> {
8680        support::child(&self.syntax)
8681    }
8682    #[inline]
8683    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8684        support::child(&self.syntax)
8685    }
8686    #[inline]
8687    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8688        support::token(&self.syntax, SyntaxKind::L_PAREN)
8689    }
8690    #[inline]
8691    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8692        support::token(&self.syntax, SyntaxKind::R_PAREN)
8693    }
8694    #[inline]
8695    pub fn as_token(&self) -> Option<SyntaxToken> {
8696        support::token(&self.syntax, SyntaxKind::AS_KW)
8697    }
8698    #[inline]
8699    pub fn key_token(&self) -> Option<SyntaxToken> {
8700        support::token(&self.syntax, SyntaxKind::KEY_KW)
8701    }
8702}
8703
8704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8705pub struct EdgeTables {
8706    pub(crate) syntax: SyntaxNode,
8707}
8708impl EdgeTables {
8709    #[inline]
8710    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8711        support::children(&self.syntax)
8712    }
8713    #[inline]
8714    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8715        support::token(&self.syntax, SyntaxKind::L_PAREN)
8716    }
8717    #[inline]
8718    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8719        support::token(&self.syntax, SyntaxKind::R_PAREN)
8720    }
8721    #[inline]
8722    pub fn edge_token(&self) -> Option<SyntaxToken> {
8723        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8724    }
8725    #[inline]
8726    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8727        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8728    }
8729    #[inline]
8730    pub fn tables_token(&self) -> Option<SyntaxToken> {
8731        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8732    }
8733}
8734
8735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8736pub struct ElseClause {
8737    pub(crate) syntax: SyntaxNode,
8738}
8739impl ElseClause {
8740    #[inline]
8741    pub fn expr(&self) -> Option<Expr> {
8742        support::child(&self.syntax)
8743    }
8744    #[inline]
8745    pub fn else_token(&self) -> Option<SyntaxToken> {
8746        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8747    }
8748}
8749
8750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8751pub struct EmptyStmt {
8752    pub(crate) syntax: SyntaxNode,
8753}
8754impl EmptyStmt {
8755    #[inline]
8756    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8757        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8758    }
8759}
8760
8761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8762pub struct EnableAlwaysRule {
8763    pub(crate) syntax: SyntaxNode,
8764}
8765impl EnableAlwaysRule {
8766    #[inline]
8767    pub fn always_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8769    }
8770    #[inline]
8771    pub fn enable_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8773    }
8774    #[inline]
8775    pub fn rule_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::RULE_KW)
8777    }
8778}
8779
8780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8781pub struct EnableAlwaysTrigger {
8782    pub(crate) syntax: SyntaxNode,
8783}
8784impl EnableAlwaysTrigger {
8785    #[inline]
8786    pub fn always_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8788    }
8789    #[inline]
8790    pub fn enable_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8792    }
8793    #[inline]
8794    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8796    }
8797}
8798
8799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8800pub struct EnableReplicaRule {
8801    pub(crate) syntax: SyntaxNode,
8802}
8803impl EnableReplicaRule {
8804    #[inline]
8805    pub fn enable_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8807    }
8808    #[inline]
8809    pub fn replica_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8811    }
8812    #[inline]
8813    pub fn rule_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::RULE_KW)
8815    }
8816}
8817
8818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8819pub struct EnableReplicaTrigger {
8820    pub(crate) syntax: SyntaxNode,
8821}
8822impl EnableReplicaTrigger {
8823    #[inline]
8824    pub fn enable_token(&self) -> Option<SyntaxToken> {
8825        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8826    }
8827    #[inline]
8828    pub fn replica_token(&self) -> Option<SyntaxToken> {
8829        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8830    }
8831    #[inline]
8832    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8833        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8834    }
8835}
8836
8837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8838pub struct EnableRls {
8839    pub(crate) syntax: SyntaxNode,
8840}
8841impl EnableRls {
8842    #[inline]
8843    pub fn enable_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8845    }
8846    #[inline]
8847    pub fn level_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8849    }
8850    #[inline]
8851    pub fn row_token(&self) -> Option<SyntaxToken> {
8852        support::token(&self.syntax, SyntaxKind::ROW_KW)
8853    }
8854    #[inline]
8855    pub fn security_token(&self) -> Option<SyntaxToken> {
8856        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8857    }
8858}
8859
8860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8861pub struct EnableRule {
8862    pub(crate) syntax: SyntaxNode,
8863}
8864impl EnableRule {
8865    #[inline]
8866    pub fn enable_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8868    }
8869    #[inline]
8870    pub fn rule_token(&self) -> Option<SyntaxToken> {
8871        support::token(&self.syntax, SyntaxKind::RULE_KW)
8872    }
8873}
8874
8875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8876pub struct EnableTrigger {
8877    pub(crate) syntax: SyntaxNode,
8878}
8879impl EnableTrigger {
8880    #[inline]
8881    pub fn enable_token(&self) -> Option<SyntaxToken> {
8882        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8883    }
8884    #[inline]
8885    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8886        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8887    }
8888}
8889
8890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8891pub struct Enforced {
8892    pub(crate) syntax: SyntaxNode,
8893}
8894impl Enforced {
8895    #[inline]
8896    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8897        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8898    }
8899}
8900
8901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8902pub struct EventTriggerWhen {
8903    pub(crate) syntax: SyntaxNode,
8904}
8905impl EventTriggerWhen {
8906    #[inline]
8907    pub fn literals(&self) -> AstChildren<Literal> {
8908        support::children(&self.syntax)
8909    }
8910    #[inline]
8911    pub fn name_ref(&self) -> Option<NameRef> {
8912        support::child(&self.syntax)
8913    }
8914    #[inline]
8915    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8916        support::token(&self.syntax, SyntaxKind::L_PAREN)
8917    }
8918    #[inline]
8919    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8920        support::token(&self.syntax, SyntaxKind::R_PAREN)
8921    }
8922    #[inline]
8923    pub fn in_token(&self) -> Option<SyntaxToken> {
8924        support::token(&self.syntax, SyntaxKind::IN_KW)
8925    }
8926}
8927
8928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8929pub struct EventTriggerWhenClause {
8930    pub(crate) syntax: SyntaxNode,
8931}
8932impl EventTriggerWhenClause {
8933    #[inline]
8934    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8935        support::children(&self.syntax)
8936    }
8937    #[inline]
8938    pub fn when_token(&self) -> Option<SyntaxToken> {
8939        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8940    }
8941}
8942
8943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8944pub struct ExceptTableClause {
8945    pub(crate) syntax: SyntaxNode,
8946}
8947impl ExceptTableClause {
8948    #[inline]
8949    pub fn relation_names(&self) -> AstChildren<RelationName> {
8950        support::children(&self.syntax)
8951    }
8952    #[inline]
8953    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8954        support::token(&self.syntax, SyntaxKind::L_PAREN)
8955    }
8956    #[inline]
8957    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8958        support::token(&self.syntax, SyntaxKind::R_PAREN)
8959    }
8960    #[inline]
8961    pub fn except_token(&self) -> Option<SyntaxToken> {
8962        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8963    }
8964    #[inline]
8965    pub fn table_token(&self) -> Option<SyntaxToken> {
8966        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8967    }
8968}
8969
8970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8971pub struct ExceptTables {
8972    pub(crate) syntax: SyntaxNode,
8973}
8974impl ExceptTables {
8975    #[inline]
8976    pub fn name_refs(&self) -> AstChildren<NameRef> {
8977        support::children(&self.syntax)
8978    }
8979    #[inline]
8980    pub fn except_token(&self) -> Option<SyntaxToken> {
8981        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8982    }
8983}
8984
8985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8986pub struct ExcludeConstraint {
8987    pub(crate) syntax: SyntaxNode,
8988}
8989impl ExcludeConstraint {
8990    #[inline]
8991    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8992        support::child(&self.syntax)
8993    }
8994    #[inline]
8995    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8996        support::child(&self.syntax)
8997    }
8998    #[inline]
8999    pub fn constraint_name(&self) -> Option<ConstraintName> {
9000        support::child(&self.syntax)
9001    }
9002    #[inline]
9003    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
9004        support::child(&self.syntax)
9005    }
9006    #[inline]
9007    pub fn exclude_token(&self) -> Option<SyntaxToken> {
9008        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
9009    }
9010}
9011
9012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9013pub struct Execute {
9014    pub(crate) syntax: SyntaxNode,
9015}
9016impl Execute {
9017    #[inline]
9018    pub fn arg_list(&self) -> Option<ArgList> {
9019        support::child(&self.syntax)
9020    }
9021    #[inline]
9022    pub fn name_ref(&self) -> Option<NameRef> {
9023        support::child(&self.syntax)
9024    }
9025    #[inline]
9026    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9027        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9028    }
9029    #[inline]
9030    pub fn execute_token(&self) -> Option<SyntaxToken> {
9031        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
9032    }
9033}
9034
9035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9036pub struct ExistsFn {
9037    pub(crate) syntax: SyntaxNode,
9038}
9039impl ExistsFn {
9040    #[inline]
9041    pub fn select_variant(&self) -> Option<SelectVariant> {
9042        support::child(&self.syntax)
9043    }
9044    #[inline]
9045    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9046        support::token(&self.syntax, SyntaxKind::L_PAREN)
9047    }
9048    #[inline]
9049    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9050        support::token(&self.syntax, SyntaxKind::R_PAREN)
9051    }
9052    #[inline]
9053    pub fn exists_token(&self) -> Option<SyntaxToken> {
9054        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9055    }
9056}
9057
9058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9059pub struct Explain {
9060    pub(crate) syntax: SyntaxNode,
9061}
9062impl Explain {
9063    #[inline]
9064    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
9065        support::child(&self.syntax)
9066    }
9067    #[inline]
9068    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9069        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9070    }
9071    #[inline]
9072    pub fn analyse_token(&self) -> Option<SyntaxToken> {
9073        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
9074    }
9075    #[inline]
9076    pub fn analyze_token(&self) -> Option<SyntaxToken> {
9077        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
9078    }
9079    #[inline]
9080    pub fn explain_token(&self) -> Option<SyntaxToken> {
9081        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
9082    }
9083    #[inline]
9084    pub fn verbose_token(&self) -> Option<SyntaxToken> {
9085        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
9086    }
9087}
9088
9089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9090pub struct ExprAsName {
9091    pub(crate) syntax: SyntaxNode,
9092}
9093impl ExprAsName {
9094    #[inline]
9095    pub fn as_name(&self) -> Option<AsName> {
9096        support::child(&self.syntax)
9097    }
9098    #[inline]
9099    pub fn expr(&self) -> Option<Expr> {
9100        support::child(&self.syntax)
9101    }
9102}
9103
9104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9105pub struct ExprAsNameList {
9106    pub(crate) syntax: SyntaxNode,
9107}
9108impl ExprAsNameList {
9109    #[inline]
9110    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
9111        support::children(&self.syntax)
9112    }
9113}
9114
9115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9116pub struct ExprType {
9117    pub(crate) syntax: SyntaxNode,
9118}
9119impl ExprType {
9120    #[inline]
9121    pub fn expr(&self) -> Option<Expr> {
9122        support::child(&self.syntax)
9123    }
9124}
9125
9126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9127pub struct ExtractFn {
9128    pub(crate) syntax: SyntaxNode,
9129}
9130impl ExtractFn {
9131    #[inline]
9132    pub fn expr(&self) -> Option<Expr> {
9133        support::child(&self.syntax)
9134    }
9135    #[inline]
9136    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9137        support::token(&self.syntax, SyntaxKind::L_PAREN)
9138    }
9139    #[inline]
9140    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9141        support::token(&self.syntax, SyntaxKind::R_PAREN)
9142    }
9143    #[inline]
9144    pub fn day_token(&self) -> Option<SyntaxToken> {
9145        support::token(&self.syntax, SyntaxKind::DAY_KW)
9146    }
9147    #[inline]
9148    pub fn extract_token(&self) -> Option<SyntaxToken> {
9149        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
9150    }
9151    #[inline]
9152    pub fn from_token(&self) -> Option<SyntaxToken> {
9153        support::token(&self.syntax, SyntaxKind::FROM_KW)
9154    }
9155    #[inline]
9156    pub fn hour_token(&self) -> Option<SyntaxToken> {
9157        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9158    }
9159    #[inline]
9160    pub fn ident_token(&self) -> Option<SyntaxToken> {
9161        support::token(&self.syntax, SyntaxKind::IDENT)
9162    }
9163    #[inline]
9164    pub fn minute_token(&self) -> Option<SyntaxToken> {
9165        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9166    }
9167    #[inline]
9168    pub fn month_token(&self) -> Option<SyntaxToken> {
9169        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9170    }
9171    #[inline]
9172    pub fn second_token(&self) -> Option<SyntaxToken> {
9173        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9174    }
9175    #[inline]
9176    pub fn string_token(&self) -> Option<SyntaxToken> {
9177        support::token(&self.syntax, SyntaxKind::STRING_KW)
9178    }
9179    #[inline]
9180    pub fn year_token(&self) -> Option<SyntaxToken> {
9181        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9182    }
9183}
9184
9185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9186pub struct FatArrow {
9187    pub(crate) syntax: SyntaxNode,
9188}
9189impl FatArrow {
9190    #[inline]
9191    pub fn eq_token(&self) -> Option<SyntaxToken> {
9192        support::token(&self.syntax, SyntaxKind::EQ)
9193    }
9194    #[inline]
9195    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9196        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9197    }
9198}
9199
9200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9201pub struct FdwOption {
9202    pub(crate) syntax: SyntaxNode,
9203}
9204impl FdwOption {
9205    #[inline]
9206    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9207        support::child(&self.syntax)
9208    }
9209    #[inline]
9210    pub fn path(&self) -> Option<Path> {
9211        support::child(&self.syntax)
9212    }
9213    #[inline]
9214    pub fn connection_token(&self) -> Option<SyntaxToken> {
9215        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
9216    }
9217    #[inline]
9218    pub fn handler_token(&self) -> Option<SyntaxToken> {
9219        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9220    }
9221    #[inline]
9222    pub fn no_token(&self) -> Option<SyntaxToken> {
9223        support::token(&self.syntax, SyntaxKind::NO_KW)
9224    }
9225    #[inline]
9226    pub fn options_token(&self) -> Option<SyntaxToken> {
9227        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
9228    }
9229    #[inline]
9230    pub fn validator_token(&self) -> Option<SyntaxToken> {
9231        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
9232    }
9233}
9234
9235#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9236pub struct FdwOptionList {
9237    pub(crate) syntax: SyntaxNode,
9238}
9239impl FdwOptionList {
9240    #[inline]
9241    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
9242        support::children(&self.syntax)
9243    }
9244}
9245
9246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9247pub struct Fetch {
9248    pub(crate) syntax: SyntaxNode,
9249}
9250impl Fetch {
9251    #[inline]
9252    pub fn name_ref(&self) -> Option<NameRef> {
9253        support::child(&self.syntax)
9254    }
9255    #[inline]
9256    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9257        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9258    }
9259    #[inline]
9260    pub fn fetch_token(&self) -> Option<SyntaxToken> {
9261        support::token(&self.syntax, SyntaxKind::FETCH_KW)
9262    }
9263    #[inline]
9264    pub fn from_token(&self) -> Option<SyntaxToken> {
9265        support::token(&self.syntax, SyntaxKind::FROM_KW)
9266    }
9267    #[inline]
9268    pub fn in_token(&self) -> Option<SyntaxToken> {
9269        support::token(&self.syntax, SyntaxKind::IN_KW)
9270    }
9271}
9272
9273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9274pub struct FetchClause {
9275    pub(crate) syntax: SyntaxNode,
9276}
9277impl FetchClause {
9278    #[inline]
9279    pub fn expr(&self) -> Option<Expr> {
9280        support::child(&self.syntax)
9281    }
9282    #[inline]
9283    pub fn fetch_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::FETCH_KW)
9285    }
9286    #[inline]
9287    pub fn first_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::FIRST_KW)
9289    }
9290    #[inline]
9291    pub fn next_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::NEXT_KW)
9293    }
9294    #[inline]
9295    pub fn only_token(&self) -> Option<SyntaxToken> {
9296        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9297    }
9298    #[inline]
9299    pub fn row_token(&self) -> Option<SyntaxToken> {
9300        support::token(&self.syntax, SyntaxKind::ROW_KW)
9301    }
9302    #[inline]
9303    pub fn rows_token(&self) -> Option<SyntaxToken> {
9304        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9305    }
9306    #[inline]
9307    pub fn ties_token(&self) -> Option<SyntaxToken> {
9308        support::token(&self.syntax, SyntaxKind::TIES_KW)
9309    }
9310    #[inline]
9311    pub fn with_token(&self) -> Option<SyntaxToken> {
9312        support::token(&self.syntax, SyntaxKind::WITH_KW)
9313    }
9314}
9315
9316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9317pub struct FieldExpr {
9318    pub(crate) syntax: SyntaxNode,
9319}
9320impl FieldExpr {
9321    #[inline]
9322    pub fn star_token(&self) -> Option<SyntaxToken> {
9323        support::token(&self.syntax, SyntaxKind::STAR)
9324    }
9325    #[inline]
9326    pub fn dot_token(&self) -> Option<SyntaxToken> {
9327        support::token(&self.syntax, SyntaxKind::DOT)
9328    }
9329}
9330
9331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9332pub struct FilterClause {
9333    pub(crate) syntax: SyntaxNode,
9334}
9335impl FilterClause {
9336    #[inline]
9337    pub fn expr(&self) -> Option<Expr> {
9338        support::child(&self.syntax)
9339    }
9340    #[inline]
9341    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9342        support::token(&self.syntax, SyntaxKind::L_PAREN)
9343    }
9344    #[inline]
9345    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9346        support::token(&self.syntax, SyntaxKind::R_PAREN)
9347    }
9348    #[inline]
9349    pub fn filter_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::FILTER_KW)
9351    }
9352    #[inline]
9353    pub fn where_token(&self) -> Option<SyntaxToken> {
9354        support::token(&self.syntax, SyntaxKind::WHERE_KW)
9355    }
9356}
9357
9358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9359pub struct ForPortionOf {
9360    pub(crate) syntax: SyntaxNode,
9361}
9362impl ForPortionOf {
9363    #[inline]
9364    pub fn expr(&self) -> Option<Expr> {
9365        support::child(&self.syntax)
9366    }
9367    #[inline]
9368    pub fn name_ref(&self) -> Option<NameRef> {
9369        support::child(&self.syntax)
9370    }
9371    #[inline]
9372    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::L_PAREN)
9374    }
9375    #[inline]
9376    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::R_PAREN)
9378    }
9379    #[inline]
9380    pub fn for_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::FOR_KW)
9382    }
9383    #[inline]
9384    pub fn from_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::FROM_KW)
9386    }
9387    #[inline]
9388    pub fn of_token(&self) -> Option<SyntaxToken> {
9389        support::token(&self.syntax, SyntaxKind::OF_KW)
9390    }
9391    #[inline]
9392    pub fn portion_token(&self) -> Option<SyntaxToken> {
9393        support::token(&self.syntax, SyntaxKind::PORTION_KW)
9394    }
9395    #[inline]
9396    pub fn to_token(&self) -> Option<SyntaxToken> {
9397        support::token(&self.syntax, SyntaxKind::TO_KW)
9398    }
9399}
9400
9401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9402pub struct ForProvider {
9403    pub(crate) syntax: SyntaxNode,
9404}
9405impl ForProvider {
9406    #[inline]
9407    pub fn literal(&self) -> Option<Literal> {
9408        support::child(&self.syntax)
9409    }
9410    #[inline]
9411    pub fn name_ref(&self) -> Option<NameRef> {
9412        support::child(&self.syntax)
9413    }
9414    #[inline]
9415    pub fn for_token(&self) -> Option<SyntaxToken> {
9416        support::token(&self.syntax, SyntaxKind::FOR_KW)
9417    }
9418}
9419
9420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9421pub struct ForceRls {
9422    pub(crate) syntax: SyntaxNode,
9423}
9424impl ForceRls {
9425    #[inline]
9426    pub fn force_token(&self) -> Option<SyntaxToken> {
9427        support::token(&self.syntax, SyntaxKind::FORCE_KW)
9428    }
9429    #[inline]
9430    pub fn level_token(&self) -> Option<SyntaxToken> {
9431        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
9432    }
9433    #[inline]
9434    pub fn row_token(&self) -> Option<SyntaxToken> {
9435        support::token(&self.syntax, SyntaxKind::ROW_KW)
9436    }
9437    #[inline]
9438    pub fn security_token(&self) -> Option<SyntaxToken> {
9439        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
9440    }
9441}
9442
9443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9444pub struct ForeignKeyConstraint {
9445    pub(crate) syntax: SyntaxNode,
9446}
9447impl ForeignKeyConstraint {
9448    #[inline]
9449    pub fn constraint_name(&self) -> Option<ConstraintName> {
9450        support::child(&self.syntax)
9451    }
9452    #[inline]
9453    pub fn match_type(&self) -> Option<MatchType> {
9454        support::child(&self.syntax)
9455    }
9456    #[inline]
9457    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
9458        support::child(&self.syntax)
9459    }
9460    #[inline]
9461    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
9462        support::child(&self.syntax)
9463    }
9464    #[inline]
9465    pub fn path(&self) -> Option<Path> {
9466        support::child(&self.syntax)
9467    }
9468    #[inline]
9469    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9470        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9471    }
9472    #[inline]
9473    pub fn key_token(&self) -> Option<SyntaxToken> {
9474        support::token(&self.syntax, SyntaxKind::KEY_KW)
9475    }
9476    #[inline]
9477    pub fn references_token(&self) -> Option<SyntaxToken> {
9478        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
9479    }
9480}
9481
9482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9483pub struct FrameClause {
9484    pub(crate) syntax: SyntaxNode,
9485}
9486impl FrameClause {
9487    #[inline]
9488    pub fn groups_token(&self) -> Option<SyntaxToken> {
9489        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
9490    }
9491    #[inline]
9492    pub fn range_token(&self) -> Option<SyntaxToken> {
9493        support::token(&self.syntax, SyntaxKind::RANGE_KW)
9494    }
9495    #[inline]
9496    pub fn rows_token(&self) -> Option<SyntaxToken> {
9497        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9498    }
9499}
9500
9501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9502pub struct FromClause {
9503    pub(crate) syntax: SyntaxNode,
9504}
9505impl FromClause {
9506    #[inline]
9507    pub fn from_items(&self) -> AstChildren<FromItem> {
9508        support::children(&self.syntax)
9509    }
9510    #[inline]
9511    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
9512        support::children(&self.syntax)
9513    }
9514    #[inline]
9515    pub fn from_token(&self) -> Option<SyntaxToken> {
9516        support::token(&self.syntax, SyntaxKind::FROM_KW)
9517    }
9518}
9519
9520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9521pub struct FromItem {
9522    pub(crate) syntax: SyntaxNode,
9523}
9524impl FromItem {
9525    #[inline]
9526    pub fn alias(&self) -> Option<Alias> {
9527        support::child(&self.syntax)
9528    }
9529    #[inline]
9530    pub fn call_expr(&self) -> Option<CallExpr> {
9531        support::child(&self.syntax)
9532    }
9533    #[inline]
9534    pub fn cast_expr(&self) -> Option<CastExpr> {
9535        support::child(&self.syntax)
9536    }
9537    #[inline]
9538    pub fn field_expr(&self) -> Option<FieldExpr> {
9539        support::child(&self.syntax)
9540    }
9541    #[inline]
9542    pub fn json_table(&self) -> Option<JsonTable> {
9543        support::child(&self.syntax)
9544    }
9545    #[inline]
9546    pub fn name_ref(&self) -> Option<NameRef> {
9547        support::child(&self.syntax)
9548    }
9549    #[inline]
9550    pub fn paren_expr(&self) -> Option<ParenExpr> {
9551        support::child(&self.syntax)
9552    }
9553    #[inline]
9554    pub fn paren_select(&self) -> Option<ParenSelect> {
9555        support::child(&self.syntax)
9556    }
9557    #[inline]
9558    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9559        support::child(&self.syntax)
9560    }
9561    #[inline]
9562    pub fn xml_table(&self) -> Option<XmlTable> {
9563        support::child(&self.syntax)
9564    }
9565    #[inline]
9566    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9567        support::token(&self.syntax, SyntaxKind::L_PAREN)
9568    }
9569    #[inline]
9570    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9571        support::token(&self.syntax, SyntaxKind::R_PAREN)
9572    }
9573    #[inline]
9574    pub fn star_token(&self) -> Option<SyntaxToken> {
9575        support::token(&self.syntax, SyntaxKind::STAR)
9576    }
9577    #[inline]
9578    pub fn from_token(&self) -> Option<SyntaxToken> {
9579        support::token(&self.syntax, SyntaxKind::FROM_KW)
9580    }
9581    #[inline]
9582    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9583        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9584    }
9585    #[inline]
9586    pub fn only_token(&self) -> Option<SyntaxToken> {
9587        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9588    }
9589    #[inline]
9590    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9591        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9592    }
9593    #[inline]
9594    pub fn rows_token(&self) -> Option<SyntaxToken> {
9595        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9596    }
9597    #[inline]
9598    pub fn with_token(&self) -> Option<SyntaxToken> {
9599        support::token(&self.syntax, SyntaxKind::WITH_KW)
9600    }
9601}
9602
9603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9604pub struct FromTable {
9605    pub(crate) syntax: SyntaxNode,
9606}
9607impl FromTable {
9608    #[inline]
9609    pub fn path(&self) -> Option<Path> {
9610        support::child(&self.syntax)
9611    }
9612    #[inline]
9613    pub fn from_token(&self) -> Option<SyntaxToken> {
9614        support::token(&self.syntax, SyntaxKind::FROM_KW)
9615    }
9616}
9617
9618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9619pub struct FuncOptionList {
9620    pub(crate) syntax: SyntaxNode,
9621}
9622impl FuncOptionList {
9623    #[inline]
9624    pub fn options(&self) -> AstChildren<FuncOption> {
9625        support::children(&self.syntax)
9626    }
9627}
9628
9629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9630pub struct FunctionSig {
9631    pub(crate) syntax: SyntaxNode,
9632}
9633impl FunctionSig {
9634    #[inline]
9635    pub fn param_list(&self) -> Option<ParamList> {
9636        support::child(&self.syntax)
9637    }
9638    #[inline]
9639    pub fn path(&self) -> Option<Path> {
9640        support::child(&self.syntax)
9641    }
9642}
9643
9644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9645pub struct FunctionSigList {
9646    pub(crate) syntax: SyntaxNode,
9647}
9648impl FunctionSigList {
9649    #[inline]
9650    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9651        support::children(&self.syntax)
9652    }
9653}
9654
9655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9656pub struct GeneratedConstraint {
9657    pub(crate) syntax: SyntaxNode,
9658}
9659impl GeneratedConstraint {
9660    #[inline]
9661    pub fn expr(&self) -> Option<Expr> {
9662        support::child(&self.syntax)
9663    }
9664    #[inline]
9665    pub fn name_ref(&self) -> Option<NameRef> {
9666        support::child(&self.syntax)
9667    }
9668    #[inline]
9669    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9670        support::child(&self.syntax)
9671    }
9672    #[inline]
9673    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9674        support::token(&self.syntax, SyntaxKind::L_PAREN)
9675    }
9676    #[inline]
9677    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9678        support::token(&self.syntax, SyntaxKind::R_PAREN)
9679    }
9680    #[inline]
9681    pub fn always_token(&self) -> Option<SyntaxToken> {
9682        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9683    }
9684    #[inline]
9685    pub fn as_token(&self) -> Option<SyntaxToken> {
9686        support::token(&self.syntax, SyntaxKind::AS_KW)
9687    }
9688    #[inline]
9689    pub fn by_token(&self) -> Option<SyntaxToken> {
9690        support::token(&self.syntax, SyntaxKind::BY_KW)
9691    }
9692    #[inline]
9693    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9694        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9695    }
9696    #[inline]
9697    pub fn default_token(&self) -> Option<SyntaxToken> {
9698        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9699    }
9700    #[inline]
9701    pub fn generated_token(&self) -> Option<SyntaxToken> {
9702        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9703    }
9704    #[inline]
9705    pub fn identity_token(&self) -> Option<SyntaxToken> {
9706        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9707    }
9708    #[inline]
9709    pub fn stored_token(&self) -> Option<SyntaxToken> {
9710        support::token(&self.syntax, SyntaxKind::STORED_KW)
9711    }
9712}
9713
9714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9715pub struct Grant {
9716    pub(crate) syntax: SyntaxNode,
9717}
9718impl Grant {
9719    #[inline]
9720    pub fn name_refs(&self) -> AstChildren<NameRef> {
9721        support::children(&self.syntax)
9722    }
9723    #[inline]
9724    pub fn paths(&self) -> AstChildren<Path> {
9725        support::children(&self.syntax)
9726    }
9727    #[inline]
9728    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9729        support::child(&self.syntax)
9730    }
9731    #[inline]
9732    pub fn role_ref(&self) -> Option<RoleRef> {
9733        support::child(&self.syntax)
9734    }
9735    #[inline]
9736    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9737        support::child(&self.syntax)
9738    }
9739    #[inline]
9740    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9741        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9742    }
9743    #[inline]
9744    pub fn all_token(&self) -> Option<SyntaxToken> {
9745        support::token(&self.syntax, SyntaxKind::ALL_KW)
9746    }
9747    #[inline]
9748    pub fn by_token(&self) -> Option<SyntaxToken> {
9749        support::token(&self.syntax, SyntaxKind::BY_KW)
9750    }
9751    #[inline]
9752    pub fn grant_token(&self) -> Option<SyntaxToken> {
9753        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9754    }
9755    #[inline]
9756    pub fn granted_token(&self) -> Option<SyntaxToken> {
9757        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9758    }
9759    #[inline]
9760    pub fn in_token(&self) -> Option<SyntaxToken> {
9761        support::token(&self.syntax, SyntaxKind::IN_KW)
9762    }
9763    #[inline]
9764    pub fn on_token(&self) -> Option<SyntaxToken> {
9765        support::token(&self.syntax, SyntaxKind::ON_KW)
9766    }
9767    #[inline]
9768    pub fn option_token(&self) -> Option<SyntaxToken> {
9769        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9770    }
9771    #[inline]
9772    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9773        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9774    }
9775    #[inline]
9776    pub fn schema_token(&self) -> Option<SyntaxToken> {
9777        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9778    }
9779    #[inline]
9780    pub fn table_token(&self) -> Option<SyntaxToken> {
9781        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9782    }
9783    #[inline]
9784    pub fn tables_token(&self) -> Option<SyntaxToken> {
9785        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9786    }
9787    #[inline]
9788    pub fn to_token(&self) -> Option<SyntaxToken> {
9789        support::token(&self.syntax, SyntaxKind::TO_KW)
9790    }
9791    #[inline]
9792    pub fn with_token(&self) -> Option<SyntaxToken> {
9793        support::token(&self.syntax, SyntaxKind::WITH_KW)
9794    }
9795}
9796
9797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9798pub struct GrantDefaultPrivileges {
9799    pub(crate) syntax: SyntaxNode,
9800}
9801impl GrantDefaultPrivileges {
9802    #[inline]
9803    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9804        support::child(&self.syntax)
9805    }
9806    #[inline]
9807    pub fn privileges(&self) -> Option<Privileges> {
9808        support::child(&self.syntax)
9809    }
9810    #[inline]
9811    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9812        support::child(&self.syntax)
9813    }
9814    #[inline]
9815    pub fn grant_token(&self) -> Option<SyntaxToken> {
9816        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9817    }
9818    #[inline]
9819    pub fn on_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::ON_KW)
9821    }
9822    #[inline]
9823    pub fn option_token(&self) -> Option<SyntaxToken> {
9824        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9825    }
9826    #[inline]
9827    pub fn to_token(&self) -> Option<SyntaxToken> {
9828        support::token(&self.syntax, SyntaxKind::TO_KW)
9829    }
9830    #[inline]
9831    pub fn with_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::WITH_KW)
9833    }
9834}
9835
9836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9837pub struct GraphPatternQualifier {
9838    pub(crate) syntax: SyntaxNode,
9839}
9840impl GraphPatternQualifier {
9841    #[inline]
9842    pub fn literal(&self) -> Option<Literal> {
9843        support::child(&self.syntax)
9844    }
9845    #[inline]
9846    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9847        support::token(&self.syntax, SyntaxKind::L_CURLY)
9848    }
9849    #[inline]
9850    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9851        support::token(&self.syntax, SyntaxKind::R_CURLY)
9852    }
9853    #[inline]
9854    pub fn comma_token(&self) -> Option<SyntaxToken> {
9855        support::token(&self.syntax, SyntaxKind::COMMA)
9856    }
9857}
9858
9859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9860pub struct GraphTableFn {
9861    pub(crate) syntax: SyntaxNode,
9862}
9863impl GraphTableFn {
9864    #[inline]
9865    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9866        support::child(&self.syntax)
9867    }
9868    #[inline]
9869    pub fn path(&self) -> Option<Path> {
9870        support::child(&self.syntax)
9871    }
9872    #[inline]
9873    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9874        support::child(&self.syntax)
9875    }
9876    #[inline]
9877    pub fn where_clause(&self) -> Option<WhereClause> {
9878        support::child(&self.syntax)
9879    }
9880    #[inline]
9881    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9882        support::token(&self.syntax, SyntaxKind::L_PAREN)
9883    }
9884    #[inline]
9885    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::R_PAREN)
9887    }
9888    #[inline]
9889    pub fn columns_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9891    }
9892    #[inline]
9893    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9894        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9895    }
9896    #[inline]
9897    pub fn match_token(&self) -> Option<SyntaxToken> {
9898        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9899    }
9900}
9901
9902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9903pub struct GroupByClause {
9904    pub(crate) syntax: SyntaxNode,
9905}
9906impl GroupByClause {
9907    #[inline]
9908    pub fn group_by_list(&self) -> Option<GroupByList> {
9909        support::child(&self.syntax)
9910    }
9911    #[inline]
9912    pub fn all_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::ALL_KW)
9914    }
9915    #[inline]
9916    pub fn by_token(&self) -> Option<SyntaxToken> {
9917        support::token(&self.syntax, SyntaxKind::BY_KW)
9918    }
9919    #[inline]
9920    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9921        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9922    }
9923    #[inline]
9924    pub fn group_token(&self) -> Option<SyntaxToken> {
9925        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9926    }
9927}
9928
9929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9930pub struct GroupByList {
9931    pub(crate) syntax: SyntaxNode,
9932}
9933impl GroupByList {
9934    #[inline]
9935    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9936        support::children(&self.syntax)
9937    }
9938}
9939
9940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9941pub struct GroupingCube {
9942    pub(crate) syntax: SyntaxNode,
9943}
9944impl GroupingCube {
9945    #[inline]
9946    pub fn expr(&self) -> Option<Expr> {
9947        support::child(&self.syntax)
9948    }
9949    #[inline]
9950    pub fn cube_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9952    }
9953}
9954
9955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9956pub struct GroupingExpr {
9957    pub(crate) syntax: SyntaxNode,
9958}
9959impl GroupingExpr {
9960    #[inline]
9961    pub fn expr(&self) -> Option<Expr> {
9962        support::child(&self.syntax)
9963    }
9964}
9965
9966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9967pub struct GroupingRollup {
9968    pub(crate) syntax: SyntaxNode,
9969}
9970impl GroupingRollup {
9971    #[inline]
9972    pub fn expr(&self) -> Option<Expr> {
9973        support::child(&self.syntax)
9974    }
9975    #[inline]
9976    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9977        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9978    }
9979}
9980
9981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9982pub struct GroupingSets {
9983    pub(crate) syntax: SyntaxNode,
9984}
9985impl GroupingSets {
9986    #[inline]
9987    pub fn expr(&self) -> Option<Expr> {
9988        support::child(&self.syntax)
9989    }
9990    #[inline]
9991    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9992        support::token(&self.syntax, SyntaxKind::L_PAREN)
9993    }
9994    #[inline]
9995    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9996        support::token(&self.syntax, SyntaxKind::R_PAREN)
9997    }
9998    #[inline]
9999    pub fn grouping_token(&self) -> Option<SyntaxToken> {
10000        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
10001    }
10002    #[inline]
10003    pub fn sets_token(&self) -> Option<SyntaxToken> {
10004        support::token(&self.syntax, SyntaxKind::SETS_KW)
10005    }
10006}
10007
10008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10009pub struct Gteq {
10010    pub(crate) syntax: SyntaxNode,
10011}
10012impl Gteq {
10013    #[inline]
10014    pub fn eq_token(&self) -> Option<SyntaxToken> {
10015        support::token(&self.syntax, SyntaxKind::EQ)
10016    }
10017    #[inline]
10018    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10019        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10020    }
10021}
10022
10023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10024pub struct HandlerClause {
10025    pub(crate) syntax: SyntaxNode,
10026}
10027impl HandlerClause {
10028    #[inline]
10029    pub fn path(&self) -> Option<Path> {
10030        support::child(&self.syntax)
10031    }
10032    #[inline]
10033    pub fn handler_token(&self) -> Option<SyntaxToken> {
10034        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
10035    }
10036}
10037
10038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10039pub struct HavingClause {
10040    pub(crate) syntax: SyntaxNode,
10041}
10042impl HavingClause {
10043    #[inline]
10044    pub fn expr(&self) -> Option<Expr> {
10045        support::child(&self.syntax)
10046    }
10047    #[inline]
10048    pub fn having_token(&self) -> Option<SyntaxToken> {
10049        support::token(&self.syntax, SyntaxKind::HAVING_KW)
10050    }
10051}
10052
10053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10054pub struct IfExists {
10055    pub(crate) syntax: SyntaxNode,
10056}
10057impl IfExists {
10058    #[inline]
10059    pub fn exists_token(&self) -> Option<SyntaxToken> {
10060        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10061    }
10062    #[inline]
10063    pub fn if_token(&self) -> Option<SyntaxToken> {
10064        support::token(&self.syntax, SyntaxKind::IF_KW)
10065    }
10066}
10067
10068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10069pub struct IfNotExists {
10070    pub(crate) syntax: SyntaxNode,
10071}
10072impl IfNotExists {
10073    #[inline]
10074    pub fn exists_token(&self) -> Option<SyntaxToken> {
10075        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10076    }
10077    #[inline]
10078    pub fn if_token(&self) -> Option<SyntaxToken> {
10079        support::token(&self.syntax, SyntaxKind::IF_KW)
10080    }
10081    #[inline]
10082    pub fn not_token(&self) -> Option<SyntaxToken> {
10083        support::token(&self.syntax, SyntaxKind::NOT_KW)
10084    }
10085}
10086
10087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10088pub struct ImportForeignSchema {
10089    pub(crate) syntax: SyntaxNode,
10090}
10091impl ImportForeignSchema {
10092    #[inline]
10093    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
10094        support::child(&self.syntax)
10095    }
10096    #[inline]
10097    pub fn except_tables(&self) -> Option<ExceptTables> {
10098        support::child(&self.syntax)
10099    }
10100    #[inline]
10101    pub fn into_schema(&self) -> Option<IntoSchema> {
10102        support::child(&self.syntax)
10103    }
10104    #[inline]
10105    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
10106        support::child(&self.syntax)
10107    }
10108    #[inline]
10109    pub fn name_ref(&self) -> Option<NameRef> {
10110        support::child(&self.syntax)
10111    }
10112    #[inline]
10113    pub fn server_name(&self) -> Option<ServerName> {
10114        support::child(&self.syntax)
10115    }
10116    #[inline]
10117    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10118        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10119    }
10120    #[inline]
10121    pub fn foreign_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
10123    }
10124    #[inline]
10125    pub fn from_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::FROM_KW)
10127    }
10128    #[inline]
10129    pub fn import_token(&self) -> Option<SyntaxToken> {
10130        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
10131    }
10132    #[inline]
10133    pub fn schema_token(&self) -> Option<SyntaxToken> {
10134        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
10135    }
10136}
10137
10138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10139pub struct IndexExpr {
10140    pub(crate) syntax: SyntaxNode,
10141}
10142impl IndexExpr {
10143    #[inline]
10144    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
10145        support::token(&self.syntax, SyntaxKind::L_BRACK)
10146    }
10147    #[inline]
10148    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::R_BRACK)
10150    }
10151}
10152
10153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10154pub struct Inherit {
10155    pub(crate) syntax: SyntaxNode,
10156}
10157impl Inherit {
10158    #[inline]
10159    pub fn path(&self) -> Option<Path> {
10160        support::child(&self.syntax)
10161    }
10162    #[inline]
10163    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10164        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10165    }
10166}
10167
10168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10169pub struct InheritTable {
10170    pub(crate) syntax: SyntaxNode,
10171}
10172impl InheritTable {
10173    #[inline]
10174    pub fn path(&self) -> Option<Path> {
10175        support::child(&self.syntax)
10176    }
10177    #[inline]
10178    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10179        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10180    }
10181}
10182
10183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10184pub struct Inherits {
10185    pub(crate) syntax: SyntaxNode,
10186}
10187impl Inherits {
10188    #[inline]
10189    pub fn paths(&self) -> AstChildren<Path> {
10190        support::children(&self.syntax)
10191    }
10192    #[inline]
10193    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10194        support::token(&self.syntax, SyntaxKind::L_PAREN)
10195    }
10196    #[inline]
10197    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10198        support::token(&self.syntax, SyntaxKind::R_PAREN)
10199    }
10200    #[inline]
10201    pub fn inherits_token(&self) -> Option<SyntaxToken> {
10202        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
10203    }
10204}
10205
10206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10207pub struct InitiallyDeferredConstraintOption {
10208    pub(crate) syntax: SyntaxNode,
10209}
10210impl InitiallyDeferredConstraintOption {
10211    #[inline]
10212    pub fn deferred_token(&self) -> Option<SyntaxToken> {
10213        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
10214    }
10215    #[inline]
10216    pub fn initially_token(&self) -> Option<SyntaxToken> {
10217        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
10218    }
10219}
10220
10221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10222pub struct InitiallyImmediateConstraintOption {
10223    pub(crate) syntax: SyntaxNode,
10224}
10225impl InitiallyImmediateConstraintOption {
10226    #[inline]
10227    pub fn immediate_token(&self) -> Option<SyntaxToken> {
10228        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
10229    }
10230    #[inline]
10231    pub fn initially_token(&self) -> Option<SyntaxToken> {
10232        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
10233    }
10234}
10235
10236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10237pub struct Insert {
10238    pub(crate) syntax: SyntaxNode,
10239}
10240impl Insert {
10241    #[inline]
10242    pub fn alias(&self) -> Option<Alias> {
10243        support::child(&self.syntax)
10244    }
10245    #[inline]
10246    pub fn column_list(&self) -> Option<ColumnList> {
10247        support::child(&self.syntax)
10248    }
10249    #[inline]
10250    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
10251        support::child(&self.syntax)
10252    }
10253    #[inline]
10254    pub fn path(&self) -> Option<Path> {
10255        support::child(&self.syntax)
10256    }
10257    #[inline]
10258    pub fn returning_clause(&self) -> Option<ReturningClause> {
10259        support::child(&self.syntax)
10260    }
10261    #[inline]
10262    pub fn select_variant(&self) -> Option<SelectVariant> {
10263        support::child(&self.syntax)
10264    }
10265    #[inline]
10266    pub fn with_clause(&self) -> Option<WithClause> {
10267        support::child(&self.syntax)
10268    }
10269    #[inline]
10270    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10271        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10272    }
10273    #[inline]
10274    pub fn default_token(&self) -> Option<SyntaxToken> {
10275        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10276    }
10277    #[inline]
10278    pub fn insert_token(&self) -> Option<SyntaxToken> {
10279        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10280    }
10281    #[inline]
10282    pub fn into_token(&self) -> Option<SyntaxToken> {
10283        support::token(&self.syntax, SyntaxKind::INTO_KW)
10284    }
10285    #[inline]
10286    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10287        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10288    }
10289    #[inline]
10290    pub fn system_token(&self) -> Option<SyntaxToken> {
10291        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10292    }
10293    #[inline]
10294    pub fn user_token(&self) -> Option<SyntaxToken> {
10295        support::token(&self.syntax, SyntaxKind::USER_KW)
10296    }
10297    #[inline]
10298    pub fn value_token(&self) -> Option<SyntaxToken> {
10299        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10300    }
10301    #[inline]
10302    pub fn values_token(&self) -> Option<SyntaxToken> {
10303        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10304    }
10305}
10306
10307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10308pub struct IntervalType {
10309    pub(crate) syntax: SyntaxNode,
10310}
10311impl IntervalType {
10312    #[inline]
10313    pub fn literal(&self) -> Option<Literal> {
10314        support::child(&self.syntax)
10315    }
10316    #[inline]
10317    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::L_PAREN)
10319    }
10320    #[inline]
10321    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::R_PAREN)
10323    }
10324    #[inline]
10325    pub fn day_token(&self) -> Option<SyntaxToken> {
10326        support::token(&self.syntax, SyntaxKind::DAY_KW)
10327    }
10328    #[inline]
10329    pub fn hour_token(&self) -> Option<SyntaxToken> {
10330        support::token(&self.syntax, SyntaxKind::HOUR_KW)
10331    }
10332    #[inline]
10333    pub fn interval_token(&self) -> Option<SyntaxToken> {
10334        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
10335    }
10336    #[inline]
10337    pub fn minute_token(&self) -> Option<SyntaxToken> {
10338        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
10339    }
10340    #[inline]
10341    pub fn month_token(&self) -> Option<SyntaxToken> {
10342        support::token(&self.syntax, SyntaxKind::MONTH_KW)
10343    }
10344    #[inline]
10345    pub fn second_token(&self) -> Option<SyntaxToken> {
10346        support::token(&self.syntax, SyntaxKind::SECOND_KW)
10347    }
10348    #[inline]
10349    pub fn setof_token(&self) -> Option<SyntaxToken> {
10350        support::token(&self.syntax, SyntaxKind::SETOF_KW)
10351    }
10352    #[inline]
10353    pub fn to_token(&self) -> Option<SyntaxToken> {
10354        support::token(&self.syntax, SyntaxKind::TO_KW)
10355    }
10356    #[inline]
10357    pub fn year_token(&self) -> Option<SyntaxToken> {
10358        support::token(&self.syntax, SyntaxKind::YEAR_KW)
10359    }
10360}
10361
10362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10363pub struct IntoClause {
10364    pub(crate) syntax: SyntaxNode,
10365}
10366impl IntoClause {
10367    #[inline]
10368    pub fn path(&self) -> Option<Path> {
10369        support::child(&self.syntax)
10370    }
10371    #[inline]
10372    pub fn persistence(&self) -> Option<Persistence> {
10373        support::child(&self.syntax)
10374    }
10375    #[inline]
10376    pub fn into_token(&self) -> Option<SyntaxToken> {
10377        support::token(&self.syntax, SyntaxKind::INTO_KW)
10378    }
10379    #[inline]
10380    pub fn table_token(&self) -> Option<SyntaxToken> {
10381        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10382    }
10383}
10384
10385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10386pub struct IntoSchema {
10387    pub(crate) syntax: SyntaxNode,
10388}
10389impl IntoSchema {
10390    #[inline]
10391    pub fn name_ref(&self) -> Option<NameRef> {
10392        support::child(&self.syntax)
10393    }
10394    #[inline]
10395    pub fn into_token(&self) -> Option<SyntaxToken> {
10396        support::token(&self.syntax, SyntaxKind::INTO_KW)
10397    }
10398}
10399
10400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10401pub struct IsDistinctFrom {
10402    pub(crate) syntax: SyntaxNode,
10403}
10404impl IsDistinctFrom {
10405    #[inline]
10406    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10407        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10408    }
10409    #[inline]
10410    pub fn from_token(&self) -> Option<SyntaxToken> {
10411        support::token(&self.syntax, SyntaxKind::FROM_KW)
10412    }
10413    #[inline]
10414    pub fn is_token(&self) -> Option<SyntaxToken> {
10415        support::token(&self.syntax, SyntaxKind::IS_KW)
10416    }
10417}
10418
10419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10420pub struct IsJson {
10421    pub(crate) syntax: SyntaxNode,
10422}
10423impl IsJson {
10424    #[inline]
10425    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10426        support::child(&self.syntax)
10427    }
10428    #[inline]
10429    pub fn is_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::IS_KW)
10431    }
10432    #[inline]
10433    pub fn json_token(&self) -> Option<SyntaxToken> {
10434        support::token(&self.syntax, SyntaxKind::JSON_KW)
10435    }
10436}
10437
10438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10439pub struct IsJsonArray {
10440    pub(crate) syntax: SyntaxNode,
10441}
10442impl IsJsonArray {
10443    #[inline]
10444    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10445        support::child(&self.syntax)
10446    }
10447    #[inline]
10448    pub fn array_token(&self) -> Option<SyntaxToken> {
10449        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10450    }
10451    #[inline]
10452    pub fn is_token(&self) -> Option<SyntaxToken> {
10453        support::token(&self.syntax, SyntaxKind::IS_KW)
10454    }
10455    #[inline]
10456    pub fn json_token(&self) -> Option<SyntaxToken> {
10457        support::token(&self.syntax, SyntaxKind::JSON_KW)
10458    }
10459}
10460
10461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10462pub struct IsJsonObject {
10463    pub(crate) syntax: SyntaxNode,
10464}
10465impl IsJsonObject {
10466    #[inline]
10467    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10468        support::child(&self.syntax)
10469    }
10470    #[inline]
10471    pub fn is_token(&self) -> Option<SyntaxToken> {
10472        support::token(&self.syntax, SyntaxKind::IS_KW)
10473    }
10474    #[inline]
10475    pub fn json_token(&self) -> Option<SyntaxToken> {
10476        support::token(&self.syntax, SyntaxKind::JSON_KW)
10477    }
10478    #[inline]
10479    pub fn object_token(&self) -> Option<SyntaxToken> {
10480        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10481    }
10482}
10483
10484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10485pub struct IsJsonScalar {
10486    pub(crate) syntax: SyntaxNode,
10487}
10488impl IsJsonScalar {
10489    #[inline]
10490    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10491        support::child(&self.syntax)
10492    }
10493    #[inline]
10494    pub fn is_token(&self) -> Option<SyntaxToken> {
10495        support::token(&self.syntax, SyntaxKind::IS_KW)
10496    }
10497    #[inline]
10498    pub fn json_token(&self) -> Option<SyntaxToken> {
10499        support::token(&self.syntax, SyntaxKind::JSON_KW)
10500    }
10501    #[inline]
10502    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10503        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10504    }
10505}
10506
10507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10508pub struct IsJsonValue {
10509    pub(crate) syntax: SyntaxNode,
10510}
10511impl IsJsonValue {
10512    #[inline]
10513    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10514        support::child(&self.syntax)
10515    }
10516    #[inline]
10517    pub fn is_token(&self) -> Option<SyntaxToken> {
10518        support::token(&self.syntax, SyntaxKind::IS_KW)
10519    }
10520    #[inline]
10521    pub fn json_token(&self) -> Option<SyntaxToken> {
10522        support::token(&self.syntax, SyntaxKind::JSON_KW)
10523    }
10524    #[inline]
10525    pub fn value_token(&self) -> Option<SyntaxToken> {
10526        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10527    }
10528}
10529
10530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10531pub struct IsLabel {
10532    pub(crate) syntax: SyntaxNode,
10533}
10534impl IsLabel {
10535    #[inline]
10536    pub fn expr(&self) -> Option<Expr> {
10537        support::child(&self.syntax)
10538    }
10539    #[inline]
10540    pub fn is_token(&self) -> Option<SyntaxToken> {
10541        support::token(&self.syntax, SyntaxKind::IS_KW)
10542    }
10543}
10544
10545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10546pub struct IsNormalized {
10547    pub(crate) syntax: SyntaxNode,
10548}
10549impl IsNormalized {
10550    #[inline]
10551    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10552        support::child(&self.syntax)
10553    }
10554    #[inline]
10555    pub fn is_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::IS_KW)
10557    }
10558    #[inline]
10559    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10560        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10561    }
10562}
10563
10564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10565pub struct IsNot {
10566    pub(crate) syntax: SyntaxNode,
10567}
10568impl IsNot {
10569    #[inline]
10570    pub fn is_token(&self) -> Option<SyntaxToken> {
10571        support::token(&self.syntax, SyntaxKind::IS_KW)
10572    }
10573    #[inline]
10574    pub fn not_token(&self) -> Option<SyntaxToken> {
10575        support::token(&self.syntax, SyntaxKind::NOT_KW)
10576    }
10577}
10578
10579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10580pub struct IsNotDistinctFrom {
10581    pub(crate) syntax: SyntaxNode,
10582}
10583impl IsNotDistinctFrom {
10584    #[inline]
10585    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10586        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10587    }
10588    #[inline]
10589    pub fn from_token(&self) -> Option<SyntaxToken> {
10590        support::token(&self.syntax, SyntaxKind::FROM_KW)
10591    }
10592    #[inline]
10593    pub fn is_token(&self) -> Option<SyntaxToken> {
10594        support::token(&self.syntax, SyntaxKind::IS_KW)
10595    }
10596    #[inline]
10597    pub fn not_token(&self) -> Option<SyntaxToken> {
10598        support::token(&self.syntax, SyntaxKind::NOT_KW)
10599    }
10600}
10601
10602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10603pub struct IsNotJson {
10604    pub(crate) syntax: SyntaxNode,
10605}
10606impl IsNotJson {
10607    #[inline]
10608    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10609        support::child(&self.syntax)
10610    }
10611    #[inline]
10612    pub fn is_token(&self) -> Option<SyntaxToken> {
10613        support::token(&self.syntax, SyntaxKind::IS_KW)
10614    }
10615    #[inline]
10616    pub fn json_token(&self) -> Option<SyntaxToken> {
10617        support::token(&self.syntax, SyntaxKind::JSON_KW)
10618    }
10619    #[inline]
10620    pub fn not_token(&self) -> Option<SyntaxToken> {
10621        support::token(&self.syntax, SyntaxKind::NOT_KW)
10622    }
10623}
10624
10625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10626pub struct IsNotJsonArray {
10627    pub(crate) syntax: SyntaxNode,
10628}
10629impl IsNotJsonArray {
10630    #[inline]
10631    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10632        support::child(&self.syntax)
10633    }
10634    #[inline]
10635    pub fn array_token(&self) -> Option<SyntaxToken> {
10636        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10637    }
10638    #[inline]
10639    pub fn is_token(&self) -> Option<SyntaxToken> {
10640        support::token(&self.syntax, SyntaxKind::IS_KW)
10641    }
10642    #[inline]
10643    pub fn json_token(&self) -> Option<SyntaxToken> {
10644        support::token(&self.syntax, SyntaxKind::JSON_KW)
10645    }
10646    #[inline]
10647    pub fn not_token(&self) -> Option<SyntaxToken> {
10648        support::token(&self.syntax, SyntaxKind::NOT_KW)
10649    }
10650}
10651
10652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10653pub struct IsNotJsonObject {
10654    pub(crate) syntax: SyntaxNode,
10655}
10656impl IsNotJsonObject {
10657    #[inline]
10658    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10659        support::child(&self.syntax)
10660    }
10661    #[inline]
10662    pub fn is_token(&self) -> Option<SyntaxToken> {
10663        support::token(&self.syntax, SyntaxKind::IS_KW)
10664    }
10665    #[inline]
10666    pub fn json_token(&self) -> Option<SyntaxToken> {
10667        support::token(&self.syntax, SyntaxKind::JSON_KW)
10668    }
10669    #[inline]
10670    pub fn not_token(&self) -> Option<SyntaxToken> {
10671        support::token(&self.syntax, SyntaxKind::NOT_KW)
10672    }
10673    #[inline]
10674    pub fn object_token(&self) -> Option<SyntaxToken> {
10675        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10676    }
10677}
10678
10679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10680pub struct IsNotJsonScalar {
10681    pub(crate) syntax: SyntaxNode,
10682}
10683impl IsNotJsonScalar {
10684    #[inline]
10685    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10686        support::child(&self.syntax)
10687    }
10688    #[inline]
10689    pub fn is_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::IS_KW)
10691    }
10692    #[inline]
10693    pub fn json_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::JSON_KW)
10695    }
10696    #[inline]
10697    pub fn not_token(&self) -> Option<SyntaxToken> {
10698        support::token(&self.syntax, SyntaxKind::NOT_KW)
10699    }
10700    #[inline]
10701    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10702        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10703    }
10704}
10705
10706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10707pub struct IsNotJsonValue {
10708    pub(crate) syntax: SyntaxNode,
10709}
10710impl IsNotJsonValue {
10711    #[inline]
10712    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10713        support::child(&self.syntax)
10714    }
10715    #[inline]
10716    pub fn is_token(&self) -> Option<SyntaxToken> {
10717        support::token(&self.syntax, SyntaxKind::IS_KW)
10718    }
10719    #[inline]
10720    pub fn json_token(&self) -> Option<SyntaxToken> {
10721        support::token(&self.syntax, SyntaxKind::JSON_KW)
10722    }
10723    #[inline]
10724    pub fn not_token(&self) -> Option<SyntaxToken> {
10725        support::token(&self.syntax, SyntaxKind::NOT_KW)
10726    }
10727    #[inline]
10728    pub fn value_token(&self) -> Option<SyntaxToken> {
10729        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10730    }
10731}
10732
10733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10734pub struct IsNotNormalized {
10735    pub(crate) syntax: SyntaxNode,
10736}
10737impl IsNotNormalized {
10738    #[inline]
10739    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10740        support::child(&self.syntax)
10741    }
10742    #[inline]
10743    pub fn is_token(&self) -> Option<SyntaxToken> {
10744        support::token(&self.syntax, SyntaxKind::IS_KW)
10745    }
10746    #[inline]
10747    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10748        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10749    }
10750    #[inline]
10751    pub fn not_token(&self) -> Option<SyntaxToken> {
10752        support::token(&self.syntax, SyntaxKind::NOT_KW)
10753    }
10754}
10755
10756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10757pub struct Join {
10758    pub(crate) syntax: SyntaxNode,
10759}
10760impl Join {
10761    #[inline]
10762    pub fn from_item(&self) -> Option<FromItem> {
10763        support::child(&self.syntax)
10764    }
10765    #[inline]
10766    pub fn join_type(&self) -> Option<JoinType> {
10767        support::child(&self.syntax)
10768    }
10769    #[inline]
10770    pub fn on_clause(&self) -> Option<OnClause> {
10771        support::child(&self.syntax)
10772    }
10773    #[inline]
10774    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10775        support::child(&self.syntax)
10776    }
10777    #[inline]
10778    pub fn natural_token(&self) -> Option<SyntaxToken> {
10779        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10780    }
10781}
10782
10783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10784pub struct JoinCross {
10785    pub(crate) syntax: SyntaxNode,
10786}
10787impl JoinCross {
10788    #[inline]
10789    pub fn cross_token(&self) -> Option<SyntaxToken> {
10790        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10791    }
10792    #[inline]
10793    pub fn join_token(&self) -> Option<SyntaxToken> {
10794        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10795    }
10796}
10797
10798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10799pub struct JoinExpr {
10800    pub(crate) syntax: SyntaxNode,
10801}
10802impl JoinExpr {
10803    #[inline]
10804    pub fn from_item(&self) -> Option<FromItem> {
10805        support::child(&self.syntax)
10806    }
10807    #[inline]
10808    pub fn join(&self) -> Option<Join> {
10809        support::child(&self.syntax)
10810    }
10811    #[inline]
10812    pub fn join_expr(&self) -> Option<JoinExpr> {
10813        support::child(&self.syntax)
10814    }
10815}
10816
10817#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10818pub struct JoinFull {
10819    pub(crate) syntax: SyntaxNode,
10820}
10821impl JoinFull {
10822    #[inline]
10823    pub fn full_token(&self) -> Option<SyntaxToken> {
10824        support::token(&self.syntax, SyntaxKind::FULL_KW)
10825    }
10826    #[inline]
10827    pub fn join_token(&self) -> Option<SyntaxToken> {
10828        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10829    }
10830    #[inline]
10831    pub fn outer_token(&self) -> Option<SyntaxToken> {
10832        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10833    }
10834}
10835
10836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10837pub struct JoinInner {
10838    pub(crate) syntax: SyntaxNode,
10839}
10840impl JoinInner {
10841    #[inline]
10842    pub fn inner_token(&self) -> Option<SyntaxToken> {
10843        support::token(&self.syntax, SyntaxKind::INNER_KW)
10844    }
10845    #[inline]
10846    pub fn join_token(&self) -> Option<SyntaxToken> {
10847        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10848    }
10849}
10850
10851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10852pub struct JoinLeft {
10853    pub(crate) syntax: SyntaxNode,
10854}
10855impl JoinLeft {
10856    #[inline]
10857    pub fn join_token(&self) -> Option<SyntaxToken> {
10858        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10859    }
10860    #[inline]
10861    pub fn left_token(&self) -> Option<SyntaxToken> {
10862        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10863    }
10864    #[inline]
10865    pub fn outer_token(&self) -> Option<SyntaxToken> {
10866        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10867    }
10868}
10869
10870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10871pub struct JoinRight {
10872    pub(crate) syntax: SyntaxNode,
10873}
10874impl JoinRight {
10875    #[inline]
10876    pub fn join_token(&self) -> Option<SyntaxToken> {
10877        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10878    }
10879    #[inline]
10880    pub fn outer_token(&self) -> Option<SyntaxToken> {
10881        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10882    }
10883    #[inline]
10884    pub fn right_token(&self) -> Option<SyntaxToken> {
10885        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10886    }
10887}
10888
10889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10890pub struct JoinUsingClause {
10891    pub(crate) syntax: SyntaxNode,
10892}
10893impl JoinUsingClause {
10894    #[inline]
10895    pub fn alias(&self) -> Option<Alias> {
10896        support::child(&self.syntax)
10897    }
10898    #[inline]
10899    pub fn column_list(&self) -> Option<ColumnList> {
10900        support::child(&self.syntax)
10901    }
10902    #[inline]
10903    pub fn using_token(&self) -> Option<SyntaxToken> {
10904        support::token(&self.syntax, SyntaxKind::USING_KW)
10905    }
10906}
10907
10908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10909pub struct JsonArrayAggFn {
10910    pub(crate) syntax: SyntaxNode,
10911}
10912impl JsonArrayAggFn {
10913    #[inline]
10914    pub fn expr(&self) -> Option<Expr> {
10915        support::child(&self.syntax)
10916    }
10917    #[inline]
10918    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10919        support::child(&self.syntax)
10920    }
10921    #[inline]
10922    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10923        support::child(&self.syntax)
10924    }
10925    #[inline]
10926    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10927        support::children(&self.syntax)
10928    }
10929    #[inline]
10930    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10931        support::token(&self.syntax, SyntaxKind::L_PAREN)
10932    }
10933    #[inline]
10934    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10935        support::token(&self.syntax, SyntaxKind::R_PAREN)
10936    }
10937    #[inline]
10938    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10939        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10940    }
10941}
10942
10943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10944pub struct JsonArrayFn {
10945    pub(crate) syntax: SyntaxNode,
10946}
10947impl JsonArrayFn {
10948    #[inline]
10949    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10950        support::children(&self.syntax)
10951    }
10952    #[inline]
10953    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10954        support::child(&self.syntax)
10955    }
10956    #[inline]
10957    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10958        support::child(&self.syntax)
10959    }
10960    #[inline]
10961    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10962        support::children(&self.syntax)
10963    }
10964    #[inline]
10965    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10966        support::token(&self.syntax, SyntaxKind::L_PAREN)
10967    }
10968    #[inline]
10969    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10970        support::token(&self.syntax, SyntaxKind::R_PAREN)
10971    }
10972    #[inline]
10973    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10974        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10975    }
10976}
10977
10978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10979pub struct JsonBehaviorClause {
10980    pub(crate) syntax: SyntaxNode,
10981}
10982impl JsonBehaviorClause {
10983    #[inline]
10984    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10985        support::child(&self.syntax)
10986    }
10987}
10988
10989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10990pub struct JsonBehaviorDefault {
10991    pub(crate) syntax: SyntaxNode,
10992}
10993impl JsonBehaviorDefault {
10994    #[inline]
10995    pub fn expr(&self) -> Option<Expr> {
10996        support::child(&self.syntax)
10997    }
10998    #[inline]
10999    pub fn default_token(&self) -> Option<SyntaxToken> {
11000        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11001    }
11002}
11003
11004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11005pub struct JsonBehaviorEmptyArray {
11006    pub(crate) syntax: SyntaxNode,
11007}
11008impl JsonBehaviorEmptyArray {
11009    #[inline]
11010    pub fn array_token(&self) -> Option<SyntaxToken> {
11011        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11012    }
11013    #[inline]
11014    pub fn empty_token(&self) -> Option<SyntaxToken> {
11015        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
11016    }
11017}
11018
11019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11020pub struct JsonBehaviorEmptyObject {
11021    pub(crate) syntax: SyntaxNode,
11022}
11023impl JsonBehaviorEmptyObject {
11024    #[inline]
11025    pub fn empty_token(&self) -> Option<SyntaxToken> {
11026        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
11027    }
11028    #[inline]
11029    pub fn object_token(&self) -> Option<SyntaxToken> {
11030        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
11031    }
11032}
11033
11034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11035pub struct JsonBehaviorError {
11036    pub(crate) syntax: SyntaxNode,
11037}
11038impl JsonBehaviorError {
11039    #[inline]
11040    pub fn error_token(&self) -> Option<SyntaxToken> {
11041        support::token(&self.syntax, SyntaxKind::ERROR_KW)
11042    }
11043}
11044
11045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11046pub struct JsonBehaviorFalse {
11047    pub(crate) syntax: SyntaxNode,
11048}
11049impl JsonBehaviorFalse {
11050    #[inline]
11051    pub fn false_token(&self) -> Option<SyntaxToken> {
11052        support::token(&self.syntax, SyntaxKind::FALSE_KW)
11053    }
11054}
11055
11056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11057pub struct JsonBehaviorNull {
11058    pub(crate) syntax: SyntaxNode,
11059}
11060impl JsonBehaviorNull {
11061    #[inline]
11062    pub fn null_token(&self) -> Option<SyntaxToken> {
11063        support::token(&self.syntax, SyntaxKind::NULL_KW)
11064    }
11065}
11066
11067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11068pub struct JsonBehaviorTrue {
11069    pub(crate) syntax: SyntaxNode,
11070}
11071impl JsonBehaviorTrue {
11072    #[inline]
11073    pub fn true_token(&self) -> Option<SyntaxToken> {
11074        support::token(&self.syntax, SyntaxKind::TRUE_KW)
11075    }
11076}
11077
11078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11079pub struct JsonBehaviorUnknown {
11080    pub(crate) syntax: SyntaxNode,
11081}
11082impl JsonBehaviorUnknown {
11083    #[inline]
11084    pub fn unknown_token(&self) -> Option<SyntaxToken> {
11085        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
11086    }
11087}
11088
11089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11090pub struct JsonEncodingClause {
11091    pub(crate) syntax: SyntaxNode,
11092}
11093impl JsonEncodingClause {
11094    #[inline]
11095    pub fn name_ref(&self) -> Option<NameRef> {
11096        support::child(&self.syntax)
11097    }
11098    #[inline]
11099    pub fn encoding_token(&self) -> Option<SyntaxToken> {
11100        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
11101    }
11102}
11103
11104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11105pub struct JsonExistsFn {
11106    pub(crate) syntax: SyntaxNode,
11107}
11108impl JsonExistsFn {
11109    #[inline]
11110    pub fn expr(&self) -> Option<Expr> {
11111        support::child(&self.syntax)
11112    }
11113    #[inline]
11114    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11115        support::child(&self.syntax)
11116    }
11117    #[inline]
11118    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11119        support::child(&self.syntax)
11120    }
11121    #[inline]
11122    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11123        support::child(&self.syntax)
11124    }
11125    #[inline]
11126    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11127        support::token(&self.syntax, SyntaxKind::L_PAREN)
11128    }
11129    #[inline]
11130    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11131        support::token(&self.syntax, SyntaxKind::R_PAREN)
11132    }
11133    #[inline]
11134    pub fn comma_token(&self) -> Option<SyntaxToken> {
11135        support::token(&self.syntax, SyntaxKind::COMMA)
11136    }
11137    #[inline]
11138    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
11139        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
11140    }
11141}
11142
11143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11144pub struct JsonExprFormat {
11145    pub(crate) syntax: SyntaxNode,
11146}
11147impl JsonExprFormat {
11148    #[inline]
11149    pub fn expr(&self) -> Option<Expr> {
11150        support::child(&self.syntax)
11151    }
11152    #[inline]
11153    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11154        support::child(&self.syntax)
11155    }
11156}
11157
11158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11159pub struct JsonFn {
11160    pub(crate) syntax: SyntaxNode,
11161}
11162impl JsonFn {
11163    #[inline]
11164    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
11165        support::child(&self.syntax)
11166    }
11167    #[inline]
11168    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
11169        support::child(&self.syntax)
11170    }
11171    #[inline]
11172    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11173        support::token(&self.syntax, SyntaxKind::L_PAREN)
11174    }
11175    #[inline]
11176    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11177        support::token(&self.syntax, SyntaxKind::R_PAREN)
11178    }
11179    #[inline]
11180    pub fn json_token(&self) -> Option<SyntaxToken> {
11181        support::token(&self.syntax, SyntaxKind::JSON_KW)
11182    }
11183}
11184
11185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11186pub struct JsonFormatClause {
11187    pub(crate) syntax: SyntaxNode,
11188}
11189impl JsonFormatClause {
11190    #[inline]
11191    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
11192        support::child(&self.syntax)
11193    }
11194    #[inline]
11195    pub fn format_token(&self) -> Option<SyntaxToken> {
11196        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
11197    }
11198    #[inline]
11199    pub fn json_token(&self) -> Option<SyntaxToken> {
11200        support::token(&self.syntax, SyntaxKind::JSON_KW)
11201    }
11202}
11203
11204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11205pub struct JsonKeyValue {
11206    pub(crate) syntax: SyntaxNode,
11207}
11208impl JsonKeyValue {
11209    #[inline]
11210    pub fn expr(&self) -> Option<Expr> {
11211        support::child(&self.syntax)
11212    }
11213    #[inline]
11214    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
11215        support::child(&self.syntax)
11216    }
11217    #[inline]
11218    pub fn colon_token(&self) -> Option<SyntaxToken> {
11219        support::token(&self.syntax, SyntaxKind::COLON)
11220    }
11221    #[inline]
11222    pub fn value_token(&self) -> Option<SyntaxToken> {
11223        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11224    }
11225}
11226
11227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11228pub struct JsonKeysUniqueClause {
11229    pub(crate) syntax: SyntaxNode,
11230}
11231impl JsonKeysUniqueClause {
11232    #[inline]
11233    pub fn keys_token(&self) -> Option<SyntaxToken> {
11234        support::token(&self.syntax, SyntaxKind::KEYS_KW)
11235    }
11236    #[inline]
11237    pub fn unique_token(&self) -> Option<SyntaxToken> {
11238        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
11239    }
11240    #[inline]
11241    pub fn with_token(&self) -> Option<SyntaxToken> {
11242        support::token(&self.syntax, SyntaxKind::WITH_KW)
11243    }
11244    #[inline]
11245    pub fn without_token(&self) -> Option<SyntaxToken> {
11246        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11247    }
11248}
11249
11250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11251pub struct JsonNullClause {
11252    pub(crate) syntax: SyntaxNode,
11253}
11254impl JsonNullClause {
11255    #[inline]
11256    pub fn absent_token(&self) -> Option<SyntaxToken> {
11257        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
11258    }
11259    #[inline]
11260    pub fn null_token(&self) -> Option<SyntaxToken> {
11261        support::token(&self.syntax, SyntaxKind::NULL_KW)
11262    }
11263    #[inline]
11264    pub fn on_token(&self) -> Option<SyntaxToken> {
11265        support::token(&self.syntax, SyntaxKind::ON_KW)
11266    }
11267}
11268
11269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11270pub struct JsonObjectAggFn {
11271    pub(crate) syntax: SyntaxNode,
11272}
11273impl JsonObjectAggFn {
11274    #[inline]
11275    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
11276        support::child(&self.syntax)
11277    }
11278    #[inline]
11279    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
11280        support::child(&self.syntax)
11281    }
11282    #[inline]
11283    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
11284        support::child(&self.syntax)
11285    }
11286    #[inline]
11287    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11288        support::child(&self.syntax)
11289    }
11290    #[inline]
11291    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11292        support::token(&self.syntax, SyntaxKind::L_PAREN)
11293    }
11294    #[inline]
11295    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11296        support::token(&self.syntax, SyntaxKind::R_PAREN)
11297    }
11298    #[inline]
11299    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
11300        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
11301    }
11302}
11303
11304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11305pub struct JsonObjectFn {
11306    pub(crate) syntax: SyntaxNode,
11307}
11308impl JsonObjectFn {
11309    #[inline]
11310    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
11311        support::children(&self.syntax)
11312    }
11313    #[inline]
11314    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
11315        support::child(&self.syntax)
11316    }
11317    #[inline]
11318    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
11319        support::child(&self.syntax)
11320    }
11321    #[inline]
11322    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11323        support::child(&self.syntax)
11324    }
11325    #[inline]
11326    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11327        support::token(&self.syntax, SyntaxKind::L_PAREN)
11328    }
11329    #[inline]
11330    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11331        support::token(&self.syntax, SyntaxKind::R_PAREN)
11332    }
11333    #[inline]
11334    pub fn json_object_token(&self) -> Option<SyntaxToken> {
11335        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
11336    }
11337}
11338
11339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11340pub struct JsonOnEmptyClause {
11341    pub(crate) syntax: SyntaxNode,
11342}
11343impl JsonOnEmptyClause {
11344    #[inline]
11345    pub fn json_behavior(&self) -> Option<JsonBehavior> {
11346        support::child(&self.syntax)
11347    }
11348    #[inline]
11349    pub fn empty_token(&self) -> Option<SyntaxToken> {
11350        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
11351    }
11352    #[inline]
11353    pub fn on_token(&self) -> Option<SyntaxToken> {
11354        support::token(&self.syntax, SyntaxKind::ON_KW)
11355    }
11356}
11357
11358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11359pub struct JsonOnErrorClause {
11360    pub(crate) syntax: SyntaxNode,
11361}
11362impl JsonOnErrorClause {
11363    #[inline]
11364    pub fn json_behavior(&self) -> Option<JsonBehavior> {
11365        support::child(&self.syntax)
11366    }
11367    #[inline]
11368    pub fn error_token(&self) -> Option<SyntaxToken> {
11369        support::token(&self.syntax, SyntaxKind::ERROR_KW)
11370    }
11371    #[inline]
11372    pub fn on_token(&self) -> Option<SyntaxToken> {
11373        support::token(&self.syntax, SyntaxKind::ON_KW)
11374    }
11375}
11376
11377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11378pub struct JsonPassingArg {
11379    pub(crate) syntax: SyntaxNode,
11380}
11381impl JsonPassingArg {
11382    #[inline]
11383    pub fn expr(&self) -> Option<Expr> {
11384        support::child(&self.syntax)
11385    }
11386    #[inline]
11387    pub fn name(&self) -> Option<Name> {
11388        support::child(&self.syntax)
11389    }
11390    #[inline]
11391    pub fn as_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::AS_KW)
11393    }
11394}
11395
11396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11397pub struct JsonPassingClause {
11398    pub(crate) syntax: SyntaxNode,
11399}
11400impl JsonPassingClause {
11401    #[inline]
11402    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
11403        support::children(&self.syntax)
11404    }
11405    #[inline]
11406    pub fn passing_token(&self) -> Option<SyntaxToken> {
11407        support::token(&self.syntax, SyntaxKind::PASSING_KW)
11408    }
11409}
11410
11411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11412pub struct JsonPathClause {
11413    pub(crate) syntax: SyntaxNode,
11414}
11415impl JsonPathClause {
11416    #[inline]
11417    pub fn expr(&self) -> Option<Expr> {
11418        support::child(&self.syntax)
11419    }
11420    #[inline]
11421    pub fn path_token(&self) -> Option<SyntaxToken> {
11422        support::token(&self.syntax, SyntaxKind::PATH_KW)
11423    }
11424}
11425
11426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11427pub struct JsonQueryFn {
11428    pub(crate) syntax: SyntaxNode,
11429}
11430impl JsonQueryFn {
11431    #[inline]
11432    pub fn expr(&self) -> Option<Expr> {
11433        support::child(&self.syntax)
11434    }
11435    #[inline]
11436    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11437        support::child(&self.syntax)
11438    }
11439    #[inline]
11440    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11441        support::child(&self.syntax)
11442    }
11443    #[inline]
11444    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11445        support::child(&self.syntax)
11446    }
11447    #[inline]
11448    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11449        support::child(&self.syntax)
11450    }
11451    #[inline]
11452    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11453        support::child(&self.syntax)
11454    }
11455    #[inline]
11456    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11457        support::child(&self.syntax)
11458    }
11459    #[inline]
11460    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11461        support::token(&self.syntax, SyntaxKind::L_PAREN)
11462    }
11463    #[inline]
11464    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11465        support::token(&self.syntax, SyntaxKind::R_PAREN)
11466    }
11467    #[inline]
11468    pub fn comma_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::COMMA)
11470    }
11471    #[inline]
11472    pub fn json_query_token(&self) -> Option<SyntaxToken> {
11473        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
11474    }
11475}
11476
11477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11478pub struct JsonQuotesClause {
11479    pub(crate) syntax: SyntaxNode,
11480}
11481impl JsonQuotesClause {
11482    #[inline]
11483    pub fn keep_token(&self) -> Option<SyntaxToken> {
11484        support::token(&self.syntax, SyntaxKind::KEEP_KW)
11485    }
11486    #[inline]
11487    pub fn omit_token(&self) -> Option<SyntaxToken> {
11488        support::token(&self.syntax, SyntaxKind::OMIT_KW)
11489    }
11490    #[inline]
11491    pub fn on_token(&self) -> Option<SyntaxToken> {
11492        support::token(&self.syntax, SyntaxKind::ON_KW)
11493    }
11494    #[inline]
11495    pub fn quotes_token(&self) -> Option<SyntaxToken> {
11496        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
11497    }
11498    #[inline]
11499    pub fn scalar_token(&self) -> Option<SyntaxToken> {
11500        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
11501    }
11502    #[inline]
11503    pub fn string_token(&self) -> Option<SyntaxToken> {
11504        support::token(&self.syntax, SyntaxKind::STRING_KW)
11505    }
11506}
11507
11508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11509pub struct JsonReturningClause {
11510    pub(crate) syntax: SyntaxNode,
11511}
11512impl JsonReturningClause {
11513    #[inline]
11514    pub fn ty(&self) -> Option<Type> {
11515        support::child(&self.syntax)
11516    }
11517    #[inline]
11518    pub fn returning_token(&self) -> Option<SyntaxToken> {
11519        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
11520    }
11521}
11522
11523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11524pub struct JsonScalarFn {
11525    pub(crate) syntax: SyntaxNode,
11526}
11527impl JsonScalarFn {
11528    #[inline]
11529    pub fn expr(&self) -> Option<Expr> {
11530        support::child(&self.syntax)
11531    }
11532    #[inline]
11533    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11534        support::token(&self.syntax, SyntaxKind::L_PAREN)
11535    }
11536    #[inline]
11537    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11538        support::token(&self.syntax, SyntaxKind::R_PAREN)
11539    }
11540    #[inline]
11541    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
11542        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
11543    }
11544}
11545
11546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11547pub struct JsonSelectFormat {
11548    pub(crate) syntax: SyntaxNode,
11549}
11550impl JsonSelectFormat {
11551    #[inline]
11552    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11553        support::child(&self.syntax)
11554    }
11555    #[inline]
11556    pub fn select_variant(&self) -> Option<SelectVariant> {
11557        support::child(&self.syntax)
11558    }
11559}
11560
11561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11562pub struct JsonSerializeFn {
11563    pub(crate) syntax: SyntaxNode,
11564}
11565impl JsonSerializeFn {
11566    #[inline]
11567    pub fn expr(&self) -> Option<Expr> {
11568        support::child(&self.syntax)
11569    }
11570    #[inline]
11571    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11572        support::child(&self.syntax)
11573    }
11574    #[inline]
11575    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11576        support::child(&self.syntax)
11577    }
11578    #[inline]
11579    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::L_PAREN)
11581    }
11582    #[inline]
11583    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11584        support::token(&self.syntax, SyntaxKind::R_PAREN)
11585    }
11586    #[inline]
11587    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11588        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11589    }
11590}
11591
11592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11593pub struct JsonTable {
11594    pub(crate) syntax: SyntaxNode,
11595}
11596impl JsonTable {
11597    #[inline]
11598    pub fn expr(&self) -> Option<Expr> {
11599        support::child(&self.syntax)
11600    }
11601    #[inline]
11602    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11603        support::child(&self.syntax)
11604    }
11605    #[inline]
11606    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11607        support::child(&self.syntax)
11608    }
11609    #[inline]
11610    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11611        support::child(&self.syntax)
11612    }
11613    #[inline]
11614    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11615        support::child(&self.syntax)
11616    }
11617    #[inline]
11618    pub fn name(&self) -> Option<Name> {
11619        support::child(&self.syntax)
11620    }
11621    #[inline]
11622    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11623        support::token(&self.syntax, SyntaxKind::L_PAREN)
11624    }
11625    #[inline]
11626    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11627        support::token(&self.syntax, SyntaxKind::R_PAREN)
11628    }
11629    #[inline]
11630    pub fn comma_token(&self) -> Option<SyntaxToken> {
11631        support::token(&self.syntax, SyntaxKind::COMMA)
11632    }
11633    #[inline]
11634    pub fn as_token(&self) -> Option<SyntaxToken> {
11635        support::token(&self.syntax, SyntaxKind::AS_KW)
11636    }
11637    #[inline]
11638    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11639        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11640    }
11641}
11642
11643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11644pub struct JsonTableColumn {
11645    pub(crate) syntax: SyntaxNode,
11646}
11647impl JsonTableColumn {
11648    #[inline]
11649    pub fn expr(&self) -> Option<Expr> {
11650        support::child(&self.syntax)
11651    }
11652    #[inline]
11653    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11654        support::child(&self.syntax)
11655    }
11656    #[inline]
11657    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11658        support::child(&self.syntax)
11659    }
11660    #[inline]
11661    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11662        support::child(&self.syntax)
11663    }
11664    #[inline]
11665    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11666        support::child(&self.syntax)
11667    }
11668    #[inline]
11669    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11670        support::child(&self.syntax)
11671    }
11672    #[inline]
11673    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11674        support::child(&self.syntax)
11675    }
11676    #[inline]
11677    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11678        support::child(&self.syntax)
11679    }
11680    #[inline]
11681    pub fn name(&self) -> Option<Name> {
11682        support::child(&self.syntax)
11683    }
11684    #[inline]
11685    pub fn ty(&self) -> Option<Type> {
11686        support::child(&self.syntax)
11687    }
11688    #[inline]
11689    pub fn as_token(&self) -> Option<SyntaxToken> {
11690        support::token(&self.syntax, SyntaxKind::AS_KW)
11691    }
11692    #[inline]
11693    pub fn exists_token(&self) -> Option<SyntaxToken> {
11694        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11695    }
11696    #[inline]
11697    pub fn for_token(&self) -> Option<SyntaxToken> {
11698        support::token(&self.syntax, SyntaxKind::FOR_KW)
11699    }
11700    #[inline]
11701    pub fn nested_token(&self) -> Option<SyntaxToken> {
11702        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11703    }
11704    #[inline]
11705    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11706        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11707    }
11708    #[inline]
11709    pub fn path_token(&self) -> Option<SyntaxToken> {
11710        support::token(&self.syntax, SyntaxKind::PATH_KW)
11711    }
11712}
11713
11714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11715pub struct JsonTableColumnList {
11716    pub(crate) syntax: SyntaxNode,
11717}
11718impl JsonTableColumnList {
11719    #[inline]
11720    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11721        support::children(&self.syntax)
11722    }
11723    #[inline]
11724    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11725        support::token(&self.syntax, SyntaxKind::L_PAREN)
11726    }
11727    #[inline]
11728    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11729        support::token(&self.syntax, SyntaxKind::R_PAREN)
11730    }
11731    #[inline]
11732    pub fn columns_token(&self) -> Option<SyntaxToken> {
11733        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11734    }
11735}
11736
11737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11738pub struct JsonValueExpr {
11739    pub(crate) syntax: SyntaxNode,
11740}
11741impl JsonValueExpr {
11742    #[inline]
11743    pub fn expr(&self) -> Option<Expr> {
11744        support::child(&self.syntax)
11745    }
11746    #[inline]
11747    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11748        support::child(&self.syntax)
11749    }
11750}
11751
11752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11753pub struct JsonValueFn {
11754    pub(crate) syntax: SyntaxNode,
11755}
11756impl JsonValueFn {
11757    #[inline]
11758    pub fn expr(&self) -> Option<Expr> {
11759        support::child(&self.syntax)
11760    }
11761    #[inline]
11762    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11763        support::child(&self.syntax)
11764    }
11765    #[inline]
11766    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11767        support::child(&self.syntax)
11768    }
11769    #[inline]
11770    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11771        support::child(&self.syntax)
11772    }
11773    #[inline]
11774    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11775        support::child(&self.syntax)
11776    }
11777    #[inline]
11778    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11779        support::token(&self.syntax, SyntaxKind::L_PAREN)
11780    }
11781    #[inline]
11782    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11783        support::token(&self.syntax, SyntaxKind::R_PAREN)
11784    }
11785    #[inline]
11786    pub fn comma_token(&self) -> Option<SyntaxToken> {
11787        support::token(&self.syntax, SyntaxKind::COMMA)
11788    }
11789    #[inline]
11790    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11791        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11792    }
11793}
11794
11795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11796pub struct JsonWrapperBehaviorClause {
11797    pub(crate) syntax: SyntaxNode,
11798}
11799impl JsonWrapperBehaviorClause {
11800    #[inline]
11801    pub fn array_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11803    }
11804    #[inline]
11805    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11806        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11807    }
11808    #[inline]
11809    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11810        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11811    }
11812    #[inline]
11813    pub fn with_token(&self) -> Option<SyntaxToken> {
11814        support::token(&self.syntax, SyntaxKind::WITH_KW)
11815    }
11816    #[inline]
11817    pub fn without_token(&self) -> Option<SyntaxToken> {
11818        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11819    }
11820    #[inline]
11821    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11822        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11823    }
11824}
11825
11826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11827pub struct LabelAndProperties {
11828    pub(crate) syntax: SyntaxNode,
11829}
11830impl LabelAndProperties {
11831    #[inline]
11832    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11833        support::child(&self.syntax)
11834    }
11835    #[inline]
11836    pub fn name(&self) -> Option<Name> {
11837        support::child(&self.syntax)
11838    }
11839    #[inline]
11840    pub fn default_token(&self) -> Option<SyntaxToken> {
11841        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11842    }
11843    #[inline]
11844    pub fn label_token(&self) -> Option<SyntaxToken> {
11845        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11846    }
11847}
11848
11849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11850pub struct LabelAndPropertiesList {
11851    pub(crate) syntax: SyntaxNode,
11852}
11853impl LabelAndPropertiesList {
11854    #[inline]
11855    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11856        support::children(&self.syntax)
11857    }
11858}
11859
11860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11861pub struct LanguageFuncOption {
11862    pub(crate) syntax: SyntaxNode,
11863}
11864impl LanguageFuncOption {
11865    #[inline]
11866    pub fn name_ref(&self) -> Option<NameRef> {
11867        support::child(&self.syntax)
11868    }
11869    #[inline]
11870    pub fn language_token(&self) -> Option<SyntaxToken> {
11871        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11872    }
11873}
11874
11875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11876pub struct LeakproofFuncOption {
11877    pub(crate) syntax: SyntaxNode,
11878}
11879impl LeakproofFuncOption {
11880    #[inline]
11881    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11882        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11883    }
11884    #[inline]
11885    pub fn not_token(&self) -> Option<SyntaxToken> {
11886        support::token(&self.syntax, SyntaxKind::NOT_KW)
11887    }
11888}
11889
11890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11891pub struct LikeClause {
11892    pub(crate) syntax: SyntaxNode,
11893}
11894impl LikeClause {
11895    #[inline]
11896    pub fn like_options(&self) -> AstChildren<LikeOption> {
11897        support::children(&self.syntax)
11898    }
11899    #[inline]
11900    pub fn path(&self) -> Option<Path> {
11901        support::child(&self.syntax)
11902    }
11903    #[inline]
11904    pub fn like_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11906    }
11907}
11908
11909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11910pub struct LikeOption {
11911    pub(crate) syntax: SyntaxNode,
11912}
11913impl LikeOption {
11914    #[inline]
11915    pub fn all_token(&self) -> Option<SyntaxToken> {
11916        support::token(&self.syntax, SyntaxKind::ALL_KW)
11917    }
11918    #[inline]
11919    pub fn comments_token(&self) -> Option<SyntaxToken> {
11920        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11921    }
11922    #[inline]
11923    pub fn compression_token(&self) -> Option<SyntaxToken> {
11924        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11925    }
11926    #[inline]
11927    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11928        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11929    }
11930    #[inline]
11931    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11932        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11933    }
11934    #[inline]
11935    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11936        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11937    }
11938    #[inline]
11939    pub fn generated_token(&self) -> Option<SyntaxToken> {
11940        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11941    }
11942    #[inline]
11943    pub fn identity_token(&self) -> Option<SyntaxToken> {
11944        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11945    }
11946    #[inline]
11947    pub fn including_token(&self) -> Option<SyntaxToken> {
11948        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11949    }
11950    #[inline]
11951    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11952        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11953    }
11954    #[inline]
11955    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11956        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11957    }
11958    #[inline]
11959    pub fn storage_token(&self) -> Option<SyntaxToken> {
11960        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11961    }
11962}
11963
11964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11965pub struct LimitClause {
11966    pub(crate) syntax: SyntaxNode,
11967}
11968impl LimitClause {
11969    #[inline]
11970    pub fn expr(&self) -> Option<Expr> {
11971        support::child(&self.syntax)
11972    }
11973    #[inline]
11974    pub fn all_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::ALL_KW)
11976    }
11977    #[inline]
11978    pub fn limit_token(&self) -> Option<SyntaxToken> {
11979        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11980    }
11981}
11982
11983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11984pub struct LimitToTables {
11985    pub(crate) syntax: SyntaxNode,
11986}
11987impl LimitToTables {
11988    #[inline]
11989    pub fn name_refs(&self) -> AstChildren<NameRef> {
11990        support::children(&self.syntax)
11991    }
11992    #[inline]
11993    pub fn limit_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11995    }
11996    #[inline]
11997    pub fn to_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::TO_KW)
11999    }
12000}
12001
12002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12003pub struct Listen {
12004    pub(crate) syntax: SyntaxNode,
12005}
12006impl Listen {
12007    #[inline]
12008    pub fn name(&self) -> Option<Name> {
12009        support::child(&self.syntax)
12010    }
12011    #[inline]
12012    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12014    }
12015    #[inline]
12016    pub fn listen_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
12018    }
12019}
12020
12021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12022pub struct Literal {
12023    pub(crate) syntax: SyntaxNode,
12024}
12025impl Literal {}
12026
12027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12028pub struct Load {
12029    pub(crate) syntax: SyntaxNode,
12030}
12031impl Load {
12032    #[inline]
12033    pub fn literal(&self) -> Option<Literal> {
12034        support::child(&self.syntax)
12035    }
12036    #[inline]
12037    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12038        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12039    }
12040    #[inline]
12041    pub fn load_token(&self) -> Option<SyntaxToken> {
12042        support::token(&self.syntax, SyntaxKind::LOAD_KW)
12043    }
12044}
12045
12046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12047pub struct Lock {
12048    pub(crate) syntax: SyntaxNode,
12049}
12050impl Lock {
12051    #[inline]
12052    pub fn table_list(&self) -> Option<TableList> {
12053        support::child(&self.syntax)
12054    }
12055    #[inline]
12056    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12057        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12058    }
12059    #[inline]
12060    pub fn lock_token(&self) -> Option<SyntaxToken> {
12061        support::token(&self.syntax, SyntaxKind::LOCK_KW)
12062    }
12063    #[inline]
12064    pub fn table_token(&self) -> Option<SyntaxToken> {
12065        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12066    }
12067}
12068
12069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12070pub struct LockingClause {
12071    pub(crate) syntax: SyntaxNode,
12072}
12073impl LockingClause {
12074    #[inline]
12075    pub fn for_token(&self) -> Option<SyntaxToken> {
12076        support::token(&self.syntax, SyntaxKind::FOR_KW)
12077    }
12078}
12079
12080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12081pub struct Lteq {
12082    pub(crate) syntax: SyntaxNode,
12083}
12084impl Lteq {
12085    #[inline]
12086    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12088    }
12089    #[inline]
12090    pub fn eq_token(&self) -> Option<SyntaxToken> {
12091        support::token(&self.syntax, SyntaxKind::EQ)
12092    }
12093}
12094
12095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12096pub struct MatchFull {
12097    pub(crate) syntax: SyntaxNode,
12098}
12099impl MatchFull {
12100    #[inline]
12101    pub fn full_token(&self) -> Option<SyntaxToken> {
12102        support::token(&self.syntax, SyntaxKind::FULL_KW)
12103    }
12104    #[inline]
12105    pub fn match_token(&self) -> Option<SyntaxToken> {
12106        support::token(&self.syntax, SyntaxKind::MATCH_KW)
12107    }
12108}
12109
12110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12111pub struct MatchPartial {
12112    pub(crate) syntax: SyntaxNode,
12113}
12114impl MatchPartial {
12115    #[inline]
12116    pub fn match_token(&self) -> Option<SyntaxToken> {
12117        support::token(&self.syntax, SyntaxKind::MATCH_KW)
12118    }
12119    #[inline]
12120    pub fn partial_token(&self) -> Option<SyntaxToken> {
12121        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
12122    }
12123}
12124
12125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12126pub struct MatchSimple {
12127    pub(crate) syntax: SyntaxNode,
12128}
12129impl MatchSimple {
12130    #[inline]
12131    pub fn match_token(&self) -> Option<SyntaxToken> {
12132        support::token(&self.syntax, SyntaxKind::MATCH_KW)
12133    }
12134    #[inline]
12135    pub fn simple_token(&self) -> Option<SyntaxToken> {
12136        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
12137    }
12138}
12139
12140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12141pub struct Materialized {
12142    pub(crate) syntax: SyntaxNode,
12143}
12144impl Materialized {
12145    #[inline]
12146    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12147        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12148    }
12149}
12150
12151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12152pub struct Merge {
12153    pub(crate) syntax: SyntaxNode,
12154}
12155impl Merge {
12156    #[inline]
12157    pub fn alias(&self) -> Option<Alias> {
12158        support::child(&self.syntax)
12159    }
12160    #[inline]
12161    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
12162        support::children(&self.syntax)
12163    }
12164    #[inline]
12165    pub fn relation_name(&self) -> Option<RelationName> {
12166        support::child(&self.syntax)
12167    }
12168    #[inline]
12169    pub fn returning_clause(&self) -> Option<ReturningClause> {
12170        support::child(&self.syntax)
12171    }
12172    #[inline]
12173    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
12174        support::child(&self.syntax)
12175    }
12176    #[inline]
12177    pub fn with_clause(&self) -> Option<WithClause> {
12178        support::child(&self.syntax)
12179    }
12180    #[inline]
12181    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12182        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12183    }
12184    #[inline]
12185    pub fn into_token(&self) -> Option<SyntaxToken> {
12186        support::token(&self.syntax, SyntaxKind::INTO_KW)
12187    }
12188    #[inline]
12189    pub fn merge_token(&self) -> Option<SyntaxToken> {
12190        support::token(&self.syntax, SyntaxKind::MERGE_KW)
12191    }
12192}
12193
12194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12195pub struct MergeDelete {
12196    pub(crate) syntax: SyntaxNode,
12197}
12198impl MergeDelete {
12199    #[inline]
12200    pub fn delete_token(&self) -> Option<SyntaxToken> {
12201        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12202    }
12203}
12204
12205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12206pub struct MergeDoNothing {
12207    pub(crate) syntax: SyntaxNode,
12208}
12209impl MergeDoNothing {
12210    #[inline]
12211    pub fn do_token(&self) -> Option<SyntaxToken> {
12212        support::token(&self.syntax, SyntaxKind::DO_KW)
12213    }
12214    #[inline]
12215    pub fn nothing_token(&self) -> Option<SyntaxToken> {
12216        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
12217    }
12218}
12219
12220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12221pub struct MergeInsert {
12222    pub(crate) syntax: SyntaxNode,
12223}
12224impl MergeInsert {
12225    #[inline]
12226    pub fn column_list(&self) -> Option<ColumnList> {
12227        support::child(&self.syntax)
12228    }
12229    #[inline]
12230    pub fn values(&self) -> Option<Values> {
12231        support::child(&self.syntax)
12232    }
12233    #[inline]
12234    pub fn default_token(&self) -> Option<SyntaxToken> {
12235        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12236    }
12237    #[inline]
12238    pub fn insert_token(&self) -> Option<SyntaxToken> {
12239        support::token(&self.syntax, SyntaxKind::INSERT_KW)
12240    }
12241    #[inline]
12242    pub fn overriding_token(&self) -> Option<SyntaxToken> {
12243        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
12244    }
12245    #[inline]
12246    pub fn system_token(&self) -> Option<SyntaxToken> {
12247        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12248    }
12249    #[inline]
12250    pub fn user_token(&self) -> Option<SyntaxToken> {
12251        support::token(&self.syntax, SyntaxKind::USER_KW)
12252    }
12253    #[inline]
12254    pub fn values_token(&self) -> Option<SyntaxToken> {
12255        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12256    }
12257}
12258
12259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12260pub struct MergePartitions {
12261    pub(crate) syntax: SyntaxNode,
12262}
12263impl MergePartitions {
12264    #[inline]
12265    pub fn path(&self) -> Option<Path> {
12266        support::child(&self.syntax)
12267    }
12268    #[inline]
12269    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12270        support::token(&self.syntax, SyntaxKind::L_PAREN)
12271    }
12272    #[inline]
12273    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::R_PAREN)
12275    }
12276    #[inline]
12277    pub fn into_token(&self) -> Option<SyntaxToken> {
12278        support::token(&self.syntax, SyntaxKind::INTO_KW)
12279    }
12280    #[inline]
12281    pub fn merge_token(&self) -> Option<SyntaxToken> {
12282        support::token(&self.syntax, SyntaxKind::MERGE_KW)
12283    }
12284    #[inline]
12285    pub fn partitions_token(&self) -> Option<SyntaxToken> {
12286        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
12287    }
12288}
12289
12290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12291pub struct MergeUpdate {
12292    pub(crate) syntax: SyntaxNode,
12293}
12294impl MergeUpdate {
12295    #[inline]
12296    pub fn set_clause(&self) -> Option<SetClause> {
12297        support::child(&self.syntax)
12298    }
12299    #[inline]
12300    pub fn set_token(&self) -> Option<SyntaxToken> {
12301        support::token(&self.syntax, SyntaxKind::SET_KW)
12302    }
12303    #[inline]
12304    pub fn update_token(&self) -> Option<SyntaxToken> {
12305        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12306    }
12307}
12308
12309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12310pub struct MergeWhenMatched {
12311    pub(crate) syntax: SyntaxNode,
12312}
12313impl MergeWhenMatched {
12314    #[inline]
12315    pub fn expr(&self) -> Option<Expr> {
12316        support::child(&self.syntax)
12317    }
12318    #[inline]
12319    pub fn merge_action(&self) -> Option<MergeAction> {
12320        support::child(&self.syntax)
12321    }
12322    #[inline]
12323    pub fn and_token(&self) -> Option<SyntaxToken> {
12324        support::token(&self.syntax, SyntaxKind::AND_KW)
12325    }
12326    #[inline]
12327    pub fn matched_token(&self) -> Option<SyntaxToken> {
12328        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
12329    }
12330    #[inline]
12331    pub fn then_token(&self) -> Option<SyntaxToken> {
12332        support::token(&self.syntax, SyntaxKind::THEN_KW)
12333    }
12334    #[inline]
12335    pub fn when_token(&self) -> Option<SyntaxToken> {
12336        support::token(&self.syntax, SyntaxKind::WHEN_KW)
12337    }
12338}
12339
12340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12341pub struct MergeWhenNotMatchedSource {
12342    pub(crate) syntax: SyntaxNode,
12343}
12344impl MergeWhenNotMatchedSource {
12345    #[inline]
12346    pub fn expr(&self) -> Option<Expr> {
12347        support::child(&self.syntax)
12348    }
12349    #[inline]
12350    pub fn merge_action(&self) -> Option<MergeAction> {
12351        support::child(&self.syntax)
12352    }
12353    #[inline]
12354    pub fn and_token(&self) -> Option<SyntaxToken> {
12355        support::token(&self.syntax, SyntaxKind::AND_KW)
12356    }
12357    #[inline]
12358    pub fn by_token(&self) -> Option<SyntaxToken> {
12359        support::token(&self.syntax, SyntaxKind::BY_KW)
12360    }
12361    #[inline]
12362    pub fn matched_token(&self) -> Option<SyntaxToken> {
12363        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
12364    }
12365    #[inline]
12366    pub fn not_token(&self) -> Option<SyntaxToken> {
12367        support::token(&self.syntax, SyntaxKind::NOT_KW)
12368    }
12369    #[inline]
12370    pub fn source_token(&self) -> Option<SyntaxToken> {
12371        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
12372    }
12373    #[inline]
12374    pub fn then_token(&self) -> Option<SyntaxToken> {
12375        support::token(&self.syntax, SyntaxKind::THEN_KW)
12376    }
12377    #[inline]
12378    pub fn when_token(&self) -> Option<SyntaxToken> {
12379        support::token(&self.syntax, SyntaxKind::WHEN_KW)
12380    }
12381}
12382
12383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12384pub struct MergeWhenNotMatchedTarget {
12385    pub(crate) syntax: SyntaxNode,
12386}
12387impl MergeWhenNotMatchedTarget {
12388    #[inline]
12389    pub fn expr(&self) -> Option<Expr> {
12390        support::child(&self.syntax)
12391    }
12392    #[inline]
12393    pub fn merge_action(&self) -> Option<MergeAction> {
12394        support::child(&self.syntax)
12395    }
12396    #[inline]
12397    pub fn and_token(&self) -> Option<SyntaxToken> {
12398        support::token(&self.syntax, SyntaxKind::AND_KW)
12399    }
12400    #[inline]
12401    pub fn by_token(&self) -> Option<SyntaxToken> {
12402        support::token(&self.syntax, SyntaxKind::BY_KW)
12403    }
12404    #[inline]
12405    pub fn matched_token(&self) -> Option<SyntaxToken> {
12406        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
12407    }
12408    #[inline]
12409    pub fn not_token(&self) -> Option<SyntaxToken> {
12410        support::token(&self.syntax, SyntaxKind::NOT_KW)
12411    }
12412    #[inline]
12413    pub fn target_token(&self) -> Option<SyntaxToken> {
12414        support::token(&self.syntax, SyntaxKind::TARGET_KW)
12415    }
12416    #[inline]
12417    pub fn then_token(&self) -> Option<SyntaxToken> {
12418        support::token(&self.syntax, SyntaxKind::THEN_KW)
12419    }
12420    #[inline]
12421    pub fn when_token(&self) -> Option<SyntaxToken> {
12422        support::token(&self.syntax, SyntaxKind::WHEN_KW)
12423    }
12424}
12425
12426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12427pub struct Move {
12428    pub(crate) syntax: SyntaxNode,
12429}
12430impl Move {
12431    #[inline]
12432    pub fn name_ref(&self) -> Option<NameRef> {
12433        support::child(&self.syntax)
12434    }
12435    #[inline]
12436    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12437        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12438    }
12439    #[inline]
12440    pub fn from_token(&self) -> Option<SyntaxToken> {
12441        support::token(&self.syntax, SyntaxKind::FROM_KW)
12442    }
12443    #[inline]
12444    pub fn in_token(&self) -> Option<SyntaxToken> {
12445        support::token(&self.syntax, SyntaxKind::IN_KW)
12446    }
12447    #[inline]
12448    pub fn move_token(&self) -> Option<SyntaxToken> {
12449        support::token(&self.syntax, SyntaxKind::MOVE_KW)
12450    }
12451}
12452
12453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12454pub struct Name {
12455    pub(crate) syntax: SyntaxNode,
12456}
12457impl Name {
12458    #[inline]
12459    pub fn ident_token(&self) -> Option<SyntaxToken> {
12460        support::token(&self.syntax, SyntaxKind::IDENT)
12461    }
12462}
12463
12464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12465pub struct NameRef {
12466    pub(crate) syntax: SyntaxNode,
12467}
12468impl NameRef {
12469    #[inline]
12470    pub fn ident_token(&self) -> Option<SyntaxToken> {
12471        support::token(&self.syntax, SyntaxKind::IDENT)
12472    }
12473}
12474
12475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12476pub struct NamedArg {
12477    pub(crate) syntax: SyntaxNode,
12478}
12479impl NamedArg {
12480    #[inline]
12481    pub fn expr(&self) -> Option<Expr> {
12482        support::child(&self.syntax)
12483    }
12484    #[inline]
12485    pub fn fat_arrow(&self) -> Option<FatArrow> {
12486        support::child(&self.syntax)
12487    }
12488    #[inline]
12489    pub fn name_ref(&self) -> Option<NameRef> {
12490        support::child(&self.syntax)
12491    }
12492}
12493
12494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12495pub struct Neq {
12496    pub(crate) syntax: SyntaxNode,
12497}
12498impl Neq {
12499    #[inline]
12500    pub fn bang_token(&self) -> Option<SyntaxToken> {
12501        support::token(&self.syntax, SyntaxKind::BANG)
12502    }
12503    #[inline]
12504    pub fn eq_token(&self) -> Option<SyntaxToken> {
12505        support::token(&self.syntax, SyntaxKind::EQ)
12506    }
12507}
12508
12509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12510pub struct Neqb {
12511    pub(crate) syntax: SyntaxNode,
12512}
12513impl Neqb {
12514    #[inline]
12515    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12516        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12517    }
12518    #[inline]
12519    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12520        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12521    }
12522}
12523
12524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12525pub struct NoAction {
12526    pub(crate) syntax: SyntaxNode,
12527}
12528impl NoAction {
12529    #[inline]
12530    pub fn action_token(&self) -> Option<SyntaxToken> {
12531        support::token(&self.syntax, SyntaxKind::ACTION_KW)
12532    }
12533    #[inline]
12534    pub fn no_token(&self) -> Option<SyntaxToken> {
12535        support::token(&self.syntax, SyntaxKind::NO_KW)
12536    }
12537}
12538
12539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12540pub struct NoDependsOnExtension {
12541    pub(crate) syntax: SyntaxNode,
12542}
12543impl NoDependsOnExtension {
12544    #[inline]
12545    pub fn name_ref(&self) -> Option<NameRef> {
12546        support::child(&self.syntax)
12547    }
12548    #[inline]
12549    pub fn depends_token(&self) -> Option<SyntaxToken> {
12550        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
12551    }
12552    #[inline]
12553    pub fn extension_token(&self) -> Option<SyntaxToken> {
12554        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
12555    }
12556    #[inline]
12557    pub fn no_token(&self) -> Option<SyntaxToken> {
12558        support::token(&self.syntax, SyntaxKind::NO_KW)
12559    }
12560    #[inline]
12561    pub fn on_token(&self) -> Option<SyntaxToken> {
12562        support::token(&self.syntax, SyntaxKind::ON_KW)
12563    }
12564}
12565
12566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12567pub struct NoForceRls {
12568    pub(crate) syntax: SyntaxNode,
12569}
12570impl NoForceRls {
12571    #[inline]
12572    pub fn force_token(&self) -> Option<SyntaxToken> {
12573        support::token(&self.syntax, SyntaxKind::FORCE_KW)
12574    }
12575    #[inline]
12576    pub fn level_token(&self) -> Option<SyntaxToken> {
12577        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12578    }
12579    #[inline]
12580    pub fn no_token(&self) -> Option<SyntaxToken> {
12581        support::token(&self.syntax, SyntaxKind::NO_KW)
12582    }
12583    #[inline]
12584    pub fn row_token(&self) -> Option<SyntaxToken> {
12585        support::token(&self.syntax, SyntaxKind::ROW_KW)
12586    }
12587    #[inline]
12588    pub fn security_token(&self) -> Option<SyntaxToken> {
12589        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12590    }
12591}
12592
12593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12594pub struct NoInherit {
12595    pub(crate) syntax: SyntaxNode,
12596}
12597impl NoInherit {
12598    #[inline]
12599    pub fn path(&self) -> Option<Path> {
12600        support::child(&self.syntax)
12601    }
12602    #[inline]
12603    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12604        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12605    }
12606    #[inline]
12607    pub fn no_token(&self) -> Option<SyntaxToken> {
12608        support::token(&self.syntax, SyntaxKind::NO_KW)
12609    }
12610}
12611
12612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12613pub struct NoInheritTable {
12614    pub(crate) syntax: SyntaxNode,
12615}
12616impl NoInheritTable {
12617    #[inline]
12618    pub fn path(&self) -> Option<Path> {
12619        support::child(&self.syntax)
12620    }
12621    #[inline]
12622    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12623        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12624    }
12625    #[inline]
12626    pub fn no_token(&self) -> Option<SyntaxToken> {
12627        support::token(&self.syntax, SyntaxKind::NO_KW)
12628    }
12629}
12630
12631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12632pub struct NoProperties {
12633    pub(crate) syntax: SyntaxNode,
12634}
12635impl NoProperties {
12636    #[inline]
12637    pub fn no_token(&self) -> Option<SyntaxToken> {
12638        support::token(&self.syntax, SyntaxKind::NO_KW)
12639    }
12640    #[inline]
12641    pub fn properties_token(&self) -> Option<SyntaxToken> {
12642        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12643    }
12644}
12645
12646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12647pub struct NonStandardParam {
12648    pub(crate) syntax: SyntaxNode,
12649}
12650impl NonStandardParam {
12651    #[inline]
12652    pub fn name_ref(&self) -> Option<NameRef> {
12653        support::child(&self.syntax)
12654    }
12655    #[inline]
12656    pub fn colon_token(&self) -> Option<SyntaxToken> {
12657        support::token(&self.syntax, SyntaxKind::COLON)
12658    }
12659}
12660
12661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12662pub struct NotDeferrable {
12663    pub(crate) syntax: SyntaxNode,
12664}
12665impl NotDeferrable {
12666    #[inline]
12667    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12668        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12669    }
12670    #[inline]
12671    pub fn not_token(&self) -> Option<SyntaxToken> {
12672        support::token(&self.syntax, SyntaxKind::NOT_KW)
12673    }
12674}
12675
12676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12677pub struct NotDeferrableConstraintOption {
12678    pub(crate) syntax: SyntaxNode,
12679}
12680impl NotDeferrableConstraintOption {
12681    #[inline]
12682    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12683        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12684    }
12685    #[inline]
12686    pub fn not_token(&self) -> Option<SyntaxToken> {
12687        support::token(&self.syntax, SyntaxKind::NOT_KW)
12688    }
12689}
12690
12691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12692pub struct NotEnforced {
12693    pub(crate) syntax: SyntaxNode,
12694}
12695impl NotEnforced {
12696    #[inline]
12697    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12698        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12699    }
12700    #[inline]
12701    pub fn not_token(&self) -> Option<SyntaxToken> {
12702        support::token(&self.syntax, SyntaxKind::NOT_KW)
12703    }
12704}
12705
12706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12707pub struct NotIlike {
12708    pub(crate) syntax: SyntaxNode,
12709}
12710impl NotIlike {
12711    #[inline]
12712    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12713        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12714    }
12715    #[inline]
12716    pub fn not_token(&self) -> Option<SyntaxToken> {
12717        support::token(&self.syntax, SyntaxKind::NOT_KW)
12718    }
12719}
12720
12721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12722pub struct NotIn {
12723    pub(crate) syntax: SyntaxNode,
12724}
12725impl NotIn {
12726    #[inline]
12727    pub fn in_token(&self) -> Option<SyntaxToken> {
12728        support::token(&self.syntax, SyntaxKind::IN_KW)
12729    }
12730    #[inline]
12731    pub fn not_token(&self) -> Option<SyntaxToken> {
12732        support::token(&self.syntax, SyntaxKind::NOT_KW)
12733    }
12734}
12735
12736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12737pub struct NotLike {
12738    pub(crate) syntax: SyntaxNode,
12739}
12740impl NotLike {
12741    #[inline]
12742    pub fn like_token(&self) -> Option<SyntaxToken> {
12743        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12744    }
12745    #[inline]
12746    pub fn not_token(&self) -> Option<SyntaxToken> {
12747        support::token(&self.syntax, SyntaxKind::NOT_KW)
12748    }
12749}
12750
12751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12752pub struct NotMaterialized {
12753    pub(crate) syntax: SyntaxNode,
12754}
12755impl NotMaterialized {
12756    #[inline]
12757    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12758        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12759    }
12760    #[inline]
12761    pub fn not_token(&self) -> Option<SyntaxToken> {
12762        support::token(&self.syntax, SyntaxKind::NOT_KW)
12763    }
12764}
12765
12766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12767pub struct NotNullConstraint {
12768    pub(crate) syntax: SyntaxNode,
12769}
12770impl NotNullConstraint {
12771    #[inline]
12772    pub fn name_ref(&self) -> Option<NameRef> {
12773        support::child(&self.syntax)
12774    }
12775    #[inline]
12776    pub fn no_inherit(&self) -> Option<NoInherit> {
12777        support::child(&self.syntax)
12778    }
12779    #[inline]
12780    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12781        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12782    }
12783    #[inline]
12784    pub fn not_token(&self) -> Option<SyntaxToken> {
12785        support::token(&self.syntax, SyntaxKind::NOT_KW)
12786    }
12787    #[inline]
12788    pub fn null_token(&self) -> Option<SyntaxToken> {
12789        support::token(&self.syntax, SyntaxKind::NULL_KW)
12790    }
12791}
12792
12793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12794pub struct NotOf {
12795    pub(crate) syntax: SyntaxNode,
12796}
12797impl NotOf {
12798    #[inline]
12799    pub fn not_token(&self) -> Option<SyntaxToken> {
12800        support::token(&self.syntax, SyntaxKind::NOT_KW)
12801    }
12802    #[inline]
12803    pub fn of_token(&self) -> Option<SyntaxToken> {
12804        support::token(&self.syntax, SyntaxKind::OF_KW)
12805    }
12806}
12807
12808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12809pub struct NotSimilarTo {
12810    pub(crate) syntax: SyntaxNode,
12811}
12812impl NotSimilarTo {
12813    #[inline]
12814    pub fn not_token(&self) -> Option<SyntaxToken> {
12815        support::token(&self.syntax, SyntaxKind::NOT_KW)
12816    }
12817    #[inline]
12818    pub fn similar_token(&self) -> Option<SyntaxToken> {
12819        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12820    }
12821    #[inline]
12822    pub fn to_token(&self) -> Option<SyntaxToken> {
12823        support::token(&self.syntax, SyntaxKind::TO_KW)
12824    }
12825}
12826
12827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12828pub struct NotValid {
12829    pub(crate) syntax: SyntaxNode,
12830}
12831impl NotValid {
12832    #[inline]
12833    pub fn not_token(&self) -> Option<SyntaxToken> {
12834        support::token(&self.syntax, SyntaxKind::NOT_KW)
12835    }
12836    #[inline]
12837    pub fn valid_token(&self) -> Option<SyntaxToken> {
12838        support::token(&self.syntax, SyntaxKind::VALID_KW)
12839    }
12840}
12841
12842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12843pub struct Nothing {
12844    pub(crate) syntax: SyntaxNode,
12845}
12846impl Nothing {
12847    #[inline]
12848    pub fn nothing_token(&self) -> Option<SyntaxToken> {
12849        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
12850    }
12851}
12852
12853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12854pub struct Notify {
12855    pub(crate) syntax: SyntaxNode,
12856}
12857impl Notify {
12858    #[inline]
12859    pub fn literal(&self) -> Option<Literal> {
12860        support::child(&self.syntax)
12861    }
12862    #[inline]
12863    pub fn name_ref(&self) -> Option<NameRef> {
12864        support::child(&self.syntax)
12865    }
12866    #[inline]
12867    pub fn comma_token(&self) -> Option<SyntaxToken> {
12868        support::token(&self.syntax, SyntaxKind::COMMA)
12869    }
12870    #[inline]
12871    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12872        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12873    }
12874    #[inline]
12875    pub fn notify_token(&self) -> Option<SyntaxToken> {
12876        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12877    }
12878}
12879
12880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12881pub struct NullConstraint {
12882    pub(crate) syntax: SyntaxNode,
12883}
12884impl NullConstraint {
12885    #[inline]
12886    pub fn name_ref(&self) -> Option<NameRef> {
12887        support::child(&self.syntax)
12888    }
12889    #[inline]
12890    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12891        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12892    }
12893    #[inline]
12894    pub fn null_token(&self) -> Option<SyntaxToken> {
12895        support::token(&self.syntax, SyntaxKind::NULL_KW)
12896    }
12897}
12898
12899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12900pub struct NullsDistinct {
12901    pub(crate) syntax: SyntaxNode,
12902}
12903impl NullsDistinct {
12904    #[inline]
12905    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12906        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12907    }
12908    #[inline]
12909    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12910        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12911    }
12912}
12913
12914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12915pub struct NullsFirst {
12916    pub(crate) syntax: SyntaxNode,
12917}
12918impl NullsFirst {
12919    #[inline]
12920    pub fn first_token(&self) -> Option<SyntaxToken> {
12921        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12922    }
12923    #[inline]
12924    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12925        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12926    }
12927}
12928
12929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12930pub struct NullsLast {
12931    pub(crate) syntax: SyntaxNode,
12932}
12933impl NullsLast {
12934    #[inline]
12935    pub fn last_token(&self) -> Option<SyntaxToken> {
12936        support::token(&self.syntax, SyntaxKind::LAST_KW)
12937    }
12938    #[inline]
12939    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12940        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12941    }
12942}
12943
12944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12945pub struct NullsNotDistinct {
12946    pub(crate) syntax: SyntaxNode,
12947}
12948impl NullsNotDistinct {
12949    #[inline]
12950    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12951        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12952    }
12953    #[inline]
12954    pub fn not_token(&self) -> Option<SyntaxToken> {
12955        support::token(&self.syntax, SyntaxKind::NOT_KW)
12956    }
12957    #[inline]
12958    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12959        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12960    }
12961}
12962
12963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12964pub struct OfType {
12965    pub(crate) syntax: SyntaxNode,
12966}
12967impl OfType {
12968    #[inline]
12969    pub fn ty(&self) -> Option<Type> {
12970        support::child(&self.syntax)
12971    }
12972    #[inline]
12973    pub fn of_token(&self) -> Option<SyntaxToken> {
12974        support::token(&self.syntax, SyntaxKind::OF_KW)
12975    }
12976}
12977
12978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12979pub struct OffsetClause {
12980    pub(crate) syntax: SyntaxNode,
12981}
12982impl OffsetClause {
12983    #[inline]
12984    pub fn expr(&self) -> Option<Expr> {
12985        support::child(&self.syntax)
12986    }
12987    #[inline]
12988    pub fn offset_token(&self) -> Option<SyntaxToken> {
12989        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12990    }
12991    #[inline]
12992    pub fn row_token(&self) -> Option<SyntaxToken> {
12993        support::token(&self.syntax, SyntaxKind::ROW_KW)
12994    }
12995    #[inline]
12996    pub fn rows_token(&self) -> Option<SyntaxToken> {
12997        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12998    }
12999}
13000
13001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13002pub struct OnClause {
13003    pub(crate) syntax: SyntaxNode,
13004}
13005impl OnClause {
13006    #[inline]
13007    pub fn expr(&self) -> Option<Expr> {
13008        support::child(&self.syntax)
13009    }
13010    #[inline]
13011    pub fn on_token(&self) -> Option<SyntaxToken> {
13012        support::token(&self.syntax, SyntaxKind::ON_KW)
13013    }
13014}
13015
13016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13017pub struct OnCommit {
13018    pub(crate) syntax: SyntaxNode,
13019}
13020impl OnCommit {
13021    #[inline]
13022    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
13023        support::child(&self.syntax)
13024    }
13025    #[inline]
13026    pub fn commit_token(&self) -> Option<SyntaxToken> {
13027        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
13028    }
13029    #[inline]
13030    pub fn on_token(&self) -> Option<SyntaxToken> {
13031        support::token(&self.syntax, SyntaxKind::ON_KW)
13032    }
13033}
13034
13035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13036pub struct OnConflictClause {
13037    pub(crate) syntax: SyntaxNode,
13038}
13039impl OnConflictClause {
13040    #[inline]
13041    pub fn conflict_action(&self) -> Option<ConflictAction> {
13042        support::child(&self.syntax)
13043    }
13044    #[inline]
13045    pub fn conflict_target(&self) -> Option<ConflictTarget> {
13046        support::child(&self.syntax)
13047    }
13048    #[inline]
13049    pub fn conflict_token(&self) -> Option<SyntaxToken> {
13050        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
13051    }
13052    #[inline]
13053    pub fn on_token(&self) -> Option<SyntaxToken> {
13054        support::token(&self.syntax, SyntaxKind::ON_KW)
13055    }
13056}
13057
13058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13059pub struct OnDeleteAction {
13060    pub(crate) syntax: SyntaxNode,
13061}
13062impl OnDeleteAction {
13063    #[inline]
13064    pub fn ref_action(&self) -> Option<RefAction> {
13065        support::child(&self.syntax)
13066    }
13067    #[inline]
13068    pub fn delete_token(&self) -> Option<SyntaxToken> {
13069        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13070    }
13071    #[inline]
13072    pub fn on_token(&self) -> Option<SyntaxToken> {
13073        support::token(&self.syntax, SyntaxKind::ON_KW)
13074    }
13075}
13076
13077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13078pub struct OnPath {
13079    pub(crate) syntax: SyntaxNode,
13080}
13081impl OnPath {
13082    #[inline]
13083    pub fn path(&self) -> Option<Path> {
13084        support::child(&self.syntax)
13085    }
13086    #[inline]
13087    pub fn on_token(&self) -> Option<SyntaxToken> {
13088        support::token(&self.syntax, SyntaxKind::ON_KW)
13089    }
13090}
13091
13092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13093pub struct OnTable {
13094    pub(crate) syntax: SyntaxNode,
13095}
13096impl OnTable {
13097    #[inline]
13098    pub fn path(&self) -> Option<Path> {
13099        support::child(&self.syntax)
13100    }
13101    #[inline]
13102    pub fn on_token(&self) -> Option<SyntaxToken> {
13103        support::token(&self.syntax, SyntaxKind::ON_KW)
13104    }
13105}
13106
13107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13108pub struct OnUpdateAction {
13109    pub(crate) syntax: SyntaxNode,
13110}
13111impl OnUpdateAction {
13112    #[inline]
13113    pub fn ref_action(&self) -> Option<RefAction> {
13114        support::child(&self.syntax)
13115    }
13116    #[inline]
13117    pub fn on_token(&self) -> Option<SyntaxToken> {
13118        support::token(&self.syntax, SyntaxKind::ON_KW)
13119    }
13120    #[inline]
13121    pub fn update_token(&self) -> Option<SyntaxToken> {
13122        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13123    }
13124}
13125
13126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13127pub struct Op {
13128    pub(crate) syntax: SyntaxNode,
13129}
13130impl Op {
13131    #[inline]
13132    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
13133        support::child(&self.syntax)
13134    }
13135    #[inline]
13136    pub fn colon_colon(&self) -> Option<ColonColon> {
13137        support::child(&self.syntax)
13138    }
13139    #[inline]
13140    pub fn colon_eq(&self) -> Option<ColonEq> {
13141        support::child(&self.syntax)
13142    }
13143    #[inline]
13144    pub fn custom_op(&self) -> Option<CustomOp> {
13145        support::child(&self.syntax)
13146    }
13147    #[inline]
13148    pub fn fat_arrow(&self) -> Option<FatArrow> {
13149        support::child(&self.syntax)
13150    }
13151    #[inline]
13152    pub fn gteq(&self) -> Option<Gteq> {
13153        support::child(&self.syntax)
13154    }
13155    #[inline]
13156    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
13157        support::child(&self.syntax)
13158    }
13159    #[inline]
13160    pub fn is_json(&self) -> Option<IsJson> {
13161        support::child(&self.syntax)
13162    }
13163    #[inline]
13164    pub fn is_json_array(&self) -> Option<IsJsonArray> {
13165        support::child(&self.syntax)
13166    }
13167    #[inline]
13168    pub fn is_json_object(&self) -> Option<IsJsonObject> {
13169        support::child(&self.syntax)
13170    }
13171    #[inline]
13172    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
13173        support::child(&self.syntax)
13174    }
13175    #[inline]
13176    pub fn is_json_value(&self) -> Option<IsJsonValue> {
13177        support::child(&self.syntax)
13178    }
13179    #[inline]
13180    pub fn is_normalized(&self) -> Option<IsNormalized> {
13181        support::child(&self.syntax)
13182    }
13183    #[inline]
13184    pub fn is_not(&self) -> Option<IsNot> {
13185        support::child(&self.syntax)
13186    }
13187    #[inline]
13188    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
13189        support::child(&self.syntax)
13190    }
13191    #[inline]
13192    pub fn is_not_json(&self) -> Option<IsNotJson> {
13193        support::child(&self.syntax)
13194    }
13195    #[inline]
13196    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
13197        support::child(&self.syntax)
13198    }
13199    #[inline]
13200    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
13201        support::child(&self.syntax)
13202    }
13203    #[inline]
13204    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
13205        support::child(&self.syntax)
13206    }
13207    #[inline]
13208    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
13209        support::child(&self.syntax)
13210    }
13211    #[inline]
13212    pub fn is_not_normalized(&self) -> Option<IsNotNormalized> {
13213        support::child(&self.syntax)
13214    }
13215    #[inline]
13216    pub fn lteq(&self) -> Option<Lteq> {
13217        support::child(&self.syntax)
13218    }
13219    #[inline]
13220    pub fn neq(&self) -> Option<Neq> {
13221        support::child(&self.syntax)
13222    }
13223    #[inline]
13224    pub fn neqb(&self) -> Option<Neqb> {
13225        support::child(&self.syntax)
13226    }
13227    #[inline]
13228    pub fn not_ilike(&self) -> Option<NotIlike> {
13229        support::child(&self.syntax)
13230    }
13231    #[inline]
13232    pub fn not_in(&self) -> Option<NotIn> {
13233        support::child(&self.syntax)
13234    }
13235    #[inline]
13236    pub fn not_like(&self) -> Option<NotLike> {
13237        support::child(&self.syntax)
13238    }
13239    #[inline]
13240    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
13241        support::child(&self.syntax)
13242    }
13243    #[inline]
13244    pub fn operator_call(&self) -> Option<OperatorCall> {
13245        support::child(&self.syntax)
13246    }
13247    #[inline]
13248    pub fn similar_to(&self) -> Option<SimilarTo> {
13249        support::child(&self.syntax)
13250    }
13251    #[inline]
13252    pub fn percent_token(&self) -> Option<SyntaxToken> {
13253        support::token(&self.syntax, SyntaxKind::PERCENT)
13254    }
13255    #[inline]
13256    pub fn plus_token(&self) -> Option<SyntaxToken> {
13257        support::token(&self.syntax, SyntaxKind::PLUS)
13258    }
13259    #[inline]
13260    pub fn minus_token(&self) -> Option<SyntaxToken> {
13261        support::token(&self.syntax, SyntaxKind::MINUS)
13262    }
13263    #[inline]
13264    pub fn slash_token(&self) -> Option<SyntaxToken> {
13265        support::token(&self.syntax, SyntaxKind::SLASH)
13266    }
13267    #[inline]
13268    pub fn colon_token(&self) -> Option<SyntaxToken> {
13269        support::token(&self.syntax, SyntaxKind::COLON)
13270    }
13271    #[inline]
13272    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
13273        support::token(&self.syntax, SyntaxKind::L_ANGLE)
13274    }
13275    #[inline]
13276    pub fn eq_token(&self) -> Option<SyntaxToken> {
13277        support::token(&self.syntax, SyntaxKind::EQ)
13278    }
13279    #[inline]
13280    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
13281        support::token(&self.syntax, SyntaxKind::R_ANGLE)
13282    }
13283    #[inline]
13284    pub fn caret_token(&self) -> Option<SyntaxToken> {
13285        support::token(&self.syntax, SyntaxKind::CARET)
13286    }
13287    #[inline]
13288    pub fn and_token(&self) -> Option<SyntaxToken> {
13289        support::token(&self.syntax, SyntaxKind::AND_KW)
13290    }
13291    #[inline]
13292    pub fn collate_token(&self) -> Option<SyntaxToken> {
13293        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
13294    }
13295    #[inline]
13296    pub fn ilike_token(&self) -> Option<SyntaxToken> {
13297        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
13298    }
13299    #[inline]
13300    pub fn in_token(&self) -> Option<SyntaxToken> {
13301        support::token(&self.syntax, SyntaxKind::IN_KW)
13302    }
13303    #[inline]
13304    pub fn is_token(&self) -> Option<SyntaxToken> {
13305        support::token(&self.syntax, SyntaxKind::IS_KW)
13306    }
13307    #[inline]
13308    pub fn isnull_token(&self) -> Option<SyntaxToken> {
13309        support::token(&self.syntax, SyntaxKind::ISNULL_KW)
13310    }
13311    #[inline]
13312    pub fn like_token(&self) -> Option<SyntaxToken> {
13313        support::token(&self.syntax, SyntaxKind::LIKE_KW)
13314    }
13315    #[inline]
13316    pub fn or_token(&self) -> Option<SyntaxToken> {
13317        support::token(&self.syntax, SyntaxKind::OR_KW)
13318    }
13319    #[inline]
13320    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
13321        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
13322    }
13323    #[inline]
13324    pub fn value_token(&self) -> Option<SyntaxToken> {
13325        support::token(&self.syntax, SyntaxKind::VALUE_KW)
13326    }
13327}
13328
13329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13330pub struct OpClassOption {
13331    pub(crate) syntax: SyntaxNode,
13332}
13333impl OpClassOption {
13334    #[inline]
13335    pub fn function_sig(&self) -> Option<FunctionSig> {
13336        support::child(&self.syntax)
13337    }
13338    #[inline]
13339    pub fn literal(&self) -> Option<Literal> {
13340        support::child(&self.syntax)
13341    }
13342    #[inline]
13343    pub fn op(&self) -> Option<Op> {
13344        support::child(&self.syntax)
13345    }
13346    #[inline]
13347    pub fn param_list(&self) -> Option<ParamList> {
13348        support::child(&self.syntax)
13349    }
13350    #[inline]
13351    pub fn path(&self) -> Option<Path> {
13352        support::child(&self.syntax)
13353    }
13354    #[inline]
13355    pub fn ty(&self) -> Option<Type> {
13356        support::child(&self.syntax)
13357    }
13358    #[inline]
13359    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13360        support::token(&self.syntax, SyntaxKind::L_PAREN)
13361    }
13362    #[inline]
13363    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13364        support::token(&self.syntax, SyntaxKind::R_PAREN)
13365    }
13366    #[inline]
13367    pub fn comma_token(&self) -> Option<SyntaxToken> {
13368        support::token(&self.syntax, SyntaxKind::COMMA)
13369    }
13370    #[inline]
13371    pub fn by_token(&self) -> Option<SyntaxToken> {
13372        support::token(&self.syntax, SyntaxKind::BY_KW)
13373    }
13374    #[inline]
13375    pub fn for_token(&self) -> Option<SyntaxToken> {
13376        support::token(&self.syntax, SyntaxKind::FOR_KW)
13377    }
13378    #[inline]
13379    pub fn function_token(&self) -> Option<SyntaxToken> {
13380        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13381    }
13382    #[inline]
13383    pub fn operator_token(&self) -> Option<SyntaxToken> {
13384        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
13385    }
13386    #[inline]
13387    pub fn order_token(&self) -> Option<SyntaxToken> {
13388        support::token(&self.syntax, SyntaxKind::ORDER_KW)
13389    }
13390    #[inline]
13391    pub fn search_token(&self) -> Option<SyntaxToken> {
13392        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
13393    }
13394    #[inline]
13395    pub fn storage_token(&self) -> Option<SyntaxToken> {
13396        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
13397    }
13398}
13399
13400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13401pub struct OpSig {
13402    pub(crate) syntax: SyntaxNode,
13403}
13404impl OpSig {
13405    #[inline]
13406    pub fn op(&self) -> Option<Op> {
13407        support::child(&self.syntax)
13408    }
13409    #[inline]
13410    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13411        support::token(&self.syntax, SyntaxKind::L_PAREN)
13412    }
13413    #[inline]
13414    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13415        support::token(&self.syntax, SyntaxKind::R_PAREN)
13416    }
13417    #[inline]
13418    pub fn comma_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::COMMA)
13420    }
13421    #[inline]
13422    pub fn none_token(&self) -> Option<SyntaxToken> {
13423        support::token(&self.syntax, SyntaxKind::NONE_KW)
13424    }
13425}
13426
13427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13428pub struct OpSigList {
13429    pub(crate) syntax: SyntaxNode,
13430}
13431impl OpSigList {
13432    #[inline]
13433    pub fn op_sigs(&self) -> AstChildren<OpSig> {
13434        support::children(&self.syntax)
13435    }
13436}
13437
13438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13439pub struct OperatorCall {
13440    pub(crate) syntax: SyntaxNode,
13441}
13442impl OperatorCall {
13443    #[inline]
13444    pub fn op(&self) -> Option<Op> {
13445        support::child(&self.syntax)
13446    }
13447    #[inline]
13448    pub fn path(&self) -> Option<Path> {
13449        support::child(&self.syntax)
13450    }
13451    #[inline]
13452    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13453        support::token(&self.syntax, SyntaxKind::L_PAREN)
13454    }
13455    #[inline]
13456    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13457        support::token(&self.syntax, SyntaxKind::R_PAREN)
13458    }
13459    #[inline]
13460    pub fn dot_token(&self) -> Option<SyntaxToken> {
13461        support::token(&self.syntax, SyntaxKind::DOT)
13462    }
13463    #[inline]
13464    pub fn operator_token(&self) -> Option<SyntaxToken> {
13465        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
13466    }
13467}
13468
13469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13470pub struct OperatorClassOptionList {
13471    pub(crate) syntax: SyntaxNode,
13472}
13473impl OperatorClassOptionList {
13474    #[inline]
13475    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
13476        support::children(&self.syntax)
13477    }
13478}
13479
13480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13481pub struct OptionItem {
13482    pub(crate) syntax: SyntaxNode,
13483}
13484impl OptionItem {
13485    #[inline]
13486    pub fn expr(&self) -> Option<Expr> {
13487        support::child(&self.syntax)
13488    }
13489    #[inline]
13490    pub fn default_token(&self) -> Option<SyntaxToken> {
13491        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13492    }
13493}
13494
13495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13496pub struct OptionItemList {
13497    pub(crate) syntax: SyntaxNode,
13498}
13499impl OptionItemList {
13500    #[inline]
13501    pub fn option_items(&self) -> AstChildren<OptionItem> {
13502        support::children(&self.syntax)
13503    }
13504    #[inline]
13505    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13506        support::token(&self.syntax, SyntaxKind::L_PAREN)
13507    }
13508    #[inline]
13509    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13510        support::token(&self.syntax, SyntaxKind::R_PAREN)
13511    }
13512}
13513
13514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13515pub struct OrReplace {
13516    pub(crate) syntax: SyntaxNode,
13517}
13518impl OrReplace {
13519    #[inline]
13520    pub fn or_token(&self) -> Option<SyntaxToken> {
13521        support::token(&self.syntax, SyntaxKind::OR_KW)
13522    }
13523    #[inline]
13524    pub fn replace_token(&self) -> Option<SyntaxToken> {
13525        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
13526    }
13527}
13528
13529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13530pub struct OrderByClause {
13531    pub(crate) syntax: SyntaxNode,
13532}
13533impl OrderByClause {
13534    #[inline]
13535    pub fn sort_by_list(&self) -> Option<SortByList> {
13536        support::child(&self.syntax)
13537    }
13538    #[inline]
13539    pub fn by_token(&self) -> Option<SyntaxToken> {
13540        support::token(&self.syntax, SyntaxKind::BY_KW)
13541    }
13542    #[inline]
13543    pub fn order_token(&self) -> Option<SyntaxToken> {
13544        support::token(&self.syntax, SyntaxKind::ORDER_KW)
13545    }
13546}
13547
13548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13549pub struct OverClause {
13550    pub(crate) syntax: SyntaxNode,
13551}
13552impl OverClause {
13553    #[inline]
13554    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13555        support::token(&self.syntax, SyntaxKind::L_PAREN)
13556    }
13557    #[inline]
13558    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13559        support::token(&self.syntax, SyntaxKind::R_PAREN)
13560    }
13561    #[inline]
13562    pub fn over_token(&self) -> Option<SyntaxToken> {
13563        support::token(&self.syntax, SyntaxKind::OVER_KW)
13564    }
13565}
13566
13567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13568pub struct OverlayFn {
13569    pub(crate) syntax: SyntaxNode,
13570}
13571impl OverlayFn {
13572    #[inline]
13573    pub fn expr(&self) -> Option<Expr> {
13574        support::child(&self.syntax)
13575    }
13576    #[inline]
13577    pub fn exprs(&self) -> AstChildren<Expr> {
13578        support::children(&self.syntax)
13579    }
13580    #[inline]
13581    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13582        support::token(&self.syntax, SyntaxKind::L_PAREN)
13583    }
13584    #[inline]
13585    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13586        support::token(&self.syntax, SyntaxKind::R_PAREN)
13587    }
13588    #[inline]
13589    pub fn for_token(&self) -> Option<SyntaxToken> {
13590        support::token(&self.syntax, SyntaxKind::FOR_KW)
13591    }
13592    #[inline]
13593    pub fn from_token(&self) -> Option<SyntaxToken> {
13594        support::token(&self.syntax, SyntaxKind::FROM_KW)
13595    }
13596    #[inline]
13597    pub fn overlay_token(&self) -> Option<SyntaxToken> {
13598        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
13599    }
13600    #[inline]
13601    pub fn placing_token(&self) -> Option<SyntaxToken> {
13602        support::token(&self.syntax, SyntaxKind::PLACING_KW)
13603    }
13604}
13605
13606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13607pub struct OwnedByRoles {
13608    pub(crate) syntax: SyntaxNode,
13609}
13610impl OwnedByRoles {
13611    #[inline]
13612    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13613        support::child(&self.syntax)
13614    }
13615    #[inline]
13616    pub fn by_token(&self) -> Option<SyntaxToken> {
13617        support::token(&self.syntax, SyntaxKind::BY_KW)
13618    }
13619    #[inline]
13620    pub fn owned_token(&self) -> Option<SyntaxToken> {
13621        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13622    }
13623}
13624
13625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13626pub struct OwnerTo {
13627    pub(crate) syntax: SyntaxNode,
13628}
13629impl OwnerTo {
13630    #[inline]
13631    pub fn role_ref(&self) -> Option<RoleRef> {
13632        support::child(&self.syntax)
13633    }
13634    #[inline]
13635    pub fn owner_token(&self) -> Option<SyntaxToken> {
13636        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13637    }
13638    #[inline]
13639    pub fn to_token(&self) -> Option<SyntaxToken> {
13640        support::token(&self.syntax, SyntaxKind::TO_KW)
13641    }
13642}
13643
13644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13645pub struct ParallelFuncOption {
13646    pub(crate) syntax: SyntaxNode,
13647}
13648impl ParallelFuncOption {
13649    #[inline]
13650    pub fn ident_token(&self) -> Option<SyntaxToken> {
13651        support::token(&self.syntax, SyntaxKind::IDENT)
13652    }
13653    #[inline]
13654    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13655        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13656    }
13657}
13658
13659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13660pub struct Param {
13661    pub(crate) syntax: SyntaxNode,
13662}
13663impl Param {
13664    #[inline]
13665    pub fn mode(&self) -> Option<ParamMode> {
13666        support::child(&self.syntax)
13667    }
13668    #[inline]
13669    pub fn name(&self) -> Option<Name> {
13670        support::child(&self.syntax)
13671    }
13672    #[inline]
13673    pub fn param_default(&self) -> Option<ParamDefault> {
13674        support::child(&self.syntax)
13675    }
13676    #[inline]
13677    pub fn ty(&self) -> Option<Type> {
13678        support::child(&self.syntax)
13679    }
13680}
13681
13682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13683pub struct ParamDefault {
13684    pub(crate) syntax: SyntaxNode,
13685}
13686impl ParamDefault {
13687    #[inline]
13688    pub fn expr(&self) -> Option<Expr> {
13689        support::child(&self.syntax)
13690    }
13691    #[inline]
13692    pub fn eq_token(&self) -> Option<SyntaxToken> {
13693        support::token(&self.syntax, SyntaxKind::EQ)
13694    }
13695    #[inline]
13696    pub fn default_token(&self) -> Option<SyntaxToken> {
13697        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13698    }
13699}
13700
13701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13702pub struct ParamIn {
13703    pub(crate) syntax: SyntaxNode,
13704}
13705impl ParamIn {
13706    #[inline]
13707    pub fn in_token(&self) -> Option<SyntaxToken> {
13708        support::token(&self.syntax, SyntaxKind::IN_KW)
13709    }
13710}
13711
13712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13713pub struct ParamInOut {
13714    pub(crate) syntax: SyntaxNode,
13715}
13716impl ParamInOut {
13717    #[inline]
13718    pub fn in_token(&self) -> Option<SyntaxToken> {
13719        support::token(&self.syntax, SyntaxKind::IN_KW)
13720    }
13721    #[inline]
13722    pub fn inout_token(&self) -> Option<SyntaxToken> {
13723        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13724    }
13725    #[inline]
13726    pub fn out_token(&self) -> Option<SyntaxToken> {
13727        support::token(&self.syntax, SyntaxKind::OUT_KW)
13728    }
13729}
13730
13731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13732pub struct ParamList {
13733    pub(crate) syntax: SyntaxNode,
13734}
13735impl ParamList {
13736    #[inline]
13737    pub fn params(&self) -> AstChildren<Param> {
13738        support::children(&self.syntax)
13739    }
13740}
13741
13742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13743pub struct ParamOut {
13744    pub(crate) syntax: SyntaxNode,
13745}
13746impl ParamOut {
13747    #[inline]
13748    pub fn out_token(&self) -> Option<SyntaxToken> {
13749        support::token(&self.syntax, SyntaxKind::OUT_KW)
13750    }
13751}
13752
13753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13754pub struct ParamVariadic {
13755    pub(crate) syntax: SyntaxNode,
13756}
13757impl ParamVariadic {
13758    #[inline]
13759    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13760        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13761    }
13762}
13763
13764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13765pub struct ParenExpr {
13766    pub(crate) syntax: SyntaxNode,
13767}
13768impl ParenExpr {
13769    #[inline]
13770    pub fn expr(&self) -> Option<Expr> {
13771        support::child(&self.syntax)
13772    }
13773    #[inline]
13774    pub fn from_item(&self) -> Option<FromItem> {
13775        support::child(&self.syntax)
13776    }
13777    #[inline]
13778    pub fn select(&self) -> Option<Select> {
13779        support::child(&self.syntax)
13780    }
13781    #[inline]
13782    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13783        support::token(&self.syntax, SyntaxKind::L_PAREN)
13784    }
13785    #[inline]
13786    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13787        support::token(&self.syntax, SyntaxKind::R_PAREN)
13788    }
13789}
13790
13791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13792pub struct ParenGraphPattern {
13793    pub(crate) syntax: SyntaxNode,
13794}
13795impl ParenGraphPattern {
13796    #[inline]
13797    pub fn path_pattern(&self) -> Option<PathPattern> {
13798        support::child(&self.syntax)
13799    }
13800    #[inline]
13801    pub fn where_clause(&self) -> Option<WhereClause> {
13802        support::child(&self.syntax)
13803    }
13804    #[inline]
13805    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13806        support::token(&self.syntax, SyntaxKind::L_PAREN)
13807    }
13808    #[inline]
13809    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13810        support::token(&self.syntax, SyntaxKind::R_PAREN)
13811    }
13812}
13813
13814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13815pub struct ParenSelect {
13816    pub(crate) syntax: SyntaxNode,
13817}
13818impl ParenSelect {
13819    #[inline]
13820    pub fn select(&self) -> Option<SelectVariant> {
13821        support::child(&self.syntax)
13822    }
13823    #[inline]
13824    pub fn with_clause(&self) -> Option<WithClause> {
13825        support::child(&self.syntax)
13826    }
13827    #[inline]
13828    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13829        support::token(&self.syntax, SyntaxKind::L_PAREN)
13830    }
13831    #[inline]
13832    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13833        support::token(&self.syntax, SyntaxKind::R_PAREN)
13834    }
13835    #[inline]
13836    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
13837        support::token(&self.syntax, SyntaxKind::SEMICOLON)
13838    }
13839}
13840
13841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13842pub struct Partition {
13843    pub(crate) syntax: SyntaxNode,
13844}
13845impl Partition {
13846    #[inline]
13847    pub fn partition_type(&self) -> Option<PartitionType> {
13848        support::child(&self.syntax)
13849    }
13850    #[inline]
13851    pub fn path(&self) -> Option<Path> {
13852        support::child(&self.syntax)
13853    }
13854    #[inline]
13855    pub fn partition_token(&self) -> Option<SyntaxToken> {
13856        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13857    }
13858}
13859
13860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13861pub struct PartitionBy {
13862    pub(crate) syntax: SyntaxNode,
13863}
13864impl PartitionBy {
13865    #[inline]
13866    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13867        support::child(&self.syntax)
13868    }
13869    #[inline]
13870    pub fn by_token(&self) -> Option<SyntaxToken> {
13871        support::token(&self.syntax, SyntaxKind::BY_KW)
13872    }
13873    #[inline]
13874    pub fn ident_token(&self) -> Option<SyntaxToken> {
13875        support::token(&self.syntax, SyntaxKind::IDENT)
13876    }
13877    #[inline]
13878    pub fn partition_token(&self) -> Option<SyntaxToken> {
13879        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13880    }
13881    #[inline]
13882    pub fn range_token(&self) -> Option<SyntaxToken> {
13883        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13884    }
13885}
13886
13887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13888pub struct PartitionDefault {
13889    pub(crate) syntax: SyntaxNode,
13890}
13891impl PartitionDefault {
13892    #[inline]
13893    pub fn default_token(&self) -> Option<SyntaxToken> {
13894        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13895    }
13896}
13897
13898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13899pub struct PartitionForValuesFrom {
13900    pub(crate) syntax: SyntaxNode,
13901}
13902impl PartitionForValuesFrom {
13903    #[inline]
13904    pub fn exprs(&self) -> AstChildren<Expr> {
13905        support::children(&self.syntax)
13906    }
13907    #[inline]
13908    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13909        support::token(&self.syntax, SyntaxKind::L_PAREN)
13910    }
13911    #[inline]
13912    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13913        support::token(&self.syntax, SyntaxKind::R_PAREN)
13914    }
13915    #[inline]
13916    pub fn for_token(&self) -> Option<SyntaxToken> {
13917        support::token(&self.syntax, SyntaxKind::FOR_KW)
13918    }
13919    #[inline]
13920    pub fn from_token(&self) -> Option<SyntaxToken> {
13921        support::token(&self.syntax, SyntaxKind::FROM_KW)
13922    }
13923    #[inline]
13924    pub fn to_token(&self) -> Option<SyntaxToken> {
13925        support::token(&self.syntax, SyntaxKind::TO_KW)
13926    }
13927    #[inline]
13928    pub fn values_token(&self) -> Option<SyntaxToken> {
13929        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13930    }
13931}
13932
13933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13934pub struct PartitionForValuesIn {
13935    pub(crate) syntax: SyntaxNode,
13936}
13937impl PartitionForValuesIn {
13938    #[inline]
13939    pub fn exprs(&self) -> AstChildren<Expr> {
13940        support::children(&self.syntax)
13941    }
13942    #[inline]
13943    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13944        support::token(&self.syntax, SyntaxKind::L_PAREN)
13945    }
13946    #[inline]
13947    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13948        support::token(&self.syntax, SyntaxKind::R_PAREN)
13949    }
13950    #[inline]
13951    pub fn for_token(&self) -> Option<SyntaxToken> {
13952        support::token(&self.syntax, SyntaxKind::FOR_KW)
13953    }
13954    #[inline]
13955    pub fn in_token(&self) -> Option<SyntaxToken> {
13956        support::token(&self.syntax, SyntaxKind::IN_KW)
13957    }
13958    #[inline]
13959    pub fn values_token(&self) -> Option<SyntaxToken> {
13960        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13961    }
13962}
13963
13964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13965pub struct PartitionForValuesWith {
13966    pub(crate) syntax: SyntaxNode,
13967}
13968impl PartitionForValuesWith {
13969    #[inline]
13970    pub fn literal(&self) -> Option<Literal> {
13971        support::child(&self.syntax)
13972    }
13973    #[inline]
13974    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13975        support::token(&self.syntax, SyntaxKind::L_PAREN)
13976    }
13977    #[inline]
13978    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13979        support::token(&self.syntax, SyntaxKind::R_PAREN)
13980    }
13981    #[inline]
13982    pub fn comma_token(&self) -> Option<SyntaxToken> {
13983        support::token(&self.syntax, SyntaxKind::COMMA)
13984    }
13985    #[inline]
13986    pub fn for_token(&self) -> Option<SyntaxToken> {
13987        support::token(&self.syntax, SyntaxKind::FOR_KW)
13988    }
13989    #[inline]
13990    pub fn ident_token(&self) -> Option<SyntaxToken> {
13991        support::token(&self.syntax, SyntaxKind::IDENT)
13992    }
13993    #[inline]
13994    pub fn values_token(&self) -> Option<SyntaxToken> {
13995        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13996    }
13997    #[inline]
13998    pub fn with_token(&self) -> Option<SyntaxToken> {
13999        support::token(&self.syntax, SyntaxKind::WITH_KW)
14000    }
14001}
14002
14003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14004pub struct PartitionItem {
14005    pub(crate) syntax: SyntaxNode,
14006}
14007impl PartitionItem {
14008    #[inline]
14009    pub fn collate(&self) -> Option<Collate> {
14010        support::child(&self.syntax)
14011    }
14012    #[inline]
14013    pub fn expr(&self) -> Option<Expr> {
14014        support::child(&self.syntax)
14015    }
14016}
14017
14018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14019pub struct PartitionItemList {
14020    pub(crate) syntax: SyntaxNode,
14021}
14022impl PartitionItemList {
14023    #[inline]
14024    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
14025        support::children(&self.syntax)
14026    }
14027    #[inline]
14028    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14029        support::token(&self.syntax, SyntaxKind::L_PAREN)
14030    }
14031    #[inline]
14032    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14033        support::token(&self.syntax, SyntaxKind::R_PAREN)
14034    }
14035}
14036
14037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14038pub struct PartitionList {
14039    pub(crate) syntax: SyntaxNode,
14040}
14041impl PartitionList {
14042    #[inline]
14043    pub fn partitions(&self) -> AstChildren<Partition> {
14044        support::children(&self.syntax)
14045    }
14046    #[inline]
14047    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14048        support::token(&self.syntax, SyntaxKind::L_PAREN)
14049    }
14050    #[inline]
14051    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14052        support::token(&self.syntax, SyntaxKind::R_PAREN)
14053    }
14054}
14055
14056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14057pub struct PartitionOf {
14058    pub(crate) syntax: SyntaxNode,
14059}
14060impl PartitionOf {
14061    #[inline]
14062    pub fn path(&self) -> Option<Path> {
14063        support::child(&self.syntax)
14064    }
14065    #[inline]
14066    pub fn of_token(&self) -> Option<SyntaxToken> {
14067        support::token(&self.syntax, SyntaxKind::OF_KW)
14068    }
14069    #[inline]
14070    pub fn partition_token(&self) -> Option<SyntaxToken> {
14071        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14072    }
14073}
14074
14075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14076pub struct Path {
14077    pub(crate) syntax: SyntaxNode,
14078}
14079impl Path {
14080    #[inline]
14081    pub fn qualifier(&self) -> Option<Path> {
14082        support::child(&self.syntax)
14083    }
14084    #[inline]
14085    pub fn segment(&self) -> Option<PathSegment> {
14086        support::child(&self.syntax)
14087    }
14088    #[inline]
14089    pub fn dot_token(&self) -> Option<SyntaxToken> {
14090        support::token(&self.syntax, SyntaxKind::DOT)
14091    }
14092}
14093
14094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14095pub struct PathFactor {
14096    pub(crate) syntax: SyntaxNode,
14097}
14098impl PathFactor {
14099    #[inline]
14100    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
14101        support::child(&self.syntax)
14102    }
14103    #[inline]
14104    pub fn path_primary(&self) -> Option<PathPrimary> {
14105        support::child(&self.syntax)
14106    }
14107}
14108
14109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14110pub struct PathPattern {
14111    pub(crate) syntax: SyntaxNode,
14112}
14113impl PathPattern {
14114    #[inline]
14115    pub fn path_factor(&self) -> Option<PathFactor> {
14116        support::child(&self.syntax)
14117    }
14118    #[inline]
14119    pub fn path_factors(&self) -> AstChildren<PathFactor> {
14120        support::children(&self.syntax)
14121    }
14122}
14123
14124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14125pub struct PathPatternList {
14126    pub(crate) syntax: SyntaxNode,
14127}
14128impl PathPatternList {
14129    #[inline]
14130    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
14131        support::children(&self.syntax)
14132    }
14133}
14134
14135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14136pub struct PathSegment {
14137    pub(crate) syntax: SyntaxNode,
14138}
14139impl PathSegment {
14140    #[inline]
14141    pub fn name(&self) -> Option<Name> {
14142        support::child(&self.syntax)
14143    }
14144    #[inline]
14145    pub fn name_ref(&self) -> Option<NameRef> {
14146        support::child(&self.syntax)
14147    }
14148}
14149
14150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14151pub struct PathType {
14152    pub(crate) syntax: SyntaxNode,
14153}
14154impl PathType {
14155    #[inline]
14156    pub fn arg_list(&self) -> Option<ArgList> {
14157        support::child(&self.syntax)
14158    }
14159    #[inline]
14160    pub fn path(&self) -> Option<Path> {
14161        support::child(&self.syntax)
14162    }
14163    #[inline]
14164    pub fn setof_token(&self) -> Option<SyntaxToken> {
14165        support::token(&self.syntax, SyntaxKind::SETOF_KW)
14166    }
14167}
14168
14169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14170pub struct PercentType {
14171    pub(crate) syntax: SyntaxNode,
14172}
14173impl PercentType {
14174    #[inline]
14175    pub fn percent_token(&self) -> Option<SyntaxToken> {
14176        support::token(&self.syntax, SyntaxKind::PERCENT)
14177    }
14178    #[inline]
14179    pub fn type_token(&self) -> Option<SyntaxToken> {
14180        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14181    }
14182}
14183
14184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14185pub struct PercentTypeClause {
14186    pub(crate) syntax: SyntaxNode,
14187}
14188impl PercentTypeClause {
14189    #[inline]
14190    pub fn path(&self) -> Option<Path> {
14191        support::child(&self.syntax)
14192    }
14193    #[inline]
14194    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
14195        support::child(&self.syntax)
14196    }
14197}
14198
14199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14200pub struct PositionFn {
14201    pub(crate) syntax: SyntaxNode,
14202}
14203impl PositionFn {
14204    #[inline]
14205    pub fn expr(&self) -> Option<Expr> {
14206        support::child(&self.syntax)
14207    }
14208    #[inline]
14209    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14210        support::token(&self.syntax, SyntaxKind::L_PAREN)
14211    }
14212    #[inline]
14213    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14214        support::token(&self.syntax, SyntaxKind::R_PAREN)
14215    }
14216    #[inline]
14217    pub fn in_token(&self) -> Option<SyntaxToken> {
14218        support::token(&self.syntax, SyntaxKind::IN_KW)
14219    }
14220    #[inline]
14221    pub fn position_token(&self) -> Option<SyntaxToken> {
14222        support::token(&self.syntax, SyntaxKind::POSITION_KW)
14223    }
14224}
14225
14226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14227pub struct PostfixExpr {
14228    pub(crate) syntax: SyntaxNode,
14229}
14230impl PostfixExpr {
14231    #[inline]
14232    pub fn expr(&self) -> Option<Expr> {
14233        support::child(&self.syntax)
14234    }
14235}
14236
14237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14238pub struct PrefixExpr {
14239    pub(crate) syntax: SyntaxNode,
14240}
14241impl PrefixExpr {
14242    #[inline]
14243    pub fn expr(&self) -> Option<Expr> {
14244        support::child(&self.syntax)
14245    }
14246}
14247
14248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14249pub struct Prepare {
14250    pub(crate) syntax: SyntaxNode,
14251}
14252impl Prepare {
14253    #[inline]
14254    pub fn name(&self) -> Option<Name> {
14255        support::child(&self.syntax)
14256    }
14257    #[inline]
14258    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
14259        support::child(&self.syntax)
14260    }
14261    #[inline]
14262    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14263        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14264    }
14265    #[inline]
14266    pub fn as_token(&self) -> Option<SyntaxToken> {
14267        support::token(&self.syntax, SyntaxKind::AS_KW)
14268    }
14269    #[inline]
14270    pub fn prepare_token(&self) -> Option<SyntaxToken> {
14271        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
14272    }
14273}
14274
14275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14276pub struct PrepareTransaction {
14277    pub(crate) syntax: SyntaxNode,
14278}
14279impl PrepareTransaction {
14280    #[inline]
14281    pub fn literal(&self) -> Option<Literal> {
14282        support::child(&self.syntax)
14283    }
14284    #[inline]
14285    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14286        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14287    }
14288    #[inline]
14289    pub fn prepare_token(&self) -> Option<SyntaxToken> {
14290        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
14291    }
14292    #[inline]
14293    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14294        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14295    }
14296}
14297
14298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14299pub struct PreserveRows {
14300    pub(crate) syntax: SyntaxNode,
14301}
14302impl PreserveRows {
14303    #[inline]
14304    pub fn preserve_token(&self) -> Option<SyntaxToken> {
14305        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
14306    }
14307    #[inline]
14308    pub fn rows_token(&self) -> Option<SyntaxToken> {
14309        support::token(&self.syntax, SyntaxKind::ROWS_KW)
14310    }
14311}
14312
14313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14314pub struct PrimaryKeyConstraint {
14315    pub(crate) syntax: SyntaxNode,
14316}
14317impl PrimaryKeyConstraint {
14318    #[inline]
14319    pub fn column_list(&self) -> Option<ColumnList> {
14320        support::child(&self.syntax)
14321    }
14322    #[inline]
14323    pub fn constraint_name(&self) -> Option<ConstraintName> {
14324        support::child(&self.syntax)
14325    }
14326    #[inline]
14327    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
14328        support::child(&self.syntax)
14329    }
14330    #[inline]
14331    pub fn using_index(&self) -> Option<UsingIndex> {
14332        support::child(&self.syntax)
14333    }
14334    #[inline]
14335    pub fn key_token(&self) -> Option<SyntaxToken> {
14336        support::token(&self.syntax, SyntaxKind::KEY_KW)
14337    }
14338    #[inline]
14339    pub fn primary_token(&self) -> Option<SyntaxToken> {
14340        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
14341    }
14342}
14343
14344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14345pub struct PrivilegeTarget {
14346    pub(crate) syntax: SyntaxNode,
14347}
14348impl PrivilegeTarget {
14349    #[inline]
14350    pub fn functions_token(&self) -> Option<SyntaxToken> {
14351        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
14352    }
14353    #[inline]
14354    pub fn large_token(&self) -> Option<SyntaxToken> {
14355        support::token(&self.syntax, SyntaxKind::LARGE_KW)
14356    }
14357    #[inline]
14358    pub fn objects_token(&self) -> Option<SyntaxToken> {
14359        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
14360    }
14361    #[inline]
14362    pub fn routines_token(&self) -> Option<SyntaxToken> {
14363        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
14364    }
14365    #[inline]
14366    pub fn schemas_token(&self) -> Option<SyntaxToken> {
14367        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
14368    }
14369    #[inline]
14370    pub fn sequences_token(&self) -> Option<SyntaxToken> {
14371        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
14372    }
14373    #[inline]
14374    pub fn tables_token(&self) -> Option<SyntaxToken> {
14375        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14376    }
14377    #[inline]
14378    pub fn types_token(&self) -> Option<SyntaxToken> {
14379        support::token(&self.syntax, SyntaxKind::TYPES_KW)
14380    }
14381}
14382
14383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14384pub struct Privileges {
14385    pub(crate) syntax: SyntaxNode,
14386}
14387impl Privileges {
14388    #[inline]
14389    pub fn column_list(&self) -> Option<ColumnList> {
14390        support::child(&self.syntax)
14391    }
14392    #[inline]
14393    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14394        support::child(&self.syntax)
14395    }
14396    #[inline]
14397    pub fn all_token(&self) -> Option<SyntaxToken> {
14398        support::token(&self.syntax, SyntaxKind::ALL_KW)
14399    }
14400    #[inline]
14401    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14402        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14403    }
14404}
14405
14406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14407pub struct Properties {
14408    pub(crate) syntax: SyntaxNode,
14409}
14410impl Properties {
14411    #[inline]
14412    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
14413        support::child(&self.syntax)
14414    }
14415    #[inline]
14416    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14417        support::token(&self.syntax, SyntaxKind::L_PAREN)
14418    }
14419    #[inline]
14420    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14421        support::token(&self.syntax, SyntaxKind::R_PAREN)
14422    }
14423    #[inline]
14424    pub fn properties_token(&self) -> Option<SyntaxToken> {
14425        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
14426    }
14427}
14428
14429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14430pub struct PublicationObject {
14431    pub(crate) syntax: SyntaxNode,
14432}
14433impl PublicationObject {
14434    #[inline]
14435    pub fn column_list(&self) -> Option<ColumnList> {
14436        support::child(&self.syntax)
14437    }
14438    #[inline]
14439    pub fn name_ref(&self) -> Option<NameRef> {
14440        support::child(&self.syntax)
14441    }
14442    #[inline]
14443    pub fn path(&self) -> Option<Path> {
14444        support::child(&self.syntax)
14445    }
14446    #[inline]
14447    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
14448        support::child(&self.syntax)
14449    }
14450    #[inline]
14451    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14452        support::token(&self.syntax, SyntaxKind::L_PAREN)
14453    }
14454    #[inline]
14455    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14456        support::token(&self.syntax, SyntaxKind::R_PAREN)
14457    }
14458    #[inline]
14459    pub fn star_token(&self) -> Option<SyntaxToken> {
14460        support::token(&self.syntax, SyntaxKind::STAR)
14461    }
14462    #[inline]
14463    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
14464        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
14465    }
14466    #[inline]
14467    pub fn in_token(&self) -> Option<SyntaxToken> {
14468        support::token(&self.syntax, SyntaxKind::IN_KW)
14469    }
14470    #[inline]
14471    pub fn only_token(&self) -> Option<SyntaxToken> {
14472        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14473    }
14474    #[inline]
14475    pub fn schema_token(&self) -> Option<SyntaxToken> {
14476        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14477    }
14478    #[inline]
14479    pub fn table_token(&self) -> Option<SyntaxToken> {
14480        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14481    }
14482    #[inline]
14483    pub fn tables_token(&self) -> Option<SyntaxToken> {
14484        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14485    }
14486}
14487
14488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14489pub struct ReadCommitted {
14490    pub(crate) syntax: SyntaxNode,
14491}
14492impl ReadCommitted {
14493    #[inline]
14494    pub fn committed_token(&self) -> Option<SyntaxToken> {
14495        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
14496    }
14497    #[inline]
14498    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14499        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14500    }
14501    #[inline]
14502    pub fn level_token(&self) -> Option<SyntaxToken> {
14503        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14504    }
14505    #[inline]
14506    pub fn read_token(&self) -> Option<SyntaxToken> {
14507        support::token(&self.syntax, SyntaxKind::READ_KW)
14508    }
14509}
14510
14511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14512pub struct ReadOnly {
14513    pub(crate) syntax: SyntaxNode,
14514}
14515impl ReadOnly {
14516    #[inline]
14517    pub fn only_token(&self) -> Option<SyntaxToken> {
14518        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14519    }
14520    #[inline]
14521    pub fn read_token(&self) -> Option<SyntaxToken> {
14522        support::token(&self.syntax, SyntaxKind::READ_KW)
14523    }
14524}
14525
14526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14527pub struct ReadUncommitted {
14528    pub(crate) syntax: SyntaxNode,
14529}
14530impl ReadUncommitted {
14531    #[inline]
14532    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14533        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14534    }
14535    #[inline]
14536    pub fn level_token(&self) -> Option<SyntaxToken> {
14537        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14538    }
14539    #[inline]
14540    pub fn read_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::READ_KW)
14542    }
14543    #[inline]
14544    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
14545        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
14546    }
14547}
14548
14549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14550pub struct ReadWrite {
14551    pub(crate) syntax: SyntaxNode,
14552}
14553impl ReadWrite {
14554    #[inline]
14555    pub fn read_token(&self) -> Option<SyntaxToken> {
14556        support::token(&self.syntax, SyntaxKind::READ_KW)
14557    }
14558    #[inline]
14559    pub fn write_token(&self) -> Option<SyntaxToken> {
14560        support::token(&self.syntax, SyntaxKind::WRITE_KW)
14561    }
14562}
14563
14564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14565pub struct Reassign {
14566    pub(crate) syntax: SyntaxNode,
14567}
14568impl Reassign {
14569    #[inline]
14570    pub fn new_roles(&self) -> Option<RoleRefList> {
14571        support::child(&self.syntax)
14572    }
14573    #[inline]
14574    pub fn old_roles(&self) -> Option<RoleRefList> {
14575        support::child(&self.syntax)
14576    }
14577    #[inline]
14578    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14580    }
14581    #[inline]
14582    pub fn by_token(&self) -> Option<SyntaxToken> {
14583        support::token(&self.syntax, SyntaxKind::BY_KW)
14584    }
14585    #[inline]
14586    pub fn owned_token(&self) -> Option<SyntaxToken> {
14587        support::token(&self.syntax, SyntaxKind::OWNED_KW)
14588    }
14589    #[inline]
14590    pub fn reassign_token(&self) -> Option<SyntaxToken> {
14591        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
14592    }
14593    #[inline]
14594    pub fn to_token(&self) -> Option<SyntaxToken> {
14595        support::token(&self.syntax, SyntaxKind::TO_KW)
14596    }
14597}
14598
14599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14600pub struct ReferencesConstraint {
14601    pub(crate) syntax: SyntaxNode,
14602}
14603impl ReferencesConstraint {
14604    #[inline]
14605    pub fn column(&self) -> Option<NameRef> {
14606        support::child(&self.syntax)
14607    }
14608    #[inline]
14609    pub fn constraint_name(&self) -> Option<ConstraintName> {
14610        support::child(&self.syntax)
14611    }
14612    #[inline]
14613    pub fn match_type(&self) -> Option<MatchType> {
14614        support::child(&self.syntax)
14615    }
14616    #[inline]
14617    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
14618        support::child(&self.syntax)
14619    }
14620    #[inline]
14621    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
14622        support::child(&self.syntax)
14623    }
14624    #[inline]
14625    pub fn table(&self) -> Option<Path> {
14626        support::child(&self.syntax)
14627    }
14628    #[inline]
14629    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14630        support::token(&self.syntax, SyntaxKind::L_PAREN)
14631    }
14632    #[inline]
14633    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14634        support::token(&self.syntax, SyntaxKind::R_PAREN)
14635    }
14636    #[inline]
14637    pub fn references_token(&self) -> Option<SyntaxToken> {
14638        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14639    }
14640}
14641
14642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14643pub struct ReferencesTable {
14644    pub(crate) syntax: SyntaxNode,
14645}
14646impl ReferencesTable {
14647    #[inline]
14648    pub fn column_list(&self) -> Option<ColumnList> {
14649        support::child(&self.syntax)
14650    }
14651    #[inline]
14652    pub fn name_ref(&self) -> Option<NameRef> {
14653        support::child(&self.syntax)
14654    }
14655    #[inline]
14656    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14657        support::token(&self.syntax, SyntaxKind::L_PAREN)
14658    }
14659    #[inline]
14660    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14661        support::token(&self.syntax, SyntaxKind::R_PAREN)
14662    }
14663    #[inline]
14664    pub fn references_token(&self) -> Option<SyntaxToken> {
14665        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14666    }
14667}
14668
14669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14670pub struct Referencing {
14671    pub(crate) syntax: SyntaxNode,
14672}
14673impl Referencing {
14674    #[inline]
14675    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14676        support::children(&self.syntax)
14677    }
14678    #[inline]
14679    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14680        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14681    }
14682}
14683
14684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14685pub struct ReferencingTable {
14686    pub(crate) syntax: SyntaxNode,
14687}
14688impl ReferencingTable {
14689    #[inline]
14690    pub fn name_ref(&self) -> Option<NameRef> {
14691        support::child(&self.syntax)
14692    }
14693    #[inline]
14694    pub fn as_token(&self) -> Option<SyntaxToken> {
14695        support::token(&self.syntax, SyntaxKind::AS_KW)
14696    }
14697    #[inline]
14698    pub fn new_token(&self) -> Option<SyntaxToken> {
14699        support::token(&self.syntax, SyntaxKind::NEW_KW)
14700    }
14701    #[inline]
14702    pub fn old_token(&self) -> Option<SyntaxToken> {
14703        support::token(&self.syntax, SyntaxKind::OLD_KW)
14704    }
14705    #[inline]
14706    pub fn table_token(&self) -> Option<SyntaxToken> {
14707        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14708    }
14709}
14710
14711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14712pub struct Refresh {
14713    pub(crate) syntax: SyntaxNode,
14714}
14715impl Refresh {
14716    #[inline]
14717    pub fn path(&self) -> Option<Path> {
14718        support::child(&self.syntax)
14719    }
14720    #[inline]
14721    pub fn with_data(&self) -> Option<WithData> {
14722        support::child(&self.syntax)
14723    }
14724    #[inline]
14725    pub fn with_no_data(&self) -> Option<WithNoData> {
14726        support::child(&self.syntax)
14727    }
14728    #[inline]
14729    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14730        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14731    }
14732    #[inline]
14733    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14735    }
14736    #[inline]
14737    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14738        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14739    }
14740    #[inline]
14741    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14742        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14743    }
14744    #[inline]
14745    pub fn view_token(&self) -> Option<SyntaxToken> {
14746        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14747    }
14748}
14749
14750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14751pub struct RefreshCollationVersion {
14752    pub(crate) syntax: SyntaxNode,
14753}
14754impl RefreshCollationVersion {
14755    #[inline]
14756    pub fn collation_token(&self) -> Option<SyntaxToken> {
14757        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14758    }
14759    #[inline]
14760    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14761        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14762    }
14763    #[inline]
14764    pub fn version_token(&self) -> Option<SyntaxToken> {
14765        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14766    }
14767}
14768
14769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14770pub struct RefreshVersion {
14771    pub(crate) syntax: SyntaxNode,
14772}
14773impl RefreshVersion {
14774    #[inline]
14775    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14776        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14777    }
14778    #[inline]
14779    pub fn version_token(&self) -> Option<SyntaxToken> {
14780        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14781    }
14782}
14783
14784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14785pub struct Reindex {
14786    pub(crate) syntax: SyntaxNode,
14787}
14788impl Reindex {
14789    #[inline]
14790    pub fn path(&self) -> Option<Path> {
14791        support::child(&self.syntax)
14792    }
14793    #[inline]
14794    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14795        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14796    }
14797    #[inline]
14798    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14799        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14800    }
14801    #[inline]
14802    pub fn database_token(&self) -> Option<SyntaxToken> {
14803        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14804    }
14805    #[inline]
14806    pub fn index_token(&self) -> Option<SyntaxToken> {
14807        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14808    }
14809    #[inline]
14810    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14811        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14812    }
14813    #[inline]
14814    pub fn schema_token(&self) -> Option<SyntaxToken> {
14815        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14816    }
14817    #[inline]
14818    pub fn system_token(&self) -> Option<SyntaxToken> {
14819        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14820    }
14821    #[inline]
14822    pub fn table_token(&self) -> Option<SyntaxToken> {
14823        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14824    }
14825}
14826
14827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14828pub struct RelationName {
14829    pub(crate) syntax: SyntaxNode,
14830}
14831impl RelationName {
14832    #[inline]
14833    pub fn path(&self) -> Option<Path> {
14834        support::child(&self.syntax)
14835    }
14836    #[inline]
14837    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14838        support::token(&self.syntax, SyntaxKind::L_PAREN)
14839    }
14840    #[inline]
14841    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14842        support::token(&self.syntax, SyntaxKind::R_PAREN)
14843    }
14844    #[inline]
14845    pub fn star_token(&self) -> Option<SyntaxToken> {
14846        support::token(&self.syntax, SyntaxKind::STAR)
14847    }
14848    #[inline]
14849    pub fn only_token(&self) -> Option<SyntaxToken> {
14850        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14851    }
14852}
14853
14854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14855pub struct ReleaseSavepoint {
14856    pub(crate) syntax: SyntaxNode,
14857}
14858impl ReleaseSavepoint {
14859    #[inline]
14860    pub fn name_ref(&self) -> Option<NameRef> {
14861        support::child(&self.syntax)
14862    }
14863    #[inline]
14864    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14865        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14866    }
14867    #[inline]
14868    pub fn release_token(&self) -> Option<SyntaxToken> {
14869        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14870    }
14871    #[inline]
14872    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14873        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14874    }
14875}
14876
14877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14878pub struct RenameAttribute {
14879    pub(crate) syntax: SyntaxNode,
14880}
14881impl RenameAttribute {
14882    #[inline]
14883    pub fn name(&self) -> Option<Name> {
14884        support::child(&self.syntax)
14885    }
14886    #[inline]
14887    pub fn name_ref(&self) -> Option<NameRef> {
14888        support::child(&self.syntax)
14889    }
14890    #[inline]
14891    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14892        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14893    }
14894    #[inline]
14895    pub fn rename_token(&self) -> Option<SyntaxToken> {
14896        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14897    }
14898    #[inline]
14899    pub fn to_token(&self) -> Option<SyntaxToken> {
14900        support::token(&self.syntax, SyntaxKind::TO_KW)
14901    }
14902}
14903
14904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14905pub struct RenameColumn {
14906    pub(crate) syntax: SyntaxNode,
14907}
14908impl RenameColumn {
14909    #[inline]
14910    pub fn column_token(&self) -> Option<SyntaxToken> {
14911        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14912    }
14913    #[inline]
14914    pub fn rename_token(&self) -> Option<SyntaxToken> {
14915        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14916    }
14917    #[inline]
14918    pub fn to_token(&self) -> Option<SyntaxToken> {
14919        support::token(&self.syntax, SyntaxKind::TO_KW)
14920    }
14921}
14922
14923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14924pub struct RenameConstraint {
14925    pub(crate) syntax: SyntaxNode,
14926}
14927impl RenameConstraint {
14928    #[inline]
14929    pub fn name(&self) -> Option<Name> {
14930        support::child(&self.syntax)
14931    }
14932    #[inline]
14933    pub fn name_ref(&self) -> Option<NameRef> {
14934        support::child(&self.syntax)
14935    }
14936    #[inline]
14937    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14938        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14939    }
14940    #[inline]
14941    pub fn rename_token(&self) -> Option<SyntaxToken> {
14942        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14943    }
14944    #[inline]
14945    pub fn to_token(&self) -> Option<SyntaxToken> {
14946        support::token(&self.syntax, SyntaxKind::TO_KW)
14947    }
14948}
14949
14950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14951pub struct RenameTo {
14952    pub(crate) syntax: SyntaxNode,
14953}
14954impl RenameTo {
14955    #[inline]
14956    pub fn name(&self) -> Option<Name> {
14957        support::child(&self.syntax)
14958    }
14959    #[inline]
14960    pub fn rename_token(&self) -> Option<SyntaxToken> {
14961        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14962    }
14963    #[inline]
14964    pub fn to_token(&self) -> Option<SyntaxToken> {
14965        support::token(&self.syntax, SyntaxKind::TO_KW)
14966    }
14967}
14968
14969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14970pub struct RenameValue {
14971    pub(crate) syntax: SyntaxNode,
14972}
14973impl RenameValue {
14974    #[inline]
14975    pub fn literal(&self) -> Option<Literal> {
14976        support::child(&self.syntax)
14977    }
14978    #[inline]
14979    pub fn rename_token(&self) -> Option<SyntaxToken> {
14980        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14981    }
14982    #[inline]
14983    pub fn to_token(&self) -> Option<SyntaxToken> {
14984        support::token(&self.syntax, SyntaxKind::TO_KW)
14985    }
14986    #[inline]
14987    pub fn value_token(&self) -> Option<SyntaxToken> {
14988        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14989    }
14990}
14991
14992#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14993pub struct Repack {
14994    pub(crate) syntax: SyntaxNode,
14995}
14996impl Repack {
14997    #[inline]
14998    pub fn name_ref(&self) -> Option<NameRef> {
14999        support::child(&self.syntax)
15000    }
15001    #[inline]
15002    pub fn option_item_list(&self) -> Option<OptionItemList> {
15003        support::child(&self.syntax)
15004    }
15005    #[inline]
15006    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15007        support::child(&self.syntax)
15008    }
15009    #[inline]
15010    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15011        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15012    }
15013    #[inline]
15014    pub fn index_token(&self) -> Option<SyntaxToken> {
15015        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15016    }
15017    #[inline]
15018    pub fn repack_token(&self) -> Option<SyntaxToken> {
15019        support::token(&self.syntax, SyntaxKind::REPACK_KW)
15020    }
15021    #[inline]
15022    pub fn using_token(&self) -> Option<SyntaxToken> {
15023        support::token(&self.syntax, SyntaxKind::USING_KW)
15024    }
15025}
15026
15027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15028pub struct RepeatableClause {
15029    pub(crate) syntax: SyntaxNode,
15030}
15031impl RepeatableClause {
15032    #[inline]
15033    pub fn expr(&self) -> Option<Expr> {
15034        support::child(&self.syntax)
15035    }
15036    #[inline]
15037    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15038        support::token(&self.syntax, SyntaxKind::L_PAREN)
15039    }
15040    #[inline]
15041    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15042        support::token(&self.syntax, SyntaxKind::R_PAREN)
15043    }
15044    #[inline]
15045    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
15046        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
15047    }
15048}
15049
15050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15051pub struct RepeatableRead {
15052    pub(crate) syntax: SyntaxNode,
15053}
15054impl RepeatableRead {
15055    #[inline]
15056    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15057        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15058    }
15059    #[inline]
15060    pub fn level_token(&self) -> Option<SyntaxToken> {
15061        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15062    }
15063    #[inline]
15064    pub fn read_token(&self) -> Option<SyntaxToken> {
15065        support::token(&self.syntax, SyntaxKind::READ_KW)
15066    }
15067    #[inline]
15068    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
15069        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
15070    }
15071}
15072
15073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15074pub struct ReplicaIdentity {
15075    pub(crate) syntax: SyntaxNode,
15076}
15077impl ReplicaIdentity {
15078    #[inline]
15079    pub fn identity_token(&self) -> Option<SyntaxToken> {
15080        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15081    }
15082    #[inline]
15083    pub fn replica_token(&self) -> Option<SyntaxToken> {
15084        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
15085    }
15086}
15087
15088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15089pub struct Reset {
15090    pub(crate) syntax: SyntaxNode,
15091}
15092impl Reset {
15093    #[inline]
15094    pub fn name_ref(&self) -> Option<NameRef> {
15095        support::child(&self.syntax)
15096    }
15097    #[inline]
15098    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15099        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15100    }
15101    #[inline]
15102    pub fn all_token(&self) -> Option<SyntaxToken> {
15103        support::token(&self.syntax, SyntaxKind::ALL_KW)
15104    }
15105    #[inline]
15106    pub fn reset_token(&self) -> Option<SyntaxToken> {
15107        support::token(&self.syntax, SyntaxKind::RESET_KW)
15108    }
15109}
15110
15111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15112pub struct ResetConfigParam {
15113    pub(crate) syntax: SyntaxNode,
15114}
15115impl ResetConfigParam {
15116    #[inline]
15117    pub fn path(&self) -> Option<Path> {
15118        support::child(&self.syntax)
15119    }
15120    #[inline]
15121    pub fn all_token(&self) -> Option<SyntaxToken> {
15122        support::token(&self.syntax, SyntaxKind::ALL_KW)
15123    }
15124    #[inline]
15125    pub fn reset_token(&self) -> Option<SyntaxToken> {
15126        support::token(&self.syntax, SyntaxKind::RESET_KW)
15127    }
15128}
15129
15130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15131pub struct ResetFuncOption {
15132    pub(crate) syntax: SyntaxNode,
15133}
15134impl ResetFuncOption {
15135    #[inline]
15136    pub fn name_ref(&self) -> Option<NameRef> {
15137        support::child(&self.syntax)
15138    }
15139    #[inline]
15140    pub fn reset_token(&self) -> Option<SyntaxToken> {
15141        support::token(&self.syntax, SyntaxKind::RESET_KW)
15142    }
15143}
15144
15145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15146pub struct ResetOptions {
15147    pub(crate) syntax: SyntaxNode,
15148}
15149impl ResetOptions {
15150    #[inline]
15151    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15152        support::token(&self.syntax, SyntaxKind::L_PAREN)
15153    }
15154    #[inline]
15155    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15156        support::token(&self.syntax, SyntaxKind::R_PAREN)
15157    }
15158    #[inline]
15159    pub fn reset_token(&self) -> Option<SyntaxToken> {
15160        support::token(&self.syntax, SyntaxKind::RESET_KW)
15161    }
15162}
15163
15164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15165pub struct ResetSessionAuth {
15166    pub(crate) syntax: SyntaxNode,
15167}
15168impl ResetSessionAuth {
15169    #[inline]
15170    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15172    }
15173    #[inline]
15174    pub fn authorization_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
15176    }
15177    #[inline]
15178    pub fn reset_token(&self) -> Option<SyntaxToken> {
15179        support::token(&self.syntax, SyntaxKind::RESET_KW)
15180    }
15181    #[inline]
15182    pub fn session_token(&self) -> Option<SyntaxToken> {
15183        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15184    }
15185}
15186
15187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15188pub struct Restart {
15189    pub(crate) syntax: SyntaxNode,
15190}
15191impl Restart {
15192    #[inline]
15193    pub fn restart_token(&self) -> Option<SyntaxToken> {
15194        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15195    }
15196    #[inline]
15197    pub fn with_token(&self) -> Option<SyntaxToken> {
15198        support::token(&self.syntax, SyntaxKind::WITH_KW)
15199    }
15200}
15201
15202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15203pub struct Restrict {
15204    pub(crate) syntax: SyntaxNode,
15205}
15206impl Restrict {
15207    #[inline]
15208    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15209        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15210    }
15211}
15212
15213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15214pub struct RetType {
15215    pub(crate) syntax: SyntaxNode,
15216}
15217impl RetType {
15218    #[inline]
15219    pub fn table_arg_list(&self) -> Option<TableArgList> {
15220        support::child(&self.syntax)
15221    }
15222    #[inline]
15223    pub fn ty(&self) -> Option<Type> {
15224        support::child(&self.syntax)
15225    }
15226    #[inline]
15227    pub fn returns_token(&self) -> Option<SyntaxToken> {
15228        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
15229    }
15230    #[inline]
15231    pub fn table_token(&self) -> Option<SyntaxToken> {
15232        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15233    }
15234}
15235
15236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15237pub struct ReturnFuncOption {
15238    pub(crate) syntax: SyntaxNode,
15239}
15240impl ReturnFuncOption {
15241    #[inline]
15242    pub fn expr(&self) -> Option<Expr> {
15243        support::child(&self.syntax)
15244    }
15245    #[inline]
15246    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15247        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15248    }
15249    #[inline]
15250    pub fn return_token(&self) -> Option<SyntaxToken> {
15251        support::token(&self.syntax, SyntaxKind::RETURN_KW)
15252    }
15253}
15254
15255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15256pub struct ReturningClause {
15257    pub(crate) syntax: SyntaxNode,
15258}
15259impl ReturningClause {
15260    #[inline]
15261    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
15262        support::child(&self.syntax)
15263    }
15264    #[inline]
15265    pub fn target_list(&self) -> Option<TargetList> {
15266        support::child(&self.syntax)
15267    }
15268    #[inline]
15269    pub fn returning_token(&self) -> Option<SyntaxToken> {
15270        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
15271    }
15272}
15273
15274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15275pub struct ReturningOption {
15276    pub(crate) syntax: SyntaxNode,
15277}
15278impl ReturningOption {
15279    #[inline]
15280    pub fn name(&self) -> Option<Name> {
15281        support::child(&self.syntax)
15282    }
15283    #[inline]
15284    pub fn as_token(&self) -> Option<SyntaxToken> {
15285        support::token(&self.syntax, SyntaxKind::AS_KW)
15286    }
15287    #[inline]
15288    pub fn new_token(&self) -> Option<SyntaxToken> {
15289        support::token(&self.syntax, SyntaxKind::NEW_KW)
15290    }
15291    #[inline]
15292    pub fn old_token(&self) -> Option<SyntaxToken> {
15293        support::token(&self.syntax, SyntaxKind::OLD_KW)
15294    }
15295}
15296
15297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15298pub struct ReturningOptionList {
15299    pub(crate) syntax: SyntaxNode,
15300}
15301impl ReturningOptionList {
15302    #[inline]
15303    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
15304        support::children(&self.syntax)
15305    }
15306    #[inline]
15307    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15308        support::token(&self.syntax, SyntaxKind::L_PAREN)
15309    }
15310    #[inline]
15311    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15312        support::token(&self.syntax, SyntaxKind::R_PAREN)
15313    }
15314    #[inline]
15315    pub fn with_token(&self) -> Option<SyntaxToken> {
15316        support::token(&self.syntax, SyntaxKind::WITH_KW)
15317    }
15318}
15319
15320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15321pub struct Revoke {
15322    pub(crate) syntax: SyntaxNode,
15323}
15324impl Revoke {
15325    #[inline]
15326    pub fn name_refs(&self) -> AstChildren<NameRef> {
15327        support::children(&self.syntax)
15328    }
15329    #[inline]
15330    pub fn paths(&self) -> AstChildren<Path> {
15331        support::children(&self.syntax)
15332    }
15333    #[inline]
15334    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
15335        support::child(&self.syntax)
15336    }
15337    #[inline]
15338    pub fn role_ref(&self) -> Option<RoleRef> {
15339        support::child(&self.syntax)
15340    }
15341    #[inline]
15342    pub fn role_ref_list(&self) -> Option<RoleRefList> {
15343        support::child(&self.syntax)
15344    }
15345    #[inline]
15346    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15347        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15348    }
15349    #[inline]
15350    pub fn all_token(&self) -> Option<SyntaxToken> {
15351        support::token(&self.syntax, SyntaxKind::ALL_KW)
15352    }
15353    #[inline]
15354    pub fn by_token(&self) -> Option<SyntaxToken> {
15355        support::token(&self.syntax, SyntaxKind::BY_KW)
15356    }
15357    #[inline]
15358    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15359        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15360    }
15361    #[inline]
15362    pub fn for_token(&self) -> Option<SyntaxToken> {
15363        support::token(&self.syntax, SyntaxKind::FOR_KW)
15364    }
15365    #[inline]
15366    pub fn from_token(&self) -> Option<SyntaxToken> {
15367        support::token(&self.syntax, SyntaxKind::FROM_KW)
15368    }
15369    #[inline]
15370    pub fn grant_token(&self) -> Option<SyntaxToken> {
15371        support::token(&self.syntax, SyntaxKind::GRANT_KW)
15372    }
15373    #[inline]
15374    pub fn granted_token(&self) -> Option<SyntaxToken> {
15375        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
15376    }
15377    #[inline]
15378    pub fn in_token(&self) -> Option<SyntaxToken> {
15379        support::token(&self.syntax, SyntaxKind::IN_KW)
15380    }
15381    #[inline]
15382    pub fn on_token(&self) -> Option<SyntaxToken> {
15383        support::token(&self.syntax, SyntaxKind::ON_KW)
15384    }
15385    #[inline]
15386    pub fn option_token(&self) -> Option<SyntaxToken> {
15387        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15388    }
15389    #[inline]
15390    pub fn privileges_token(&self) -> Option<SyntaxToken> {
15391        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
15392    }
15393    #[inline]
15394    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15395        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15396    }
15397    #[inline]
15398    pub fn revoke_token(&self) -> Option<SyntaxToken> {
15399        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
15400    }
15401    #[inline]
15402    pub fn schema_token(&self) -> Option<SyntaxToken> {
15403        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15404    }
15405    #[inline]
15406    pub fn table_token(&self) -> Option<SyntaxToken> {
15407        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15408    }
15409    #[inline]
15410    pub fn tables_token(&self) -> Option<SyntaxToken> {
15411        support::token(&self.syntax, SyntaxKind::TABLES_KW)
15412    }
15413}
15414
15415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15416pub struct RevokeCommand {
15417    pub(crate) syntax: SyntaxNode,
15418}
15419impl RevokeCommand {
15420    #[inline]
15421    pub fn role_ref(&self) -> Option<RoleRef> {
15422        support::child(&self.syntax)
15423    }
15424    #[inline]
15425    pub fn all_token(&self) -> Option<SyntaxToken> {
15426        support::token(&self.syntax, SyntaxKind::ALL_KW)
15427    }
15428    #[inline]
15429    pub fn alter_token(&self) -> Option<SyntaxToken> {
15430        support::token(&self.syntax, SyntaxKind::ALTER_KW)
15431    }
15432    #[inline]
15433    pub fn create_token(&self) -> Option<SyntaxToken> {
15434        support::token(&self.syntax, SyntaxKind::CREATE_KW)
15435    }
15436    #[inline]
15437    pub fn delete_token(&self) -> Option<SyntaxToken> {
15438        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15439    }
15440    #[inline]
15441    pub fn execute_token(&self) -> Option<SyntaxToken> {
15442        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
15443    }
15444    #[inline]
15445    pub fn ident_token(&self) -> Option<SyntaxToken> {
15446        support::token(&self.syntax, SyntaxKind::IDENT)
15447    }
15448    #[inline]
15449    pub fn insert_token(&self) -> Option<SyntaxToken> {
15450        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15451    }
15452    #[inline]
15453    pub fn references_token(&self) -> Option<SyntaxToken> {
15454        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
15455    }
15456    #[inline]
15457    pub fn select_token(&self) -> Option<SyntaxToken> {
15458        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15459    }
15460    #[inline]
15461    pub fn system_token(&self) -> Option<SyntaxToken> {
15462        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
15463    }
15464    #[inline]
15465    pub fn temp_token(&self) -> Option<SyntaxToken> {
15466        support::token(&self.syntax, SyntaxKind::TEMP_KW)
15467    }
15468    #[inline]
15469    pub fn temporary_token(&self) -> Option<SyntaxToken> {
15470        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
15471    }
15472    #[inline]
15473    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15474        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15475    }
15476    #[inline]
15477    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15478        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15479    }
15480    #[inline]
15481    pub fn update_token(&self) -> Option<SyntaxToken> {
15482        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15483    }
15484}
15485
15486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15487pub struct RevokeCommandList {
15488    pub(crate) syntax: SyntaxNode,
15489}
15490impl RevokeCommandList {
15491    #[inline]
15492    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
15493        support::children(&self.syntax)
15494    }
15495}
15496
15497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15498pub struct RevokeDefaultPrivileges {
15499    pub(crate) syntax: SyntaxNode,
15500}
15501impl RevokeDefaultPrivileges {
15502    #[inline]
15503    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
15504        support::child(&self.syntax)
15505    }
15506    #[inline]
15507    pub fn privileges(&self) -> Option<Privileges> {
15508        support::child(&self.syntax)
15509    }
15510    #[inline]
15511    pub fn role_ref_list(&self) -> Option<RoleRefList> {
15512        support::child(&self.syntax)
15513    }
15514    #[inline]
15515    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15517    }
15518    #[inline]
15519    pub fn for_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::FOR_KW)
15521    }
15522    #[inline]
15523    pub fn from_token(&self) -> Option<SyntaxToken> {
15524        support::token(&self.syntax, SyntaxKind::FROM_KW)
15525    }
15526    #[inline]
15527    pub fn grant_token(&self) -> Option<SyntaxToken> {
15528        support::token(&self.syntax, SyntaxKind::GRANT_KW)
15529    }
15530    #[inline]
15531    pub fn on_token(&self) -> Option<SyntaxToken> {
15532        support::token(&self.syntax, SyntaxKind::ON_KW)
15533    }
15534    #[inline]
15535    pub fn option_token(&self) -> Option<SyntaxToken> {
15536        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15537    }
15538    #[inline]
15539    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15540        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15541    }
15542    #[inline]
15543    pub fn revoke_token(&self) -> Option<SyntaxToken> {
15544        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
15545    }
15546}
15547
15548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15549pub struct Role {
15550    pub(crate) syntax: SyntaxNode,
15551}
15552impl Role {
15553    #[inline]
15554    pub fn name(&self) -> Option<Name> {
15555        support::child(&self.syntax)
15556    }
15557    #[inline]
15558    pub fn current_role_token(&self) -> Option<SyntaxToken> {
15559        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
15560    }
15561    #[inline]
15562    pub fn current_user_token(&self) -> Option<SyntaxToken> {
15563        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
15564    }
15565    #[inline]
15566    pub fn group_token(&self) -> Option<SyntaxToken> {
15567        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15568    }
15569    #[inline]
15570    pub fn session_user_token(&self) -> Option<SyntaxToken> {
15571        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
15572    }
15573}
15574
15575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15576pub struct RoleOption {
15577    pub(crate) syntax: SyntaxNode,
15578}
15579impl RoleOption {
15580    #[inline]
15581    pub fn inherit_token(&self) -> Option<SyntaxToken> {
15582        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
15583    }
15584}
15585
15586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15587pub struct RoleOptionList {
15588    pub(crate) syntax: SyntaxNode,
15589}
15590impl RoleOptionList {
15591    #[inline]
15592    pub fn role_options(&self) -> AstChildren<RoleOption> {
15593        support::children(&self.syntax)
15594    }
15595    #[inline]
15596    pub fn with_token(&self) -> Option<SyntaxToken> {
15597        support::token(&self.syntax, SyntaxKind::WITH_KW)
15598    }
15599}
15600
15601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15602pub struct RoleRef {
15603    pub(crate) syntax: SyntaxNode,
15604}
15605impl RoleRef {
15606    #[inline]
15607    pub fn name_ref(&self) -> Option<NameRef> {
15608        support::child(&self.syntax)
15609    }
15610    #[inline]
15611    pub fn current_role_token(&self) -> Option<SyntaxToken> {
15612        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
15613    }
15614    #[inline]
15615    pub fn current_user_token(&self) -> Option<SyntaxToken> {
15616        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
15617    }
15618    #[inline]
15619    pub fn group_token(&self) -> Option<SyntaxToken> {
15620        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15621    }
15622    #[inline]
15623    pub fn session_user_token(&self) -> Option<SyntaxToken> {
15624        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
15625    }
15626}
15627
15628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15629pub struct RoleRefList {
15630    pub(crate) syntax: SyntaxNode,
15631}
15632impl RoleRefList {
15633    #[inline]
15634    pub fn role_refs(&self) -> AstChildren<RoleRef> {
15635        support::children(&self.syntax)
15636    }
15637}
15638
15639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15640pub struct Rollback {
15641    pub(crate) syntax: SyntaxNode,
15642}
15643impl Rollback {
15644    #[inline]
15645    pub fn literal(&self) -> Option<Literal> {
15646        support::child(&self.syntax)
15647    }
15648    #[inline]
15649    pub fn name_ref(&self) -> Option<NameRef> {
15650        support::child(&self.syntax)
15651    }
15652    #[inline]
15653    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15654        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15655    }
15656    #[inline]
15657    pub fn abort_token(&self) -> Option<SyntaxToken> {
15658        support::token(&self.syntax, SyntaxKind::ABORT_KW)
15659    }
15660    #[inline]
15661    pub fn and_token(&self) -> Option<SyntaxToken> {
15662        support::token(&self.syntax, SyntaxKind::AND_KW)
15663    }
15664    #[inline]
15665    pub fn chain_token(&self) -> Option<SyntaxToken> {
15666        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
15667    }
15668    #[inline]
15669    pub fn no_token(&self) -> Option<SyntaxToken> {
15670        support::token(&self.syntax, SyntaxKind::NO_KW)
15671    }
15672    #[inline]
15673    pub fn prepared_token(&self) -> Option<SyntaxToken> {
15674        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
15675    }
15676    #[inline]
15677    pub fn rollback_token(&self) -> Option<SyntaxToken> {
15678        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
15679    }
15680    #[inline]
15681    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15682        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15683    }
15684    #[inline]
15685    pub fn to_token(&self) -> Option<SyntaxToken> {
15686        support::token(&self.syntax, SyntaxKind::TO_KW)
15687    }
15688    #[inline]
15689    pub fn transaction_token(&self) -> Option<SyntaxToken> {
15690        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
15691    }
15692    #[inline]
15693    pub fn work_token(&self) -> Option<SyntaxToken> {
15694        support::token(&self.syntax, SyntaxKind::WORK_KW)
15695    }
15696}
15697
15698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15699pub struct Row {
15700    pub(crate) syntax: SyntaxNode,
15701}
15702impl Row {
15703    #[inline]
15704    pub fn exprs(&self) -> AstChildren<Expr> {
15705        support::children(&self.syntax)
15706    }
15707}
15708
15709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15710pub struct RowList {
15711    pub(crate) syntax: SyntaxNode,
15712}
15713impl RowList {
15714    #[inline]
15715    pub fn rows(&self) -> AstChildren<Row> {
15716        support::children(&self.syntax)
15717    }
15718}
15719
15720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15721pub struct RowsFuncOption {
15722    pub(crate) syntax: SyntaxNode,
15723}
15724impl RowsFuncOption {
15725    #[inline]
15726    pub fn rows_token(&self) -> Option<SyntaxToken> {
15727        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15728    }
15729}
15730
15731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15732pub struct RuleDo {
15733    pub(crate) syntax: SyntaxNode,
15734}
15735impl RuleDo {
15736    #[inline]
15737    pub fn rule_action(&self) -> Option<RuleAction> {
15738        support::child(&self.syntax)
15739    }
15740    #[inline]
15741    pub fn also_token(&self) -> Option<SyntaxToken> {
15742        support::token(&self.syntax, SyntaxKind::ALSO_KW)
15743    }
15744    #[inline]
15745    pub fn do_token(&self) -> Option<SyntaxToken> {
15746        support::token(&self.syntax, SyntaxKind::DO_KW)
15747    }
15748    #[inline]
15749    pub fn instead_token(&self) -> Option<SyntaxToken> {
15750        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15751    }
15752}
15753
15754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15755pub struct RuleOn {
15756    pub(crate) syntax: SyntaxNode,
15757}
15758impl RuleOn {
15759    #[inline]
15760    pub fn path(&self) -> Option<Path> {
15761        support::child(&self.syntax)
15762    }
15763    #[inline]
15764    pub fn where_clause(&self) -> Option<WhereClause> {
15765        support::child(&self.syntax)
15766    }
15767    #[inline]
15768    pub fn delete_token(&self) -> Option<SyntaxToken> {
15769        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15770    }
15771    #[inline]
15772    pub fn ident_token(&self) -> Option<SyntaxToken> {
15773        support::token(&self.syntax, SyntaxKind::IDENT)
15774    }
15775    #[inline]
15776    pub fn insert_token(&self) -> Option<SyntaxToken> {
15777        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15778    }
15779    #[inline]
15780    pub fn on_token(&self) -> Option<SyntaxToken> {
15781        support::token(&self.syntax, SyntaxKind::ON_KW)
15782    }
15783    #[inline]
15784    pub fn select_token(&self) -> Option<SyntaxToken> {
15785        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15786    }
15787    #[inline]
15788    pub fn to_token(&self) -> Option<SyntaxToken> {
15789        support::token(&self.syntax, SyntaxKind::TO_KW)
15790    }
15791    #[inline]
15792    pub fn update_token(&self) -> Option<SyntaxToken> {
15793        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15794    }
15795}
15796
15797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15798pub struct RuleStmtList {
15799    pub(crate) syntax: SyntaxNode,
15800}
15801impl RuleStmtList {
15802    #[inline]
15803    pub fn rule_stmts(&self) -> AstChildren<RuleStmt> {
15804        support::children(&self.syntax)
15805    }
15806    #[inline]
15807    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15808        support::token(&self.syntax, SyntaxKind::L_PAREN)
15809    }
15810    #[inline]
15811    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15812        support::token(&self.syntax, SyntaxKind::R_PAREN)
15813    }
15814}
15815
15816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15817pub struct Savepoint {
15818    pub(crate) syntax: SyntaxNode,
15819}
15820impl Savepoint {
15821    #[inline]
15822    pub fn name(&self) -> Option<Name> {
15823        support::child(&self.syntax)
15824    }
15825    #[inline]
15826    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15827        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15828    }
15829    #[inline]
15830    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15831        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15832    }
15833}
15834
15835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15836pub struct SecurityFuncOption {
15837    pub(crate) syntax: SyntaxNode,
15838}
15839impl SecurityFuncOption {
15840    #[inline]
15841    pub fn definer_token(&self) -> Option<SyntaxToken> {
15842        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15843    }
15844    #[inline]
15845    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15846        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15847    }
15848    #[inline]
15849    pub fn security_token(&self) -> Option<SyntaxToken> {
15850        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15851    }
15852}
15853
15854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15855pub struct SecurityLabel {
15856    pub(crate) syntax: SyntaxNode,
15857}
15858impl SecurityLabel {
15859    #[inline]
15860    pub fn aggregate(&self) -> Option<Aggregate> {
15861        support::child(&self.syntax)
15862    }
15863    #[inline]
15864    pub fn for_provider(&self) -> Option<ForProvider> {
15865        support::child(&self.syntax)
15866    }
15867    #[inline]
15868    pub fn function_sig(&self) -> Option<FunctionSig> {
15869        support::child(&self.syntax)
15870    }
15871    #[inline]
15872    pub fn literal(&self) -> Option<Literal> {
15873        support::child(&self.syntax)
15874    }
15875    #[inline]
15876    pub fn path(&self) -> Option<Path> {
15877        support::child(&self.syntax)
15878    }
15879    #[inline]
15880    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15881        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15882    }
15883    #[inline]
15884    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15885        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15886    }
15887    #[inline]
15888    pub fn column_token(&self) -> Option<SyntaxToken> {
15889        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15890    }
15891    #[inline]
15892    pub fn database_token(&self) -> Option<SyntaxToken> {
15893        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15894    }
15895    #[inline]
15896    pub fn domain_token(&self) -> Option<SyntaxToken> {
15897        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15898    }
15899    #[inline]
15900    pub fn event_token(&self) -> Option<SyntaxToken> {
15901        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15902    }
15903    #[inline]
15904    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15905        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15906    }
15907    #[inline]
15908    pub fn function_token(&self) -> Option<SyntaxToken> {
15909        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15910    }
15911    #[inline]
15912    pub fn is_token(&self) -> Option<SyntaxToken> {
15913        support::token(&self.syntax, SyntaxKind::IS_KW)
15914    }
15915    #[inline]
15916    pub fn label_token(&self) -> Option<SyntaxToken> {
15917        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15918    }
15919    #[inline]
15920    pub fn language_token(&self) -> Option<SyntaxToken> {
15921        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15922    }
15923    #[inline]
15924    pub fn large_token(&self) -> Option<SyntaxToken> {
15925        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15926    }
15927    #[inline]
15928    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15929        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15930    }
15931    #[inline]
15932    pub fn null_token(&self) -> Option<SyntaxToken> {
15933        support::token(&self.syntax, SyntaxKind::NULL_KW)
15934    }
15935    #[inline]
15936    pub fn object_token(&self) -> Option<SyntaxToken> {
15937        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15938    }
15939    #[inline]
15940    pub fn on_token(&self) -> Option<SyntaxToken> {
15941        support::token(&self.syntax, SyntaxKind::ON_KW)
15942    }
15943    #[inline]
15944    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15945        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15946    }
15947    #[inline]
15948    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15949        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15950    }
15951    #[inline]
15952    pub fn publication_token(&self) -> Option<SyntaxToken> {
15953        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15954    }
15955    #[inline]
15956    pub fn role_token(&self) -> Option<SyntaxToken> {
15957        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15958    }
15959    #[inline]
15960    pub fn routine_token(&self) -> Option<SyntaxToken> {
15961        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15962    }
15963    #[inline]
15964    pub fn schema_token(&self) -> Option<SyntaxToken> {
15965        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15966    }
15967    #[inline]
15968    pub fn security_token(&self) -> Option<SyntaxToken> {
15969        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15970    }
15971    #[inline]
15972    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15973        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15974    }
15975    #[inline]
15976    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15977        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15978    }
15979    #[inline]
15980    pub fn table_token(&self) -> Option<SyntaxToken> {
15981        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15982    }
15983    #[inline]
15984    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15985        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15986    }
15987    #[inline]
15988    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15989        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15990    }
15991    #[inline]
15992    pub fn type_token(&self) -> Option<SyntaxToken> {
15993        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15994    }
15995    #[inline]
15996    pub fn view_token(&self) -> Option<SyntaxToken> {
15997        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15998    }
15999}
16000
16001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16002pub struct Select {
16003    pub(crate) syntax: SyntaxNode,
16004}
16005impl Select {
16006    #[inline]
16007    pub fn fetch_clause(&self) -> Option<FetchClause> {
16008        support::child(&self.syntax)
16009    }
16010    #[inline]
16011    pub fn filter_clause(&self) -> Option<FilterClause> {
16012        support::child(&self.syntax)
16013    }
16014    #[inline]
16015    pub fn from_clause(&self) -> Option<FromClause> {
16016        support::child(&self.syntax)
16017    }
16018    #[inline]
16019    pub fn group_by_clause(&self) -> Option<GroupByClause> {
16020        support::child(&self.syntax)
16021    }
16022    #[inline]
16023    pub fn having_clause(&self) -> Option<HavingClause> {
16024        support::child(&self.syntax)
16025    }
16026    #[inline]
16027    pub fn limit_clause(&self) -> Option<LimitClause> {
16028        support::child(&self.syntax)
16029    }
16030    #[inline]
16031    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
16032        support::children(&self.syntax)
16033    }
16034    #[inline]
16035    pub fn offset_clause(&self) -> Option<OffsetClause> {
16036        support::child(&self.syntax)
16037    }
16038    #[inline]
16039    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16040        support::child(&self.syntax)
16041    }
16042    #[inline]
16043    pub fn select_clause(&self) -> Option<SelectClause> {
16044        support::child(&self.syntax)
16045    }
16046    #[inline]
16047    pub fn where_clause(&self) -> Option<WhereClause> {
16048        support::child(&self.syntax)
16049    }
16050    #[inline]
16051    pub fn window_clause(&self) -> Option<WindowClause> {
16052        support::child(&self.syntax)
16053    }
16054    #[inline]
16055    pub fn with_clause(&self) -> Option<WithClause> {
16056        support::child(&self.syntax)
16057    }
16058    #[inline]
16059    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16060        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16061    }
16062}
16063
16064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16065pub struct SelectClause {
16066    pub(crate) syntax: SyntaxNode,
16067}
16068impl SelectClause {
16069    #[inline]
16070    pub fn distinct_clause(&self) -> Option<DistinctClause> {
16071        support::child(&self.syntax)
16072    }
16073    #[inline]
16074    pub fn target_list(&self) -> Option<TargetList> {
16075        support::child(&self.syntax)
16076    }
16077    #[inline]
16078    pub fn all_token(&self) -> Option<SyntaxToken> {
16079        support::token(&self.syntax, SyntaxKind::ALL_KW)
16080    }
16081    #[inline]
16082    pub fn select_token(&self) -> Option<SyntaxToken> {
16083        support::token(&self.syntax, SyntaxKind::SELECT_KW)
16084    }
16085}
16086
16087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16088pub struct SelectInto {
16089    pub(crate) syntax: SyntaxNode,
16090}
16091impl SelectInto {
16092    #[inline]
16093    pub fn filter_clause(&self) -> Option<FilterClause> {
16094        support::child(&self.syntax)
16095    }
16096    #[inline]
16097    pub fn from_clause(&self) -> Option<FromClause> {
16098        support::child(&self.syntax)
16099    }
16100    #[inline]
16101    pub fn group_by_clause(&self) -> Option<GroupByClause> {
16102        support::child(&self.syntax)
16103    }
16104    #[inline]
16105    pub fn having_clause(&self) -> Option<HavingClause> {
16106        support::child(&self.syntax)
16107    }
16108    #[inline]
16109    pub fn into_clause(&self) -> Option<IntoClause> {
16110        support::child(&self.syntax)
16111    }
16112    #[inline]
16113    pub fn limit_clause(&self) -> Option<LimitClause> {
16114        support::child(&self.syntax)
16115    }
16116    #[inline]
16117    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
16118        support::children(&self.syntax)
16119    }
16120    #[inline]
16121    pub fn offset_clause(&self) -> Option<OffsetClause> {
16122        support::child(&self.syntax)
16123    }
16124    #[inline]
16125    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16126        support::child(&self.syntax)
16127    }
16128    #[inline]
16129    pub fn select_clause(&self) -> Option<SelectClause> {
16130        support::child(&self.syntax)
16131    }
16132    #[inline]
16133    pub fn where_clause(&self) -> Option<WhereClause> {
16134        support::child(&self.syntax)
16135    }
16136    #[inline]
16137    pub fn window_clause(&self) -> Option<WindowClause> {
16138        support::child(&self.syntax)
16139    }
16140    #[inline]
16141    pub fn with_clause(&self) -> Option<WithClause> {
16142        support::child(&self.syntax)
16143    }
16144    #[inline]
16145    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16146        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16147    }
16148}
16149
16150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16151pub struct SequenceOption {
16152    pub(crate) syntax: SyntaxNode,
16153}
16154impl SequenceOption {
16155    #[inline]
16156    pub fn literal(&self) -> Option<Literal> {
16157        support::child(&self.syntax)
16158    }
16159    #[inline]
16160    pub fn name_ref(&self) -> Option<NameRef> {
16161        support::child(&self.syntax)
16162    }
16163    #[inline]
16164    pub fn path(&self) -> Option<Path> {
16165        support::child(&self.syntax)
16166    }
16167    #[inline]
16168    pub fn ty(&self) -> Option<Type> {
16169        support::child(&self.syntax)
16170    }
16171    #[inline]
16172    pub fn as_token(&self) -> Option<SyntaxToken> {
16173        support::token(&self.syntax, SyntaxKind::AS_KW)
16174    }
16175    #[inline]
16176    pub fn by_token(&self) -> Option<SyntaxToken> {
16177        support::token(&self.syntax, SyntaxKind::BY_KW)
16178    }
16179    #[inline]
16180    pub fn cycle_token(&self) -> Option<SyntaxToken> {
16181        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
16182    }
16183    #[inline]
16184    pub fn increment_token(&self) -> Option<SyntaxToken> {
16185        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
16186    }
16187    #[inline]
16188    pub fn logged_token(&self) -> Option<SyntaxToken> {
16189        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
16190    }
16191    #[inline]
16192    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
16193        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
16194    }
16195    #[inline]
16196    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
16197        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
16198    }
16199    #[inline]
16200    pub fn name_token(&self) -> Option<SyntaxToken> {
16201        support::token(&self.syntax, SyntaxKind::NAME_KW)
16202    }
16203    #[inline]
16204    pub fn no_token(&self) -> Option<SyntaxToken> {
16205        support::token(&self.syntax, SyntaxKind::NO_KW)
16206    }
16207    #[inline]
16208    pub fn none_token(&self) -> Option<SyntaxToken> {
16209        support::token(&self.syntax, SyntaxKind::NONE_KW)
16210    }
16211    #[inline]
16212    pub fn owned_token(&self) -> Option<SyntaxToken> {
16213        support::token(&self.syntax, SyntaxKind::OWNED_KW)
16214    }
16215    #[inline]
16216    pub fn restart_token(&self) -> Option<SyntaxToken> {
16217        support::token(&self.syntax, SyntaxKind::RESTART_KW)
16218    }
16219    #[inline]
16220    pub fn sequence_token(&self) -> Option<SyntaxToken> {
16221        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
16222    }
16223    #[inline]
16224    pub fn start_token(&self) -> Option<SyntaxToken> {
16225        support::token(&self.syntax, SyntaxKind::START_KW)
16226    }
16227    #[inline]
16228    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16229        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16230    }
16231    #[inline]
16232    pub fn with_token(&self) -> Option<SyntaxToken> {
16233        support::token(&self.syntax, SyntaxKind::WITH_KW)
16234    }
16235}
16236
16237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16238pub struct SequenceOptionList {
16239    pub(crate) syntax: SyntaxNode,
16240}
16241impl SequenceOptionList {
16242    #[inline]
16243    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
16244        support::children(&self.syntax)
16245    }
16246    #[inline]
16247    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16248        support::token(&self.syntax, SyntaxKind::L_PAREN)
16249    }
16250    #[inline]
16251    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16252        support::token(&self.syntax, SyntaxKind::R_PAREN)
16253    }
16254}
16255
16256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16257pub struct Serializable {
16258    pub(crate) syntax: SyntaxNode,
16259}
16260impl Serializable {
16261    #[inline]
16262    pub fn isolation_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
16264    }
16265    #[inline]
16266    pub fn level_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
16268    }
16269    #[inline]
16270    pub fn serializable_token(&self) -> Option<SyntaxToken> {
16271        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
16272    }
16273}
16274
16275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16276pub struct ServerName {
16277    pub(crate) syntax: SyntaxNode,
16278}
16279impl ServerName {
16280    #[inline]
16281    pub fn name_ref(&self) -> Option<NameRef> {
16282        support::child(&self.syntax)
16283    }
16284    #[inline]
16285    pub fn server_token(&self) -> Option<SyntaxToken> {
16286        support::token(&self.syntax, SyntaxKind::SERVER_KW)
16287    }
16288}
16289
16290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16291pub struct Set {
16292    pub(crate) syntax: SyntaxNode,
16293}
16294impl Set {
16295    #[inline]
16296    pub fn config_value(&self) -> Option<ConfigValue> {
16297        support::child(&self.syntax)
16298    }
16299    #[inline]
16300    pub fn config_values(&self) -> AstChildren<ConfigValue> {
16301        support::children(&self.syntax)
16302    }
16303    #[inline]
16304    pub fn literal(&self) -> Option<Literal> {
16305        support::child(&self.syntax)
16306    }
16307    #[inline]
16308    pub fn path(&self) -> Option<Path> {
16309        support::child(&self.syntax)
16310    }
16311    #[inline]
16312    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16313        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16314    }
16315    #[inline]
16316    pub fn eq_token(&self) -> Option<SyntaxToken> {
16317        support::token(&self.syntax, SyntaxKind::EQ)
16318    }
16319    #[inline]
16320    pub fn catalog_token(&self) -> Option<SyntaxToken> {
16321        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
16322    }
16323    #[inline]
16324    pub fn content_token(&self) -> Option<SyntaxToken> {
16325        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16326    }
16327    #[inline]
16328    pub fn current_token(&self) -> Option<SyntaxToken> {
16329        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
16330    }
16331    #[inline]
16332    pub fn default_token(&self) -> Option<SyntaxToken> {
16333        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16334    }
16335    #[inline]
16336    pub fn document_token(&self) -> Option<SyntaxToken> {
16337        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16338    }
16339    #[inline]
16340    pub fn from_token(&self) -> Option<SyntaxToken> {
16341        support::token(&self.syntax, SyntaxKind::FROM_KW)
16342    }
16343    #[inline]
16344    pub fn local_token(&self) -> Option<SyntaxToken> {
16345        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16346    }
16347    #[inline]
16348    pub fn option_token(&self) -> Option<SyntaxToken> {
16349        support::token(&self.syntax, SyntaxKind::OPTION_KW)
16350    }
16351    #[inline]
16352    pub fn schema_token(&self) -> Option<SyntaxToken> {
16353        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16354    }
16355    #[inline]
16356    pub fn session_token(&self) -> Option<SyntaxToken> {
16357        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16358    }
16359    #[inline]
16360    pub fn set_token(&self) -> Option<SyntaxToken> {
16361        support::token(&self.syntax, SyntaxKind::SET_KW)
16362    }
16363    #[inline]
16364    pub fn time_token(&self) -> Option<SyntaxToken> {
16365        support::token(&self.syntax, SyntaxKind::TIME_KW)
16366    }
16367    #[inline]
16368    pub fn to_token(&self) -> Option<SyntaxToken> {
16369        support::token(&self.syntax, SyntaxKind::TO_KW)
16370    }
16371    #[inline]
16372    pub fn xml_token(&self) -> Option<SyntaxToken> {
16373        support::token(&self.syntax, SyntaxKind::XML_KW)
16374    }
16375    #[inline]
16376    pub fn zone_token(&self) -> Option<SyntaxToken> {
16377        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16378    }
16379}
16380
16381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16382pub struct SetAccessMethod {
16383    pub(crate) syntax: SyntaxNode,
16384}
16385impl SetAccessMethod {
16386    #[inline]
16387    pub fn name_ref(&self) -> Option<NameRef> {
16388        support::child(&self.syntax)
16389    }
16390    #[inline]
16391    pub fn access_token(&self) -> Option<SyntaxToken> {
16392        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
16393    }
16394    #[inline]
16395    pub fn method_token(&self) -> Option<SyntaxToken> {
16396        support::token(&self.syntax, SyntaxKind::METHOD_KW)
16397    }
16398    #[inline]
16399    pub fn set_token(&self) -> Option<SyntaxToken> {
16400        support::token(&self.syntax, SyntaxKind::SET_KW)
16401    }
16402}
16403
16404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16405pub struct SetClause {
16406    pub(crate) syntax: SyntaxNode,
16407}
16408impl SetClause {
16409    #[inline]
16410    pub fn set_column_list(&self) -> Option<SetColumnList> {
16411        support::child(&self.syntax)
16412    }
16413    #[inline]
16414    pub fn set_token(&self) -> Option<SyntaxToken> {
16415        support::token(&self.syntax, SyntaxKind::SET_KW)
16416    }
16417}
16418
16419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16420pub struct SetColumnList {
16421    pub(crate) syntax: SyntaxNode,
16422}
16423impl SetColumnList {
16424    #[inline]
16425    pub fn set_columns(&self) -> AstChildren<SetColumn> {
16426        support::children(&self.syntax)
16427    }
16428}
16429
16430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16431pub struct SetCompression {
16432    pub(crate) syntax: SyntaxNode,
16433}
16434impl SetCompression {
16435    #[inline]
16436    pub fn compression_token(&self) -> Option<SyntaxToken> {
16437        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
16438    }
16439    #[inline]
16440    pub fn set_token(&self) -> Option<SyntaxToken> {
16441        support::token(&self.syntax, SyntaxKind::SET_KW)
16442    }
16443}
16444
16445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16446pub struct SetConfigParam {
16447    pub(crate) syntax: SyntaxNode,
16448}
16449impl SetConfigParam {
16450    #[inline]
16451    pub fn path(&self) -> Option<Path> {
16452        support::child(&self.syntax)
16453    }
16454    #[inline]
16455    pub fn set_token(&self) -> Option<SyntaxToken> {
16456        support::token(&self.syntax, SyntaxKind::SET_KW)
16457    }
16458}
16459
16460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16461pub struct SetConstraints {
16462    pub(crate) syntax: SyntaxNode,
16463}
16464impl SetConstraints {
16465    #[inline]
16466    pub fn paths(&self) -> AstChildren<Path> {
16467        support::children(&self.syntax)
16468    }
16469    #[inline]
16470    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16471        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16472    }
16473    #[inline]
16474    pub fn all_token(&self) -> Option<SyntaxToken> {
16475        support::token(&self.syntax, SyntaxKind::ALL_KW)
16476    }
16477    #[inline]
16478    pub fn constraints_token(&self) -> Option<SyntaxToken> {
16479        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
16480    }
16481    #[inline]
16482    pub fn deferred_token(&self) -> Option<SyntaxToken> {
16483        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
16484    }
16485    #[inline]
16486    pub fn immediate_token(&self) -> Option<SyntaxToken> {
16487        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
16488    }
16489    #[inline]
16490    pub fn set_token(&self) -> Option<SyntaxToken> {
16491        support::token(&self.syntax, SyntaxKind::SET_KW)
16492    }
16493}
16494
16495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16496pub struct SetDefault {
16497    pub(crate) syntax: SyntaxNode,
16498}
16499impl SetDefault {
16500    #[inline]
16501    pub fn expr(&self) -> Option<Expr> {
16502        support::child(&self.syntax)
16503    }
16504    #[inline]
16505    pub fn default_token(&self) -> Option<SyntaxToken> {
16506        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16507    }
16508    #[inline]
16509    pub fn set_token(&self) -> Option<SyntaxToken> {
16510        support::token(&self.syntax, SyntaxKind::SET_KW)
16511    }
16512}
16513
16514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16515pub struct SetDefaultColumns {
16516    pub(crate) syntax: SyntaxNode,
16517}
16518impl SetDefaultColumns {
16519    #[inline]
16520    pub fn column_list(&self) -> Option<ColumnList> {
16521        support::child(&self.syntax)
16522    }
16523    #[inline]
16524    pub fn default_token(&self) -> Option<SyntaxToken> {
16525        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16526    }
16527    #[inline]
16528    pub fn set_token(&self) -> Option<SyntaxToken> {
16529        support::token(&self.syntax, SyntaxKind::SET_KW)
16530    }
16531}
16532
16533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16534pub struct SetExpr {
16535    pub(crate) syntax: SyntaxNode,
16536}
16537impl SetExpr {
16538    #[inline]
16539    pub fn expr(&self) -> Option<Expr> {
16540        support::child(&self.syntax)
16541    }
16542    #[inline]
16543    pub fn default_token(&self) -> Option<SyntaxToken> {
16544        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16545    }
16546}
16547
16548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16549pub struct SetExprList {
16550    pub(crate) syntax: SyntaxNode,
16551}
16552impl SetExprList {
16553    #[inline]
16554    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
16555        support::children(&self.syntax)
16556    }
16557    #[inline]
16558    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16559        support::token(&self.syntax, SyntaxKind::L_PAREN)
16560    }
16561    #[inline]
16562    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16563        support::token(&self.syntax, SyntaxKind::R_PAREN)
16564    }
16565    #[inline]
16566    pub fn row_token(&self) -> Option<SyntaxToken> {
16567        support::token(&self.syntax, SyntaxKind::ROW_KW)
16568    }
16569}
16570
16571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16572pub struct SetExpression {
16573    pub(crate) syntax: SyntaxNode,
16574}
16575impl SetExpression {
16576    #[inline]
16577    pub fn expr(&self) -> Option<Expr> {
16578        support::child(&self.syntax)
16579    }
16580    #[inline]
16581    pub fn expression_token(&self) -> Option<SyntaxToken> {
16582        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
16583    }
16584    #[inline]
16585    pub fn set_token(&self) -> Option<SyntaxToken> {
16586        support::token(&self.syntax, SyntaxKind::SET_KW)
16587    }
16588}
16589
16590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16591pub struct SetFuncOption {
16592    pub(crate) syntax: SyntaxNode,
16593}
16594impl SetFuncOption {
16595    #[inline]
16596    pub fn set_token(&self) -> Option<SyntaxToken> {
16597        support::token(&self.syntax, SyntaxKind::SET_KW)
16598    }
16599}
16600
16601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16602pub struct SetGenerated {
16603    pub(crate) syntax: SyntaxNode,
16604}
16605impl SetGenerated {
16606    #[inline]
16607    pub fn set_token(&self) -> Option<SyntaxToken> {
16608        support::token(&self.syntax, SyntaxKind::SET_KW)
16609    }
16610}
16611
16612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16613pub struct SetGeneratedOptions {
16614    pub(crate) syntax: SyntaxNode,
16615}
16616impl SetGeneratedOptions {
16617    #[inline]
16618    pub fn generated_token(&self) -> Option<SyntaxToken> {
16619        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
16620    }
16621    #[inline]
16622    pub fn set_token(&self) -> Option<SyntaxToken> {
16623        support::token(&self.syntax, SyntaxKind::SET_KW)
16624    }
16625}
16626
16627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16628pub struct SetLogged {
16629    pub(crate) syntax: SyntaxNode,
16630}
16631impl SetLogged {
16632    #[inline]
16633    pub fn logged_token(&self) -> Option<SyntaxToken> {
16634        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
16635    }
16636    #[inline]
16637    pub fn set_token(&self) -> Option<SyntaxToken> {
16638        support::token(&self.syntax, SyntaxKind::SET_KW)
16639    }
16640}
16641
16642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16643pub struct SetMultipleColumns {
16644    pub(crate) syntax: SyntaxNode,
16645}
16646impl SetMultipleColumns {
16647    #[inline]
16648    pub fn column_list(&self) -> Option<ColumnList> {
16649        support::child(&self.syntax)
16650    }
16651    #[inline]
16652    pub fn paren_select(&self) -> Option<ParenSelect> {
16653        support::child(&self.syntax)
16654    }
16655    #[inline]
16656    pub fn set_expr_list(&self) -> Option<SetExprList> {
16657        support::child(&self.syntax)
16658    }
16659    #[inline]
16660    pub fn eq_token(&self) -> Option<SyntaxToken> {
16661        support::token(&self.syntax, SyntaxKind::EQ)
16662    }
16663}
16664
16665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16666pub struct SetNotNull {
16667    pub(crate) syntax: SyntaxNode,
16668}
16669impl SetNotNull {
16670    #[inline]
16671    pub fn not_token(&self) -> Option<SyntaxToken> {
16672        support::token(&self.syntax, SyntaxKind::NOT_KW)
16673    }
16674    #[inline]
16675    pub fn null_token(&self) -> Option<SyntaxToken> {
16676        support::token(&self.syntax, SyntaxKind::NULL_KW)
16677    }
16678    #[inline]
16679    pub fn set_token(&self) -> Option<SyntaxToken> {
16680        support::token(&self.syntax, SyntaxKind::SET_KW)
16681    }
16682}
16683
16684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16685pub struct SetNullColumns {
16686    pub(crate) syntax: SyntaxNode,
16687}
16688impl SetNullColumns {
16689    #[inline]
16690    pub fn column_list(&self) -> Option<ColumnList> {
16691        support::child(&self.syntax)
16692    }
16693    #[inline]
16694    pub fn null_token(&self) -> Option<SyntaxToken> {
16695        support::token(&self.syntax, SyntaxKind::NULL_KW)
16696    }
16697    #[inline]
16698    pub fn set_token(&self) -> Option<SyntaxToken> {
16699        support::token(&self.syntax, SyntaxKind::SET_KW)
16700    }
16701}
16702
16703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16704pub struct SetOptions {
16705    pub(crate) syntax: SyntaxNode,
16706}
16707impl SetOptions {
16708    #[inline]
16709    pub fn attribute_list(&self) -> Option<AttributeList> {
16710        support::child(&self.syntax)
16711    }
16712    #[inline]
16713    pub fn set_token(&self) -> Option<SyntaxToken> {
16714        support::token(&self.syntax, SyntaxKind::SET_KW)
16715    }
16716}
16717
16718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16719pub struct SetOptionsList {
16720    pub(crate) syntax: SyntaxNode,
16721}
16722impl SetOptionsList {
16723    #[inline]
16724    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
16725        support::child(&self.syntax)
16726    }
16727    #[inline]
16728    pub fn options_token(&self) -> Option<SyntaxToken> {
16729        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
16730    }
16731    #[inline]
16732    pub fn set_token(&self) -> Option<SyntaxToken> {
16733        support::token(&self.syntax, SyntaxKind::SET_KW)
16734    }
16735}
16736
16737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16738pub struct SetRole {
16739    pub(crate) syntax: SyntaxNode,
16740}
16741impl SetRole {
16742    #[inline]
16743    pub fn role_ref(&self) -> Option<RoleRef> {
16744        support::child(&self.syntax)
16745    }
16746    #[inline]
16747    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16748        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16749    }
16750    #[inline]
16751    pub fn local_token(&self) -> Option<SyntaxToken> {
16752        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16753    }
16754    #[inline]
16755    pub fn none_token(&self) -> Option<SyntaxToken> {
16756        support::token(&self.syntax, SyntaxKind::NONE_KW)
16757    }
16758    #[inline]
16759    pub fn reset_token(&self) -> Option<SyntaxToken> {
16760        support::token(&self.syntax, SyntaxKind::RESET_KW)
16761    }
16762    #[inline]
16763    pub fn role_token(&self) -> Option<SyntaxToken> {
16764        support::token(&self.syntax, SyntaxKind::ROLE_KW)
16765    }
16766    #[inline]
16767    pub fn session_token(&self) -> Option<SyntaxToken> {
16768        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16769    }
16770    #[inline]
16771    pub fn set_token(&self) -> Option<SyntaxToken> {
16772        support::token(&self.syntax, SyntaxKind::SET_KW)
16773    }
16774}
16775
16776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16777pub struct SetSchema {
16778    pub(crate) syntax: SyntaxNode,
16779}
16780impl SetSchema {
16781    #[inline]
16782    pub fn name_ref(&self) -> Option<NameRef> {
16783        support::child(&self.syntax)
16784    }
16785    #[inline]
16786    pub fn schema_token(&self) -> Option<SyntaxToken> {
16787        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16788    }
16789    #[inline]
16790    pub fn set_token(&self) -> Option<SyntaxToken> {
16791        support::token(&self.syntax, SyntaxKind::SET_KW)
16792    }
16793}
16794
16795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16796pub struct SetSequenceOption {
16797    pub(crate) syntax: SyntaxNode,
16798}
16799impl SetSequenceOption {
16800    #[inline]
16801    pub fn set_token(&self) -> Option<SyntaxToken> {
16802        support::token(&self.syntax, SyntaxKind::SET_KW)
16803    }
16804}
16805
16806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16807pub struct SetSessionAuth {
16808    pub(crate) syntax: SyntaxNode,
16809}
16810impl SetSessionAuth {
16811    #[inline]
16812    pub fn literal(&self) -> Option<Literal> {
16813        support::child(&self.syntax)
16814    }
16815    #[inline]
16816    pub fn role_ref(&self) -> Option<RoleRef> {
16817        support::child(&self.syntax)
16818    }
16819    #[inline]
16820    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16821        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16822    }
16823    #[inline]
16824    pub fn authorization_token(&self) -> Option<SyntaxToken> {
16825        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
16826    }
16827    #[inline]
16828    pub fn default_token(&self) -> Option<SyntaxToken> {
16829        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16830    }
16831    #[inline]
16832    pub fn local_token(&self) -> Option<SyntaxToken> {
16833        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16834    }
16835    #[inline]
16836    pub fn session_token(&self) -> Option<SyntaxToken> {
16837        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16838    }
16839    #[inline]
16840    pub fn set_token(&self) -> Option<SyntaxToken> {
16841        support::token(&self.syntax, SyntaxKind::SET_KW)
16842    }
16843}
16844
16845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16846pub struct SetSingleColumn {
16847    pub(crate) syntax: SyntaxNode,
16848}
16849impl SetSingleColumn {
16850    #[inline]
16851    pub fn column(&self) -> Option<Column> {
16852        support::child(&self.syntax)
16853    }
16854    #[inline]
16855    pub fn set_expr(&self) -> Option<SetExpr> {
16856        support::child(&self.syntax)
16857    }
16858    #[inline]
16859    pub fn eq_token(&self) -> Option<SyntaxToken> {
16860        support::token(&self.syntax, SyntaxKind::EQ)
16861    }
16862}
16863
16864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16865pub struct SetStatistics {
16866    pub(crate) syntax: SyntaxNode,
16867}
16868impl SetStatistics {
16869    #[inline]
16870    pub fn set_token(&self) -> Option<SyntaxToken> {
16871        support::token(&self.syntax, SyntaxKind::SET_KW)
16872    }
16873    #[inline]
16874    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16875        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16876    }
16877}
16878
16879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16880pub struct SetStorage {
16881    pub(crate) syntax: SyntaxNode,
16882}
16883impl SetStorage {
16884    #[inline]
16885    pub fn set_token(&self) -> Option<SyntaxToken> {
16886        support::token(&self.syntax, SyntaxKind::SET_KW)
16887    }
16888    #[inline]
16889    pub fn storage_token(&self) -> Option<SyntaxToken> {
16890        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16891    }
16892}
16893
16894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16895pub struct SetTablespace {
16896    pub(crate) syntax: SyntaxNode,
16897}
16898impl SetTablespace {
16899    #[inline]
16900    pub fn path(&self) -> Option<Path> {
16901        support::child(&self.syntax)
16902    }
16903    #[inline]
16904    pub fn set_token(&self) -> Option<SyntaxToken> {
16905        support::token(&self.syntax, SyntaxKind::SET_KW)
16906    }
16907    #[inline]
16908    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16909        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16910    }
16911}
16912
16913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16914pub struct SetTransaction {
16915    pub(crate) syntax: SyntaxNode,
16916}
16917impl SetTransaction {
16918    #[inline]
16919    pub fn literal(&self) -> Option<Literal> {
16920        support::child(&self.syntax)
16921    }
16922    #[inline]
16923    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16924        support::child(&self.syntax)
16925    }
16926    #[inline]
16927    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16928        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16929    }
16930    #[inline]
16931    pub fn as_token(&self) -> Option<SyntaxToken> {
16932        support::token(&self.syntax, SyntaxKind::AS_KW)
16933    }
16934    #[inline]
16935    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16936        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16937    }
16938    #[inline]
16939    pub fn session_token(&self) -> Option<SyntaxToken> {
16940        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16941    }
16942    #[inline]
16943    pub fn set_token(&self) -> Option<SyntaxToken> {
16944        support::token(&self.syntax, SyntaxKind::SET_KW)
16945    }
16946    #[inline]
16947    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16948        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16949    }
16950    #[inline]
16951    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16952        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16953    }
16954}
16955
16956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16957pub struct SetType {
16958    pub(crate) syntax: SyntaxNode,
16959}
16960impl SetType {
16961    #[inline]
16962    pub fn collate(&self) -> Option<Collate> {
16963        support::child(&self.syntax)
16964    }
16965    #[inline]
16966    pub fn ty(&self) -> Option<Type> {
16967        support::child(&self.syntax)
16968    }
16969    #[inline]
16970    pub fn set_token(&self) -> Option<SyntaxToken> {
16971        support::token(&self.syntax, SyntaxKind::SET_KW)
16972    }
16973    #[inline]
16974    pub fn type_token(&self) -> Option<SyntaxToken> {
16975        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16976    }
16977}
16978
16979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16980pub struct SetUnlogged {
16981    pub(crate) syntax: SyntaxNode,
16982}
16983impl SetUnlogged {
16984    #[inline]
16985    pub fn set_token(&self) -> Option<SyntaxToken> {
16986        support::token(&self.syntax, SyntaxKind::SET_KW)
16987    }
16988    #[inline]
16989    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16990        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16991    }
16992}
16993
16994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16995pub struct SetWithoutCluster {
16996    pub(crate) syntax: SyntaxNode,
16997}
16998impl SetWithoutCluster {
16999    #[inline]
17000    pub fn cluster_token(&self) -> Option<SyntaxToken> {
17001        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
17002    }
17003    #[inline]
17004    pub fn set_token(&self) -> Option<SyntaxToken> {
17005        support::token(&self.syntax, SyntaxKind::SET_KW)
17006    }
17007    #[inline]
17008    pub fn without_token(&self) -> Option<SyntaxToken> {
17009        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17010    }
17011}
17012
17013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17014pub struct SetWithoutOids {
17015    pub(crate) syntax: SyntaxNode,
17016}
17017impl SetWithoutOids {
17018    #[inline]
17019    pub fn oids_token(&self) -> Option<SyntaxToken> {
17020        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17021    }
17022    #[inline]
17023    pub fn set_token(&self) -> Option<SyntaxToken> {
17024        support::token(&self.syntax, SyntaxKind::SET_KW)
17025    }
17026    #[inline]
17027    pub fn without_token(&self) -> Option<SyntaxToken> {
17028        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17029    }
17030}
17031
17032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17033pub struct Show {
17034    pub(crate) syntax: SyntaxNode,
17035}
17036impl Show {
17037    #[inline]
17038    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17039        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17040    }
17041    #[inline]
17042    pub fn show_token(&self) -> Option<SyntaxToken> {
17043        support::token(&self.syntax, SyntaxKind::SHOW_KW)
17044    }
17045}
17046
17047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17048pub struct SimilarTo {
17049    pub(crate) syntax: SyntaxNode,
17050}
17051impl SimilarTo {
17052    #[inline]
17053    pub fn similar_token(&self) -> Option<SyntaxToken> {
17054        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
17055    }
17056    #[inline]
17057    pub fn to_token(&self) -> Option<SyntaxToken> {
17058        support::token(&self.syntax, SyntaxKind::TO_KW)
17059    }
17060}
17061
17062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17063pub struct SliceExpr {
17064    pub(crate) syntax: SyntaxNode,
17065}
17066impl SliceExpr {
17067    #[inline]
17068    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
17069        support::token(&self.syntax, SyntaxKind::L_BRACK)
17070    }
17071    #[inline]
17072    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
17073        support::token(&self.syntax, SyntaxKind::R_BRACK)
17074    }
17075    #[inline]
17076    pub fn colon_token(&self) -> Option<SyntaxToken> {
17077        support::token(&self.syntax, SyntaxKind::COLON)
17078    }
17079}
17080
17081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17082pub struct SomeFn {
17083    pub(crate) syntax: SyntaxNode,
17084}
17085impl SomeFn {
17086    #[inline]
17087    pub fn expr(&self) -> Option<Expr> {
17088        support::child(&self.syntax)
17089    }
17090    #[inline]
17091    pub fn select_variant(&self) -> Option<SelectVariant> {
17092        support::child(&self.syntax)
17093    }
17094    #[inline]
17095    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17096        support::token(&self.syntax, SyntaxKind::L_PAREN)
17097    }
17098    #[inline]
17099    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17100        support::token(&self.syntax, SyntaxKind::R_PAREN)
17101    }
17102    #[inline]
17103    pub fn some_token(&self) -> Option<SyntaxToken> {
17104        support::token(&self.syntax, SyntaxKind::SOME_KW)
17105    }
17106}
17107
17108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17109pub struct SortAsc {
17110    pub(crate) syntax: SyntaxNode,
17111}
17112impl SortAsc {
17113    #[inline]
17114    pub fn asc_token(&self) -> Option<SyntaxToken> {
17115        support::token(&self.syntax, SyntaxKind::ASC_KW)
17116    }
17117}
17118
17119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17120pub struct SortBy {
17121    pub(crate) syntax: SyntaxNode,
17122}
17123impl SortBy {
17124    #[inline]
17125    pub fn expr(&self) -> Option<Expr> {
17126        support::child(&self.syntax)
17127    }
17128    #[inline]
17129    pub fn nulls_first(&self) -> Option<NullsFirst> {
17130        support::child(&self.syntax)
17131    }
17132    #[inline]
17133    pub fn nulls_last(&self) -> Option<NullsLast> {
17134        support::child(&self.syntax)
17135    }
17136    #[inline]
17137    pub fn sort_asc(&self) -> Option<SortAsc> {
17138        support::child(&self.syntax)
17139    }
17140    #[inline]
17141    pub fn sort_desc(&self) -> Option<SortDesc> {
17142        support::child(&self.syntax)
17143    }
17144    #[inline]
17145    pub fn sort_using(&self) -> Option<SortUsing> {
17146        support::child(&self.syntax)
17147    }
17148}
17149
17150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17151pub struct SortByList {
17152    pub(crate) syntax: SyntaxNode,
17153}
17154impl SortByList {
17155    #[inline]
17156    pub fn sort_bys(&self) -> AstChildren<SortBy> {
17157        support::children(&self.syntax)
17158    }
17159}
17160
17161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17162pub struct SortDesc {
17163    pub(crate) syntax: SyntaxNode,
17164}
17165impl SortDesc {
17166    #[inline]
17167    pub fn desc_token(&self) -> Option<SyntaxToken> {
17168        support::token(&self.syntax, SyntaxKind::DESC_KW)
17169    }
17170}
17171
17172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17173pub struct SortUsing {
17174    pub(crate) syntax: SyntaxNode,
17175}
17176impl SortUsing {
17177    #[inline]
17178    pub fn op(&self) -> Option<Op> {
17179        support::child(&self.syntax)
17180    }
17181    #[inline]
17182    pub fn using_token(&self) -> Option<SyntaxToken> {
17183        support::token(&self.syntax, SyntaxKind::USING_KW)
17184    }
17185}
17186
17187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17188pub struct SourceFile {
17189    pub(crate) syntax: SyntaxNode,
17190}
17191impl SourceFile {
17192    #[inline]
17193    pub fn stmts(&self) -> AstChildren<Stmt> {
17194        support::children(&self.syntax)
17195    }
17196}
17197
17198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17199pub struct SourceVertexTable {
17200    pub(crate) syntax: SyntaxNode,
17201}
17202impl SourceVertexTable {
17203    #[inline]
17204    pub fn column_list(&self) -> Option<ColumnList> {
17205        support::child(&self.syntax)
17206    }
17207    #[inline]
17208    pub fn name_ref(&self) -> Option<NameRef> {
17209        support::child(&self.syntax)
17210    }
17211    #[inline]
17212    pub fn references_table(&self) -> Option<ReferencesTable> {
17213        support::child(&self.syntax)
17214    }
17215    #[inline]
17216    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17217        support::token(&self.syntax, SyntaxKind::L_PAREN)
17218    }
17219    #[inline]
17220    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17221        support::token(&self.syntax, SyntaxKind::R_PAREN)
17222    }
17223    #[inline]
17224    pub fn key_token(&self) -> Option<SyntaxToken> {
17225        support::token(&self.syntax, SyntaxKind::KEY_KW)
17226    }
17227    #[inline]
17228    pub fn source_token(&self) -> Option<SyntaxToken> {
17229        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
17230    }
17231}
17232
17233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17234pub struct SplitPartition {
17235    pub(crate) syntax: SyntaxNode,
17236}
17237impl SplitPartition {
17238    #[inline]
17239    pub fn partition_list(&self) -> Option<PartitionList> {
17240        support::child(&self.syntax)
17241    }
17242    #[inline]
17243    pub fn into_token(&self) -> Option<SyntaxToken> {
17244        support::token(&self.syntax, SyntaxKind::INTO_KW)
17245    }
17246    #[inline]
17247    pub fn partition_token(&self) -> Option<SyntaxToken> {
17248        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17249    }
17250    #[inline]
17251    pub fn split_token(&self) -> Option<SyntaxToken> {
17252        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
17253    }
17254}
17255
17256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17257pub struct Storage {
17258    pub(crate) syntax: SyntaxNode,
17259}
17260impl Storage {
17261    #[inline]
17262    pub fn default_token(&self) -> Option<SyntaxToken> {
17263        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17264    }
17265    #[inline]
17266    pub fn external_token(&self) -> Option<SyntaxToken> {
17267        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
17268    }
17269    #[inline]
17270    pub fn ident_token(&self) -> Option<SyntaxToken> {
17271        support::token(&self.syntax, SyntaxKind::IDENT)
17272    }
17273    #[inline]
17274    pub fn storage_token(&self) -> Option<SyntaxToken> {
17275        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
17276    }
17277}
17278
17279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17280pub struct StrictFuncOption {
17281    pub(crate) syntax: SyntaxNode,
17282}
17283impl StrictFuncOption {
17284    #[inline]
17285    pub fn called_token(&self) -> Option<SyntaxToken> {
17286        support::token(&self.syntax, SyntaxKind::CALLED_KW)
17287    }
17288    #[inline]
17289    pub fn input_token(&self) -> Option<SyntaxToken> {
17290        support::token(&self.syntax, SyntaxKind::INPUT_KW)
17291    }
17292    #[inline]
17293    pub fn null_token(&self) -> Option<SyntaxToken> {
17294        support::token(&self.syntax, SyntaxKind::NULL_KW)
17295    }
17296    #[inline]
17297    pub fn on_token(&self) -> Option<SyntaxToken> {
17298        support::token(&self.syntax, SyntaxKind::ON_KW)
17299    }
17300    #[inline]
17301    pub fn returns_token(&self) -> Option<SyntaxToken> {
17302        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
17303    }
17304    #[inline]
17305    pub fn strict_token(&self) -> Option<SyntaxToken> {
17306        support::token(&self.syntax, SyntaxKind::STRICT_KW)
17307    }
17308}
17309
17310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17311pub struct SubstringFn {
17312    pub(crate) syntax: SyntaxNode,
17313}
17314impl SubstringFn {
17315    #[inline]
17316    pub fn expr(&self) -> Option<Expr> {
17317        support::child(&self.syntax)
17318    }
17319    #[inline]
17320    pub fn exprs(&self) -> AstChildren<Expr> {
17321        support::children(&self.syntax)
17322    }
17323    #[inline]
17324    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17325        support::token(&self.syntax, SyntaxKind::L_PAREN)
17326    }
17327    #[inline]
17328    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17329        support::token(&self.syntax, SyntaxKind::R_PAREN)
17330    }
17331    #[inline]
17332    pub fn escape_token(&self) -> Option<SyntaxToken> {
17333        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
17334    }
17335    #[inline]
17336    pub fn for_token(&self) -> Option<SyntaxToken> {
17337        support::token(&self.syntax, SyntaxKind::FOR_KW)
17338    }
17339    #[inline]
17340    pub fn from_token(&self) -> Option<SyntaxToken> {
17341        support::token(&self.syntax, SyntaxKind::FROM_KW)
17342    }
17343    #[inline]
17344    pub fn similar_token(&self) -> Option<SyntaxToken> {
17345        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
17346    }
17347    #[inline]
17348    pub fn substring_token(&self) -> Option<SyntaxToken> {
17349        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
17350    }
17351}
17352
17353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17354pub struct SupportFuncOption {
17355    pub(crate) syntax: SyntaxNode,
17356}
17357impl SupportFuncOption {
17358    #[inline]
17359    pub fn support_token(&self) -> Option<SyntaxToken> {
17360        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
17361    }
17362}
17363
17364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17365pub struct Table {
17366    pub(crate) syntax: SyntaxNode,
17367}
17368impl Table {
17369    #[inline]
17370    pub fn relation_name(&self) -> Option<RelationName> {
17371        support::child(&self.syntax)
17372    }
17373    #[inline]
17374    pub fn with_clause(&self) -> Option<WithClause> {
17375        support::child(&self.syntax)
17376    }
17377    #[inline]
17378    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17379        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17380    }
17381    #[inline]
17382    pub fn table_token(&self) -> Option<SyntaxToken> {
17383        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17384    }
17385}
17386
17387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17388pub struct TableAndColumns {
17389    pub(crate) syntax: SyntaxNode,
17390}
17391impl TableAndColumns {
17392    #[inline]
17393    pub fn column_list(&self) -> Option<ColumnList> {
17394        support::child(&self.syntax)
17395    }
17396    #[inline]
17397    pub fn relation_name(&self) -> Option<RelationName> {
17398        support::child(&self.syntax)
17399    }
17400}
17401
17402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17403pub struct TableAndColumnsList {
17404    pub(crate) syntax: SyntaxNode,
17405}
17406impl TableAndColumnsList {
17407    #[inline]
17408    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
17409        support::children(&self.syntax)
17410    }
17411}
17412
17413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17414pub struct TableArgList {
17415    pub(crate) syntax: SyntaxNode,
17416}
17417impl TableArgList {
17418    #[inline]
17419    pub fn args(&self) -> AstChildren<TableArg> {
17420        support::children(&self.syntax)
17421    }
17422    #[inline]
17423    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17424        support::token(&self.syntax, SyntaxKind::L_PAREN)
17425    }
17426    #[inline]
17427    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17428        support::token(&self.syntax, SyntaxKind::R_PAREN)
17429    }
17430}
17431
17432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17433pub struct TableList {
17434    pub(crate) syntax: SyntaxNode,
17435}
17436impl TableList {
17437    #[inline]
17438    pub fn relation_names(&self) -> AstChildren<RelationName> {
17439        support::children(&self.syntax)
17440    }
17441}
17442
17443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17444pub struct TablesampleClause {
17445    pub(crate) syntax: SyntaxNode,
17446}
17447impl TablesampleClause {
17448    #[inline]
17449    pub fn call_expr(&self) -> Option<CallExpr> {
17450        support::child(&self.syntax)
17451    }
17452    #[inline]
17453    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
17454        support::child(&self.syntax)
17455    }
17456    #[inline]
17457    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
17458        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
17459    }
17460}
17461
17462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17463pub struct Tablespace {
17464    pub(crate) syntax: SyntaxNode,
17465}
17466impl Tablespace {
17467    #[inline]
17468    pub fn name_ref(&self) -> Option<NameRef> {
17469        support::child(&self.syntax)
17470    }
17471    #[inline]
17472    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
17473        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
17474    }
17475}
17476
17477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17478pub struct Target {
17479    pub(crate) syntax: SyntaxNode,
17480}
17481impl Target {
17482    #[inline]
17483    pub fn as_name(&self) -> Option<AsName> {
17484        support::child(&self.syntax)
17485    }
17486    #[inline]
17487    pub fn expr(&self) -> Option<Expr> {
17488        support::child(&self.syntax)
17489    }
17490    #[inline]
17491    pub fn star_token(&self) -> Option<SyntaxToken> {
17492        support::token(&self.syntax, SyntaxKind::STAR)
17493    }
17494}
17495
17496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17497pub struct TargetList {
17498    pub(crate) syntax: SyntaxNode,
17499}
17500impl TargetList {
17501    #[inline]
17502    pub fn targets(&self) -> AstChildren<Target> {
17503        support::children(&self.syntax)
17504    }
17505}
17506
17507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17508pub struct Temp {
17509    pub(crate) syntax: SyntaxNode,
17510}
17511impl Temp {
17512    #[inline]
17513    pub fn global_token(&self) -> Option<SyntaxToken> {
17514        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
17515    }
17516    #[inline]
17517    pub fn local_token(&self) -> Option<SyntaxToken> {
17518        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
17519    }
17520    #[inline]
17521    pub fn temp_token(&self) -> Option<SyntaxToken> {
17522        support::token(&self.syntax, SyntaxKind::TEMP_KW)
17523    }
17524    #[inline]
17525    pub fn temporary_token(&self) -> Option<SyntaxToken> {
17526        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
17527    }
17528}
17529
17530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17531pub struct TimeType {
17532    pub(crate) syntax: SyntaxNode,
17533}
17534impl TimeType {
17535    #[inline]
17536    pub fn literal(&self) -> Option<Literal> {
17537        support::child(&self.syntax)
17538    }
17539    #[inline]
17540    pub fn timezone(&self) -> Option<Timezone> {
17541        support::child(&self.syntax)
17542    }
17543    #[inline]
17544    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17545        support::token(&self.syntax, SyntaxKind::L_PAREN)
17546    }
17547    #[inline]
17548    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17549        support::token(&self.syntax, SyntaxKind::R_PAREN)
17550    }
17551    #[inline]
17552    pub fn setof_token(&self) -> Option<SyntaxToken> {
17553        support::token(&self.syntax, SyntaxKind::SETOF_KW)
17554    }
17555    #[inline]
17556    pub fn time_token(&self) -> Option<SyntaxToken> {
17557        support::token(&self.syntax, SyntaxKind::TIME_KW)
17558    }
17559    #[inline]
17560    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
17561        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
17562    }
17563}
17564
17565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17566pub struct Timing {
17567    pub(crate) syntax: SyntaxNode,
17568}
17569impl Timing {
17570    #[inline]
17571    pub fn after_token(&self) -> Option<SyntaxToken> {
17572        support::token(&self.syntax, SyntaxKind::AFTER_KW)
17573    }
17574    #[inline]
17575    pub fn before_token(&self) -> Option<SyntaxToken> {
17576        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
17577    }
17578    #[inline]
17579    pub fn instead_token(&self) -> Option<SyntaxToken> {
17580        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
17581    }
17582    #[inline]
17583    pub fn of_token(&self) -> Option<SyntaxToken> {
17584        support::token(&self.syntax, SyntaxKind::OF_KW)
17585    }
17586}
17587
17588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17589pub struct TransactionModeList {
17590    pub(crate) syntax: SyntaxNode,
17591}
17592impl TransactionModeList {
17593    #[inline]
17594    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
17595        support::children(&self.syntax)
17596    }
17597}
17598
17599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17600pub struct TransformFromFunc {
17601    pub(crate) syntax: SyntaxNode,
17602}
17603impl TransformFromFunc {
17604    #[inline]
17605    pub fn function_sig(&self) -> Option<FunctionSig> {
17606        support::child(&self.syntax)
17607    }
17608    #[inline]
17609    pub fn from_token(&self) -> Option<SyntaxToken> {
17610        support::token(&self.syntax, SyntaxKind::FROM_KW)
17611    }
17612    #[inline]
17613    pub fn function_token(&self) -> Option<SyntaxToken> {
17614        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
17615    }
17616    #[inline]
17617    pub fn sql_token(&self) -> Option<SyntaxToken> {
17618        support::token(&self.syntax, SyntaxKind::SQL_KW)
17619    }
17620    #[inline]
17621    pub fn with_token(&self) -> Option<SyntaxToken> {
17622        support::token(&self.syntax, SyntaxKind::WITH_KW)
17623    }
17624}
17625
17626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17627pub struct TransformFuncOption {
17628    pub(crate) syntax: SyntaxNode,
17629}
17630impl TransformFuncOption {
17631    #[inline]
17632    pub fn transform_token(&self) -> Option<SyntaxToken> {
17633        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
17634    }
17635}
17636
17637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17638pub struct TransformToFunc {
17639    pub(crate) syntax: SyntaxNode,
17640}
17641impl TransformToFunc {
17642    #[inline]
17643    pub fn function_sig(&self) -> Option<FunctionSig> {
17644        support::child(&self.syntax)
17645    }
17646    #[inline]
17647    pub fn function_token(&self) -> Option<SyntaxToken> {
17648        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
17649    }
17650    #[inline]
17651    pub fn sql_token(&self) -> Option<SyntaxToken> {
17652        support::token(&self.syntax, SyntaxKind::SQL_KW)
17653    }
17654    #[inline]
17655    pub fn to_token(&self) -> Option<SyntaxToken> {
17656        support::token(&self.syntax, SyntaxKind::TO_KW)
17657    }
17658    #[inline]
17659    pub fn with_token(&self) -> Option<SyntaxToken> {
17660        support::token(&self.syntax, SyntaxKind::WITH_KW)
17661    }
17662}
17663
17664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17665pub struct TriggerEvent {
17666    pub(crate) syntax: SyntaxNode,
17667}
17668impl TriggerEvent {
17669    #[inline]
17670    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
17671        support::child(&self.syntax)
17672    }
17673    #[inline]
17674    pub fn delete_token(&self) -> Option<SyntaxToken> {
17675        support::token(&self.syntax, SyntaxKind::DELETE_KW)
17676    }
17677    #[inline]
17678    pub fn insert_token(&self) -> Option<SyntaxToken> {
17679        support::token(&self.syntax, SyntaxKind::INSERT_KW)
17680    }
17681    #[inline]
17682    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17683        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17684    }
17685}
17686
17687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17688pub struct TriggerEventList {
17689    pub(crate) syntax: SyntaxNode,
17690}
17691impl TriggerEventList {
17692    #[inline]
17693    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
17694        support::children(&self.syntax)
17695    }
17696}
17697
17698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17699pub struct TriggerEventUpdate {
17700    pub(crate) syntax: SyntaxNode,
17701}
17702impl TriggerEventUpdate {
17703    #[inline]
17704    pub fn name_refs(&self) -> AstChildren<NameRef> {
17705        support::children(&self.syntax)
17706    }
17707    #[inline]
17708    pub fn of_token(&self) -> Option<SyntaxToken> {
17709        support::token(&self.syntax, SyntaxKind::OF_KW)
17710    }
17711    #[inline]
17712    pub fn update_token(&self) -> Option<SyntaxToken> {
17713        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17714    }
17715}
17716
17717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17718pub struct TrimFn {
17719    pub(crate) syntax: SyntaxNode,
17720}
17721impl TrimFn {
17722    #[inline]
17723    pub fn expr(&self) -> Option<Expr> {
17724        support::child(&self.syntax)
17725    }
17726    #[inline]
17727    pub fn exprs(&self) -> AstChildren<Expr> {
17728        support::children(&self.syntax)
17729    }
17730    #[inline]
17731    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17732        support::token(&self.syntax, SyntaxKind::L_PAREN)
17733    }
17734    #[inline]
17735    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17736        support::token(&self.syntax, SyntaxKind::R_PAREN)
17737    }
17738    #[inline]
17739    pub fn both_token(&self) -> Option<SyntaxToken> {
17740        support::token(&self.syntax, SyntaxKind::BOTH_KW)
17741    }
17742    #[inline]
17743    pub fn from_token(&self) -> Option<SyntaxToken> {
17744        support::token(&self.syntax, SyntaxKind::FROM_KW)
17745    }
17746    #[inline]
17747    pub fn leading_token(&self) -> Option<SyntaxToken> {
17748        support::token(&self.syntax, SyntaxKind::LEADING_KW)
17749    }
17750    #[inline]
17751    pub fn trailing_token(&self) -> Option<SyntaxToken> {
17752        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
17753    }
17754    #[inline]
17755    pub fn trim_token(&self) -> Option<SyntaxToken> {
17756        support::token(&self.syntax, SyntaxKind::TRIM_KW)
17757    }
17758}
17759
17760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17761pub struct Truncate {
17762    pub(crate) syntax: SyntaxNode,
17763}
17764impl Truncate {
17765    #[inline]
17766    pub fn table_list(&self) -> Option<TableList> {
17767        support::child(&self.syntax)
17768    }
17769    #[inline]
17770    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17771        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17772    }
17773    #[inline]
17774    pub fn cascade_token(&self) -> Option<SyntaxToken> {
17775        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
17776    }
17777    #[inline]
17778    pub fn continue_token(&self) -> Option<SyntaxToken> {
17779        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
17780    }
17781    #[inline]
17782    pub fn identity_token(&self) -> Option<SyntaxToken> {
17783        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
17784    }
17785    #[inline]
17786    pub fn restart_token(&self) -> Option<SyntaxToken> {
17787        support::token(&self.syntax, SyntaxKind::RESTART_KW)
17788    }
17789    #[inline]
17790    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17791        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17792    }
17793    #[inline]
17794    pub fn table_token(&self) -> Option<SyntaxToken> {
17795        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17796    }
17797    #[inline]
17798    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17799        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17800    }
17801}
17802
17803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17804pub struct TupleExpr {
17805    pub(crate) syntax: SyntaxNode,
17806}
17807impl TupleExpr {
17808    #[inline]
17809    pub fn exprs(&self) -> AstChildren<Expr> {
17810        support::children(&self.syntax)
17811    }
17812    #[inline]
17813    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17814        support::token(&self.syntax, SyntaxKind::L_PAREN)
17815    }
17816    #[inline]
17817    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17818        support::token(&self.syntax, SyntaxKind::R_PAREN)
17819    }
17820}
17821
17822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17823pub struct UnicodeNormalForm {
17824    pub(crate) syntax: SyntaxNode,
17825}
17826impl UnicodeNormalForm {
17827    #[inline]
17828    pub fn nfc_token(&self) -> Option<SyntaxToken> {
17829        support::token(&self.syntax, SyntaxKind::NFC_KW)
17830    }
17831    #[inline]
17832    pub fn nfd_token(&self) -> Option<SyntaxToken> {
17833        support::token(&self.syntax, SyntaxKind::NFD_KW)
17834    }
17835    #[inline]
17836    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
17837        support::token(&self.syntax, SyntaxKind::NFKC_KW)
17838    }
17839    #[inline]
17840    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17841        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17842    }
17843}
17844
17845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17846pub struct UniqueConstraint {
17847    pub(crate) syntax: SyntaxNode,
17848}
17849impl UniqueConstraint {
17850    #[inline]
17851    pub fn column_list(&self) -> Option<ColumnList> {
17852        support::child(&self.syntax)
17853    }
17854    #[inline]
17855    pub fn constraint_name(&self) -> Option<ConstraintName> {
17856        support::child(&self.syntax)
17857    }
17858    #[inline]
17859    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17860        support::child(&self.syntax)
17861    }
17862    #[inline]
17863    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17864        support::child(&self.syntax)
17865    }
17866    #[inline]
17867    pub fn using_index(&self) -> Option<UsingIndex> {
17868        support::child(&self.syntax)
17869    }
17870    #[inline]
17871    pub fn unique_token(&self) -> Option<SyntaxToken> {
17872        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17873    }
17874}
17875
17876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17877pub struct Unlisten {
17878    pub(crate) syntax: SyntaxNode,
17879}
17880impl Unlisten {
17881    #[inline]
17882    pub fn name_ref(&self) -> Option<NameRef> {
17883        support::child(&self.syntax)
17884    }
17885    #[inline]
17886    pub fn star_token(&self) -> Option<SyntaxToken> {
17887        support::token(&self.syntax, SyntaxKind::STAR)
17888    }
17889    #[inline]
17890    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17891        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17892    }
17893    #[inline]
17894    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17895        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17896    }
17897}
17898
17899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17900pub struct Unlogged {
17901    pub(crate) syntax: SyntaxNode,
17902}
17903impl Unlogged {
17904    #[inline]
17905    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17906        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17907    }
17908}
17909
17910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17911pub struct Update {
17912    pub(crate) syntax: SyntaxNode,
17913}
17914impl Update {
17915    #[inline]
17916    pub fn alias(&self) -> Option<Alias> {
17917        support::child(&self.syntax)
17918    }
17919    #[inline]
17920    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
17921        support::child(&self.syntax)
17922    }
17923    #[inline]
17924    pub fn from_clause(&self) -> Option<FromClause> {
17925        support::child(&self.syntax)
17926    }
17927    #[inline]
17928    pub fn relation_name(&self) -> Option<RelationName> {
17929        support::child(&self.syntax)
17930    }
17931    #[inline]
17932    pub fn returning_clause(&self) -> Option<ReturningClause> {
17933        support::child(&self.syntax)
17934    }
17935    #[inline]
17936    pub fn set_clause(&self) -> Option<SetClause> {
17937        support::child(&self.syntax)
17938    }
17939    #[inline]
17940    pub fn where_clause(&self) -> Option<WhereClause> {
17941        support::child(&self.syntax)
17942    }
17943    #[inline]
17944    pub fn with_clause(&self) -> Option<WithClause> {
17945        support::child(&self.syntax)
17946    }
17947    #[inline]
17948    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17949        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17950    }
17951    #[inline]
17952    pub fn update_token(&self) -> Option<SyntaxToken> {
17953        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17954    }
17955}
17956
17957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17958pub struct UsingClause {
17959    pub(crate) syntax: SyntaxNode,
17960}
17961impl UsingClause {
17962    #[inline]
17963    pub fn from_items(&self) -> AstChildren<FromItem> {
17964        support::children(&self.syntax)
17965    }
17966    #[inline]
17967    pub fn using_token(&self) -> Option<SyntaxToken> {
17968        support::token(&self.syntax, SyntaxKind::USING_KW)
17969    }
17970}
17971
17972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17973pub struct UsingExprClause {
17974    pub(crate) syntax: SyntaxNode,
17975}
17976impl UsingExprClause {
17977    #[inline]
17978    pub fn expr(&self) -> Option<Expr> {
17979        support::child(&self.syntax)
17980    }
17981    #[inline]
17982    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17983        support::token(&self.syntax, SyntaxKind::L_PAREN)
17984    }
17985    #[inline]
17986    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17987        support::token(&self.syntax, SyntaxKind::R_PAREN)
17988    }
17989    #[inline]
17990    pub fn using_token(&self) -> Option<SyntaxToken> {
17991        support::token(&self.syntax, SyntaxKind::USING_KW)
17992    }
17993}
17994
17995#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17996pub struct UsingIndex {
17997    pub(crate) syntax: SyntaxNode,
17998}
17999impl UsingIndex {
18000    #[inline]
18001    pub fn name_ref(&self) -> Option<NameRef> {
18002        support::child(&self.syntax)
18003    }
18004    #[inline]
18005    pub fn index_token(&self) -> Option<SyntaxToken> {
18006        support::token(&self.syntax, SyntaxKind::INDEX_KW)
18007    }
18008    #[inline]
18009    pub fn using_token(&self) -> Option<SyntaxToken> {
18010        support::token(&self.syntax, SyntaxKind::USING_KW)
18011    }
18012}
18013
18014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18015pub struct UsingMethod {
18016    pub(crate) syntax: SyntaxNode,
18017}
18018impl UsingMethod {
18019    #[inline]
18020    pub fn name_ref(&self) -> Option<NameRef> {
18021        support::child(&self.syntax)
18022    }
18023    #[inline]
18024    pub fn using_token(&self) -> Option<SyntaxToken> {
18025        support::token(&self.syntax, SyntaxKind::USING_KW)
18026    }
18027}
18028
18029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18030pub struct UsingOnClause {
18031    pub(crate) syntax: SyntaxNode,
18032}
18033impl UsingOnClause {
18034    #[inline]
18035    pub fn from_item(&self) -> Option<FromItem> {
18036        support::child(&self.syntax)
18037    }
18038    #[inline]
18039    pub fn on_clause(&self) -> Option<OnClause> {
18040        support::child(&self.syntax)
18041    }
18042    #[inline]
18043    pub fn using_token(&self) -> Option<SyntaxToken> {
18044        support::token(&self.syntax, SyntaxKind::USING_KW)
18045    }
18046}
18047
18048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18049pub struct Vacuum {
18050    pub(crate) syntax: SyntaxNode,
18051}
18052impl Vacuum {
18053    #[inline]
18054    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
18055        support::child(&self.syntax)
18056    }
18057    #[inline]
18058    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
18059        support::child(&self.syntax)
18060    }
18061    #[inline]
18062    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18063        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18064    }
18065    #[inline]
18066    pub fn analyse_token(&self) -> Option<SyntaxToken> {
18067        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
18068    }
18069    #[inline]
18070    pub fn analyze_token(&self) -> Option<SyntaxToken> {
18071        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
18072    }
18073    #[inline]
18074    pub fn freeze_token(&self) -> Option<SyntaxToken> {
18075        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
18076    }
18077    #[inline]
18078    pub fn full_token(&self) -> Option<SyntaxToken> {
18079        support::token(&self.syntax, SyntaxKind::FULL_KW)
18080    }
18081    #[inline]
18082    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
18083        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
18084    }
18085    #[inline]
18086    pub fn verbose_token(&self) -> Option<SyntaxToken> {
18087        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
18088    }
18089}
18090
18091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18092pub struct VacuumOption {
18093    pub(crate) syntax: SyntaxNode,
18094}
18095impl VacuumOption {
18096    #[inline]
18097    pub fn literal(&self) -> Option<Literal> {
18098        support::child(&self.syntax)
18099    }
18100}
18101
18102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18103pub struct VacuumOptionList {
18104    pub(crate) syntax: SyntaxNode,
18105}
18106impl VacuumOptionList {
18107    #[inline]
18108    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
18109        support::children(&self.syntax)
18110    }
18111    #[inline]
18112    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18113        support::token(&self.syntax, SyntaxKind::L_PAREN)
18114    }
18115    #[inline]
18116    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18117        support::token(&self.syntax, SyntaxKind::R_PAREN)
18118    }
18119}
18120
18121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18122pub struct ValidateConstraint {
18123    pub(crate) syntax: SyntaxNode,
18124}
18125impl ValidateConstraint {
18126    #[inline]
18127    pub fn name_ref(&self) -> Option<NameRef> {
18128        support::child(&self.syntax)
18129    }
18130    #[inline]
18131    pub fn constraint_token(&self) -> Option<SyntaxToken> {
18132        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
18133    }
18134    #[inline]
18135    pub fn validate_token(&self) -> Option<SyntaxToken> {
18136        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
18137    }
18138}
18139
18140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18141pub struct Values {
18142    pub(crate) syntax: SyntaxNode,
18143}
18144impl Values {
18145    #[inline]
18146    pub fn row_list(&self) -> Option<RowList> {
18147        support::child(&self.syntax)
18148    }
18149    #[inline]
18150    pub fn with_clause(&self) -> Option<WithClause> {
18151        support::child(&self.syntax)
18152    }
18153    #[inline]
18154    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18155        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18156    }
18157    #[inline]
18158    pub fn values_token(&self) -> Option<SyntaxToken> {
18159        support::token(&self.syntax, SyntaxKind::VALUES_KW)
18160    }
18161}
18162
18163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18164pub struct Variant {
18165    pub(crate) syntax: SyntaxNode,
18166}
18167impl Variant {
18168    #[inline]
18169    pub fn literal(&self) -> Option<Literal> {
18170        support::child(&self.syntax)
18171    }
18172}
18173
18174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18175pub struct VariantList {
18176    pub(crate) syntax: SyntaxNode,
18177}
18178impl VariantList {
18179    #[inline]
18180    pub fn variants(&self) -> AstChildren<Variant> {
18181        support::children(&self.syntax)
18182    }
18183    #[inline]
18184    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18185        support::token(&self.syntax, SyntaxKind::L_PAREN)
18186    }
18187    #[inline]
18188    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18189        support::token(&self.syntax, SyntaxKind::R_PAREN)
18190    }
18191}
18192
18193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18194pub struct VertexPattern {
18195    pub(crate) syntax: SyntaxNode,
18196}
18197impl VertexPattern {
18198    #[inline]
18199    pub fn is_label(&self) -> Option<IsLabel> {
18200        support::child(&self.syntax)
18201    }
18202    #[inline]
18203    pub fn name(&self) -> Option<Name> {
18204        support::child(&self.syntax)
18205    }
18206    #[inline]
18207    pub fn where_clause(&self) -> Option<WhereClause> {
18208        support::child(&self.syntax)
18209    }
18210    #[inline]
18211    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18212        support::token(&self.syntax, SyntaxKind::L_PAREN)
18213    }
18214    #[inline]
18215    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18216        support::token(&self.syntax, SyntaxKind::R_PAREN)
18217    }
18218}
18219
18220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18221pub struct VertexTableDef {
18222    pub(crate) syntax: SyntaxNode,
18223}
18224impl VertexTableDef {
18225    #[inline]
18226    pub fn column_list(&self) -> Option<ColumnList> {
18227        support::child(&self.syntax)
18228    }
18229    #[inline]
18230    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
18231        support::child(&self.syntax)
18232    }
18233    #[inline]
18234    pub fn name(&self) -> Option<Name> {
18235        support::child(&self.syntax)
18236    }
18237    #[inline]
18238    pub fn path(&self) -> Option<Path> {
18239        support::child(&self.syntax)
18240    }
18241    #[inline]
18242    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18243        support::token(&self.syntax, SyntaxKind::L_PAREN)
18244    }
18245    #[inline]
18246    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18247        support::token(&self.syntax, SyntaxKind::R_PAREN)
18248    }
18249    #[inline]
18250    pub fn as_token(&self) -> Option<SyntaxToken> {
18251        support::token(&self.syntax, SyntaxKind::AS_KW)
18252    }
18253    #[inline]
18254    pub fn key_token(&self) -> Option<SyntaxToken> {
18255        support::token(&self.syntax, SyntaxKind::KEY_KW)
18256    }
18257}
18258
18259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18260pub struct VertexTables {
18261    pub(crate) syntax: SyntaxNode,
18262}
18263impl VertexTables {
18264    #[inline]
18265    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
18266        support::children(&self.syntax)
18267    }
18268    #[inline]
18269    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18270        support::token(&self.syntax, SyntaxKind::L_PAREN)
18271    }
18272    #[inline]
18273    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18274        support::token(&self.syntax, SyntaxKind::R_PAREN)
18275    }
18276    #[inline]
18277    pub fn node_token(&self) -> Option<SyntaxToken> {
18278        support::token(&self.syntax, SyntaxKind::NODE_KW)
18279    }
18280    #[inline]
18281    pub fn tables_token(&self) -> Option<SyntaxToken> {
18282        support::token(&self.syntax, SyntaxKind::TABLES_KW)
18283    }
18284    #[inline]
18285    pub fn vertex_token(&self) -> Option<SyntaxToken> {
18286        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
18287    }
18288}
18289
18290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18291pub struct VolatilityFuncOption {
18292    pub(crate) syntax: SyntaxNode,
18293}
18294impl VolatilityFuncOption {
18295    #[inline]
18296    pub fn immutable_token(&self) -> Option<SyntaxToken> {
18297        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
18298    }
18299    #[inline]
18300    pub fn stable_token(&self) -> Option<SyntaxToken> {
18301        support::token(&self.syntax, SyntaxKind::STABLE_KW)
18302    }
18303    #[inline]
18304    pub fn volatile_token(&self) -> Option<SyntaxToken> {
18305        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
18306    }
18307}
18308
18309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18310pub struct WhenClause {
18311    pub(crate) syntax: SyntaxNode,
18312}
18313impl WhenClause {
18314    #[inline]
18315    pub fn then_token(&self) -> Option<SyntaxToken> {
18316        support::token(&self.syntax, SyntaxKind::THEN_KW)
18317    }
18318    #[inline]
18319    pub fn when_token(&self) -> Option<SyntaxToken> {
18320        support::token(&self.syntax, SyntaxKind::WHEN_KW)
18321    }
18322}
18323
18324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18325pub struct WhenClauseList {
18326    pub(crate) syntax: SyntaxNode,
18327}
18328impl WhenClauseList {
18329    #[inline]
18330    pub fn when_clause(&self) -> Option<WhenClause> {
18331        support::child(&self.syntax)
18332    }
18333    #[inline]
18334    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
18335        support::children(&self.syntax)
18336    }
18337}
18338
18339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18340pub struct WhenCondition {
18341    pub(crate) syntax: SyntaxNode,
18342}
18343impl WhenCondition {
18344    #[inline]
18345    pub fn expr(&self) -> Option<Expr> {
18346        support::child(&self.syntax)
18347    }
18348    #[inline]
18349    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18350        support::token(&self.syntax, SyntaxKind::L_PAREN)
18351    }
18352    #[inline]
18353    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18354        support::token(&self.syntax, SyntaxKind::R_PAREN)
18355    }
18356    #[inline]
18357    pub fn when_token(&self) -> Option<SyntaxToken> {
18358        support::token(&self.syntax, SyntaxKind::WHEN_KW)
18359    }
18360}
18361
18362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18363pub struct WhereClause {
18364    pub(crate) syntax: SyntaxNode,
18365}
18366impl WhereClause {
18367    #[inline]
18368    pub fn expr(&self) -> Option<Expr> {
18369        support::child(&self.syntax)
18370    }
18371    #[inline]
18372    pub fn where_token(&self) -> Option<SyntaxToken> {
18373        support::token(&self.syntax, SyntaxKind::WHERE_KW)
18374    }
18375}
18376
18377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18378pub struct WhereConditionClause {
18379    pub(crate) syntax: SyntaxNode,
18380}
18381impl WhereConditionClause {
18382    #[inline]
18383    pub fn expr(&self) -> Option<Expr> {
18384        support::child(&self.syntax)
18385    }
18386    #[inline]
18387    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18388        support::token(&self.syntax, SyntaxKind::L_PAREN)
18389    }
18390    #[inline]
18391    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18392        support::token(&self.syntax, SyntaxKind::R_PAREN)
18393    }
18394    #[inline]
18395    pub fn where_token(&self) -> Option<SyntaxToken> {
18396        support::token(&self.syntax, SyntaxKind::WHERE_KW)
18397    }
18398}
18399
18400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18401pub struct WhereCurrentOf {
18402    pub(crate) syntax: SyntaxNode,
18403}
18404impl WhereCurrentOf {
18405    #[inline]
18406    pub fn name_ref(&self) -> Option<NameRef> {
18407        support::child(&self.syntax)
18408    }
18409    #[inline]
18410    pub fn current_token(&self) -> Option<SyntaxToken> {
18411        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
18412    }
18413    #[inline]
18414    pub fn of_token(&self) -> Option<SyntaxToken> {
18415        support::token(&self.syntax, SyntaxKind::OF_KW)
18416    }
18417    #[inline]
18418    pub fn where_token(&self) -> Option<SyntaxToken> {
18419        support::token(&self.syntax, SyntaxKind::WHERE_KW)
18420    }
18421}
18422
18423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18424pub struct WindowClause {
18425    pub(crate) syntax: SyntaxNode,
18426}
18427impl WindowClause {
18428    #[inline]
18429    pub fn window_defs(&self) -> AstChildren<WindowDef> {
18430        support::children(&self.syntax)
18431    }
18432    #[inline]
18433    pub fn window_token(&self) -> Option<SyntaxToken> {
18434        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
18435    }
18436}
18437
18438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18439pub struct WindowDef {
18440    pub(crate) syntax: SyntaxNode,
18441}
18442impl WindowDef {
18443    #[inline]
18444    pub fn name(&self) -> Option<Name> {
18445        support::child(&self.syntax)
18446    }
18447    #[inline]
18448    pub fn window_spec(&self) -> Option<WindowSpec> {
18449        support::child(&self.syntax)
18450    }
18451    #[inline]
18452    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18453        support::token(&self.syntax, SyntaxKind::L_PAREN)
18454    }
18455    #[inline]
18456    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18457        support::token(&self.syntax, SyntaxKind::R_PAREN)
18458    }
18459    #[inline]
18460    pub fn as_token(&self) -> Option<SyntaxToken> {
18461        support::token(&self.syntax, SyntaxKind::AS_KW)
18462    }
18463}
18464
18465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18466pub struct WindowFuncOption {
18467    pub(crate) syntax: SyntaxNode,
18468}
18469impl WindowFuncOption {
18470    #[inline]
18471    pub fn window_token(&self) -> Option<SyntaxToken> {
18472        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
18473    }
18474}
18475
18476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18477pub struct WindowSpec {
18478    pub(crate) syntax: SyntaxNode,
18479}
18480impl WindowSpec {
18481    #[inline]
18482    pub fn exprs(&self) -> AstChildren<Expr> {
18483        support::children(&self.syntax)
18484    }
18485    #[inline]
18486    pub fn frame_clause(&self) -> Option<FrameClause> {
18487        support::child(&self.syntax)
18488    }
18489    #[inline]
18490    pub fn order_by_clause(&self) -> Option<OrderByClause> {
18491        support::child(&self.syntax)
18492    }
18493    #[inline]
18494    pub fn by_token(&self) -> Option<SyntaxToken> {
18495        support::token(&self.syntax, SyntaxKind::BY_KW)
18496    }
18497    #[inline]
18498    pub fn ident_token(&self) -> Option<SyntaxToken> {
18499        support::token(&self.syntax, SyntaxKind::IDENT)
18500    }
18501    #[inline]
18502    pub fn partition_token(&self) -> Option<SyntaxToken> {
18503        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
18504    }
18505}
18506
18507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18508pub struct WithCheckExprClause {
18509    pub(crate) syntax: SyntaxNode,
18510}
18511impl WithCheckExprClause {
18512    #[inline]
18513    pub fn expr(&self) -> Option<Expr> {
18514        support::child(&self.syntax)
18515    }
18516    #[inline]
18517    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18518        support::token(&self.syntax, SyntaxKind::L_PAREN)
18519    }
18520    #[inline]
18521    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18522        support::token(&self.syntax, SyntaxKind::R_PAREN)
18523    }
18524    #[inline]
18525    pub fn check_token(&self) -> Option<SyntaxToken> {
18526        support::token(&self.syntax, SyntaxKind::CHECK_KW)
18527    }
18528    #[inline]
18529    pub fn with_token(&self) -> Option<SyntaxToken> {
18530        support::token(&self.syntax, SyntaxKind::WITH_KW)
18531    }
18532}
18533
18534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18535pub struct WithClause {
18536    pub(crate) syntax: SyntaxNode,
18537}
18538impl WithClause {
18539    #[inline]
18540    pub fn with_tables(&self) -> AstChildren<WithTable> {
18541        support::children(&self.syntax)
18542    }
18543    #[inline]
18544    pub fn recursive_token(&self) -> Option<SyntaxToken> {
18545        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
18546    }
18547    #[inline]
18548    pub fn with_token(&self) -> Option<SyntaxToken> {
18549        support::token(&self.syntax, SyntaxKind::WITH_KW)
18550    }
18551}
18552
18553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18554pub struct WithData {
18555    pub(crate) syntax: SyntaxNode,
18556}
18557impl WithData {
18558    #[inline]
18559    pub fn data_token(&self) -> Option<SyntaxToken> {
18560        support::token(&self.syntax, SyntaxKind::DATA_KW)
18561    }
18562    #[inline]
18563    pub fn with_token(&self) -> Option<SyntaxToken> {
18564        support::token(&self.syntax, SyntaxKind::WITH_KW)
18565    }
18566}
18567
18568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18569pub struct WithNoData {
18570    pub(crate) syntax: SyntaxNode,
18571}
18572impl WithNoData {
18573    #[inline]
18574    pub fn data_token(&self) -> Option<SyntaxToken> {
18575        support::token(&self.syntax, SyntaxKind::DATA_KW)
18576    }
18577    #[inline]
18578    pub fn no_token(&self) -> Option<SyntaxToken> {
18579        support::token(&self.syntax, SyntaxKind::NO_KW)
18580    }
18581    #[inline]
18582    pub fn with_token(&self) -> Option<SyntaxToken> {
18583        support::token(&self.syntax, SyntaxKind::WITH_KW)
18584    }
18585}
18586
18587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18588pub struct WithOptions {
18589    pub(crate) syntax: SyntaxNode,
18590}
18591impl WithOptions {
18592    #[inline]
18593    pub fn options_token(&self) -> Option<SyntaxToken> {
18594        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
18595    }
18596    #[inline]
18597    pub fn with_token(&self) -> Option<SyntaxToken> {
18598        support::token(&self.syntax, SyntaxKind::WITH_KW)
18599    }
18600}
18601
18602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18603pub struct WithParams {
18604    pub(crate) syntax: SyntaxNode,
18605}
18606impl WithParams {
18607    #[inline]
18608    pub fn attribute_list(&self) -> Option<AttributeList> {
18609        support::child(&self.syntax)
18610    }
18611    #[inline]
18612    pub fn with_token(&self) -> Option<SyntaxToken> {
18613        support::token(&self.syntax, SyntaxKind::WITH_KW)
18614    }
18615}
18616
18617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18618pub struct WithTable {
18619    pub(crate) syntax: SyntaxNode,
18620}
18621impl WithTable {
18622    #[inline]
18623    pub fn column_list(&self) -> Option<ColumnList> {
18624        support::child(&self.syntax)
18625    }
18626    #[inline]
18627    pub fn materialized(&self) -> Option<Materialized> {
18628        support::child(&self.syntax)
18629    }
18630    #[inline]
18631    pub fn name(&self) -> Option<Name> {
18632        support::child(&self.syntax)
18633    }
18634    #[inline]
18635    pub fn not_materialized(&self) -> Option<NotMaterialized> {
18636        support::child(&self.syntax)
18637    }
18638    #[inline]
18639    pub fn query(&self) -> Option<WithQuery> {
18640        support::child(&self.syntax)
18641    }
18642    #[inline]
18643    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18644        support::token(&self.syntax, SyntaxKind::L_PAREN)
18645    }
18646    #[inline]
18647    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18648        support::token(&self.syntax, SyntaxKind::R_PAREN)
18649    }
18650    #[inline]
18651    pub fn as_token(&self) -> Option<SyntaxToken> {
18652        support::token(&self.syntax, SyntaxKind::AS_KW)
18653    }
18654}
18655
18656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18657pub struct WithTimezone {
18658    pub(crate) syntax: SyntaxNode,
18659}
18660impl WithTimezone {
18661    #[inline]
18662    pub fn time_token(&self) -> Option<SyntaxToken> {
18663        support::token(&self.syntax, SyntaxKind::TIME_KW)
18664    }
18665    #[inline]
18666    pub fn with_token(&self) -> Option<SyntaxToken> {
18667        support::token(&self.syntax, SyntaxKind::WITH_KW)
18668    }
18669    #[inline]
18670    pub fn zone_token(&self) -> Option<SyntaxToken> {
18671        support::token(&self.syntax, SyntaxKind::ZONE_KW)
18672    }
18673}
18674
18675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18676pub struct WithinClause {
18677    pub(crate) syntax: SyntaxNode,
18678}
18679impl WithinClause {
18680    #[inline]
18681    pub fn order_by_clause(&self) -> Option<OrderByClause> {
18682        support::child(&self.syntax)
18683    }
18684    #[inline]
18685    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18686        support::token(&self.syntax, SyntaxKind::L_PAREN)
18687    }
18688    #[inline]
18689    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18690        support::token(&self.syntax, SyntaxKind::R_PAREN)
18691    }
18692    #[inline]
18693    pub fn group_token(&self) -> Option<SyntaxToken> {
18694        support::token(&self.syntax, SyntaxKind::GROUP_KW)
18695    }
18696    #[inline]
18697    pub fn within_token(&self) -> Option<SyntaxToken> {
18698        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
18699    }
18700}
18701
18702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18703pub struct WithoutOids {
18704    pub(crate) syntax: SyntaxNode,
18705}
18706impl WithoutOids {
18707    #[inline]
18708    pub fn oids_token(&self) -> Option<SyntaxToken> {
18709        support::token(&self.syntax, SyntaxKind::OIDS_KW)
18710    }
18711    #[inline]
18712    pub fn without_token(&self) -> Option<SyntaxToken> {
18713        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
18714    }
18715}
18716
18717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18718pub struct WithoutTimezone {
18719    pub(crate) syntax: SyntaxNode,
18720}
18721impl WithoutTimezone {
18722    #[inline]
18723    pub fn time_token(&self) -> Option<SyntaxToken> {
18724        support::token(&self.syntax, SyntaxKind::TIME_KW)
18725    }
18726    #[inline]
18727    pub fn without_token(&self) -> Option<SyntaxToken> {
18728        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
18729    }
18730    #[inline]
18731    pub fn zone_token(&self) -> Option<SyntaxToken> {
18732        support::token(&self.syntax, SyntaxKind::ZONE_KW)
18733    }
18734}
18735
18736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18737pub struct XmlColumnOption {
18738    pub(crate) syntax: SyntaxNode,
18739}
18740impl XmlColumnOption {
18741    #[inline]
18742    pub fn expr(&self) -> Option<Expr> {
18743        support::child(&self.syntax)
18744    }
18745    #[inline]
18746    pub fn default_token(&self) -> Option<SyntaxToken> {
18747        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18748    }
18749    #[inline]
18750    pub fn ident_token(&self) -> Option<SyntaxToken> {
18751        support::token(&self.syntax, SyntaxKind::IDENT)
18752    }
18753    #[inline]
18754    pub fn not_token(&self) -> Option<SyntaxToken> {
18755        support::token(&self.syntax, SyntaxKind::NOT_KW)
18756    }
18757    #[inline]
18758    pub fn null_token(&self) -> Option<SyntaxToken> {
18759        support::token(&self.syntax, SyntaxKind::NULL_KW)
18760    }
18761    #[inline]
18762    pub fn path_token(&self) -> Option<SyntaxToken> {
18763        support::token(&self.syntax, SyntaxKind::PATH_KW)
18764    }
18765}
18766
18767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18768pub struct XmlColumnOptionList {
18769    pub(crate) syntax: SyntaxNode,
18770}
18771impl XmlColumnOptionList {
18772    #[inline]
18773    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
18774        support::child(&self.syntax)
18775    }
18776    #[inline]
18777    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
18778        support::children(&self.syntax)
18779    }
18780}
18781
18782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18783pub struct XmlElementFn {
18784    pub(crate) syntax: SyntaxNode,
18785}
18786impl XmlElementFn {
18787    #[inline]
18788    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18789        support::child(&self.syntax)
18790    }
18791    #[inline]
18792    pub fn exprs(&self) -> AstChildren<Expr> {
18793        support::children(&self.syntax)
18794    }
18795    #[inline]
18796    pub fn name(&self) -> Option<Name> {
18797        support::child(&self.syntax)
18798    }
18799    #[inline]
18800    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18801        support::token(&self.syntax, SyntaxKind::L_PAREN)
18802    }
18803    #[inline]
18804    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18805        support::token(&self.syntax, SyntaxKind::R_PAREN)
18806    }
18807    #[inline]
18808    pub fn comma_token(&self) -> Option<SyntaxToken> {
18809        support::token(&self.syntax, SyntaxKind::COMMA)
18810    }
18811    #[inline]
18812    pub fn name_token(&self) -> Option<SyntaxToken> {
18813        support::token(&self.syntax, SyntaxKind::NAME_KW)
18814    }
18815    #[inline]
18816    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
18817        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
18818    }
18819    #[inline]
18820    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
18821        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
18822    }
18823}
18824
18825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18826pub struct XmlExistsFn {
18827    pub(crate) syntax: SyntaxNode,
18828}
18829impl XmlExistsFn {
18830    #[inline]
18831    pub fn expr(&self) -> Option<Expr> {
18832        support::child(&self.syntax)
18833    }
18834    #[inline]
18835    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18836        support::child(&self.syntax)
18837    }
18838    #[inline]
18839    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18840        support::token(&self.syntax, SyntaxKind::L_PAREN)
18841    }
18842    #[inline]
18843    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18844        support::token(&self.syntax, SyntaxKind::R_PAREN)
18845    }
18846    #[inline]
18847    pub fn passing_token(&self) -> Option<SyntaxToken> {
18848        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18849    }
18850    #[inline]
18851    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
18852        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
18853    }
18854}
18855
18856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18857pub struct XmlForestFn {
18858    pub(crate) syntax: SyntaxNode,
18859}
18860impl XmlForestFn {
18861    #[inline]
18862    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18863        support::child(&self.syntax)
18864    }
18865    #[inline]
18866    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18867        support::token(&self.syntax, SyntaxKind::L_PAREN)
18868    }
18869    #[inline]
18870    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18871        support::token(&self.syntax, SyntaxKind::R_PAREN)
18872    }
18873    #[inline]
18874    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18875        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18876    }
18877}
18878
18879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18880pub struct XmlNamespace {
18881    pub(crate) syntax: SyntaxNode,
18882}
18883impl XmlNamespace {
18884    #[inline]
18885    pub fn expr(&self) -> Option<Expr> {
18886        support::child(&self.syntax)
18887    }
18888    #[inline]
18889    pub fn name(&self) -> Option<Name> {
18890        support::child(&self.syntax)
18891    }
18892    #[inline]
18893    pub fn as_token(&self) -> Option<SyntaxToken> {
18894        support::token(&self.syntax, SyntaxKind::AS_KW)
18895    }
18896    #[inline]
18897    pub fn default_token(&self) -> Option<SyntaxToken> {
18898        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18899    }
18900}
18901
18902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18903pub struct XmlNamespaceList {
18904    pub(crate) syntax: SyntaxNode,
18905}
18906impl XmlNamespaceList {
18907    #[inline]
18908    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18909        support::children(&self.syntax)
18910    }
18911    #[inline]
18912    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18913        support::token(&self.syntax, SyntaxKind::L_PAREN)
18914    }
18915    #[inline]
18916    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18917        support::token(&self.syntax, SyntaxKind::R_PAREN)
18918    }
18919}
18920
18921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18922pub struct XmlParseFn {
18923    pub(crate) syntax: SyntaxNode,
18924}
18925impl XmlParseFn {
18926    #[inline]
18927    pub fn expr(&self) -> Option<Expr> {
18928        support::child(&self.syntax)
18929    }
18930    #[inline]
18931    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18932        support::token(&self.syntax, SyntaxKind::L_PAREN)
18933    }
18934    #[inline]
18935    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18936        support::token(&self.syntax, SyntaxKind::R_PAREN)
18937    }
18938    #[inline]
18939    pub fn content_token(&self) -> Option<SyntaxToken> {
18940        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18941    }
18942    #[inline]
18943    pub fn document_token(&self) -> Option<SyntaxToken> {
18944        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18945    }
18946    #[inline]
18947    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18948        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18949    }
18950    #[inline]
18951    pub fn strip_token(&self) -> Option<SyntaxToken> {
18952        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18953    }
18954    #[inline]
18955    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18956        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18957    }
18958    #[inline]
18959    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18960        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18961    }
18962}
18963
18964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18965pub struct XmlPassingMech {
18966    pub(crate) syntax: SyntaxNode,
18967}
18968impl XmlPassingMech {
18969    #[inline]
18970    pub fn by_token(&self) -> Option<SyntaxToken> {
18971        support::token(&self.syntax, SyntaxKind::BY_KW)
18972    }
18973    #[inline]
18974    pub fn ref_token(&self) -> Option<SyntaxToken> {
18975        support::token(&self.syntax, SyntaxKind::REF_KW)
18976    }
18977    #[inline]
18978    pub fn value_token(&self) -> Option<SyntaxToken> {
18979        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18980    }
18981}
18982
18983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18984pub struct XmlPiFn {
18985    pub(crate) syntax: SyntaxNode,
18986}
18987impl XmlPiFn {
18988    #[inline]
18989    pub fn expr(&self) -> Option<Expr> {
18990        support::child(&self.syntax)
18991    }
18992    #[inline]
18993    pub fn name(&self) -> Option<Name> {
18994        support::child(&self.syntax)
18995    }
18996    #[inline]
18997    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18998        support::token(&self.syntax, SyntaxKind::L_PAREN)
18999    }
19000    #[inline]
19001    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19002        support::token(&self.syntax, SyntaxKind::R_PAREN)
19003    }
19004    #[inline]
19005    pub fn comma_token(&self) -> Option<SyntaxToken> {
19006        support::token(&self.syntax, SyntaxKind::COMMA)
19007    }
19008    #[inline]
19009    pub fn name_token(&self) -> Option<SyntaxToken> {
19010        support::token(&self.syntax, SyntaxKind::NAME_KW)
19011    }
19012    #[inline]
19013    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
19014        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
19015    }
19016}
19017
19018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19019pub struct XmlRootFn {
19020    pub(crate) syntax: SyntaxNode,
19021}
19022impl XmlRootFn {
19023    #[inline]
19024    pub fn expr(&self) -> Option<Expr> {
19025        support::child(&self.syntax)
19026    }
19027    #[inline]
19028    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19029        support::token(&self.syntax, SyntaxKind::L_PAREN)
19030    }
19031    #[inline]
19032    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19033        support::token(&self.syntax, SyntaxKind::R_PAREN)
19034    }
19035    #[inline]
19036    pub fn comma_token(&self) -> Option<SyntaxToken> {
19037        support::token(&self.syntax, SyntaxKind::COMMA)
19038    }
19039    #[inline]
19040    pub fn no_token(&self) -> Option<SyntaxToken> {
19041        support::token(&self.syntax, SyntaxKind::NO_KW)
19042    }
19043    #[inline]
19044    pub fn standalone_token(&self) -> Option<SyntaxToken> {
19045        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
19046    }
19047    #[inline]
19048    pub fn value_token(&self) -> Option<SyntaxToken> {
19049        support::token(&self.syntax, SyntaxKind::VALUE_KW)
19050    }
19051    #[inline]
19052    pub fn version_token(&self) -> Option<SyntaxToken> {
19053        support::token(&self.syntax, SyntaxKind::VERSION_KW)
19054    }
19055    #[inline]
19056    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
19057        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
19058    }
19059    #[inline]
19060    pub fn yes_token(&self) -> Option<SyntaxToken> {
19061        support::token(&self.syntax, SyntaxKind::YES_KW)
19062    }
19063}
19064
19065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19066pub struct XmlRowPassingClause {
19067    pub(crate) syntax: SyntaxNode,
19068}
19069impl XmlRowPassingClause {
19070    #[inline]
19071    pub fn expr(&self) -> Option<Expr> {
19072        support::child(&self.syntax)
19073    }
19074    #[inline]
19075    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
19076        support::child(&self.syntax)
19077    }
19078    #[inline]
19079    pub fn passing_token(&self) -> Option<SyntaxToken> {
19080        support::token(&self.syntax, SyntaxKind::PASSING_KW)
19081    }
19082}
19083
19084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19085pub struct XmlSerializeFn {
19086    pub(crate) syntax: SyntaxNode,
19087}
19088impl XmlSerializeFn {
19089    #[inline]
19090    pub fn expr(&self) -> Option<Expr> {
19091        support::child(&self.syntax)
19092    }
19093    #[inline]
19094    pub fn ty(&self) -> Option<Type> {
19095        support::child(&self.syntax)
19096    }
19097    #[inline]
19098    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19099        support::token(&self.syntax, SyntaxKind::L_PAREN)
19100    }
19101    #[inline]
19102    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19103        support::token(&self.syntax, SyntaxKind::R_PAREN)
19104    }
19105    #[inline]
19106    pub fn as_token(&self) -> Option<SyntaxToken> {
19107        support::token(&self.syntax, SyntaxKind::AS_KW)
19108    }
19109    #[inline]
19110    pub fn content_token(&self) -> Option<SyntaxToken> {
19111        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
19112    }
19113    #[inline]
19114    pub fn document_token(&self) -> Option<SyntaxToken> {
19115        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
19116    }
19117    #[inline]
19118    pub fn indent_token(&self) -> Option<SyntaxToken> {
19119        support::token(&self.syntax, SyntaxKind::INDENT_KW)
19120    }
19121    #[inline]
19122    pub fn no_token(&self) -> Option<SyntaxToken> {
19123        support::token(&self.syntax, SyntaxKind::NO_KW)
19124    }
19125    #[inline]
19126    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
19127        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
19128    }
19129}
19130
19131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19132pub struct XmlTable {
19133    pub(crate) syntax: SyntaxNode,
19134}
19135impl XmlTable {
19136    #[inline]
19137    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
19138        support::child(&self.syntax)
19139    }
19140    #[inline]
19141    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
19142        support::child(&self.syntax)
19143    }
19144    #[inline]
19145    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
19146        support::child(&self.syntax)
19147    }
19148    #[inline]
19149    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19150        support::token(&self.syntax, SyntaxKind::L_PAREN)
19151    }
19152    #[inline]
19153    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19154        support::token(&self.syntax, SyntaxKind::R_PAREN)
19155    }
19156    #[inline]
19157    pub fn comma_token(&self) -> Option<SyntaxToken> {
19158        support::token(&self.syntax, SyntaxKind::COMMA)
19159    }
19160    #[inline]
19161    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
19162        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
19163    }
19164    #[inline]
19165    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
19166        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
19167    }
19168}
19169
19170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19171pub struct XmlTableColumn {
19172    pub(crate) syntax: SyntaxNode,
19173}
19174impl XmlTableColumn {
19175    #[inline]
19176    pub fn name(&self) -> Option<Name> {
19177        support::child(&self.syntax)
19178    }
19179    #[inline]
19180    pub fn ty(&self) -> Option<Type> {
19181        support::child(&self.syntax)
19182    }
19183    #[inline]
19184    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
19185        support::child(&self.syntax)
19186    }
19187    #[inline]
19188    pub fn for_token(&self) -> Option<SyntaxToken> {
19189        support::token(&self.syntax, SyntaxKind::FOR_KW)
19190    }
19191    #[inline]
19192    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
19193        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
19194    }
19195}
19196
19197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19198pub struct XmlTableColumnList {
19199    pub(crate) syntax: SyntaxNode,
19200}
19201impl XmlTableColumnList {
19202    #[inline]
19203    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
19204        support::children(&self.syntax)
19205    }
19206    #[inline]
19207    pub fn columns_token(&self) -> Option<SyntaxToken> {
19208        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
19209    }
19210}
19211
19212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19213pub enum AlterColumnOption {
19214    AddGenerated(AddGenerated),
19215    DropDefault(DropDefault),
19216    DropExpression(DropExpression),
19217    DropIdentity(DropIdentity),
19218    DropNotNull(DropNotNull),
19219    Inherit(Inherit),
19220    NoInherit(NoInherit),
19221    ResetOptions(ResetOptions),
19222    Restart(Restart),
19223    SetCompression(SetCompression),
19224    SetDefault(SetDefault),
19225    SetExpression(SetExpression),
19226    SetGenerated(SetGenerated),
19227    SetGeneratedOptions(SetGeneratedOptions),
19228    SetNotNull(SetNotNull),
19229    SetOptions(SetOptions),
19230    SetOptionsList(SetOptionsList),
19231    SetSequenceOption(SetSequenceOption),
19232    SetStatistics(SetStatistics),
19233    SetStorage(SetStorage),
19234    SetType(SetType),
19235}
19236
19237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19238pub enum AlterDomainAction {
19239    AddConstraint(AddConstraint),
19240    DropConstraint(DropConstraint),
19241    DropDefault(DropDefault),
19242    DropNotNull(DropNotNull),
19243    OwnerTo(OwnerTo),
19244    RenameConstraint(RenameConstraint),
19245    RenameTo(RenameTo),
19246    SetDefault(SetDefault),
19247    SetNotNull(SetNotNull),
19248    SetSchema(SetSchema),
19249    ValidateConstraint(ValidateConstraint),
19250}
19251
19252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19253pub enum AlterIndexAction {
19254    AlterSetStatistics(AlterSetStatistics),
19255    AttachPartition(AttachPartition),
19256    DependsOnExtension(DependsOnExtension),
19257    NoDependsOnExtension(NoDependsOnExtension),
19258    RenameTo(RenameTo),
19259    ResetOptions(ResetOptions),
19260    SetOptions(SetOptions),
19261    SetTablespace(SetTablespace),
19262}
19263
19264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19265pub enum AlterMaterializedViewAction {
19266    DependsOnExtension(DependsOnExtension),
19267    NoDependsOnExtension(NoDependsOnExtension),
19268    RenameColumn(RenameColumn),
19269    RenameTo(RenameTo),
19270    SetSchema(SetSchema),
19271    AlterTableAction(AlterTableAction),
19272}
19273
19274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19275pub enum AlterPropertyGraphAction {
19276    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
19277    AddVertexEdgeTables(AddVertexEdgeTables),
19278    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
19279    DropEdgeTables(DropEdgeTables),
19280    DropVertexEdgeLabel(DropVertexEdgeLabel),
19281    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
19282    DropVertexTables(DropVertexTables),
19283    OwnerTo(OwnerTo),
19284    RenameTo(RenameTo),
19285    SetSchema(SetSchema),
19286}
19287
19288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19289pub enum AlterTableAction {
19290    AddColumn(AddColumn),
19291    AddConstraint(AddConstraint),
19292    AlterColumn(AlterColumn),
19293    AlterConstraint(AlterConstraint),
19294    AttachPartition(AttachPartition),
19295    ClusterOn(ClusterOn),
19296    DetachPartition(DetachPartition),
19297    DisableRls(DisableRls),
19298    DisableRule(DisableRule),
19299    DisableTrigger(DisableTrigger),
19300    DropColumn(DropColumn),
19301    DropConstraint(DropConstraint),
19302    EnableAlwaysRule(EnableAlwaysRule),
19303    EnableAlwaysTrigger(EnableAlwaysTrigger),
19304    EnableReplicaRule(EnableReplicaRule),
19305    EnableReplicaTrigger(EnableReplicaTrigger),
19306    EnableRls(EnableRls),
19307    EnableRule(EnableRule),
19308    EnableTrigger(EnableTrigger),
19309    ForceRls(ForceRls),
19310    InheritTable(InheritTable),
19311    MergePartitions(MergePartitions),
19312    NoForceRls(NoForceRls),
19313    NoInheritTable(NoInheritTable),
19314    NotOf(NotOf),
19315    OfType(OfType),
19316    OptionItemList(OptionItemList),
19317    OwnerTo(OwnerTo),
19318    RenameColumn(RenameColumn),
19319    RenameConstraint(RenameConstraint),
19320    RenameTo(RenameTo),
19321    ReplicaIdentity(ReplicaIdentity),
19322    ResetOptions(ResetOptions),
19323    SetAccessMethod(SetAccessMethod),
19324    SetLogged(SetLogged),
19325    SetOptions(SetOptions),
19326    SetSchema(SetSchema),
19327    SetTablespace(SetTablespace),
19328    SetUnlogged(SetUnlogged),
19329    SetWithoutCluster(SetWithoutCluster),
19330    SetWithoutOids(SetWithoutOids),
19331    SplitPartition(SplitPartition),
19332    ValidateConstraint(ValidateConstraint),
19333}
19334
19335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19336pub enum AlterTypeAction {
19337    AddAttribute(AddAttribute),
19338    AlterAttribute(AlterAttribute),
19339    DropAttribute(DropAttribute),
19340}
19341
19342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19343pub enum BeginFuncOption {
19344    ReturnFuncOption(ReturnFuncOption),
19345    Stmt(Stmt),
19346}
19347
19348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19349pub enum ColumnConstraint {
19350    CheckConstraint(CheckConstraint),
19351    DefaultConstraint(DefaultConstraint),
19352    ExcludeConstraint(ExcludeConstraint),
19353    NotNullConstraint(NotNullConstraint),
19354    PrimaryKeyConstraint(PrimaryKeyConstraint),
19355    ReferencesConstraint(ReferencesConstraint),
19356    UniqueConstraint(UniqueConstraint),
19357}
19358
19359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19360pub enum ConfigValue {
19361    Literal(Literal),
19362    NameRef(NameRef),
19363}
19364
19365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19366pub enum ConflictAction {
19367    ConflictDoNothing(ConflictDoNothing),
19368    ConflictDoSelect(ConflictDoSelect),
19369    ConflictDoUpdateSet(ConflictDoUpdateSet),
19370}
19371
19372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19373pub enum ConflictTarget {
19374    ConflictOnConstraint(ConflictOnConstraint),
19375    ConflictOnIndex(ConflictOnIndex),
19376}
19377
19378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19379pub enum Constraint {
19380    CheckConstraint(CheckConstraint),
19381    DefaultConstraint(DefaultConstraint),
19382    ForeignKeyConstraint(ForeignKeyConstraint),
19383    GeneratedConstraint(GeneratedConstraint),
19384    NotNullConstraint(NotNullConstraint),
19385    NullConstraint(NullConstraint),
19386    PrimaryKeyConstraint(PrimaryKeyConstraint),
19387    ReferencesConstraint(ReferencesConstraint),
19388    UniqueConstraint(UniqueConstraint),
19389}
19390
19391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19392pub enum ElementTableLabelAndProperties {
19393    LabelAndPropertiesList(LabelAndPropertiesList),
19394    ElementTableProperties(ElementTableProperties),
19395}
19396
19397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19398pub enum ElementTableProperties {
19399    AllProperties(AllProperties),
19400    NoProperties(NoProperties),
19401    Properties(Properties),
19402}
19403
19404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19405pub enum ExplainStmt {
19406    CompoundSelect(CompoundSelect),
19407    CreateMaterializedView(CreateMaterializedView),
19408    CreateTableAs(CreateTableAs),
19409    Declare(Declare),
19410    Delete(Delete),
19411    Execute(Execute),
19412    Insert(Insert),
19413    Merge(Merge),
19414    ParenSelect(ParenSelect),
19415    Select(Select),
19416    SelectInto(SelectInto),
19417    Table(Table),
19418    Update(Update),
19419    Values(Values),
19420}
19421
19422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19423pub enum Expr {
19424    ArrayExpr(ArrayExpr),
19425    BetweenExpr(BetweenExpr),
19426    BinExpr(BinExpr),
19427    CallExpr(CallExpr),
19428    CaseExpr(CaseExpr),
19429    CastExpr(CastExpr),
19430    FieldExpr(FieldExpr),
19431    IndexExpr(IndexExpr),
19432    Literal(Literal),
19433    NameRef(NameRef),
19434    ParenExpr(ParenExpr),
19435    PostfixExpr(PostfixExpr),
19436    PrefixExpr(PrefixExpr),
19437    SliceExpr(SliceExpr),
19438    TupleExpr(TupleExpr),
19439}
19440
19441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19442pub enum FuncOption {
19443    AsFuncOption(AsFuncOption),
19444    BeginFuncOptionList(BeginFuncOptionList),
19445    CostFuncOption(CostFuncOption),
19446    LanguageFuncOption(LanguageFuncOption),
19447    LeakproofFuncOption(LeakproofFuncOption),
19448    ParallelFuncOption(ParallelFuncOption),
19449    ResetFuncOption(ResetFuncOption),
19450    ReturnFuncOption(ReturnFuncOption),
19451    RowsFuncOption(RowsFuncOption),
19452    SecurityFuncOption(SecurityFuncOption),
19453    SetFuncOption(SetFuncOption),
19454    StrictFuncOption(StrictFuncOption),
19455    SupportFuncOption(SupportFuncOption),
19456    TransformFuncOption(TransformFuncOption),
19457    VolatilityFuncOption(VolatilityFuncOption),
19458    WindowFuncOption(WindowFuncOption),
19459}
19460
19461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19462pub enum GroupBy {
19463    GroupingCube(GroupingCube),
19464    GroupingExpr(GroupingExpr),
19465    GroupingRollup(GroupingRollup),
19466    GroupingSets(GroupingSets),
19467}
19468
19469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19470pub enum JoinType {
19471    JoinCross(JoinCross),
19472    JoinFull(JoinFull),
19473    JoinInner(JoinInner),
19474    JoinLeft(JoinLeft),
19475    JoinRight(JoinRight),
19476}
19477
19478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19479pub enum JsonBehavior {
19480    JsonBehaviorDefault(JsonBehaviorDefault),
19481    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
19482    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
19483    JsonBehaviorError(JsonBehaviorError),
19484    JsonBehaviorFalse(JsonBehaviorFalse),
19485    JsonBehaviorNull(JsonBehaviorNull),
19486    JsonBehaviorTrue(JsonBehaviorTrue),
19487    JsonBehaviorUnknown(JsonBehaviorUnknown),
19488}
19489
19490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19491pub enum MatchType {
19492    MatchFull(MatchFull),
19493    MatchPartial(MatchPartial),
19494    MatchSimple(MatchSimple),
19495}
19496
19497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19498pub enum MergeAction {
19499    MergeDelete(MergeDelete),
19500    MergeDoNothing(MergeDoNothing),
19501    MergeInsert(MergeInsert),
19502    MergeUpdate(MergeUpdate),
19503}
19504
19505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19506pub enum MergeWhenClause {
19507    MergeWhenMatched(MergeWhenMatched),
19508    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
19509    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
19510}
19511
19512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19513pub enum OnCommitAction {
19514    DeleteRows(DeleteRows),
19515    Drop(Drop),
19516    PreserveRows(PreserveRows),
19517}
19518
19519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19520pub enum ParamMode {
19521    ParamIn(ParamIn),
19522    ParamInOut(ParamInOut),
19523    ParamOut(ParamOut),
19524    ParamVariadic(ParamVariadic),
19525}
19526
19527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19528pub enum PartitionType {
19529    PartitionDefault(PartitionDefault),
19530    PartitionForValuesFrom(PartitionForValuesFrom),
19531    PartitionForValuesIn(PartitionForValuesIn),
19532    PartitionForValuesWith(PartitionForValuesWith),
19533}
19534
19535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19536pub enum PathPrimary {
19537    EdgeAny(EdgeAny),
19538    EdgeLeft(EdgeLeft),
19539    EdgeRight(EdgeRight),
19540    ParenGraphPattern(ParenGraphPattern),
19541    VertexPattern(VertexPattern),
19542}
19543
19544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19545pub enum Persistence {
19546    Temp(Temp),
19547    Unlogged(Unlogged),
19548}
19549
19550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19551pub enum PreparableStmt {
19552    CompoundSelect(CompoundSelect),
19553    Delete(Delete),
19554    Insert(Insert),
19555    Merge(Merge),
19556    Select(Select),
19557    SelectInto(SelectInto),
19558    Table(Table),
19559    Update(Update),
19560    Values(Values),
19561}
19562
19563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19564pub enum RefAction {
19565    Cascade(Cascade),
19566    NoAction(NoAction),
19567    Restrict(Restrict),
19568    SetDefaultColumns(SetDefaultColumns),
19569    SetNullColumns(SetNullColumns),
19570}
19571
19572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19573pub enum RuleAction {
19574    Nothing(Nothing),
19575    RuleStmtList(RuleStmtList),
19576    RuleStmt(RuleStmt),
19577}
19578
19579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19580pub enum RuleStmt {
19581    Delete(Delete),
19582    Insert(Insert),
19583    Notify(Notify),
19584    Update(Update),
19585    SelectVariant(SelectVariant),
19586}
19587
19588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19589pub enum SchemaElement {
19590    CreateIndex(CreateIndex),
19591    CreateSequence(CreateSequence),
19592    CreateTable(CreateTable),
19593    CreateTrigger(CreateTrigger),
19594    CreateView(CreateView),
19595    Grant(Grant),
19596}
19597
19598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19599pub enum SelectVariant {
19600    CompoundSelect(CompoundSelect),
19601    ParenSelect(ParenSelect),
19602    Select(Select),
19603    SelectInto(SelectInto),
19604    Table(Table),
19605    Values(Values),
19606}
19607
19608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19609pub enum SetColumn {
19610    SetMultipleColumns(SetMultipleColumns),
19611    SetSingleColumn(SetSingleColumn),
19612}
19613
19614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19615pub enum Stmt {
19616    AlterAggregate(AlterAggregate),
19617    AlterCollation(AlterCollation),
19618    AlterConversion(AlterConversion),
19619    AlterDatabase(AlterDatabase),
19620    AlterDefaultPrivileges(AlterDefaultPrivileges),
19621    AlterDomain(AlterDomain),
19622    AlterEventTrigger(AlterEventTrigger),
19623    AlterExtension(AlterExtension),
19624    AlterForeignDataWrapper(AlterForeignDataWrapper),
19625    AlterForeignTable(AlterForeignTable),
19626    AlterFunction(AlterFunction),
19627    AlterGroup(AlterGroup),
19628    AlterIndex(AlterIndex),
19629    AlterLanguage(AlterLanguage),
19630    AlterLargeObject(AlterLargeObject),
19631    AlterMaterializedView(AlterMaterializedView),
19632    AlterOperator(AlterOperator),
19633    AlterOperatorClass(AlterOperatorClass),
19634    AlterOperatorFamily(AlterOperatorFamily),
19635    AlterPolicy(AlterPolicy),
19636    AlterProcedure(AlterProcedure),
19637    AlterPropertyGraph(AlterPropertyGraph),
19638    AlterPublication(AlterPublication),
19639    AlterRole(AlterRole),
19640    AlterRoutine(AlterRoutine),
19641    AlterRule(AlterRule),
19642    AlterSchema(AlterSchema),
19643    AlterSequence(AlterSequence),
19644    AlterServer(AlterServer),
19645    AlterStatistics(AlterStatistics),
19646    AlterSubscription(AlterSubscription),
19647    AlterSystem(AlterSystem),
19648    AlterTable(AlterTable),
19649    AlterTablespace(AlterTablespace),
19650    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
19651    AlterTextSearchDictionary(AlterTextSearchDictionary),
19652    AlterTextSearchParser(AlterTextSearchParser),
19653    AlterTextSearchTemplate(AlterTextSearchTemplate),
19654    AlterTrigger(AlterTrigger),
19655    AlterType(AlterType),
19656    AlterUser(AlterUser),
19657    AlterUserMapping(AlterUserMapping),
19658    AlterView(AlterView),
19659    Analyze(Analyze),
19660    Begin(Begin),
19661    Call(Call),
19662    Checkpoint(Checkpoint),
19663    Close(Close),
19664    Cluster(Cluster),
19665    CommentOn(CommentOn),
19666    Commit(Commit),
19667    Copy(Copy),
19668    CreateAccessMethod(CreateAccessMethod),
19669    CreateAggregate(CreateAggregate),
19670    CreateCast(CreateCast),
19671    CreateCollation(CreateCollation),
19672    CreateConversion(CreateConversion),
19673    CreateDatabase(CreateDatabase),
19674    CreateDomain(CreateDomain),
19675    CreateEventTrigger(CreateEventTrigger),
19676    CreateExtension(CreateExtension),
19677    CreateForeignDataWrapper(CreateForeignDataWrapper),
19678    CreateForeignTable(CreateForeignTable),
19679    CreateFunction(CreateFunction),
19680    CreateGroup(CreateGroup),
19681    CreateIndex(CreateIndex),
19682    CreateLanguage(CreateLanguage),
19683    CreateMaterializedView(CreateMaterializedView),
19684    CreateOperator(CreateOperator),
19685    CreateOperatorClass(CreateOperatorClass),
19686    CreateOperatorFamily(CreateOperatorFamily),
19687    CreatePolicy(CreatePolicy),
19688    CreateProcedure(CreateProcedure),
19689    CreatePropertyGraph(CreatePropertyGraph),
19690    CreatePublication(CreatePublication),
19691    CreateRole(CreateRole),
19692    CreateRule(CreateRule),
19693    CreateSchema(CreateSchema),
19694    CreateSequence(CreateSequence),
19695    CreateServer(CreateServer),
19696    CreateStatistics(CreateStatistics),
19697    CreateSubscription(CreateSubscription),
19698    CreateTable(CreateTable),
19699    CreateTableAs(CreateTableAs),
19700    CreateTablespace(CreateTablespace),
19701    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
19702    CreateTextSearchDictionary(CreateTextSearchDictionary),
19703    CreateTextSearchParser(CreateTextSearchParser),
19704    CreateTextSearchTemplate(CreateTextSearchTemplate),
19705    CreateTransform(CreateTransform),
19706    CreateTrigger(CreateTrigger),
19707    CreateType(CreateType),
19708    CreateUser(CreateUser),
19709    CreateUserMapping(CreateUserMapping),
19710    CreateView(CreateView),
19711    Deallocate(Deallocate),
19712    Declare(Declare),
19713    Delete(Delete),
19714    Discard(Discard),
19715    Do(Do),
19716    DropAccessMethod(DropAccessMethod),
19717    DropAggregate(DropAggregate),
19718    DropCast(DropCast),
19719    DropCollation(DropCollation),
19720    DropConversion(DropConversion),
19721    DropDatabase(DropDatabase),
19722    DropDomain(DropDomain),
19723    DropEventTrigger(DropEventTrigger),
19724    DropExtension(DropExtension),
19725    DropForeignDataWrapper(DropForeignDataWrapper),
19726    DropForeignTable(DropForeignTable),
19727    DropFunction(DropFunction),
19728    DropGroup(DropGroup),
19729    DropIndex(DropIndex),
19730    DropLanguage(DropLanguage),
19731    DropMaterializedView(DropMaterializedView),
19732    DropOperator(DropOperator),
19733    DropOperatorClass(DropOperatorClass),
19734    DropOperatorFamily(DropOperatorFamily),
19735    DropOwned(DropOwned),
19736    DropPolicy(DropPolicy),
19737    DropProcedure(DropProcedure),
19738    DropPropertyGraph(DropPropertyGraph),
19739    DropPublication(DropPublication),
19740    DropRole(DropRole),
19741    DropRoutine(DropRoutine),
19742    DropRule(DropRule),
19743    DropSchema(DropSchema),
19744    DropSequence(DropSequence),
19745    DropServer(DropServer),
19746    DropStatistics(DropStatistics),
19747    DropSubscription(DropSubscription),
19748    DropTable(DropTable),
19749    DropTablespace(DropTablespace),
19750    DropTextSearchConfig(DropTextSearchConfig),
19751    DropTextSearchDict(DropTextSearchDict),
19752    DropTextSearchParser(DropTextSearchParser),
19753    DropTextSearchTemplate(DropTextSearchTemplate),
19754    DropTransform(DropTransform),
19755    DropTrigger(DropTrigger),
19756    DropType(DropType),
19757    DropUser(DropUser),
19758    DropUserMapping(DropUserMapping),
19759    DropView(DropView),
19760    EmptyStmt(EmptyStmt),
19761    Execute(Execute),
19762    Explain(Explain),
19763    Fetch(Fetch),
19764    Grant(Grant),
19765    ImportForeignSchema(ImportForeignSchema),
19766    Insert(Insert),
19767    Listen(Listen),
19768    Load(Load),
19769    Lock(Lock),
19770    Merge(Merge),
19771    Move(Move),
19772    Notify(Notify),
19773    ParenSelect(ParenSelect),
19774    Prepare(Prepare),
19775    PrepareTransaction(PrepareTransaction),
19776    Reassign(Reassign),
19777    Refresh(Refresh),
19778    Reindex(Reindex),
19779    ReleaseSavepoint(ReleaseSavepoint),
19780    Repack(Repack),
19781    Reset(Reset),
19782    ResetSessionAuth(ResetSessionAuth),
19783    Revoke(Revoke),
19784    Rollback(Rollback),
19785    Savepoint(Savepoint),
19786    SecurityLabel(SecurityLabel),
19787    Select(Select),
19788    SelectInto(SelectInto),
19789    Set(Set),
19790    SetConstraints(SetConstraints),
19791    SetRole(SetRole),
19792    SetSessionAuth(SetSessionAuth),
19793    SetTransaction(SetTransaction),
19794    Show(Show),
19795    Table(Table),
19796    Truncate(Truncate),
19797    Unlisten(Unlisten),
19798    Update(Update),
19799    Vacuum(Vacuum),
19800    Values(Values),
19801}
19802
19803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19804pub enum TableArg {
19805    Column(Column),
19806    LikeClause(LikeClause),
19807    TableConstraint(TableConstraint),
19808}
19809
19810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19811pub enum TableConstraint {
19812    CheckConstraint(CheckConstraint),
19813    ExcludeConstraint(ExcludeConstraint),
19814    ForeignKeyConstraint(ForeignKeyConstraint),
19815    PrimaryKeyConstraint(PrimaryKeyConstraint),
19816    UniqueConstraint(UniqueConstraint),
19817}
19818
19819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19820pub enum Timezone {
19821    WithTimezone(WithTimezone),
19822    WithoutTimezone(WithoutTimezone),
19823}
19824
19825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19826pub enum TransactionMode {
19827    Deferrable(Deferrable),
19828    NotDeferrable(NotDeferrable),
19829    ReadCommitted(ReadCommitted),
19830    ReadOnly(ReadOnly),
19831    ReadUncommitted(ReadUncommitted),
19832    ReadWrite(ReadWrite),
19833    RepeatableRead(RepeatableRead),
19834    Serializable(Serializable),
19835}
19836
19837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19838pub enum Type {
19839    ArrayType(ArrayType),
19840    BitType(BitType),
19841    CharType(CharType),
19842    DoubleType(DoubleType),
19843    ExprType(ExprType),
19844    IntervalType(IntervalType),
19845    PathType(PathType),
19846    PercentType(PercentType),
19847    TimeType(TimeType),
19848}
19849
19850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19851pub enum ValuePosition {
19852    AfterValue(AfterValue),
19853    BeforeValue(BeforeValue),
19854}
19855
19856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19857pub enum WithQuery {
19858    CompoundSelect(CompoundSelect),
19859    Delete(Delete),
19860    Insert(Insert),
19861    Merge(Merge),
19862    ParenSelect(ParenSelect),
19863    Select(Select),
19864    Table(Table),
19865    Update(Update),
19866    Values(Values),
19867}
19868impl AstNode for AddAttribute {
19869    #[inline]
19870    fn can_cast(kind: SyntaxKind) -> bool {
19871        kind == SyntaxKind::ADD_ATTRIBUTE
19872    }
19873    #[inline]
19874    fn cast(syntax: SyntaxNode) -> Option<Self> {
19875        if Self::can_cast(syntax.kind()) {
19876            Some(Self { syntax })
19877        } else {
19878            None
19879        }
19880    }
19881    #[inline]
19882    fn syntax(&self) -> &SyntaxNode {
19883        &self.syntax
19884    }
19885}
19886impl AstNode for AddColumn {
19887    #[inline]
19888    fn can_cast(kind: SyntaxKind) -> bool {
19889        kind == SyntaxKind::ADD_COLUMN
19890    }
19891    #[inline]
19892    fn cast(syntax: SyntaxNode) -> Option<Self> {
19893        if Self::can_cast(syntax.kind()) {
19894            Some(Self { syntax })
19895        } else {
19896            None
19897        }
19898    }
19899    #[inline]
19900    fn syntax(&self) -> &SyntaxNode {
19901        &self.syntax
19902    }
19903}
19904impl AstNode for AddConstraint {
19905    #[inline]
19906    fn can_cast(kind: SyntaxKind) -> bool {
19907        kind == SyntaxKind::ADD_CONSTRAINT
19908    }
19909    #[inline]
19910    fn cast(syntax: SyntaxNode) -> Option<Self> {
19911        if Self::can_cast(syntax.kind()) {
19912            Some(Self { syntax })
19913        } else {
19914            None
19915        }
19916    }
19917    #[inline]
19918    fn syntax(&self) -> &SyntaxNode {
19919        &self.syntax
19920    }
19921}
19922impl AstNode for AddGenerated {
19923    #[inline]
19924    fn can_cast(kind: SyntaxKind) -> bool {
19925        kind == SyntaxKind::ADD_GENERATED
19926    }
19927    #[inline]
19928    fn cast(syntax: SyntaxNode) -> Option<Self> {
19929        if Self::can_cast(syntax.kind()) {
19930            Some(Self { syntax })
19931        } else {
19932            None
19933        }
19934    }
19935    #[inline]
19936    fn syntax(&self) -> &SyntaxNode {
19937        &self.syntax
19938    }
19939}
19940impl AstNode for AddLabel {
19941    #[inline]
19942    fn can_cast(kind: SyntaxKind) -> bool {
19943        kind == SyntaxKind::ADD_LABEL
19944    }
19945    #[inline]
19946    fn cast(syntax: SyntaxNode) -> Option<Self> {
19947        if Self::can_cast(syntax.kind()) {
19948            Some(Self { syntax })
19949        } else {
19950            None
19951        }
19952    }
19953    #[inline]
19954    fn syntax(&self) -> &SyntaxNode {
19955        &self.syntax
19956    }
19957}
19958impl AstNode for AddOpClassOptions {
19959    #[inline]
19960    fn can_cast(kind: SyntaxKind) -> bool {
19961        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19962    }
19963    #[inline]
19964    fn cast(syntax: SyntaxNode) -> Option<Self> {
19965        if Self::can_cast(syntax.kind()) {
19966            Some(Self { syntax })
19967        } else {
19968            None
19969        }
19970    }
19971    #[inline]
19972    fn syntax(&self) -> &SyntaxNode {
19973        &self.syntax
19974    }
19975}
19976impl AstNode for AddValue {
19977    #[inline]
19978    fn can_cast(kind: SyntaxKind) -> bool {
19979        kind == SyntaxKind::ADD_VALUE
19980    }
19981    #[inline]
19982    fn cast(syntax: SyntaxNode) -> Option<Self> {
19983        if Self::can_cast(syntax.kind()) {
19984            Some(Self { syntax })
19985        } else {
19986            None
19987        }
19988    }
19989    #[inline]
19990    fn syntax(&self) -> &SyntaxNode {
19991        &self.syntax
19992    }
19993}
19994impl AstNode for AddVertexEdgeLabelProperties {
19995    #[inline]
19996    fn can_cast(kind: SyntaxKind) -> bool {
19997        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19998    }
19999    #[inline]
20000    fn cast(syntax: SyntaxNode) -> Option<Self> {
20001        if Self::can_cast(syntax.kind()) {
20002            Some(Self { syntax })
20003        } else {
20004            None
20005        }
20006    }
20007    #[inline]
20008    fn syntax(&self) -> &SyntaxNode {
20009        &self.syntax
20010    }
20011}
20012impl AstNode for AddVertexEdgeTables {
20013    #[inline]
20014    fn can_cast(kind: SyntaxKind) -> bool {
20015        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
20016    }
20017    #[inline]
20018    fn cast(syntax: SyntaxNode) -> Option<Self> {
20019        if Self::can_cast(syntax.kind()) {
20020            Some(Self { syntax })
20021        } else {
20022            None
20023        }
20024    }
20025    #[inline]
20026    fn syntax(&self) -> &SyntaxNode {
20027        &self.syntax
20028    }
20029}
20030impl AstNode for AfterValue {
20031    #[inline]
20032    fn can_cast(kind: SyntaxKind) -> bool {
20033        kind == SyntaxKind::AFTER_VALUE
20034    }
20035    #[inline]
20036    fn cast(syntax: SyntaxNode) -> Option<Self> {
20037        if Self::can_cast(syntax.kind()) {
20038            Some(Self { syntax })
20039        } else {
20040            None
20041        }
20042    }
20043    #[inline]
20044    fn syntax(&self) -> &SyntaxNode {
20045        &self.syntax
20046    }
20047}
20048impl AstNode for Aggregate {
20049    #[inline]
20050    fn can_cast(kind: SyntaxKind) -> bool {
20051        kind == SyntaxKind::AGGREGATE
20052    }
20053    #[inline]
20054    fn cast(syntax: SyntaxNode) -> Option<Self> {
20055        if Self::can_cast(syntax.kind()) {
20056            Some(Self { syntax })
20057        } else {
20058            None
20059        }
20060    }
20061    #[inline]
20062    fn syntax(&self) -> &SyntaxNode {
20063        &self.syntax
20064    }
20065}
20066impl AstNode for Alias {
20067    #[inline]
20068    fn can_cast(kind: SyntaxKind) -> bool {
20069        kind == SyntaxKind::ALIAS
20070    }
20071    #[inline]
20072    fn cast(syntax: SyntaxNode) -> Option<Self> {
20073        if Self::can_cast(syntax.kind()) {
20074            Some(Self { syntax })
20075        } else {
20076            None
20077        }
20078    }
20079    #[inline]
20080    fn syntax(&self) -> &SyntaxNode {
20081        &self.syntax
20082    }
20083}
20084impl AstNode for AllFn {
20085    #[inline]
20086    fn can_cast(kind: SyntaxKind) -> bool {
20087        kind == SyntaxKind::ALL_FN
20088    }
20089    #[inline]
20090    fn cast(syntax: SyntaxNode) -> Option<Self> {
20091        if Self::can_cast(syntax.kind()) {
20092            Some(Self { syntax })
20093        } else {
20094            None
20095        }
20096    }
20097    #[inline]
20098    fn syntax(&self) -> &SyntaxNode {
20099        &self.syntax
20100    }
20101}
20102impl AstNode for AllProperties {
20103    #[inline]
20104    fn can_cast(kind: SyntaxKind) -> bool {
20105        kind == SyntaxKind::ALL_PROPERTIES
20106    }
20107    #[inline]
20108    fn cast(syntax: SyntaxNode) -> Option<Self> {
20109        if Self::can_cast(syntax.kind()) {
20110            Some(Self { syntax })
20111        } else {
20112            None
20113        }
20114    }
20115    #[inline]
20116    fn syntax(&self) -> &SyntaxNode {
20117        &self.syntax
20118    }
20119}
20120impl AstNode for AlterAggregate {
20121    #[inline]
20122    fn can_cast(kind: SyntaxKind) -> bool {
20123        kind == SyntaxKind::ALTER_AGGREGATE
20124    }
20125    #[inline]
20126    fn cast(syntax: SyntaxNode) -> Option<Self> {
20127        if Self::can_cast(syntax.kind()) {
20128            Some(Self { syntax })
20129        } else {
20130            None
20131        }
20132    }
20133    #[inline]
20134    fn syntax(&self) -> &SyntaxNode {
20135        &self.syntax
20136    }
20137}
20138impl AstNode for AlterAttribute {
20139    #[inline]
20140    fn can_cast(kind: SyntaxKind) -> bool {
20141        kind == SyntaxKind::ALTER_ATTRIBUTE
20142    }
20143    #[inline]
20144    fn cast(syntax: SyntaxNode) -> Option<Self> {
20145        if Self::can_cast(syntax.kind()) {
20146            Some(Self { syntax })
20147        } else {
20148            None
20149        }
20150    }
20151    #[inline]
20152    fn syntax(&self) -> &SyntaxNode {
20153        &self.syntax
20154    }
20155}
20156impl AstNode for AlterCollation {
20157    #[inline]
20158    fn can_cast(kind: SyntaxKind) -> bool {
20159        kind == SyntaxKind::ALTER_COLLATION
20160    }
20161    #[inline]
20162    fn cast(syntax: SyntaxNode) -> Option<Self> {
20163        if Self::can_cast(syntax.kind()) {
20164            Some(Self { syntax })
20165        } else {
20166            None
20167        }
20168    }
20169    #[inline]
20170    fn syntax(&self) -> &SyntaxNode {
20171        &self.syntax
20172    }
20173}
20174impl AstNode for AlterColumn {
20175    #[inline]
20176    fn can_cast(kind: SyntaxKind) -> bool {
20177        kind == SyntaxKind::ALTER_COLUMN
20178    }
20179    #[inline]
20180    fn cast(syntax: SyntaxNode) -> Option<Self> {
20181        if Self::can_cast(syntax.kind()) {
20182            Some(Self { syntax })
20183        } else {
20184            None
20185        }
20186    }
20187    #[inline]
20188    fn syntax(&self) -> &SyntaxNode {
20189        &self.syntax
20190    }
20191}
20192impl AstNode for AlterConstraint {
20193    #[inline]
20194    fn can_cast(kind: SyntaxKind) -> bool {
20195        kind == SyntaxKind::ALTER_CONSTRAINT
20196    }
20197    #[inline]
20198    fn cast(syntax: SyntaxNode) -> Option<Self> {
20199        if Self::can_cast(syntax.kind()) {
20200            Some(Self { syntax })
20201        } else {
20202            None
20203        }
20204    }
20205    #[inline]
20206    fn syntax(&self) -> &SyntaxNode {
20207        &self.syntax
20208    }
20209}
20210impl AstNode for AlterConversion {
20211    #[inline]
20212    fn can_cast(kind: SyntaxKind) -> bool {
20213        kind == SyntaxKind::ALTER_CONVERSION
20214    }
20215    #[inline]
20216    fn cast(syntax: SyntaxNode) -> Option<Self> {
20217        if Self::can_cast(syntax.kind()) {
20218            Some(Self { syntax })
20219        } else {
20220            None
20221        }
20222    }
20223    #[inline]
20224    fn syntax(&self) -> &SyntaxNode {
20225        &self.syntax
20226    }
20227}
20228impl AstNode for AlterDatabase {
20229    #[inline]
20230    fn can_cast(kind: SyntaxKind) -> bool {
20231        kind == SyntaxKind::ALTER_DATABASE
20232    }
20233    #[inline]
20234    fn cast(syntax: SyntaxNode) -> Option<Self> {
20235        if Self::can_cast(syntax.kind()) {
20236            Some(Self { syntax })
20237        } else {
20238            None
20239        }
20240    }
20241    #[inline]
20242    fn syntax(&self) -> &SyntaxNode {
20243        &self.syntax
20244    }
20245}
20246impl AstNode for AlterDefaultPrivileges {
20247    #[inline]
20248    fn can_cast(kind: SyntaxKind) -> bool {
20249        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
20250    }
20251    #[inline]
20252    fn cast(syntax: SyntaxNode) -> Option<Self> {
20253        if Self::can_cast(syntax.kind()) {
20254            Some(Self { syntax })
20255        } else {
20256            None
20257        }
20258    }
20259    #[inline]
20260    fn syntax(&self) -> &SyntaxNode {
20261        &self.syntax
20262    }
20263}
20264impl AstNode for AlterDomain {
20265    #[inline]
20266    fn can_cast(kind: SyntaxKind) -> bool {
20267        kind == SyntaxKind::ALTER_DOMAIN
20268    }
20269    #[inline]
20270    fn cast(syntax: SyntaxNode) -> Option<Self> {
20271        if Self::can_cast(syntax.kind()) {
20272            Some(Self { syntax })
20273        } else {
20274            None
20275        }
20276    }
20277    #[inline]
20278    fn syntax(&self) -> &SyntaxNode {
20279        &self.syntax
20280    }
20281}
20282impl AstNode for AlterEventTrigger {
20283    #[inline]
20284    fn can_cast(kind: SyntaxKind) -> bool {
20285        kind == SyntaxKind::ALTER_EVENT_TRIGGER
20286    }
20287    #[inline]
20288    fn cast(syntax: SyntaxNode) -> Option<Self> {
20289        if Self::can_cast(syntax.kind()) {
20290            Some(Self { syntax })
20291        } else {
20292            None
20293        }
20294    }
20295    #[inline]
20296    fn syntax(&self) -> &SyntaxNode {
20297        &self.syntax
20298    }
20299}
20300impl AstNode for AlterExtension {
20301    #[inline]
20302    fn can_cast(kind: SyntaxKind) -> bool {
20303        kind == SyntaxKind::ALTER_EXTENSION
20304    }
20305    #[inline]
20306    fn cast(syntax: SyntaxNode) -> Option<Self> {
20307        if Self::can_cast(syntax.kind()) {
20308            Some(Self { syntax })
20309        } else {
20310            None
20311        }
20312    }
20313    #[inline]
20314    fn syntax(&self) -> &SyntaxNode {
20315        &self.syntax
20316    }
20317}
20318impl AstNode for AlterForeignDataWrapper {
20319    #[inline]
20320    fn can_cast(kind: SyntaxKind) -> bool {
20321        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
20322    }
20323    #[inline]
20324    fn cast(syntax: SyntaxNode) -> Option<Self> {
20325        if Self::can_cast(syntax.kind()) {
20326            Some(Self { syntax })
20327        } else {
20328            None
20329        }
20330    }
20331    #[inline]
20332    fn syntax(&self) -> &SyntaxNode {
20333        &self.syntax
20334    }
20335}
20336impl AstNode for AlterForeignTable {
20337    #[inline]
20338    fn can_cast(kind: SyntaxKind) -> bool {
20339        kind == SyntaxKind::ALTER_FOREIGN_TABLE
20340    }
20341    #[inline]
20342    fn cast(syntax: SyntaxNode) -> Option<Self> {
20343        if Self::can_cast(syntax.kind()) {
20344            Some(Self { syntax })
20345        } else {
20346            None
20347        }
20348    }
20349    #[inline]
20350    fn syntax(&self) -> &SyntaxNode {
20351        &self.syntax
20352    }
20353}
20354impl AstNode for AlterFunction {
20355    #[inline]
20356    fn can_cast(kind: SyntaxKind) -> bool {
20357        kind == SyntaxKind::ALTER_FUNCTION
20358    }
20359    #[inline]
20360    fn cast(syntax: SyntaxNode) -> Option<Self> {
20361        if Self::can_cast(syntax.kind()) {
20362            Some(Self { syntax })
20363        } else {
20364            None
20365        }
20366    }
20367    #[inline]
20368    fn syntax(&self) -> &SyntaxNode {
20369        &self.syntax
20370    }
20371}
20372impl AstNode for AlterGroup {
20373    #[inline]
20374    fn can_cast(kind: SyntaxKind) -> bool {
20375        kind == SyntaxKind::ALTER_GROUP
20376    }
20377    #[inline]
20378    fn cast(syntax: SyntaxNode) -> Option<Self> {
20379        if Self::can_cast(syntax.kind()) {
20380            Some(Self { syntax })
20381        } else {
20382            None
20383        }
20384    }
20385    #[inline]
20386    fn syntax(&self) -> &SyntaxNode {
20387        &self.syntax
20388    }
20389}
20390impl AstNode for AlterIndex {
20391    #[inline]
20392    fn can_cast(kind: SyntaxKind) -> bool {
20393        kind == SyntaxKind::ALTER_INDEX
20394    }
20395    #[inline]
20396    fn cast(syntax: SyntaxNode) -> Option<Self> {
20397        if Self::can_cast(syntax.kind()) {
20398            Some(Self { syntax })
20399        } else {
20400            None
20401        }
20402    }
20403    #[inline]
20404    fn syntax(&self) -> &SyntaxNode {
20405        &self.syntax
20406    }
20407}
20408impl AstNode for AlterLanguage {
20409    #[inline]
20410    fn can_cast(kind: SyntaxKind) -> bool {
20411        kind == SyntaxKind::ALTER_LANGUAGE
20412    }
20413    #[inline]
20414    fn cast(syntax: SyntaxNode) -> Option<Self> {
20415        if Self::can_cast(syntax.kind()) {
20416            Some(Self { syntax })
20417        } else {
20418            None
20419        }
20420    }
20421    #[inline]
20422    fn syntax(&self) -> &SyntaxNode {
20423        &self.syntax
20424    }
20425}
20426impl AstNode for AlterLargeObject {
20427    #[inline]
20428    fn can_cast(kind: SyntaxKind) -> bool {
20429        kind == SyntaxKind::ALTER_LARGE_OBJECT
20430    }
20431    #[inline]
20432    fn cast(syntax: SyntaxNode) -> Option<Self> {
20433        if Self::can_cast(syntax.kind()) {
20434            Some(Self { syntax })
20435        } else {
20436            None
20437        }
20438    }
20439    #[inline]
20440    fn syntax(&self) -> &SyntaxNode {
20441        &self.syntax
20442    }
20443}
20444impl AstNode for AlterMaterializedView {
20445    #[inline]
20446    fn can_cast(kind: SyntaxKind) -> bool {
20447        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
20448    }
20449    #[inline]
20450    fn cast(syntax: SyntaxNode) -> Option<Self> {
20451        if Self::can_cast(syntax.kind()) {
20452            Some(Self { syntax })
20453        } else {
20454            None
20455        }
20456    }
20457    #[inline]
20458    fn syntax(&self) -> &SyntaxNode {
20459        &self.syntax
20460    }
20461}
20462impl AstNode for AlterOperator {
20463    #[inline]
20464    fn can_cast(kind: SyntaxKind) -> bool {
20465        kind == SyntaxKind::ALTER_OPERATOR
20466    }
20467    #[inline]
20468    fn cast(syntax: SyntaxNode) -> Option<Self> {
20469        if Self::can_cast(syntax.kind()) {
20470            Some(Self { syntax })
20471        } else {
20472            None
20473        }
20474    }
20475    #[inline]
20476    fn syntax(&self) -> &SyntaxNode {
20477        &self.syntax
20478    }
20479}
20480impl AstNode for AlterOperatorClass {
20481    #[inline]
20482    fn can_cast(kind: SyntaxKind) -> bool {
20483        kind == SyntaxKind::ALTER_OPERATOR_CLASS
20484    }
20485    #[inline]
20486    fn cast(syntax: SyntaxNode) -> Option<Self> {
20487        if Self::can_cast(syntax.kind()) {
20488            Some(Self { syntax })
20489        } else {
20490            None
20491        }
20492    }
20493    #[inline]
20494    fn syntax(&self) -> &SyntaxNode {
20495        &self.syntax
20496    }
20497}
20498impl AstNode for AlterOperatorFamily {
20499    #[inline]
20500    fn can_cast(kind: SyntaxKind) -> bool {
20501        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
20502    }
20503    #[inline]
20504    fn cast(syntax: SyntaxNode) -> Option<Self> {
20505        if Self::can_cast(syntax.kind()) {
20506            Some(Self { syntax })
20507        } else {
20508            None
20509        }
20510    }
20511    #[inline]
20512    fn syntax(&self) -> &SyntaxNode {
20513        &self.syntax
20514    }
20515}
20516impl AstNode for AlterOption {
20517    #[inline]
20518    fn can_cast(kind: SyntaxKind) -> bool {
20519        kind == SyntaxKind::ALTER_OPTION
20520    }
20521    #[inline]
20522    fn cast(syntax: SyntaxNode) -> Option<Self> {
20523        if Self::can_cast(syntax.kind()) {
20524            Some(Self { syntax })
20525        } else {
20526            None
20527        }
20528    }
20529    #[inline]
20530    fn syntax(&self) -> &SyntaxNode {
20531        &self.syntax
20532    }
20533}
20534impl AstNode for AlterOptionList {
20535    #[inline]
20536    fn can_cast(kind: SyntaxKind) -> bool {
20537        kind == SyntaxKind::ALTER_OPTION_LIST
20538    }
20539    #[inline]
20540    fn cast(syntax: SyntaxNode) -> Option<Self> {
20541        if Self::can_cast(syntax.kind()) {
20542            Some(Self { syntax })
20543        } else {
20544            None
20545        }
20546    }
20547    #[inline]
20548    fn syntax(&self) -> &SyntaxNode {
20549        &self.syntax
20550    }
20551}
20552impl AstNode for AlterPolicy {
20553    #[inline]
20554    fn can_cast(kind: SyntaxKind) -> bool {
20555        kind == SyntaxKind::ALTER_POLICY
20556    }
20557    #[inline]
20558    fn cast(syntax: SyntaxNode) -> Option<Self> {
20559        if Self::can_cast(syntax.kind()) {
20560            Some(Self { syntax })
20561        } else {
20562            None
20563        }
20564    }
20565    #[inline]
20566    fn syntax(&self) -> &SyntaxNode {
20567        &self.syntax
20568    }
20569}
20570impl AstNode for AlterProcedure {
20571    #[inline]
20572    fn can_cast(kind: SyntaxKind) -> bool {
20573        kind == SyntaxKind::ALTER_PROCEDURE
20574    }
20575    #[inline]
20576    fn cast(syntax: SyntaxNode) -> Option<Self> {
20577        if Self::can_cast(syntax.kind()) {
20578            Some(Self { syntax })
20579        } else {
20580            None
20581        }
20582    }
20583    #[inline]
20584    fn syntax(&self) -> &SyntaxNode {
20585        &self.syntax
20586    }
20587}
20588impl AstNode for AlterPropertyGraph {
20589    #[inline]
20590    fn can_cast(kind: SyntaxKind) -> bool {
20591        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
20592    }
20593    #[inline]
20594    fn cast(syntax: SyntaxNode) -> Option<Self> {
20595        if Self::can_cast(syntax.kind()) {
20596            Some(Self { syntax })
20597        } else {
20598            None
20599        }
20600    }
20601    #[inline]
20602    fn syntax(&self) -> &SyntaxNode {
20603        &self.syntax
20604    }
20605}
20606impl AstNode for AlterPublication {
20607    #[inline]
20608    fn can_cast(kind: SyntaxKind) -> bool {
20609        kind == SyntaxKind::ALTER_PUBLICATION
20610    }
20611    #[inline]
20612    fn cast(syntax: SyntaxNode) -> Option<Self> {
20613        if Self::can_cast(syntax.kind()) {
20614            Some(Self { syntax })
20615        } else {
20616            None
20617        }
20618    }
20619    #[inline]
20620    fn syntax(&self) -> &SyntaxNode {
20621        &self.syntax
20622    }
20623}
20624impl AstNode for AlterRole {
20625    #[inline]
20626    fn can_cast(kind: SyntaxKind) -> bool {
20627        kind == SyntaxKind::ALTER_ROLE
20628    }
20629    #[inline]
20630    fn cast(syntax: SyntaxNode) -> Option<Self> {
20631        if Self::can_cast(syntax.kind()) {
20632            Some(Self { syntax })
20633        } else {
20634            None
20635        }
20636    }
20637    #[inline]
20638    fn syntax(&self) -> &SyntaxNode {
20639        &self.syntax
20640    }
20641}
20642impl AstNode for AlterRoutine {
20643    #[inline]
20644    fn can_cast(kind: SyntaxKind) -> bool {
20645        kind == SyntaxKind::ALTER_ROUTINE
20646    }
20647    #[inline]
20648    fn cast(syntax: SyntaxNode) -> Option<Self> {
20649        if Self::can_cast(syntax.kind()) {
20650            Some(Self { syntax })
20651        } else {
20652            None
20653        }
20654    }
20655    #[inline]
20656    fn syntax(&self) -> &SyntaxNode {
20657        &self.syntax
20658    }
20659}
20660impl AstNode for AlterRule {
20661    #[inline]
20662    fn can_cast(kind: SyntaxKind) -> bool {
20663        kind == SyntaxKind::ALTER_RULE
20664    }
20665    #[inline]
20666    fn cast(syntax: SyntaxNode) -> Option<Self> {
20667        if Self::can_cast(syntax.kind()) {
20668            Some(Self { syntax })
20669        } else {
20670            None
20671        }
20672    }
20673    #[inline]
20674    fn syntax(&self) -> &SyntaxNode {
20675        &self.syntax
20676    }
20677}
20678impl AstNode for AlterSchema {
20679    #[inline]
20680    fn can_cast(kind: SyntaxKind) -> bool {
20681        kind == SyntaxKind::ALTER_SCHEMA
20682    }
20683    #[inline]
20684    fn cast(syntax: SyntaxNode) -> Option<Self> {
20685        if Self::can_cast(syntax.kind()) {
20686            Some(Self { syntax })
20687        } else {
20688            None
20689        }
20690    }
20691    #[inline]
20692    fn syntax(&self) -> &SyntaxNode {
20693        &self.syntax
20694    }
20695}
20696impl AstNode for AlterSequence {
20697    #[inline]
20698    fn can_cast(kind: SyntaxKind) -> bool {
20699        kind == SyntaxKind::ALTER_SEQUENCE
20700    }
20701    #[inline]
20702    fn cast(syntax: SyntaxNode) -> Option<Self> {
20703        if Self::can_cast(syntax.kind()) {
20704            Some(Self { syntax })
20705        } else {
20706            None
20707        }
20708    }
20709    #[inline]
20710    fn syntax(&self) -> &SyntaxNode {
20711        &self.syntax
20712    }
20713}
20714impl AstNode for AlterServer {
20715    #[inline]
20716    fn can_cast(kind: SyntaxKind) -> bool {
20717        kind == SyntaxKind::ALTER_SERVER
20718    }
20719    #[inline]
20720    fn cast(syntax: SyntaxNode) -> Option<Self> {
20721        if Self::can_cast(syntax.kind()) {
20722            Some(Self { syntax })
20723        } else {
20724            None
20725        }
20726    }
20727    #[inline]
20728    fn syntax(&self) -> &SyntaxNode {
20729        &self.syntax
20730    }
20731}
20732impl AstNode for AlterSetStatistics {
20733    #[inline]
20734    fn can_cast(kind: SyntaxKind) -> bool {
20735        kind == SyntaxKind::ALTER_SET_STATISTICS
20736    }
20737    #[inline]
20738    fn cast(syntax: SyntaxNode) -> Option<Self> {
20739        if Self::can_cast(syntax.kind()) {
20740            Some(Self { syntax })
20741        } else {
20742            None
20743        }
20744    }
20745    #[inline]
20746    fn syntax(&self) -> &SyntaxNode {
20747        &self.syntax
20748    }
20749}
20750impl AstNode for AlterStatistics {
20751    #[inline]
20752    fn can_cast(kind: SyntaxKind) -> bool {
20753        kind == SyntaxKind::ALTER_STATISTICS
20754    }
20755    #[inline]
20756    fn cast(syntax: SyntaxNode) -> Option<Self> {
20757        if Self::can_cast(syntax.kind()) {
20758            Some(Self { syntax })
20759        } else {
20760            None
20761        }
20762    }
20763    #[inline]
20764    fn syntax(&self) -> &SyntaxNode {
20765        &self.syntax
20766    }
20767}
20768impl AstNode for AlterSubscription {
20769    #[inline]
20770    fn can_cast(kind: SyntaxKind) -> bool {
20771        kind == SyntaxKind::ALTER_SUBSCRIPTION
20772    }
20773    #[inline]
20774    fn cast(syntax: SyntaxNode) -> Option<Self> {
20775        if Self::can_cast(syntax.kind()) {
20776            Some(Self { syntax })
20777        } else {
20778            None
20779        }
20780    }
20781    #[inline]
20782    fn syntax(&self) -> &SyntaxNode {
20783        &self.syntax
20784    }
20785}
20786impl AstNode for AlterSystem {
20787    #[inline]
20788    fn can_cast(kind: SyntaxKind) -> bool {
20789        kind == SyntaxKind::ALTER_SYSTEM
20790    }
20791    #[inline]
20792    fn cast(syntax: SyntaxNode) -> Option<Self> {
20793        if Self::can_cast(syntax.kind()) {
20794            Some(Self { syntax })
20795        } else {
20796            None
20797        }
20798    }
20799    #[inline]
20800    fn syntax(&self) -> &SyntaxNode {
20801        &self.syntax
20802    }
20803}
20804impl AstNode for AlterTable {
20805    #[inline]
20806    fn can_cast(kind: SyntaxKind) -> bool {
20807        kind == SyntaxKind::ALTER_TABLE
20808    }
20809    #[inline]
20810    fn cast(syntax: SyntaxNode) -> Option<Self> {
20811        if Self::can_cast(syntax.kind()) {
20812            Some(Self { syntax })
20813        } else {
20814            None
20815        }
20816    }
20817    #[inline]
20818    fn syntax(&self) -> &SyntaxNode {
20819        &self.syntax
20820    }
20821}
20822impl AstNode for AlterTablespace {
20823    #[inline]
20824    fn can_cast(kind: SyntaxKind) -> bool {
20825        kind == SyntaxKind::ALTER_TABLESPACE
20826    }
20827    #[inline]
20828    fn cast(syntax: SyntaxNode) -> Option<Self> {
20829        if Self::can_cast(syntax.kind()) {
20830            Some(Self { syntax })
20831        } else {
20832            None
20833        }
20834    }
20835    #[inline]
20836    fn syntax(&self) -> &SyntaxNode {
20837        &self.syntax
20838    }
20839}
20840impl AstNode for AlterTextSearchConfiguration {
20841    #[inline]
20842    fn can_cast(kind: SyntaxKind) -> bool {
20843        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
20844    }
20845    #[inline]
20846    fn cast(syntax: SyntaxNode) -> Option<Self> {
20847        if Self::can_cast(syntax.kind()) {
20848            Some(Self { syntax })
20849        } else {
20850            None
20851        }
20852    }
20853    #[inline]
20854    fn syntax(&self) -> &SyntaxNode {
20855        &self.syntax
20856    }
20857}
20858impl AstNode for AlterTextSearchDictionary {
20859    #[inline]
20860    fn can_cast(kind: SyntaxKind) -> bool {
20861        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20862    }
20863    #[inline]
20864    fn cast(syntax: SyntaxNode) -> Option<Self> {
20865        if Self::can_cast(syntax.kind()) {
20866            Some(Self { syntax })
20867        } else {
20868            None
20869        }
20870    }
20871    #[inline]
20872    fn syntax(&self) -> &SyntaxNode {
20873        &self.syntax
20874    }
20875}
20876impl AstNode for AlterTextSearchParser {
20877    #[inline]
20878    fn can_cast(kind: SyntaxKind) -> bool {
20879        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20880    }
20881    #[inline]
20882    fn cast(syntax: SyntaxNode) -> Option<Self> {
20883        if Self::can_cast(syntax.kind()) {
20884            Some(Self { syntax })
20885        } else {
20886            None
20887        }
20888    }
20889    #[inline]
20890    fn syntax(&self) -> &SyntaxNode {
20891        &self.syntax
20892    }
20893}
20894impl AstNode for AlterTextSearchTemplate {
20895    #[inline]
20896    fn can_cast(kind: SyntaxKind) -> bool {
20897        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20898    }
20899    #[inline]
20900    fn cast(syntax: SyntaxNode) -> Option<Self> {
20901        if Self::can_cast(syntax.kind()) {
20902            Some(Self { syntax })
20903        } else {
20904            None
20905        }
20906    }
20907    #[inline]
20908    fn syntax(&self) -> &SyntaxNode {
20909        &self.syntax
20910    }
20911}
20912impl AstNode for AlterTrigger {
20913    #[inline]
20914    fn can_cast(kind: SyntaxKind) -> bool {
20915        kind == SyntaxKind::ALTER_TRIGGER
20916    }
20917    #[inline]
20918    fn cast(syntax: SyntaxNode) -> Option<Self> {
20919        if Self::can_cast(syntax.kind()) {
20920            Some(Self { syntax })
20921        } else {
20922            None
20923        }
20924    }
20925    #[inline]
20926    fn syntax(&self) -> &SyntaxNode {
20927        &self.syntax
20928    }
20929}
20930impl AstNode for AlterType {
20931    #[inline]
20932    fn can_cast(kind: SyntaxKind) -> bool {
20933        kind == SyntaxKind::ALTER_TYPE
20934    }
20935    #[inline]
20936    fn cast(syntax: SyntaxNode) -> Option<Self> {
20937        if Self::can_cast(syntax.kind()) {
20938            Some(Self { syntax })
20939        } else {
20940            None
20941        }
20942    }
20943    #[inline]
20944    fn syntax(&self) -> &SyntaxNode {
20945        &self.syntax
20946    }
20947}
20948impl AstNode for AlterUser {
20949    #[inline]
20950    fn can_cast(kind: SyntaxKind) -> bool {
20951        kind == SyntaxKind::ALTER_USER
20952    }
20953    #[inline]
20954    fn cast(syntax: SyntaxNode) -> Option<Self> {
20955        if Self::can_cast(syntax.kind()) {
20956            Some(Self { syntax })
20957        } else {
20958            None
20959        }
20960    }
20961    #[inline]
20962    fn syntax(&self) -> &SyntaxNode {
20963        &self.syntax
20964    }
20965}
20966impl AstNode for AlterUserMapping {
20967    #[inline]
20968    fn can_cast(kind: SyntaxKind) -> bool {
20969        kind == SyntaxKind::ALTER_USER_MAPPING
20970    }
20971    #[inline]
20972    fn cast(syntax: SyntaxNode) -> Option<Self> {
20973        if Self::can_cast(syntax.kind()) {
20974            Some(Self { syntax })
20975        } else {
20976            None
20977        }
20978    }
20979    #[inline]
20980    fn syntax(&self) -> &SyntaxNode {
20981        &self.syntax
20982    }
20983}
20984impl AstNode for AlterVertexEdgeLabels {
20985    #[inline]
20986    fn can_cast(kind: SyntaxKind) -> bool {
20987        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20988    }
20989    #[inline]
20990    fn cast(syntax: SyntaxNode) -> Option<Self> {
20991        if Self::can_cast(syntax.kind()) {
20992            Some(Self { syntax })
20993        } else {
20994            None
20995        }
20996    }
20997    #[inline]
20998    fn syntax(&self) -> &SyntaxNode {
20999        &self.syntax
21000    }
21001}
21002impl AstNode for AlterView {
21003    #[inline]
21004    fn can_cast(kind: SyntaxKind) -> bool {
21005        kind == SyntaxKind::ALTER_VIEW
21006    }
21007    #[inline]
21008    fn cast(syntax: SyntaxNode) -> Option<Self> {
21009        if Self::can_cast(syntax.kind()) {
21010            Some(Self { syntax })
21011        } else {
21012            None
21013        }
21014    }
21015    #[inline]
21016    fn syntax(&self) -> &SyntaxNode {
21017        &self.syntax
21018    }
21019}
21020impl AstNode for Analyze {
21021    #[inline]
21022    fn can_cast(kind: SyntaxKind) -> bool {
21023        kind == SyntaxKind::ANALYZE
21024    }
21025    #[inline]
21026    fn cast(syntax: SyntaxNode) -> Option<Self> {
21027        if Self::can_cast(syntax.kind()) {
21028            Some(Self { syntax })
21029        } else {
21030            None
21031        }
21032    }
21033    #[inline]
21034    fn syntax(&self) -> &SyntaxNode {
21035        &self.syntax
21036    }
21037}
21038impl AstNode for AnyFn {
21039    #[inline]
21040    fn can_cast(kind: SyntaxKind) -> bool {
21041        kind == SyntaxKind::ANY_FN
21042    }
21043    #[inline]
21044    fn cast(syntax: SyntaxNode) -> Option<Self> {
21045        if Self::can_cast(syntax.kind()) {
21046            Some(Self { syntax })
21047        } else {
21048            None
21049        }
21050    }
21051    #[inline]
21052    fn syntax(&self) -> &SyntaxNode {
21053        &self.syntax
21054    }
21055}
21056impl AstNode for Arg {
21057    #[inline]
21058    fn can_cast(kind: SyntaxKind) -> bool {
21059        kind == SyntaxKind::ARG
21060    }
21061    #[inline]
21062    fn cast(syntax: SyntaxNode) -> Option<Self> {
21063        if Self::can_cast(syntax.kind()) {
21064            Some(Self { syntax })
21065        } else {
21066            None
21067        }
21068    }
21069    #[inline]
21070    fn syntax(&self) -> &SyntaxNode {
21071        &self.syntax
21072    }
21073}
21074impl AstNode for ArgList {
21075    #[inline]
21076    fn can_cast(kind: SyntaxKind) -> bool {
21077        kind == SyntaxKind::ARG_LIST
21078    }
21079    #[inline]
21080    fn cast(syntax: SyntaxNode) -> Option<Self> {
21081        if Self::can_cast(syntax.kind()) {
21082            Some(Self { syntax })
21083        } else {
21084            None
21085        }
21086    }
21087    #[inline]
21088    fn syntax(&self) -> &SyntaxNode {
21089        &self.syntax
21090    }
21091}
21092impl AstNode for ArrayExpr {
21093    #[inline]
21094    fn can_cast(kind: SyntaxKind) -> bool {
21095        kind == SyntaxKind::ARRAY_EXPR
21096    }
21097    #[inline]
21098    fn cast(syntax: SyntaxNode) -> Option<Self> {
21099        if Self::can_cast(syntax.kind()) {
21100            Some(Self { syntax })
21101        } else {
21102            None
21103        }
21104    }
21105    #[inline]
21106    fn syntax(&self) -> &SyntaxNode {
21107        &self.syntax
21108    }
21109}
21110impl AstNode for ArrayType {
21111    #[inline]
21112    fn can_cast(kind: SyntaxKind) -> bool {
21113        kind == SyntaxKind::ARRAY_TYPE
21114    }
21115    #[inline]
21116    fn cast(syntax: SyntaxNode) -> Option<Self> {
21117        if Self::can_cast(syntax.kind()) {
21118            Some(Self { syntax })
21119        } else {
21120            None
21121        }
21122    }
21123    #[inline]
21124    fn syntax(&self) -> &SyntaxNode {
21125        &self.syntax
21126    }
21127}
21128impl AstNode for AsFuncOption {
21129    #[inline]
21130    fn can_cast(kind: SyntaxKind) -> bool {
21131        kind == SyntaxKind::AS_FUNC_OPTION
21132    }
21133    #[inline]
21134    fn cast(syntax: SyntaxNode) -> Option<Self> {
21135        if Self::can_cast(syntax.kind()) {
21136            Some(Self { syntax })
21137        } else {
21138            None
21139        }
21140    }
21141    #[inline]
21142    fn syntax(&self) -> &SyntaxNode {
21143        &self.syntax
21144    }
21145}
21146impl AstNode for AsName {
21147    #[inline]
21148    fn can_cast(kind: SyntaxKind) -> bool {
21149        kind == SyntaxKind::AS_NAME
21150    }
21151    #[inline]
21152    fn cast(syntax: SyntaxNode) -> Option<Self> {
21153        if Self::can_cast(syntax.kind()) {
21154            Some(Self { syntax })
21155        } else {
21156            None
21157        }
21158    }
21159    #[inline]
21160    fn syntax(&self) -> &SyntaxNode {
21161        &self.syntax
21162    }
21163}
21164impl AstNode for AsPolicyType {
21165    #[inline]
21166    fn can_cast(kind: SyntaxKind) -> bool {
21167        kind == SyntaxKind::AS_POLICY_TYPE
21168    }
21169    #[inline]
21170    fn cast(syntax: SyntaxNode) -> Option<Self> {
21171        if Self::can_cast(syntax.kind()) {
21172            Some(Self { syntax })
21173        } else {
21174            None
21175        }
21176    }
21177    #[inline]
21178    fn syntax(&self) -> &SyntaxNode {
21179        &self.syntax
21180    }
21181}
21182impl AstNode for AtTimeZone {
21183    #[inline]
21184    fn can_cast(kind: SyntaxKind) -> bool {
21185        kind == SyntaxKind::AT_TIME_ZONE
21186    }
21187    #[inline]
21188    fn cast(syntax: SyntaxNode) -> Option<Self> {
21189        if Self::can_cast(syntax.kind()) {
21190            Some(Self { syntax })
21191        } else {
21192            None
21193        }
21194    }
21195    #[inline]
21196    fn syntax(&self) -> &SyntaxNode {
21197        &self.syntax
21198    }
21199}
21200impl AstNode for AttachPartition {
21201    #[inline]
21202    fn can_cast(kind: SyntaxKind) -> bool {
21203        kind == SyntaxKind::ATTACH_PARTITION
21204    }
21205    #[inline]
21206    fn cast(syntax: SyntaxNode) -> Option<Self> {
21207        if Self::can_cast(syntax.kind()) {
21208            Some(Self { syntax })
21209        } else {
21210            None
21211        }
21212    }
21213    #[inline]
21214    fn syntax(&self) -> &SyntaxNode {
21215        &self.syntax
21216    }
21217}
21218impl AstNode for AttributeList {
21219    #[inline]
21220    fn can_cast(kind: SyntaxKind) -> bool {
21221        kind == SyntaxKind::ATTRIBUTE_LIST
21222    }
21223    #[inline]
21224    fn cast(syntax: SyntaxNode) -> Option<Self> {
21225        if Self::can_cast(syntax.kind()) {
21226            Some(Self { syntax })
21227        } else {
21228            None
21229        }
21230    }
21231    #[inline]
21232    fn syntax(&self) -> &SyntaxNode {
21233        &self.syntax
21234    }
21235}
21236impl AstNode for AttributeOption {
21237    #[inline]
21238    fn can_cast(kind: SyntaxKind) -> bool {
21239        kind == SyntaxKind::ATTRIBUTE_OPTION
21240    }
21241    #[inline]
21242    fn cast(syntax: SyntaxNode) -> Option<Self> {
21243        if Self::can_cast(syntax.kind()) {
21244            Some(Self { syntax })
21245        } else {
21246            None
21247        }
21248    }
21249    #[inline]
21250    fn syntax(&self) -> &SyntaxNode {
21251        &self.syntax
21252    }
21253}
21254impl AstNode for AttributeValue {
21255    #[inline]
21256    fn can_cast(kind: SyntaxKind) -> bool {
21257        kind == SyntaxKind::ATTRIBUTE_VALUE
21258    }
21259    #[inline]
21260    fn cast(syntax: SyntaxNode) -> Option<Self> {
21261        if Self::can_cast(syntax.kind()) {
21262            Some(Self { syntax })
21263        } else {
21264            None
21265        }
21266    }
21267    #[inline]
21268    fn syntax(&self) -> &SyntaxNode {
21269        &self.syntax
21270    }
21271}
21272impl AstNode for BeforeValue {
21273    #[inline]
21274    fn can_cast(kind: SyntaxKind) -> bool {
21275        kind == SyntaxKind::BEFORE_VALUE
21276    }
21277    #[inline]
21278    fn cast(syntax: SyntaxNode) -> Option<Self> {
21279        if Self::can_cast(syntax.kind()) {
21280            Some(Self { syntax })
21281        } else {
21282            None
21283        }
21284    }
21285    #[inline]
21286    fn syntax(&self) -> &SyntaxNode {
21287        &self.syntax
21288    }
21289}
21290impl AstNode for Begin {
21291    #[inline]
21292    fn can_cast(kind: SyntaxKind) -> bool {
21293        kind == SyntaxKind::BEGIN
21294    }
21295    #[inline]
21296    fn cast(syntax: SyntaxNode) -> Option<Self> {
21297        if Self::can_cast(syntax.kind()) {
21298            Some(Self { syntax })
21299        } else {
21300            None
21301        }
21302    }
21303    #[inline]
21304    fn syntax(&self) -> &SyntaxNode {
21305        &self.syntax
21306    }
21307}
21308impl AstNode for BeginFuncOptionList {
21309    #[inline]
21310    fn can_cast(kind: SyntaxKind) -> bool {
21311        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
21312    }
21313    #[inline]
21314    fn cast(syntax: SyntaxNode) -> Option<Self> {
21315        if Self::can_cast(syntax.kind()) {
21316            Some(Self { syntax })
21317        } else {
21318            None
21319        }
21320    }
21321    #[inline]
21322    fn syntax(&self) -> &SyntaxNode {
21323        &self.syntax
21324    }
21325}
21326impl AstNode for BetweenExpr {
21327    #[inline]
21328    fn can_cast(kind: SyntaxKind) -> bool {
21329        kind == SyntaxKind::BETWEEN_EXPR
21330    }
21331    #[inline]
21332    fn cast(syntax: SyntaxNode) -> Option<Self> {
21333        if Self::can_cast(syntax.kind()) {
21334            Some(Self { syntax })
21335        } else {
21336            None
21337        }
21338    }
21339    #[inline]
21340    fn syntax(&self) -> &SyntaxNode {
21341        &self.syntax
21342    }
21343}
21344impl AstNode for BinExpr {
21345    #[inline]
21346    fn can_cast(kind: SyntaxKind) -> bool {
21347        kind == SyntaxKind::BIN_EXPR
21348    }
21349    #[inline]
21350    fn cast(syntax: SyntaxNode) -> Option<Self> {
21351        if Self::can_cast(syntax.kind()) {
21352            Some(Self { syntax })
21353        } else {
21354            None
21355        }
21356    }
21357    #[inline]
21358    fn syntax(&self) -> &SyntaxNode {
21359        &self.syntax
21360    }
21361}
21362impl AstNode for BitType {
21363    #[inline]
21364    fn can_cast(kind: SyntaxKind) -> bool {
21365        kind == SyntaxKind::BIT_TYPE
21366    }
21367    #[inline]
21368    fn cast(syntax: SyntaxNode) -> Option<Self> {
21369        if Self::can_cast(syntax.kind()) {
21370            Some(Self { syntax })
21371        } else {
21372            None
21373        }
21374    }
21375    #[inline]
21376    fn syntax(&self) -> &SyntaxNode {
21377        &self.syntax
21378    }
21379}
21380impl AstNode for Call {
21381    #[inline]
21382    fn can_cast(kind: SyntaxKind) -> bool {
21383        kind == SyntaxKind::CALL
21384    }
21385    #[inline]
21386    fn cast(syntax: SyntaxNode) -> Option<Self> {
21387        if Self::can_cast(syntax.kind()) {
21388            Some(Self { syntax })
21389        } else {
21390            None
21391        }
21392    }
21393    #[inline]
21394    fn syntax(&self) -> &SyntaxNode {
21395        &self.syntax
21396    }
21397}
21398impl AstNode for CallExpr {
21399    #[inline]
21400    fn can_cast(kind: SyntaxKind) -> bool {
21401        kind == SyntaxKind::CALL_EXPR
21402    }
21403    #[inline]
21404    fn cast(syntax: SyntaxNode) -> Option<Self> {
21405        if Self::can_cast(syntax.kind()) {
21406            Some(Self { syntax })
21407        } else {
21408            None
21409        }
21410    }
21411    #[inline]
21412    fn syntax(&self) -> &SyntaxNode {
21413        &self.syntax
21414    }
21415}
21416impl AstNode for Cascade {
21417    #[inline]
21418    fn can_cast(kind: SyntaxKind) -> bool {
21419        kind == SyntaxKind::CASCADE
21420    }
21421    #[inline]
21422    fn cast(syntax: SyntaxNode) -> Option<Self> {
21423        if Self::can_cast(syntax.kind()) {
21424            Some(Self { syntax })
21425        } else {
21426            None
21427        }
21428    }
21429    #[inline]
21430    fn syntax(&self) -> &SyntaxNode {
21431        &self.syntax
21432    }
21433}
21434impl AstNode for CaseExpr {
21435    #[inline]
21436    fn can_cast(kind: SyntaxKind) -> bool {
21437        kind == SyntaxKind::CASE_EXPR
21438    }
21439    #[inline]
21440    fn cast(syntax: SyntaxNode) -> Option<Self> {
21441        if Self::can_cast(syntax.kind()) {
21442            Some(Self { syntax })
21443        } else {
21444            None
21445        }
21446    }
21447    #[inline]
21448    fn syntax(&self) -> &SyntaxNode {
21449        &self.syntax
21450    }
21451}
21452impl AstNode for CastExpr {
21453    #[inline]
21454    fn can_cast(kind: SyntaxKind) -> bool {
21455        kind == SyntaxKind::CAST_EXPR
21456    }
21457    #[inline]
21458    fn cast(syntax: SyntaxNode) -> Option<Self> {
21459        if Self::can_cast(syntax.kind()) {
21460            Some(Self { syntax })
21461        } else {
21462            None
21463        }
21464    }
21465    #[inline]
21466    fn syntax(&self) -> &SyntaxNode {
21467        &self.syntax
21468    }
21469}
21470impl AstNode for CastSig {
21471    #[inline]
21472    fn can_cast(kind: SyntaxKind) -> bool {
21473        kind == SyntaxKind::CAST_SIG
21474    }
21475    #[inline]
21476    fn cast(syntax: SyntaxNode) -> Option<Self> {
21477        if Self::can_cast(syntax.kind()) {
21478            Some(Self { syntax })
21479        } else {
21480            None
21481        }
21482    }
21483    #[inline]
21484    fn syntax(&self) -> &SyntaxNode {
21485        &self.syntax
21486    }
21487}
21488impl AstNode for CharType {
21489    #[inline]
21490    fn can_cast(kind: SyntaxKind) -> bool {
21491        kind == SyntaxKind::CHAR_TYPE
21492    }
21493    #[inline]
21494    fn cast(syntax: SyntaxNode) -> Option<Self> {
21495        if Self::can_cast(syntax.kind()) {
21496            Some(Self { syntax })
21497        } else {
21498            None
21499        }
21500    }
21501    #[inline]
21502    fn syntax(&self) -> &SyntaxNode {
21503        &self.syntax
21504    }
21505}
21506impl AstNode for CheckConstraint {
21507    #[inline]
21508    fn can_cast(kind: SyntaxKind) -> bool {
21509        kind == SyntaxKind::CHECK_CONSTRAINT
21510    }
21511    #[inline]
21512    fn cast(syntax: SyntaxNode) -> Option<Self> {
21513        if Self::can_cast(syntax.kind()) {
21514            Some(Self { syntax })
21515        } else {
21516            None
21517        }
21518    }
21519    #[inline]
21520    fn syntax(&self) -> &SyntaxNode {
21521        &self.syntax
21522    }
21523}
21524impl AstNode for Checkpoint {
21525    #[inline]
21526    fn can_cast(kind: SyntaxKind) -> bool {
21527        kind == SyntaxKind::CHECKPOINT
21528    }
21529    #[inline]
21530    fn cast(syntax: SyntaxNode) -> Option<Self> {
21531        if Self::can_cast(syntax.kind()) {
21532            Some(Self { syntax })
21533        } else {
21534            None
21535        }
21536    }
21537    #[inline]
21538    fn syntax(&self) -> &SyntaxNode {
21539        &self.syntax
21540    }
21541}
21542impl AstNode for Close {
21543    #[inline]
21544    fn can_cast(kind: SyntaxKind) -> bool {
21545        kind == SyntaxKind::CLOSE
21546    }
21547    #[inline]
21548    fn cast(syntax: SyntaxNode) -> Option<Self> {
21549        if Self::can_cast(syntax.kind()) {
21550            Some(Self { syntax })
21551        } else {
21552            None
21553        }
21554    }
21555    #[inline]
21556    fn syntax(&self) -> &SyntaxNode {
21557        &self.syntax
21558    }
21559}
21560impl AstNode for Cluster {
21561    #[inline]
21562    fn can_cast(kind: SyntaxKind) -> bool {
21563        kind == SyntaxKind::CLUSTER
21564    }
21565    #[inline]
21566    fn cast(syntax: SyntaxNode) -> Option<Self> {
21567        if Self::can_cast(syntax.kind()) {
21568            Some(Self { syntax })
21569        } else {
21570            None
21571        }
21572    }
21573    #[inline]
21574    fn syntax(&self) -> &SyntaxNode {
21575        &self.syntax
21576    }
21577}
21578impl AstNode for ClusterOn {
21579    #[inline]
21580    fn can_cast(kind: SyntaxKind) -> bool {
21581        kind == SyntaxKind::CLUSTER_ON
21582    }
21583    #[inline]
21584    fn cast(syntax: SyntaxNode) -> Option<Self> {
21585        if Self::can_cast(syntax.kind()) {
21586            Some(Self { syntax })
21587        } else {
21588            None
21589        }
21590    }
21591    #[inline]
21592    fn syntax(&self) -> &SyntaxNode {
21593        &self.syntax
21594    }
21595}
21596impl AstNode for Collate {
21597    #[inline]
21598    fn can_cast(kind: SyntaxKind) -> bool {
21599        kind == SyntaxKind::COLLATE
21600    }
21601    #[inline]
21602    fn cast(syntax: SyntaxNode) -> Option<Self> {
21603        if Self::can_cast(syntax.kind()) {
21604            Some(Self { syntax })
21605        } else {
21606            None
21607        }
21608    }
21609    #[inline]
21610    fn syntax(&self) -> &SyntaxNode {
21611        &self.syntax
21612    }
21613}
21614impl AstNode for CollationForFn {
21615    #[inline]
21616    fn can_cast(kind: SyntaxKind) -> bool {
21617        kind == SyntaxKind::COLLATION_FOR_FN
21618    }
21619    #[inline]
21620    fn cast(syntax: SyntaxNode) -> Option<Self> {
21621        if Self::can_cast(syntax.kind()) {
21622            Some(Self { syntax })
21623        } else {
21624            None
21625        }
21626    }
21627    #[inline]
21628    fn syntax(&self) -> &SyntaxNode {
21629        &self.syntax
21630    }
21631}
21632impl AstNode for ColonColon {
21633    #[inline]
21634    fn can_cast(kind: SyntaxKind) -> bool {
21635        kind == SyntaxKind::COLON_COLON
21636    }
21637    #[inline]
21638    fn cast(syntax: SyntaxNode) -> Option<Self> {
21639        if Self::can_cast(syntax.kind()) {
21640            Some(Self { syntax })
21641        } else {
21642            None
21643        }
21644    }
21645    #[inline]
21646    fn syntax(&self) -> &SyntaxNode {
21647        &self.syntax
21648    }
21649}
21650impl AstNode for ColonEq {
21651    #[inline]
21652    fn can_cast(kind: SyntaxKind) -> bool {
21653        kind == SyntaxKind::COLON_EQ
21654    }
21655    #[inline]
21656    fn cast(syntax: SyntaxNode) -> Option<Self> {
21657        if Self::can_cast(syntax.kind()) {
21658            Some(Self { syntax })
21659        } else {
21660            None
21661        }
21662    }
21663    #[inline]
21664    fn syntax(&self) -> &SyntaxNode {
21665        &self.syntax
21666    }
21667}
21668impl AstNode for Column {
21669    #[inline]
21670    fn can_cast(kind: SyntaxKind) -> bool {
21671        kind == SyntaxKind::COLUMN
21672    }
21673    #[inline]
21674    fn cast(syntax: SyntaxNode) -> Option<Self> {
21675        if Self::can_cast(syntax.kind()) {
21676            Some(Self { syntax })
21677        } else {
21678            None
21679        }
21680    }
21681    #[inline]
21682    fn syntax(&self) -> &SyntaxNode {
21683        &self.syntax
21684    }
21685}
21686impl AstNode for ColumnList {
21687    #[inline]
21688    fn can_cast(kind: SyntaxKind) -> bool {
21689        kind == SyntaxKind::COLUMN_LIST
21690    }
21691    #[inline]
21692    fn cast(syntax: SyntaxNode) -> Option<Self> {
21693        if Self::can_cast(syntax.kind()) {
21694            Some(Self { syntax })
21695        } else {
21696            None
21697        }
21698    }
21699    #[inline]
21700    fn syntax(&self) -> &SyntaxNode {
21701        &self.syntax
21702    }
21703}
21704impl AstNode for CommentOn {
21705    #[inline]
21706    fn can_cast(kind: SyntaxKind) -> bool {
21707        kind == SyntaxKind::COMMENT_ON
21708    }
21709    #[inline]
21710    fn cast(syntax: SyntaxNode) -> Option<Self> {
21711        if Self::can_cast(syntax.kind()) {
21712            Some(Self { syntax })
21713        } else {
21714            None
21715        }
21716    }
21717    #[inline]
21718    fn syntax(&self) -> &SyntaxNode {
21719        &self.syntax
21720    }
21721}
21722impl AstNode for Commit {
21723    #[inline]
21724    fn can_cast(kind: SyntaxKind) -> bool {
21725        kind == SyntaxKind::COMMIT
21726    }
21727    #[inline]
21728    fn cast(syntax: SyntaxNode) -> Option<Self> {
21729        if Self::can_cast(syntax.kind()) {
21730            Some(Self { syntax })
21731        } else {
21732            None
21733        }
21734    }
21735    #[inline]
21736    fn syntax(&self) -> &SyntaxNode {
21737        &self.syntax
21738    }
21739}
21740impl AstNode for CompoundSelect {
21741    #[inline]
21742    fn can_cast(kind: SyntaxKind) -> bool {
21743        kind == SyntaxKind::COMPOUND_SELECT
21744    }
21745    #[inline]
21746    fn cast(syntax: SyntaxNode) -> Option<Self> {
21747        if Self::can_cast(syntax.kind()) {
21748            Some(Self { syntax })
21749        } else {
21750            None
21751        }
21752    }
21753    #[inline]
21754    fn syntax(&self) -> &SyntaxNode {
21755        &self.syntax
21756    }
21757}
21758impl AstNode for CompressionMethod {
21759    #[inline]
21760    fn can_cast(kind: SyntaxKind) -> bool {
21761        kind == SyntaxKind::COMPRESSION_METHOD
21762    }
21763    #[inline]
21764    fn cast(syntax: SyntaxNode) -> Option<Self> {
21765        if Self::can_cast(syntax.kind()) {
21766            Some(Self { syntax })
21767        } else {
21768            None
21769        }
21770    }
21771    #[inline]
21772    fn syntax(&self) -> &SyntaxNode {
21773        &self.syntax
21774    }
21775}
21776impl AstNode for ConflictDoNothing {
21777    #[inline]
21778    fn can_cast(kind: SyntaxKind) -> bool {
21779        kind == SyntaxKind::CONFLICT_DO_NOTHING
21780    }
21781    #[inline]
21782    fn cast(syntax: SyntaxNode) -> Option<Self> {
21783        if Self::can_cast(syntax.kind()) {
21784            Some(Self { syntax })
21785        } else {
21786            None
21787        }
21788    }
21789    #[inline]
21790    fn syntax(&self) -> &SyntaxNode {
21791        &self.syntax
21792    }
21793}
21794impl AstNode for ConflictDoSelect {
21795    #[inline]
21796    fn can_cast(kind: SyntaxKind) -> bool {
21797        kind == SyntaxKind::CONFLICT_DO_SELECT
21798    }
21799    #[inline]
21800    fn cast(syntax: SyntaxNode) -> Option<Self> {
21801        if Self::can_cast(syntax.kind()) {
21802            Some(Self { syntax })
21803        } else {
21804            None
21805        }
21806    }
21807    #[inline]
21808    fn syntax(&self) -> &SyntaxNode {
21809        &self.syntax
21810    }
21811}
21812impl AstNode for ConflictDoUpdateSet {
21813    #[inline]
21814    fn can_cast(kind: SyntaxKind) -> bool {
21815        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
21816    }
21817    #[inline]
21818    fn cast(syntax: SyntaxNode) -> Option<Self> {
21819        if Self::can_cast(syntax.kind()) {
21820            Some(Self { syntax })
21821        } else {
21822            None
21823        }
21824    }
21825    #[inline]
21826    fn syntax(&self) -> &SyntaxNode {
21827        &self.syntax
21828    }
21829}
21830impl AstNode for ConflictIndexItem {
21831    #[inline]
21832    fn can_cast(kind: SyntaxKind) -> bool {
21833        kind == SyntaxKind::CONFLICT_INDEX_ITEM
21834    }
21835    #[inline]
21836    fn cast(syntax: SyntaxNode) -> Option<Self> {
21837        if Self::can_cast(syntax.kind()) {
21838            Some(Self { syntax })
21839        } else {
21840            None
21841        }
21842    }
21843    #[inline]
21844    fn syntax(&self) -> &SyntaxNode {
21845        &self.syntax
21846    }
21847}
21848impl AstNode for ConflictIndexItemList {
21849    #[inline]
21850    fn can_cast(kind: SyntaxKind) -> bool {
21851        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
21852    }
21853    #[inline]
21854    fn cast(syntax: SyntaxNode) -> Option<Self> {
21855        if Self::can_cast(syntax.kind()) {
21856            Some(Self { syntax })
21857        } else {
21858            None
21859        }
21860    }
21861    #[inline]
21862    fn syntax(&self) -> &SyntaxNode {
21863        &self.syntax
21864    }
21865}
21866impl AstNode for ConflictOnConstraint {
21867    #[inline]
21868    fn can_cast(kind: SyntaxKind) -> bool {
21869        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
21870    }
21871    #[inline]
21872    fn cast(syntax: SyntaxNode) -> Option<Self> {
21873        if Self::can_cast(syntax.kind()) {
21874            Some(Self { syntax })
21875        } else {
21876            None
21877        }
21878    }
21879    #[inline]
21880    fn syntax(&self) -> &SyntaxNode {
21881        &self.syntax
21882    }
21883}
21884impl AstNode for ConflictOnIndex {
21885    #[inline]
21886    fn can_cast(kind: SyntaxKind) -> bool {
21887        kind == SyntaxKind::CONFLICT_ON_INDEX
21888    }
21889    #[inline]
21890    fn cast(syntax: SyntaxNode) -> Option<Self> {
21891        if Self::can_cast(syntax.kind()) {
21892            Some(Self { syntax })
21893        } else {
21894            None
21895        }
21896    }
21897    #[inline]
21898    fn syntax(&self) -> &SyntaxNode {
21899        &self.syntax
21900    }
21901}
21902impl AstNode for ConstraintExclusion {
21903    #[inline]
21904    fn can_cast(kind: SyntaxKind) -> bool {
21905        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21906    }
21907    #[inline]
21908    fn cast(syntax: SyntaxNode) -> Option<Self> {
21909        if Self::can_cast(syntax.kind()) {
21910            Some(Self { syntax })
21911        } else {
21912            None
21913        }
21914    }
21915    #[inline]
21916    fn syntax(&self) -> &SyntaxNode {
21917        &self.syntax
21918    }
21919}
21920impl AstNode for ConstraintExclusionList {
21921    #[inline]
21922    fn can_cast(kind: SyntaxKind) -> bool {
21923        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21924    }
21925    #[inline]
21926    fn cast(syntax: SyntaxNode) -> Option<Self> {
21927        if Self::can_cast(syntax.kind()) {
21928            Some(Self { syntax })
21929        } else {
21930            None
21931        }
21932    }
21933    #[inline]
21934    fn syntax(&self) -> &SyntaxNode {
21935        &self.syntax
21936    }
21937}
21938impl AstNode for ConstraintIncludeClause {
21939    #[inline]
21940    fn can_cast(kind: SyntaxKind) -> bool {
21941        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21942    }
21943    #[inline]
21944    fn cast(syntax: SyntaxNode) -> Option<Self> {
21945        if Self::can_cast(syntax.kind()) {
21946            Some(Self { syntax })
21947        } else {
21948            None
21949        }
21950    }
21951    #[inline]
21952    fn syntax(&self) -> &SyntaxNode {
21953        &self.syntax
21954    }
21955}
21956impl AstNode for ConstraintIndexMethod {
21957    #[inline]
21958    fn can_cast(kind: SyntaxKind) -> bool {
21959        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21960    }
21961    #[inline]
21962    fn cast(syntax: SyntaxNode) -> Option<Self> {
21963        if Self::can_cast(syntax.kind()) {
21964            Some(Self { syntax })
21965        } else {
21966            None
21967        }
21968    }
21969    #[inline]
21970    fn syntax(&self) -> &SyntaxNode {
21971        &self.syntax
21972    }
21973}
21974impl AstNode for ConstraintIndexTablespace {
21975    #[inline]
21976    fn can_cast(kind: SyntaxKind) -> bool {
21977        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21978    }
21979    #[inline]
21980    fn cast(syntax: SyntaxNode) -> Option<Self> {
21981        if Self::can_cast(syntax.kind()) {
21982            Some(Self { syntax })
21983        } else {
21984            None
21985        }
21986    }
21987    #[inline]
21988    fn syntax(&self) -> &SyntaxNode {
21989        &self.syntax
21990    }
21991}
21992impl AstNode for ConstraintName {
21993    #[inline]
21994    fn can_cast(kind: SyntaxKind) -> bool {
21995        kind == SyntaxKind::CONSTRAINT_NAME
21996    }
21997    #[inline]
21998    fn cast(syntax: SyntaxNode) -> Option<Self> {
21999        if Self::can_cast(syntax.kind()) {
22000            Some(Self { syntax })
22001        } else {
22002            None
22003        }
22004    }
22005    #[inline]
22006    fn syntax(&self) -> &SyntaxNode {
22007        &self.syntax
22008    }
22009}
22010impl AstNode for Copy {
22011    #[inline]
22012    fn can_cast(kind: SyntaxKind) -> bool {
22013        kind == SyntaxKind::COPY
22014    }
22015    #[inline]
22016    fn cast(syntax: SyntaxNode) -> Option<Self> {
22017        if Self::can_cast(syntax.kind()) {
22018            Some(Self { syntax })
22019        } else {
22020            None
22021        }
22022    }
22023    #[inline]
22024    fn syntax(&self) -> &SyntaxNode {
22025        &self.syntax
22026    }
22027}
22028impl AstNode for CopyOption {
22029    #[inline]
22030    fn can_cast(kind: SyntaxKind) -> bool {
22031        kind == SyntaxKind::COPY_OPTION
22032    }
22033    #[inline]
22034    fn cast(syntax: SyntaxNode) -> Option<Self> {
22035        if Self::can_cast(syntax.kind()) {
22036            Some(Self { syntax })
22037        } else {
22038            None
22039        }
22040    }
22041    #[inline]
22042    fn syntax(&self) -> &SyntaxNode {
22043        &self.syntax
22044    }
22045}
22046impl AstNode for CopyOptionList {
22047    #[inline]
22048    fn can_cast(kind: SyntaxKind) -> bool {
22049        kind == SyntaxKind::COPY_OPTION_LIST
22050    }
22051    #[inline]
22052    fn cast(syntax: SyntaxNode) -> Option<Self> {
22053        if Self::can_cast(syntax.kind()) {
22054            Some(Self { syntax })
22055        } else {
22056            None
22057        }
22058    }
22059    #[inline]
22060    fn syntax(&self) -> &SyntaxNode {
22061        &self.syntax
22062    }
22063}
22064impl AstNode for CostFuncOption {
22065    #[inline]
22066    fn can_cast(kind: SyntaxKind) -> bool {
22067        kind == SyntaxKind::COST_FUNC_OPTION
22068    }
22069    #[inline]
22070    fn cast(syntax: SyntaxNode) -> Option<Self> {
22071        if Self::can_cast(syntax.kind()) {
22072            Some(Self { syntax })
22073        } else {
22074            None
22075        }
22076    }
22077    #[inline]
22078    fn syntax(&self) -> &SyntaxNode {
22079        &self.syntax
22080    }
22081}
22082impl AstNode for CreateAccessMethod {
22083    #[inline]
22084    fn can_cast(kind: SyntaxKind) -> bool {
22085        kind == SyntaxKind::CREATE_ACCESS_METHOD
22086    }
22087    #[inline]
22088    fn cast(syntax: SyntaxNode) -> Option<Self> {
22089        if Self::can_cast(syntax.kind()) {
22090            Some(Self { syntax })
22091        } else {
22092            None
22093        }
22094    }
22095    #[inline]
22096    fn syntax(&self) -> &SyntaxNode {
22097        &self.syntax
22098    }
22099}
22100impl AstNode for CreateAggregate {
22101    #[inline]
22102    fn can_cast(kind: SyntaxKind) -> bool {
22103        kind == SyntaxKind::CREATE_AGGREGATE
22104    }
22105    #[inline]
22106    fn cast(syntax: SyntaxNode) -> Option<Self> {
22107        if Self::can_cast(syntax.kind()) {
22108            Some(Self { syntax })
22109        } else {
22110            None
22111        }
22112    }
22113    #[inline]
22114    fn syntax(&self) -> &SyntaxNode {
22115        &self.syntax
22116    }
22117}
22118impl AstNode for CreateCast {
22119    #[inline]
22120    fn can_cast(kind: SyntaxKind) -> bool {
22121        kind == SyntaxKind::CREATE_CAST
22122    }
22123    #[inline]
22124    fn cast(syntax: SyntaxNode) -> Option<Self> {
22125        if Self::can_cast(syntax.kind()) {
22126            Some(Self { syntax })
22127        } else {
22128            None
22129        }
22130    }
22131    #[inline]
22132    fn syntax(&self) -> &SyntaxNode {
22133        &self.syntax
22134    }
22135}
22136impl AstNode for CreateCollation {
22137    #[inline]
22138    fn can_cast(kind: SyntaxKind) -> bool {
22139        kind == SyntaxKind::CREATE_COLLATION
22140    }
22141    #[inline]
22142    fn cast(syntax: SyntaxNode) -> Option<Self> {
22143        if Self::can_cast(syntax.kind()) {
22144            Some(Self { syntax })
22145        } else {
22146            None
22147        }
22148    }
22149    #[inline]
22150    fn syntax(&self) -> &SyntaxNode {
22151        &self.syntax
22152    }
22153}
22154impl AstNode for CreateConversion {
22155    #[inline]
22156    fn can_cast(kind: SyntaxKind) -> bool {
22157        kind == SyntaxKind::CREATE_CONVERSION
22158    }
22159    #[inline]
22160    fn cast(syntax: SyntaxNode) -> Option<Self> {
22161        if Self::can_cast(syntax.kind()) {
22162            Some(Self { syntax })
22163        } else {
22164            None
22165        }
22166    }
22167    #[inline]
22168    fn syntax(&self) -> &SyntaxNode {
22169        &self.syntax
22170    }
22171}
22172impl AstNode for CreateDatabase {
22173    #[inline]
22174    fn can_cast(kind: SyntaxKind) -> bool {
22175        kind == SyntaxKind::CREATE_DATABASE
22176    }
22177    #[inline]
22178    fn cast(syntax: SyntaxNode) -> Option<Self> {
22179        if Self::can_cast(syntax.kind()) {
22180            Some(Self { syntax })
22181        } else {
22182            None
22183        }
22184    }
22185    #[inline]
22186    fn syntax(&self) -> &SyntaxNode {
22187        &self.syntax
22188    }
22189}
22190impl AstNode for CreateDatabaseOption {
22191    #[inline]
22192    fn can_cast(kind: SyntaxKind) -> bool {
22193        kind == SyntaxKind::CREATE_DATABASE_OPTION
22194    }
22195    #[inline]
22196    fn cast(syntax: SyntaxNode) -> Option<Self> {
22197        if Self::can_cast(syntax.kind()) {
22198            Some(Self { syntax })
22199        } else {
22200            None
22201        }
22202    }
22203    #[inline]
22204    fn syntax(&self) -> &SyntaxNode {
22205        &self.syntax
22206    }
22207}
22208impl AstNode for CreateDatabaseOptionList {
22209    #[inline]
22210    fn can_cast(kind: SyntaxKind) -> bool {
22211        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
22212    }
22213    #[inline]
22214    fn cast(syntax: SyntaxNode) -> Option<Self> {
22215        if Self::can_cast(syntax.kind()) {
22216            Some(Self { syntax })
22217        } else {
22218            None
22219        }
22220    }
22221    #[inline]
22222    fn syntax(&self) -> &SyntaxNode {
22223        &self.syntax
22224    }
22225}
22226impl AstNode for CreateDomain {
22227    #[inline]
22228    fn can_cast(kind: SyntaxKind) -> bool {
22229        kind == SyntaxKind::CREATE_DOMAIN
22230    }
22231    #[inline]
22232    fn cast(syntax: SyntaxNode) -> Option<Self> {
22233        if Self::can_cast(syntax.kind()) {
22234            Some(Self { syntax })
22235        } else {
22236            None
22237        }
22238    }
22239    #[inline]
22240    fn syntax(&self) -> &SyntaxNode {
22241        &self.syntax
22242    }
22243}
22244impl AstNode for CreateEventTrigger {
22245    #[inline]
22246    fn can_cast(kind: SyntaxKind) -> bool {
22247        kind == SyntaxKind::CREATE_EVENT_TRIGGER
22248    }
22249    #[inline]
22250    fn cast(syntax: SyntaxNode) -> Option<Self> {
22251        if Self::can_cast(syntax.kind()) {
22252            Some(Self { syntax })
22253        } else {
22254            None
22255        }
22256    }
22257    #[inline]
22258    fn syntax(&self) -> &SyntaxNode {
22259        &self.syntax
22260    }
22261}
22262impl AstNode for CreateExtension {
22263    #[inline]
22264    fn can_cast(kind: SyntaxKind) -> bool {
22265        kind == SyntaxKind::CREATE_EXTENSION
22266    }
22267    #[inline]
22268    fn cast(syntax: SyntaxNode) -> Option<Self> {
22269        if Self::can_cast(syntax.kind()) {
22270            Some(Self { syntax })
22271        } else {
22272            None
22273        }
22274    }
22275    #[inline]
22276    fn syntax(&self) -> &SyntaxNode {
22277        &self.syntax
22278    }
22279}
22280impl AstNode for CreateForeignDataWrapper {
22281    #[inline]
22282    fn can_cast(kind: SyntaxKind) -> bool {
22283        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
22284    }
22285    #[inline]
22286    fn cast(syntax: SyntaxNode) -> Option<Self> {
22287        if Self::can_cast(syntax.kind()) {
22288            Some(Self { syntax })
22289        } else {
22290            None
22291        }
22292    }
22293    #[inline]
22294    fn syntax(&self) -> &SyntaxNode {
22295        &self.syntax
22296    }
22297}
22298impl AstNode for CreateForeignTable {
22299    #[inline]
22300    fn can_cast(kind: SyntaxKind) -> bool {
22301        kind == SyntaxKind::CREATE_FOREIGN_TABLE
22302    }
22303    #[inline]
22304    fn cast(syntax: SyntaxNode) -> Option<Self> {
22305        if Self::can_cast(syntax.kind()) {
22306            Some(Self { syntax })
22307        } else {
22308            None
22309        }
22310    }
22311    #[inline]
22312    fn syntax(&self) -> &SyntaxNode {
22313        &self.syntax
22314    }
22315}
22316impl AstNode for CreateFunction {
22317    #[inline]
22318    fn can_cast(kind: SyntaxKind) -> bool {
22319        kind == SyntaxKind::CREATE_FUNCTION
22320    }
22321    #[inline]
22322    fn cast(syntax: SyntaxNode) -> Option<Self> {
22323        if Self::can_cast(syntax.kind()) {
22324            Some(Self { syntax })
22325        } else {
22326            None
22327        }
22328    }
22329    #[inline]
22330    fn syntax(&self) -> &SyntaxNode {
22331        &self.syntax
22332    }
22333}
22334impl AstNode for CreateGroup {
22335    #[inline]
22336    fn can_cast(kind: SyntaxKind) -> bool {
22337        kind == SyntaxKind::CREATE_GROUP
22338    }
22339    #[inline]
22340    fn cast(syntax: SyntaxNode) -> Option<Self> {
22341        if Self::can_cast(syntax.kind()) {
22342            Some(Self { syntax })
22343        } else {
22344            None
22345        }
22346    }
22347    #[inline]
22348    fn syntax(&self) -> &SyntaxNode {
22349        &self.syntax
22350    }
22351}
22352impl AstNode for CreateIndex {
22353    #[inline]
22354    fn can_cast(kind: SyntaxKind) -> bool {
22355        kind == SyntaxKind::CREATE_INDEX
22356    }
22357    #[inline]
22358    fn cast(syntax: SyntaxNode) -> Option<Self> {
22359        if Self::can_cast(syntax.kind()) {
22360            Some(Self { syntax })
22361        } else {
22362            None
22363        }
22364    }
22365    #[inline]
22366    fn syntax(&self) -> &SyntaxNode {
22367        &self.syntax
22368    }
22369}
22370impl AstNode for CreateLanguage {
22371    #[inline]
22372    fn can_cast(kind: SyntaxKind) -> bool {
22373        kind == SyntaxKind::CREATE_LANGUAGE
22374    }
22375    #[inline]
22376    fn cast(syntax: SyntaxNode) -> Option<Self> {
22377        if Self::can_cast(syntax.kind()) {
22378            Some(Self { syntax })
22379        } else {
22380            None
22381        }
22382    }
22383    #[inline]
22384    fn syntax(&self) -> &SyntaxNode {
22385        &self.syntax
22386    }
22387}
22388impl AstNode for CreateMaterializedView {
22389    #[inline]
22390    fn can_cast(kind: SyntaxKind) -> bool {
22391        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
22392    }
22393    #[inline]
22394    fn cast(syntax: SyntaxNode) -> Option<Self> {
22395        if Self::can_cast(syntax.kind()) {
22396            Some(Self { syntax })
22397        } else {
22398            None
22399        }
22400    }
22401    #[inline]
22402    fn syntax(&self) -> &SyntaxNode {
22403        &self.syntax
22404    }
22405}
22406impl AstNode for CreateOperator {
22407    #[inline]
22408    fn can_cast(kind: SyntaxKind) -> bool {
22409        kind == SyntaxKind::CREATE_OPERATOR
22410    }
22411    #[inline]
22412    fn cast(syntax: SyntaxNode) -> Option<Self> {
22413        if Self::can_cast(syntax.kind()) {
22414            Some(Self { syntax })
22415        } else {
22416            None
22417        }
22418    }
22419    #[inline]
22420    fn syntax(&self) -> &SyntaxNode {
22421        &self.syntax
22422    }
22423}
22424impl AstNode for CreateOperatorClass {
22425    #[inline]
22426    fn can_cast(kind: SyntaxKind) -> bool {
22427        kind == SyntaxKind::CREATE_OPERATOR_CLASS
22428    }
22429    #[inline]
22430    fn cast(syntax: SyntaxNode) -> Option<Self> {
22431        if Self::can_cast(syntax.kind()) {
22432            Some(Self { syntax })
22433        } else {
22434            None
22435        }
22436    }
22437    #[inline]
22438    fn syntax(&self) -> &SyntaxNode {
22439        &self.syntax
22440    }
22441}
22442impl AstNode for CreateOperatorFamily {
22443    #[inline]
22444    fn can_cast(kind: SyntaxKind) -> bool {
22445        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
22446    }
22447    #[inline]
22448    fn cast(syntax: SyntaxNode) -> Option<Self> {
22449        if Self::can_cast(syntax.kind()) {
22450            Some(Self { syntax })
22451        } else {
22452            None
22453        }
22454    }
22455    #[inline]
22456    fn syntax(&self) -> &SyntaxNode {
22457        &self.syntax
22458    }
22459}
22460impl AstNode for CreatePolicy {
22461    #[inline]
22462    fn can_cast(kind: SyntaxKind) -> bool {
22463        kind == SyntaxKind::CREATE_POLICY
22464    }
22465    #[inline]
22466    fn cast(syntax: SyntaxNode) -> Option<Self> {
22467        if Self::can_cast(syntax.kind()) {
22468            Some(Self { syntax })
22469        } else {
22470            None
22471        }
22472    }
22473    #[inline]
22474    fn syntax(&self) -> &SyntaxNode {
22475        &self.syntax
22476    }
22477}
22478impl AstNode for CreateProcedure {
22479    #[inline]
22480    fn can_cast(kind: SyntaxKind) -> bool {
22481        kind == SyntaxKind::CREATE_PROCEDURE
22482    }
22483    #[inline]
22484    fn cast(syntax: SyntaxNode) -> Option<Self> {
22485        if Self::can_cast(syntax.kind()) {
22486            Some(Self { syntax })
22487        } else {
22488            None
22489        }
22490    }
22491    #[inline]
22492    fn syntax(&self) -> &SyntaxNode {
22493        &self.syntax
22494    }
22495}
22496impl AstNode for CreatePropertyGraph {
22497    #[inline]
22498    fn can_cast(kind: SyntaxKind) -> bool {
22499        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
22500    }
22501    #[inline]
22502    fn cast(syntax: SyntaxNode) -> Option<Self> {
22503        if Self::can_cast(syntax.kind()) {
22504            Some(Self { syntax })
22505        } else {
22506            None
22507        }
22508    }
22509    #[inline]
22510    fn syntax(&self) -> &SyntaxNode {
22511        &self.syntax
22512    }
22513}
22514impl AstNode for CreatePublication {
22515    #[inline]
22516    fn can_cast(kind: SyntaxKind) -> bool {
22517        kind == SyntaxKind::CREATE_PUBLICATION
22518    }
22519    #[inline]
22520    fn cast(syntax: SyntaxNode) -> Option<Self> {
22521        if Self::can_cast(syntax.kind()) {
22522            Some(Self { syntax })
22523        } else {
22524            None
22525        }
22526    }
22527    #[inline]
22528    fn syntax(&self) -> &SyntaxNode {
22529        &self.syntax
22530    }
22531}
22532impl AstNode for CreateRole {
22533    #[inline]
22534    fn can_cast(kind: SyntaxKind) -> bool {
22535        kind == SyntaxKind::CREATE_ROLE
22536    }
22537    #[inline]
22538    fn cast(syntax: SyntaxNode) -> Option<Self> {
22539        if Self::can_cast(syntax.kind()) {
22540            Some(Self { syntax })
22541        } else {
22542            None
22543        }
22544    }
22545    #[inline]
22546    fn syntax(&self) -> &SyntaxNode {
22547        &self.syntax
22548    }
22549}
22550impl AstNode for CreateRule {
22551    #[inline]
22552    fn can_cast(kind: SyntaxKind) -> bool {
22553        kind == SyntaxKind::CREATE_RULE
22554    }
22555    #[inline]
22556    fn cast(syntax: SyntaxNode) -> Option<Self> {
22557        if Self::can_cast(syntax.kind()) {
22558            Some(Self { syntax })
22559        } else {
22560            None
22561        }
22562    }
22563    #[inline]
22564    fn syntax(&self) -> &SyntaxNode {
22565        &self.syntax
22566    }
22567}
22568impl AstNode for CreateSchema {
22569    #[inline]
22570    fn can_cast(kind: SyntaxKind) -> bool {
22571        kind == SyntaxKind::CREATE_SCHEMA
22572    }
22573    #[inline]
22574    fn cast(syntax: SyntaxNode) -> Option<Self> {
22575        if Self::can_cast(syntax.kind()) {
22576            Some(Self { syntax })
22577        } else {
22578            None
22579        }
22580    }
22581    #[inline]
22582    fn syntax(&self) -> &SyntaxNode {
22583        &self.syntax
22584    }
22585}
22586impl AstNode for CreateSequence {
22587    #[inline]
22588    fn can_cast(kind: SyntaxKind) -> bool {
22589        kind == SyntaxKind::CREATE_SEQUENCE
22590    }
22591    #[inline]
22592    fn cast(syntax: SyntaxNode) -> Option<Self> {
22593        if Self::can_cast(syntax.kind()) {
22594            Some(Self { syntax })
22595        } else {
22596            None
22597        }
22598    }
22599    #[inline]
22600    fn syntax(&self) -> &SyntaxNode {
22601        &self.syntax
22602    }
22603}
22604impl AstNode for CreateServer {
22605    #[inline]
22606    fn can_cast(kind: SyntaxKind) -> bool {
22607        kind == SyntaxKind::CREATE_SERVER
22608    }
22609    #[inline]
22610    fn cast(syntax: SyntaxNode) -> Option<Self> {
22611        if Self::can_cast(syntax.kind()) {
22612            Some(Self { syntax })
22613        } else {
22614            None
22615        }
22616    }
22617    #[inline]
22618    fn syntax(&self) -> &SyntaxNode {
22619        &self.syntax
22620    }
22621}
22622impl AstNode for CreateStatistics {
22623    #[inline]
22624    fn can_cast(kind: SyntaxKind) -> bool {
22625        kind == SyntaxKind::CREATE_STATISTICS
22626    }
22627    #[inline]
22628    fn cast(syntax: SyntaxNode) -> Option<Self> {
22629        if Self::can_cast(syntax.kind()) {
22630            Some(Self { syntax })
22631        } else {
22632            None
22633        }
22634    }
22635    #[inline]
22636    fn syntax(&self) -> &SyntaxNode {
22637        &self.syntax
22638    }
22639}
22640impl AstNode for CreateSubscription {
22641    #[inline]
22642    fn can_cast(kind: SyntaxKind) -> bool {
22643        kind == SyntaxKind::CREATE_SUBSCRIPTION
22644    }
22645    #[inline]
22646    fn cast(syntax: SyntaxNode) -> Option<Self> {
22647        if Self::can_cast(syntax.kind()) {
22648            Some(Self { syntax })
22649        } else {
22650            None
22651        }
22652    }
22653    #[inline]
22654    fn syntax(&self) -> &SyntaxNode {
22655        &self.syntax
22656    }
22657}
22658impl AstNode for CreateTable {
22659    #[inline]
22660    fn can_cast(kind: SyntaxKind) -> bool {
22661        kind == SyntaxKind::CREATE_TABLE
22662    }
22663    #[inline]
22664    fn cast(syntax: SyntaxNode) -> Option<Self> {
22665        if Self::can_cast(syntax.kind()) {
22666            Some(Self { syntax })
22667        } else {
22668            None
22669        }
22670    }
22671    #[inline]
22672    fn syntax(&self) -> &SyntaxNode {
22673        &self.syntax
22674    }
22675}
22676impl AstNode for CreateTableAs {
22677    #[inline]
22678    fn can_cast(kind: SyntaxKind) -> bool {
22679        kind == SyntaxKind::CREATE_TABLE_AS
22680    }
22681    #[inline]
22682    fn cast(syntax: SyntaxNode) -> Option<Self> {
22683        if Self::can_cast(syntax.kind()) {
22684            Some(Self { syntax })
22685        } else {
22686            None
22687        }
22688    }
22689    #[inline]
22690    fn syntax(&self) -> &SyntaxNode {
22691        &self.syntax
22692    }
22693}
22694impl AstNode for CreateTablespace {
22695    #[inline]
22696    fn can_cast(kind: SyntaxKind) -> bool {
22697        kind == SyntaxKind::CREATE_TABLESPACE
22698    }
22699    #[inline]
22700    fn cast(syntax: SyntaxNode) -> Option<Self> {
22701        if Self::can_cast(syntax.kind()) {
22702            Some(Self { syntax })
22703        } else {
22704            None
22705        }
22706    }
22707    #[inline]
22708    fn syntax(&self) -> &SyntaxNode {
22709        &self.syntax
22710    }
22711}
22712impl AstNode for CreateTextSearchConfiguration {
22713    #[inline]
22714    fn can_cast(kind: SyntaxKind) -> bool {
22715        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
22716    }
22717    #[inline]
22718    fn cast(syntax: SyntaxNode) -> Option<Self> {
22719        if Self::can_cast(syntax.kind()) {
22720            Some(Self { syntax })
22721        } else {
22722            None
22723        }
22724    }
22725    #[inline]
22726    fn syntax(&self) -> &SyntaxNode {
22727        &self.syntax
22728    }
22729}
22730impl AstNode for CreateTextSearchDictionary {
22731    #[inline]
22732    fn can_cast(kind: SyntaxKind) -> bool {
22733        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
22734    }
22735    #[inline]
22736    fn cast(syntax: SyntaxNode) -> Option<Self> {
22737        if Self::can_cast(syntax.kind()) {
22738            Some(Self { syntax })
22739        } else {
22740            None
22741        }
22742    }
22743    #[inline]
22744    fn syntax(&self) -> &SyntaxNode {
22745        &self.syntax
22746    }
22747}
22748impl AstNode for CreateTextSearchParser {
22749    #[inline]
22750    fn can_cast(kind: SyntaxKind) -> bool {
22751        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
22752    }
22753    #[inline]
22754    fn cast(syntax: SyntaxNode) -> Option<Self> {
22755        if Self::can_cast(syntax.kind()) {
22756            Some(Self { syntax })
22757        } else {
22758            None
22759        }
22760    }
22761    #[inline]
22762    fn syntax(&self) -> &SyntaxNode {
22763        &self.syntax
22764    }
22765}
22766impl AstNode for CreateTextSearchTemplate {
22767    #[inline]
22768    fn can_cast(kind: SyntaxKind) -> bool {
22769        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
22770    }
22771    #[inline]
22772    fn cast(syntax: SyntaxNode) -> Option<Self> {
22773        if Self::can_cast(syntax.kind()) {
22774            Some(Self { syntax })
22775        } else {
22776            None
22777        }
22778    }
22779    #[inline]
22780    fn syntax(&self) -> &SyntaxNode {
22781        &self.syntax
22782    }
22783}
22784impl AstNode for CreateTransform {
22785    #[inline]
22786    fn can_cast(kind: SyntaxKind) -> bool {
22787        kind == SyntaxKind::CREATE_TRANSFORM
22788    }
22789    #[inline]
22790    fn cast(syntax: SyntaxNode) -> Option<Self> {
22791        if Self::can_cast(syntax.kind()) {
22792            Some(Self { syntax })
22793        } else {
22794            None
22795        }
22796    }
22797    #[inline]
22798    fn syntax(&self) -> &SyntaxNode {
22799        &self.syntax
22800    }
22801}
22802impl AstNode for CreateTrigger {
22803    #[inline]
22804    fn can_cast(kind: SyntaxKind) -> bool {
22805        kind == SyntaxKind::CREATE_TRIGGER
22806    }
22807    #[inline]
22808    fn cast(syntax: SyntaxNode) -> Option<Self> {
22809        if Self::can_cast(syntax.kind()) {
22810            Some(Self { syntax })
22811        } else {
22812            None
22813        }
22814    }
22815    #[inline]
22816    fn syntax(&self) -> &SyntaxNode {
22817        &self.syntax
22818    }
22819}
22820impl AstNode for CreateType {
22821    #[inline]
22822    fn can_cast(kind: SyntaxKind) -> bool {
22823        kind == SyntaxKind::CREATE_TYPE
22824    }
22825    #[inline]
22826    fn cast(syntax: SyntaxNode) -> Option<Self> {
22827        if Self::can_cast(syntax.kind()) {
22828            Some(Self { syntax })
22829        } else {
22830            None
22831        }
22832    }
22833    #[inline]
22834    fn syntax(&self) -> &SyntaxNode {
22835        &self.syntax
22836    }
22837}
22838impl AstNode for CreateUser {
22839    #[inline]
22840    fn can_cast(kind: SyntaxKind) -> bool {
22841        kind == SyntaxKind::CREATE_USER
22842    }
22843    #[inline]
22844    fn cast(syntax: SyntaxNode) -> Option<Self> {
22845        if Self::can_cast(syntax.kind()) {
22846            Some(Self { syntax })
22847        } else {
22848            None
22849        }
22850    }
22851    #[inline]
22852    fn syntax(&self) -> &SyntaxNode {
22853        &self.syntax
22854    }
22855}
22856impl AstNode for CreateUserMapping {
22857    #[inline]
22858    fn can_cast(kind: SyntaxKind) -> bool {
22859        kind == SyntaxKind::CREATE_USER_MAPPING
22860    }
22861    #[inline]
22862    fn cast(syntax: SyntaxNode) -> Option<Self> {
22863        if Self::can_cast(syntax.kind()) {
22864            Some(Self { syntax })
22865        } else {
22866            None
22867        }
22868    }
22869    #[inline]
22870    fn syntax(&self) -> &SyntaxNode {
22871        &self.syntax
22872    }
22873}
22874impl AstNode for CreateView {
22875    #[inline]
22876    fn can_cast(kind: SyntaxKind) -> bool {
22877        kind == SyntaxKind::CREATE_VIEW
22878    }
22879    #[inline]
22880    fn cast(syntax: SyntaxNode) -> Option<Self> {
22881        if Self::can_cast(syntax.kind()) {
22882            Some(Self { syntax })
22883        } else {
22884            None
22885        }
22886    }
22887    #[inline]
22888    fn syntax(&self) -> &SyntaxNode {
22889        &self.syntax
22890    }
22891}
22892impl AstNode for CustomOp {
22893    #[inline]
22894    fn can_cast(kind: SyntaxKind) -> bool {
22895        kind == SyntaxKind::CUSTOM_OP
22896    }
22897    #[inline]
22898    fn cast(syntax: SyntaxNode) -> Option<Self> {
22899        if Self::can_cast(syntax.kind()) {
22900            Some(Self { syntax })
22901        } else {
22902            None
22903        }
22904    }
22905    #[inline]
22906    fn syntax(&self) -> &SyntaxNode {
22907        &self.syntax
22908    }
22909}
22910impl AstNode for Deallocate {
22911    #[inline]
22912    fn can_cast(kind: SyntaxKind) -> bool {
22913        kind == SyntaxKind::DEALLOCATE
22914    }
22915    #[inline]
22916    fn cast(syntax: SyntaxNode) -> Option<Self> {
22917        if Self::can_cast(syntax.kind()) {
22918            Some(Self { syntax })
22919        } else {
22920            None
22921        }
22922    }
22923    #[inline]
22924    fn syntax(&self) -> &SyntaxNode {
22925        &self.syntax
22926    }
22927}
22928impl AstNode for Declare {
22929    #[inline]
22930    fn can_cast(kind: SyntaxKind) -> bool {
22931        kind == SyntaxKind::DECLARE
22932    }
22933    #[inline]
22934    fn cast(syntax: SyntaxNode) -> Option<Self> {
22935        if Self::can_cast(syntax.kind()) {
22936            Some(Self { syntax })
22937        } else {
22938            None
22939        }
22940    }
22941    #[inline]
22942    fn syntax(&self) -> &SyntaxNode {
22943        &self.syntax
22944    }
22945}
22946impl AstNode for DefaultConstraint {
22947    #[inline]
22948    fn can_cast(kind: SyntaxKind) -> bool {
22949        kind == SyntaxKind::DEFAULT_CONSTRAINT
22950    }
22951    #[inline]
22952    fn cast(syntax: SyntaxNode) -> Option<Self> {
22953        if Self::can_cast(syntax.kind()) {
22954            Some(Self { syntax })
22955        } else {
22956            None
22957        }
22958    }
22959    #[inline]
22960    fn syntax(&self) -> &SyntaxNode {
22961        &self.syntax
22962    }
22963}
22964impl AstNode for Deferrable {
22965    #[inline]
22966    fn can_cast(kind: SyntaxKind) -> bool {
22967        kind == SyntaxKind::DEFERRABLE
22968    }
22969    #[inline]
22970    fn cast(syntax: SyntaxNode) -> Option<Self> {
22971        if Self::can_cast(syntax.kind()) {
22972            Some(Self { syntax })
22973        } else {
22974            None
22975        }
22976    }
22977    #[inline]
22978    fn syntax(&self) -> &SyntaxNode {
22979        &self.syntax
22980    }
22981}
22982impl AstNode for DeferrableConstraintOption {
22983    #[inline]
22984    fn can_cast(kind: SyntaxKind) -> bool {
22985        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22986    }
22987    #[inline]
22988    fn cast(syntax: SyntaxNode) -> Option<Self> {
22989        if Self::can_cast(syntax.kind()) {
22990            Some(Self { syntax })
22991        } else {
22992            None
22993        }
22994    }
22995    #[inline]
22996    fn syntax(&self) -> &SyntaxNode {
22997        &self.syntax
22998    }
22999}
23000impl AstNode for Delete {
23001    #[inline]
23002    fn can_cast(kind: SyntaxKind) -> bool {
23003        kind == SyntaxKind::DELETE
23004    }
23005    #[inline]
23006    fn cast(syntax: SyntaxNode) -> Option<Self> {
23007        if Self::can_cast(syntax.kind()) {
23008            Some(Self { syntax })
23009        } else {
23010            None
23011        }
23012    }
23013    #[inline]
23014    fn syntax(&self) -> &SyntaxNode {
23015        &self.syntax
23016    }
23017}
23018impl AstNode for DeleteRows {
23019    #[inline]
23020    fn can_cast(kind: SyntaxKind) -> bool {
23021        kind == SyntaxKind::DELETE_ROWS
23022    }
23023    #[inline]
23024    fn cast(syntax: SyntaxNode) -> Option<Self> {
23025        if Self::can_cast(syntax.kind()) {
23026            Some(Self { syntax })
23027        } else {
23028            None
23029        }
23030    }
23031    #[inline]
23032    fn syntax(&self) -> &SyntaxNode {
23033        &self.syntax
23034    }
23035}
23036impl AstNode for DependsOnExtension {
23037    #[inline]
23038    fn can_cast(kind: SyntaxKind) -> bool {
23039        kind == SyntaxKind::DEPENDS_ON_EXTENSION
23040    }
23041    #[inline]
23042    fn cast(syntax: SyntaxNode) -> Option<Self> {
23043        if Self::can_cast(syntax.kind()) {
23044            Some(Self { syntax })
23045        } else {
23046            None
23047        }
23048    }
23049    #[inline]
23050    fn syntax(&self) -> &SyntaxNode {
23051        &self.syntax
23052    }
23053}
23054impl AstNode for DestVertexTable {
23055    #[inline]
23056    fn can_cast(kind: SyntaxKind) -> bool {
23057        kind == SyntaxKind::DEST_VERTEX_TABLE
23058    }
23059    #[inline]
23060    fn cast(syntax: SyntaxNode) -> Option<Self> {
23061        if Self::can_cast(syntax.kind()) {
23062            Some(Self { syntax })
23063        } else {
23064            None
23065        }
23066    }
23067    #[inline]
23068    fn syntax(&self) -> &SyntaxNode {
23069        &self.syntax
23070    }
23071}
23072impl AstNode for DetachPartition {
23073    #[inline]
23074    fn can_cast(kind: SyntaxKind) -> bool {
23075        kind == SyntaxKind::DETACH_PARTITION
23076    }
23077    #[inline]
23078    fn cast(syntax: SyntaxNode) -> Option<Self> {
23079        if Self::can_cast(syntax.kind()) {
23080            Some(Self { syntax })
23081        } else {
23082            None
23083        }
23084    }
23085    #[inline]
23086    fn syntax(&self) -> &SyntaxNode {
23087        &self.syntax
23088    }
23089}
23090impl AstNode for DisableRls {
23091    #[inline]
23092    fn can_cast(kind: SyntaxKind) -> bool {
23093        kind == SyntaxKind::DISABLE_RLS
23094    }
23095    #[inline]
23096    fn cast(syntax: SyntaxNode) -> Option<Self> {
23097        if Self::can_cast(syntax.kind()) {
23098            Some(Self { syntax })
23099        } else {
23100            None
23101        }
23102    }
23103    #[inline]
23104    fn syntax(&self) -> &SyntaxNode {
23105        &self.syntax
23106    }
23107}
23108impl AstNode for DisableRule {
23109    #[inline]
23110    fn can_cast(kind: SyntaxKind) -> bool {
23111        kind == SyntaxKind::DISABLE_RULE
23112    }
23113    #[inline]
23114    fn cast(syntax: SyntaxNode) -> Option<Self> {
23115        if Self::can_cast(syntax.kind()) {
23116            Some(Self { syntax })
23117        } else {
23118            None
23119        }
23120    }
23121    #[inline]
23122    fn syntax(&self) -> &SyntaxNode {
23123        &self.syntax
23124    }
23125}
23126impl AstNode for DisableTrigger {
23127    #[inline]
23128    fn can_cast(kind: SyntaxKind) -> bool {
23129        kind == SyntaxKind::DISABLE_TRIGGER
23130    }
23131    #[inline]
23132    fn cast(syntax: SyntaxNode) -> Option<Self> {
23133        if Self::can_cast(syntax.kind()) {
23134            Some(Self { syntax })
23135        } else {
23136            None
23137        }
23138    }
23139    #[inline]
23140    fn syntax(&self) -> &SyntaxNode {
23141        &self.syntax
23142    }
23143}
23144impl AstNode for Discard {
23145    #[inline]
23146    fn can_cast(kind: SyntaxKind) -> bool {
23147        kind == SyntaxKind::DISCARD
23148    }
23149    #[inline]
23150    fn cast(syntax: SyntaxNode) -> Option<Self> {
23151        if Self::can_cast(syntax.kind()) {
23152            Some(Self { syntax })
23153        } else {
23154            None
23155        }
23156    }
23157    #[inline]
23158    fn syntax(&self) -> &SyntaxNode {
23159        &self.syntax
23160    }
23161}
23162impl AstNode for DistinctClause {
23163    #[inline]
23164    fn can_cast(kind: SyntaxKind) -> bool {
23165        kind == SyntaxKind::DISTINCT_CLAUSE
23166    }
23167    #[inline]
23168    fn cast(syntax: SyntaxNode) -> Option<Self> {
23169        if Self::can_cast(syntax.kind()) {
23170            Some(Self { syntax })
23171        } else {
23172            None
23173        }
23174    }
23175    #[inline]
23176    fn syntax(&self) -> &SyntaxNode {
23177        &self.syntax
23178    }
23179}
23180impl AstNode for Do {
23181    #[inline]
23182    fn can_cast(kind: SyntaxKind) -> bool {
23183        kind == SyntaxKind::DO
23184    }
23185    #[inline]
23186    fn cast(syntax: SyntaxNode) -> Option<Self> {
23187        if Self::can_cast(syntax.kind()) {
23188            Some(Self { syntax })
23189        } else {
23190            None
23191        }
23192    }
23193    #[inline]
23194    fn syntax(&self) -> &SyntaxNode {
23195        &self.syntax
23196    }
23197}
23198impl AstNode for DoubleType {
23199    #[inline]
23200    fn can_cast(kind: SyntaxKind) -> bool {
23201        kind == SyntaxKind::DOUBLE_TYPE
23202    }
23203    #[inline]
23204    fn cast(syntax: SyntaxNode) -> Option<Self> {
23205        if Self::can_cast(syntax.kind()) {
23206            Some(Self { syntax })
23207        } else {
23208            None
23209        }
23210    }
23211    #[inline]
23212    fn syntax(&self) -> &SyntaxNode {
23213        &self.syntax
23214    }
23215}
23216impl AstNode for Drop {
23217    #[inline]
23218    fn can_cast(kind: SyntaxKind) -> bool {
23219        kind == SyntaxKind::DROP
23220    }
23221    #[inline]
23222    fn cast(syntax: SyntaxNode) -> Option<Self> {
23223        if Self::can_cast(syntax.kind()) {
23224            Some(Self { syntax })
23225        } else {
23226            None
23227        }
23228    }
23229    #[inline]
23230    fn syntax(&self) -> &SyntaxNode {
23231        &self.syntax
23232    }
23233}
23234impl AstNode for DropAccessMethod {
23235    #[inline]
23236    fn can_cast(kind: SyntaxKind) -> bool {
23237        kind == SyntaxKind::DROP_ACCESS_METHOD
23238    }
23239    #[inline]
23240    fn cast(syntax: SyntaxNode) -> Option<Self> {
23241        if Self::can_cast(syntax.kind()) {
23242            Some(Self { syntax })
23243        } else {
23244            None
23245        }
23246    }
23247    #[inline]
23248    fn syntax(&self) -> &SyntaxNode {
23249        &self.syntax
23250    }
23251}
23252impl AstNode for DropAggregate {
23253    #[inline]
23254    fn can_cast(kind: SyntaxKind) -> bool {
23255        kind == SyntaxKind::DROP_AGGREGATE
23256    }
23257    #[inline]
23258    fn cast(syntax: SyntaxNode) -> Option<Self> {
23259        if Self::can_cast(syntax.kind()) {
23260            Some(Self { syntax })
23261        } else {
23262            None
23263        }
23264    }
23265    #[inline]
23266    fn syntax(&self) -> &SyntaxNode {
23267        &self.syntax
23268    }
23269}
23270impl AstNode for DropAttribute {
23271    #[inline]
23272    fn can_cast(kind: SyntaxKind) -> bool {
23273        kind == SyntaxKind::DROP_ATTRIBUTE
23274    }
23275    #[inline]
23276    fn cast(syntax: SyntaxNode) -> Option<Self> {
23277        if Self::can_cast(syntax.kind()) {
23278            Some(Self { syntax })
23279        } else {
23280            None
23281        }
23282    }
23283    #[inline]
23284    fn syntax(&self) -> &SyntaxNode {
23285        &self.syntax
23286    }
23287}
23288impl AstNode for DropCast {
23289    #[inline]
23290    fn can_cast(kind: SyntaxKind) -> bool {
23291        kind == SyntaxKind::DROP_CAST
23292    }
23293    #[inline]
23294    fn cast(syntax: SyntaxNode) -> Option<Self> {
23295        if Self::can_cast(syntax.kind()) {
23296            Some(Self { syntax })
23297        } else {
23298            None
23299        }
23300    }
23301    #[inline]
23302    fn syntax(&self) -> &SyntaxNode {
23303        &self.syntax
23304    }
23305}
23306impl AstNode for DropCollation {
23307    #[inline]
23308    fn can_cast(kind: SyntaxKind) -> bool {
23309        kind == SyntaxKind::DROP_COLLATION
23310    }
23311    #[inline]
23312    fn cast(syntax: SyntaxNode) -> Option<Self> {
23313        if Self::can_cast(syntax.kind()) {
23314            Some(Self { syntax })
23315        } else {
23316            None
23317        }
23318    }
23319    #[inline]
23320    fn syntax(&self) -> &SyntaxNode {
23321        &self.syntax
23322    }
23323}
23324impl AstNode for DropColumn {
23325    #[inline]
23326    fn can_cast(kind: SyntaxKind) -> bool {
23327        kind == SyntaxKind::DROP_COLUMN
23328    }
23329    #[inline]
23330    fn cast(syntax: SyntaxNode) -> Option<Self> {
23331        if Self::can_cast(syntax.kind()) {
23332            Some(Self { syntax })
23333        } else {
23334            None
23335        }
23336    }
23337    #[inline]
23338    fn syntax(&self) -> &SyntaxNode {
23339        &self.syntax
23340    }
23341}
23342impl AstNode for DropConstraint {
23343    #[inline]
23344    fn can_cast(kind: SyntaxKind) -> bool {
23345        kind == SyntaxKind::DROP_CONSTRAINT
23346    }
23347    #[inline]
23348    fn cast(syntax: SyntaxNode) -> Option<Self> {
23349        if Self::can_cast(syntax.kind()) {
23350            Some(Self { syntax })
23351        } else {
23352            None
23353        }
23354    }
23355    #[inline]
23356    fn syntax(&self) -> &SyntaxNode {
23357        &self.syntax
23358    }
23359}
23360impl AstNode for DropConversion {
23361    #[inline]
23362    fn can_cast(kind: SyntaxKind) -> bool {
23363        kind == SyntaxKind::DROP_CONVERSION
23364    }
23365    #[inline]
23366    fn cast(syntax: SyntaxNode) -> Option<Self> {
23367        if Self::can_cast(syntax.kind()) {
23368            Some(Self { syntax })
23369        } else {
23370            None
23371        }
23372    }
23373    #[inline]
23374    fn syntax(&self) -> &SyntaxNode {
23375        &self.syntax
23376    }
23377}
23378impl AstNode for DropDatabase {
23379    #[inline]
23380    fn can_cast(kind: SyntaxKind) -> bool {
23381        kind == SyntaxKind::DROP_DATABASE
23382    }
23383    #[inline]
23384    fn cast(syntax: SyntaxNode) -> Option<Self> {
23385        if Self::can_cast(syntax.kind()) {
23386            Some(Self { syntax })
23387        } else {
23388            None
23389        }
23390    }
23391    #[inline]
23392    fn syntax(&self) -> &SyntaxNode {
23393        &self.syntax
23394    }
23395}
23396impl AstNode for DropDefault {
23397    #[inline]
23398    fn can_cast(kind: SyntaxKind) -> bool {
23399        kind == SyntaxKind::DROP_DEFAULT
23400    }
23401    #[inline]
23402    fn cast(syntax: SyntaxNode) -> Option<Self> {
23403        if Self::can_cast(syntax.kind()) {
23404            Some(Self { syntax })
23405        } else {
23406            None
23407        }
23408    }
23409    #[inline]
23410    fn syntax(&self) -> &SyntaxNode {
23411        &self.syntax
23412    }
23413}
23414impl AstNode for DropDomain {
23415    #[inline]
23416    fn can_cast(kind: SyntaxKind) -> bool {
23417        kind == SyntaxKind::DROP_DOMAIN
23418    }
23419    #[inline]
23420    fn cast(syntax: SyntaxNode) -> Option<Self> {
23421        if Self::can_cast(syntax.kind()) {
23422            Some(Self { syntax })
23423        } else {
23424            None
23425        }
23426    }
23427    #[inline]
23428    fn syntax(&self) -> &SyntaxNode {
23429        &self.syntax
23430    }
23431}
23432impl AstNode for DropEdgeTables {
23433    #[inline]
23434    fn can_cast(kind: SyntaxKind) -> bool {
23435        kind == SyntaxKind::DROP_EDGE_TABLES
23436    }
23437    #[inline]
23438    fn cast(syntax: SyntaxNode) -> Option<Self> {
23439        if Self::can_cast(syntax.kind()) {
23440            Some(Self { syntax })
23441        } else {
23442            None
23443        }
23444    }
23445    #[inline]
23446    fn syntax(&self) -> &SyntaxNode {
23447        &self.syntax
23448    }
23449}
23450impl AstNode for DropEventTrigger {
23451    #[inline]
23452    fn can_cast(kind: SyntaxKind) -> bool {
23453        kind == SyntaxKind::DROP_EVENT_TRIGGER
23454    }
23455    #[inline]
23456    fn cast(syntax: SyntaxNode) -> Option<Self> {
23457        if Self::can_cast(syntax.kind()) {
23458            Some(Self { syntax })
23459        } else {
23460            None
23461        }
23462    }
23463    #[inline]
23464    fn syntax(&self) -> &SyntaxNode {
23465        &self.syntax
23466    }
23467}
23468impl AstNode for DropExpression {
23469    #[inline]
23470    fn can_cast(kind: SyntaxKind) -> bool {
23471        kind == SyntaxKind::DROP_EXPRESSION
23472    }
23473    #[inline]
23474    fn cast(syntax: SyntaxNode) -> Option<Self> {
23475        if Self::can_cast(syntax.kind()) {
23476            Some(Self { syntax })
23477        } else {
23478            None
23479        }
23480    }
23481    #[inline]
23482    fn syntax(&self) -> &SyntaxNode {
23483        &self.syntax
23484    }
23485}
23486impl AstNode for DropExtension {
23487    #[inline]
23488    fn can_cast(kind: SyntaxKind) -> bool {
23489        kind == SyntaxKind::DROP_EXTENSION
23490    }
23491    #[inline]
23492    fn cast(syntax: SyntaxNode) -> Option<Self> {
23493        if Self::can_cast(syntax.kind()) {
23494            Some(Self { syntax })
23495        } else {
23496            None
23497        }
23498    }
23499    #[inline]
23500    fn syntax(&self) -> &SyntaxNode {
23501        &self.syntax
23502    }
23503}
23504impl AstNode for DropForeignDataWrapper {
23505    #[inline]
23506    fn can_cast(kind: SyntaxKind) -> bool {
23507        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
23508    }
23509    #[inline]
23510    fn cast(syntax: SyntaxNode) -> Option<Self> {
23511        if Self::can_cast(syntax.kind()) {
23512            Some(Self { syntax })
23513        } else {
23514            None
23515        }
23516    }
23517    #[inline]
23518    fn syntax(&self) -> &SyntaxNode {
23519        &self.syntax
23520    }
23521}
23522impl AstNode for DropForeignTable {
23523    #[inline]
23524    fn can_cast(kind: SyntaxKind) -> bool {
23525        kind == SyntaxKind::DROP_FOREIGN_TABLE
23526    }
23527    #[inline]
23528    fn cast(syntax: SyntaxNode) -> Option<Self> {
23529        if Self::can_cast(syntax.kind()) {
23530            Some(Self { syntax })
23531        } else {
23532            None
23533        }
23534    }
23535    #[inline]
23536    fn syntax(&self) -> &SyntaxNode {
23537        &self.syntax
23538    }
23539}
23540impl AstNode for DropFunction {
23541    #[inline]
23542    fn can_cast(kind: SyntaxKind) -> bool {
23543        kind == SyntaxKind::DROP_FUNCTION
23544    }
23545    #[inline]
23546    fn cast(syntax: SyntaxNode) -> Option<Self> {
23547        if Self::can_cast(syntax.kind()) {
23548            Some(Self { syntax })
23549        } else {
23550            None
23551        }
23552    }
23553    #[inline]
23554    fn syntax(&self) -> &SyntaxNode {
23555        &self.syntax
23556    }
23557}
23558impl AstNode for DropGroup {
23559    #[inline]
23560    fn can_cast(kind: SyntaxKind) -> bool {
23561        kind == SyntaxKind::DROP_GROUP
23562    }
23563    #[inline]
23564    fn cast(syntax: SyntaxNode) -> Option<Self> {
23565        if Self::can_cast(syntax.kind()) {
23566            Some(Self { syntax })
23567        } else {
23568            None
23569        }
23570    }
23571    #[inline]
23572    fn syntax(&self) -> &SyntaxNode {
23573        &self.syntax
23574    }
23575}
23576impl AstNode for DropIdentity {
23577    #[inline]
23578    fn can_cast(kind: SyntaxKind) -> bool {
23579        kind == SyntaxKind::DROP_IDENTITY
23580    }
23581    #[inline]
23582    fn cast(syntax: SyntaxNode) -> Option<Self> {
23583        if Self::can_cast(syntax.kind()) {
23584            Some(Self { syntax })
23585        } else {
23586            None
23587        }
23588    }
23589    #[inline]
23590    fn syntax(&self) -> &SyntaxNode {
23591        &self.syntax
23592    }
23593}
23594impl AstNode for DropIndex {
23595    #[inline]
23596    fn can_cast(kind: SyntaxKind) -> bool {
23597        kind == SyntaxKind::DROP_INDEX
23598    }
23599    #[inline]
23600    fn cast(syntax: SyntaxNode) -> Option<Self> {
23601        if Self::can_cast(syntax.kind()) {
23602            Some(Self { syntax })
23603        } else {
23604            None
23605        }
23606    }
23607    #[inline]
23608    fn syntax(&self) -> &SyntaxNode {
23609        &self.syntax
23610    }
23611}
23612impl AstNode for DropLanguage {
23613    #[inline]
23614    fn can_cast(kind: SyntaxKind) -> bool {
23615        kind == SyntaxKind::DROP_LANGUAGE
23616    }
23617    #[inline]
23618    fn cast(syntax: SyntaxNode) -> Option<Self> {
23619        if Self::can_cast(syntax.kind()) {
23620            Some(Self { syntax })
23621        } else {
23622            None
23623        }
23624    }
23625    #[inline]
23626    fn syntax(&self) -> &SyntaxNode {
23627        &self.syntax
23628    }
23629}
23630impl AstNode for DropMaterializedView {
23631    #[inline]
23632    fn can_cast(kind: SyntaxKind) -> bool {
23633        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
23634    }
23635    #[inline]
23636    fn cast(syntax: SyntaxNode) -> Option<Self> {
23637        if Self::can_cast(syntax.kind()) {
23638            Some(Self { syntax })
23639        } else {
23640            None
23641        }
23642    }
23643    #[inline]
23644    fn syntax(&self) -> &SyntaxNode {
23645        &self.syntax
23646    }
23647}
23648impl AstNode for DropNotNull {
23649    #[inline]
23650    fn can_cast(kind: SyntaxKind) -> bool {
23651        kind == SyntaxKind::DROP_NOT_NULL
23652    }
23653    #[inline]
23654    fn cast(syntax: SyntaxNode) -> Option<Self> {
23655        if Self::can_cast(syntax.kind()) {
23656            Some(Self { syntax })
23657        } else {
23658            None
23659        }
23660    }
23661    #[inline]
23662    fn syntax(&self) -> &SyntaxNode {
23663        &self.syntax
23664    }
23665}
23666impl AstNode for DropOpClassOption {
23667    #[inline]
23668    fn can_cast(kind: SyntaxKind) -> bool {
23669        kind == SyntaxKind::DROP_OP_CLASS_OPTION
23670    }
23671    #[inline]
23672    fn cast(syntax: SyntaxNode) -> Option<Self> {
23673        if Self::can_cast(syntax.kind()) {
23674            Some(Self { syntax })
23675        } else {
23676            None
23677        }
23678    }
23679    #[inline]
23680    fn syntax(&self) -> &SyntaxNode {
23681        &self.syntax
23682    }
23683}
23684impl AstNode for DropOpClassOptionList {
23685    #[inline]
23686    fn can_cast(kind: SyntaxKind) -> bool {
23687        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
23688    }
23689    #[inline]
23690    fn cast(syntax: SyntaxNode) -> Option<Self> {
23691        if Self::can_cast(syntax.kind()) {
23692            Some(Self { syntax })
23693        } else {
23694            None
23695        }
23696    }
23697    #[inline]
23698    fn syntax(&self) -> &SyntaxNode {
23699        &self.syntax
23700    }
23701}
23702impl AstNode for DropOpClassOptions {
23703    #[inline]
23704    fn can_cast(kind: SyntaxKind) -> bool {
23705        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
23706    }
23707    #[inline]
23708    fn cast(syntax: SyntaxNode) -> Option<Self> {
23709        if Self::can_cast(syntax.kind()) {
23710            Some(Self { syntax })
23711        } else {
23712            None
23713        }
23714    }
23715    #[inline]
23716    fn syntax(&self) -> &SyntaxNode {
23717        &self.syntax
23718    }
23719}
23720impl AstNode for DropOperator {
23721    #[inline]
23722    fn can_cast(kind: SyntaxKind) -> bool {
23723        kind == SyntaxKind::DROP_OPERATOR
23724    }
23725    #[inline]
23726    fn cast(syntax: SyntaxNode) -> Option<Self> {
23727        if Self::can_cast(syntax.kind()) {
23728            Some(Self { syntax })
23729        } else {
23730            None
23731        }
23732    }
23733    #[inline]
23734    fn syntax(&self) -> &SyntaxNode {
23735        &self.syntax
23736    }
23737}
23738impl AstNode for DropOperatorClass {
23739    #[inline]
23740    fn can_cast(kind: SyntaxKind) -> bool {
23741        kind == SyntaxKind::DROP_OPERATOR_CLASS
23742    }
23743    #[inline]
23744    fn cast(syntax: SyntaxNode) -> Option<Self> {
23745        if Self::can_cast(syntax.kind()) {
23746            Some(Self { syntax })
23747        } else {
23748            None
23749        }
23750    }
23751    #[inline]
23752    fn syntax(&self) -> &SyntaxNode {
23753        &self.syntax
23754    }
23755}
23756impl AstNode for DropOperatorFamily {
23757    #[inline]
23758    fn can_cast(kind: SyntaxKind) -> bool {
23759        kind == SyntaxKind::DROP_OPERATOR_FAMILY
23760    }
23761    #[inline]
23762    fn cast(syntax: SyntaxNode) -> Option<Self> {
23763        if Self::can_cast(syntax.kind()) {
23764            Some(Self { syntax })
23765        } else {
23766            None
23767        }
23768    }
23769    #[inline]
23770    fn syntax(&self) -> &SyntaxNode {
23771        &self.syntax
23772    }
23773}
23774impl AstNode for DropOwned {
23775    #[inline]
23776    fn can_cast(kind: SyntaxKind) -> bool {
23777        kind == SyntaxKind::DROP_OWNED
23778    }
23779    #[inline]
23780    fn cast(syntax: SyntaxNode) -> Option<Self> {
23781        if Self::can_cast(syntax.kind()) {
23782            Some(Self { syntax })
23783        } else {
23784            None
23785        }
23786    }
23787    #[inline]
23788    fn syntax(&self) -> &SyntaxNode {
23789        &self.syntax
23790    }
23791}
23792impl AstNode for DropPolicy {
23793    #[inline]
23794    fn can_cast(kind: SyntaxKind) -> bool {
23795        kind == SyntaxKind::DROP_POLICY
23796    }
23797    #[inline]
23798    fn cast(syntax: SyntaxNode) -> Option<Self> {
23799        if Self::can_cast(syntax.kind()) {
23800            Some(Self { syntax })
23801        } else {
23802            None
23803        }
23804    }
23805    #[inline]
23806    fn syntax(&self) -> &SyntaxNode {
23807        &self.syntax
23808    }
23809}
23810impl AstNode for DropProcedure {
23811    #[inline]
23812    fn can_cast(kind: SyntaxKind) -> bool {
23813        kind == SyntaxKind::DROP_PROCEDURE
23814    }
23815    #[inline]
23816    fn cast(syntax: SyntaxNode) -> Option<Self> {
23817        if Self::can_cast(syntax.kind()) {
23818            Some(Self { syntax })
23819        } else {
23820            None
23821        }
23822    }
23823    #[inline]
23824    fn syntax(&self) -> &SyntaxNode {
23825        &self.syntax
23826    }
23827}
23828impl AstNode for DropPropertyGraph {
23829    #[inline]
23830    fn can_cast(kind: SyntaxKind) -> bool {
23831        kind == SyntaxKind::DROP_PROPERTY_GRAPH
23832    }
23833    #[inline]
23834    fn cast(syntax: SyntaxNode) -> Option<Self> {
23835        if Self::can_cast(syntax.kind()) {
23836            Some(Self { syntax })
23837        } else {
23838            None
23839        }
23840    }
23841    #[inline]
23842    fn syntax(&self) -> &SyntaxNode {
23843        &self.syntax
23844    }
23845}
23846impl AstNode for DropPublication {
23847    #[inline]
23848    fn can_cast(kind: SyntaxKind) -> bool {
23849        kind == SyntaxKind::DROP_PUBLICATION
23850    }
23851    #[inline]
23852    fn cast(syntax: SyntaxNode) -> Option<Self> {
23853        if Self::can_cast(syntax.kind()) {
23854            Some(Self { syntax })
23855        } else {
23856            None
23857        }
23858    }
23859    #[inline]
23860    fn syntax(&self) -> &SyntaxNode {
23861        &self.syntax
23862    }
23863}
23864impl AstNode for DropRole {
23865    #[inline]
23866    fn can_cast(kind: SyntaxKind) -> bool {
23867        kind == SyntaxKind::DROP_ROLE
23868    }
23869    #[inline]
23870    fn cast(syntax: SyntaxNode) -> Option<Self> {
23871        if Self::can_cast(syntax.kind()) {
23872            Some(Self { syntax })
23873        } else {
23874            None
23875        }
23876    }
23877    #[inline]
23878    fn syntax(&self) -> &SyntaxNode {
23879        &self.syntax
23880    }
23881}
23882impl AstNode for DropRoutine {
23883    #[inline]
23884    fn can_cast(kind: SyntaxKind) -> bool {
23885        kind == SyntaxKind::DROP_ROUTINE
23886    }
23887    #[inline]
23888    fn cast(syntax: SyntaxNode) -> Option<Self> {
23889        if Self::can_cast(syntax.kind()) {
23890            Some(Self { syntax })
23891        } else {
23892            None
23893        }
23894    }
23895    #[inline]
23896    fn syntax(&self) -> &SyntaxNode {
23897        &self.syntax
23898    }
23899}
23900impl AstNode for DropRule {
23901    #[inline]
23902    fn can_cast(kind: SyntaxKind) -> bool {
23903        kind == SyntaxKind::DROP_RULE
23904    }
23905    #[inline]
23906    fn cast(syntax: SyntaxNode) -> Option<Self> {
23907        if Self::can_cast(syntax.kind()) {
23908            Some(Self { syntax })
23909        } else {
23910            None
23911        }
23912    }
23913    #[inline]
23914    fn syntax(&self) -> &SyntaxNode {
23915        &self.syntax
23916    }
23917}
23918impl AstNode for DropSchema {
23919    #[inline]
23920    fn can_cast(kind: SyntaxKind) -> bool {
23921        kind == SyntaxKind::DROP_SCHEMA
23922    }
23923    #[inline]
23924    fn cast(syntax: SyntaxNode) -> Option<Self> {
23925        if Self::can_cast(syntax.kind()) {
23926            Some(Self { syntax })
23927        } else {
23928            None
23929        }
23930    }
23931    #[inline]
23932    fn syntax(&self) -> &SyntaxNode {
23933        &self.syntax
23934    }
23935}
23936impl AstNode for DropSequence {
23937    #[inline]
23938    fn can_cast(kind: SyntaxKind) -> bool {
23939        kind == SyntaxKind::DROP_SEQUENCE
23940    }
23941    #[inline]
23942    fn cast(syntax: SyntaxNode) -> Option<Self> {
23943        if Self::can_cast(syntax.kind()) {
23944            Some(Self { syntax })
23945        } else {
23946            None
23947        }
23948    }
23949    #[inline]
23950    fn syntax(&self) -> &SyntaxNode {
23951        &self.syntax
23952    }
23953}
23954impl AstNode for DropServer {
23955    #[inline]
23956    fn can_cast(kind: SyntaxKind) -> bool {
23957        kind == SyntaxKind::DROP_SERVER
23958    }
23959    #[inline]
23960    fn cast(syntax: SyntaxNode) -> Option<Self> {
23961        if Self::can_cast(syntax.kind()) {
23962            Some(Self { syntax })
23963        } else {
23964            None
23965        }
23966    }
23967    #[inline]
23968    fn syntax(&self) -> &SyntaxNode {
23969        &self.syntax
23970    }
23971}
23972impl AstNode for DropStatistics {
23973    #[inline]
23974    fn can_cast(kind: SyntaxKind) -> bool {
23975        kind == SyntaxKind::DROP_STATISTICS
23976    }
23977    #[inline]
23978    fn cast(syntax: SyntaxNode) -> Option<Self> {
23979        if Self::can_cast(syntax.kind()) {
23980            Some(Self { syntax })
23981        } else {
23982            None
23983        }
23984    }
23985    #[inline]
23986    fn syntax(&self) -> &SyntaxNode {
23987        &self.syntax
23988    }
23989}
23990impl AstNode for DropSubscription {
23991    #[inline]
23992    fn can_cast(kind: SyntaxKind) -> bool {
23993        kind == SyntaxKind::DROP_SUBSCRIPTION
23994    }
23995    #[inline]
23996    fn cast(syntax: SyntaxNode) -> Option<Self> {
23997        if Self::can_cast(syntax.kind()) {
23998            Some(Self { syntax })
23999        } else {
24000            None
24001        }
24002    }
24003    #[inline]
24004    fn syntax(&self) -> &SyntaxNode {
24005        &self.syntax
24006    }
24007}
24008impl AstNode for DropTable {
24009    #[inline]
24010    fn can_cast(kind: SyntaxKind) -> bool {
24011        kind == SyntaxKind::DROP_TABLE
24012    }
24013    #[inline]
24014    fn cast(syntax: SyntaxNode) -> Option<Self> {
24015        if Self::can_cast(syntax.kind()) {
24016            Some(Self { syntax })
24017        } else {
24018            None
24019        }
24020    }
24021    #[inline]
24022    fn syntax(&self) -> &SyntaxNode {
24023        &self.syntax
24024    }
24025}
24026impl AstNode for DropTablespace {
24027    #[inline]
24028    fn can_cast(kind: SyntaxKind) -> bool {
24029        kind == SyntaxKind::DROP_TABLESPACE
24030    }
24031    #[inline]
24032    fn cast(syntax: SyntaxNode) -> Option<Self> {
24033        if Self::can_cast(syntax.kind()) {
24034            Some(Self { syntax })
24035        } else {
24036            None
24037        }
24038    }
24039    #[inline]
24040    fn syntax(&self) -> &SyntaxNode {
24041        &self.syntax
24042    }
24043}
24044impl AstNode for DropTextSearchConfig {
24045    #[inline]
24046    fn can_cast(kind: SyntaxKind) -> bool {
24047        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
24048    }
24049    #[inline]
24050    fn cast(syntax: SyntaxNode) -> Option<Self> {
24051        if Self::can_cast(syntax.kind()) {
24052            Some(Self { syntax })
24053        } else {
24054            None
24055        }
24056    }
24057    #[inline]
24058    fn syntax(&self) -> &SyntaxNode {
24059        &self.syntax
24060    }
24061}
24062impl AstNode for DropTextSearchDict {
24063    #[inline]
24064    fn can_cast(kind: SyntaxKind) -> bool {
24065        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
24066    }
24067    #[inline]
24068    fn cast(syntax: SyntaxNode) -> Option<Self> {
24069        if Self::can_cast(syntax.kind()) {
24070            Some(Self { syntax })
24071        } else {
24072            None
24073        }
24074    }
24075    #[inline]
24076    fn syntax(&self) -> &SyntaxNode {
24077        &self.syntax
24078    }
24079}
24080impl AstNode for DropTextSearchParser {
24081    #[inline]
24082    fn can_cast(kind: SyntaxKind) -> bool {
24083        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
24084    }
24085    #[inline]
24086    fn cast(syntax: SyntaxNode) -> Option<Self> {
24087        if Self::can_cast(syntax.kind()) {
24088            Some(Self { syntax })
24089        } else {
24090            None
24091        }
24092    }
24093    #[inline]
24094    fn syntax(&self) -> &SyntaxNode {
24095        &self.syntax
24096    }
24097}
24098impl AstNode for DropTextSearchTemplate {
24099    #[inline]
24100    fn can_cast(kind: SyntaxKind) -> bool {
24101        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
24102    }
24103    #[inline]
24104    fn cast(syntax: SyntaxNode) -> Option<Self> {
24105        if Self::can_cast(syntax.kind()) {
24106            Some(Self { syntax })
24107        } else {
24108            None
24109        }
24110    }
24111    #[inline]
24112    fn syntax(&self) -> &SyntaxNode {
24113        &self.syntax
24114    }
24115}
24116impl AstNode for DropTransform {
24117    #[inline]
24118    fn can_cast(kind: SyntaxKind) -> bool {
24119        kind == SyntaxKind::DROP_TRANSFORM
24120    }
24121    #[inline]
24122    fn cast(syntax: SyntaxNode) -> Option<Self> {
24123        if Self::can_cast(syntax.kind()) {
24124            Some(Self { syntax })
24125        } else {
24126            None
24127        }
24128    }
24129    #[inline]
24130    fn syntax(&self) -> &SyntaxNode {
24131        &self.syntax
24132    }
24133}
24134impl AstNode for DropTrigger {
24135    #[inline]
24136    fn can_cast(kind: SyntaxKind) -> bool {
24137        kind == SyntaxKind::DROP_TRIGGER
24138    }
24139    #[inline]
24140    fn cast(syntax: SyntaxNode) -> Option<Self> {
24141        if Self::can_cast(syntax.kind()) {
24142            Some(Self { syntax })
24143        } else {
24144            None
24145        }
24146    }
24147    #[inline]
24148    fn syntax(&self) -> &SyntaxNode {
24149        &self.syntax
24150    }
24151}
24152impl AstNode for DropType {
24153    #[inline]
24154    fn can_cast(kind: SyntaxKind) -> bool {
24155        kind == SyntaxKind::DROP_TYPE
24156    }
24157    #[inline]
24158    fn cast(syntax: SyntaxNode) -> Option<Self> {
24159        if Self::can_cast(syntax.kind()) {
24160            Some(Self { syntax })
24161        } else {
24162            None
24163        }
24164    }
24165    #[inline]
24166    fn syntax(&self) -> &SyntaxNode {
24167        &self.syntax
24168    }
24169}
24170impl AstNode for DropUser {
24171    #[inline]
24172    fn can_cast(kind: SyntaxKind) -> bool {
24173        kind == SyntaxKind::DROP_USER
24174    }
24175    #[inline]
24176    fn cast(syntax: SyntaxNode) -> Option<Self> {
24177        if Self::can_cast(syntax.kind()) {
24178            Some(Self { syntax })
24179        } else {
24180            None
24181        }
24182    }
24183    #[inline]
24184    fn syntax(&self) -> &SyntaxNode {
24185        &self.syntax
24186    }
24187}
24188impl AstNode for DropUserMapping {
24189    #[inline]
24190    fn can_cast(kind: SyntaxKind) -> bool {
24191        kind == SyntaxKind::DROP_USER_MAPPING
24192    }
24193    #[inline]
24194    fn cast(syntax: SyntaxNode) -> Option<Self> {
24195        if Self::can_cast(syntax.kind()) {
24196            Some(Self { syntax })
24197        } else {
24198            None
24199        }
24200    }
24201    #[inline]
24202    fn syntax(&self) -> &SyntaxNode {
24203        &self.syntax
24204    }
24205}
24206impl AstNode for DropVertexEdgeLabel {
24207    #[inline]
24208    fn can_cast(kind: SyntaxKind) -> bool {
24209        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
24210    }
24211    #[inline]
24212    fn cast(syntax: SyntaxNode) -> Option<Self> {
24213        if Self::can_cast(syntax.kind()) {
24214            Some(Self { syntax })
24215        } else {
24216            None
24217        }
24218    }
24219    #[inline]
24220    fn syntax(&self) -> &SyntaxNode {
24221        &self.syntax
24222    }
24223}
24224impl AstNode for DropVertexEdgeLabelProperties {
24225    #[inline]
24226    fn can_cast(kind: SyntaxKind) -> bool {
24227        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
24228    }
24229    #[inline]
24230    fn cast(syntax: SyntaxNode) -> Option<Self> {
24231        if Self::can_cast(syntax.kind()) {
24232            Some(Self { syntax })
24233        } else {
24234            None
24235        }
24236    }
24237    #[inline]
24238    fn syntax(&self) -> &SyntaxNode {
24239        &self.syntax
24240    }
24241}
24242impl AstNode for DropVertexTables {
24243    #[inline]
24244    fn can_cast(kind: SyntaxKind) -> bool {
24245        kind == SyntaxKind::DROP_VERTEX_TABLES
24246    }
24247    #[inline]
24248    fn cast(syntax: SyntaxNode) -> Option<Self> {
24249        if Self::can_cast(syntax.kind()) {
24250            Some(Self { syntax })
24251        } else {
24252            None
24253        }
24254    }
24255    #[inline]
24256    fn syntax(&self) -> &SyntaxNode {
24257        &self.syntax
24258    }
24259}
24260impl AstNode for DropView {
24261    #[inline]
24262    fn can_cast(kind: SyntaxKind) -> bool {
24263        kind == SyntaxKind::DROP_VIEW
24264    }
24265    #[inline]
24266    fn cast(syntax: SyntaxNode) -> Option<Self> {
24267        if Self::can_cast(syntax.kind()) {
24268            Some(Self { syntax })
24269        } else {
24270            None
24271        }
24272    }
24273    #[inline]
24274    fn syntax(&self) -> &SyntaxNode {
24275        &self.syntax
24276    }
24277}
24278impl AstNode for EdgeAny {
24279    #[inline]
24280    fn can_cast(kind: SyntaxKind) -> bool {
24281        kind == SyntaxKind::EDGE_ANY
24282    }
24283    #[inline]
24284    fn cast(syntax: SyntaxNode) -> Option<Self> {
24285        if Self::can_cast(syntax.kind()) {
24286            Some(Self { syntax })
24287        } else {
24288            None
24289        }
24290    }
24291    #[inline]
24292    fn syntax(&self) -> &SyntaxNode {
24293        &self.syntax
24294    }
24295}
24296impl AstNode for EdgeLeft {
24297    #[inline]
24298    fn can_cast(kind: SyntaxKind) -> bool {
24299        kind == SyntaxKind::EDGE_LEFT
24300    }
24301    #[inline]
24302    fn cast(syntax: SyntaxNode) -> Option<Self> {
24303        if Self::can_cast(syntax.kind()) {
24304            Some(Self { syntax })
24305        } else {
24306            None
24307        }
24308    }
24309    #[inline]
24310    fn syntax(&self) -> &SyntaxNode {
24311        &self.syntax
24312    }
24313}
24314impl AstNode for EdgeRight {
24315    #[inline]
24316    fn can_cast(kind: SyntaxKind) -> bool {
24317        kind == SyntaxKind::EDGE_RIGHT
24318    }
24319    #[inline]
24320    fn cast(syntax: SyntaxNode) -> Option<Self> {
24321        if Self::can_cast(syntax.kind()) {
24322            Some(Self { syntax })
24323        } else {
24324            None
24325        }
24326    }
24327    #[inline]
24328    fn syntax(&self) -> &SyntaxNode {
24329        &self.syntax
24330    }
24331}
24332impl AstNode for EdgeTableDef {
24333    #[inline]
24334    fn can_cast(kind: SyntaxKind) -> bool {
24335        kind == SyntaxKind::EDGE_TABLE_DEF
24336    }
24337    #[inline]
24338    fn cast(syntax: SyntaxNode) -> Option<Self> {
24339        if Self::can_cast(syntax.kind()) {
24340            Some(Self { syntax })
24341        } else {
24342            None
24343        }
24344    }
24345    #[inline]
24346    fn syntax(&self) -> &SyntaxNode {
24347        &self.syntax
24348    }
24349}
24350impl AstNode for EdgeTables {
24351    #[inline]
24352    fn can_cast(kind: SyntaxKind) -> bool {
24353        kind == SyntaxKind::EDGE_TABLES
24354    }
24355    #[inline]
24356    fn cast(syntax: SyntaxNode) -> Option<Self> {
24357        if Self::can_cast(syntax.kind()) {
24358            Some(Self { syntax })
24359        } else {
24360            None
24361        }
24362    }
24363    #[inline]
24364    fn syntax(&self) -> &SyntaxNode {
24365        &self.syntax
24366    }
24367}
24368impl AstNode for ElseClause {
24369    #[inline]
24370    fn can_cast(kind: SyntaxKind) -> bool {
24371        kind == SyntaxKind::ELSE_CLAUSE
24372    }
24373    #[inline]
24374    fn cast(syntax: SyntaxNode) -> Option<Self> {
24375        if Self::can_cast(syntax.kind()) {
24376            Some(Self { syntax })
24377        } else {
24378            None
24379        }
24380    }
24381    #[inline]
24382    fn syntax(&self) -> &SyntaxNode {
24383        &self.syntax
24384    }
24385}
24386impl AstNode for EmptyStmt {
24387    #[inline]
24388    fn can_cast(kind: SyntaxKind) -> bool {
24389        kind == SyntaxKind::EMPTY_STMT
24390    }
24391    #[inline]
24392    fn cast(syntax: SyntaxNode) -> Option<Self> {
24393        if Self::can_cast(syntax.kind()) {
24394            Some(Self { syntax })
24395        } else {
24396            None
24397        }
24398    }
24399    #[inline]
24400    fn syntax(&self) -> &SyntaxNode {
24401        &self.syntax
24402    }
24403}
24404impl AstNode for EnableAlwaysRule {
24405    #[inline]
24406    fn can_cast(kind: SyntaxKind) -> bool {
24407        kind == SyntaxKind::ENABLE_ALWAYS_RULE
24408    }
24409    #[inline]
24410    fn cast(syntax: SyntaxNode) -> Option<Self> {
24411        if Self::can_cast(syntax.kind()) {
24412            Some(Self { syntax })
24413        } else {
24414            None
24415        }
24416    }
24417    #[inline]
24418    fn syntax(&self) -> &SyntaxNode {
24419        &self.syntax
24420    }
24421}
24422impl AstNode for EnableAlwaysTrigger {
24423    #[inline]
24424    fn can_cast(kind: SyntaxKind) -> bool {
24425        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
24426    }
24427    #[inline]
24428    fn cast(syntax: SyntaxNode) -> Option<Self> {
24429        if Self::can_cast(syntax.kind()) {
24430            Some(Self { syntax })
24431        } else {
24432            None
24433        }
24434    }
24435    #[inline]
24436    fn syntax(&self) -> &SyntaxNode {
24437        &self.syntax
24438    }
24439}
24440impl AstNode for EnableReplicaRule {
24441    #[inline]
24442    fn can_cast(kind: SyntaxKind) -> bool {
24443        kind == SyntaxKind::ENABLE_REPLICA_RULE
24444    }
24445    #[inline]
24446    fn cast(syntax: SyntaxNode) -> Option<Self> {
24447        if Self::can_cast(syntax.kind()) {
24448            Some(Self { syntax })
24449        } else {
24450            None
24451        }
24452    }
24453    #[inline]
24454    fn syntax(&self) -> &SyntaxNode {
24455        &self.syntax
24456    }
24457}
24458impl AstNode for EnableReplicaTrigger {
24459    #[inline]
24460    fn can_cast(kind: SyntaxKind) -> bool {
24461        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
24462    }
24463    #[inline]
24464    fn cast(syntax: SyntaxNode) -> Option<Self> {
24465        if Self::can_cast(syntax.kind()) {
24466            Some(Self { syntax })
24467        } else {
24468            None
24469        }
24470    }
24471    #[inline]
24472    fn syntax(&self) -> &SyntaxNode {
24473        &self.syntax
24474    }
24475}
24476impl AstNode for EnableRls {
24477    #[inline]
24478    fn can_cast(kind: SyntaxKind) -> bool {
24479        kind == SyntaxKind::ENABLE_RLS
24480    }
24481    #[inline]
24482    fn cast(syntax: SyntaxNode) -> Option<Self> {
24483        if Self::can_cast(syntax.kind()) {
24484            Some(Self { syntax })
24485        } else {
24486            None
24487        }
24488    }
24489    #[inline]
24490    fn syntax(&self) -> &SyntaxNode {
24491        &self.syntax
24492    }
24493}
24494impl AstNode for EnableRule {
24495    #[inline]
24496    fn can_cast(kind: SyntaxKind) -> bool {
24497        kind == SyntaxKind::ENABLE_RULE
24498    }
24499    #[inline]
24500    fn cast(syntax: SyntaxNode) -> Option<Self> {
24501        if Self::can_cast(syntax.kind()) {
24502            Some(Self { syntax })
24503        } else {
24504            None
24505        }
24506    }
24507    #[inline]
24508    fn syntax(&self) -> &SyntaxNode {
24509        &self.syntax
24510    }
24511}
24512impl AstNode for EnableTrigger {
24513    #[inline]
24514    fn can_cast(kind: SyntaxKind) -> bool {
24515        kind == SyntaxKind::ENABLE_TRIGGER
24516    }
24517    #[inline]
24518    fn cast(syntax: SyntaxNode) -> Option<Self> {
24519        if Self::can_cast(syntax.kind()) {
24520            Some(Self { syntax })
24521        } else {
24522            None
24523        }
24524    }
24525    #[inline]
24526    fn syntax(&self) -> &SyntaxNode {
24527        &self.syntax
24528    }
24529}
24530impl AstNode for Enforced {
24531    #[inline]
24532    fn can_cast(kind: SyntaxKind) -> bool {
24533        kind == SyntaxKind::ENFORCED
24534    }
24535    #[inline]
24536    fn cast(syntax: SyntaxNode) -> Option<Self> {
24537        if Self::can_cast(syntax.kind()) {
24538            Some(Self { syntax })
24539        } else {
24540            None
24541        }
24542    }
24543    #[inline]
24544    fn syntax(&self) -> &SyntaxNode {
24545        &self.syntax
24546    }
24547}
24548impl AstNode for EventTriggerWhen {
24549    #[inline]
24550    fn can_cast(kind: SyntaxKind) -> bool {
24551        kind == SyntaxKind::EVENT_TRIGGER_WHEN
24552    }
24553    #[inline]
24554    fn cast(syntax: SyntaxNode) -> Option<Self> {
24555        if Self::can_cast(syntax.kind()) {
24556            Some(Self { syntax })
24557        } else {
24558            None
24559        }
24560    }
24561    #[inline]
24562    fn syntax(&self) -> &SyntaxNode {
24563        &self.syntax
24564    }
24565}
24566impl AstNode for EventTriggerWhenClause {
24567    #[inline]
24568    fn can_cast(kind: SyntaxKind) -> bool {
24569        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
24570    }
24571    #[inline]
24572    fn cast(syntax: SyntaxNode) -> Option<Self> {
24573        if Self::can_cast(syntax.kind()) {
24574            Some(Self { syntax })
24575        } else {
24576            None
24577        }
24578    }
24579    #[inline]
24580    fn syntax(&self) -> &SyntaxNode {
24581        &self.syntax
24582    }
24583}
24584impl AstNode for ExceptTableClause {
24585    #[inline]
24586    fn can_cast(kind: SyntaxKind) -> bool {
24587        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
24588    }
24589    #[inline]
24590    fn cast(syntax: SyntaxNode) -> Option<Self> {
24591        if Self::can_cast(syntax.kind()) {
24592            Some(Self { syntax })
24593        } else {
24594            None
24595        }
24596    }
24597    #[inline]
24598    fn syntax(&self) -> &SyntaxNode {
24599        &self.syntax
24600    }
24601}
24602impl AstNode for ExceptTables {
24603    #[inline]
24604    fn can_cast(kind: SyntaxKind) -> bool {
24605        kind == SyntaxKind::EXCEPT_TABLES
24606    }
24607    #[inline]
24608    fn cast(syntax: SyntaxNode) -> Option<Self> {
24609        if Self::can_cast(syntax.kind()) {
24610            Some(Self { syntax })
24611        } else {
24612            None
24613        }
24614    }
24615    #[inline]
24616    fn syntax(&self) -> &SyntaxNode {
24617        &self.syntax
24618    }
24619}
24620impl AstNode for ExcludeConstraint {
24621    #[inline]
24622    fn can_cast(kind: SyntaxKind) -> bool {
24623        kind == SyntaxKind::EXCLUDE_CONSTRAINT
24624    }
24625    #[inline]
24626    fn cast(syntax: SyntaxNode) -> Option<Self> {
24627        if Self::can_cast(syntax.kind()) {
24628            Some(Self { syntax })
24629        } else {
24630            None
24631        }
24632    }
24633    #[inline]
24634    fn syntax(&self) -> &SyntaxNode {
24635        &self.syntax
24636    }
24637}
24638impl AstNode for Execute {
24639    #[inline]
24640    fn can_cast(kind: SyntaxKind) -> bool {
24641        kind == SyntaxKind::EXECUTE
24642    }
24643    #[inline]
24644    fn cast(syntax: SyntaxNode) -> Option<Self> {
24645        if Self::can_cast(syntax.kind()) {
24646            Some(Self { syntax })
24647        } else {
24648            None
24649        }
24650    }
24651    #[inline]
24652    fn syntax(&self) -> &SyntaxNode {
24653        &self.syntax
24654    }
24655}
24656impl AstNode for ExistsFn {
24657    #[inline]
24658    fn can_cast(kind: SyntaxKind) -> bool {
24659        kind == SyntaxKind::EXISTS_FN
24660    }
24661    #[inline]
24662    fn cast(syntax: SyntaxNode) -> Option<Self> {
24663        if Self::can_cast(syntax.kind()) {
24664            Some(Self { syntax })
24665        } else {
24666            None
24667        }
24668    }
24669    #[inline]
24670    fn syntax(&self) -> &SyntaxNode {
24671        &self.syntax
24672    }
24673}
24674impl AstNode for Explain {
24675    #[inline]
24676    fn can_cast(kind: SyntaxKind) -> bool {
24677        kind == SyntaxKind::EXPLAIN
24678    }
24679    #[inline]
24680    fn cast(syntax: SyntaxNode) -> Option<Self> {
24681        if Self::can_cast(syntax.kind()) {
24682            Some(Self { syntax })
24683        } else {
24684            None
24685        }
24686    }
24687    #[inline]
24688    fn syntax(&self) -> &SyntaxNode {
24689        &self.syntax
24690    }
24691}
24692impl AstNode for ExprAsName {
24693    #[inline]
24694    fn can_cast(kind: SyntaxKind) -> bool {
24695        kind == SyntaxKind::EXPR_AS_NAME
24696    }
24697    #[inline]
24698    fn cast(syntax: SyntaxNode) -> Option<Self> {
24699        if Self::can_cast(syntax.kind()) {
24700            Some(Self { syntax })
24701        } else {
24702            None
24703        }
24704    }
24705    #[inline]
24706    fn syntax(&self) -> &SyntaxNode {
24707        &self.syntax
24708    }
24709}
24710impl AstNode for ExprAsNameList {
24711    #[inline]
24712    fn can_cast(kind: SyntaxKind) -> bool {
24713        kind == SyntaxKind::EXPR_AS_NAME_LIST
24714    }
24715    #[inline]
24716    fn cast(syntax: SyntaxNode) -> Option<Self> {
24717        if Self::can_cast(syntax.kind()) {
24718            Some(Self { syntax })
24719        } else {
24720            None
24721        }
24722    }
24723    #[inline]
24724    fn syntax(&self) -> &SyntaxNode {
24725        &self.syntax
24726    }
24727}
24728impl AstNode for ExprType {
24729    #[inline]
24730    fn can_cast(kind: SyntaxKind) -> bool {
24731        kind == SyntaxKind::EXPR_TYPE
24732    }
24733    #[inline]
24734    fn cast(syntax: SyntaxNode) -> Option<Self> {
24735        if Self::can_cast(syntax.kind()) {
24736            Some(Self { syntax })
24737        } else {
24738            None
24739        }
24740    }
24741    #[inline]
24742    fn syntax(&self) -> &SyntaxNode {
24743        &self.syntax
24744    }
24745}
24746impl AstNode for ExtractFn {
24747    #[inline]
24748    fn can_cast(kind: SyntaxKind) -> bool {
24749        kind == SyntaxKind::EXTRACT_FN
24750    }
24751    #[inline]
24752    fn cast(syntax: SyntaxNode) -> Option<Self> {
24753        if Self::can_cast(syntax.kind()) {
24754            Some(Self { syntax })
24755        } else {
24756            None
24757        }
24758    }
24759    #[inline]
24760    fn syntax(&self) -> &SyntaxNode {
24761        &self.syntax
24762    }
24763}
24764impl AstNode for FatArrow {
24765    #[inline]
24766    fn can_cast(kind: SyntaxKind) -> bool {
24767        kind == SyntaxKind::FAT_ARROW
24768    }
24769    #[inline]
24770    fn cast(syntax: SyntaxNode) -> Option<Self> {
24771        if Self::can_cast(syntax.kind()) {
24772            Some(Self { syntax })
24773        } else {
24774            None
24775        }
24776    }
24777    #[inline]
24778    fn syntax(&self) -> &SyntaxNode {
24779        &self.syntax
24780    }
24781}
24782impl AstNode for FdwOption {
24783    #[inline]
24784    fn can_cast(kind: SyntaxKind) -> bool {
24785        kind == SyntaxKind::FDW_OPTION
24786    }
24787    #[inline]
24788    fn cast(syntax: SyntaxNode) -> Option<Self> {
24789        if Self::can_cast(syntax.kind()) {
24790            Some(Self { syntax })
24791        } else {
24792            None
24793        }
24794    }
24795    #[inline]
24796    fn syntax(&self) -> &SyntaxNode {
24797        &self.syntax
24798    }
24799}
24800impl AstNode for FdwOptionList {
24801    #[inline]
24802    fn can_cast(kind: SyntaxKind) -> bool {
24803        kind == SyntaxKind::FDW_OPTION_LIST
24804    }
24805    #[inline]
24806    fn cast(syntax: SyntaxNode) -> Option<Self> {
24807        if Self::can_cast(syntax.kind()) {
24808            Some(Self { syntax })
24809        } else {
24810            None
24811        }
24812    }
24813    #[inline]
24814    fn syntax(&self) -> &SyntaxNode {
24815        &self.syntax
24816    }
24817}
24818impl AstNode for Fetch {
24819    #[inline]
24820    fn can_cast(kind: SyntaxKind) -> bool {
24821        kind == SyntaxKind::FETCH
24822    }
24823    #[inline]
24824    fn cast(syntax: SyntaxNode) -> Option<Self> {
24825        if Self::can_cast(syntax.kind()) {
24826            Some(Self { syntax })
24827        } else {
24828            None
24829        }
24830    }
24831    #[inline]
24832    fn syntax(&self) -> &SyntaxNode {
24833        &self.syntax
24834    }
24835}
24836impl AstNode for FetchClause {
24837    #[inline]
24838    fn can_cast(kind: SyntaxKind) -> bool {
24839        kind == SyntaxKind::FETCH_CLAUSE
24840    }
24841    #[inline]
24842    fn cast(syntax: SyntaxNode) -> Option<Self> {
24843        if Self::can_cast(syntax.kind()) {
24844            Some(Self { syntax })
24845        } else {
24846            None
24847        }
24848    }
24849    #[inline]
24850    fn syntax(&self) -> &SyntaxNode {
24851        &self.syntax
24852    }
24853}
24854impl AstNode for FieldExpr {
24855    #[inline]
24856    fn can_cast(kind: SyntaxKind) -> bool {
24857        kind == SyntaxKind::FIELD_EXPR
24858    }
24859    #[inline]
24860    fn cast(syntax: SyntaxNode) -> Option<Self> {
24861        if Self::can_cast(syntax.kind()) {
24862            Some(Self { syntax })
24863        } else {
24864            None
24865        }
24866    }
24867    #[inline]
24868    fn syntax(&self) -> &SyntaxNode {
24869        &self.syntax
24870    }
24871}
24872impl AstNode for FilterClause {
24873    #[inline]
24874    fn can_cast(kind: SyntaxKind) -> bool {
24875        kind == SyntaxKind::FILTER_CLAUSE
24876    }
24877    #[inline]
24878    fn cast(syntax: SyntaxNode) -> Option<Self> {
24879        if Self::can_cast(syntax.kind()) {
24880            Some(Self { syntax })
24881        } else {
24882            None
24883        }
24884    }
24885    #[inline]
24886    fn syntax(&self) -> &SyntaxNode {
24887        &self.syntax
24888    }
24889}
24890impl AstNode for ForPortionOf {
24891    #[inline]
24892    fn can_cast(kind: SyntaxKind) -> bool {
24893        kind == SyntaxKind::FOR_PORTION_OF
24894    }
24895    #[inline]
24896    fn cast(syntax: SyntaxNode) -> Option<Self> {
24897        if Self::can_cast(syntax.kind()) {
24898            Some(Self { syntax })
24899        } else {
24900            None
24901        }
24902    }
24903    #[inline]
24904    fn syntax(&self) -> &SyntaxNode {
24905        &self.syntax
24906    }
24907}
24908impl AstNode for ForProvider {
24909    #[inline]
24910    fn can_cast(kind: SyntaxKind) -> bool {
24911        kind == SyntaxKind::FOR_PROVIDER
24912    }
24913    #[inline]
24914    fn cast(syntax: SyntaxNode) -> Option<Self> {
24915        if Self::can_cast(syntax.kind()) {
24916            Some(Self { syntax })
24917        } else {
24918            None
24919        }
24920    }
24921    #[inline]
24922    fn syntax(&self) -> &SyntaxNode {
24923        &self.syntax
24924    }
24925}
24926impl AstNode for ForceRls {
24927    #[inline]
24928    fn can_cast(kind: SyntaxKind) -> bool {
24929        kind == SyntaxKind::FORCE_RLS
24930    }
24931    #[inline]
24932    fn cast(syntax: SyntaxNode) -> Option<Self> {
24933        if Self::can_cast(syntax.kind()) {
24934            Some(Self { syntax })
24935        } else {
24936            None
24937        }
24938    }
24939    #[inline]
24940    fn syntax(&self) -> &SyntaxNode {
24941        &self.syntax
24942    }
24943}
24944impl AstNode for ForeignKeyConstraint {
24945    #[inline]
24946    fn can_cast(kind: SyntaxKind) -> bool {
24947        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24948    }
24949    #[inline]
24950    fn cast(syntax: SyntaxNode) -> Option<Self> {
24951        if Self::can_cast(syntax.kind()) {
24952            Some(Self { syntax })
24953        } else {
24954            None
24955        }
24956    }
24957    #[inline]
24958    fn syntax(&self) -> &SyntaxNode {
24959        &self.syntax
24960    }
24961}
24962impl AstNode for FrameClause {
24963    #[inline]
24964    fn can_cast(kind: SyntaxKind) -> bool {
24965        kind == SyntaxKind::FRAME_CLAUSE
24966    }
24967    #[inline]
24968    fn cast(syntax: SyntaxNode) -> Option<Self> {
24969        if Self::can_cast(syntax.kind()) {
24970            Some(Self { syntax })
24971        } else {
24972            None
24973        }
24974    }
24975    #[inline]
24976    fn syntax(&self) -> &SyntaxNode {
24977        &self.syntax
24978    }
24979}
24980impl AstNode for FromClause {
24981    #[inline]
24982    fn can_cast(kind: SyntaxKind) -> bool {
24983        kind == SyntaxKind::FROM_CLAUSE
24984    }
24985    #[inline]
24986    fn cast(syntax: SyntaxNode) -> Option<Self> {
24987        if Self::can_cast(syntax.kind()) {
24988            Some(Self { syntax })
24989        } else {
24990            None
24991        }
24992    }
24993    #[inline]
24994    fn syntax(&self) -> &SyntaxNode {
24995        &self.syntax
24996    }
24997}
24998impl AstNode for FromItem {
24999    #[inline]
25000    fn can_cast(kind: SyntaxKind) -> bool {
25001        kind == SyntaxKind::FROM_ITEM
25002    }
25003    #[inline]
25004    fn cast(syntax: SyntaxNode) -> Option<Self> {
25005        if Self::can_cast(syntax.kind()) {
25006            Some(Self { syntax })
25007        } else {
25008            None
25009        }
25010    }
25011    #[inline]
25012    fn syntax(&self) -> &SyntaxNode {
25013        &self.syntax
25014    }
25015}
25016impl AstNode for FromTable {
25017    #[inline]
25018    fn can_cast(kind: SyntaxKind) -> bool {
25019        kind == SyntaxKind::FROM_TABLE
25020    }
25021    #[inline]
25022    fn cast(syntax: SyntaxNode) -> Option<Self> {
25023        if Self::can_cast(syntax.kind()) {
25024            Some(Self { syntax })
25025        } else {
25026            None
25027        }
25028    }
25029    #[inline]
25030    fn syntax(&self) -> &SyntaxNode {
25031        &self.syntax
25032    }
25033}
25034impl AstNode for FuncOptionList {
25035    #[inline]
25036    fn can_cast(kind: SyntaxKind) -> bool {
25037        kind == SyntaxKind::FUNC_OPTION_LIST
25038    }
25039    #[inline]
25040    fn cast(syntax: SyntaxNode) -> Option<Self> {
25041        if Self::can_cast(syntax.kind()) {
25042            Some(Self { syntax })
25043        } else {
25044            None
25045        }
25046    }
25047    #[inline]
25048    fn syntax(&self) -> &SyntaxNode {
25049        &self.syntax
25050    }
25051}
25052impl AstNode for FunctionSig {
25053    #[inline]
25054    fn can_cast(kind: SyntaxKind) -> bool {
25055        kind == SyntaxKind::FUNCTION_SIG
25056    }
25057    #[inline]
25058    fn cast(syntax: SyntaxNode) -> Option<Self> {
25059        if Self::can_cast(syntax.kind()) {
25060            Some(Self { syntax })
25061        } else {
25062            None
25063        }
25064    }
25065    #[inline]
25066    fn syntax(&self) -> &SyntaxNode {
25067        &self.syntax
25068    }
25069}
25070impl AstNode for FunctionSigList {
25071    #[inline]
25072    fn can_cast(kind: SyntaxKind) -> bool {
25073        kind == SyntaxKind::FUNCTION_SIG_LIST
25074    }
25075    #[inline]
25076    fn cast(syntax: SyntaxNode) -> Option<Self> {
25077        if Self::can_cast(syntax.kind()) {
25078            Some(Self { syntax })
25079        } else {
25080            None
25081        }
25082    }
25083    #[inline]
25084    fn syntax(&self) -> &SyntaxNode {
25085        &self.syntax
25086    }
25087}
25088impl AstNode for GeneratedConstraint {
25089    #[inline]
25090    fn can_cast(kind: SyntaxKind) -> bool {
25091        kind == SyntaxKind::GENERATED_CONSTRAINT
25092    }
25093    #[inline]
25094    fn cast(syntax: SyntaxNode) -> Option<Self> {
25095        if Self::can_cast(syntax.kind()) {
25096            Some(Self { syntax })
25097        } else {
25098            None
25099        }
25100    }
25101    #[inline]
25102    fn syntax(&self) -> &SyntaxNode {
25103        &self.syntax
25104    }
25105}
25106impl AstNode for Grant {
25107    #[inline]
25108    fn can_cast(kind: SyntaxKind) -> bool {
25109        kind == SyntaxKind::GRANT
25110    }
25111    #[inline]
25112    fn cast(syntax: SyntaxNode) -> Option<Self> {
25113        if Self::can_cast(syntax.kind()) {
25114            Some(Self { syntax })
25115        } else {
25116            None
25117        }
25118    }
25119    #[inline]
25120    fn syntax(&self) -> &SyntaxNode {
25121        &self.syntax
25122    }
25123}
25124impl AstNode for GrantDefaultPrivileges {
25125    #[inline]
25126    fn can_cast(kind: SyntaxKind) -> bool {
25127        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
25128    }
25129    #[inline]
25130    fn cast(syntax: SyntaxNode) -> Option<Self> {
25131        if Self::can_cast(syntax.kind()) {
25132            Some(Self { syntax })
25133        } else {
25134            None
25135        }
25136    }
25137    #[inline]
25138    fn syntax(&self) -> &SyntaxNode {
25139        &self.syntax
25140    }
25141}
25142impl AstNode for GraphPatternQualifier {
25143    #[inline]
25144    fn can_cast(kind: SyntaxKind) -> bool {
25145        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
25146    }
25147    #[inline]
25148    fn cast(syntax: SyntaxNode) -> Option<Self> {
25149        if Self::can_cast(syntax.kind()) {
25150            Some(Self { syntax })
25151        } else {
25152            None
25153        }
25154    }
25155    #[inline]
25156    fn syntax(&self) -> &SyntaxNode {
25157        &self.syntax
25158    }
25159}
25160impl AstNode for GraphTableFn {
25161    #[inline]
25162    fn can_cast(kind: SyntaxKind) -> bool {
25163        kind == SyntaxKind::GRAPH_TABLE_FN
25164    }
25165    #[inline]
25166    fn cast(syntax: SyntaxNode) -> Option<Self> {
25167        if Self::can_cast(syntax.kind()) {
25168            Some(Self { syntax })
25169        } else {
25170            None
25171        }
25172    }
25173    #[inline]
25174    fn syntax(&self) -> &SyntaxNode {
25175        &self.syntax
25176    }
25177}
25178impl AstNode for GroupByClause {
25179    #[inline]
25180    fn can_cast(kind: SyntaxKind) -> bool {
25181        kind == SyntaxKind::GROUP_BY_CLAUSE
25182    }
25183    #[inline]
25184    fn cast(syntax: SyntaxNode) -> Option<Self> {
25185        if Self::can_cast(syntax.kind()) {
25186            Some(Self { syntax })
25187        } else {
25188            None
25189        }
25190    }
25191    #[inline]
25192    fn syntax(&self) -> &SyntaxNode {
25193        &self.syntax
25194    }
25195}
25196impl AstNode for GroupByList {
25197    #[inline]
25198    fn can_cast(kind: SyntaxKind) -> bool {
25199        kind == SyntaxKind::GROUP_BY_LIST
25200    }
25201    #[inline]
25202    fn cast(syntax: SyntaxNode) -> Option<Self> {
25203        if Self::can_cast(syntax.kind()) {
25204            Some(Self { syntax })
25205        } else {
25206            None
25207        }
25208    }
25209    #[inline]
25210    fn syntax(&self) -> &SyntaxNode {
25211        &self.syntax
25212    }
25213}
25214impl AstNode for GroupingCube {
25215    #[inline]
25216    fn can_cast(kind: SyntaxKind) -> bool {
25217        kind == SyntaxKind::GROUPING_CUBE
25218    }
25219    #[inline]
25220    fn cast(syntax: SyntaxNode) -> Option<Self> {
25221        if Self::can_cast(syntax.kind()) {
25222            Some(Self { syntax })
25223        } else {
25224            None
25225        }
25226    }
25227    #[inline]
25228    fn syntax(&self) -> &SyntaxNode {
25229        &self.syntax
25230    }
25231}
25232impl AstNode for GroupingExpr {
25233    #[inline]
25234    fn can_cast(kind: SyntaxKind) -> bool {
25235        kind == SyntaxKind::GROUPING_EXPR
25236    }
25237    #[inline]
25238    fn cast(syntax: SyntaxNode) -> Option<Self> {
25239        if Self::can_cast(syntax.kind()) {
25240            Some(Self { syntax })
25241        } else {
25242            None
25243        }
25244    }
25245    #[inline]
25246    fn syntax(&self) -> &SyntaxNode {
25247        &self.syntax
25248    }
25249}
25250impl AstNode for GroupingRollup {
25251    #[inline]
25252    fn can_cast(kind: SyntaxKind) -> bool {
25253        kind == SyntaxKind::GROUPING_ROLLUP
25254    }
25255    #[inline]
25256    fn cast(syntax: SyntaxNode) -> Option<Self> {
25257        if Self::can_cast(syntax.kind()) {
25258            Some(Self { syntax })
25259        } else {
25260            None
25261        }
25262    }
25263    #[inline]
25264    fn syntax(&self) -> &SyntaxNode {
25265        &self.syntax
25266    }
25267}
25268impl AstNode for GroupingSets {
25269    #[inline]
25270    fn can_cast(kind: SyntaxKind) -> bool {
25271        kind == SyntaxKind::GROUPING_SETS
25272    }
25273    #[inline]
25274    fn cast(syntax: SyntaxNode) -> Option<Self> {
25275        if Self::can_cast(syntax.kind()) {
25276            Some(Self { syntax })
25277        } else {
25278            None
25279        }
25280    }
25281    #[inline]
25282    fn syntax(&self) -> &SyntaxNode {
25283        &self.syntax
25284    }
25285}
25286impl AstNode for Gteq {
25287    #[inline]
25288    fn can_cast(kind: SyntaxKind) -> bool {
25289        kind == SyntaxKind::GTEQ
25290    }
25291    #[inline]
25292    fn cast(syntax: SyntaxNode) -> Option<Self> {
25293        if Self::can_cast(syntax.kind()) {
25294            Some(Self { syntax })
25295        } else {
25296            None
25297        }
25298    }
25299    #[inline]
25300    fn syntax(&self) -> &SyntaxNode {
25301        &self.syntax
25302    }
25303}
25304impl AstNode for HandlerClause {
25305    #[inline]
25306    fn can_cast(kind: SyntaxKind) -> bool {
25307        kind == SyntaxKind::HANDLER_CLAUSE
25308    }
25309    #[inline]
25310    fn cast(syntax: SyntaxNode) -> Option<Self> {
25311        if Self::can_cast(syntax.kind()) {
25312            Some(Self { syntax })
25313        } else {
25314            None
25315        }
25316    }
25317    #[inline]
25318    fn syntax(&self) -> &SyntaxNode {
25319        &self.syntax
25320    }
25321}
25322impl AstNode for HavingClause {
25323    #[inline]
25324    fn can_cast(kind: SyntaxKind) -> bool {
25325        kind == SyntaxKind::HAVING_CLAUSE
25326    }
25327    #[inline]
25328    fn cast(syntax: SyntaxNode) -> Option<Self> {
25329        if Self::can_cast(syntax.kind()) {
25330            Some(Self { syntax })
25331        } else {
25332            None
25333        }
25334    }
25335    #[inline]
25336    fn syntax(&self) -> &SyntaxNode {
25337        &self.syntax
25338    }
25339}
25340impl AstNode for IfExists {
25341    #[inline]
25342    fn can_cast(kind: SyntaxKind) -> bool {
25343        kind == SyntaxKind::IF_EXISTS
25344    }
25345    #[inline]
25346    fn cast(syntax: SyntaxNode) -> Option<Self> {
25347        if Self::can_cast(syntax.kind()) {
25348            Some(Self { syntax })
25349        } else {
25350            None
25351        }
25352    }
25353    #[inline]
25354    fn syntax(&self) -> &SyntaxNode {
25355        &self.syntax
25356    }
25357}
25358impl AstNode for IfNotExists {
25359    #[inline]
25360    fn can_cast(kind: SyntaxKind) -> bool {
25361        kind == SyntaxKind::IF_NOT_EXISTS
25362    }
25363    #[inline]
25364    fn cast(syntax: SyntaxNode) -> Option<Self> {
25365        if Self::can_cast(syntax.kind()) {
25366            Some(Self { syntax })
25367        } else {
25368            None
25369        }
25370    }
25371    #[inline]
25372    fn syntax(&self) -> &SyntaxNode {
25373        &self.syntax
25374    }
25375}
25376impl AstNode for ImportForeignSchema {
25377    #[inline]
25378    fn can_cast(kind: SyntaxKind) -> bool {
25379        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
25380    }
25381    #[inline]
25382    fn cast(syntax: SyntaxNode) -> Option<Self> {
25383        if Self::can_cast(syntax.kind()) {
25384            Some(Self { syntax })
25385        } else {
25386            None
25387        }
25388    }
25389    #[inline]
25390    fn syntax(&self) -> &SyntaxNode {
25391        &self.syntax
25392    }
25393}
25394impl AstNode for IndexExpr {
25395    #[inline]
25396    fn can_cast(kind: SyntaxKind) -> bool {
25397        kind == SyntaxKind::INDEX_EXPR
25398    }
25399    #[inline]
25400    fn cast(syntax: SyntaxNode) -> Option<Self> {
25401        if Self::can_cast(syntax.kind()) {
25402            Some(Self { syntax })
25403        } else {
25404            None
25405        }
25406    }
25407    #[inline]
25408    fn syntax(&self) -> &SyntaxNode {
25409        &self.syntax
25410    }
25411}
25412impl AstNode for Inherit {
25413    #[inline]
25414    fn can_cast(kind: SyntaxKind) -> bool {
25415        kind == SyntaxKind::INHERIT
25416    }
25417    #[inline]
25418    fn cast(syntax: SyntaxNode) -> Option<Self> {
25419        if Self::can_cast(syntax.kind()) {
25420            Some(Self { syntax })
25421        } else {
25422            None
25423        }
25424    }
25425    #[inline]
25426    fn syntax(&self) -> &SyntaxNode {
25427        &self.syntax
25428    }
25429}
25430impl AstNode for InheritTable {
25431    #[inline]
25432    fn can_cast(kind: SyntaxKind) -> bool {
25433        kind == SyntaxKind::INHERIT_TABLE
25434    }
25435    #[inline]
25436    fn cast(syntax: SyntaxNode) -> Option<Self> {
25437        if Self::can_cast(syntax.kind()) {
25438            Some(Self { syntax })
25439        } else {
25440            None
25441        }
25442    }
25443    #[inline]
25444    fn syntax(&self) -> &SyntaxNode {
25445        &self.syntax
25446    }
25447}
25448impl AstNode for Inherits {
25449    #[inline]
25450    fn can_cast(kind: SyntaxKind) -> bool {
25451        kind == SyntaxKind::INHERITS
25452    }
25453    #[inline]
25454    fn cast(syntax: SyntaxNode) -> Option<Self> {
25455        if Self::can_cast(syntax.kind()) {
25456            Some(Self { syntax })
25457        } else {
25458            None
25459        }
25460    }
25461    #[inline]
25462    fn syntax(&self) -> &SyntaxNode {
25463        &self.syntax
25464    }
25465}
25466impl AstNode for InitiallyDeferredConstraintOption {
25467    #[inline]
25468    fn can_cast(kind: SyntaxKind) -> bool {
25469        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
25470    }
25471    #[inline]
25472    fn cast(syntax: SyntaxNode) -> Option<Self> {
25473        if Self::can_cast(syntax.kind()) {
25474            Some(Self { syntax })
25475        } else {
25476            None
25477        }
25478    }
25479    #[inline]
25480    fn syntax(&self) -> &SyntaxNode {
25481        &self.syntax
25482    }
25483}
25484impl AstNode for InitiallyImmediateConstraintOption {
25485    #[inline]
25486    fn can_cast(kind: SyntaxKind) -> bool {
25487        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
25488    }
25489    #[inline]
25490    fn cast(syntax: SyntaxNode) -> Option<Self> {
25491        if Self::can_cast(syntax.kind()) {
25492            Some(Self { syntax })
25493        } else {
25494            None
25495        }
25496    }
25497    #[inline]
25498    fn syntax(&self) -> &SyntaxNode {
25499        &self.syntax
25500    }
25501}
25502impl AstNode for Insert {
25503    #[inline]
25504    fn can_cast(kind: SyntaxKind) -> bool {
25505        kind == SyntaxKind::INSERT
25506    }
25507    #[inline]
25508    fn cast(syntax: SyntaxNode) -> Option<Self> {
25509        if Self::can_cast(syntax.kind()) {
25510            Some(Self { syntax })
25511        } else {
25512            None
25513        }
25514    }
25515    #[inline]
25516    fn syntax(&self) -> &SyntaxNode {
25517        &self.syntax
25518    }
25519}
25520impl AstNode for IntervalType {
25521    #[inline]
25522    fn can_cast(kind: SyntaxKind) -> bool {
25523        kind == SyntaxKind::INTERVAL_TYPE
25524    }
25525    #[inline]
25526    fn cast(syntax: SyntaxNode) -> Option<Self> {
25527        if Self::can_cast(syntax.kind()) {
25528            Some(Self { syntax })
25529        } else {
25530            None
25531        }
25532    }
25533    #[inline]
25534    fn syntax(&self) -> &SyntaxNode {
25535        &self.syntax
25536    }
25537}
25538impl AstNode for IntoClause {
25539    #[inline]
25540    fn can_cast(kind: SyntaxKind) -> bool {
25541        kind == SyntaxKind::INTO_CLAUSE
25542    }
25543    #[inline]
25544    fn cast(syntax: SyntaxNode) -> Option<Self> {
25545        if Self::can_cast(syntax.kind()) {
25546            Some(Self { syntax })
25547        } else {
25548            None
25549        }
25550    }
25551    #[inline]
25552    fn syntax(&self) -> &SyntaxNode {
25553        &self.syntax
25554    }
25555}
25556impl AstNode for IntoSchema {
25557    #[inline]
25558    fn can_cast(kind: SyntaxKind) -> bool {
25559        kind == SyntaxKind::INTO_SCHEMA
25560    }
25561    #[inline]
25562    fn cast(syntax: SyntaxNode) -> Option<Self> {
25563        if Self::can_cast(syntax.kind()) {
25564            Some(Self { syntax })
25565        } else {
25566            None
25567        }
25568    }
25569    #[inline]
25570    fn syntax(&self) -> &SyntaxNode {
25571        &self.syntax
25572    }
25573}
25574impl AstNode for IsDistinctFrom {
25575    #[inline]
25576    fn can_cast(kind: SyntaxKind) -> bool {
25577        kind == SyntaxKind::IS_DISTINCT_FROM
25578    }
25579    #[inline]
25580    fn cast(syntax: SyntaxNode) -> Option<Self> {
25581        if Self::can_cast(syntax.kind()) {
25582            Some(Self { syntax })
25583        } else {
25584            None
25585        }
25586    }
25587    #[inline]
25588    fn syntax(&self) -> &SyntaxNode {
25589        &self.syntax
25590    }
25591}
25592impl AstNode for IsJson {
25593    #[inline]
25594    fn can_cast(kind: SyntaxKind) -> bool {
25595        kind == SyntaxKind::IS_JSON
25596    }
25597    #[inline]
25598    fn cast(syntax: SyntaxNode) -> Option<Self> {
25599        if Self::can_cast(syntax.kind()) {
25600            Some(Self { syntax })
25601        } else {
25602            None
25603        }
25604    }
25605    #[inline]
25606    fn syntax(&self) -> &SyntaxNode {
25607        &self.syntax
25608    }
25609}
25610impl AstNode for IsJsonArray {
25611    #[inline]
25612    fn can_cast(kind: SyntaxKind) -> bool {
25613        kind == SyntaxKind::IS_JSON_ARRAY
25614    }
25615    #[inline]
25616    fn cast(syntax: SyntaxNode) -> Option<Self> {
25617        if Self::can_cast(syntax.kind()) {
25618            Some(Self { syntax })
25619        } else {
25620            None
25621        }
25622    }
25623    #[inline]
25624    fn syntax(&self) -> &SyntaxNode {
25625        &self.syntax
25626    }
25627}
25628impl AstNode for IsJsonObject {
25629    #[inline]
25630    fn can_cast(kind: SyntaxKind) -> bool {
25631        kind == SyntaxKind::IS_JSON_OBJECT
25632    }
25633    #[inline]
25634    fn cast(syntax: SyntaxNode) -> Option<Self> {
25635        if Self::can_cast(syntax.kind()) {
25636            Some(Self { syntax })
25637        } else {
25638            None
25639        }
25640    }
25641    #[inline]
25642    fn syntax(&self) -> &SyntaxNode {
25643        &self.syntax
25644    }
25645}
25646impl AstNode for IsJsonScalar {
25647    #[inline]
25648    fn can_cast(kind: SyntaxKind) -> bool {
25649        kind == SyntaxKind::IS_JSON_SCALAR
25650    }
25651    #[inline]
25652    fn cast(syntax: SyntaxNode) -> Option<Self> {
25653        if Self::can_cast(syntax.kind()) {
25654            Some(Self { syntax })
25655        } else {
25656            None
25657        }
25658    }
25659    #[inline]
25660    fn syntax(&self) -> &SyntaxNode {
25661        &self.syntax
25662    }
25663}
25664impl AstNode for IsJsonValue {
25665    #[inline]
25666    fn can_cast(kind: SyntaxKind) -> bool {
25667        kind == SyntaxKind::IS_JSON_VALUE
25668    }
25669    #[inline]
25670    fn cast(syntax: SyntaxNode) -> Option<Self> {
25671        if Self::can_cast(syntax.kind()) {
25672            Some(Self { syntax })
25673        } else {
25674            None
25675        }
25676    }
25677    #[inline]
25678    fn syntax(&self) -> &SyntaxNode {
25679        &self.syntax
25680    }
25681}
25682impl AstNode for IsLabel {
25683    #[inline]
25684    fn can_cast(kind: SyntaxKind) -> bool {
25685        kind == SyntaxKind::IS_LABEL
25686    }
25687    #[inline]
25688    fn cast(syntax: SyntaxNode) -> Option<Self> {
25689        if Self::can_cast(syntax.kind()) {
25690            Some(Self { syntax })
25691        } else {
25692            None
25693        }
25694    }
25695    #[inline]
25696    fn syntax(&self) -> &SyntaxNode {
25697        &self.syntax
25698    }
25699}
25700impl AstNode for IsNormalized {
25701    #[inline]
25702    fn can_cast(kind: SyntaxKind) -> bool {
25703        kind == SyntaxKind::IS_NORMALIZED
25704    }
25705    #[inline]
25706    fn cast(syntax: SyntaxNode) -> Option<Self> {
25707        if Self::can_cast(syntax.kind()) {
25708            Some(Self { syntax })
25709        } else {
25710            None
25711        }
25712    }
25713    #[inline]
25714    fn syntax(&self) -> &SyntaxNode {
25715        &self.syntax
25716    }
25717}
25718impl AstNode for IsNot {
25719    #[inline]
25720    fn can_cast(kind: SyntaxKind) -> bool {
25721        kind == SyntaxKind::IS_NOT
25722    }
25723    #[inline]
25724    fn cast(syntax: SyntaxNode) -> Option<Self> {
25725        if Self::can_cast(syntax.kind()) {
25726            Some(Self { syntax })
25727        } else {
25728            None
25729        }
25730    }
25731    #[inline]
25732    fn syntax(&self) -> &SyntaxNode {
25733        &self.syntax
25734    }
25735}
25736impl AstNode for IsNotDistinctFrom {
25737    #[inline]
25738    fn can_cast(kind: SyntaxKind) -> bool {
25739        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
25740    }
25741    #[inline]
25742    fn cast(syntax: SyntaxNode) -> Option<Self> {
25743        if Self::can_cast(syntax.kind()) {
25744            Some(Self { syntax })
25745        } else {
25746            None
25747        }
25748    }
25749    #[inline]
25750    fn syntax(&self) -> &SyntaxNode {
25751        &self.syntax
25752    }
25753}
25754impl AstNode for IsNotJson {
25755    #[inline]
25756    fn can_cast(kind: SyntaxKind) -> bool {
25757        kind == SyntaxKind::IS_NOT_JSON
25758    }
25759    #[inline]
25760    fn cast(syntax: SyntaxNode) -> Option<Self> {
25761        if Self::can_cast(syntax.kind()) {
25762            Some(Self { syntax })
25763        } else {
25764            None
25765        }
25766    }
25767    #[inline]
25768    fn syntax(&self) -> &SyntaxNode {
25769        &self.syntax
25770    }
25771}
25772impl AstNode for IsNotJsonArray {
25773    #[inline]
25774    fn can_cast(kind: SyntaxKind) -> bool {
25775        kind == SyntaxKind::IS_NOT_JSON_ARRAY
25776    }
25777    #[inline]
25778    fn cast(syntax: SyntaxNode) -> Option<Self> {
25779        if Self::can_cast(syntax.kind()) {
25780            Some(Self { syntax })
25781        } else {
25782            None
25783        }
25784    }
25785    #[inline]
25786    fn syntax(&self) -> &SyntaxNode {
25787        &self.syntax
25788    }
25789}
25790impl AstNode for IsNotJsonObject {
25791    #[inline]
25792    fn can_cast(kind: SyntaxKind) -> bool {
25793        kind == SyntaxKind::IS_NOT_JSON_OBJECT
25794    }
25795    #[inline]
25796    fn cast(syntax: SyntaxNode) -> Option<Self> {
25797        if Self::can_cast(syntax.kind()) {
25798            Some(Self { syntax })
25799        } else {
25800            None
25801        }
25802    }
25803    #[inline]
25804    fn syntax(&self) -> &SyntaxNode {
25805        &self.syntax
25806    }
25807}
25808impl AstNode for IsNotJsonScalar {
25809    #[inline]
25810    fn can_cast(kind: SyntaxKind) -> bool {
25811        kind == SyntaxKind::IS_NOT_JSON_SCALAR
25812    }
25813    #[inline]
25814    fn cast(syntax: SyntaxNode) -> Option<Self> {
25815        if Self::can_cast(syntax.kind()) {
25816            Some(Self { syntax })
25817        } else {
25818            None
25819        }
25820    }
25821    #[inline]
25822    fn syntax(&self) -> &SyntaxNode {
25823        &self.syntax
25824    }
25825}
25826impl AstNode for IsNotJsonValue {
25827    #[inline]
25828    fn can_cast(kind: SyntaxKind) -> bool {
25829        kind == SyntaxKind::IS_NOT_JSON_VALUE
25830    }
25831    #[inline]
25832    fn cast(syntax: SyntaxNode) -> Option<Self> {
25833        if Self::can_cast(syntax.kind()) {
25834            Some(Self { syntax })
25835        } else {
25836            None
25837        }
25838    }
25839    #[inline]
25840    fn syntax(&self) -> &SyntaxNode {
25841        &self.syntax
25842    }
25843}
25844impl AstNode for IsNotNormalized {
25845    #[inline]
25846    fn can_cast(kind: SyntaxKind) -> bool {
25847        kind == SyntaxKind::IS_NOT_NORMALIZED
25848    }
25849    #[inline]
25850    fn cast(syntax: SyntaxNode) -> Option<Self> {
25851        if Self::can_cast(syntax.kind()) {
25852            Some(Self { syntax })
25853        } else {
25854            None
25855        }
25856    }
25857    #[inline]
25858    fn syntax(&self) -> &SyntaxNode {
25859        &self.syntax
25860    }
25861}
25862impl AstNode for Join {
25863    #[inline]
25864    fn can_cast(kind: SyntaxKind) -> bool {
25865        kind == SyntaxKind::JOIN
25866    }
25867    #[inline]
25868    fn cast(syntax: SyntaxNode) -> Option<Self> {
25869        if Self::can_cast(syntax.kind()) {
25870            Some(Self { syntax })
25871        } else {
25872            None
25873        }
25874    }
25875    #[inline]
25876    fn syntax(&self) -> &SyntaxNode {
25877        &self.syntax
25878    }
25879}
25880impl AstNode for JoinCross {
25881    #[inline]
25882    fn can_cast(kind: SyntaxKind) -> bool {
25883        kind == SyntaxKind::JOIN_CROSS
25884    }
25885    #[inline]
25886    fn cast(syntax: SyntaxNode) -> Option<Self> {
25887        if Self::can_cast(syntax.kind()) {
25888            Some(Self { syntax })
25889        } else {
25890            None
25891        }
25892    }
25893    #[inline]
25894    fn syntax(&self) -> &SyntaxNode {
25895        &self.syntax
25896    }
25897}
25898impl AstNode for JoinExpr {
25899    #[inline]
25900    fn can_cast(kind: SyntaxKind) -> bool {
25901        kind == SyntaxKind::JOIN_EXPR
25902    }
25903    #[inline]
25904    fn cast(syntax: SyntaxNode) -> Option<Self> {
25905        if Self::can_cast(syntax.kind()) {
25906            Some(Self { syntax })
25907        } else {
25908            None
25909        }
25910    }
25911    #[inline]
25912    fn syntax(&self) -> &SyntaxNode {
25913        &self.syntax
25914    }
25915}
25916impl AstNode for JoinFull {
25917    #[inline]
25918    fn can_cast(kind: SyntaxKind) -> bool {
25919        kind == SyntaxKind::JOIN_FULL
25920    }
25921    #[inline]
25922    fn cast(syntax: SyntaxNode) -> Option<Self> {
25923        if Self::can_cast(syntax.kind()) {
25924            Some(Self { syntax })
25925        } else {
25926            None
25927        }
25928    }
25929    #[inline]
25930    fn syntax(&self) -> &SyntaxNode {
25931        &self.syntax
25932    }
25933}
25934impl AstNode for JoinInner {
25935    #[inline]
25936    fn can_cast(kind: SyntaxKind) -> bool {
25937        kind == SyntaxKind::JOIN_INNER
25938    }
25939    #[inline]
25940    fn cast(syntax: SyntaxNode) -> Option<Self> {
25941        if Self::can_cast(syntax.kind()) {
25942            Some(Self { syntax })
25943        } else {
25944            None
25945        }
25946    }
25947    #[inline]
25948    fn syntax(&self) -> &SyntaxNode {
25949        &self.syntax
25950    }
25951}
25952impl AstNode for JoinLeft {
25953    #[inline]
25954    fn can_cast(kind: SyntaxKind) -> bool {
25955        kind == SyntaxKind::JOIN_LEFT
25956    }
25957    #[inline]
25958    fn cast(syntax: SyntaxNode) -> Option<Self> {
25959        if Self::can_cast(syntax.kind()) {
25960            Some(Self { syntax })
25961        } else {
25962            None
25963        }
25964    }
25965    #[inline]
25966    fn syntax(&self) -> &SyntaxNode {
25967        &self.syntax
25968    }
25969}
25970impl AstNode for JoinRight {
25971    #[inline]
25972    fn can_cast(kind: SyntaxKind) -> bool {
25973        kind == SyntaxKind::JOIN_RIGHT
25974    }
25975    #[inline]
25976    fn cast(syntax: SyntaxNode) -> Option<Self> {
25977        if Self::can_cast(syntax.kind()) {
25978            Some(Self { syntax })
25979        } else {
25980            None
25981        }
25982    }
25983    #[inline]
25984    fn syntax(&self) -> &SyntaxNode {
25985        &self.syntax
25986    }
25987}
25988impl AstNode for JoinUsingClause {
25989    #[inline]
25990    fn can_cast(kind: SyntaxKind) -> bool {
25991        kind == SyntaxKind::JOIN_USING_CLAUSE
25992    }
25993    #[inline]
25994    fn cast(syntax: SyntaxNode) -> Option<Self> {
25995        if Self::can_cast(syntax.kind()) {
25996            Some(Self { syntax })
25997        } else {
25998            None
25999        }
26000    }
26001    #[inline]
26002    fn syntax(&self) -> &SyntaxNode {
26003        &self.syntax
26004    }
26005}
26006impl AstNode for JsonArrayAggFn {
26007    #[inline]
26008    fn can_cast(kind: SyntaxKind) -> bool {
26009        kind == SyntaxKind::JSON_ARRAY_AGG_FN
26010    }
26011    #[inline]
26012    fn cast(syntax: SyntaxNode) -> Option<Self> {
26013        if Self::can_cast(syntax.kind()) {
26014            Some(Self { syntax })
26015        } else {
26016            None
26017        }
26018    }
26019    #[inline]
26020    fn syntax(&self) -> &SyntaxNode {
26021        &self.syntax
26022    }
26023}
26024impl AstNode for JsonArrayFn {
26025    #[inline]
26026    fn can_cast(kind: SyntaxKind) -> bool {
26027        kind == SyntaxKind::JSON_ARRAY_FN
26028    }
26029    #[inline]
26030    fn cast(syntax: SyntaxNode) -> Option<Self> {
26031        if Self::can_cast(syntax.kind()) {
26032            Some(Self { syntax })
26033        } else {
26034            None
26035        }
26036    }
26037    #[inline]
26038    fn syntax(&self) -> &SyntaxNode {
26039        &self.syntax
26040    }
26041}
26042impl AstNode for JsonBehaviorClause {
26043    #[inline]
26044    fn can_cast(kind: SyntaxKind) -> bool {
26045        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
26046    }
26047    #[inline]
26048    fn cast(syntax: SyntaxNode) -> Option<Self> {
26049        if Self::can_cast(syntax.kind()) {
26050            Some(Self { syntax })
26051        } else {
26052            None
26053        }
26054    }
26055    #[inline]
26056    fn syntax(&self) -> &SyntaxNode {
26057        &self.syntax
26058    }
26059}
26060impl AstNode for JsonBehaviorDefault {
26061    #[inline]
26062    fn can_cast(kind: SyntaxKind) -> bool {
26063        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
26064    }
26065    #[inline]
26066    fn cast(syntax: SyntaxNode) -> Option<Self> {
26067        if Self::can_cast(syntax.kind()) {
26068            Some(Self { syntax })
26069        } else {
26070            None
26071        }
26072    }
26073    #[inline]
26074    fn syntax(&self) -> &SyntaxNode {
26075        &self.syntax
26076    }
26077}
26078impl AstNode for JsonBehaviorEmptyArray {
26079    #[inline]
26080    fn can_cast(kind: SyntaxKind) -> bool {
26081        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
26082    }
26083    #[inline]
26084    fn cast(syntax: SyntaxNode) -> Option<Self> {
26085        if Self::can_cast(syntax.kind()) {
26086            Some(Self { syntax })
26087        } else {
26088            None
26089        }
26090    }
26091    #[inline]
26092    fn syntax(&self) -> &SyntaxNode {
26093        &self.syntax
26094    }
26095}
26096impl AstNode for JsonBehaviorEmptyObject {
26097    #[inline]
26098    fn can_cast(kind: SyntaxKind) -> bool {
26099        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
26100    }
26101    #[inline]
26102    fn cast(syntax: SyntaxNode) -> Option<Self> {
26103        if Self::can_cast(syntax.kind()) {
26104            Some(Self { syntax })
26105        } else {
26106            None
26107        }
26108    }
26109    #[inline]
26110    fn syntax(&self) -> &SyntaxNode {
26111        &self.syntax
26112    }
26113}
26114impl AstNode for JsonBehaviorError {
26115    #[inline]
26116    fn can_cast(kind: SyntaxKind) -> bool {
26117        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
26118    }
26119    #[inline]
26120    fn cast(syntax: SyntaxNode) -> Option<Self> {
26121        if Self::can_cast(syntax.kind()) {
26122            Some(Self { syntax })
26123        } else {
26124            None
26125        }
26126    }
26127    #[inline]
26128    fn syntax(&self) -> &SyntaxNode {
26129        &self.syntax
26130    }
26131}
26132impl AstNode for JsonBehaviorFalse {
26133    #[inline]
26134    fn can_cast(kind: SyntaxKind) -> bool {
26135        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
26136    }
26137    #[inline]
26138    fn cast(syntax: SyntaxNode) -> Option<Self> {
26139        if Self::can_cast(syntax.kind()) {
26140            Some(Self { syntax })
26141        } else {
26142            None
26143        }
26144    }
26145    #[inline]
26146    fn syntax(&self) -> &SyntaxNode {
26147        &self.syntax
26148    }
26149}
26150impl AstNode for JsonBehaviorNull {
26151    #[inline]
26152    fn can_cast(kind: SyntaxKind) -> bool {
26153        kind == SyntaxKind::JSON_BEHAVIOR_NULL
26154    }
26155    #[inline]
26156    fn cast(syntax: SyntaxNode) -> Option<Self> {
26157        if Self::can_cast(syntax.kind()) {
26158            Some(Self { syntax })
26159        } else {
26160            None
26161        }
26162    }
26163    #[inline]
26164    fn syntax(&self) -> &SyntaxNode {
26165        &self.syntax
26166    }
26167}
26168impl AstNode for JsonBehaviorTrue {
26169    #[inline]
26170    fn can_cast(kind: SyntaxKind) -> bool {
26171        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
26172    }
26173    #[inline]
26174    fn cast(syntax: SyntaxNode) -> Option<Self> {
26175        if Self::can_cast(syntax.kind()) {
26176            Some(Self { syntax })
26177        } else {
26178            None
26179        }
26180    }
26181    #[inline]
26182    fn syntax(&self) -> &SyntaxNode {
26183        &self.syntax
26184    }
26185}
26186impl AstNode for JsonBehaviorUnknown {
26187    #[inline]
26188    fn can_cast(kind: SyntaxKind) -> bool {
26189        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
26190    }
26191    #[inline]
26192    fn cast(syntax: SyntaxNode) -> Option<Self> {
26193        if Self::can_cast(syntax.kind()) {
26194            Some(Self { syntax })
26195        } else {
26196            None
26197        }
26198    }
26199    #[inline]
26200    fn syntax(&self) -> &SyntaxNode {
26201        &self.syntax
26202    }
26203}
26204impl AstNode for JsonEncodingClause {
26205    #[inline]
26206    fn can_cast(kind: SyntaxKind) -> bool {
26207        kind == SyntaxKind::JSON_ENCODING_CLAUSE
26208    }
26209    #[inline]
26210    fn cast(syntax: SyntaxNode) -> Option<Self> {
26211        if Self::can_cast(syntax.kind()) {
26212            Some(Self { syntax })
26213        } else {
26214            None
26215        }
26216    }
26217    #[inline]
26218    fn syntax(&self) -> &SyntaxNode {
26219        &self.syntax
26220    }
26221}
26222impl AstNode for JsonExistsFn {
26223    #[inline]
26224    fn can_cast(kind: SyntaxKind) -> bool {
26225        kind == SyntaxKind::JSON_EXISTS_FN
26226    }
26227    #[inline]
26228    fn cast(syntax: SyntaxNode) -> Option<Self> {
26229        if Self::can_cast(syntax.kind()) {
26230            Some(Self { syntax })
26231        } else {
26232            None
26233        }
26234    }
26235    #[inline]
26236    fn syntax(&self) -> &SyntaxNode {
26237        &self.syntax
26238    }
26239}
26240impl AstNode for JsonExprFormat {
26241    #[inline]
26242    fn can_cast(kind: SyntaxKind) -> bool {
26243        kind == SyntaxKind::JSON_EXPR_FORMAT
26244    }
26245    #[inline]
26246    fn cast(syntax: SyntaxNode) -> Option<Self> {
26247        if Self::can_cast(syntax.kind()) {
26248            Some(Self { syntax })
26249        } else {
26250            None
26251        }
26252    }
26253    #[inline]
26254    fn syntax(&self) -> &SyntaxNode {
26255        &self.syntax
26256    }
26257}
26258impl AstNode for JsonFn {
26259    #[inline]
26260    fn can_cast(kind: SyntaxKind) -> bool {
26261        kind == SyntaxKind::JSON_FN
26262    }
26263    #[inline]
26264    fn cast(syntax: SyntaxNode) -> Option<Self> {
26265        if Self::can_cast(syntax.kind()) {
26266            Some(Self { syntax })
26267        } else {
26268            None
26269        }
26270    }
26271    #[inline]
26272    fn syntax(&self) -> &SyntaxNode {
26273        &self.syntax
26274    }
26275}
26276impl AstNode for JsonFormatClause {
26277    #[inline]
26278    fn can_cast(kind: SyntaxKind) -> bool {
26279        kind == SyntaxKind::JSON_FORMAT_CLAUSE
26280    }
26281    #[inline]
26282    fn cast(syntax: SyntaxNode) -> Option<Self> {
26283        if Self::can_cast(syntax.kind()) {
26284            Some(Self { syntax })
26285        } else {
26286            None
26287        }
26288    }
26289    #[inline]
26290    fn syntax(&self) -> &SyntaxNode {
26291        &self.syntax
26292    }
26293}
26294impl AstNode for JsonKeyValue {
26295    #[inline]
26296    fn can_cast(kind: SyntaxKind) -> bool {
26297        kind == SyntaxKind::JSON_KEY_VALUE
26298    }
26299    #[inline]
26300    fn cast(syntax: SyntaxNode) -> Option<Self> {
26301        if Self::can_cast(syntax.kind()) {
26302            Some(Self { syntax })
26303        } else {
26304            None
26305        }
26306    }
26307    #[inline]
26308    fn syntax(&self) -> &SyntaxNode {
26309        &self.syntax
26310    }
26311}
26312impl AstNode for JsonKeysUniqueClause {
26313    #[inline]
26314    fn can_cast(kind: SyntaxKind) -> bool {
26315        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
26316    }
26317    #[inline]
26318    fn cast(syntax: SyntaxNode) -> Option<Self> {
26319        if Self::can_cast(syntax.kind()) {
26320            Some(Self { syntax })
26321        } else {
26322            None
26323        }
26324    }
26325    #[inline]
26326    fn syntax(&self) -> &SyntaxNode {
26327        &self.syntax
26328    }
26329}
26330impl AstNode for JsonNullClause {
26331    #[inline]
26332    fn can_cast(kind: SyntaxKind) -> bool {
26333        kind == SyntaxKind::JSON_NULL_CLAUSE
26334    }
26335    #[inline]
26336    fn cast(syntax: SyntaxNode) -> Option<Self> {
26337        if Self::can_cast(syntax.kind()) {
26338            Some(Self { syntax })
26339        } else {
26340            None
26341        }
26342    }
26343    #[inline]
26344    fn syntax(&self) -> &SyntaxNode {
26345        &self.syntax
26346    }
26347}
26348impl AstNode for JsonObjectAggFn {
26349    #[inline]
26350    fn can_cast(kind: SyntaxKind) -> bool {
26351        kind == SyntaxKind::JSON_OBJECT_AGG_FN
26352    }
26353    #[inline]
26354    fn cast(syntax: SyntaxNode) -> Option<Self> {
26355        if Self::can_cast(syntax.kind()) {
26356            Some(Self { syntax })
26357        } else {
26358            None
26359        }
26360    }
26361    #[inline]
26362    fn syntax(&self) -> &SyntaxNode {
26363        &self.syntax
26364    }
26365}
26366impl AstNode for JsonObjectFn {
26367    #[inline]
26368    fn can_cast(kind: SyntaxKind) -> bool {
26369        kind == SyntaxKind::JSON_OBJECT_FN
26370    }
26371    #[inline]
26372    fn cast(syntax: SyntaxNode) -> Option<Self> {
26373        if Self::can_cast(syntax.kind()) {
26374            Some(Self { syntax })
26375        } else {
26376            None
26377        }
26378    }
26379    #[inline]
26380    fn syntax(&self) -> &SyntaxNode {
26381        &self.syntax
26382    }
26383}
26384impl AstNode for JsonOnEmptyClause {
26385    #[inline]
26386    fn can_cast(kind: SyntaxKind) -> bool {
26387        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
26388    }
26389    #[inline]
26390    fn cast(syntax: SyntaxNode) -> Option<Self> {
26391        if Self::can_cast(syntax.kind()) {
26392            Some(Self { syntax })
26393        } else {
26394            None
26395        }
26396    }
26397    #[inline]
26398    fn syntax(&self) -> &SyntaxNode {
26399        &self.syntax
26400    }
26401}
26402impl AstNode for JsonOnErrorClause {
26403    #[inline]
26404    fn can_cast(kind: SyntaxKind) -> bool {
26405        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
26406    }
26407    #[inline]
26408    fn cast(syntax: SyntaxNode) -> Option<Self> {
26409        if Self::can_cast(syntax.kind()) {
26410            Some(Self { syntax })
26411        } else {
26412            None
26413        }
26414    }
26415    #[inline]
26416    fn syntax(&self) -> &SyntaxNode {
26417        &self.syntax
26418    }
26419}
26420impl AstNode for JsonPassingArg {
26421    #[inline]
26422    fn can_cast(kind: SyntaxKind) -> bool {
26423        kind == SyntaxKind::JSON_PASSING_ARG
26424    }
26425    #[inline]
26426    fn cast(syntax: SyntaxNode) -> Option<Self> {
26427        if Self::can_cast(syntax.kind()) {
26428            Some(Self { syntax })
26429        } else {
26430            None
26431        }
26432    }
26433    #[inline]
26434    fn syntax(&self) -> &SyntaxNode {
26435        &self.syntax
26436    }
26437}
26438impl AstNode for JsonPassingClause {
26439    #[inline]
26440    fn can_cast(kind: SyntaxKind) -> bool {
26441        kind == SyntaxKind::JSON_PASSING_CLAUSE
26442    }
26443    #[inline]
26444    fn cast(syntax: SyntaxNode) -> Option<Self> {
26445        if Self::can_cast(syntax.kind()) {
26446            Some(Self { syntax })
26447        } else {
26448            None
26449        }
26450    }
26451    #[inline]
26452    fn syntax(&self) -> &SyntaxNode {
26453        &self.syntax
26454    }
26455}
26456impl AstNode for JsonPathClause {
26457    #[inline]
26458    fn can_cast(kind: SyntaxKind) -> bool {
26459        kind == SyntaxKind::JSON_PATH_CLAUSE
26460    }
26461    #[inline]
26462    fn cast(syntax: SyntaxNode) -> Option<Self> {
26463        if Self::can_cast(syntax.kind()) {
26464            Some(Self { syntax })
26465        } else {
26466            None
26467        }
26468    }
26469    #[inline]
26470    fn syntax(&self) -> &SyntaxNode {
26471        &self.syntax
26472    }
26473}
26474impl AstNode for JsonQueryFn {
26475    #[inline]
26476    fn can_cast(kind: SyntaxKind) -> bool {
26477        kind == SyntaxKind::JSON_QUERY_FN
26478    }
26479    #[inline]
26480    fn cast(syntax: SyntaxNode) -> Option<Self> {
26481        if Self::can_cast(syntax.kind()) {
26482            Some(Self { syntax })
26483        } else {
26484            None
26485        }
26486    }
26487    #[inline]
26488    fn syntax(&self) -> &SyntaxNode {
26489        &self.syntax
26490    }
26491}
26492impl AstNode for JsonQuotesClause {
26493    #[inline]
26494    fn can_cast(kind: SyntaxKind) -> bool {
26495        kind == SyntaxKind::JSON_QUOTES_CLAUSE
26496    }
26497    #[inline]
26498    fn cast(syntax: SyntaxNode) -> Option<Self> {
26499        if Self::can_cast(syntax.kind()) {
26500            Some(Self { syntax })
26501        } else {
26502            None
26503        }
26504    }
26505    #[inline]
26506    fn syntax(&self) -> &SyntaxNode {
26507        &self.syntax
26508    }
26509}
26510impl AstNode for JsonReturningClause {
26511    #[inline]
26512    fn can_cast(kind: SyntaxKind) -> bool {
26513        kind == SyntaxKind::JSON_RETURNING_CLAUSE
26514    }
26515    #[inline]
26516    fn cast(syntax: SyntaxNode) -> Option<Self> {
26517        if Self::can_cast(syntax.kind()) {
26518            Some(Self { syntax })
26519        } else {
26520            None
26521        }
26522    }
26523    #[inline]
26524    fn syntax(&self) -> &SyntaxNode {
26525        &self.syntax
26526    }
26527}
26528impl AstNode for JsonScalarFn {
26529    #[inline]
26530    fn can_cast(kind: SyntaxKind) -> bool {
26531        kind == SyntaxKind::JSON_SCALAR_FN
26532    }
26533    #[inline]
26534    fn cast(syntax: SyntaxNode) -> Option<Self> {
26535        if Self::can_cast(syntax.kind()) {
26536            Some(Self { syntax })
26537        } else {
26538            None
26539        }
26540    }
26541    #[inline]
26542    fn syntax(&self) -> &SyntaxNode {
26543        &self.syntax
26544    }
26545}
26546impl AstNode for JsonSelectFormat {
26547    #[inline]
26548    fn can_cast(kind: SyntaxKind) -> bool {
26549        kind == SyntaxKind::JSON_SELECT_FORMAT
26550    }
26551    #[inline]
26552    fn cast(syntax: SyntaxNode) -> Option<Self> {
26553        if Self::can_cast(syntax.kind()) {
26554            Some(Self { syntax })
26555        } else {
26556            None
26557        }
26558    }
26559    #[inline]
26560    fn syntax(&self) -> &SyntaxNode {
26561        &self.syntax
26562    }
26563}
26564impl AstNode for JsonSerializeFn {
26565    #[inline]
26566    fn can_cast(kind: SyntaxKind) -> bool {
26567        kind == SyntaxKind::JSON_SERIALIZE_FN
26568    }
26569    #[inline]
26570    fn cast(syntax: SyntaxNode) -> Option<Self> {
26571        if Self::can_cast(syntax.kind()) {
26572            Some(Self { syntax })
26573        } else {
26574            None
26575        }
26576    }
26577    #[inline]
26578    fn syntax(&self) -> &SyntaxNode {
26579        &self.syntax
26580    }
26581}
26582impl AstNode for JsonTable {
26583    #[inline]
26584    fn can_cast(kind: SyntaxKind) -> bool {
26585        kind == SyntaxKind::JSON_TABLE
26586    }
26587    #[inline]
26588    fn cast(syntax: SyntaxNode) -> Option<Self> {
26589        if Self::can_cast(syntax.kind()) {
26590            Some(Self { syntax })
26591        } else {
26592            None
26593        }
26594    }
26595    #[inline]
26596    fn syntax(&self) -> &SyntaxNode {
26597        &self.syntax
26598    }
26599}
26600impl AstNode for JsonTableColumn {
26601    #[inline]
26602    fn can_cast(kind: SyntaxKind) -> bool {
26603        kind == SyntaxKind::JSON_TABLE_COLUMN
26604    }
26605    #[inline]
26606    fn cast(syntax: SyntaxNode) -> Option<Self> {
26607        if Self::can_cast(syntax.kind()) {
26608            Some(Self { syntax })
26609        } else {
26610            None
26611        }
26612    }
26613    #[inline]
26614    fn syntax(&self) -> &SyntaxNode {
26615        &self.syntax
26616    }
26617}
26618impl AstNode for JsonTableColumnList {
26619    #[inline]
26620    fn can_cast(kind: SyntaxKind) -> bool {
26621        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
26622    }
26623    #[inline]
26624    fn cast(syntax: SyntaxNode) -> Option<Self> {
26625        if Self::can_cast(syntax.kind()) {
26626            Some(Self { syntax })
26627        } else {
26628            None
26629        }
26630    }
26631    #[inline]
26632    fn syntax(&self) -> &SyntaxNode {
26633        &self.syntax
26634    }
26635}
26636impl AstNode for JsonValueExpr {
26637    #[inline]
26638    fn can_cast(kind: SyntaxKind) -> bool {
26639        kind == SyntaxKind::JSON_VALUE_EXPR
26640    }
26641    #[inline]
26642    fn cast(syntax: SyntaxNode) -> Option<Self> {
26643        if Self::can_cast(syntax.kind()) {
26644            Some(Self { syntax })
26645        } else {
26646            None
26647        }
26648    }
26649    #[inline]
26650    fn syntax(&self) -> &SyntaxNode {
26651        &self.syntax
26652    }
26653}
26654impl AstNode for JsonValueFn {
26655    #[inline]
26656    fn can_cast(kind: SyntaxKind) -> bool {
26657        kind == SyntaxKind::JSON_VALUE_FN
26658    }
26659    #[inline]
26660    fn cast(syntax: SyntaxNode) -> Option<Self> {
26661        if Self::can_cast(syntax.kind()) {
26662            Some(Self { syntax })
26663        } else {
26664            None
26665        }
26666    }
26667    #[inline]
26668    fn syntax(&self) -> &SyntaxNode {
26669        &self.syntax
26670    }
26671}
26672impl AstNode for JsonWrapperBehaviorClause {
26673    #[inline]
26674    fn can_cast(kind: SyntaxKind) -> bool {
26675        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
26676    }
26677    #[inline]
26678    fn cast(syntax: SyntaxNode) -> Option<Self> {
26679        if Self::can_cast(syntax.kind()) {
26680            Some(Self { syntax })
26681        } else {
26682            None
26683        }
26684    }
26685    #[inline]
26686    fn syntax(&self) -> &SyntaxNode {
26687        &self.syntax
26688    }
26689}
26690impl AstNode for LabelAndProperties {
26691    #[inline]
26692    fn can_cast(kind: SyntaxKind) -> bool {
26693        kind == SyntaxKind::LABEL_AND_PROPERTIES
26694    }
26695    #[inline]
26696    fn cast(syntax: SyntaxNode) -> Option<Self> {
26697        if Self::can_cast(syntax.kind()) {
26698            Some(Self { syntax })
26699        } else {
26700            None
26701        }
26702    }
26703    #[inline]
26704    fn syntax(&self) -> &SyntaxNode {
26705        &self.syntax
26706    }
26707}
26708impl AstNode for LabelAndPropertiesList {
26709    #[inline]
26710    fn can_cast(kind: SyntaxKind) -> bool {
26711        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
26712    }
26713    #[inline]
26714    fn cast(syntax: SyntaxNode) -> Option<Self> {
26715        if Self::can_cast(syntax.kind()) {
26716            Some(Self { syntax })
26717        } else {
26718            None
26719        }
26720    }
26721    #[inline]
26722    fn syntax(&self) -> &SyntaxNode {
26723        &self.syntax
26724    }
26725}
26726impl AstNode for LanguageFuncOption {
26727    #[inline]
26728    fn can_cast(kind: SyntaxKind) -> bool {
26729        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
26730    }
26731    #[inline]
26732    fn cast(syntax: SyntaxNode) -> Option<Self> {
26733        if Self::can_cast(syntax.kind()) {
26734            Some(Self { syntax })
26735        } else {
26736            None
26737        }
26738    }
26739    #[inline]
26740    fn syntax(&self) -> &SyntaxNode {
26741        &self.syntax
26742    }
26743}
26744impl AstNode for LeakproofFuncOption {
26745    #[inline]
26746    fn can_cast(kind: SyntaxKind) -> bool {
26747        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
26748    }
26749    #[inline]
26750    fn cast(syntax: SyntaxNode) -> Option<Self> {
26751        if Self::can_cast(syntax.kind()) {
26752            Some(Self { syntax })
26753        } else {
26754            None
26755        }
26756    }
26757    #[inline]
26758    fn syntax(&self) -> &SyntaxNode {
26759        &self.syntax
26760    }
26761}
26762impl AstNode for LikeClause {
26763    #[inline]
26764    fn can_cast(kind: SyntaxKind) -> bool {
26765        kind == SyntaxKind::LIKE_CLAUSE
26766    }
26767    #[inline]
26768    fn cast(syntax: SyntaxNode) -> Option<Self> {
26769        if Self::can_cast(syntax.kind()) {
26770            Some(Self { syntax })
26771        } else {
26772            None
26773        }
26774    }
26775    #[inline]
26776    fn syntax(&self) -> &SyntaxNode {
26777        &self.syntax
26778    }
26779}
26780impl AstNode for LikeOption {
26781    #[inline]
26782    fn can_cast(kind: SyntaxKind) -> bool {
26783        kind == SyntaxKind::LIKE_OPTION
26784    }
26785    #[inline]
26786    fn cast(syntax: SyntaxNode) -> Option<Self> {
26787        if Self::can_cast(syntax.kind()) {
26788            Some(Self { syntax })
26789        } else {
26790            None
26791        }
26792    }
26793    #[inline]
26794    fn syntax(&self) -> &SyntaxNode {
26795        &self.syntax
26796    }
26797}
26798impl AstNode for LimitClause {
26799    #[inline]
26800    fn can_cast(kind: SyntaxKind) -> bool {
26801        kind == SyntaxKind::LIMIT_CLAUSE
26802    }
26803    #[inline]
26804    fn cast(syntax: SyntaxNode) -> Option<Self> {
26805        if Self::can_cast(syntax.kind()) {
26806            Some(Self { syntax })
26807        } else {
26808            None
26809        }
26810    }
26811    #[inline]
26812    fn syntax(&self) -> &SyntaxNode {
26813        &self.syntax
26814    }
26815}
26816impl AstNode for LimitToTables {
26817    #[inline]
26818    fn can_cast(kind: SyntaxKind) -> bool {
26819        kind == SyntaxKind::LIMIT_TO_TABLES
26820    }
26821    #[inline]
26822    fn cast(syntax: SyntaxNode) -> Option<Self> {
26823        if Self::can_cast(syntax.kind()) {
26824            Some(Self { syntax })
26825        } else {
26826            None
26827        }
26828    }
26829    #[inline]
26830    fn syntax(&self) -> &SyntaxNode {
26831        &self.syntax
26832    }
26833}
26834impl AstNode for Listen {
26835    #[inline]
26836    fn can_cast(kind: SyntaxKind) -> bool {
26837        kind == SyntaxKind::LISTEN
26838    }
26839    #[inline]
26840    fn cast(syntax: SyntaxNode) -> Option<Self> {
26841        if Self::can_cast(syntax.kind()) {
26842            Some(Self { syntax })
26843        } else {
26844            None
26845        }
26846    }
26847    #[inline]
26848    fn syntax(&self) -> &SyntaxNode {
26849        &self.syntax
26850    }
26851}
26852impl AstNode for Literal {
26853    #[inline]
26854    fn can_cast(kind: SyntaxKind) -> bool {
26855        kind == SyntaxKind::LITERAL
26856    }
26857    #[inline]
26858    fn cast(syntax: SyntaxNode) -> Option<Self> {
26859        if Self::can_cast(syntax.kind()) {
26860            Some(Self { syntax })
26861        } else {
26862            None
26863        }
26864    }
26865    #[inline]
26866    fn syntax(&self) -> &SyntaxNode {
26867        &self.syntax
26868    }
26869}
26870impl AstNode for Load {
26871    #[inline]
26872    fn can_cast(kind: SyntaxKind) -> bool {
26873        kind == SyntaxKind::LOAD
26874    }
26875    #[inline]
26876    fn cast(syntax: SyntaxNode) -> Option<Self> {
26877        if Self::can_cast(syntax.kind()) {
26878            Some(Self { syntax })
26879        } else {
26880            None
26881        }
26882    }
26883    #[inline]
26884    fn syntax(&self) -> &SyntaxNode {
26885        &self.syntax
26886    }
26887}
26888impl AstNode for Lock {
26889    #[inline]
26890    fn can_cast(kind: SyntaxKind) -> bool {
26891        kind == SyntaxKind::LOCK
26892    }
26893    #[inline]
26894    fn cast(syntax: SyntaxNode) -> Option<Self> {
26895        if Self::can_cast(syntax.kind()) {
26896            Some(Self { syntax })
26897        } else {
26898            None
26899        }
26900    }
26901    #[inline]
26902    fn syntax(&self) -> &SyntaxNode {
26903        &self.syntax
26904    }
26905}
26906impl AstNode for LockingClause {
26907    #[inline]
26908    fn can_cast(kind: SyntaxKind) -> bool {
26909        kind == SyntaxKind::LOCKING_CLAUSE
26910    }
26911    #[inline]
26912    fn cast(syntax: SyntaxNode) -> Option<Self> {
26913        if Self::can_cast(syntax.kind()) {
26914            Some(Self { syntax })
26915        } else {
26916            None
26917        }
26918    }
26919    #[inline]
26920    fn syntax(&self) -> &SyntaxNode {
26921        &self.syntax
26922    }
26923}
26924impl AstNode for Lteq {
26925    #[inline]
26926    fn can_cast(kind: SyntaxKind) -> bool {
26927        kind == SyntaxKind::LTEQ
26928    }
26929    #[inline]
26930    fn cast(syntax: SyntaxNode) -> Option<Self> {
26931        if Self::can_cast(syntax.kind()) {
26932            Some(Self { syntax })
26933        } else {
26934            None
26935        }
26936    }
26937    #[inline]
26938    fn syntax(&self) -> &SyntaxNode {
26939        &self.syntax
26940    }
26941}
26942impl AstNode for MatchFull {
26943    #[inline]
26944    fn can_cast(kind: SyntaxKind) -> bool {
26945        kind == SyntaxKind::MATCH_FULL
26946    }
26947    #[inline]
26948    fn cast(syntax: SyntaxNode) -> Option<Self> {
26949        if Self::can_cast(syntax.kind()) {
26950            Some(Self { syntax })
26951        } else {
26952            None
26953        }
26954    }
26955    #[inline]
26956    fn syntax(&self) -> &SyntaxNode {
26957        &self.syntax
26958    }
26959}
26960impl AstNode for MatchPartial {
26961    #[inline]
26962    fn can_cast(kind: SyntaxKind) -> bool {
26963        kind == SyntaxKind::MATCH_PARTIAL
26964    }
26965    #[inline]
26966    fn cast(syntax: SyntaxNode) -> Option<Self> {
26967        if Self::can_cast(syntax.kind()) {
26968            Some(Self { syntax })
26969        } else {
26970            None
26971        }
26972    }
26973    #[inline]
26974    fn syntax(&self) -> &SyntaxNode {
26975        &self.syntax
26976    }
26977}
26978impl AstNode for MatchSimple {
26979    #[inline]
26980    fn can_cast(kind: SyntaxKind) -> bool {
26981        kind == SyntaxKind::MATCH_SIMPLE
26982    }
26983    #[inline]
26984    fn cast(syntax: SyntaxNode) -> Option<Self> {
26985        if Self::can_cast(syntax.kind()) {
26986            Some(Self { syntax })
26987        } else {
26988            None
26989        }
26990    }
26991    #[inline]
26992    fn syntax(&self) -> &SyntaxNode {
26993        &self.syntax
26994    }
26995}
26996impl AstNode for Materialized {
26997    #[inline]
26998    fn can_cast(kind: SyntaxKind) -> bool {
26999        kind == SyntaxKind::MATERIALIZED
27000    }
27001    #[inline]
27002    fn cast(syntax: SyntaxNode) -> Option<Self> {
27003        if Self::can_cast(syntax.kind()) {
27004            Some(Self { syntax })
27005        } else {
27006            None
27007        }
27008    }
27009    #[inline]
27010    fn syntax(&self) -> &SyntaxNode {
27011        &self.syntax
27012    }
27013}
27014impl AstNode for Merge {
27015    #[inline]
27016    fn can_cast(kind: SyntaxKind) -> bool {
27017        kind == SyntaxKind::MERGE
27018    }
27019    #[inline]
27020    fn cast(syntax: SyntaxNode) -> Option<Self> {
27021        if Self::can_cast(syntax.kind()) {
27022            Some(Self { syntax })
27023        } else {
27024            None
27025        }
27026    }
27027    #[inline]
27028    fn syntax(&self) -> &SyntaxNode {
27029        &self.syntax
27030    }
27031}
27032impl AstNode for MergeDelete {
27033    #[inline]
27034    fn can_cast(kind: SyntaxKind) -> bool {
27035        kind == SyntaxKind::MERGE_DELETE
27036    }
27037    #[inline]
27038    fn cast(syntax: SyntaxNode) -> Option<Self> {
27039        if Self::can_cast(syntax.kind()) {
27040            Some(Self { syntax })
27041        } else {
27042            None
27043        }
27044    }
27045    #[inline]
27046    fn syntax(&self) -> &SyntaxNode {
27047        &self.syntax
27048    }
27049}
27050impl AstNode for MergeDoNothing {
27051    #[inline]
27052    fn can_cast(kind: SyntaxKind) -> bool {
27053        kind == SyntaxKind::MERGE_DO_NOTHING
27054    }
27055    #[inline]
27056    fn cast(syntax: SyntaxNode) -> Option<Self> {
27057        if Self::can_cast(syntax.kind()) {
27058            Some(Self { syntax })
27059        } else {
27060            None
27061        }
27062    }
27063    #[inline]
27064    fn syntax(&self) -> &SyntaxNode {
27065        &self.syntax
27066    }
27067}
27068impl AstNode for MergeInsert {
27069    #[inline]
27070    fn can_cast(kind: SyntaxKind) -> bool {
27071        kind == SyntaxKind::MERGE_INSERT
27072    }
27073    #[inline]
27074    fn cast(syntax: SyntaxNode) -> Option<Self> {
27075        if Self::can_cast(syntax.kind()) {
27076            Some(Self { syntax })
27077        } else {
27078            None
27079        }
27080    }
27081    #[inline]
27082    fn syntax(&self) -> &SyntaxNode {
27083        &self.syntax
27084    }
27085}
27086impl AstNode for MergePartitions {
27087    #[inline]
27088    fn can_cast(kind: SyntaxKind) -> bool {
27089        kind == SyntaxKind::MERGE_PARTITIONS
27090    }
27091    #[inline]
27092    fn cast(syntax: SyntaxNode) -> Option<Self> {
27093        if Self::can_cast(syntax.kind()) {
27094            Some(Self { syntax })
27095        } else {
27096            None
27097        }
27098    }
27099    #[inline]
27100    fn syntax(&self) -> &SyntaxNode {
27101        &self.syntax
27102    }
27103}
27104impl AstNode for MergeUpdate {
27105    #[inline]
27106    fn can_cast(kind: SyntaxKind) -> bool {
27107        kind == SyntaxKind::MERGE_UPDATE
27108    }
27109    #[inline]
27110    fn cast(syntax: SyntaxNode) -> Option<Self> {
27111        if Self::can_cast(syntax.kind()) {
27112            Some(Self { syntax })
27113        } else {
27114            None
27115        }
27116    }
27117    #[inline]
27118    fn syntax(&self) -> &SyntaxNode {
27119        &self.syntax
27120    }
27121}
27122impl AstNode for MergeWhenMatched {
27123    #[inline]
27124    fn can_cast(kind: SyntaxKind) -> bool {
27125        kind == SyntaxKind::MERGE_WHEN_MATCHED
27126    }
27127    #[inline]
27128    fn cast(syntax: SyntaxNode) -> Option<Self> {
27129        if Self::can_cast(syntax.kind()) {
27130            Some(Self { syntax })
27131        } else {
27132            None
27133        }
27134    }
27135    #[inline]
27136    fn syntax(&self) -> &SyntaxNode {
27137        &self.syntax
27138    }
27139}
27140impl AstNode for MergeWhenNotMatchedSource {
27141    #[inline]
27142    fn can_cast(kind: SyntaxKind) -> bool {
27143        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
27144    }
27145    #[inline]
27146    fn cast(syntax: SyntaxNode) -> Option<Self> {
27147        if Self::can_cast(syntax.kind()) {
27148            Some(Self { syntax })
27149        } else {
27150            None
27151        }
27152    }
27153    #[inline]
27154    fn syntax(&self) -> &SyntaxNode {
27155        &self.syntax
27156    }
27157}
27158impl AstNode for MergeWhenNotMatchedTarget {
27159    #[inline]
27160    fn can_cast(kind: SyntaxKind) -> bool {
27161        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
27162    }
27163    #[inline]
27164    fn cast(syntax: SyntaxNode) -> Option<Self> {
27165        if Self::can_cast(syntax.kind()) {
27166            Some(Self { syntax })
27167        } else {
27168            None
27169        }
27170    }
27171    #[inline]
27172    fn syntax(&self) -> &SyntaxNode {
27173        &self.syntax
27174    }
27175}
27176impl AstNode for Move {
27177    #[inline]
27178    fn can_cast(kind: SyntaxKind) -> bool {
27179        kind == SyntaxKind::MOVE
27180    }
27181    #[inline]
27182    fn cast(syntax: SyntaxNode) -> Option<Self> {
27183        if Self::can_cast(syntax.kind()) {
27184            Some(Self { syntax })
27185        } else {
27186            None
27187        }
27188    }
27189    #[inline]
27190    fn syntax(&self) -> &SyntaxNode {
27191        &self.syntax
27192    }
27193}
27194impl AstNode for Name {
27195    #[inline]
27196    fn can_cast(kind: SyntaxKind) -> bool {
27197        kind == SyntaxKind::NAME
27198    }
27199    #[inline]
27200    fn cast(syntax: SyntaxNode) -> Option<Self> {
27201        if Self::can_cast(syntax.kind()) {
27202            Some(Self { syntax })
27203        } else {
27204            None
27205        }
27206    }
27207    #[inline]
27208    fn syntax(&self) -> &SyntaxNode {
27209        &self.syntax
27210    }
27211}
27212impl AstNode for NameRef {
27213    #[inline]
27214    fn can_cast(kind: SyntaxKind) -> bool {
27215        kind == SyntaxKind::NAME_REF
27216    }
27217    #[inline]
27218    fn cast(syntax: SyntaxNode) -> Option<Self> {
27219        if Self::can_cast(syntax.kind()) {
27220            Some(Self { syntax })
27221        } else {
27222            None
27223        }
27224    }
27225    #[inline]
27226    fn syntax(&self) -> &SyntaxNode {
27227        &self.syntax
27228    }
27229}
27230impl AstNode for NamedArg {
27231    #[inline]
27232    fn can_cast(kind: SyntaxKind) -> bool {
27233        kind == SyntaxKind::NAMED_ARG
27234    }
27235    #[inline]
27236    fn cast(syntax: SyntaxNode) -> Option<Self> {
27237        if Self::can_cast(syntax.kind()) {
27238            Some(Self { syntax })
27239        } else {
27240            None
27241        }
27242    }
27243    #[inline]
27244    fn syntax(&self) -> &SyntaxNode {
27245        &self.syntax
27246    }
27247}
27248impl AstNode for Neq {
27249    #[inline]
27250    fn can_cast(kind: SyntaxKind) -> bool {
27251        kind == SyntaxKind::NEQ
27252    }
27253    #[inline]
27254    fn cast(syntax: SyntaxNode) -> Option<Self> {
27255        if Self::can_cast(syntax.kind()) {
27256            Some(Self { syntax })
27257        } else {
27258            None
27259        }
27260    }
27261    #[inline]
27262    fn syntax(&self) -> &SyntaxNode {
27263        &self.syntax
27264    }
27265}
27266impl AstNode for Neqb {
27267    #[inline]
27268    fn can_cast(kind: SyntaxKind) -> bool {
27269        kind == SyntaxKind::NEQB
27270    }
27271    #[inline]
27272    fn cast(syntax: SyntaxNode) -> Option<Self> {
27273        if Self::can_cast(syntax.kind()) {
27274            Some(Self { syntax })
27275        } else {
27276            None
27277        }
27278    }
27279    #[inline]
27280    fn syntax(&self) -> &SyntaxNode {
27281        &self.syntax
27282    }
27283}
27284impl AstNode for NoAction {
27285    #[inline]
27286    fn can_cast(kind: SyntaxKind) -> bool {
27287        kind == SyntaxKind::NO_ACTION
27288    }
27289    #[inline]
27290    fn cast(syntax: SyntaxNode) -> Option<Self> {
27291        if Self::can_cast(syntax.kind()) {
27292            Some(Self { syntax })
27293        } else {
27294            None
27295        }
27296    }
27297    #[inline]
27298    fn syntax(&self) -> &SyntaxNode {
27299        &self.syntax
27300    }
27301}
27302impl AstNode for NoDependsOnExtension {
27303    #[inline]
27304    fn can_cast(kind: SyntaxKind) -> bool {
27305        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
27306    }
27307    #[inline]
27308    fn cast(syntax: SyntaxNode) -> Option<Self> {
27309        if Self::can_cast(syntax.kind()) {
27310            Some(Self { syntax })
27311        } else {
27312            None
27313        }
27314    }
27315    #[inline]
27316    fn syntax(&self) -> &SyntaxNode {
27317        &self.syntax
27318    }
27319}
27320impl AstNode for NoForceRls {
27321    #[inline]
27322    fn can_cast(kind: SyntaxKind) -> bool {
27323        kind == SyntaxKind::NO_FORCE_RLS
27324    }
27325    #[inline]
27326    fn cast(syntax: SyntaxNode) -> Option<Self> {
27327        if Self::can_cast(syntax.kind()) {
27328            Some(Self { syntax })
27329        } else {
27330            None
27331        }
27332    }
27333    #[inline]
27334    fn syntax(&self) -> &SyntaxNode {
27335        &self.syntax
27336    }
27337}
27338impl AstNode for NoInherit {
27339    #[inline]
27340    fn can_cast(kind: SyntaxKind) -> bool {
27341        kind == SyntaxKind::NO_INHERIT
27342    }
27343    #[inline]
27344    fn cast(syntax: SyntaxNode) -> Option<Self> {
27345        if Self::can_cast(syntax.kind()) {
27346            Some(Self { syntax })
27347        } else {
27348            None
27349        }
27350    }
27351    #[inline]
27352    fn syntax(&self) -> &SyntaxNode {
27353        &self.syntax
27354    }
27355}
27356impl AstNode for NoInheritTable {
27357    #[inline]
27358    fn can_cast(kind: SyntaxKind) -> bool {
27359        kind == SyntaxKind::NO_INHERIT_TABLE
27360    }
27361    #[inline]
27362    fn cast(syntax: SyntaxNode) -> Option<Self> {
27363        if Self::can_cast(syntax.kind()) {
27364            Some(Self { syntax })
27365        } else {
27366            None
27367        }
27368    }
27369    #[inline]
27370    fn syntax(&self) -> &SyntaxNode {
27371        &self.syntax
27372    }
27373}
27374impl AstNode for NoProperties {
27375    #[inline]
27376    fn can_cast(kind: SyntaxKind) -> bool {
27377        kind == SyntaxKind::NO_PROPERTIES
27378    }
27379    #[inline]
27380    fn cast(syntax: SyntaxNode) -> Option<Self> {
27381        if Self::can_cast(syntax.kind()) {
27382            Some(Self { syntax })
27383        } else {
27384            None
27385        }
27386    }
27387    #[inline]
27388    fn syntax(&self) -> &SyntaxNode {
27389        &self.syntax
27390    }
27391}
27392impl AstNode for NonStandardParam {
27393    #[inline]
27394    fn can_cast(kind: SyntaxKind) -> bool {
27395        kind == SyntaxKind::NON_STANDARD_PARAM
27396    }
27397    #[inline]
27398    fn cast(syntax: SyntaxNode) -> Option<Self> {
27399        if Self::can_cast(syntax.kind()) {
27400            Some(Self { syntax })
27401        } else {
27402            None
27403        }
27404    }
27405    #[inline]
27406    fn syntax(&self) -> &SyntaxNode {
27407        &self.syntax
27408    }
27409}
27410impl AstNode for NotDeferrable {
27411    #[inline]
27412    fn can_cast(kind: SyntaxKind) -> bool {
27413        kind == SyntaxKind::NOT_DEFERRABLE
27414    }
27415    #[inline]
27416    fn cast(syntax: SyntaxNode) -> Option<Self> {
27417        if Self::can_cast(syntax.kind()) {
27418            Some(Self { syntax })
27419        } else {
27420            None
27421        }
27422    }
27423    #[inline]
27424    fn syntax(&self) -> &SyntaxNode {
27425        &self.syntax
27426    }
27427}
27428impl AstNode for NotDeferrableConstraintOption {
27429    #[inline]
27430    fn can_cast(kind: SyntaxKind) -> bool {
27431        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
27432    }
27433    #[inline]
27434    fn cast(syntax: SyntaxNode) -> Option<Self> {
27435        if Self::can_cast(syntax.kind()) {
27436            Some(Self { syntax })
27437        } else {
27438            None
27439        }
27440    }
27441    #[inline]
27442    fn syntax(&self) -> &SyntaxNode {
27443        &self.syntax
27444    }
27445}
27446impl AstNode for NotEnforced {
27447    #[inline]
27448    fn can_cast(kind: SyntaxKind) -> bool {
27449        kind == SyntaxKind::NOT_ENFORCED
27450    }
27451    #[inline]
27452    fn cast(syntax: SyntaxNode) -> Option<Self> {
27453        if Self::can_cast(syntax.kind()) {
27454            Some(Self { syntax })
27455        } else {
27456            None
27457        }
27458    }
27459    #[inline]
27460    fn syntax(&self) -> &SyntaxNode {
27461        &self.syntax
27462    }
27463}
27464impl AstNode for NotIlike {
27465    #[inline]
27466    fn can_cast(kind: SyntaxKind) -> bool {
27467        kind == SyntaxKind::NOT_ILIKE
27468    }
27469    #[inline]
27470    fn cast(syntax: SyntaxNode) -> Option<Self> {
27471        if Self::can_cast(syntax.kind()) {
27472            Some(Self { syntax })
27473        } else {
27474            None
27475        }
27476    }
27477    #[inline]
27478    fn syntax(&self) -> &SyntaxNode {
27479        &self.syntax
27480    }
27481}
27482impl AstNode for NotIn {
27483    #[inline]
27484    fn can_cast(kind: SyntaxKind) -> bool {
27485        kind == SyntaxKind::NOT_IN
27486    }
27487    #[inline]
27488    fn cast(syntax: SyntaxNode) -> Option<Self> {
27489        if Self::can_cast(syntax.kind()) {
27490            Some(Self { syntax })
27491        } else {
27492            None
27493        }
27494    }
27495    #[inline]
27496    fn syntax(&self) -> &SyntaxNode {
27497        &self.syntax
27498    }
27499}
27500impl AstNode for NotLike {
27501    #[inline]
27502    fn can_cast(kind: SyntaxKind) -> bool {
27503        kind == SyntaxKind::NOT_LIKE
27504    }
27505    #[inline]
27506    fn cast(syntax: SyntaxNode) -> Option<Self> {
27507        if Self::can_cast(syntax.kind()) {
27508            Some(Self { syntax })
27509        } else {
27510            None
27511        }
27512    }
27513    #[inline]
27514    fn syntax(&self) -> &SyntaxNode {
27515        &self.syntax
27516    }
27517}
27518impl AstNode for NotMaterialized {
27519    #[inline]
27520    fn can_cast(kind: SyntaxKind) -> bool {
27521        kind == SyntaxKind::NOT_MATERIALIZED
27522    }
27523    #[inline]
27524    fn cast(syntax: SyntaxNode) -> Option<Self> {
27525        if Self::can_cast(syntax.kind()) {
27526            Some(Self { syntax })
27527        } else {
27528            None
27529        }
27530    }
27531    #[inline]
27532    fn syntax(&self) -> &SyntaxNode {
27533        &self.syntax
27534    }
27535}
27536impl AstNode for NotNullConstraint {
27537    #[inline]
27538    fn can_cast(kind: SyntaxKind) -> bool {
27539        kind == SyntaxKind::NOT_NULL_CONSTRAINT
27540    }
27541    #[inline]
27542    fn cast(syntax: SyntaxNode) -> Option<Self> {
27543        if Self::can_cast(syntax.kind()) {
27544            Some(Self { syntax })
27545        } else {
27546            None
27547        }
27548    }
27549    #[inline]
27550    fn syntax(&self) -> &SyntaxNode {
27551        &self.syntax
27552    }
27553}
27554impl AstNode for NotOf {
27555    #[inline]
27556    fn can_cast(kind: SyntaxKind) -> bool {
27557        kind == SyntaxKind::NOT_OF
27558    }
27559    #[inline]
27560    fn cast(syntax: SyntaxNode) -> Option<Self> {
27561        if Self::can_cast(syntax.kind()) {
27562            Some(Self { syntax })
27563        } else {
27564            None
27565        }
27566    }
27567    #[inline]
27568    fn syntax(&self) -> &SyntaxNode {
27569        &self.syntax
27570    }
27571}
27572impl AstNode for NotSimilarTo {
27573    #[inline]
27574    fn can_cast(kind: SyntaxKind) -> bool {
27575        kind == SyntaxKind::NOT_SIMILAR_TO
27576    }
27577    #[inline]
27578    fn cast(syntax: SyntaxNode) -> Option<Self> {
27579        if Self::can_cast(syntax.kind()) {
27580            Some(Self { syntax })
27581        } else {
27582            None
27583        }
27584    }
27585    #[inline]
27586    fn syntax(&self) -> &SyntaxNode {
27587        &self.syntax
27588    }
27589}
27590impl AstNode for NotValid {
27591    #[inline]
27592    fn can_cast(kind: SyntaxKind) -> bool {
27593        kind == SyntaxKind::NOT_VALID
27594    }
27595    #[inline]
27596    fn cast(syntax: SyntaxNode) -> Option<Self> {
27597        if Self::can_cast(syntax.kind()) {
27598            Some(Self { syntax })
27599        } else {
27600            None
27601        }
27602    }
27603    #[inline]
27604    fn syntax(&self) -> &SyntaxNode {
27605        &self.syntax
27606    }
27607}
27608impl AstNode for Nothing {
27609    #[inline]
27610    fn can_cast(kind: SyntaxKind) -> bool {
27611        kind == SyntaxKind::NOTHING
27612    }
27613    #[inline]
27614    fn cast(syntax: SyntaxNode) -> Option<Self> {
27615        if Self::can_cast(syntax.kind()) {
27616            Some(Self { syntax })
27617        } else {
27618            None
27619        }
27620    }
27621    #[inline]
27622    fn syntax(&self) -> &SyntaxNode {
27623        &self.syntax
27624    }
27625}
27626impl AstNode for Notify {
27627    #[inline]
27628    fn can_cast(kind: SyntaxKind) -> bool {
27629        kind == SyntaxKind::NOTIFY
27630    }
27631    #[inline]
27632    fn cast(syntax: SyntaxNode) -> Option<Self> {
27633        if Self::can_cast(syntax.kind()) {
27634            Some(Self { syntax })
27635        } else {
27636            None
27637        }
27638    }
27639    #[inline]
27640    fn syntax(&self) -> &SyntaxNode {
27641        &self.syntax
27642    }
27643}
27644impl AstNode for NullConstraint {
27645    #[inline]
27646    fn can_cast(kind: SyntaxKind) -> bool {
27647        kind == SyntaxKind::NULL_CONSTRAINT
27648    }
27649    #[inline]
27650    fn cast(syntax: SyntaxNode) -> Option<Self> {
27651        if Self::can_cast(syntax.kind()) {
27652            Some(Self { syntax })
27653        } else {
27654            None
27655        }
27656    }
27657    #[inline]
27658    fn syntax(&self) -> &SyntaxNode {
27659        &self.syntax
27660    }
27661}
27662impl AstNode for NullsDistinct {
27663    #[inline]
27664    fn can_cast(kind: SyntaxKind) -> bool {
27665        kind == SyntaxKind::NULLS_DISTINCT
27666    }
27667    #[inline]
27668    fn cast(syntax: SyntaxNode) -> Option<Self> {
27669        if Self::can_cast(syntax.kind()) {
27670            Some(Self { syntax })
27671        } else {
27672            None
27673        }
27674    }
27675    #[inline]
27676    fn syntax(&self) -> &SyntaxNode {
27677        &self.syntax
27678    }
27679}
27680impl AstNode for NullsFirst {
27681    #[inline]
27682    fn can_cast(kind: SyntaxKind) -> bool {
27683        kind == SyntaxKind::NULLS_FIRST
27684    }
27685    #[inline]
27686    fn cast(syntax: SyntaxNode) -> Option<Self> {
27687        if Self::can_cast(syntax.kind()) {
27688            Some(Self { syntax })
27689        } else {
27690            None
27691        }
27692    }
27693    #[inline]
27694    fn syntax(&self) -> &SyntaxNode {
27695        &self.syntax
27696    }
27697}
27698impl AstNode for NullsLast {
27699    #[inline]
27700    fn can_cast(kind: SyntaxKind) -> bool {
27701        kind == SyntaxKind::NULLS_LAST
27702    }
27703    #[inline]
27704    fn cast(syntax: SyntaxNode) -> Option<Self> {
27705        if Self::can_cast(syntax.kind()) {
27706            Some(Self { syntax })
27707        } else {
27708            None
27709        }
27710    }
27711    #[inline]
27712    fn syntax(&self) -> &SyntaxNode {
27713        &self.syntax
27714    }
27715}
27716impl AstNode for NullsNotDistinct {
27717    #[inline]
27718    fn can_cast(kind: SyntaxKind) -> bool {
27719        kind == SyntaxKind::NULLS_NOT_DISTINCT
27720    }
27721    #[inline]
27722    fn cast(syntax: SyntaxNode) -> Option<Self> {
27723        if Self::can_cast(syntax.kind()) {
27724            Some(Self { syntax })
27725        } else {
27726            None
27727        }
27728    }
27729    #[inline]
27730    fn syntax(&self) -> &SyntaxNode {
27731        &self.syntax
27732    }
27733}
27734impl AstNode for OfType {
27735    #[inline]
27736    fn can_cast(kind: SyntaxKind) -> bool {
27737        kind == SyntaxKind::OF_TYPE
27738    }
27739    #[inline]
27740    fn cast(syntax: SyntaxNode) -> Option<Self> {
27741        if Self::can_cast(syntax.kind()) {
27742            Some(Self { syntax })
27743        } else {
27744            None
27745        }
27746    }
27747    #[inline]
27748    fn syntax(&self) -> &SyntaxNode {
27749        &self.syntax
27750    }
27751}
27752impl AstNode for OffsetClause {
27753    #[inline]
27754    fn can_cast(kind: SyntaxKind) -> bool {
27755        kind == SyntaxKind::OFFSET_CLAUSE
27756    }
27757    #[inline]
27758    fn cast(syntax: SyntaxNode) -> Option<Self> {
27759        if Self::can_cast(syntax.kind()) {
27760            Some(Self { syntax })
27761        } else {
27762            None
27763        }
27764    }
27765    #[inline]
27766    fn syntax(&self) -> &SyntaxNode {
27767        &self.syntax
27768    }
27769}
27770impl AstNode for OnClause {
27771    #[inline]
27772    fn can_cast(kind: SyntaxKind) -> bool {
27773        kind == SyntaxKind::ON_CLAUSE
27774    }
27775    #[inline]
27776    fn cast(syntax: SyntaxNode) -> Option<Self> {
27777        if Self::can_cast(syntax.kind()) {
27778            Some(Self { syntax })
27779        } else {
27780            None
27781        }
27782    }
27783    #[inline]
27784    fn syntax(&self) -> &SyntaxNode {
27785        &self.syntax
27786    }
27787}
27788impl AstNode for OnCommit {
27789    #[inline]
27790    fn can_cast(kind: SyntaxKind) -> bool {
27791        kind == SyntaxKind::ON_COMMIT
27792    }
27793    #[inline]
27794    fn cast(syntax: SyntaxNode) -> Option<Self> {
27795        if Self::can_cast(syntax.kind()) {
27796            Some(Self { syntax })
27797        } else {
27798            None
27799        }
27800    }
27801    #[inline]
27802    fn syntax(&self) -> &SyntaxNode {
27803        &self.syntax
27804    }
27805}
27806impl AstNode for OnConflictClause {
27807    #[inline]
27808    fn can_cast(kind: SyntaxKind) -> bool {
27809        kind == SyntaxKind::ON_CONFLICT_CLAUSE
27810    }
27811    #[inline]
27812    fn cast(syntax: SyntaxNode) -> Option<Self> {
27813        if Self::can_cast(syntax.kind()) {
27814            Some(Self { syntax })
27815        } else {
27816            None
27817        }
27818    }
27819    #[inline]
27820    fn syntax(&self) -> &SyntaxNode {
27821        &self.syntax
27822    }
27823}
27824impl AstNode for OnDeleteAction {
27825    #[inline]
27826    fn can_cast(kind: SyntaxKind) -> bool {
27827        kind == SyntaxKind::ON_DELETE_ACTION
27828    }
27829    #[inline]
27830    fn cast(syntax: SyntaxNode) -> Option<Self> {
27831        if Self::can_cast(syntax.kind()) {
27832            Some(Self { syntax })
27833        } else {
27834            None
27835        }
27836    }
27837    #[inline]
27838    fn syntax(&self) -> &SyntaxNode {
27839        &self.syntax
27840    }
27841}
27842impl AstNode for OnPath {
27843    #[inline]
27844    fn can_cast(kind: SyntaxKind) -> bool {
27845        kind == SyntaxKind::ON_PATH
27846    }
27847    #[inline]
27848    fn cast(syntax: SyntaxNode) -> Option<Self> {
27849        if Self::can_cast(syntax.kind()) {
27850            Some(Self { syntax })
27851        } else {
27852            None
27853        }
27854    }
27855    #[inline]
27856    fn syntax(&self) -> &SyntaxNode {
27857        &self.syntax
27858    }
27859}
27860impl AstNode for OnTable {
27861    #[inline]
27862    fn can_cast(kind: SyntaxKind) -> bool {
27863        kind == SyntaxKind::ON_TABLE
27864    }
27865    #[inline]
27866    fn cast(syntax: SyntaxNode) -> Option<Self> {
27867        if Self::can_cast(syntax.kind()) {
27868            Some(Self { syntax })
27869        } else {
27870            None
27871        }
27872    }
27873    #[inline]
27874    fn syntax(&self) -> &SyntaxNode {
27875        &self.syntax
27876    }
27877}
27878impl AstNode for OnUpdateAction {
27879    #[inline]
27880    fn can_cast(kind: SyntaxKind) -> bool {
27881        kind == SyntaxKind::ON_UPDATE_ACTION
27882    }
27883    #[inline]
27884    fn cast(syntax: SyntaxNode) -> Option<Self> {
27885        if Self::can_cast(syntax.kind()) {
27886            Some(Self { syntax })
27887        } else {
27888            None
27889        }
27890    }
27891    #[inline]
27892    fn syntax(&self) -> &SyntaxNode {
27893        &self.syntax
27894    }
27895}
27896impl AstNode for Op {
27897    #[inline]
27898    fn can_cast(kind: SyntaxKind) -> bool {
27899        kind == SyntaxKind::OP
27900    }
27901    #[inline]
27902    fn cast(syntax: SyntaxNode) -> Option<Self> {
27903        if Self::can_cast(syntax.kind()) {
27904            Some(Self { syntax })
27905        } else {
27906            None
27907        }
27908    }
27909    #[inline]
27910    fn syntax(&self) -> &SyntaxNode {
27911        &self.syntax
27912    }
27913}
27914impl AstNode for OpClassOption {
27915    #[inline]
27916    fn can_cast(kind: SyntaxKind) -> bool {
27917        kind == SyntaxKind::OP_CLASS_OPTION
27918    }
27919    #[inline]
27920    fn cast(syntax: SyntaxNode) -> Option<Self> {
27921        if Self::can_cast(syntax.kind()) {
27922            Some(Self { syntax })
27923        } else {
27924            None
27925        }
27926    }
27927    #[inline]
27928    fn syntax(&self) -> &SyntaxNode {
27929        &self.syntax
27930    }
27931}
27932impl AstNode for OpSig {
27933    #[inline]
27934    fn can_cast(kind: SyntaxKind) -> bool {
27935        kind == SyntaxKind::OP_SIG
27936    }
27937    #[inline]
27938    fn cast(syntax: SyntaxNode) -> Option<Self> {
27939        if Self::can_cast(syntax.kind()) {
27940            Some(Self { syntax })
27941        } else {
27942            None
27943        }
27944    }
27945    #[inline]
27946    fn syntax(&self) -> &SyntaxNode {
27947        &self.syntax
27948    }
27949}
27950impl AstNode for OpSigList {
27951    #[inline]
27952    fn can_cast(kind: SyntaxKind) -> bool {
27953        kind == SyntaxKind::OP_SIG_LIST
27954    }
27955    #[inline]
27956    fn cast(syntax: SyntaxNode) -> Option<Self> {
27957        if Self::can_cast(syntax.kind()) {
27958            Some(Self { syntax })
27959        } else {
27960            None
27961        }
27962    }
27963    #[inline]
27964    fn syntax(&self) -> &SyntaxNode {
27965        &self.syntax
27966    }
27967}
27968impl AstNode for OperatorCall {
27969    #[inline]
27970    fn can_cast(kind: SyntaxKind) -> bool {
27971        kind == SyntaxKind::OPERATOR_CALL
27972    }
27973    #[inline]
27974    fn cast(syntax: SyntaxNode) -> Option<Self> {
27975        if Self::can_cast(syntax.kind()) {
27976            Some(Self { syntax })
27977        } else {
27978            None
27979        }
27980    }
27981    #[inline]
27982    fn syntax(&self) -> &SyntaxNode {
27983        &self.syntax
27984    }
27985}
27986impl AstNode for OperatorClassOptionList {
27987    #[inline]
27988    fn can_cast(kind: SyntaxKind) -> bool {
27989        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27990    }
27991    #[inline]
27992    fn cast(syntax: SyntaxNode) -> Option<Self> {
27993        if Self::can_cast(syntax.kind()) {
27994            Some(Self { syntax })
27995        } else {
27996            None
27997        }
27998    }
27999    #[inline]
28000    fn syntax(&self) -> &SyntaxNode {
28001        &self.syntax
28002    }
28003}
28004impl AstNode for OptionItem {
28005    #[inline]
28006    fn can_cast(kind: SyntaxKind) -> bool {
28007        kind == SyntaxKind::OPTION_ITEM
28008    }
28009    #[inline]
28010    fn cast(syntax: SyntaxNode) -> Option<Self> {
28011        if Self::can_cast(syntax.kind()) {
28012            Some(Self { syntax })
28013        } else {
28014            None
28015        }
28016    }
28017    #[inline]
28018    fn syntax(&self) -> &SyntaxNode {
28019        &self.syntax
28020    }
28021}
28022impl AstNode for OptionItemList {
28023    #[inline]
28024    fn can_cast(kind: SyntaxKind) -> bool {
28025        kind == SyntaxKind::OPTION_ITEM_LIST
28026    }
28027    #[inline]
28028    fn cast(syntax: SyntaxNode) -> Option<Self> {
28029        if Self::can_cast(syntax.kind()) {
28030            Some(Self { syntax })
28031        } else {
28032            None
28033        }
28034    }
28035    #[inline]
28036    fn syntax(&self) -> &SyntaxNode {
28037        &self.syntax
28038    }
28039}
28040impl AstNode for OrReplace {
28041    #[inline]
28042    fn can_cast(kind: SyntaxKind) -> bool {
28043        kind == SyntaxKind::OR_REPLACE
28044    }
28045    #[inline]
28046    fn cast(syntax: SyntaxNode) -> Option<Self> {
28047        if Self::can_cast(syntax.kind()) {
28048            Some(Self { syntax })
28049        } else {
28050            None
28051        }
28052    }
28053    #[inline]
28054    fn syntax(&self) -> &SyntaxNode {
28055        &self.syntax
28056    }
28057}
28058impl AstNode for OrderByClause {
28059    #[inline]
28060    fn can_cast(kind: SyntaxKind) -> bool {
28061        kind == SyntaxKind::ORDER_BY_CLAUSE
28062    }
28063    #[inline]
28064    fn cast(syntax: SyntaxNode) -> Option<Self> {
28065        if Self::can_cast(syntax.kind()) {
28066            Some(Self { syntax })
28067        } else {
28068            None
28069        }
28070    }
28071    #[inline]
28072    fn syntax(&self) -> &SyntaxNode {
28073        &self.syntax
28074    }
28075}
28076impl AstNode for OverClause {
28077    #[inline]
28078    fn can_cast(kind: SyntaxKind) -> bool {
28079        kind == SyntaxKind::OVER_CLAUSE
28080    }
28081    #[inline]
28082    fn cast(syntax: SyntaxNode) -> Option<Self> {
28083        if Self::can_cast(syntax.kind()) {
28084            Some(Self { syntax })
28085        } else {
28086            None
28087        }
28088    }
28089    #[inline]
28090    fn syntax(&self) -> &SyntaxNode {
28091        &self.syntax
28092    }
28093}
28094impl AstNode for OverlayFn {
28095    #[inline]
28096    fn can_cast(kind: SyntaxKind) -> bool {
28097        kind == SyntaxKind::OVERLAY_FN
28098    }
28099    #[inline]
28100    fn cast(syntax: SyntaxNode) -> Option<Self> {
28101        if Self::can_cast(syntax.kind()) {
28102            Some(Self { syntax })
28103        } else {
28104            None
28105        }
28106    }
28107    #[inline]
28108    fn syntax(&self) -> &SyntaxNode {
28109        &self.syntax
28110    }
28111}
28112impl AstNode for OwnedByRoles {
28113    #[inline]
28114    fn can_cast(kind: SyntaxKind) -> bool {
28115        kind == SyntaxKind::OWNED_BY_ROLES
28116    }
28117    #[inline]
28118    fn cast(syntax: SyntaxNode) -> Option<Self> {
28119        if Self::can_cast(syntax.kind()) {
28120            Some(Self { syntax })
28121        } else {
28122            None
28123        }
28124    }
28125    #[inline]
28126    fn syntax(&self) -> &SyntaxNode {
28127        &self.syntax
28128    }
28129}
28130impl AstNode for OwnerTo {
28131    #[inline]
28132    fn can_cast(kind: SyntaxKind) -> bool {
28133        kind == SyntaxKind::OWNER_TO
28134    }
28135    #[inline]
28136    fn cast(syntax: SyntaxNode) -> Option<Self> {
28137        if Self::can_cast(syntax.kind()) {
28138            Some(Self { syntax })
28139        } else {
28140            None
28141        }
28142    }
28143    #[inline]
28144    fn syntax(&self) -> &SyntaxNode {
28145        &self.syntax
28146    }
28147}
28148impl AstNode for ParallelFuncOption {
28149    #[inline]
28150    fn can_cast(kind: SyntaxKind) -> bool {
28151        kind == SyntaxKind::PARALLEL_FUNC_OPTION
28152    }
28153    #[inline]
28154    fn cast(syntax: SyntaxNode) -> Option<Self> {
28155        if Self::can_cast(syntax.kind()) {
28156            Some(Self { syntax })
28157        } else {
28158            None
28159        }
28160    }
28161    #[inline]
28162    fn syntax(&self) -> &SyntaxNode {
28163        &self.syntax
28164    }
28165}
28166impl AstNode for Param {
28167    #[inline]
28168    fn can_cast(kind: SyntaxKind) -> bool {
28169        kind == SyntaxKind::PARAM
28170    }
28171    #[inline]
28172    fn cast(syntax: SyntaxNode) -> Option<Self> {
28173        if Self::can_cast(syntax.kind()) {
28174            Some(Self { syntax })
28175        } else {
28176            None
28177        }
28178    }
28179    #[inline]
28180    fn syntax(&self) -> &SyntaxNode {
28181        &self.syntax
28182    }
28183}
28184impl AstNode for ParamDefault {
28185    #[inline]
28186    fn can_cast(kind: SyntaxKind) -> bool {
28187        kind == SyntaxKind::PARAM_DEFAULT
28188    }
28189    #[inline]
28190    fn cast(syntax: SyntaxNode) -> Option<Self> {
28191        if Self::can_cast(syntax.kind()) {
28192            Some(Self { syntax })
28193        } else {
28194            None
28195        }
28196    }
28197    #[inline]
28198    fn syntax(&self) -> &SyntaxNode {
28199        &self.syntax
28200    }
28201}
28202impl AstNode for ParamIn {
28203    #[inline]
28204    fn can_cast(kind: SyntaxKind) -> bool {
28205        kind == SyntaxKind::PARAM_IN
28206    }
28207    #[inline]
28208    fn cast(syntax: SyntaxNode) -> Option<Self> {
28209        if Self::can_cast(syntax.kind()) {
28210            Some(Self { syntax })
28211        } else {
28212            None
28213        }
28214    }
28215    #[inline]
28216    fn syntax(&self) -> &SyntaxNode {
28217        &self.syntax
28218    }
28219}
28220impl AstNode for ParamInOut {
28221    #[inline]
28222    fn can_cast(kind: SyntaxKind) -> bool {
28223        kind == SyntaxKind::PARAM_IN_OUT
28224    }
28225    #[inline]
28226    fn cast(syntax: SyntaxNode) -> Option<Self> {
28227        if Self::can_cast(syntax.kind()) {
28228            Some(Self { syntax })
28229        } else {
28230            None
28231        }
28232    }
28233    #[inline]
28234    fn syntax(&self) -> &SyntaxNode {
28235        &self.syntax
28236    }
28237}
28238impl AstNode for ParamList {
28239    #[inline]
28240    fn can_cast(kind: SyntaxKind) -> bool {
28241        kind == SyntaxKind::PARAM_LIST
28242    }
28243    #[inline]
28244    fn cast(syntax: SyntaxNode) -> Option<Self> {
28245        if Self::can_cast(syntax.kind()) {
28246            Some(Self { syntax })
28247        } else {
28248            None
28249        }
28250    }
28251    #[inline]
28252    fn syntax(&self) -> &SyntaxNode {
28253        &self.syntax
28254    }
28255}
28256impl AstNode for ParamOut {
28257    #[inline]
28258    fn can_cast(kind: SyntaxKind) -> bool {
28259        kind == SyntaxKind::PARAM_OUT
28260    }
28261    #[inline]
28262    fn cast(syntax: SyntaxNode) -> Option<Self> {
28263        if Self::can_cast(syntax.kind()) {
28264            Some(Self { syntax })
28265        } else {
28266            None
28267        }
28268    }
28269    #[inline]
28270    fn syntax(&self) -> &SyntaxNode {
28271        &self.syntax
28272    }
28273}
28274impl AstNode for ParamVariadic {
28275    #[inline]
28276    fn can_cast(kind: SyntaxKind) -> bool {
28277        kind == SyntaxKind::PARAM_VARIADIC
28278    }
28279    #[inline]
28280    fn cast(syntax: SyntaxNode) -> Option<Self> {
28281        if Self::can_cast(syntax.kind()) {
28282            Some(Self { syntax })
28283        } else {
28284            None
28285        }
28286    }
28287    #[inline]
28288    fn syntax(&self) -> &SyntaxNode {
28289        &self.syntax
28290    }
28291}
28292impl AstNode for ParenExpr {
28293    #[inline]
28294    fn can_cast(kind: SyntaxKind) -> bool {
28295        kind == SyntaxKind::PAREN_EXPR
28296    }
28297    #[inline]
28298    fn cast(syntax: SyntaxNode) -> Option<Self> {
28299        if Self::can_cast(syntax.kind()) {
28300            Some(Self { syntax })
28301        } else {
28302            None
28303        }
28304    }
28305    #[inline]
28306    fn syntax(&self) -> &SyntaxNode {
28307        &self.syntax
28308    }
28309}
28310impl AstNode for ParenGraphPattern {
28311    #[inline]
28312    fn can_cast(kind: SyntaxKind) -> bool {
28313        kind == SyntaxKind::PAREN_GRAPH_PATTERN
28314    }
28315    #[inline]
28316    fn cast(syntax: SyntaxNode) -> Option<Self> {
28317        if Self::can_cast(syntax.kind()) {
28318            Some(Self { syntax })
28319        } else {
28320            None
28321        }
28322    }
28323    #[inline]
28324    fn syntax(&self) -> &SyntaxNode {
28325        &self.syntax
28326    }
28327}
28328impl AstNode for ParenSelect {
28329    #[inline]
28330    fn can_cast(kind: SyntaxKind) -> bool {
28331        kind == SyntaxKind::PAREN_SELECT
28332    }
28333    #[inline]
28334    fn cast(syntax: SyntaxNode) -> Option<Self> {
28335        if Self::can_cast(syntax.kind()) {
28336            Some(Self { syntax })
28337        } else {
28338            None
28339        }
28340    }
28341    #[inline]
28342    fn syntax(&self) -> &SyntaxNode {
28343        &self.syntax
28344    }
28345}
28346impl AstNode for Partition {
28347    #[inline]
28348    fn can_cast(kind: SyntaxKind) -> bool {
28349        kind == SyntaxKind::PARTITION
28350    }
28351    #[inline]
28352    fn cast(syntax: SyntaxNode) -> Option<Self> {
28353        if Self::can_cast(syntax.kind()) {
28354            Some(Self { syntax })
28355        } else {
28356            None
28357        }
28358    }
28359    #[inline]
28360    fn syntax(&self) -> &SyntaxNode {
28361        &self.syntax
28362    }
28363}
28364impl AstNode for PartitionBy {
28365    #[inline]
28366    fn can_cast(kind: SyntaxKind) -> bool {
28367        kind == SyntaxKind::PARTITION_BY
28368    }
28369    #[inline]
28370    fn cast(syntax: SyntaxNode) -> Option<Self> {
28371        if Self::can_cast(syntax.kind()) {
28372            Some(Self { syntax })
28373        } else {
28374            None
28375        }
28376    }
28377    #[inline]
28378    fn syntax(&self) -> &SyntaxNode {
28379        &self.syntax
28380    }
28381}
28382impl AstNode for PartitionDefault {
28383    #[inline]
28384    fn can_cast(kind: SyntaxKind) -> bool {
28385        kind == SyntaxKind::PARTITION_DEFAULT
28386    }
28387    #[inline]
28388    fn cast(syntax: SyntaxNode) -> Option<Self> {
28389        if Self::can_cast(syntax.kind()) {
28390            Some(Self { syntax })
28391        } else {
28392            None
28393        }
28394    }
28395    #[inline]
28396    fn syntax(&self) -> &SyntaxNode {
28397        &self.syntax
28398    }
28399}
28400impl AstNode for PartitionForValuesFrom {
28401    #[inline]
28402    fn can_cast(kind: SyntaxKind) -> bool {
28403        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
28404    }
28405    #[inline]
28406    fn cast(syntax: SyntaxNode) -> Option<Self> {
28407        if Self::can_cast(syntax.kind()) {
28408            Some(Self { syntax })
28409        } else {
28410            None
28411        }
28412    }
28413    #[inline]
28414    fn syntax(&self) -> &SyntaxNode {
28415        &self.syntax
28416    }
28417}
28418impl AstNode for PartitionForValuesIn {
28419    #[inline]
28420    fn can_cast(kind: SyntaxKind) -> bool {
28421        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
28422    }
28423    #[inline]
28424    fn cast(syntax: SyntaxNode) -> Option<Self> {
28425        if Self::can_cast(syntax.kind()) {
28426            Some(Self { syntax })
28427        } else {
28428            None
28429        }
28430    }
28431    #[inline]
28432    fn syntax(&self) -> &SyntaxNode {
28433        &self.syntax
28434    }
28435}
28436impl AstNode for PartitionForValuesWith {
28437    #[inline]
28438    fn can_cast(kind: SyntaxKind) -> bool {
28439        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
28440    }
28441    #[inline]
28442    fn cast(syntax: SyntaxNode) -> Option<Self> {
28443        if Self::can_cast(syntax.kind()) {
28444            Some(Self { syntax })
28445        } else {
28446            None
28447        }
28448    }
28449    #[inline]
28450    fn syntax(&self) -> &SyntaxNode {
28451        &self.syntax
28452    }
28453}
28454impl AstNode for PartitionItem {
28455    #[inline]
28456    fn can_cast(kind: SyntaxKind) -> bool {
28457        kind == SyntaxKind::PARTITION_ITEM
28458    }
28459    #[inline]
28460    fn cast(syntax: SyntaxNode) -> Option<Self> {
28461        if Self::can_cast(syntax.kind()) {
28462            Some(Self { syntax })
28463        } else {
28464            None
28465        }
28466    }
28467    #[inline]
28468    fn syntax(&self) -> &SyntaxNode {
28469        &self.syntax
28470    }
28471}
28472impl AstNode for PartitionItemList {
28473    #[inline]
28474    fn can_cast(kind: SyntaxKind) -> bool {
28475        kind == SyntaxKind::PARTITION_ITEM_LIST
28476    }
28477    #[inline]
28478    fn cast(syntax: SyntaxNode) -> Option<Self> {
28479        if Self::can_cast(syntax.kind()) {
28480            Some(Self { syntax })
28481        } else {
28482            None
28483        }
28484    }
28485    #[inline]
28486    fn syntax(&self) -> &SyntaxNode {
28487        &self.syntax
28488    }
28489}
28490impl AstNode for PartitionList {
28491    #[inline]
28492    fn can_cast(kind: SyntaxKind) -> bool {
28493        kind == SyntaxKind::PARTITION_LIST
28494    }
28495    #[inline]
28496    fn cast(syntax: SyntaxNode) -> Option<Self> {
28497        if Self::can_cast(syntax.kind()) {
28498            Some(Self { syntax })
28499        } else {
28500            None
28501        }
28502    }
28503    #[inline]
28504    fn syntax(&self) -> &SyntaxNode {
28505        &self.syntax
28506    }
28507}
28508impl AstNode for PartitionOf {
28509    #[inline]
28510    fn can_cast(kind: SyntaxKind) -> bool {
28511        kind == SyntaxKind::PARTITION_OF
28512    }
28513    #[inline]
28514    fn cast(syntax: SyntaxNode) -> Option<Self> {
28515        if Self::can_cast(syntax.kind()) {
28516            Some(Self { syntax })
28517        } else {
28518            None
28519        }
28520    }
28521    #[inline]
28522    fn syntax(&self) -> &SyntaxNode {
28523        &self.syntax
28524    }
28525}
28526impl AstNode for Path {
28527    #[inline]
28528    fn can_cast(kind: SyntaxKind) -> bool {
28529        kind == SyntaxKind::PATH
28530    }
28531    #[inline]
28532    fn cast(syntax: SyntaxNode) -> Option<Self> {
28533        if Self::can_cast(syntax.kind()) {
28534            Some(Self { syntax })
28535        } else {
28536            None
28537        }
28538    }
28539    #[inline]
28540    fn syntax(&self) -> &SyntaxNode {
28541        &self.syntax
28542    }
28543}
28544impl AstNode for PathFactor {
28545    #[inline]
28546    fn can_cast(kind: SyntaxKind) -> bool {
28547        kind == SyntaxKind::PATH_FACTOR
28548    }
28549    #[inline]
28550    fn cast(syntax: SyntaxNode) -> Option<Self> {
28551        if Self::can_cast(syntax.kind()) {
28552            Some(Self { syntax })
28553        } else {
28554            None
28555        }
28556    }
28557    #[inline]
28558    fn syntax(&self) -> &SyntaxNode {
28559        &self.syntax
28560    }
28561}
28562impl AstNode for PathPattern {
28563    #[inline]
28564    fn can_cast(kind: SyntaxKind) -> bool {
28565        kind == SyntaxKind::PATH_PATTERN
28566    }
28567    #[inline]
28568    fn cast(syntax: SyntaxNode) -> Option<Self> {
28569        if Self::can_cast(syntax.kind()) {
28570            Some(Self { syntax })
28571        } else {
28572            None
28573        }
28574    }
28575    #[inline]
28576    fn syntax(&self) -> &SyntaxNode {
28577        &self.syntax
28578    }
28579}
28580impl AstNode for PathPatternList {
28581    #[inline]
28582    fn can_cast(kind: SyntaxKind) -> bool {
28583        kind == SyntaxKind::PATH_PATTERN_LIST
28584    }
28585    #[inline]
28586    fn cast(syntax: SyntaxNode) -> Option<Self> {
28587        if Self::can_cast(syntax.kind()) {
28588            Some(Self { syntax })
28589        } else {
28590            None
28591        }
28592    }
28593    #[inline]
28594    fn syntax(&self) -> &SyntaxNode {
28595        &self.syntax
28596    }
28597}
28598impl AstNode for PathSegment {
28599    #[inline]
28600    fn can_cast(kind: SyntaxKind) -> bool {
28601        kind == SyntaxKind::PATH_SEGMENT
28602    }
28603    #[inline]
28604    fn cast(syntax: SyntaxNode) -> Option<Self> {
28605        if Self::can_cast(syntax.kind()) {
28606            Some(Self { syntax })
28607        } else {
28608            None
28609        }
28610    }
28611    #[inline]
28612    fn syntax(&self) -> &SyntaxNode {
28613        &self.syntax
28614    }
28615}
28616impl AstNode for PathType {
28617    #[inline]
28618    fn can_cast(kind: SyntaxKind) -> bool {
28619        kind == SyntaxKind::PATH_TYPE
28620    }
28621    #[inline]
28622    fn cast(syntax: SyntaxNode) -> Option<Self> {
28623        if Self::can_cast(syntax.kind()) {
28624            Some(Self { syntax })
28625        } else {
28626            None
28627        }
28628    }
28629    #[inline]
28630    fn syntax(&self) -> &SyntaxNode {
28631        &self.syntax
28632    }
28633}
28634impl AstNode for PercentType {
28635    #[inline]
28636    fn can_cast(kind: SyntaxKind) -> bool {
28637        kind == SyntaxKind::PERCENT_TYPE
28638    }
28639    #[inline]
28640    fn cast(syntax: SyntaxNode) -> Option<Self> {
28641        if Self::can_cast(syntax.kind()) {
28642            Some(Self { syntax })
28643        } else {
28644            None
28645        }
28646    }
28647    #[inline]
28648    fn syntax(&self) -> &SyntaxNode {
28649        &self.syntax
28650    }
28651}
28652impl AstNode for PercentTypeClause {
28653    #[inline]
28654    fn can_cast(kind: SyntaxKind) -> bool {
28655        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
28656    }
28657    #[inline]
28658    fn cast(syntax: SyntaxNode) -> Option<Self> {
28659        if Self::can_cast(syntax.kind()) {
28660            Some(Self { syntax })
28661        } else {
28662            None
28663        }
28664    }
28665    #[inline]
28666    fn syntax(&self) -> &SyntaxNode {
28667        &self.syntax
28668    }
28669}
28670impl AstNode for PositionFn {
28671    #[inline]
28672    fn can_cast(kind: SyntaxKind) -> bool {
28673        kind == SyntaxKind::POSITION_FN
28674    }
28675    #[inline]
28676    fn cast(syntax: SyntaxNode) -> Option<Self> {
28677        if Self::can_cast(syntax.kind()) {
28678            Some(Self { syntax })
28679        } else {
28680            None
28681        }
28682    }
28683    #[inline]
28684    fn syntax(&self) -> &SyntaxNode {
28685        &self.syntax
28686    }
28687}
28688impl AstNode for PostfixExpr {
28689    #[inline]
28690    fn can_cast(kind: SyntaxKind) -> bool {
28691        kind == SyntaxKind::POSTFIX_EXPR
28692    }
28693    #[inline]
28694    fn cast(syntax: SyntaxNode) -> Option<Self> {
28695        if Self::can_cast(syntax.kind()) {
28696            Some(Self { syntax })
28697        } else {
28698            None
28699        }
28700    }
28701    #[inline]
28702    fn syntax(&self) -> &SyntaxNode {
28703        &self.syntax
28704    }
28705}
28706impl AstNode for PrefixExpr {
28707    #[inline]
28708    fn can_cast(kind: SyntaxKind) -> bool {
28709        kind == SyntaxKind::PREFIX_EXPR
28710    }
28711    #[inline]
28712    fn cast(syntax: SyntaxNode) -> Option<Self> {
28713        if Self::can_cast(syntax.kind()) {
28714            Some(Self { syntax })
28715        } else {
28716            None
28717        }
28718    }
28719    #[inline]
28720    fn syntax(&self) -> &SyntaxNode {
28721        &self.syntax
28722    }
28723}
28724impl AstNode for Prepare {
28725    #[inline]
28726    fn can_cast(kind: SyntaxKind) -> bool {
28727        kind == SyntaxKind::PREPARE
28728    }
28729    #[inline]
28730    fn cast(syntax: SyntaxNode) -> Option<Self> {
28731        if Self::can_cast(syntax.kind()) {
28732            Some(Self { syntax })
28733        } else {
28734            None
28735        }
28736    }
28737    #[inline]
28738    fn syntax(&self) -> &SyntaxNode {
28739        &self.syntax
28740    }
28741}
28742impl AstNode for PrepareTransaction {
28743    #[inline]
28744    fn can_cast(kind: SyntaxKind) -> bool {
28745        kind == SyntaxKind::PREPARE_TRANSACTION
28746    }
28747    #[inline]
28748    fn cast(syntax: SyntaxNode) -> Option<Self> {
28749        if Self::can_cast(syntax.kind()) {
28750            Some(Self { syntax })
28751        } else {
28752            None
28753        }
28754    }
28755    #[inline]
28756    fn syntax(&self) -> &SyntaxNode {
28757        &self.syntax
28758    }
28759}
28760impl AstNode for PreserveRows {
28761    #[inline]
28762    fn can_cast(kind: SyntaxKind) -> bool {
28763        kind == SyntaxKind::PRESERVE_ROWS
28764    }
28765    #[inline]
28766    fn cast(syntax: SyntaxNode) -> Option<Self> {
28767        if Self::can_cast(syntax.kind()) {
28768            Some(Self { syntax })
28769        } else {
28770            None
28771        }
28772    }
28773    #[inline]
28774    fn syntax(&self) -> &SyntaxNode {
28775        &self.syntax
28776    }
28777}
28778impl AstNode for PrimaryKeyConstraint {
28779    #[inline]
28780    fn can_cast(kind: SyntaxKind) -> bool {
28781        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
28782    }
28783    #[inline]
28784    fn cast(syntax: SyntaxNode) -> Option<Self> {
28785        if Self::can_cast(syntax.kind()) {
28786            Some(Self { syntax })
28787        } else {
28788            None
28789        }
28790    }
28791    #[inline]
28792    fn syntax(&self) -> &SyntaxNode {
28793        &self.syntax
28794    }
28795}
28796impl AstNode for PrivilegeTarget {
28797    #[inline]
28798    fn can_cast(kind: SyntaxKind) -> bool {
28799        kind == SyntaxKind::PRIVILEGE_TARGET
28800    }
28801    #[inline]
28802    fn cast(syntax: SyntaxNode) -> Option<Self> {
28803        if Self::can_cast(syntax.kind()) {
28804            Some(Self { syntax })
28805        } else {
28806            None
28807        }
28808    }
28809    #[inline]
28810    fn syntax(&self) -> &SyntaxNode {
28811        &self.syntax
28812    }
28813}
28814impl AstNode for Privileges {
28815    #[inline]
28816    fn can_cast(kind: SyntaxKind) -> bool {
28817        kind == SyntaxKind::PRIVILEGES
28818    }
28819    #[inline]
28820    fn cast(syntax: SyntaxNode) -> Option<Self> {
28821        if Self::can_cast(syntax.kind()) {
28822            Some(Self { syntax })
28823        } else {
28824            None
28825        }
28826    }
28827    #[inline]
28828    fn syntax(&self) -> &SyntaxNode {
28829        &self.syntax
28830    }
28831}
28832impl AstNode for Properties {
28833    #[inline]
28834    fn can_cast(kind: SyntaxKind) -> bool {
28835        kind == SyntaxKind::PROPERTIES
28836    }
28837    #[inline]
28838    fn cast(syntax: SyntaxNode) -> Option<Self> {
28839        if Self::can_cast(syntax.kind()) {
28840            Some(Self { syntax })
28841        } else {
28842            None
28843        }
28844    }
28845    #[inline]
28846    fn syntax(&self) -> &SyntaxNode {
28847        &self.syntax
28848    }
28849}
28850impl AstNode for PublicationObject {
28851    #[inline]
28852    fn can_cast(kind: SyntaxKind) -> bool {
28853        kind == SyntaxKind::PUBLICATION_OBJECT
28854    }
28855    #[inline]
28856    fn cast(syntax: SyntaxNode) -> Option<Self> {
28857        if Self::can_cast(syntax.kind()) {
28858            Some(Self { syntax })
28859        } else {
28860            None
28861        }
28862    }
28863    #[inline]
28864    fn syntax(&self) -> &SyntaxNode {
28865        &self.syntax
28866    }
28867}
28868impl AstNode for ReadCommitted {
28869    #[inline]
28870    fn can_cast(kind: SyntaxKind) -> bool {
28871        kind == SyntaxKind::READ_COMMITTED
28872    }
28873    #[inline]
28874    fn cast(syntax: SyntaxNode) -> Option<Self> {
28875        if Self::can_cast(syntax.kind()) {
28876            Some(Self { syntax })
28877        } else {
28878            None
28879        }
28880    }
28881    #[inline]
28882    fn syntax(&self) -> &SyntaxNode {
28883        &self.syntax
28884    }
28885}
28886impl AstNode for ReadOnly {
28887    #[inline]
28888    fn can_cast(kind: SyntaxKind) -> bool {
28889        kind == SyntaxKind::READ_ONLY
28890    }
28891    #[inline]
28892    fn cast(syntax: SyntaxNode) -> Option<Self> {
28893        if Self::can_cast(syntax.kind()) {
28894            Some(Self { syntax })
28895        } else {
28896            None
28897        }
28898    }
28899    #[inline]
28900    fn syntax(&self) -> &SyntaxNode {
28901        &self.syntax
28902    }
28903}
28904impl AstNode for ReadUncommitted {
28905    #[inline]
28906    fn can_cast(kind: SyntaxKind) -> bool {
28907        kind == SyntaxKind::READ_UNCOMMITTED
28908    }
28909    #[inline]
28910    fn cast(syntax: SyntaxNode) -> Option<Self> {
28911        if Self::can_cast(syntax.kind()) {
28912            Some(Self { syntax })
28913        } else {
28914            None
28915        }
28916    }
28917    #[inline]
28918    fn syntax(&self) -> &SyntaxNode {
28919        &self.syntax
28920    }
28921}
28922impl AstNode for ReadWrite {
28923    #[inline]
28924    fn can_cast(kind: SyntaxKind) -> bool {
28925        kind == SyntaxKind::READ_WRITE
28926    }
28927    #[inline]
28928    fn cast(syntax: SyntaxNode) -> Option<Self> {
28929        if Self::can_cast(syntax.kind()) {
28930            Some(Self { syntax })
28931        } else {
28932            None
28933        }
28934    }
28935    #[inline]
28936    fn syntax(&self) -> &SyntaxNode {
28937        &self.syntax
28938    }
28939}
28940impl AstNode for Reassign {
28941    #[inline]
28942    fn can_cast(kind: SyntaxKind) -> bool {
28943        kind == SyntaxKind::REASSIGN
28944    }
28945    #[inline]
28946    fn cast(syntax: SyntaxNode) -> Option<Self> {
28947        if Self::can_cast(syntax.kind()) {
28948            Some(Self { syntax })
28949        } else {
28950            None
28951        }
28952    }
28953    #[inline]
28954    fn syntax(&self) -> &SyntaxNode {
28955        &self.syntax
28956    }
28957}
28958impl AstNode for ReferencesConstraint {
28959    #[inline]
28960    fn can_cast(kind: SyntaxKind) -> bool {
28961        kind == SyntaxKind::REFERENCES_CONSTRAINT
28962    }
28963    #[inline]
28964    fn cast(syntax: SyntaxNode) -> Option<Self> {
28965        if Self::can_cast(syntax.kind()) {
28966            Some(Self { syntax })
28967        } else {
28968            None
28969        }
28970    }
28971    #[inline]
28972    fn syntax(&self) -> &SyntaxNode {
28973        &self.syntax
28974    }
28975}
28976impl AstNode for ReferencesTable {
28977    #[inline]
28978    fn can_cast(kind: SyntaxKind) -> bool {
28979        kind == SyntaxKind::REFERENCES_TABLE
28980    }
28981    #[inline]
28982    fn cast(syntax: SyntaxNode) -> Option<Self> {
28983        if Self::can_cast(syntax.kind()) {
28984            Some(Self { syntax })
28985        } else {
28986            None
28987        }
28988    }
28989    #[inline]
28990    fn syntax(&self) -> &SyntaxNode {
28991        &self.syntax
28992    }
28993}
28994impl AstNode for Referencing {
28995    #[inline]
28996    fn can_cast(kind: SyntaxKind) -> bool {
28997        kind == SyntaxKind::REFERENCING
28998    }
28999    #[inline]
29000    fn cast(syntax: SyntaxNode) -> Option<Self> {
29001        if Self::can_cast(syntax.kind()) {
29002            Some(Self { syntax })
29003        } else {
29004            None
29005        }
29006    }
29007    #[inline]
29008    fn syntax(&self) -> &SyntaxNode {
29009        &self.syntax
29010    }
29011}
29012impl AstNode for ReferencingTable {
29013    #[inline]
29014    fn can_cast(kind: SyntaxKind) -> bool {
29015        kind == SyntaxKind::REFERENCING_TABLE
29016    }
29017    #[inline]
29018    fn cast(syntax: SyntaxNode) -> Option<Self> {
29019        if Self::can_cast(syntax.kind()) {
29020            Some(Self { syntax })
29021        } else {
29022            None
29023        }
29024    }
29025    #[inline]
29026    fn syntax(&self) -> &SyntaxNode {
29027        &self.syntax
29028    }
29029}
29030impl AstNode for Refresh {
29031    #[inline]
29032    fn can_cast(kind: SyntaxKind) -> bool {
29033        kind == SyntaxKind::REFRESH
29034    }
29035    #[inline]
29036    fn cast(syntax: SyntaxNode) -> Option<Self> {
29037        if Self::can_cast(syntax.kind()) {
29038            Some(Self { syntax })
29039        } else {
29040            None
29041        }
29042    }
29043    #[inline]
29044    fn syntax(&self) -> &SyntaxNode {
29045        &self.syntax
29046    }
29047}
29048impl AstNode for RefreshCollationVersion {
29049    #[inline]
29050    fn can_cast(kind: SyntaxKind) -> bool {
29051        kind == SyntaxKind::REFRESH_COLLATION_VERSION
29052    }
29053    #[inline]
29054    fn cast(syntax: SyntaxNode) -> Option<Self> {
29055        if Self::can_cast(syntax.kind()) {
29056            Some(Self { syntax })
29057        } else {
29058            None
29059        }
29060    }
29061    #[inline]
29062    fn syntax(&self) -> &SyntaxNode {
29063        &self.syntax
29064    }
29065}
29066impl AstNode for RefreshVersion {
29067    #[inline]
29068    fn can_cast(kind: SyntaxKind) -> bool {
29069        kind == SyntaxKind::REFRESH_VERSION
29070    }
29071    #[inline]
29072    fn cast(syntax: SyntaxNode) -> Option<Self> {
29073        if Self::can_cast(syntax.kind()) {
29074            Some(Self { syntax })
29075        } else {
29076            None
29077        }
29078    }
29079    #[inline]
29080    fn syntax(&self) -> &SyntaxNode {
29081        &self.syntax
29082    }
29083}
29084impl AstNode for Reindex {
29085    #[inline]
29086    fn can_cast(kind: SyntaxKind) -> bool {
29087        kind == SyntaxKind::REINDEX
29088    }
29089    #[inline]
29090    fn cast(syntax: SyntaxNode) -> Option<Self> {
29091        if Self::can_cast(syntax.kind()) {
29092            Some(Self { syntax })
29093        } else {
29094            None
29095        }
29096    }
29097    #[inline]
29098    fn syntax(&self) -> &SyntaxNode {
29099        &self.syntax
29100    }
29101}
29102impl AstNode for RelationName {
29103    #[inline]
29104    fn can_cast(kind: SyntaxKind) -> bool {
29105        kind == SyntaxKind::RELATION_NAME
29106    }
29107    #[inline]
29108    fn cast(syntax: SyntaxNode) -> Option<Self> {
29109        if Self::can_cast(syntax.kind()) {
29110            Some(Self { syntax })
29111        } else {
29112            None
29113        }
29114    }
29115    #[inline]
29116    fn syntax(&self) -> &SyntaxNode {
29117        &self.syntax
29118    }
29119}
29120impl AstNode for ReleaseSavepoint {
29121    #[inline]
29122    fn can_cast(kind: SyntaxKind) -> bool {
29123        kind == SyntaxKind::RELEASE_SAVEPOINT
29124    }
29125    #[inline]
29126    fn cast(syntax: SyntaxNode) -> Option<Self> {
29127        if Self::can_cast(syntax.kind()) {
29128            Some(Self { syntax })
29129        } else {
29130            None
29131        }
29132    }
29133    #[inline]
29134    fn syntax(&self) -> &SyntaxNode {
29135        &self.syntax
29136    }
29137}
29138impl AstNode for RenameAttribute {
29139    #[inline]
29140    fn can_cast(kind: SyntaxKind) -> bool {
29141        kind == SyntaxKind::RENAME_ATTRIBUTE
29142    }
29143    #[inline]
29144    fn cast(syntax: SyntaxNode) -> Option<Self> {
29145        if Self::can_cast(syntax.kind()) {
29146            Some(Self { syntax })
29147        } else {
29148            None
29149        }
29150    }
29151    #[inline]
29152    fn syntax(&self) -> &SyntaxNode {
29153        &self.syntax
29154    }
29155}
29156impl AstNode for RenameColumn {
29157    #[inline]
29158    fn can_cast(kind: SyntaxKind) -> bool {
29159        kind == SyntaxKind::RENAME_COLUMN
29160    }
29161    #[inline]
29162    fn cast(syntax: SyntaxNode) -> Option<Self> {
29163        if Self::can_cast(syntax.kind()) {
29164            Some(Self { syntax })
29165        } else {
29166            None
29167        }
29168    }
29169    #[inline]
29170    fn syntax(&self) -> &SyntaxNode {
29171        &self.syntax
29172    }
29173}
29174impl AstNode for RenameConstraint {
29175    #[inline]
29176    fn can_cast(kind: SyntaxKind) -> bool {
29177        kind == SyntaxKind::RENAME_CONSTRAINT
29178    }
29179    #[inline]
29180    fn cast(syntax: SyntaxNode) -> Option<Self> {
29181        if Self::can_cast(syntax.kind()) {
29182            Some(Self { syntax })
29183        } else {
29184            None
29185        }
29186    }
29187    #[inline]
29188    fn syntax(&self) -> &SyntaxNode {
29189        &self.syntax
29190    }
29191}
29192impl AstNode for RenameTo {
29193    #[inline]
29194    fn can_cast(kind: SyntaxKind) -> bool {
29195        kind == SyntaxKind::RENAME_TO
29196    }
29197    #[inline]
29198    fn cast(syntax: SyntaxNode) -> Option<Self> {
29199        if Self::can_cast(syntax.kind()) {
29200            Some(Self { syntax })
29201        } else {
29202            None
29203        }
29204    }
29205    #[inline]
29206    fn syntax(&self) -> &SyntaxNode {
29207        &self.syntax
29208    }
29209}
29210impl AstNode for RenameValue {
29211    #[inline]
29212    fn can_cast(kind: SyntaxKind) -> bool {
29213        kind == SyntaxKind::RENAME_VALUE
29214    }
29215    #[inline]
29216    fn cast(syntax: SyntaxNode) -> Option<Self> {
29217        if Self::can_cast(syntax.kind()) {
29218            Some(Self { syntax })
29219        } else {
29220            None
29221        }
29222    }
29223    #[inline]
29224    fn syntax(&self) -> &SyntaxNode {
29225        &self.syntax
29226    }
29227}
29228impl AstNode for Repack {
29229    #[inline]
29230    fn can_cast(kind: SyntaxKind) -> bool {
29231        kind == SyntaxKind::REPACK
29232    }
29233    #[inline]
29234    fn cast(syntax: SyntaxNode) -> Option<Self> {
29235        if Self::can_cast(syntax.kind()) {
29236            Some(Self { syntax })
29237        } else {
29238            None
29239        }
29240    }
29241    #[inline]
29242    fn syntax(&self) -> &SyntaxNode {
29243        &self.syntax
29244    }
29245}
29246impl AstNode for RepeatableClause {
29247    #[inline]
29248    fn can_cast(kind: SyntaxKind) -> bool {
29249        kind == SyntaxKind::REPEATABLE_CLAUSE
29250    }
29251    #[inline]
29252    fn cast(syntax: SyntaxNode) -> Option<Self> {
29253        if Self::can_cast(syntax.kind()) {
29254            Some(Self { syntax })
29255        } else {
29256            None
29257        }
29258    }
29259    #[inline]
29260    fn syntax(&self) -> &SyntaxNode {
29261        &self.syntax
29262    }
29263}
29264impl AstNode for RepeatableRead {
29265    #[inline]
29266    fn can_cast(kind: SyntaxKind) -> bool {
29267        kind == SyntaxKind::REPEATABLE_READ
29268    }
29269    #[inline]
29270    fn cast(syntax: SyntaxNode) -> Option<Self> {
29271        if Self::can_cast(syntax.kind()) {
29272            Some(Self { syntax })
29273        } else {
29274            None
29275        }
29276    }
29277    #[inline]
29278    fn syntax(&self) -> &SyntaxNode {
29279        &self.syntax
29280    }
29281}
29282impl AstNode for ReplicaIdentity {
29283    #[inline]
29284    fn can_cast(kind: SyntaxKind) -> bool {
29285        kind == SyntaxKind::REPLICA_IDENTITY
29286    }
29287    #[inline]
29288    fn cast(syntax: SyntaxNode) -> Option<Self> {
29289        if Self::can_cast(syntax.kind()) {
29290            Some(Self { syntax })
29291        } else {
29292            None
29293        }
29294    }
29295    #[inline]
29296    fn syntax(&self) -> &SyntaxNode {
29297        &self.syntax
29298    }
29299}
29300impl AstNode for Reset {
29301    #[inline]
29302    fn can_cast(kind: SyntaxKind) -> bool {
29303        kind == SyntaxKind::RESET
29304    }
29305    #[inline]
29306    fn cast(syntax: SyntaxNode) -> Option<Self> {
29307        if Self::can_cast(syntax.kind()) {
29308            Some(Self { syntax })
29309        } else {
29310            None
29311        }
29312    }
29313    #[inline]
29314    fn syntax(&self) -> &SyntaxNode {
29315        &self.syntax
29316    }
29317}
29318impl AstNode for ResetConfigParam {
29319    #[inline]
29320    fn can_cast(kind: SyntaxKind) -> bool {
29321        kind == SyntaxKind::RESET_CONFIG_PARAM
29322    }
29323    #[inline]
29324    fn cast(syntax: SyntaxNode) -> Option<Self> {
29325        if Self::can_cast(syntax.kind()) {
29326            Some(Self { syntax })
29327        } else {
29328            None
29329        }
29330    }
29331    #[inline]
29332    fn syntax(&self) -> &SyntaxNode {
29333        &self.syntax
29334    }
29335}
29336impl AstNode for ResetFuncOption {
29337    #[inline]
29338    fn can_cast(kind: SyntaxKind) -> bool {
29339        kind == SyntaxKind::RESET_FUNC_OPTION
29340    }
29341    #[inline]
29342    fn cast(syntax: SyntaxNode) -> Option<Self> {
29343        if Self::can_cast(syntax.kind()) {
29344            Some(Self { syntax })
29345        } else {
29346            None
29347        }
29348    }
29349    #[inline]
29350    fn syntax(&self) -> &SyntaxNode {
29351        &self.syntax
29352    }
29353}
29354impl AstNode for ResetOptions {
29355    #[inline]
29356    fn can_cast(kind: SyntaxKind) -> bool {
29357        kind == SyntaxKind::RESET_OPTIONS
29358    }
29359    #[inline]
29360    fn cast(syntax: SyntaxNode) -> Option<Self> {
29361        if Self::can_cast(syntax.kind()) {
29362            Some(Self { syntax })
29363        } else {
29364            None
29365        }
29366    }
29367    #[inline]
29368    fn syntax(&self) -> &SyntaxNode {
29369        &self.syntax
29370    }
29371}
29372impl AstNode for ResetSessionAuth {
29373    #[inline]
29374    fn can_cast(kind: SyntaxKind) -> bool {
29375        kind == SyntaxKind::RESET_SESSION_AUTH
29376    }
29377    #[inline]
29378    fn cast(syntax: SyntaxNode) -> Option<Self> {
29379        if Self::can_cast(syntax.kind()) {
29380            Some(Self { syntax })
29381        } else {
29382            None
29383        }
29384    }
29385    #[inline]
29386    fn syntax(&self) -> &SyntaxNode {
29387        &self.syntax
29388    }
29389}
29390impl AstNode for Restart {
29391    #[inline]
29392    fn can_cast(kind: SyntaxKind) -> bool {
29393        kind == SyntaxKind::RESTART
29394    }
29395    #[inline]
29396    fn cast(syntax: SyntaxNode) -> Option<Self> {
29397        if Self::can_cast(syntax.kind()) {
29398            Some(Self { syntax })
29399        } else {
29400            None
29401        }
29402    }
29403    #[inline]
29404    fn syntax(&self) -> &SyntaxNode {
29405        &self.syntax
29406    }
29407}
29408impl AstNode for Restrict {
29409    #[inline]
29410    fn can_cast(kind: SyntaxKind) -> bool {
29411        kind == SyntaxKind::RESTRICT
29412    }
29413    #[inline]
29414    fn cast(syntax: SyntaxNode) -> Option<Self> {
29415        if Self::can_cast(syntax.kind()) {
29416            Some(Self { syntax })
29417        } else {
29418            None
29419        }
29420    }
29421    #[inline]
29422    fn syntax(&self) -> &SyntaxNode {
29423        &self.syntax
29424    }
29425}
29426impl AstNode for RetType {
29427    #[inline]
29428    fn can_cast(kind: SyntaxKind) -> bool {
29429        kind == SyntaxKind::RET_TYPE
29430    }
29431    #[inline]
29432    fn cast(syntax: SyntaxNode) -> Option<Self> {
29433        if Self::can_cast(syntax.kind()) {
29434            Some(Self { syntax })
29435        } else {
29436            None
29437        }
29438    }
29439    #[inline]
29440    fn syntax(&self) -> &SyntaxNode {
29441        &self.syntax
29442    }
29443}
29444impl AstNode for ReturnFuncOption {
29445    #[inline]
29446    fn can_cast(kind: SyntaxKind) -> bool {
29447        kind == SyntaxKind::RETURN_FUNC_OPTION
29448    }
29449    #[inline]
29450    fn cast(syntax: SyntaxNode) -> Option<Self> {
29451        if Self::can_cast(syntax.kind()) {
29452            Some(Self { syntax })
29453        } else {
29454            None
29455        }
29456    }
29457    #[inline]
29458    fn syntax(&self) -> &SyntaxNode {
29459        &self.syntax
29460    }
29461}
29462impl AstNode for ReturningClause {
29463    #[inline]
29464    fn can_cast(kind: SyntaxKind) -> bool {
29465        kind == SyntaxKind::RETURNING_CLAUSE
29466    }
29467    #[inline]
29468    fn cast(syntax: SyntaxNode) -> Option<Self> {
29469        if Self::can_cast(syntax.kind()) {
29470            Some(Self { syntax })
29471        } else {
29472            None
29473        }
29474    }
29475    #[inline]
29476    fn syntax(&self) -> &SyntaxNode {
29477        &self.syntax
29478    }
29479}
29480impl AstNode for ReturningOption {
29481    #[inline]
29482    fn can_cast(kind: SyntaxKind) -> bool {
29483        kind == SyntaxKind::RETURNING_OPTION
29484    }
29485    #[inline]
29486    fn cast(syntax: SyntaxNode) -> Option<Self> {
29487        if Self::can_cast(syntax.kind()) {
29488            Some(Self { syntax })
29489        } else {
29490            None
29491        }
29492    }
29493    #[inline]
29494    fn syntax(&self) -> &SyntaxNode {
29495        &self.syntax
29496    }
29497}
29498impl AstNode for ReturningOptionList {
29499    #[inline]
29500    fn can_cast(kind: SyntaxKind) -> bool {
29501        kind == SyntaxKind::RETURNING_OPTION_LIST
29502    }
29503    #[inline]
29504    fn cast(syntax: SyntaxNode) -> Option<Self> {
29505        if Self::can_cast(syntax.kind()) {
29506            Some(Self { syntax })
29507        } else {
29508            None
29509        }
29510    }
29511    #[inline]
29512    fn syntax(&self) -> &SyntaxNode {
29513        &self.syntax
29514    }
29515}
29516impl AstNode for Revoke {
29517    #[inline]
29518    fn can_cast(kind: SyntaxKind) -> bool {
29519        kind == SyntaxKind::REVOKE
29520    }
29521    #[inline]
29522    fn cast(syntax: SyntaxNode) -> Option<Self> {
29523        if Self::can_cast(syntax.kind()) {
29524            Some(Self { syntax })
29525        } else {
29526            None
29527        }
29528    }
29529    #[inline]
29530    fn syntax(&self) -> &SyntaxNode {
29531        &self.syntax
29532    }
29533}
29534impl AstNode for RevokeCommand {
29535    #[inline]
29536    fn can_cast(kind: SyntaxKind) -> bool {
29537        kind == SyntaxKind::REVOKE_COMMAND
29538    }
29539    #[inline]
29540    fn cast(syntax: SyntaxNode) -> Option<Self> {
29541        if Self::can_cast(syntax.kind()) {
29542            Some(Self { syntax })
29543        } else {
29544            None
29545        }
29546    }
29547    #[inline]
29548    fn syntax(&self) -> &SyntaxNode {
29549        &self.syntax
29550    }
29551}
29552impl AstNode for RevokeCommandList {
29553    #[inline]
29554    fn can_cast(kind: SyntaxKind) -> bool {
29555        kind == SyntaxKind::REVOKE_COMMAND_LIST
29556    }
29557    #[inline]
29558    fn cast(syntax: SyntaxNode) -> Option<Self> {
29559        if Self::can_cast(syntax.kind()) {
29560            Some(Self { syntax })
29561        } else {
29562            None
29563        }
29564    }
29565    #[inline]
29566    fn syntax(&self) -> &SyntaxNode {
29567        &self.syntax
29568    }
29569}
29570impl AstNode for RevokeDefaultPrivileges {
29571    #[inline]
29572    fn can_cast(kind: SyntaxKind) -> bool {
29573        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
29574    }
29575    #[inline]
29576    fn cast(syntax: SyntaxNode) -> Option<Self> {
29577        if Self::can_cast(syntax.kind()) {
29578            Some(Self { syntax })
29579        } else {
29580            None
29581        }
29582    }
29583    #[inline]
29584    fn syntax(&self) -> &SyntaxNode {
29585        &self.syntax
29586    }
29587}
29588impl AstNode for Role {
29589    #[inline]
29590    fn can_cast(kind: SyntaxKind) -> bool {
29591        kind == SyntaxKind::ROLE
29592    }
29593    #[inline]
29594    fn cast(syntax: SyntaxNode) -> Option<Self> {
29595        if Self::can_cast(syntax.kind()) {
29596            Some(Self { syntax })
29597        } else {
29598            None
29599        }
29600    }
29601    #[inline]
29602    fn syntax(&self) -> &SyntaxNode {
29603        &self.syntax
29604    }
29605}
29606impl AstNode for RoleOption {
29607    #[inline]
29608    fn can_cast(kind: SyntaxKind) -> bool {
29609        kind == SyntaxKind::ROLE_OPTION
29610    }
29611    #[inline]
29612    fn cast(syntax: SyntaxNode) -> Option<Self> {
29613        if Self::can_cast(syntax.kind()) {
29614            Some(Self { syntax })
29615        } else {
29616            None
29617        }
29618    }
29619    #[inline]
29620    fn syntax(&self) -> &SyntaxNode {
29621        &self.syntax
29622    }
29623}
29624impl AstNode for RoleOptionList {
29625    #[inline]
29626    fn can_cast(kind: SyntaxKind) -> bool {
29627        kind == SyntaxKind::ROLE_OPTION_LIST
29628    }
29629    #[inline]
29630    fn cast(syntax: SyntaxNode) -> Option<Self> {
29631        if Self::can_cast(syntax.kind()) {
29632            Some(Self { syntax })
29633        } else {
29634            None
29635        }
29636    }
29637    #[inline]
29638    fn syntax(&self) -> &SyntaxNode {
29639        &self.syntax
29640    }
29641}
29642impl AstNode for RoleRef {
29643    #[inline]
29644    fn can_cast(kind: SyntaxKind) -> bool {
29645        kind == SyntaxKind::ROLE_REF
29646    }
29647    #[inline]
29648    fn cast(syntax: SyntaxNode) -> Option<Self> {
29649        if Self::can_cast(syntax.kind()) {
29650            Some(Self { syntax })
29651        } else {
29652            None
29653        }
29654    }
29655    #[inline]
29656    fn syntax(&self) -> &SyntaxNode {
29657        &self.syntax
29658    }
29659}
29660impl AstNode for RoleRefList {
29661    #[inline]
29662    fn can_cast(kind: SyntaxKind) -> bool {
29663        kind == SyntaxKind::ROLE_REF_LIST
29664    }
29665    #[inline]
29666    fn cast(syntax: SyntaxNode) -> Option<Self> {
29667        if Self::can_cast(syntax.kind()) {
29668            Some(Self { syntax })
29669        } else {
29670            None
29671        }
29672    }
29673    #[inline]
29674    fn syntax(&self) -> &SyntaxNode {
29675        &self.syntax
29676    }
29677}
29678impl AstNode for Rollback {
29679    #[inline]
29680    fn can_cast(kind: SyntaxKind) -> bool {
29681        kind == SyntaxKind::ROLLBACK
29682    }
29683    #[inline]
29684    fn cast(syntax: SyntaxNode) -> Option<Self> {
29685        if Self::can_cast(syntax.kind()) {
29686            Some(Self { syntax })
29687        } else {
29688            None
29689        }
29690    }
29691    #[inline]
29692    fn syntax(&self) -> &SyntaxNode {
29693        &self.syntax
29694    }
29695}
29696impl AstNode for Row {
29697    #[inline]
29698    fn can_cast(kind: SyntaxKind) -> bool {
29699        kind == SyntaxKind::ROW
29700    }
29701    #[inline]
29702    fn cast(syntax: SyntaxNode) -> Option<Self> {
29703        if Self::can_cast(syntax.kind()) {
29704            Some(Self { syntax })
29705        } else {
29706            None
29707        }
29708    }
29709    #[inline]
29710    fn syntax(&self) -> &SyntaxNode {
29711        &self.syntax
29712    }
29713}
29714impl AstNode for RowList {
29715    #[inline]
29716    fn can_cast(kind: SyntaxKind) -> bool {
29717        kind == SyntaxKind::ROW_LIST
29718    }
29719    #[inline]
29720    fn cast(syntax: SyntaxNode) -> Option<Self> {
29721        if Self::can_cast(syntax.kind()) {
29722            Some(Self { syntax })
29723        } else {
29724            None
29725        }
29726    }
29727    #[inline]
29728    fn syntax(&self) -> &SyntaxNode {
29729        &self.syntax
29730    }
29731}
29732impl AstNode for RowsFuncOption {
29733    #[inline]
29734    fn can_cast(kind: SyntaxKind) -> bool {
29735        kind == SyntaxKind::ROWS_FUNC_OPTION
29736    }
29737    #[inline]
29738    fn cast(syntax: SyntaxNode) -> Option<Self> {
29739        if Self::can_cast(syntax.kind()) {
29740            Some(Self { syntax })
29741        } else {
29742            None
29743        }
29744    }
29745    #[inline]
29746    fn syntax(&self) -> &SyntaxNode {
29747        &self.syntax
29748    }
29749}
29750impl AstNode for RuleDo {
29751    #[inline]
29752    fn can_cast(kind: SyntaxKind) -> bool {
29753        kind == SyntaxKind::RULE_DO
29754    }
29755    #[inline]
29756    fn cast(syntax: SyntaxNode) -> Option<Self> {
29757        if Self::can_cast(syntax.kind()) {
29758            Some(Self { syntax })
29759        } else {
29760            None
29761        }
29762    }
29763    #[inline]
29764    fn syntax(&self) -> &SyntaxNode {
29765        &self.syntax
29766    }
29767}
29768impl AstNode for RuleOn {
29769    #[inline]
29770    fn can_cast(kind: SyntaxKind) -> bool {
29771        kind == SyntaxKind::RULE_ON
29772    }
29773    #[inline]
29774    fn cast(syntax: SyntaxNode) -> Option<Self> {
29775        if Self::can_cast(syntax.kind()) {
29776            Some(Self { syntax })
29777        } else {
29778            None
29779        }
29780    }
29781    #[inline]
29782    fn syntax(&self) -> &SyntaxNode {
29783        &self.syntax
29784    }
29785}
29786impl AstNode for RuleStmtList {
29787    #[inline]
29788    fn can_cast(kind: SyntaxKind) -> bool {
29789        kind == SyntaxKind::RULE_STMT_LIST
29790    }
29791    #[inline]
29792    fn cast(syntax: SyntaxNode) -> Option<Self> {
29793        if Self::can_cast(syntax.kind()) {
29794            Some(Self { syntax })
29795        } else {
29796            None
29797        }
29798    }
29799    #[inline]
29800    fn syntax(&self) -> &SyntaxNode {
29801        &self.syntax
29802    }
29803}
29804impl AstNode for Savepoint {
29805    #[inline]
29806    fn can_cast(kind: SyntaxKind) -> bool {
29807        kind == SyntaxKind::SAVEPOINT
29808    }
29809    #[inline]
29810    fn cast(syntax: SyntaxNode) -> Option<Self> {
29811        if Self::can_cast(syntax.kind()) {
29812            Some(Self { syntax })
29813        } else {
29814            None
29815        }
29816    }
29817    #[inline]
29818    fn syntax(&self) -> &SyntaxNode {
29819        &self.syntax
29820    }
29821}
29822impl AstNode for SecurityFuncOption {
29823    #[inline]
29824    fn can_cast(kind: SyntaxKind) -> bool {
29825        kind == SyntaxKind::SECURITY_FUNC_OPTION
29826    }
29827    #[inline]
29828    fn cast(syntax: SyntaxNode) -> Option<Self> {
29829        if Self::can_cast(syntax.kind()) {
29830            Some(Self { syntax })
29831        } else {
29832            None
29833        }
29834    }
29835    #[inline]
29836    fn syntax(&self) -> &SyntaxNode {
29837        &self.syntax
29838    }
29839}
29840impl AstNode for SecurityLabel {
29841    #[inline]
29842    fn can_cast(kind: SyntaxKind) -> bool {
29843        kind == SyntaxKind::SECURITY_LABEL
29844    }
29845    #[inline]
29846    fn cast(syntax: SyntaxNode) -> Option<Self> {
29847        if Self::can_cast(syntax.kind()) {
29848            Some(Self { syntax })
29849        } else {
29850            None
29851        }
29852    }
29853    #[inline]
29854    fn syntax(&self) -> &SyntaxNode {
29855        &self.syntax
29856    }
29857}
29858impl AstNode for Select {
29859    #[inline]
29860    fn can_cast(kind: SyntaxKind) -> bool {
29861        kind == SyntaxKind::SELECT
29862    }
29863    #[inline]
29864    fn cast(syntax: SyntaxNode) -> Option<Self> {
29865        if Self::can_cast(syntax.kind()) {
29866            Some(Self { syntax })
29867        } else {
29868            None
29869        }
29870    }
29871    #[inline]
29872    fn syntax(&self) -> &SyntaxNode {
29873        &self.syntax
29874    }
29875}
29876impl AstNode for SelectClause {
29877    #[inline]
29878    fn can_cast(kind: SyntaxKind) -> bool {
29879        kind == SyntaxKind::SELECT_CLAUSE
29880    }
29881    #[inline]
29882    fn cast(syntax: SyntaxNode) -> Option<Self> {
29883        if Self::can_cast(syntax.kind()) {
29884            Some(Self { syntax })
29885        } else {
29886            None
29887        }
29888    }
29889    #[inline]
29890    fn syntax(&self) -> &SyntaxNode {
29891        &self.syntax
29892    }
29893}
29894impl AstNode for SelectInto {
29895    #[inline]
29896    fn can_cast(kind: SyntaxKind) -> bool {
29897        kind == SyntaxKind::SELECT_INTO
29898    }
29899    #[inline]
29900    fn cast(syntax: SyntaxNode) -> Option<Self> {
29901        if Self::can_cast(syntax.kind()) {
29902            Some(Self { syntax })
29903        } else {
29904            None
29905        }
29906    }
29907    #[inline]
29908    fn syntax(&self) -> &SyntaxNode {
29909        &self.syntax
29910    }
29911}
29912impl AstNode for SequenceOption {
29913    #[inline]
29914    fn can_cast(kind: SyntaxKind) -> bool {
29915        kind == SyntaxKind::SEQUENCE_OPTION
29916    }
29917    #[inline]
29918    fn cast(syntax: SyntaxNode) -> Option<Self> {
29919        if Self::can_cast(syntax.kind()) {
29920            Some(Self { syntax })
29921        } else {
29922            None
29923        }
29924    }
29925    #[inline]
29926    fn syntax(&self) -> &SyntaxNode {
29927        &self.syntax
29928    }
29929}
29930impl AstNode for SequenceOptionList {
29931    #[inline]
29932    fn can_cast(kind: SyntaxKind) -> bool {
29933        kind == SyntaxKind::SEQUENCE_OPTION_LIST
29934    }
29935    #[inline]
29936    fn cast(syntax: SyntaxNode) -> Option<Self> {
29937        if Self::can_cast(syntax.kind()) {
29938            Some(Self { syntax })
29939        } else {
29940            None
29941        }
29942    }
29943    #[inline]
29944    fn syntax(&self) -> &SyntaxNode {
29945        &self.syntax
29946    }
29947}
29948impl AstNode for Serializable {
29949    #[inline]
29950    fn can_cast(kind: SyntaxKind) -> bool {
29951        kind == SyntaxKind::SERIALIZABLE
29952    }
29953    #[inline]
29954    fn cast(syntax: SyntaxNode) -> Option<Self> {
29955        if Self::can_cast(syntax.kind()) {
29956            Some(Self { syntax })
29957        } else {
29958            None
29959        }
29960    }
29961    #[inline]
29962    fn syntax(&self) -> &SyntaxNode {
29963        &self.syntax
29964    }
29965}
29966impl AstNode for ServerName {
29967    #[inline]
29968    fn can_cast(kind: SyntaxKind) -> bool {
29969        kind == SyntaxKind::SERVER_NAME
29970    }
29971    #[inline]
29972    fn cast(syntax: SyntaxNode) -> Option<Self> {
29973        if Self::can_cast(syntax.kind()) {
29974            Some(Self { syntax })
29975        } else {
29976            None
29977        }
29978    }
29979    #[inline]
29980    fn syntax(&self) -> &SyntaxNode {
29981        &self.syntax
29982    }
29983}
29984impl AstNode for Set {
29985    #[inline]
29986    fn can_cast(kind: SyntaxKind) -> bool {
29987        kind == SyntaxKind::SET
29988    }
29989    #[inline]
29990    fn cast(syntax: SyntaxNode) -> Option<Self> {
29991        if Self::can_cast(syntax.kind()) {
29992            Some(Self { syntax })
29993        } else {
29994            None
29995        }
29996    }
29997    #[inline]
29998    fn syntax(&self) -> &SyntaxNode {
29999        &self.syntax
30000    }
30001}
30002impl AstNode for SetAccessMethod {
30003    #[inline]
30004    fn can_cast(kind: SyntaxKind) -> bool {
30005        kind == SyntaxKind::SET_ACCESS_METHOD
30006    }
30007    #[inline]
30008    fn cast(syntax: SyntaxNode) -> Option<Self> {
30009        if Self::can_cast(syntax.kind()) {
30010            Some(Self { syntax })
30011        } else {
30012            None
30013        }
30014    }
30015    #[inline]
30016    fn syntax(&self) -> &SyntaxNode {
30017        &self.syntax
30018    }
30019}
30020impl AstNode for SetClause {
30021    #[inline]
30022    fn can_cast(kind: SyntaxKind) -> bool {
30023        kind == SyntaxKind::SET_CLAUSE
30024    }
30025    #[inline]
30026    fn cast(syntax: SyntaxNode) -> Option<Self> {
30027        if Self::can_cast(syntax.kind()) {
30028            Some(Self { syntax })
30029        } else {
30030            None
30031        }
30032    }
30033    #[inline]
30034    fn syntax(&self) -> &SyntaxNode {
30035        &self.syntax
30036    }
30037}
30038impl AstNode for SetColumnList {
30039    #[inline]
30040    fn can_cast(kind: SyntaxKind) -> bool {
30041        kind == SyntaxKind::SET_COLUMN_LIST
30042    }
30043    #[inline]
30044    fn cast(syntax: SyntaxNode) -> Option<Self> {
30045        if Self::can_cast(syntax.kind()) {
30046            Some(Self { syntax })
30047        } else {
30048            None
30049        }
30050    }
30051    #[inline]
30052    fn syntax(&self) -> &SyntaxNode {
30053        &self.syntax
30054    }
30055}
30056impl AstNode for SetCompression {
30057    #[inline]
30058    fn can_cast(kind: SyntaxKind) -> bool {
30059        kind == SyntaxKind::SET_COMPRESSION
30060    }
30061    #[inline]
30062    fn cast(syntax: SyntaxNode) -> Option<Self> {
30063        if Self::can_cast(syntax.kind()) {
30064            Some(Self { syntax })
30065        } else {
30066            None
30067        }
30068    }
30069    #[inline]
30070    fn syntax(&self) -> &SyntaxNode {
30071        &self.syntax
30072    }
30073}
30074impl AstNode for SetConfigParam {
30075    #[inline]
30076    fn can_cast(kind: SyntaxKind) -> bool {
30077        kind == SyntaxKind::SET_CONFIG_PARAM
30078    }
30079    #[inline]
30080    fn cast(syntax: SyntaxNode) -> Option<Self> {
30081        if Self::can_cast(syntax.kind()) {
30082            Some(Self { syntax })
30083        } else {
30084            None
30085        }
30086    }
30087    #[inline]
30088    fn syntax(&self) -> &SyntaxNode {
30089        &self.syntax
30090    }
30091}
30092impl AstNode for SetConstraints {
30093    #[inline]
30094    fn can_cast(kind: SyntaxKind) -> bool {
30095        kind == SyntaxKind::SET_CONSTRAINTS
30096    }
30097    #[inline]
30098    fn cast(syntax: SyntaxNode) -> Option<Self> {
30099        if Self::can_cast(syntax.kind()) {
30100            Some(Self { syntax })
30101        } else {
30102            None
30103        }
30104    }
30105    #[inline]
30106    fn syntax(&self) -> &SyntaxNode {
30107        &self.syntax
30108    }
30109}
30110impl AstNode for SetDefault {
30111    #[inline]
30112    fn can_cast(kind: SyntaxKind) -> bool {
30113        kind == SyntaxKind::SET_DEFAULT
30114    }
30115    #[inline]
30116    fn cast(syntax: SyntaxNode) -> Option<Self> {
30117        if Self::can_cast(syntax.kind()) {
30118            Some(Self { syntax })
30119        } else {
30120            None
30121        }
30122    }
30123    #[inline]
30124    fn syntax(&self) -> &SyntaxNode {
30125        &self.syntax
30126    }
30127}
30128impl AstNode for SetDefaultColumns {
30129    #[inline]
30130    fn can_cast(kind: SyntaxKind) -> bool {
30131        kind == SyntaxKind::SET_DEFAULT_COLUMNS
30132    }
30133    #[inline]
30134    fn cast(syntax: SyntaxNode) -> Option<Self> {
30135        if Self::can_cast(syntax.kind()) {
30136            Some(Self { syntax })
30137        } else {
30138            None
30139        }
30140    }
30141    #[inline]
30142    fn syntax(&self) -> &SyntaxNode {
30143        &self.syntax
30144    }
30145}
30146impl AstNode for SetExpr {
30147    #[inline]
30148    fn can_cast(kind: SyntaxKind) -> bool {
30149        kind == SyntaxKind::SET_EXPR
30150    }
30151    #[inline]
30152    fn cast(syntax: SyntaxNode) -> Option<Self> {
30153        if Self::can_cast(syntax.kind()) {
30154            Some(Self { syntax })
30155        } else {
30156            None
30157        }
30158    }
30159    #[inline]
30160    fn syntax(&self) -> &SyntaxNode {
30161        &self.syntax
30162    }
30163}
30164impl AstNode for SetExprList {
30165    #[inline]
30166    fn can_cast(kind: SyntaxKind) -> bool {
30167        kind == SyntaxKind::SET_EXPR_LIST
30168    }
30169    #[inline]
30170    fn cast(syntax: SyntaxNode) -> Option<Self> {
30171        if Self::can_cast(syntax.kind()) {
30172            Some(Self { syntax })
30173        } else {
30174            None
30175        }
30176    }
30177    #[inline]
30178    fn syntax(&self) -> &SyntaxNode {
30179        &self.syntax
30180    }
30181}
30182impl AstNode for SetExpression {
30183    #[inline]
30184    fn can_cast(kind: SyntaxKind) -> bool {
30185        kind == SyntaxKind::SET_EXPRESSION
30186    }
30187    #[inline]
30188    fn cast(syntax: SyntaxNode) -> Option<Self> {
30189        if Self::can_cast(syntax.kind()) {
30190            Some(Self { syntax })
30191        } else {
30192            None
30193        }
30194    }
30195    #[inline]
30196    fn syntax(&self) -> &SyntaxNode {
30197        &self.syntax
30198    }
30199}
30200impl AstNode for SetFuncOption {
30201    #[inline]
30202    fn can_cast(kind: SyntaxKind) -> bool {
30203        kind == SyntaxKind::SET_FUNC_OPTION
30204    }
30205    #[inline]
30206    fn cast(syntax: SyntaxNode) -> Option<Self> {
30207        if Self::can_cast(syntax.kind()) {
30208            Some(Self { syntax })
30209        } else {
30210            None
30211        }
30212    }
30213    #[inline]
30214    fn syntax(&self) -> &SyntaxNode {
30215        &self.syntax
30216    }
30217}
30218impl AstNode for SetGenerated {
30219    #[inline]
30220    fn can_cast(kind: SyntaxKind) -> bool {
30221        kind == SyntaxKind::SET_GENERATED
30222    }
30223    #[inline]
30224    fn cast(syntax: SyntaxNode) -> Option<Self> {
30225        if Self::can_cast(syntax.kind()) {
30226            Some(Self { syntax })
30227        } else {
30228            None
30229        }
30230    }
30231    #[inline]
30232    fn syntax(&self) -> &SyntaxNode {
30233        &self.syntax
30234    }
30235}
30236impl AstNode for SetGeneratedOptions {
30237    #[inline]
30238    fn can_cast(kind: SyntaxKind) -> bool {
30239        kind == SyntaxKind::SET_GENERATED_OPTIONS
30240    }
30241    #[inline]
30242    fn cast(syntax: SyntaxNode) -> Option<Self> {
30243        if Self::can_cast(syntax.kind()) {
30244            Some(Self { syntax })
30245        } else {
30246            None
30247        }
30248    }
30249    #[inline]
30250    fn syntax(&self) -> &SyntaxNode {
30251        &self.syntax
30252    }
30253}
30254impl AstNode for SetLogged {
30255    #[inline]
30256    fn can_cast(kind: SyntaxKind) -> bool {
30257        kind == SyntaxKind::SET_LOGGED
30258    }
30259    #[inline]
30260    fn cast(syntax: SyntaxNode) -> Option<Self> {
30261        if Self::can_cast(syntax.kind()) {
30262            Some(Self { syntax })
30263        } else {
30264            None
30265        }
30266    }
30267    #[inline]
30268    fn syntax(&self) -> &SyntaxNode {
30269        &self.syntax
30270    }
30271}
30272impl AstNode for SetMultipleColumns {
30273    #[inline]
30274    fn can_cast(kind: SyntaxKind) -> bool {
30275        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
30276    }
30277    #[inline]
30278    fn cast(syntax: SyntaxNode) -> Option<Self> {
30279        if Self::can_cast(syntax.kind()) {
30280            Some(Self { syntax })
30281        } else {
30282            None
30283        }
30284    }
30285    #[inline]
30286    fn syntax(&self) -> &SyntaxNode {
30287        &self.syntax
30288    }
30289}
30290impl AstNode for SetNotNull {
30291    #[inline]
30292    fn can_cast(kind: SyntaxKind) -> bool {
30293        kind == SyntaxKind::SET_NOT_NULL
30294    }
30295    #[inline]
30296    fn cast(syntax: SyntaxNode) -> Option<Self> {
30297        if Self::can_cast(syntax.kind()) {
30298            Some(Self { syntax })
30299        } else {
30300            None
30301        }
30302    }
30303    #[inline]
30304    fn syntax(&self) -> &SyntaxNode {
30305        &self.syntax
30306    }
30307}
30308impl AstNode for SetNullColumns {
30309    #[inline]
30310    fn can_cast(kind: SyntaxKind) -> bool {
30311        kind == SyntaxKind::SET_NULL_COLUMNS
30312    }
30313    #[inline]
30314    fn cast(syntax: SyntaxNode) -> Option<Self> {
30315        if Self::can_cast(syntax.kind()) {
30316            Some(Self { syntax })
30317        } else {
30318            None
30319        }
30320    }
30321    #[inline]
30322    fn syntax(&self) -> &SyntaxNode {
30323        &self.syntax
30324    }
30325}
30326impl AstNode for SetOptions {
30327    #[inline]
30328    fn can_cast(kind: SyntaxKind) -> bool {
30329        kind == SyntaxKind::SET_OPTIONS
30330    }
30331    #[inline]
30332    fn cast(syntax: SyntaxNode) -> Option<Self> {
30333        if Self::can_cast(syntax.kind()) {
30334            Some(Self { syntax })
30335        } else {
30336            None
30337        }
30338    }
30339    #[inline]
30340    fn syntax(&self) -> &SyntaxNode {
30341        &self.syntax
30342    }
30343}
30344impl AstNode for SetOptionsList {
30345    #[inline]
30346    fn can_cast(kind: SyntaxKind) -> bool {
30347        kind == SyntaxKind::SET_OPTIONS_LIST
30348    }
30349    #[inline]
30350    fn cast(syntax: SyntaxNode) -> Option<Self> {
30351        if Self::can_cast(syntax.kind()) {
30352            Some(Self { syntax })
30353        } else {
30354            None
30355        }
30356    }
30357    #[inline]
30358    fn syntax(&self) -> &SyntaxNode {
30359        &self.syntax
30360    }
30361}
30362impl AstNode for SetRole {
30363    #[inline]
30364    fn can_cast(kind: SyntaxKind) -> bool {
30365        kind == SyntaxKind::SET_ROLE
30366    }
30367    #[inline]
30368    fn cast(syntax: SyntaxNode) -> Option<Self> {
30369        if Self::can_cast(syntax.kind()) {
30370            Some(Self { syntax })
30371        } else {
30372            None
30373        }
30374    }
30375    #[inline]
30376    fn syntax(&self) -> &SyntaxNode {
30377        &self.syntax
30378    }
30379}
30380impl AstNode for SetSchema {
30381    #[inline]
30382    fn can_cast(kind: SyntaxKind) -> bool {
30383        kind == SyntaxKind::SET_SCHEMA
30384    }
30385    #[inline]
30386    fn cast(syntax: SyntaxNode) -> Option<Self> {
30387        if Self::can_cast(syntax.kind()) {
30388            Some(Self { syntax })
30389        } else {
30390            None
30391        }
30392    }
30393    #[inline]
30394    fn syntax(&self) -> &SyntaxNode {
30395        &self.syntax
30396    }
30397}
30398impl AstNode for SetSequenceOption {
30399    #[inline]
30400    fn can_cast(kind: SyntaxKind) -> bool {
30401        kind == SyntaxKind::SET_SEQUENCE_OPTION
30402    }
30403    #[inline]
30404    fn cast(syntax: SyntaxNode) -> Option<Self> {
30405        if Self::can_cast(syntax.kind()) {
30406            Some(Self { syntax })
30407        } else {
30408            None
30409        }
30410    }
30411    #[inline]
30412    fn syntax(&self) -> &SyntaxNode {
30413        &self.syntax
30414    }
30415}
30416impl AstNode for SetSessionAuth {
30417    #[inline]
30418    fn can_cast(kind: SyntaxKind) -> bool {
30419        kind == SyntaxKind::SET_SESSION_AUTH
30420    }
30421    #[inline]
30422    fn cast(syntax: SyntaxNode) -> Option<Self> {
30423        if Self::can_cast(syntax.kind()) {
30424            Some(Self { syntax })
30425        } else {
30426            None
30427        }
30428    }
30429    #[inline]
30430    fn syntax(&self) -> &SyntaxNode {
30431        &self.syntax
30432    }
30433}
30434impl AstNode for SetSingleColumn {
30435    #[inline]
30436    fn can_cast(kind: SyntaxKind) -> bool {
30437        kind == SyntaxKind::SET_SINGLE_COLUMN
30438    }
30439    #[inline]
30440    fn cast(syntax: SyntaxNode) -> Option<Self> {
30441        if Self::can_cast(syntax.kind()) {
30442            Some(Self { syntax })
30443        } else {
30444            None
30445        }
30446    }
30447    #[inline]
30448    fn syntax(&self) -> &SyntaxNode {
30449        &self.syntax
30450    }
30451}
30452impl AstNode for SetStatistics {
30453    #[inline]
30454    fn can_cast(kind: SyntaxKind) -> bool {
30455        kind == SyntaxKind::SET_STATISTICS
30456    }
30457    #[inline]
30458    fn cast(syntax: SyntaxNode) -> Option<Self> {
30459        if Self::can_cast(syntax.kind()) {
30460            Some(Self { syntax })
30461        } else {
30462            None
30463        }
30464    }
30465    #[inline]
30466    fn syntax(&self) -> &SyntaxNode {
30467        &self.syntax
30468    }
30469}
30470impl AstNode for SetStorage {
30471    #[inline]
30472    fn can_cast(kind: SyntaxKind) -> bool {
30473        kind == SyntaxKind::SET_STORAGE
30474    }
30475    #[inline]
30476    fn cast(syntax: SyntaxNode) -> Option<Self> {
30477        if Self::can_cast(syntax.kind()) {
30478            Some(Self { syntax })
30479        } else {
30480            None
30481        }
30482    }
30483    #[inline]
30484    fn syntax(&self) -> &SyntaxNode {
30485        &self.syntax
30486    }
30487}
30488impl AstNode for SetTablespace {
30489    #[inline]
30490    fn can_cast(kind: SyntaxKind) -> bool {
30491        kind == SyntaxKind::SET_TABLESPACE
30492    }
30493    #[inline]
30494    fn cast(syntax: SyntaxNode) -> Option<Self> {
30495        if Self::can_cast(syntax.kind()) {
30496            Some(Self { syntax })
30497        } else {
30498            None
30499        }
30500    }
30501    #[inline]
30502    fn syntax(&self) -> &SyntaxNode {
30503        &self.syntax
30504    }
30505}
30506impl AstNode for SetTransaction {
30507    #[inline]
30508    fn can_cast(kind: SyntaxKind) -> bool {
30509        kind == SyntaxKind::SET_TRANSACTION
30510    }
30511    #[inline]
30512    fn cast(syntax: SyntaxNode) -> Option<Self> {
30513        if Self::can_cast(syntax.kind()) {
30514            Some(Self { syntax })
30515        } else {
30516            None
30517        }
30518    }
30519    #[inline]
30520    fn syntax(&self) -> &SyntaxNode {
30521        &self.syntax
30522    }
30523}
30524impl AstNode for SetType {
30525    #[inline]
30526    fn can_cast(kind: SyntaxKind) -> bool {
30527        kind == SyntaxKind::SET_TYPE
30528    }
30529    #[inline]
30530    fn cast(syntax: SyntaxNode) -> Option<Self> {
30531        if Self::can_cast(syntax.kind()) {
30532            Some(Self { syntax })
30533        } else {
30534            None
30535        }
30536    }
30537    #[inline]
30538    fn syntax(&self) -> &SyntaxNode {
30539        &self.syntax
30540    }
30541}
30542impl AstNode for SetUnlogged {
30543    #[inline]
30544    fn can_cast(kind: SyntaxKind) -> bool {
30545        kind == SyntaxKind::SET_UNLOGGED
30546    }
30547    #[inline]
30548    fn cast(syntax: SyntaxNode) -> Option<Self> {
30549        if Self::can_cast(syntax.kind()) {
30550            Some(Self { syntax })
30551        } else {
30552            None
30553        }
30554    }
30555    #[inline]
30556    fn syntax(&self) -> &SyntaxNode {
30557        &self.syntax
30558    }
30559}
30560impl AstNode for SetWithoutCluster {
30561    #[inline]
30562    fn can_cast(kind: SyntaxKind) -> bool {
30563        kind == SyntaxKind::SET_WITHOUT_CLUSTER
30564    }
30565    #[inline]
30566    fn cast(syntax: SyntaxNode) -> Option<Self> {
30567        if Self::can_cast(syntax.kind()) {
30568            Some(Self { syntax })
30569        } else {
30570            None
30571        }
30572    }
30573    #[inline]
30574    fn syntax(&self) -> &SyntaxNode {
30575        &self.syntax
30576    }
30577}
30578impl AstNode for SetWithoutOids {
30579    #[inline]
30580    fn can_cast(kind: SyntaxKind) -> bool {
30581        kind == SyntaxKind::SET_WITHOUT_OIDS
30582    }
30583    #[inline]
30584    fn cast(syntax: SyntaxNode) -> Option<Self> {
30585        if Self::can_cast(syntax.kind()) {
30586            Some(Self { syntax })
30587        } else {
30588            None
30589        }
30590    }
30591    #[inline]
30592    fn syntax(&self) -> &SyntaxNode {
30593        &self.syntax
30594    }
30595}
30596impl AstNode for Show {
30597    #[inline]
30598    fn can_cast(kind: SyntaxKind) -> bool {
30599        kind == SyntaxKind::SHOW
30600    }
30601    #[inline]
30602    fn cast(syntax: SyntaxNode) -> Option<Self> {
30603        if Self::can_cast(syntax.kind()) {
30604            Some(Self { syntax })
30605        } else {
30606            None
30607        }
30608    }
30609    #[inline]
30610    fn syntax(&self) -> &SyntaxNode {
30611        &self.syntax
30612    }
30613}
30614impl AstNode for SimilarTo {
30615    #[inline]
30616    fn can_cast(kind: SyntaxKind) -> bool {
30617        kind == SyntaxKind::SIMILAR_TO
30618    }
30619    #[inline]
30620    fn cast(syntax: SyntaxNode) -> Option<Self> {
30621        if Self::can_cast(syntax.kind()) {
30622            Some(Self { syntax })
30623        } else {
30624            None
30625        }
30626    }
30627    #[inline]
30628    fn syntax(&self) -> &SyntaxNode {
30629        &self.syntax
30630    }
30631}
30632impl AstNode for SliceExpr {
30633    #[inline]
30634    fn can_cast(kind: SyntaxKind) -> bool {
30635        kind == SyntaxKind::SLICE_EXPR
30636    }
30637    #[inline]
30638    fn cast(syntax: SyntaxNode) -> Option<Self> {
30639        if Self::can_cast(syntax.kind()) {
30640            Some(Self { syntax })
30641        } else {
30642            None
30643        }
30644    }
30645    #[inline]
30646    fn syntax(&self) -> &SyntaxNode {
30647        &self.syntax
30648    }
30649}
30650impl AstNode for SomeFn {
30651    #[inline]
30652    fn can_cast(kind: SyntaxKind) -> bool {
30653        kind == SyntaxKind::SOME_FN
30654    }
30655    #[inline]
30656    fn cast(syntax: SyntaxNode) -> Option<Self> {
30657        if Self::can_cast(syntax.kind()) {
30658            Some(Self { syntax })
30659        } else {
30660            None
30661        }
30662    }
30663    #[inline]
30664    fn syntax(&self) -> &SyntaxNode {
30665        &self.syntax
30666    }
30667}
30668impl AstNode for SortAsc {
30669    #[inline]
30670    fn can_cast(kind: SyntaxKind) -> bool {
30671        kind == SyntaxKind::SORT_ASC
30672    }
30673    #[inline]
30674    fn cast(syntax: SyntaxNode) -> Option<Self> {
30675        if Self::can_cast(syntax.kind()) {
30676            Some(Self { syntax })
30677        } else {
30678            None
30679        }
30680    }
30681    #[inline]
30682    fn syntax(&self) -> &SyntaxNode {
30683        &self.syntax
30684    }
30685}
30686impl AstNode for SortBy {
30687    #[inline]
30688    fn can_cast(kind: SyntaxKind) -> bool {
30689        kind == SyntaxKind::SORT_BY
30690    }
30691    #[inline]
30692    fn cast(syntax: SyntaxNode) -> Option<Self> {
30693        if Self::can_cast(syntax.kind()) {
30694            Some(Self { syntax })
30695        } else {
30696            None
30697        }
30698    }
30699    #[inline]
30700    fn syntax(&self) -> &SyntaxNode {
30701        &self.syntax
30702    }
30703}
30704impl AstNode for SortByList {
30705    #[inline]
30706    fn can_cast(kind: SyntaxKind) -> bool {
30707        kind == SyntaxKind::SORT_BY_LIST
30708    }
30709    #[inline]
30710    fn cast(syntax: SyntaxNode) -> Option<Self> {
30711        if Self::can_cast(syntax.kind()) {
30712            Some(Self { syntax })
30713        } else {
30714            None
30715        }
30716    }
30717    #[inline]
30718    fn syntax(&self) -> &SyntaxNode {
30719        &self.syntax
30720    }
30721}
30722impl AstNode for SortDesc {
30723    #[inline]
30724    fn can_cast(kind: SyntaxKind) -> bool {
30725        kind == SyntaxKind::SORT_DESC
30726    }
30727    #[inline]
30728    fn cast(syntax: SyntaxNode) -> Option<Self> {
30729        if Self::can_cast(syntax.kind()) {
30730            Some(Self { syntax })
30731        } else {
30732            None
30733        }
30734    }
30735    #[inline]
30736    fn syntax(&self) -> &SyntaxNode {
30737        &self.syntax
30738    }
30739}
30740impl AstNode for SortUsing {
30741    #[inline]
30742    fn can_cast(kind: SyntaxKind) -> bool {
30743        kind == SyntaxKind::SORT_USING
30744    }
30745    #[inline]
30746    fn cast(syntax: SyntaxNode) -> Option<Self> {
30747        if Self::can_cast(syntax.kind()) {
30748            Some(Self { syntax })
30749        } else {
30750            None
30751        }
30752    }
30753    #[inline]
30754    fn syntax(&self) -> &SyntaxNode {
30755        &self.syntax
30756    }
30757}
30758impl AstNode for SourceFile {
30759    #[inline]
30760    fn can_cast(kind: SyntaxKind) -> bool {
30761        kind == SyntaxKind::SOURCE_FILE
30762    }
30763    #[inline]
30764    fn cast(syntax: SyntaxNode) -> Option<Self> {
30765        if Self::can_cast(syntax.kind()) {
30766            Some(Self { syntax })
30767        } else {
30768            None
30769        }
30770    }
30771    #[inline]
30772    fn syntax(&self) -> &SyntaxNode {
30773        &self.syntax
30774    }
30775}
30776impl AstNode for SourceVertexTable {
30777    #[inline]
30778    fn can_cast(kind: SyntaxKind) -> bool {
30779        kind == SyntaxKind::SOURCE_VERTEX_TABLE
30780    }
30781    #[inline]
30782    fn cast(syntax: SyntaxNode) -> Option<Self> {
30783        if Self::can_cast(syntax.kind()) {
30784            Some(Self { syntax })
30785        } else {
30786            None
30787        }
30788    }
30789    #[inline]
30790    fn syntax(&self) -> &SyntaxNode {
30791        &self.syntax
30792    }
30793}
30794impl AstNode for SplitPartition {
30795    #[inline]
30796    fn can_cast(kind: SyntaxKind) -> bool {
30797        kind == SyntaxKind::SPLIT_PARTITION
30798    }
30799    #[inline]
30800    fn cast(syntax: SyntaxNode) -> Option<Self> {
30801        if Self::can_cast(syntax.kind()) {
30802            Some(Self { syntax })
30803        } else {
30804            None
30805        }
30806    }
30807    #[inline]
30808    fn syntax(&self) -> &SyntaxNode {
30809        &self.syntax
30810    }
30811}
30812impl AstNode for Storage {
30813    #[inline]
30814    fn can_cast(kind: SyntaxKind) -> bool {
30815        kind == SyntaxKind::STORAGE
30816    }
30817    #[inline]
30818    fn cast(syntax: SyntaxNode) -> Option<Self> {
30819        if Self::can_cast(syntax.kind()) {
30820            Some(Self { syntax })
30821        } else {
30822            None
30823        }
30824    }
30825    #[inline]
30826    fn syntax(&self) -> &SyntaxNode {
30827        &self.syntax
30828    }
30829}
30830impl AstNode for StrictFuncOption {
30831    #[inline]
30832    fn can_cast(kind: SyntaxKind) -> bool {
30833        kind == SyntaxKind::STRICT_FUNC_OPTION
30834    }
30835    #[inline]
30836    fn cast(syntax: SyntaxNode) -> Option<Self> {
30837        if Self::can_cast(syntax.kind()) {
30838            Some(Self { syntax })
30839        } else {
30840            None
30841        }
30842    }
30843    #[inline]
30844    fn syntax(&self) -> &SyntaxNode {
30845        &self.syntax
30846    }
30847}
30848impl AstNode for SubstringFn {
30849    #[inline]
30850    fn can_cast(kind: SyntaxKind) -> bool {
30851        kind == SyntaxKind::SUBSTRING_FN
30852    }
30853    #[inline]
30854    fn cast(syntax: SyntaxNode) -> Option<Self> {
30855        if Self::can_cast(syntax.kind()) {
30856            Some(Self { syntax })
30857        } else {
30858            None
30859        }
30860    }
30861    #[inline]
30862    fn syntax(&self) -> &SyntaxNode {
30863        &self.syntax
30864    }
30865}
30866impl AstNode for SupportFuncOption {
30867    #[inline]
30868    fn can_cast(kind: SyntaxKind) -> bool {
30869        kind == SyntaxKind::SUPPORT_FUNC_OPTION
30870    }
30871    #[inline]
30872    fn cast(syntax: SyntaxNode) -> Option<Self> {
30873        if Self::can_cast(syntax.kind()) {
30874            Some(Self { syntax })
30875        } else {
30876            None
30877        }
30878    }
30879    #[inline]
30880    fn syntax(&self) -> &SyntaxNode {
30881        &self.syntax
30882    }
30883}
30884impl AstNode for Table {
30885    #[inline]
30886    fn can_cast(kind: SyntaxKind) -> bool {
30887        kind == SyntaxKind::TABLE
30888    }
30889    #[inline]
30890    fn cast(syntax: SyntaxNode) -> Option<Self> {
30891        if Self::can_cast(syntax.kind()) {
30892            Some(Self { syntax })
30893        } else {
30894            None
30895        }
30896    }
30897    #[inline]
30898    fn syntax(&self) -> &SyntaxNode {
30899        &self.syntax
30900    }
30901}
30902impl AstNode for TableAndColumns {
30903    #[inline]
30904    fn can_cast(kind: SyntaxKind) -> bool {
30905        kind == SyntaxKind::TABLE_AND_COLUMNS
30906    }
30907    #[inline]
30908    fn cast(syntax: SyntaxNode) -> Option<Self> {
30909        if Self::can_cast(syntax.kind()) {
30910            Some(Self { syntax })
30911        } else {
30912            None
30913        }
30914    }
30915    #[inline]
30916    fn syntax(&self) -> &SyntaxNode {
30917        &self.syntax
30918    }
30919}
30920impl AstNode for TableAndColumnsList {
30921    #[inline]
30922    fn can_cast(kind: SyntaxKind) -> bool {
30923        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
30924    }
30925    #[inline]
30926    fn cast(syntax: SyntaxNode) -> Option<Self> {
30927        if Self::can_cast(syntax.kind()) {
30928            Some(Self { syntax })
30929        } else {
30930            None
30931        }
30932    }
30933    #[inline]
30934    fn syntax(&self) -> &SyntaxNode {
30935        &self.syntax
30936    }
30937}
30938impl AstNode for TableArgList {
30939    #[inline]
30940    fn can_cast(kind: SyntaxKind) -> bool {
30941        kind == SyntaxKind::TABLE_ARG_LIST
30942    }
30943    #[inline]
30944    fn cast(syntax: SyntaxNode) -> Option<Self> {
30945        if Self::can_cast(syntax.kind()) {
30946            Some(Self { syntax })
30947        } else {
30948            None
30949        }
30950    }
30951    #[inline]
30952    fn syntax(&self) -> &SyntaxNode {
30953        &self.syntax
30954    }
30955}
30956impl AstNode for TableList {
30957    #[inline]
30958    fn can_cast(kind: SyntaxKind) -> bool {
30959        kind == SyntaxKind::TABLE_LIST
30960    }
30961    #[inline]
30962    fn cast(syntax: SyntaxNode) -> Option<Self> {
30963        if Self::can_cast(syntax.kind()) {
30964            Some(Self { syntax })
30965        } else {
30966            None
30967        }
30968    }
30969    #[inline]
30970    fn syntax(&self) -> &SyntaxNode {
30971        &self.syntax
30972    }
30973}
30974impl AstNode for TablesampleClause {
30975    #[inline]
30976    fn can_cast(kind: SyntaxKind) -> bool {
30977        kind == SyntaxKind::TABLESAMPLE_CLAUSE
30978    }
30979    #[inline]
30980    fn cast(syntax: SyntaxNode) -> Option<Self> {
30981        if Self::can_cast(syntax.kind()) {
30982            Some(Self { syntax })
30983        } else {
30984            None
30985        }
30986    }
30987    #[inline]
30988    fn syntax(&self) -> &SyntaxNode {
30989        &self.syntax
30990    }
30991}
30992impl AstNode for Tablespace {
30993    #[inline]
30994    fn can_cast(kind: SyntaxKind) -> bool {
30995        kind == SyntaxKind::TABLESPACE
30996    }
30997    #[inline]
30998    fn cast(syntax: SyntaxNode) -> Option<Self> {
30999        if Self::can_cast(syntax.kind()) {
31000            Some(Self { syntax })
31001        } else {
31002            None
31003        }
31004    }
31005    #[inline]
31006    fn syntax(&self) -> &SyntaxNode {
31007        &self.syntax
31008    }
31009}
31010impl AstNode for Target {
31011    #[inline]
31012    fn can_cast(kind: SyntaxKind) -> bool {
31013        kind == SyntaxKind::TARGET
31014    }
31015    #[inline]
31016    fn cast(syntax: SyntaxNode) -> Option<Self> {
31017        if Self::can_cast(syntax.kind()) {
31018            Some(Self { syntax })
31019        } else {
31020            None
31021        }
31022    }
31023    #[inline]
31024    fn syntax(&self) -> &SyntaxNode {
31025        &self.syntax
31026    }
31027}
31028impl AstNode for TargetList {
31029    #[inline]
31030    fn can_cast(kind: SyntaxKind) -> bool {
31031        kind == SyntaxKind::TARGET_LIST
31032    }
31033    #[inline]
31034    fn cast(syntax: SyntaxNode) -> Option<Self> {
31035        if Self::can_cast(syntax.kind()) {
31036            Some(Self { syntax })
31037        } else {
31038            None
31039        }
31040    }
31041    #[inline]
31042    fn syntax(&self) -> &SyntaxNode {
31043        &self.syntax
31044    }
31045}
31046impl AstNode for Temp {
31047    #[inline]
31048    fn can_cast(kind: SyntaxKind) -> bool {
31049        kind == SyntaxKind::TEMP
31050    }
31051    #[inline]
31052    fn cast(syntax: SyntaxNode) -> Option<Self> {
31053        if Self::can_cast(syntax.kind()) {
31054            Some(Self { syntax })
31055        } else {
31056            None
31057        }
31058    }
31059    #[inline]
31060    fn syntax(&self) -> &SyntaxNode {
31061        &self.syntax
31062    }
31063}
31064impl AstNode for TimeType {
31065    #[inline]
31066    fn can_cast(kind: SyntaxKind) -> bool {
31067        kind == SyntaxKind::TIME_TYPE
31068    }
31069    #[inline]
31070    fn cast(syntax: SyntaxNode) -> Option<Self> {
31071        if Self::can_cast(syntax.kind()) {
31072            Some(Self { syntax })
31073        } else {
31074            None
31075        }
31076    }
31077    #[inline]
31078    fn syntax(&self) -> &SyntaxNode {
31079        &self.syntax
31080    }
31081}
31082impl AstNode for Timing {
31083    #[inline]
31084    fn can_cast(kind: SyntaxKind) -> bool {
31085        kind == SyntaxKind::TIMING
31086    }
31087    #[inline]
31088    fn cast(syntax: SyntaxNode) -> Option<Self> {
31089        if Self::can_cast(syntax.kind()) {
31090            Some(Self { syntax })
31091        } else {
31092            None
31093        }
31094    }
31095    #[inline]
31096    fn syntax(&self) -> &SyntaxNode {
31097        &self.syntax
31098    }
31099}
31100impl AstNode for TransactionModeList {
31101    #[inline]
31102    fn can_cast(kind: SyntaxKind) -> bool {
31103        kind == SyntaxKind::TRANSACTION_MODE_LIST
31104    }
31105    #[inline]
31106    fn cast(syntax: SyntaxNode) -> Option<Self> {
31107        if Self::can_cast(syntax.kind()) {
31108            Some(Self { syntax })
31109        } else {
31110            None
31111        }
31112    }
31113    #[inline]
31114    fn syntax(&self) -> &SyntaxNode {
31115        &self.syntax
31116    }
31117}
31118impl AstNode for TransformFromFunc {
31119    #[inline]
31120    fn can_cast(kind: SyntaxKind) -> bool {
31121        kind == SyntaxKind::TRANSFORM_FROM_FUNC
31122    }
31123    #[inline]
31124    fn cast(syntax: SyntaxNode) -> Option<Self> {
31125        if Self::can_cast(syntax.kind()) {
31126            Some(Self { syntax })
31127        } else {
31128            None
31129        }
31130    }
31131    #[inline]
31132    fn syntax(&self) -> &SyntaxNode {
31133        &self.syntax
31134    }
31135}
31136impl AstNode for TransformFuncOption {
31137    #[inline]
31138    fn can_cast(kind: SyntaxKind) -> bool {
31139        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
31140    }
31141    #[inline]
31142    fn cast(syntax: SyntaxNode) -> Option<Self> {
31143        if Self::can_cast(syntax.kind()) {
31144            Some(Self { syntax })
31145        } else {
31146            None
31147        }
31148    }
31149    #[inline]
31150    fn syntax(&self) -> &SyntaxNode {
31151        &self.syntax
31152    }
31153}
31154impl AstNode for TransformToFunc {
31155    #[inline]
31156    fn can_cast(kind: SyntaxKind) -> bool {
31157        kind == SyntaxKind::TRANSFORM_TO_FUNC
31158    }
31159    #[inline]
31160    fn cast(syntax: SyntaxNode) -> Option<Self> {
31161        if Self::can_cast(syntax.kind()) {
31162            Some(Self { syntax })
31163        } else {
31164            None
31165        }
31166    }
31167    #[inline]
31168    fn syntax(&self) -> &SyntaxNode {
31169        &self.syntax
31170    }
31171}
31172impl AstNode for TriggerEvent {
31173    #[inline]
31174    fn can_cast(kind: SyntaxKind) -> bool {
31175        kind == SyntaxKind::TRIGGER_EVENT
31176    }
31177    #[inline]
31178    fn cast(syntax: SyntaxNode) -> Option<Self> {
31179        if Self::can_cast(syntax.kind()) {
31180            Some(Self { syntax })
31181        } else {
31182            None
31183        }
31184    }
31185    #[inline]
31186    fn syntax(&self) -> &SyntaxNode {
31187        &self.syntax
31188    }
31189}
31190impl AstNode for TriggerEventList {
31191    #[inline]
31192    fn can_cast(kind: SyntaxKind) -> bool {
31193        kind == SyntaxKind::TRIGGER_EVENT_LIST
31194    }
31195    #[inline]
31196    fn cast(syntax: SyntaxNode) -> Option<Self> {
31197        if Self::can_cast(syntax.kind()) {
31198            Some(Self { syntax })
31199        } else {
31200            None
31201        }
31202    }
31203    #[inline]
31204    fn syntax(&self) -> &SyntaxNode {
31205        &self.syntax
31206    }
31207}
31208impl AstNode for TriggerEventUpdate {
31209    #[inline]
31210    fn can_cast(kind: SyntaxKind) -> bool {
31211        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
31212    }
31213    #[inline]
31214    fn cast(syntax: SyntaxNode) -> Option<Self> {
31215        if Self::can_cast(syntax.kind()) {
31216            Some(Self { syntax })
31217        } else {
31218            None
31219        }
31220    }
31221    #[inline]
31222    fn syntax(&self) -> &SyntaxNode {
31223        &self.syntax
31224    }
31225}
31226impl AstNode for TrimFn {
31227    #[inline]
31228    fn can_cast(kind: SyntaxKind) -> bool {
31229        kind == SyntaxKind::TRIM_FN
31230    }
31231    #[inline]
31232    fn cast(syntax: SyntaxNode) -> Option<Self> {
31233        if Self::can_cast(syntax.kind()) {
31234            Some(Self { syntax })
31235        } else {
31236            None
31237        }
31238    }
31239    #[inline]
31240    fn syntax(&self) -> &SyntaxNode {
31241        &self.syntax
31242    }
31243}
31244impl AstNode for Truncate {
31245    #[inline]
31246    fn can_cast(kind: SyntaxKind) -> bool {
31247        kind == SyntaxKind::TRUNCATE
31248    }
31249    #[inline]
31250    fn cast(syntax: SyntaxNode) -> Option<Self> {
31251        if Self::can_cast(syntax.kind()) {
31252            Some(Self { syntax })
31253        } else {
31254            None
31255        }
31256    }
31257    #[inline]
31258    fn syntax(&self) -> &SyntaxNode {
31259        &self.syntax
31260    }
31261}
31262impl AstNode for TupleExpr {
31263    #[inline]
31264    fn can_cast(kind: SyntaxKind) -> bool {
31265        kind == SyntaxKind::TUPLE_EXPR
31266    }
31267    #[inline]
31268    fn cast(syntax: SyntaxNode) -> Option<Self> {
31269        if Self::can_cast(syntax.kind()) {
31270            Some(Self { syntax })
31271        } else {
31272            None
31273        }
31274    }
31275    #[inline]
31276    fn syntax(&self) -> &SyntaxNode {
31277        &self.syntax
31278    }
31279}
31280impl AstNode for UnicodeNormalForm {
31281    #[inline]
31282    fn can_cast(kind: SyntaxKind) -> bool {
31283        kind == SyntaxKind::UNICODE_NORMAL_FORM
31284    }
31285    #[inline]
31286    fn cast(syntax: SyntaxNode) -> Option<Self> {
31287        if Self::can_cast(syntax.kind()) {
31288            Some(Self { syntax })
31289        } else {
31290            None
31291        }
31292    }
31293    #[inline]
31294    fn syntax(&self) -> &SyntaxNode {
31295        &self.syntax
31296    }
31297}
31298impl AstNode for UniqueConstraint {
31299    #[inline]
31300    fn can_cast(kind: SyntaxKind) -> bool {
31301        kind == SyntaxKind::UNIQUE_CONSTRAINT
31302    }
31303    #[inline]
31304    fn cast(syntax: SyntaxNode) -> Option<Self> {
31305        if Self::can_cast(syntax.kind()) {
31306            Some(Self { syntax })
31307        } else {
31308            None
31309        }
31310    }
31311    #[inline]
31312    fn syntax(&self) -> &SyntaxNode {
31313        &self.syntax
31314    }
31315}
31316impl AstNode for Unlisten {
31317    #[inline]
31318    fn can_cast(kind: SyntaxKind) -> bool {
31319        kind == SyntaxKind::UNLISTEN
31320    }
31321    #[inline]
31322    fn cast(syntax: SyntaxNode) -> Option<Self> {
31323        if Self::can_cast(syntax.kind()) {
31324            Some(Self { syntax })
31325        } else {
31326            None
31327        }
31328    }
31329    #[inline]
31330    fn syntax(&self) -> &SyntaxNode {
31331        &self.syntax
31332    }
31333}
31334impl AstNode for Unlogged {
31335    #[inline]
31336    fn can_cast(kind: SyntaxKind) -> bool {
31337        kind == SyntaxKind::UNLOGGED
31338    }
31339    #[inline]
31340    fn cast(syntax: SyntaxNode) -> Option<Self> {
31341        if Self::can_cast(syntax.kind()) {
31342            Some(Self { syntax })
31343        } else {
31344            None
31345        }
31346    }
31347    #[inline]
31348    fn syntax(&self) -> &SyntaxNode {
31349        &self.syntax
31350    }
31351}
31352impl AstNode for Update {
31353    #[inline]
31354    fn can_cast(kind: SyntaxKind) -> bool {
31355        kind == SyntaxKind::UPDATE
31356    }
31357    #[inline]
31358    fn cast(syntax: SyntaxNode) -> Option<Self> {
31359        if Self::can_cast(syntax.kind()) {
31360            Some(Self { syntax })
31361        } else {
31362            None
31363        }
31364    }
31365    #[inline]
31366    fn syntax(&self) -> &SyntaxNode {
31367        &self.syntax
31368    }
31369}
31370impl AstNode for UsingClause {
31371    #[inline]
31372    fn can_cast(kind: SyntaxKind) -> bool {
31373        kind == SyntaxKind::USING_CLAUSE
31374    }
31375    #[inline]
31376    fn cast(syntax: SyntaxNode) -> Option<Self> {
31377        if Self::can_cast(syntax.kind()) {
31378            Some(Self { syntax })
31379        } else {
31380            None
31381        }
31382    }
31383    #[inline]
31384    fn syntax(&self) -> &SyntaxNode {
31385        &self.syntax
31386    }
31387}
31388impl AstNode for UsingExprClause {
31389    #[inline]
31390    fn can_cast(kind: SyntaxKind) -> bool {
31391        kind == SyntaxKind::USING_EXPR_CLAUSE
31392    }
31393    #[inline]
31394    fn cast(syntax: SyntaxNode) -> Option<Self> {
31395        if Self::can_cast(syntax.kind()) {
31396            Some(Self { syntax })
31397        } else {
31398            None
31399        }
31400    }
31401    #[inline]
31402    fn syntax(&self) -> &SyntaxNode {
31403        &self.syntax
31404    }
31405}
31406impl AstNode for UsingIndex {
31407    #[inline]
31408    fn can_cast(kind: SyntaxKind) -> bool {
31409        kind == SyntaxKind::USING_INDEX
31410    }
31411    #[inline]
31412    fn cast(syntax: SyntaxNode) -> Option<Self> {
31413        if Self::can_cast(syntax.kind()) {
31414            Some(Self { syntax })
31415        } else {
31416            None
31417        }
31418    }
31419    #[inline]
31420    fn syntax(&self) -> &SyntaxNode {
31421        &self.syntax
31422    }
31423}
31424impl AstNode for UsingMethod {
31425    #[inline]
31426    fn can_cast(kind: SyntaxKind) -> bool {
31427        kind == SyntaxKind::USING_METHOD
31428    }
31429    #[inline]
31430    fn cast(syntax: SyntaxNode) -> Option<Self> {
31431        if Self::can_cast(syntax.kind()) {
31432            Some(Self { syntax })
31433        } else {
31434            None
31435        }
31436    }
31437    #[inline]
31438    fn syntax(&self) -> &SyntaxNode {
31439        &self.syntax
31440    }
31441}
31442impl AstNode for UsingOnClause {
31443    #[inline]
31444    fn can_cast(kind: SyntaxKind) -> bool {
31445        kind == SyntaxKind::USING_ON_CLAUSE
31446    }
31447    #[inline]
31448    fn cast(syntax: SyntaxNode) -> Option<Self> {
31449        if Self::can_cast(syntax.kind()) {
31450            Some(Self { syntax })
31451        } else {
31452            None
31453        }
31454    }
31455    #[inline]
31456    fn syntax(&self) -> &SyntaxNode {
31457        &self.syntax
31458    }
31459}
31460impl AstNode for Vacuum {
31461    #[inline]
31462    fn can_cast(kind: SyntaxKind) -> bool {
31463        kind == SyntaxKind::VACUUM
31464    }
31465    #[inline]
31466    fn cast(syntax: SyntaxNode) -> Option<Self> {
31467        if Self::can_cast(syntax.kind()) {
31468            Some(Self { syntax })
31469        } else {
31470            None
31471        }
31472    }
31473    #[inline]
31474    fn syntax(&self) -> &SyntaxNode {
31475        &self.syntax
31476    }
31477}
31478impl AstNode for VacuumOption {
31479    #[inline]
31480    fn can_cast(kind: SyntaxKind) -> bool {
31481        kind == SyntaxKind::VACUUM_OPTION
31482    }
31483    #[inline]
31484    fn cast(syntax: SyntaxNode) -> Option<Self> {
31485        if Self::can_cast(syntax.kind()) {
31486            Some(Self { syntax })
31487        } else {
31488            None
31489        }
31490    }
31491    #[inline]
31492    fn syntax(&self) -> &SyntaxNode {
31493        &self.syntax
31494    }
31495}
31496impl AstNode for VacuumOptionList {
31497    #[inline]
31498    fn can_cast(kind: SyntaxKind) -> bool {
31499        kind == SyntaxKind::VACUUM_OPTION_LIST
31500    }
31501    #[inline]
31502    fn cast(syntax: SyntaxNode) -> Option<Self> {
31503        if Self::can_cast(syntax.kind()) {
31504            Some(Self { syntax })
31505        } else {
31506            None
31507        }
31508    }
31509    #[inline]
31510    fn syntax(&self) -> &SyntaxNode {
31511        &self.syntax
31512    }
31513}
31514impl AstNode for ValidateConstraint {
31515    #[inline]
31516    fn can_cast(kind: SyntaxKind) -> bool {
31517        kind == SyntaxKind::VALIDATE_CONSTRAINT
31518    }
31519    #[inline]
31520    fn cast(syntax: SyntaxNode) -> Option<Self> {
31521        if Self::can_cast(syntax.kind()) {
31522            Some(Self { syntax })
31523        } else {
31524            None
31525        }
31526    }
31527    #[inline]
31528    fn syntax(&self) -> &SyntaxNode {
31529        &self.syntax
31530    }
31531}
31532impl AstNode for Values {
31533    #[inline]
31534    fn can_cast(kind: SyntaxKind) -> bool {
31535        kind == SyntaxKind::VALUES
31536    }
31537    #[inline]
31538    fn cast(syntax: SyntaxNode) -> Option<Self> {
31539        if Self::can_cast(syntax.kind()) {
31540            Some(Self { syntax })
31541        } else {
31542            None
31543        }
31544    }
31545    #[inline]
31546    fn syntax(&self) -> &SyntaxNode {
31547        &self.syntax
31548    }
31549}
31550impl AstNode for Variant {
31551    #[inline]
31552    fn can_cast(kind: SyntaxKind) -> bool {
31553        kind == SyntaxKind::VARIANT
31554    }
31555    #[inline]
31556    fn cast(syntax: SyntaxNode) -> Option<Self> {
31557        if Self::can_cast(syntax.kind()) {
31558            Some(Self { syntax })
31559        } else {
31560            None
31561        }
31562    }
31563    #[inline]
31564    fn syntax(&self) -> &SyntaxNode {
31565        &self.syntax
31566    }
31567}
31568impl AstNode for VariantList {
31569    #[inline]
31570    fn can_cast(kind: SyntaxKind) -> bool {
31571        kind == SyntaxKind::VARIANT_LIST
31572    }
31573    #[inline]
31574    fn cast(syntax: SyntaxNode) -> Option<Self> {
31575        if Self::can_cast(syntax.kind()) {
31576            Some(Self { syntax })
31577        } else {
31578            None
31579        }
31580    }
31581    #[inline]
31582    fn syntax(&self) -> &SyntaxNode {
31583        &self.syntax
31584    }
31585}
31586impl AstNode for VertexPattern {
31587    #[inline]
31588    fn can_cast(kind: SyntaxKind) -> bool {
31589        kind == SyntaxKind::VERTEX_PATTERN
31590    }
31591    #[inline]
31592    fn cast(syntax: SyntaxNode) -> Option<Self> {
31593        if Self::can_cast(syntax.kind()) {
31594            Some(Self { syntax })
31595        } else {
31596            None
31597        }
31598    }
31599    #[inline]
31600    fn syntax(&self) -> &SyntaxNode {
31601        &self.syntax
31602    }
31603}
31604impl AstNode for VertexTableDef {
31605    #[inline]
31606    fn can_cast(kind: SyntaxKind) -> bool {
31607        kind == SyntaxKind::VERTEX_TABLE_DEF
31608    }
31609    #[inline]
31610    fn cast(syntax: SyntaxNode) -> Option<Self> {
31611        if Self::can_cast(syntax.kind()) {
31612            Some(Self { syntax })
31613        } else {
31614            None
31615        }
31616    }
31617    #[inline]
31618    fn syntax(&self) -> &SyntaxNode {
31619        &self.syntax
31620    }
31621}
31622impl AstNode for VertexTables {
31623    #[inline]
31624    fn can_cast(kind: SyntaxKind) -> bool {
31625        kind == SyntaxKind::VERTEX_TABLES
31626    }
31627    #[inline]
31628    fn cast(syntax: SyntaxNode) -> Option<Self> {
31629        if Self::can_cast(syntax.kind()) {
31630            Some(Self { syntax })
31631        } else {
31632            None
31633        }
31634    }
31635    #[inline]
31636    fn syntax(&self) -> &SyntaxNode {
31637        &self.syntax
31638    }
31639}
31640impl AstNode for VolatilityFuncOption {
31641    #[inline]
31642    fn can_cast(kind: SyntaxKind) -> bool {
31643        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
31644    }
31645    #[inline]
31646    fn cast(syntax: SyntaxNode) -> Option<Self> {
31647        if Self::can_cast(syntax.kind()) {
31648            Some(Self { syntax })
31649        } else {
31650            None
31651        }
31652    }
31653    #[inline]
31654    fn syntax(&self) -> &SyntaxNode {
31655        &self.syntax
31656    }
31657}
31658impl AstNode for WhenClause {
31659    #[inline]
31660    fn can_cast(kind: SyntaxKind) -> bool {
31661        kind == SyntaxKind::WHEN_CLAUSE
31662    }
31663    #[inline]
31664    fn cast(syntax: SyntaxNode) -> Option<Self> {
31665        if Self::can_cast(syntax.kind()) {
31666            Some(Self { syntax })
31667        } else {
31668            None
31669        }
31670    }
31671    #[inline]
31672    fn syntax(&self) -> &SyntaxNode {
31673        &self.syntax
31674    }
31675}
31676impl AstNode for WhenClauseList {
31677    #[inline]
31678    fn can_cast(kind: SyntaxKind) -> bool {
31679        kind == SyntaxKind::WHEN_CLAUSE_LIST
31680    }
31681    #[inline]
31682    fn cast(syntax: SyntaxNode) -> Option<Self> {
31683        if Self::can_cast(syntax.kind()) {
31684            Some(Self { syntax })
31685        } else {
31686            None
31687        }
31688    }
31689    #[inline]
31690    fn syntax(&self) -> &SyntaxNode {
31691        &self.syntax
31692    }
31693}
31694impl AstNode for WhenCondition {
31695    #[inline]
31696    fn can_cast(kind: SyntaxKind) -> bool {
31697        kind == SyntaxKind::WHEN_CONDITION
31698    }
31699    #[inline]
31700    fn cast(syntax: SyntaxNode) -> Option<Self> {
31701        if Self::can_cast(syntax.kind()) {
31702            Some(Self { syntax })
31703        } else {
31704            None
31705        }
31706    }
31707    #[inline]
31708    fn syntax(&self) -> &SyntaxNode {
31709        &self.syntax
31710    }
31711}
31712impl AstNode for WhereClause {
31713    #[inline]
31714    fn can_cast(kind: SyntaxKind) -> bool {
31715        kind == SyntaxKind::WHERE_CLAUSE
31716    }
31717    #[inline]
31718    fn cast(syntax: SyntaxNode) -> Option<Self> {
31719        if Self::can_cast(syntax.kind()) {
31720            Some(Self { syntax })
31721        } else {
31722            None
31723        }
31724    }
31725    #[inline]
31726    fn syntax(&self) -> &SyntaxNode {
31727        &self.syntax
31728    }
31729}
31730impl AstNode for WhereConditionClause {
31731    #[inline]
31732    fn can_cast(kind: SyntaxKind) -> bool {
31733        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
31734    }
31735    #[inline]
31736    fn cast(syntax: SyntaxNode) -> Option<Self> {
31737        if Self::can_cast(syntax.kind()) {
31738            Some(Self { syntax })
31739        } else {
31740            None
31741        }
31742    }
31743    #[inline]
31744    fn syntax(&self) -> &SyntaxNode {
31745        &self.syntax
31746    }
31747}
31748impl AstNode for WhereCurrentOf {
31749    #[inline]
31750    fn can_cast(kind: SyntaxKind) -> bool {
31751        kind == SyntaxKind::WHERE_CURRENT_OF
31752    }
31753    #[inline]
31754    fn cast(syntax: SyntaxNode) -> Option<Self> {
31755        if Self::can_cast(syntax.kind()) {
31756            Some(Self { syntax })
31757        } else {
31758            None
31759        }
31760    }
31761    #[inline]
31762    fn syntax(&self) -> &SyntaxNode {
31763        &self.syntax
31764    }
31765}
31766impl AstNode for WindowClause {
31767    #[inline]
31768    fn can_cast(kind: SyntaxKind) -> bool {
31769        kind == SyntaxKind::WINDOW_CLAUSE
31770    }
31771    #[inline]
31772    fn cast(syntax: SyntaxNode) -> Option<Self> {
31773        if Self::can_cast(syntax.kind()) {
31774            Some(Self { syntax })
31775        } else {
31776            None
31777        }
31778    }
31779    #[inline]
31780    fn syntax(&self) -> &SyntaxNode {
31781        &self.syntax
31782    }
31783}
31784impl AstNode for WindowDef {
31785    #[inline]
31786    fn can_cast(kind: SyntaxKind) -> bool {
31787        kind == SyntaxKind::WINDOW_DEF
31788    }
31789    #[inline]
31790    fn cast(syntax: SyntaxNode) -> Option<Self> {
31791        if Self::can_cast(syntax.kind()) {
31792            Some(Self { syntax })
31793        } else {
31794            None
31795        }
31796    }
31797    #[inline]
31798    fn syntax(&self) -> &SyntaxNode {
31799        &self.syntax
31800    }
31801}
31802impl AstNode for WindowFuncOption {
31803    #[inline]
31804    fn can_cast(kind: SyntaxKind) -> bool {
31805        kind == SyntaxKind::WINDOW_FUNC_OPTION
31806    }
31807    #[inline]
31808    fn cast(syntax: SyntaxNode) -> Option<Self> {
31809        if Self::can_cast(syntax.kind()) {
31810            Some(Self { syntax })
31811        } else {
31812            None
31813        }
31814    }
31815    #[inline]
31816    fn syntax(&self) -> &SyntaxNode {
31817        &self.syntax
31818    }
31819}
31820impl AstNode for WindowSpec {
31821    #[inline]
31822    fn can_cast(kind: SyntaxKind) -> bool {
31823        kind == SyntaxKind::WINDOW_SPEC
31824    }
31825    #[inline]
31826    fn cast(syntax: SyntaxNode) -> Option<Self> {
31827        if Self::can_cast(syntax.kind()) {
31828            Some(Self { syntax })
31829        } else {
31830            None
31831        }
31832    }
31833    #[inline]
31834    fn syntax(&self) -> &SyntaxNode {
31835        &self.syntax
31836    }
31837}
31838impl AstNode for WithCheckExprClause {
31839    #[inline]
31840    fn can_cast(kind: SyntaxKind) -> bool {
31841        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
31842    }
31843    #[inline]
31844    fn cast(syntax: SyntaxNode) -> Option<Self> {
31845        if Self::can_cast(syntax.kind()) {
31846            Some(Self { syntax })
31847        } else {
31848            None
31849        }
31850    }
31851    #[inline]
31852    fn syntax(&self) -> &SyntaxNode {
31853        &self.syntax
31854    }
31855}
31856impl AstNode for WithClause {
31857    #[inline]
31858    fn can_cast(kind: SyntaxKind) -> bool {
31859        kind == SyntaxKind::WITH_CLAUSE
31860    }
31861    #[inline]
31862    fn cast(syntax: SyntaxNode) -> Option<Self> {
31863        if Self::can_cast(syntax.kind()) {
31864            Some(Self { syntax })
31865        } else {
31866            None
31867        }
31868    }
31869    #[inline]
31870    fn syntax(&self) -> &SyntaxNode {
31871        &self.syntax
31872    }
31873}
31874impl AstNode for WithData {
31875    #[inline]
31876    fn can_cast(kind: SyntaxKind) -> bool {
31877        kind == SyntaxKind::WITH_DATA
31878    }
31879    #[inline]
31880    fn cast(syntax: SyntaxNode) -> Option<Self> {
31881        if Self::can_cast(syntax.kind()) {
31882            Some(Self { syntax })
31883        } else {
31884            None
31885        }
31886    }
31887    #[inline]
31888    fn syntax(&self) -> &SyntaxNode {
31889        &self.syntax
31890    }
31891}
31892impl AstNode for WithNoData {
31893    #[inline]
31894    fn can_cast(kind: SyntaxKind) -> bool {
31895        kind == SyntaxKind::WITH_NO_DATA
31896    }
31897    #[inline]
31898    fn cast(syntax: SyntaxNode) -> Option<Self> {
31899        if Self::can_cast(syntax.kind()) {
31900            Some(Self { syntax })
31901        } else {
31902            None
31903        }
31904    }
31905    #[inline]
31906    fn syntax(&self) -> &SyntaxNode {
31907        &self.syntax
31908    }
31909}
31910impl AstNode for WithOptions {
31911    #[inline]
31912    fn can_cast(kind: SyntaxKind) -> bool {
31913        kind == SyntaxKind::WITH_OPTIONS
31914    }
31915    #[inline]
31916    fn cast(syntax: SyntaxNode) -> Option<Self> {
31917        if Self::can_cast(syntax.kind()) {
31918            Some(Self { syntax })
31919        } else {
31920            None
31921        }
31922    }
31923    #[inline]
31924    fn syntax(&self) -> &SyntaxNode {
31925        &self.syntax
31926    }
31927}
31928impl AstNode for WithParams {
31929    #[inline]
31930    fn can_cast(kind: SyntaxKind) -> bool {
31931        kind == SyntaxKind::WITH_PARAMS
31932    }
31933    #[inline]
31934    fn cast(syntax: SyntaxNode) -> Option<Self> {
31935        if Self::can_cast(syntax.kind()) {
31936            Some(Self { syntax })
31937        } else {
31938            None
31939        }
31940    }
31941    #[inline]
31942    fn syntax(&self) -> &SyntaxNode {
31943        &self.syntax
31944    }
31945}
31946impl AstNode for WithTable {
31947    #[inline]
31948    fn can_cast(kind: SyntaxKind) -> bool {
31949        kind == SyntaxKind::WITH_TABLE
31950    }
31951    #[inline]
31952    fn cast(syntax: SyntaxNode) -> Option<Self> {
31953        if Self::can_cast(syntax.kind()) {
31954            Some(Self { syntax })
31955        } else {
31956            None
31957        }
31958    }
31959    #[inline]
31960    fn syntax(&self) -> &SyntaxNode {
31961        &self.syntax
31962    }
31963}
31964impl AstNode for WithTimezone {
31965    #[inline]
31966    fn can_cast(kind: SyntaxKind) -> bool {
31967        kind == SyntaxKind::WITH_TIMEZONE
31968    }
31969    #[inline]
31970    fn cast(syntax: SyntaxNode) -> Option<Self> {
31971        if Self::can_cast(syntax.kind()) {
31972            Some(Self { syntax })
31973        } else {
31974            None
31975        }
31976    }
31977    #[inline]
31978    fn syntax(&self) -> &SyntaxNode {
31979        &self.syntax
31980    }
31981}
31982impl AstNode for WithinClause {
31983    #[inline]
31984    fn can_cast(kind: SyntaxKind) -> bool {
31985        kind == SyntaxKind::WITHIN_CLAUSE
31986    }
31987    #[inline]
31988    fn cast(syntax: SyntaxNode) -> Option<Self> {
31989        if Self::can_cast(syntax.kind()) {
31990            Some(Self { syntax })
31991        } else {
31992            None
31993        }
31994    }
31995    #[inline]
31996    fn syntax(&self) -> &SyntaxNode {
31997        &self.syntax
31998    }
31999}
32000impl AstNode for WithoutOids {
32001    #[inline]
32002    fn can_cast(kind: SyntaxKind) -> bool {
32003        kind == SyntaxKind::WITHOUT_OIDS
32004    }
32005    #[inline]
32006    fn cast(syntax: SyntaxNode) -> Option<Self> {
32007        if Self::can_cast(syntax.kind()) {
32008            Some(Self { syntax })
32009        } else {
32010            None
32011        }
32012    }
32013    #[inline]
32014    fn syntax(&self) -> &SyntaxNode {
32015        &self.syntax
32016    }
32017}
32018impl AstNode for WithoutTimezone {
32019    #[inline]
32020    fn can_cast(kind: SyntaxKind) -> bool {
32021        kind == SyntaxKind::WITHOUT_TIMEZONE
32022    }
32023    #[inline]
32024    fn cast(syntax: SyntaxNode) -> Option<Self> {
32025        if Self::can_cast(syntax.kind()) {
32026            Some(Self { syntax })
32027        } else {
32028            None
32029        }
32030    }
32031    #[inline]
32032    fn syntax(&self) -> &SyntaxNode {
32033        &self.syntax
32034    }
32035}
32036impl AstNode for XmlColumnOption {
32037    #[inline]
32038    fn can_cast(kind: SyntaxKind) -> bool {
32039        kind == SyntaxKind::XML_COLUMN_OPTION
32040    }
32041    #[inline]
32042    fn cast(syntax: SyntaxNode) -> Option<Self> {
32043        if Self::can_cast(syntax.kind()) {
32044            Some(Self { syntax })
32045        } else {
32046            None
32047        }
32048    }
32049    #[inline]
32050    fn syntax(&self) -> &SyntaxNode {
32051        &self.syntax
32052    }
32053}
32054impl AstNode for XmlColumnOptionList {
32055    #[inline]
32056    fn can_cast(kind: SyntaxKind) -> bool {
32057        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
32058    }
32059    #[inline]
32060    fn cast(syntax: SyntaxNode) -> Option<Self> {
32061        if Self::can_cast(syntax.kind()) {
32062            Some(Self { syntax })
32063        } else {
32064            None
32065        }
32066    }
32067    #[inline]
32068    fn syntax(&self) -> &SyntaxNode {
32069        &self.syntax
32070    }
32071}
32072impl AstNode for XmlElementFn {
32073    #[inline]
32074    fn can_cast(kind: SyntaxKind) -> bool {
32075        kind == SyntaxKind::XML_ELEMENT_FN
32076    }
32077    #[inline]
32078    fn cast(syntax: SyntaxNode) -> Option<Self> {
32079        if Self::can_cast(syntax.kind()) {
32080            Some(Self { syntax })
32081        } else {
32082            None
32083        }
32084    }
32085    #[inline]
32086    fn syntax(&self) -> &SyntaxNode {
32087        &self.syntax
32088    }
32089}
32090impl AstNode for XmlExistsFn {
32091    #[inline]
32092    fn can_cast(kind: SyntaxKind) -> bool {
32093        kind == SyntaxKind::XML_EXISTS_FN
32094    }
32095    #[inline]
32096    fn cast(syntax: SyntaxNode) -> Option<Self> {
32097        if Self::can_cast(syntax.kind()) {
32098            Some(Self { syntax })
32099        } else {
32100            None
32101        }
32102    }
32103    #[inline]
32104    fn syntax(&self) -> &SyntaxNode {
32105        &self.syntax
32106    }
32107}
32108impl AstNode for XmlForestFn {
32109    #[inline]
32110    fn can_cast(kind: SyntaxKind) -> bool {
32111        kind == SyntaxKind::XML_FOREST_FN
32112    }
32113    #[inline]
32114    fn cast(syntax: SyntaxNode) -> Option<Self> {
32115        if Self::can_cast(syntax.kind()) {
32116            Some(Self { syntax })
32117        } else {
32118            None
32119        }
32120    }
32121    #[inline]
32122    fn syntax(&self) -> &SyntaxNode {
32123        &self.syntax
32124    }
32125}
32126impl AstNode for XmlNamespace {
32127    #[inline]
32128    fn can_cast(kind: SyntaxKind) -> bool {
32129        kind == SyntaxKind::XML_NAMESPACE
32130    }
32131    #[inline]
32132    fn cast(syntax: SyntaxNode) -> Option<Self> {
32133        if Self::can_cast(syntax.kind()) {
32134            Some(Self { syntax })
32135        } else {
32136            None
32137        }
32138    }
32139    #[inline]
32140    fn syntax(&self) -> &SyntaxNode {
32141        &self.syntax
32142    }
32143}
32144impl AstNode for XmlNamespaceList {
32145    #[inline]
32146    fn can_cast(kind: SyntaxKind) -> bool {
32147        kind == SyntaxKind::XML_NAMESPACE_LIST
32148    }
32149    #[inline]
32150    fn cast(syntax: SyntaxNode) -> Option<Self> {
32151        if Self::can_cast(syntax.kind()) {
32152            Some(Self { syntax })
32153        } else {
32154            None
32155        }
32156    }
32157    #[inline]
32158    fn syntax(&self) -> &SyntaxNode {
32159        &self.syntax
32160    }
32161}
32162impl AstNode for XmlParseFn {
32163    #[inline]
32164    fn can_cast(kind: SyntaxKind) -> bool {
32165        kind == SyntaxKind::XML_PARSE_FN
32166    }
32167    #[inline]
32168    fn cast(syntax: SyntaxNode) -> Option<Self> {
32169        if Self::can_cast(syntax.kind()) {
32170            Some(Self { syntax })
32171        } else {
32172            None
32173        }
32174    }
32175    #[inline]
32176    fn syntax(&self) -> &SyntaxNode {
32177        &self.syntax
32178    }
32179}
32180impl AstNode for XmlPassingMech {
32181    #[inline]
32182    fn can_cast(kind: SyntaxKind) -> bool {
32183        kind == SyntaxKind::XML_PASSING_MECH
32184    }
32185    #[inline]
32186    fn cast(syntax: SyntaxNode) -> Option<Self> {
32187        if Self::can_cast(syntax.kind()) {
32188            Some(Self { syntax })
32189        } else {
32190            None
32191        }
32192    }
32193    #[inline]
32194    fn syntax(&self) -> &SyntaxNode {
32195        &self.syntax
32196    }
32197}
32198impl AstNode for XmlPiFn {
32199    #[inline]
32200    fn can_cast(kind: SyntaxKind) -> bool {
32201        kind == SyntaxKind::XML_PI_FN
32202    }
32203    #[inline]
32204    fn cast(syntax: SyntaxNode) -> Option<Self> {
32205        if Self::can_cast(syntax.kind()) {
32206            Some(Self { syntax })
32207        } else {
32208            None
32209        }
32210    }
32211    #[inline]
32212    fn syntax(&self) -> &SyntaxNode {
32213        &self.syntax
32214    }
32215}
32216impl AstNode for XmlRootFn {
32217    #[inline]
32218    fn can_cast(kind: SyntaxKind) -> bool {
32219        kind == SyntaxKind::XML_ROOT_FN
32220    }
32221    #[inline]
32222    fn cast(syntax: SyntaxNode) -> Option<Self> {
32223        if Self::can_cast(syntax.kind()) {
32224            Some(Self { syntax })
32225        } else {
32226            None
32227        }
32228    }
32229    #[inline]
32230    fn syntax(&self) -> &SyntaxNode {
32231        &self.syntax
32232    }
32233}
32234impl AstNode for XmlRowPassingClause {
32235    #[inline]
32236    fn can_cast(kind: SyntaxKind) -> bool {
32237        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
32238    }
32239    #[inline]
32240    fn cast(syntax: SyntaxNode) -> Option<Self> {
32241        if Self::can_cast(syntax.kind()) {
32242            Some(Self { syntax })
32243        } else {
32244            None
32245        }
32246    }
32247    #[inline]
32248    fn syntax(&self) -> &SyntaxNode {
32249        &self.syntax
32250    }
32251}
32252impl AstNode for XmlSerializeFn {
32253    #[inline]
32254    fn can_cast(kind: SyntaxKind) -> bool {
32255        kind == SyntaxKind::XML_SERIALIZE_FN
32256    }
32257    #[inline]
32258    fn cast(syntax: SyntaxNode) -> Option<Self> {
32259        if Self::can_cast(syntax.kind()) {
32260            Some(Self { syntax })
32261        } else {
32262            None
32263        }
32264    }
32265    #[inline]
32266    fn syntax(&self) -> &SyntaxNode {
32267        &self.syntax
32268    }
32269}
32270impl AstNode for XmlTable {
32271    #[inline]
32272    fn can_cast(kind: SyntaxKind) -> bool {
32273        kind == SyntaxKind::XML_TABLE
32274    }
32275    #[inline]
32276    fn cast(syntax: SyntaxNode) -> Option<Self> {
32277        if Self::can_cast(syntax.kind()) {
32278            Some(Self { syntax })
32279        } else {
32280            None
32281        }
32282    }
32283    #[inline]
32284    fn syntax(&self) -> &SyntaxNode {
32285        &self.syntax
32286    }
32287}
32288impl AstNode for XmlTableColumn {
32289    #[inline]
32290    fn can_cast(kind: SyntaxKind) -> bool {
32291        kind == SyntaxKind::XML_TABLE_COLUMN
32292    }
32293    #[inline]
32294    fn cast(syntax: SyntaxNode) -> Option<Self> {
32295        if Self::can_cast(syntax.kind()) {
32296            Some(Self { syntax })
32297        } else {
32298            None
32299        }
32300    }
32301    #[inline]
32302    fn syntax(&self) -> &SyntaxNode {
32303        &self.syntax
32304    }
32305}
32306impl AstNode for XmlTableColumnList {
32307    #[inline]
32308    fn can_cast(kind: SyntaxKind) -> bool {
32309        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
32310    }
32311    #[inline]
32312    fn cast(syntax: SyntaxNode) -> Option<Self> {
32313        if Self::can_cast(syntax.kind()) {
32314            Some(Self { syntax })
32315        } else {
32316            None
32317        }
32318    }
32319    #[inline]
32320    fn syntax(&self) -> &SyntaxNode {
32321        &self.syntax
32322    }
32323}
32324impl AstNode for AlterColumnOption {
32325    #[inline]
32326    fn can_cast(kind: SyntaxKind) -> bool {
32327        matches!(
32328            kind,
32329            SyntaxKind::ADD_GENERATED
32330                | SyntaxKind::DROP_DEFAULT
32331                | SyntaxKind::DROP_EXPRESSION
32332                | SyntaxKind::DROP_IDENTITY
32333                | SyntaxKind::DROP_NOT_NULL
32334                | SyntaxKind::INHERIT
32335                | SyntaxKind::NO_INHERIT
32336                | SyntaxKind::RESET_OPTIONS
32337                | SyntaxKind::RESTART
32338                | SyntaxKind::SET_COMPRESSION
32339                | SyntaxKind::SET_DEFAULT
32340                | SyntaxKind::SET_EXPRESSION
32341                | SyntaxKind::SET_GENERATED
32342                | SyntaxKind::SET_GENERATED_OPTIONS
32343                | SyntaxKind::SET_NOT_NULL
32344                | SyntaxKind::SET_OPTIONS
32345                | SyntaxKind::SET_OPTIONS_LIST
32346                | SyntaxKind::SET_SEQUENCE_OPTION
32347                | SyntaxKind::SET_STATISTICS
32348                | SyntaxKind::SET_STORAGE
32349                | SyntaxKind::SET_TYPE
32350        )
32351    }
32352    #[inline]
32353    fn cast(syntax: SyntaxNode) -> Option<Self> {
32354        let res = match syntax.kind() {
32355            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
32356            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
32357            SyntaxKind::DROP_EXPRESSION => {
32358                AlterColumnOption::DropExpression(DropExpression { syntax })
32359            }
32360            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
32361            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
32362            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
32363            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
32364            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
32365            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
32366            SyntaxKind::SET_COMPRESSION => {
32367                AlterColumnOption::SetCompression(SetCompression { syntax })
32368            }
32369            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
32370            SyntaxKind::SET_EXPRESSION => {
32371                AlterColumnOption::SetExpression(SetExpression { syntax })
32372            }
32373            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
32374            SyntaxKind::SET_GENERATED_OPTIONS => {
32375                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
32376            }
32377            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
32378            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
32379            SyntaxKind::SET_OPTIONS_LIST => {
32380                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
32381            }
32382            SyntaxKind::SET_SEQUENCE_OPTION => {
32383                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
32384            }
32385            SyntaxKind::SET_STATISTICS => {
32386                AlterColumnOption::SetStatistics(SetStatistics { syntax })
32387            }
32388            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
32389            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
32390            _ => {
32391                return None;
32392            }
32393        };
32394        Some(res)
32395    }
32396    #[inline]
32397    fn syntax(&self) -> &SyntaxNode {
32398        match self {
32399            AlterColumnOption::AddGenerated(it) => &it.syntax,
32400            AlterColumnOption::DropDefault(it) => &it.syntax,
32401            AlterColumnOption::DropExpression(it) => &it.syntax,
32402            AlterColumnOption::DropIdentity(it) => &it.syntax,
32403            AlterColumnOption::DropNotNull(it) => &it.syntax,
32404            AlterColumnOption::Inherit(it) => &it.syntax,
32405            AlterColumnOption::NoInherit(it) => &it.syntax,
32406            AlterColumnOption::ResetOptions(it) => &it.syntax,
32407            AlterColumnOption::Restart(it) => &it.syntax,
32408            AlterColumnOption::SetCompression(it) => &it.syntax,
32409            AlterColumnOption::SetDefault(it) => &it.syntax,
32410            AlterColumnOption::SetExpression(it) => &it.syntax,
32411            AlterColumnOption::SetGenerated(it) => &it.syntax,
32412            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
32413            AlterColumnOption::SetNotNull(it) => &it.syntax,
32414            AlterColumnOption::SetOptions(it) => &it.syntax,
32415            AlterColumnOption::SetOptionsList(it) => &it.syntax,
32416            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
32417            AlterColumnOption::SetStatistics(it) => &it.syntax,
32418            AlterColumnOption::SetStorage(it) => &it.syntax,
32419            AlterColumnOption::SetType(it) => &it.syntax,
32420        }
32421    }
32422}
32423impl From<AddGenerated> for AlterColumnOption {
32424    #[inline]
32425    fn from(node: AddGenerated) -> AlterColumnOption {
32426        AlterColumnOption::AddGenerated(node)
32427    }
32428}
32429impl From<DropDefault> for AlterColumnOption {
32430    #[inline]
32431    fn from(node: DropDefault) -> AlterColumnOption {
32432        AlterColumnOption::DropDefault(node)
32433    }
32434}
32435impl From<DropExpression> for AlterColumnOption {
32436    #[inline]
32437    fn from(node: DropExpression) -> AlterColumnOption {
32438        AlterColumnOption::DropExpression(node)
32439    }
32440}
32441impl From<DropIdentity> for AlterColumnOption {
32442    #[inline]
32443    fn from(node: DropIdentity) -> AlterColumnOption {
32444        AlterColumnOption::DropIdentity(node)
32445    }
32446}
32447impl From<DropNotNull> for AlterColumnOption {
32448    #[inline]
32449    fn from(node: DropNotNull) -> AlterColumnOption {
32450        AlterColumnOption::DropNotNull(node)
32451    }
32452}
32453impl From<Inherit> for AlterColumnOption {
32454    #[inline]
32455    fn from(node: Inherit) -> AlterColumnOption {
32456        AlterColumnOption::Inherit(node)
32457    }
32458}
32459impl From<NoInherit> for AlterColumnOption {
32460    #[inline]
32461    fn from(node: NoInherit) -> AlterColumnOption {
32462        AlterColumnOption::NoInherit(node)
32463    }
32464}
32465impl From<ResetOptions> for AlterColumnOption {
32466    #[inline]
32467    fn from(node: ResetOptions) -> AlterColumnOption {
32468        AlterColumnOption::ResetOptions(node)
32469    }
32470}
32471impl From<Restart> for AlterColumnOption {
32472    #[inline]
32473    fn from(node: Restart) -> AlterColumnOption {
32474        AlterColumnOption::Restart(node)
32475    }
32476}
32477impl From<SetCompression> for AlterColumnOption {
32478    #[inline]
32479    fn from(node: SetCompression) -> AlterColumnOption {
32480        AlterColumnOption::SetCompression(node)
32481    }
32482}
32483impl From<SetDefault> for AlterColumnOption {
32484    #[inline]
32485    fn from(node: SetDefault) -> AlterColumnOption {
32486        AlterColumnOption::SetDefault(node)
32487    }
32488}
32489impl From<SetExpression> for AlterColumnOption {
32490    #[inline]
32491    fn from(node: SetExpression) -> AlterColumnOption {
32492        AlterColumnOption::SetExpression(node)
32493    }
32494}
32495impl From<SetGenerated> for AlterColumnOption {
32496    #[inline]
32497    fn from(node: SetGenerated) -> AlterColumnOption {
32498        AlterColumnOption::SetGenerated(node)
32499    }
32500}
32501impl From<SetGeneratedOptions> for AlterColumnOption {
32502    #[inline]
32503    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
32504        AlterColumnOption::SetGeneratedOptions(node)
32505    }
32506}
32507impl From<SetNotNull> for AlterColumnOption {
32508    #[inline]
32509    fn from(node: SetNotNull) -> AlterColumnOption {
32510        AlterColumnOption::SetNotNull(node)
32511    }
32512}
32513impl From<SetOptions> for AlterColumnOption {
32514    #[inline]
32515    fn from(node: SetOptions) -> AlterColumnOption {
32516        AlterColumnOption::SetOptions(node)
32517    }
32518}
32519impl From<SetOptionsList> for AlterColumnOption {
32520    #[inline]
32521    fn from(node: SetOptionsList) -> AlterColumnOption {
32522        AlterColumnOption::SetOptionsList(node)
32523    }
32524}
32525impl From<SetSequenceOption> for AlterColumnOption {
32526    #[inline]
32527    fn from(node: SetSequenceOption) -> AlterColumnOption {
32528        AlterColumnOption::SetSequenceOption(node)
32529    }
32530}
32531impl From<SetStatistics> for AlterColumnOption {
32532    #[inline]
32533    fn from(node: SetStatistics) -> AlterColumnOption {
32534        AlterColumnOption::SetStatistics(node)
32535    }
32536}
32537impl From<SetStorage> for AlterColumnOption {
32538    #[inline]
32539    fn from(node: SetStorage) -> AlterColumnOption {
32540        AlterColumnOption::SetStorage(node)
32541    }
32542}
32543impl From<SetType> for AlterColumnOption {
32544    #[inline]
32545    fn from(node: SetType) -> AlterColumnOption {
32546        AlterColumnOption::SetType(node)
32547    }
32548}
32549impl AstNode for AlterDomainAction {
32550    #[inline]
32551    fn can_cast(kind: SyntaxKind) -> bool {
32552        matches!(
32553            kind,
32554            SyntaxKind::ADD_CONSTRAINT
32555                | SyntaxKind::DROP_CONSTRAINT
32556                | SyntaxKind::DROP_DEFAULT
32557                | SyntaxKind::DROP_NOT_NULL
32558                | SyntaxKind::OWNER_TO
32559                | SyntaxKind::RENAME_CONSTRAINT
32560                | SyntaxKind::RENAME_TO
32561                | SyntaxKind::SET_DEFAULT
32562                | SyntaxKind::SET_NOT_NULL
32563                | SyntaxKind::SET_SCHEMA
32564                | SyntaxKind::VALIDATE_CONSTRAINT
32565        )
32566    }
32567    #[inline]
32568    fn cast(syntax: SyntaxNode) -> Option<Self> {
32569        let res = match syntax.kind() {
32570            SyntaxKind::ADD_CONSTRAINT => {
32571                AlterDomainAction::AddConstraint(AddConstraint { syntax })
32572            }
32573            SyntaxKind::DROP_CONSTRAINT => {
32574                AlterDomainAction::DropConstraint(DropConstraint { syntax })
32575            }
32576            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
32577            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
32578            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
32579            SyntaxKind::RENAME_CONSTRAINT => {
32580                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
32581            }
32582            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
32583            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
32584            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
32585            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
32586            SyntaxKind::VALIDATE_CONSTRAINT => {
32587                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
32588            }
32589            _ => {
32590                return None;
32591            }
32592        };
32593        Some(res)
32594    }
32595    #[inline]
32596    fn syntax(&self) -> &SyntaxNode {
32597        match self {
32598            AlterDomainAction::AddConstraint(it) => &it.syntax,
32599            AlterDomainAction::DropConstraint(it) => &it.syntax,
32600            AlterDomainAction::DropDefault(it) => &it.syntax,
32601            AlterDomainAction::DropNotNull(it) => &it.syntax,
32602            AlterDomainAction::OwnerTo(it) => &it.syntax,
32603            AlterDomainAction::RenameConstraint(it) => &it.syntax,
32604            AlterDomainAction::RenameTo(it) => &it.syntax,
32605            AlterDomainAction::SetDefault(it) => &it.syntax,
32606            AlterDomainAction::SetNotNull(it) => &it.syntax,
32607            AlterDomainAction::SetSchema(it) => &it.syntax,
32608            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
32609        }
32610    }
32611}
32612impl From<AddConstraint> for AlterDomainAction {
32613    #[inline]
32614    fn from(node: AddConstraint) -> AlterDomainAction {
32615        AlterDomainAction::AddConstraint(node)
32616    }
32617}
32618impl From<DropConstraint> for AlterDomainAction {
32619    #[inline]
32620    fn from(node: DropConstraint) -> AlterDomainAction {
32621        AlterDomainAction::DropConstraint(node)
32622    }
32623}
32624impl From<DropDefault> for AlterDomainAction {
32625    #[inline]
32626    fn from(node: DropDefault) -> AlterDomainAction {
32627        AlterDomainAction::DropDefault(node)
32628    }
32629}
32630impl From<DropNotNull> for AlterDomainAction {
32631    #[inline]
32632    fn from(node: DropNotNull) -> AlterDomainAction {
32633        AlterDomainAction::DropNotNull(node)
32634    }
32635}
32636impl From<OwnerTo> for AlterDomainAction {
32637    #[inline]
32638    fn from(node: OwnerTo) -> AlterDomainAction {
32639        AlterDomainAction::OwnerTo(node)
32640    }
32641}
32642impl From<RenameConstraint> for AlterDomainAction {
32643    #[inline]
32644    fn from(node: RenameConstraint) -> AlterDomainAction {
32645        AlterDomainAction::RenameConstraint(node)
32646    }
32647}
32648impl From<RenameTo> for AlterDomainAction {
32649    #[inline]
32650    fn from(node: RenameTo) -> AlterDomainAction {
32651        AlterDomainAction::RenameTo(node)
32652    }
32653}
32654impl From<SetDefault> for AlterDomainAction {
32655    #[inline]
32656    fn from(node: SetDefault) -> AlterDomainAction {
32657        AlterDomainAction::SetDefault(node)
32658    }
32659}
32660impl From<SetNotNull> for AlterDomainAction {
32661    #[inline]
32662    fn from(node: SetNotNull) -> AlterDomainAction {
32663        AlterDomainAction::SetNotNull(node)
32664    }
32665}
32666impl From<SetSchema> for AlterDomainAction {
32667    #[inline]
32668    fn from(node: SetSchema) -> AlterDomainAction {
32669        AlterDomainAction::SetSchema(node)
32670    }
32671}
32672impl From<ValidateConstraint> for AlterDomainAction {
32673    #[inline]
32674    fn from(node: ValidateConstraint) -> AlterDomainAction {
32675        AlterDomainAction::ValidateConstraint(node)
32676    }
32677}
32678impl AstNode for AlterIndexAction {
32679    #[inline]
32680    fn can_cast(kind: SyntaxKind) -> bool {
32681        matches!(
32682            kind,
32683            SyntaxKind::ALTER_SET_STATISTICS
32684                | SyntaxKind::ATTACH_PARTITION
32685                | SyntaxKind::DEPENDS_ON_EXTENSION
32686                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
32687                | SyntaxKind::RENAME_TO
32688                | SyntaxKind::RESET_OPTIONS
32689                | SyntaxKind::SET_OPTIONS
32690                | SyntaxKind::SET_TABLESPACE
32691        )
32692    }
32693    #[inline]
32694    fn cast(syntax: SyntaxNode) -> Option<Self> {
32695        let res = match syntax.kind() {
32696            SyntaxKind::ALTER_SET_STATISTICS => {
32697                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
32698            }
32699            SyntaxKind::ATTACH_PARTITION => {
32700                AlterIndexAction::AttachPartition(AttachPartition { syntax })
32701            }
32702            SyntaxKind::DEPENDS_ON_EXTENSION => {
32703                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
32704            }
32705            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
32706                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
32707            }
32708            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
32709            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
32710            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
32711            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
32712            _ => {
32713                return None;
32714            }
32715        };
32716        Some(res)
32717    }
32718    #[inline]
32719    fn syntax(&self) -> &SyntaxNode {
32720        match self {
32721            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
32722            AlterIndexAction::AttachPartition(it) => &it.syntax,
32723            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
32724            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
32725            AlterIndexAction::RenameTo(it) => &it.syntax,
32726            AlterIndexAction::ResetOptions(it) => &it.syntax,
32727            AlterIndexAction::SetOptions(it) => &it.syntax,
32728            AlterIndexAction::SetTablespace(it) => &it.syntax,
32729        }
32730    }
32731}
32732impl From<AlterSetStatistics> for AlterIndexAction {
32733    #[inline]
32734    fn from(node: AlterSetStatistics) -> AlterIndexAction {
32735        AlterIndexAction::AlterSetStatistics(node)
32736    }
32737}
32738impl From<AttachPartition> for AlterIndexAction {
32739    #[inline]
32740    fn from(node: AttachPartition) -> AlterIndexAction {
32741        AlterIndexAction::AttachPartition(node)
32742    }
32743}
32744impl From<DependsOnExtension> for AlterIndexAction {
32745    #[inline]
32746    fn from(node: DependsOnExtension) -> AlterIndexAction {
32747        AlterIndexAction::DependsOnExtension(node)
32748    }
32749}
32750impl From<NoDependsOnExtension> for AlterIndexAction {
32751    #[inline]
32752    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
32753        AlterIndexAction::NoDependsOnExtension(node)
32754    }
32755}
32756impl From<RenameTo> for AlterIndexAction {
32757    #[inline]
32758    fn from(node: RenameTo) -> AlterIndexAction {
32759        AlterIndexAction::RenameTo(node)
32760    }
32761}
32762impl From<ResetOptions> for AlterIndexAction {
32763    #[inline]
32764    fn from(node: ResetOptions) -> AlterIndexAction {
32765        AlterIndexAction::ResetOptions(node)
32766    }
32767}
32768impl From<SetOptions> for AlterIndexAction {
32769    #[inline]
32770    fn from(node: SetOptions) -> AlterIndexAction {
32771        AlterIndexAction::SetOptions(node)
32772    }
32773}
32774impl From<SetTablespace> for AlterIndexAction {
32775    #[inline]
32776    fn from(node: SetTablespace) -> AlterIndexAction {
32777        AlterIndexAction::SetTablespace(node)
32778    }
32779}
32780impl AstNode for AlterMaterializedViewAction {
32781    #[inline]
32782    fn can_cast(kind: SyntaxKind) -> bool {
32783        matches!(
32784            kind,
32785            SyntaxKind::DEPENDS_ON_EXTENSION
32786                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
32787                | SyntaxKind::RENAME_COLUMN
32788                | SyntaxKind::RENAME_TO
32789                | SyntaxKind::SET_SCHEMA
32790        )
32791    }
32792    #[inline]
32793    fn cast(syntax: SyntaxNode) -> Option<Self> {
32794        let res = match syntax.kind() {
32795            SyntaxKind::DEPENDS_ON_EXTENSION => {
32796                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
32797            }
32798            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
32799                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
32800            }
32801            SyntaxKind::RENAME_COLUMN => {
32802                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
32803            }
32804            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
32805            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
32806            _ => {
32807                if let Some(result) = AlterTableAction::cast(syntax) {
32808                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
32809                }
32810                return None;
32811            }
32812        };
32813        Some(res)
32814    }
32815    #[inline]
32816    fn syntax(&self) -> &SyntaxNode {
32817        match self {
32818            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
32819            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
32820            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
32821            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
32822            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
32823            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
32824        }
32825    }
32826}
32827impl From<DependsOnExtension> for AlterMaterializedViewAction {
32828    #[inline]
32829    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
32830        AlterMaterializedViewAction::DependsOnExtension(node)
32831    }
32832}
32833impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
32834    #[inline]
32835    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
32836        AlterMaterializedViewAction::NoDependsOnExtension(node)
32837    }
32838}
32839impl From<RenameColumn> for AlterMaterializedViewAction {
32840    #[inline]
32841    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
32842        AlterMaterializedViewAction::RenameColumn(node)
32843    }
32844}
32845impl From<RenameTo> for AlterMaterializedViewAction {
32846    #[inline]
32847    fn from(node: RenameTo) -> AlterMaterializedViewAction {
32848        AlterMaterializedViewAction::RenameTo(node)
32849    }
32850}
32851impl From<SetSchema> for AlterMaterializedViewAction {
32852    #[inline]
32853    fn from(node: SetSchema) -> AlterMaterializedViewAction {
32854        AlterMaterializedViewAction::SetSchema(node)
32855    }
32856}
32857impl AstNode for AlterPropertyGraphAction {
32858    #[inline]
32859    fn can_cast(kind: SyntaxKind) -> bool {
32860        matches!(
32861            kind,
32862            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
32863                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
32864                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
32865                | SyntaxKind::DROP_EDGE_TABLES
32866                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
32867                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
32868                | SyntaxKind::DROP_VERTEX_TABLES
32869                | SyntaxKind::OWNER_TO
32870                | SyntaxKind::RENAME_TO
32871                | SyntaxKind::SET_SCHEMA
32872        )
32873    }
32874    #[inline]
32875    fn cast(syntax: SyntaxNode) -> Option<Self> {
32876        let res = match syntax.kind() {
32877            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
32878                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
32879                    AddVertexEdgeLabelProperties { syntax },
32880                )
32881            }
32882            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
32883                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
32884            }
32885            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
32886                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
32887            }
32888            SyntaxKind::DROP_EDGE_TABLES => {
32889                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
32890            }
32891            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
32892                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
32893            }
32894            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
32895                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
32896                    DropVertexEdgeLabelProperties { syntax },
32897                )
32898            }
32899            SyntaxKind::DROP_VERTEX_TABLES => {
32900                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
32901            }
32902            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
32903            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
32904            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
32905            _ => {
32906                return None;
32907            }
32908        };
32909        Some(res)
32910    }
32911    #[inline]
32912    fn syntax(&self) -> &SyntaxNode {
32913        match self {
32914            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
32915            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
32916            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
32917            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
32918            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
32919            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
32920            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
32921            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
32922            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
32923            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
32924        }
32925    }
32926}
32927impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32928    #[inline]
32929    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32930        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
32931    }
32932}
32933impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
32934    #[inline]
32935    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
32936        AlterPropertyGraphAction::AddVertexEdgeTables(node)
32937    }
32938}
32939impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
32940    #[inline]
32941    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
32942        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
32943    }
32944}
32945impl From<DropEdgeTables> for AlterPropertyGraphAction {
32946    #[inline]
32947    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
32948        AlterPropertyGraphAction::DropEdgeTables(node)
32949    }
32950}
32951impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
32952    #[inline]
32953    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
32954        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
32955    }
32956}
32957impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32958    #[inline]
32959    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32960        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
32961    }
32962}
32963impl From<DropVertexTables> for AlterPropertyGraphAction {
32964    #[inline]
32965    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
32966        AlterPropertyGraphAction::DropVertexTables(node)
32967    }
32968}
32969impl From<OwnerTo> for AlterPropertyGraphAction {
32970    #[inline]
32971    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
32972        AlterPropertyGraphAction::OwnerTo(node)
32973    }
32974}
32975impl From<RenameTo> for AlterPropertyGraphAction {
32976    #[inline]
32977    fn from(node: RenameTo) -> AlterPropertyGraphAction {
32978        AlterPropertyGraphAction::RenameTo(node)
32979    }
32980}
32981impl From<SetSchema> for AlterPropertyGraphAction {
32982    #[inline]
32983    fn from(node: SetSchema) -> AlterPropertyGraphAction {
32984        AlterPropertyGraphAction::SetSchema(node)
32985    }
32986}
32987impl AstNode for AlterTableAction {
32988    #[inline]
32989    fn can_cast(kind: SyntaxKind) -> bool {
32990        matches!(
32991            kind,
32992            SyntaxKind::ADD_COLUMN
32993                | SyntaxKind::ADD_CONSTRAINT
32994                | SyntaxKind::ALTER_COLUMN
32995                | SyntaxKind::ALTER_CONSTRAINT
32996                | SyntaxKind::ATTACH_PARTITION
32997                | SyntaxKind::CLUSTER_ON
32998                | SyntaxKind::DETACH_PARTITION
32999                | SyntaxKind::DISABLE_RLS
33000                | SyntaxKind::DISABLE_RULE
33001                | SyntaxKind::DISABLE_TRIGGER
33002                | SyntaxKind::DROP_COLUMN
33003                | SyntaxKind::DROP_CONSTRAINT
33004                | SyntaxKind::ENABLE_ALWAYS_RULE
33005                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
33006                | SyntaxKind::ENABLE_REPLICA_RULE
33007                | SyntaxKind::ENABLE_REPLICA_TRIGGER
33008                | SyntaxKind::ENABLE_RLS
33009                | SyntaxKind::ENABLE_RULE
33010                | SyntaxKind::ENABLE_TRIGGER
33011                | SyntaxKind::FORCE_RLS
33012                | SyntaxKind::INHERIT_TABLE
33013                | SyntaxKind::MERGE_PARTITIONS
33014                | SyntaxKind::NO_FORCE_RLS
33015                | SyntaxKind::NO_INHERIT_TABLE
33016                | SyntaxKind::NOT_OF
33017                | SyntaxKind::OF_TYPE
33018                | SyntaxKind::OPTION_ITEM_LIST
33019                | SyntaxKind::OWNER_TO
33020                | SyntaxKind::RENAME_COLUMN
33021                | SyntaxKind::RENAME_CONSTRAINT
33022                | SyntaxKind::RENAME_TO
33023                | SyntaxKind::REPLICA_IDENTITY
33024                | SyntaxKind::RESET_OPTIONS
33025                | SyntaxKind::SET_ACCESS_METHOD
33026                | SyntaxKind::SET_LOGGED
33027                | SyntaxKind::SET_OPTIONS
33028                | SyntaxKind::SET_SCHEMA
33029                | SyntaxKind::SET_TABLESPACE
33030                | SyntaxKind::SET_UNLOGGED
33031                | SyntaxKind::SET_WITHOUT_CLUSTER
33032                | SyntaxKind::SET_WITHOUT_OIDS
33033                | SyntaxKind::SPLIT_PARTITION
33034                | SyntaxKind::VALIDATE_CONSTRAINT
33035        )
33036    }
33037    #[inline]
33038    fn cast(syntax: SyntaxNode) -> Option<Self> {
33039        let res = match syntax.kind() {
33040            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
33041            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
33042            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
33043            SyntaxKind::ALTER_CONSTRAINT => {
33044                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
33045            }
33046            SyntaxKind::ATTACH_PARTITION => {
33047                AlterTableAction::AttachPartition(AttachPartition { syntax })
33048            }
33049            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
33050            SyntaxKind::DETACH_PARTITION => {
33051                AlterTableAction::DetachPartition(DetachPartition { syntax })
33052            }
33053            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
33054            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
33055            SyntaxKind::DISABLE_TRIGGER => {
33056                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
33057            }
33058            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
33059            SyntaxKind::DROP_CONSTRAINT => {
33060                AlterTableAction::DropConstraint(DropConstraint { syntax })
33061            }
33062            SyntaxKind::ENABLE_ALWAYS_RULE => {
33063                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
33064            }
33065            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
33066                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
33067            }
33068            SyntaxKind::ENABLE_REPLICA_RULE => {
33069                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
33070            }
33071            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
33072                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
33073            }
33074            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
33075            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
33076            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
33077            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
33078            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
33079            SyntaxKind::MERGE_PARTITIONS => {
33080                AlterTableAction::MergePartitions(MergePartitions { syntax })
33081            }
33082            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
33083            SyntaxKind::NO_INHERIT_TABLE => {
33084                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
33085            }
33086            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
33087            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
33088            SyntaxKind::OPTION_ITEM_LIST => {
33089                AlterTableAction::OptionItemList(OptionItemList { syntax })
33090            }
33091            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
33092            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
33093            SyntaxKind::RENAME_CONSTRAINT => {
33094                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
33095            }
33096            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
33097            SyntaxKind::REPLICA_IDENTITY => {
33098                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
33099            }
33100            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
33101            SyntaxKind::SET_ACCESS_METHOD => {
33102                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
33103            }
33104            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
33105            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
33106            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
33107            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
33108            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
33109            SyntaxKind::SET_WITHOUT_CLUSTER => {
33110                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
33111            }
33112            SyntaxKind::SET_WITHOUT_OIDS => {
33113                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
33114            }
33115            SyntaxKind::SPLIT_PARTITION => {
33116                AlterTableAction::SplitPartition(SplitPartition { syntax })
33117            }
33118            SyntaxKind::VALIDATE_CONSTRAINT => {
33119                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
33120            }
33121            _ => {
33122                return None;
33123            }
33124        };
33125        Some(res)
33126    }
33127    #[inline]
33128    fn syntax(&self) -> &SyntaxNode {
33129        match self {
33130            AlterTableAction::AddColumn(it) => &it.syntax,
33131            AlterTableAction::AddConstraint(it) => &it.syntax,
33132            AlterTableAction::AlterColumn(it) => &it.syntax,
33133            AlterTableAction::AlterConstraint(it) => &it.syntax,
33134            AlterTableAction::AttachPartition(it) => &it.syntax,
33135            AlterTableAction::ClusterOn(it) => &it.syntax,
33136            AlterTableAction::DetachPartition(it) => &it.syntax,
33137            AlterTableAction::DisableRls(it) => &it.syntax,
33138            AlterTableAction::DisableRule(it) => &it.syntax,
33139            AlterTableAction::DisableTrigger(it) => &it.syntax,
33140            AlterTableAction::DropColumn(it) => &it.syntax,
33141            AlterTableAction::DropConstraint(it) => &it.syntax,
33142            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
33143            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
33144            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
33145            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
33146            AlterTableAction::EnableRls(it) => &it.syntax,
33147            AlterTableAction::EnableRule(it) => &it.syntax,
33148            AlterTableAction::EnableTrigger(it) => &it.syntax,
33149            AlterTableAction::ForceRls(it) => &it.syntax,
33150            AlterTableAction::InheritTable(it) => &it.syntax,
33151            AlterTableAction::MergePartitions(it) => &it.syntax,
33152            AlterTableAction::NoForceRls(it) => &it.syntax,
33153            AlterTableAction::NoInheritTable(it) => &it.syntax,
33154            AlterTableAction::NotOf(it) => &it.syntax,
33155            AlterTableAction::OfType(it) => &it.syntax,
33156            AlterTableAction::OptionItemList(it) => &it.syntax,
33157            AlterTableAction::OwnerTo(it) => &it.syntax,
33158            AlterTableAction::RenameColumn(it) => &it.syntax,
33159            AlterTableAction::RenameConstraint(it) => &it.syntax,
33160            AlterTableAction::RenameTo(it) => &it.syntax,
33161            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
33162            AlterTableAction::ResetOptions(it) => &it.syntax,
33163            AlterTableAction::SetAccessMethod(it) => &it.syntax,
33164            AlterTableAction::SetLogged(it) => &it.syntax,
33165            AlterTableAction::SetOptions(it) => &it.syntax,
33166            AlterTableAction::SetSchema(it) => &it.syntax,
33167            AlterTableAction::SetTablespace(it) => &it.syntax,
33168            AlterTableAction::SetUnlogged(it) => &it.syntax,
33169            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
33170            AlterTableAction::SetWithoutOids(it) => &it.syntax,
33171            AlterTableAction::SplitPartition(it) => &it.syntax,
33172            AlterTableAction::ValidateConstraint(it) => &it.syntax,
33173        }
33174    }
33175}
33176impl From<AddColumn> for AlterTableAction {
33177    #[inline]
33178    fn from(node: AddColumn) -> AlterTableAction {
33179        AlterTableAction::AddColumn(node)
33180    }
33181}
33182impl From<AddConstraint> for AlterTableAction {
33183    #[inline]
33184    fn from(node: AddConstraint) -> AlterTableAction {
33185        AlterTableAction::AddConstraint(node)
33186    }
33187}
33188impl From<AlterColumn> for AlterTableAction {
33189    #[inline]
33190    fn from(node: AlterColumn) -> AlterTableAction {
33191        AlterTableAction::AlterColumn(node)
33192    }
33193}
33194impl From<AlterConstraint> for AlterTableAction {
33195    #[inline]
33196    fn from(node: AlterConstraint) -> AlterTableAction {
33197        AlterTableAction::AlterConstraint(node)
33198    }
33199}
33200impl From<AttachPartition> for AlterTableAction {
33201    #[inline]
33202    fn from(node: AttachPartition) -> AlterTableAction {
33203        AlterTableAction::AttachPartition(node)
33204    }
33205}
33206impl From<ClusterOn> for AlterTableAction {
33207    #[inline]
33208    fn from(node: ClusterOn) -> AlterTableAction {
33209        AlterTableAction::ClusterOn(node)
33210    }
33211}
33212impl From<DetachPartition> for AlterTableAction {
33213    #[inline]
33214    fn from(node: DetachPartition) -> AlterTableAction {
33215        AlterTableAction::DetachPartition(node)
33216    }
33217}
33218impl From<DisableRls> for AlterTableAction {
33219    #[inline]
33220    fn from(node: DisableRls) -> AlterTableAction {
33221        AlterTableAction::DisableRls(node)
33222    }
33223}
33224impl From<DisableRule> for AlterTableAction {
33225    #[inline]
33226    fn from(node: DisableRule) -> AlterTableAction {
33227        AlterTableAction::DisableRule(node)
33228    }
33229}
33230impl From<DisableTrigger> for AlterTableAction {
33231    #[inline]
33232    fn from(node: DisableTrigger) -> AlterTableAction {
33233        AlterTableAction::DisableTrigger(node)
33234    }
33235}
33236impl From<DropColumn> for AlterTableAction {
33237    #[inline]
33238    fn from(node: DropColumn) -> AlterTableAction {
33239        AlterTableAction::DropColumn(node)
33240    }
33241}
33242impl From<DropConstraint> for AlterTableAction {
33243    #[inline]
33244    fn from(node: DropConstraint) -> AlterTableAction {
33245        AlterTableAction::DropConstraint(node)
33246    }
33247}
33248impl From<EnableAlwaysRule> for AlterTableAction {
33249    #[inline]
33250    fn from(node: EnableAlwaysRule) -> AlterTableAction {
33251        AlterTableAction::EnableAlwaysRule(node)
33252    }
33253}
33254impl From<EnableAlwaysTrigger> for AlterTableAction {
33255    #[inline]
33256    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
33257        AlterTableAction::EnableAlwaysTrigger(node)
33258    }
33259}
33260impl From<EnableReplicaRule> for AlterTableAction {
33261    #[inline]
33262    fn from(node: EnableReplicaRule) -> AlterTableAction {
33263        AlterTableAction::EnableReplicaRule(node)
33264    }
33265}
33266impl From<EnableReplicaTrigger> for AlterTableAction {
33267    #[inline]
33268    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
33269        AlterTableAction::EnableReplicaTrigger(node)
33270    }
33271}
33272impl From<EnableRls> for AlterTableAction {
33273    #[inline]
33274    fn from(node: EnableRls) -> AlterTableAction {
33275        AlterTableAction::EnableRls(node)
33276    }
33277}
33278impl From<EnableRule> for AlterTableAction {
33279    #[inline]
33280    fn from(node: EnableRule) -> AlterTableAction {
33281        AlterTableAction::EnableRule(node)
33282    }
33283}
33284impl From<EnableTrigger> for AlterTableAction {
33285    #[inline]
33286    fn from(node: EnableTrigger) -> AlterTableAction {
33287        AlterTableAction::EnableTrigger(node)
33288    }
33289}
33290impl From<ForceRls> for AlterTableAction {
33291    #[inline]
33292    fn from(node: ForceRls) -> AlterTableAction {
33293        AlterTableAction::ForceRls(node)
33294    }
33295}
33296impl From<InheritTable> for AlterTableAction {
33297    #[inline]
33298    fn from(node: InheritTable) -> AlterTableAction {
33299        AlterTableAction::InheritTable(node)
33300    }
33301}
33302impl From<MergePartitions> for AlterTableAction {
33303    #[inline]
33304    fn from(node: MergePartitions) -> AlterTableAction {
33305        AlterTableAction::MergePartitions(node)
33306    }
33307}
33308impl From<NoForceRls> for AlterTableAction {
33309    #[inline]
33310    fn from(node: NoForceRls) -> AlterTableAction {
33311        AlterTableAction::NoForceRls(node)
33312    }
33313}
33314impl From<NoInheritTable> for AlterTableAction {
33315    #[inline]
33316    fn from(node: NoInheritTable) -> AlterTableAction {
33317        AlterTableAction::NoInheritTable(node)
33318    }
33319}
33320impl From<NotOf> for AlterTableAction {
33321    #[inline]
33322    fn from(node: NotOf) -> AlterTableAction {
33323        AlterTableAction::NotOf(node)
33324    }
33325}
33326impl From<OfType> for AlterTableAction {
33327    #[inline]
33328    fn from(node: OfType) -> AlterTableAction {
33329        AlterTableAction::OfType(node)
33330    }
33331}
33332impl From<OptionItemList> for AlterTableAction {
33333    #[inline]
33334    fn from(node: OptionItemList) -> AlterTableAction {
33335        AlterTableAction::OptionItemList(node)
33336    }
33337}
33338impl From<OwnerTo> for AlterTableAction {
33339    #[inline]
33340    fn from(node: OwnerTo) -> AlterTableAction {
33341        AlterTableAction::OwnerTo(node)
33342    }
33343}
33344impl From<RenameColumn> for AlterTableAction {
33345    #[inline]
33346    fn from(node: RenameColumn) -> AlterTableAction {
33347        AlterTableAction::RenameColumn(node)
33348    }
33349}
33350impl From<RenameConstraint> for AlterTableAction {
33351    #[inline]
33352    fn from(node: RenameConstraint) -> AlterTableAction {
33353        AlterTableAction::RenameConstraint(node)
33354    }
33355}
33356impl From<RenameTo> for AlterTableAction {
33357    #[inline]
33358    fn from(node: RenameTo) -> AlterTableAction {
33359        AlterTableAction::RenameTo(node)
33360    }
33361}
33362impl From<ReplicaIdentity> for AlterTableAction {
33363    #[inline]
33364    fn from(node: ReplicaIdentity) -> AlterTableAction {
33365        AlterTableAction::ReplicaIdentity(node)
33366    }
33367}
33368impl From<ResetOptions> for AlterTableAction {
33369    #[inline]
33370    fn from(node: ResetOptions) -> AlterTableAction {
33371        AlterTableAction::ResetOptions(node)
33372    }
33373}
33374impl From<SetAccessMethod> for AlterTableAction {
33375    #[inline]
33376    fn from(node: SetAccessMethod) -> AlterTableAction {
33377        AlterTableAction::SetAccessMethod(node)
33378    }
33379}
33380impl From<SetLogged> for AlterTableAction {
33381    #[inline]
33382    fn from(node: SetLogged) -> AlterTableAction {
33383        AlterTableAction::SetLogged(node)
33384    }
33385}
33386impl From<SetOptions> for AlterTableAction {
33387    #[inline]
33388    fn from(node: SetOptions) -> AlterTableAction {
33389        AlterTableAction::SetOptions(node)
33390    }
33391}
33392impl From<SetSchema> for AlterTableAction {
33393    #[inline]
33394    fn from(node: SetSchema) -> AlterTableAction {
33395        AlterTableAction::SetSchema(node)
33396    }
33397}
33398impl From<SetTablespace> for AlterTableAction {
33399    #[inline]
33400    fn from(node: SetTablespace) -> AlterTableAction {
33401        AlterTableAction::SetTablespace(node)
33402    }
33403}
33404impl From<SetUnlogged> for AlterTableAction {
33405    #[inline]
33406    fn from(node: SetUnlogged) -> AlterTableAction {
33407        AlterTableAction::SetUnlogged(node)
33408    }
33409}
33410impl From<SetWithoutCluster> for AlterTableAction {
33411    #[inline]
33412    fn from(node: SetWithoutCluster) -> AlterTableAction {
33413        AlterTableAction::SetWithoutCluster(node)
33414    }
33415}
33416impl From<SetWithoutOids> for AlterTableAction {
33417    #[inline]
33418    fn from(node: SetWithoutOids) -> AlterTableAction {
33419        AlterTableAction::SetWithoutOids(node)
33420    }
33421}
33422impl From<SplitPartition> for AlterTableAction {
33423    #[inline]
33424    fn from(node: SplitPartition) -> AlterTableAction {
33425        AlterTableAction::SplitPartition(node)
33426    }
33427}
33428impl From<ValidateConstraint> for AlterTableAction {
33429    #[inline]
33430    fn from(node: ValidateConstraint) -> AlterTableAction {
33431        AlterTableAction::ValidateConstraint(node)
33432    }
33433}
33434impl AstNode for AlterTypeAction {
33435    #[inline]
33436    fn can_cast(kind: SyntaxKind) -> bool {
33437        matches!(
33438            kind,
33439            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
33440        )
33441    }
33442    #[inline]
33443    fn cast(syntax: SyntaxNode) -> Option<Self> {
33444        let res = match syntax.kind() {
33445            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
33446            SyntaxKind::ALTER_ATTRIBUTE => {
33447                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
33448            }
33449            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
33450            _ => {
33451                return None;
33452            }
33453        };
33454        Some(res)
33455    }
33456    #[inline]
33457    fn syntax(&self) -> &SyntaxNode {
33458        match self {
33459            AlterTypeAction::AddAttribute(it) => &it.syntax,
33460            AlterTypeAction::AlterAttribute(it) => &it.syntax,
33461            AlterTypeAction::DropAttribute(it) => &it.syntax,
33462        }
33463    }
33464}
33465impl From<AddAttribute> for AlterTypeAction {
33466    #[inline]
33467    fn from(node: AddAttribute) -> AlterTypeAction {
33468        AlterTypeAction::AddAttribute(node)
33469    }
33470}
33471impl From<AlterAttribute> for AlterTypeAction {
33472    #[inline]
33473    fn from(node: AlterAttribute) -> AlterTypeAction {
33474        AlterTypeAction::AlterAttribute(node)
33475    }
33476}
33477impl From<DropAttribute> for AlterTypeAction {
33478    #[inline]
33479    fn from(node: DropAttribute) -> AlterTypeAction {
33480        AlterTypeAction::DropAttribute(node)
33481    }
33482}
33483impl AstNode for BeginFuncOption {
33484    #[inline]
33485    fn can_cast(kind: SyntaxKind) -> bool {
33486        matches!(kind, SyntaxKind::RETURN_FUNC_OPTION)
33487    }
33488    #[inline]
33489    fn cast(syntax: SyntaxNode) -> Option<Self> {
33490        let res = match syntax.kind() {
33491            SyntaxKind::RETURN_FUNC_OPTION => {
33492                BeginFuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33493            }
33494            _ => {
33495                if let Some(result) = Stmt::cast(syntax) {
33496                    return Some(BeginFuncOption::Stmt(result));
33497                }
33498                return None;
33499            }
33500        };
33501        Some(res)
33502    }
33503    #[inline]
33504    fn syntax(&self) -> &SyntaxNode {
33505        match self {
33506            BeginFuncOption::ReturnFuncOption(it) => &it.syntax,
33507            BeginFuncOption::Stmt(it) => it.syntax(),
33508        }
33509    }
33510}
33511impl From<ReturnFuncOption> for BeginFuncOption {
33512    #[inline]
33513    fn from(node: ReturnFuncOption) -> BeginFuncOption {
33514        BeginFuncOption::ReturnFuncOption(node)
33515    }
33516}
33517impl AstNode for ColumnConstraint {
33518    #[inline]
33519    fn can_cast(kind: SyntaxKind) -> bool {
33520        matches!(
33521            kind,
33522            SyntaxKind::CHECK_CONSTRAINT
33523                | SyntaxKind::DEFAULT_CONSTRAINT
33524                | SyntaxKind::EXCLUDE_CONSTRAINT
33525                | SyntaxKind::NOT_NULL_CONSTRAINT
33526                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33527                | SyntaxKind::REFERENCES_CONSTRAINT
33528                | SyntaxKind::UNIQUE_CONSTRAINT
33529        )
33530    }
33531    #[inline]
33532    fn cast(syntax: SyntaxNode) -> Option<Self> {
33533        let res = match syntax.kind() {
33534            SyntaxKind::CHECK_CONSTRAINT => {
33535                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
33536            }
33537            SyntaxKind::DEFAULT_CONSTRAINT => {
33538                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
33539            }
33540            SyntaxKind::EXCLUDE_CONSTRAINT => {
33541                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33542            }
33543            SyntaxKind::NOT_NULL_CONSTRAINT => {
33544                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
33545            }
33546            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33547                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33548            }
33549            SyntaxKind::REFERENCES_CONSTRAINT => {
33550                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
33551            }
33552            SyntaxKind::UNIQUE_CONSTRAINT => {
33553                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
33554            }
33555            _ => {
33556                return None;
33557            }
33558        };
33559        Some(res)
33560    }
33561    #[inline]
33562    fn syntax(&self) -> &SyntaxNode {
33563        match self {
33564            ColumnConstraint::CheckConstraint(it) => &it.syntax,
33565            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
33566            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
33567            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
33568            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33569            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
33570            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
33571        }
33572    }
33573}
33574impl From<CheckConstraint> for ColumnConstraint {
33575    #[inline]
33576    fn from(node: CheckConstraint) -> ColumnConstraint {
33577        ColumnConstraint::CheckConstraint(node)
33578    }
33579}
33580impl From<DefaultConstraint> for ColumnConstraint {
33581    #[inline]
33582    fn from(node: DefaultConstraint) -> ColumnConstraint {
33583        ColumnConstraint::DefaultConstraint(node)
33584    }
33585}
33586impl From<ExcludeConstraint> for ColumnConstraint {
33587    #[inline]
33588    fn from(node: ExcludeConstraint) -> ColumnConstraint {
33589        ColumnConstraint::ExcludeConstraint(node)
33590    }
33591}
33592impl From<NotNullConstraint> for ColumnConstraint {
33593    #[inline]
33594    fn from(node: NotNullConstraint) -> ColumnConstraint {
33595        ColumnConstraint::NotNullConstraint(node)
33596    }
33597}
33598impl From<PrimaryKeyConstraint> for ColumnConstraint {
33599    #[inline]
33600    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
33601        ColumnConstraint::PrimaryKeyConstraint(node)
33602    }
33603}
33604impl From<ReferencesConstraint> for ColumnConstraint {
33605    #[inline]
33606    fn from(node: ReferencesConstraint) -> ColumnConstraint {
33607        ColumnConstraint::ReferencesConstraint(node)
33608    }
33609}
33610impl From<UniqueConstraint> for ColumnConstraint {
33611    #[inline]
33612    fn from(node: UniqueConstraint) -> ColumnConstraint {
33613        ColumnConstraint::UniqueConstraint(node)
33614    }
33615}
33616impl AstNode for ConfigValue {
33617    #[inline]
33618    fn can_cast(kind: SyntaxKind) -> bool {
33619        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
33620    }
33621    #[inline]
33622    fn cast(syntax: SyntaxNode) -> Option<Self> {
33623        let res = match syntax.kind() {
33624            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
33625            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
33626            _ => {
33627                return None;
33628            }
33629        };
33630        Some(res)
33631    }
33632    #[inline]
33633    fn syntax(&self) -> &SyntaxNode {
33634        match self {
33635            ConfigValue::Literal(it) => &it.syntax,
33636            ConfigValue::NameRef(it) => &it.syntax,
33637        }
33638    }
33639}
33640impl From<Literal> for ConfigValue {
33641    #[inline]
33642    fn from(node: Literal) -> ConfigValue {
33643        ConfigValue::Literal(node)
33644    }
33645}
33646impl From<NameRef> for ConfigValue {
33647    #[inline]
33648    fn from(node: NameRef) -> ConfigValue {
33649        ConfigValue::NameRef(node)
33650    }
33651}
33652impl AstNode for ConflictAction {
33653    #[inline]
33654    fn can_cast(kind: SyntaxKind) -> bool {
33655        matches!(
33656            kind,
33657            SyntaxKind::CONFLICT_DO_NOTHING
33658                | SyntaxKind::CONFLICT_DO_SELECT
33659                | SyntaxKind::CONFLICT_DO_UPDATE_SET
33660        )
33661    }
33662    #[inline]
33663    fn cast(syntax: SyntaxNode) -> Option<Self> {
33664        let res = match syntax.kind() {
33665            SyntaxKind::CONFLICT_DO_NOTHING => {
33666                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
33667            }
33668            SyntaxKind::CONFLICT_DO_SELECT => {
33669                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
33670            }
33671            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
33672                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
33673            }
33674            _ => {
33675                return None;
33676            }
33677        };
33678        Some(res)
33679    }
33680    #[inline]
33681    fn syntax(&self) -> &SyntaxNode {
33682        match self {
33683            ConflictAction::ConflictDoNothing(it) => &it.syntax,
33684            ConflictAction::ConflictDoSelect(it) => &it.syntax,
33685            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
33686        }
33687    }
33688}
33689impl From<ConflictDoNothing> for ConflictAction {
33690    #[inline]
33691    fn from(node: ConflictDoNothing) -> ConflictAction {
33692        ConflictAction::ConflictDoNothing(node)
33693    }
33694}
33695impl From<ConflictDoSelect> for ConflictAction {
33696    #[inline]
33697    fn from(node: ConflictDoSelect) -> ConflictAction {
33698        ConflictAction::ConflictDoSelect(node)
33699    }
33700}
33701impl From<ConflictDoUpdateSet> for ConflictAction {
33702    #[inline]
33703    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
33704        ConflictAction::ConflictDoUpdateSet(node)
33705    }
33706}
33707impl AstNode for ConflictTarget {
33708    #[inline]
33709    fn can_cast(kind: SyntaxKind) -> bool {
33710        matches!(
33711            kind,
33712            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
33713        )
33714    }
33715    #[inline]
33716    fn cast(syntax: SyntaxNode) -> Option<Self> {
33717        let res = match syntax.kind() {
33718            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
33719                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
33720            }
33721            SyntaxKind::CONFLICT_ON_INDEX => {
33722                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
33723            }
33724            _ => {
33725                return None;
33726            }
33727        };
33728        Some(res)
33729    }
33730    #[inline]
33731    fn syntax(&self) -> &SyntaxNode {
33732        match self {
33733            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
33734            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
33735        }
33736    }
33737}
33738impl From<ConflictOnConstraint> for ConflictTarget {
33739    #[inline]
33740    fn from(node: ConflictOnConstraint) -> ConflictTarget {
33741        ConflictTarget::ConflictOnConstraint(node)
33742    }
33743}
33744impl From<ConflictOnIndex> for ConflictTarget {
33745    #[inline]
33746    fn from(node: ConflictOnIndex) -> ConflictTarget {
33747        ConflictTarget::ConflictOnIndex(node)
33748    }
33749}
33750impl AstNode for Constraint {
33751    #[inline]
33752    fn can_cast(kind: SyntaxKind) -> bool {
33753        matches!(
33754            kind,
33755            SyntaxKind::CHECK_CONSTRAINT
33756                | SyntaxKind::DEFAULT_CONSTRAINT
33757                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33758                | SyntaxKind::GENERATED_CONSTRAINT
33759                | SyntaxKind::NOT_NULL_CONSTRAINT
33760                | SyntaxKind::NULL_CONSTRAINT
33761                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33762                | SyntaxKind::REFERENCES_CONSTRAINT
33763                | SyntaxKind::UNIQUE_CONSTRAINT
33764        )
33765    }
33766    #[inline]
33767    fn cast(syntax: SyntaxNode) -> Option<Self> {
33768        let res = match syntax.kind() {
33769            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
33770            SyntaxKind::DEFAULT_CONSTRAINT => {
33771                Constraint::DefaultConstraint(DefaultConstraint { syntax })
33772            }
33773            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33774                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33775            }
33776            SyntaxKind::GENERATED_CONSTRAINT => {
33777                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
33778            }
33779            SyntaxKind::NOT_NULL_CONSTRAINT => {
33780                Constraint::NotNullConstraint(NotNullConstraint { syntax })
33781            }
33782            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
33783            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33784                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33785            }
33786            SyntaxKind::REFERENCES_CONSTRAINT => {
33787                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
33788            }
33789            SyntaxKind::UNIQUE_CONSTRAINT => {
33790                Constraint::UniqueConstraint(UniqueConstraint { syntax })
33791            }
33792            _ => {
33793                return None;
33794            }
33795        };
33796        Some(res)
33797    }
33798    #[inline]
33799    fn syntax(&self) -> &SyntaxNode {
33800        match self {
33801            Constraint::CheckConstraint(it) => &it.syntax,
33802            Constraint::DefaultConstraint(it) => &it.syntax,
33803            Constraint::ForeignKeyConstraint(it) => &it.syntax,
33804            Constraint::GeneratedConstraint(it) => &it.syntax,
33805            Constraint::NotNullConstraint(it) => &it.syntax,
33806            Constraint::NullConstraint(it) => &it.syntax,
33807            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
33808            Constraint::ReferencesConstraint(it) => &it.syntax,
33809            Constraint::UniqueConstraint(it) => &it.syntax,
33810        }
33811    }
33812}
33813impl From<CheckConstraint> for Constraint {
33814    #[inline]
33815    fn from(node: CheckConstraint) -> Constraint {
33816        Constraint::CheckConstraint(node)
33817    }
33818}
33819impl From<DefaultConstraint> for Constraint {
33820    #[inline]
33821    fn from(node: DefaultConstraint) -> Constraint {
33822        Constraint::DefaultConstraint(node)
33823    }
33824}
33825impl From<ForeignKeyConstraint> for Constraint {
33826    #[inline]
33827    fn from(node: ForeignKeyConstraint) -> Constraint {
33828        Constraint::ForeignKeyConstraint(node)
33829    }
33830}
33831impl From<GeneratedConstraint> for Constraint {
33832    #[inline]
33833    fn from(node: GeneratedConstraint) -> Constraint {
33834        Constraint::GeneratedConstraint(node)
33835    }
33836}
33837impl From<NotNullConstraint> for Constraint {
33838    #[inline]
33839    fn from(node: NotNullConstraint) -> Constraint {
33840        Constraint::NotNullConstraint(node)
33841    }
33842}
33843impl From<NullConstraint> for Constraint {
33844    #[inline]
33845    fn from(node: NullConstraint) -> Constraint {
33846        Constraint::NullConstraint(node)
33847    }
33848}
33849impl From<PrimaryKeyConstraint> for Constraint {
33850    #[inline]
33851    fn from(node: PrimaryKeyConstraint) -> Constraint {
33852        Constraint::PrimaryKeyConstraint(node)
33853    }
33854}
33855impl From<ReferencesConstraint> for Constraint {
33856    #[inline]
33857    fn from(node: ReferencesConstraint) -> Constraint {
33858        Constraint::ReferencesConstraint(node)
33859    }
33860}
33861impl From<UniqueConstraint> for Constraint {
33862    #[inline]
33863    fn from(node: UniqueConstraint) -> Constraint {
33864        Constraint::UniqueConstraint(node)
33865    }
33866}
33867impl AstNode for ElementTableLabelAndProperties {
33868    #[inline]
33869    fn can_cast(kind: SyntaxKind) -> bool {
33870        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
33871    }
33872    #[inline]
33873    fn cast(syntax: SyntaxNode) -> Option<Self> {
33874        let res = match syntax.kind() {
33875            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
33876                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
33877                    syntax,
33878                })
33879            }
33880            _ => {
33881                if let Some(result) = ElementTableProperties::cast(syntax) {
33882                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
33883                        result,
33884                    ));
33885                }
33886                return None;
33887            }
33888        };
33889        Some(res)
33890    }
33891    #[inline]
33892    fn syntax(&self) -> &SyntaxNode {
33893        match self {
33894            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
33895            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
33896        }
33897    }
33898}
33899impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
33900    #[inline]
33901    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
33902        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
33903    }
33904}
33905impl AstNode for ElementTableProperties {
33906    #[inline]
33907    fn can_cast(kind: SyntaxKind) -> bool {
33908        matches!(
33909            kind,
33910            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES
33911        )
33912    }
33913    #[inline]
33914    fn cast(syntax: SyntaxNode) -> Option<Self> {
33915        let res = match syntax.kind() {
33916            SyntaxKind::ALL_PROPERTIES => {
33917                ElementTableProperties::AllProperties(AllProperties { syntax })
33918            }
33919            SyntaxKind::NO_PROPERTIES => {
33920                ElementTableProperties::NoProperties(NoProperties { syntax })
33921            }
33922            SyntaxKind::PROPERTIES => ElementTableProperties::Properties(Properties { syntax }),
33923            _ => {
33924                return None;
33925            }
33926        };
33927        Some(res)
33928    }
33929    #[inline]
33930    fn syntax(&self) -> &SyntaxNode {
33931        match self {
33932            ElementTableProperties::AllProperties(it) => &it.syntax,
33933            ElementTableProperties::NoProperties(it) => &it.syntax,
33934            ElementTableProperties::Properties(it) => &it.syntax,
33935        }
33936    }
33937}
33938impl From<AllProperties> for ElementTableProperties {
33939    #[inline]
33940    fn from(node: AllProperties) -> ElementTableProperties {
33941        ElementTableProperties::AllProperties(node)
33942    }
33943}
33944impl From<NoProperties> for ElementTableProperties {
33945    #[inline]
33946    fn from(node: NoProperties) -> ElementTableProperties {
33947        ElementTableProperties::NoProperties(node)
33948    }
33949}
33950impl From<Properties> for ElementTableProperties {
33951    #[inline]
33952    fn from(node: Properties) -> ElementTableProperties {
33953        ElementTableProperties::Properties(node)
33954    }
33955}
33956impl AstNode for ExplainStmt {
33957    #[inline]
33958    fn can_cast(kind: SyntaxKind) -> bool {
33959        matches!(
33960            kind,
33961            SyntaxKind::COMPOUND_SELECT
33962                | SyntaxKind::CREATE_MATERIALIZED_VIEW
33963                | SyntaxKind::CREATE_TABLE_AS
33964                | SyntaxKind::DECLARE
33965                | SyntaxKind::DELETE
33966                | SyntaxKind::EXECUTE
33967                | SyntaxKind::INSERT
33968                | SyntaxKind::MERGE
33969                | SyntaxKind::PAREN_SELECT
33970                | SyntaxKind::SELECT
33971                | SyntaxKind::SELECT_INTO
33972                | SyntaxKind::TABLE
33973                | SyntaxKind::UPDATE
33974                | SyntaxKind::VALUES
33975        )
33976    }
33977    #[inline]
33978    fn cast(syntax: SyntaxNode) -> Option<Self> {
33979        let res = match syntax.kind() {
33980            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
33981            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
33982                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
33983            }
33984            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
33985            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
33986            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
33987            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
33988            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
33989            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
33990            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
33991            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
33992            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
33993            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
33994            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
33995            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
33996            _ => {
33997                return None;
33998            }
33999        };
34000        Some(res)
34001    }
34002    #[inline]
34003    fn syntax(&self) -> &SyntaxNode {
34004        match self {
34005            ExplainStmt::CompoundSelect(it) => &it.syntax,
34006            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
34007            ExplainStmt::CreateTableAs(it) => &it.syntax,
34008            ExplainStmt::Declare(it) => &it.syntax,
34009            ExplainStmt::Delete(it) => &it.syntax,
34010            ExplainStmt::Execute(it) => &it.syntax,
34011            ExplainStmt::Insert(it) => &it.syntax,
34012            ExplainStmt::Merge(it) => &it.syntax,
34013            ExplainStmt::ParenSelect(it) => &it.syntax,
34014            ExplainStmt::Select(it) => &it.syntax,
34015            ExplainStmt::SelectInto(it) => &it.syntax,
34016            ExplainStmt::Table(it) => &it.syntax,
34017            ExplainStmt::Update(it) => &it.syntax,
34018            ExplainStmt::Values(it) => &it.syntax,
34019        }
34020    }
34021}
34022impl From<CompoundSelect> for ExplainStmt {
34023    #[inline]
34024    fn from(node: CompoundSelect) -> ExplainStmt {
34025        ExplainStmt::CompoundSelect(node)
34026    }
34027}
34028impl From<CreateMaterializedView> for ExplainStmt {
34029    #[inline]
34030    fn from(node: CreateMaterializedView) -> ExplainStmt {
34031        ExplainStmt::CreateMaterializedView(node)
34032    }
34033}
34034impl From<CreateTableAs> for ExplainStmt {
34035    #[inline]
34036    fn from(node: CreateTableAs) -> ExplainStmt {
34037        ExplainStmt::CreateTableAs(node)
34038    }
34039}
34040impl From<Declare> for ExplainStmt {
34041    #[inline]
34042    fn from(node: Declare) -> ExplainStmt {
34043        ExplainStmt::Declare(node)
34044    }
34045}
34046impl From<Delete> for ExplainStmt {
34047    #[inline]
34048    fn from(node: Delete) -> ExplainStmt {
34049        ExplainStmt::Delete(node)
34050    }
34051}
34052impl From<Execute> for ExplainStmt {
34053    #[inline]
34054    fn from(node: Execute) -> ExplainStmt {
34055        ExplainStmt::Execute(node)
34056    }
34057}
34058impl From<Insert> for ExplainStmt {
34059    #[inline]
34060    fn from(node: Insert) -> ExplainStmt {
34061        ExplainStmt::Insert(node)
34062    }
34063}
34064impl From<Merge> for ExplainStmt {
34065    #[inline]
34066    fn from(node: Merge) -> ExplainStmt {
34067        ExplainStmt::Merge(node)
34068    }
34069}
34070impl From<ParenSelect> for ExplainStmt {
34071    #[inline]
34072    fn from(node: ParenSelect) -> ExplainStmt {
34073        ExplainStmt::ParenSelect(node)
34074    }
34075}
34076impl From<Select> for ExplainStmt {
34077    #[inline]
34078    fn from(node: Select) -> ExplainStmt {
34079        ExplainStmt::Select(node)
34080    }
34081}
34082impl From<SelectInto> for ExplainStmt {
34083    #[inline]
34084    fn from(node: SelectInto) -> ExplainStmt {
34085        ExplainStmt::SelectInto(node)
34086    }
34087}
34088impl From<Table> for ExplainStmt {
34089    #[inline]
34090    fn from(node: Table) -> ExplainStmt {
34091        ExplainStmt::Table(node)
34092    }
34093}
34094impl From<Update> for ExplainStmt {
34095    #[inline]
34096    fn from(node: Update) -> ExplainStmt {
34097        ExplainStmt::Update(node)
34098    }
34099}
34100impl From<Values> for ExplainStmt {
34101    #[inline]
34102    fn from(node: Values) -> ExplainStmt {
34103        ExplainStmt::Values(node)
34104    }
34105}
34106impl AstNode for Expr {
34107    #[inline]
34108    fn can_cast(kind: SyntaxKind) -> bool {
34109        matches!(
34110            kind,
34111            SyntaxKind::ARRAY_EXPR
34112                | SyntaxKind::BETWEEN_EXPR
34113                | SyntaxKind::BIN_EXPR
34114                | SyntaxKind::CALL_EXPR
34115                | SyntaxKind::CASE_EXPR
34116                | SyntaxKind::CAST_EXPR
34117                | SyntaxKind::FIELD_EXPR
34118                | SyntaxKind::INDEX_EXPR
34119                | SyntaxKind::LITERAL
34120                | SyntaxKind::NAME_REF
34121                | SyntaxKind::PAREN_EXPR
34122                | SyntaxKind::POSTFIX_EXPR
34123                | SyntaxKind::PREFIX_EXPR
34124                | SyntaxKind::SLICE_EXPR
34125                | SyntaxKind::TUPLE_EXPR
34126        )
34127    }
34128    #[inline]
34129    fn cast(syntax: SyntaxNode) -> Option<Self> {
34130        let res = match syntax.kind() {
34131            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
34132            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
34133            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
34134            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
34135            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
34136            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
34137            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
34138            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
34139            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
34140            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
34141            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
34142            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
34143            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
34144            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
34145            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
34146            _ => {
34147                return None;
34148            }
34149        };
34150        Some(res)
34151    }
34152    #[inline]
34153    fn syntax(&self) -> &SyntaxNode {
34154        match self {
34155            Expr::ArrayExpr(it) => &it.syntax,
34156            Expr::BetweenExpr(it) => &it.syntax,
34157            Expr::BinExpr(it) => &it.syntax,
34158            Expr::CallExpr(it) => &it.syntax,
34159            Expr::CaseExpr(it) => &it.syntax,
34160            Expr::CastExpr(it) => &it.syntax,
34161            Expr::FieldExpr(it) => &it.syntax,
34162            Expr::IndexExpr(it) => &it.syntax,
34163            Expr::Literal(it) => &it.syntax,
34164            Expr::NameRef(it) => &it.syntax,
34165            Expr::ParenExpr(it) => &it.syntax,
34166            Expr::PostfixExpr(it) => &it.syntax,
34167            Expr::PrefixExpr(it) => &it.syntax,
34168            Expr::SliceExpr(it) => &it.syntax,
34169            Expr::TupleExpr(it) => &it.syntax,
34170        }
34171    }
34172}
34173impl From<ArrayExpr> for Expr {
34174    #[inline]
34175    fn from(node: ArrayExpr) -> Expr {
34176        Expr::ArrayExpr(node)
34177    }
34178}
34179impl From<BetweenExpr> for Expr {
34180    #[inline]
34181    fn from(node: BetweenExpr) -> Expr {
34182        Expr::BetweenExpr(node)
34183    }
34184}
34185impl From<BinExpr> for Expr {
34186    #[inline]
34187    fn from(node: BinExpr) -> Expr {
34188        Expr::BinExpr(node)
34189    }
34190}
34191impl From<CallExpr> for Expr {
34192    #[inline]
34193    fn from(node: CallExpr) -> Expr {
34194        Expr::CallExpr(node)
34195    }
34196}
34197impl From<CaseExpr> for Expr {
34198    #[inline]
34199    fn from(node: CaseExpr) -> Expr {
34200        Expr::CaseExpr(node)
34201    }
34202}
34203impl From<CastExpr> for Expr {
34204    #[inline]
34205    fn from(node: CastExpr) -> Expr {
34206        Expr::CastExpr(node)
34207    }
34208}
34209impl From<FieldExpr> for Expr {
34210    #[inline]
34211    fn from(node: FieldExpr) -> Expr {
34212        Expr::FieldExpr(node)
34213    }
34214}
34215impl From<IndexExpr> for Expr {
34216    #[inline]
34217    fn from(node: IndexExpr) -> Expr {
34218        Expr::IndexExpr(node)
34219    }
34220}
34221impl From<Literal> for Expr {
34222    #[inline]
34223    fn from(node: Literal) -> Expr {
34224        Expr::Literal(node)
34225    }
34226}
34227impl From<NameRef> for Expr {
34228    #[inline]
34229    fn from(node: NameRef) -> Expr {
34230        Expr::NameRef(node)
34231    }
34232}
34233impl From<ParenExpr> for Expr {
34234    #[inline]
34235    fn from(node: ParenExpr) -> Expr {
34236        Expr::ParenExpr(node)
34237    }
34238}
34239impl From<PostfixExpr> for Expr {
34240    #[inline]
34241    fn from(node: PostfixExpr) -> Expr {
34242        Expr::PostfixExpr(node)
34243    }
34244}
34245impl From<PrefixExpr> for Expr {
34246    #[inline]
34247    fn from(node: PrefixExpr) -> Expr {
34248        Expr::PrefixExpr(node)
34249    }
34250}
34251impl From<SliceExpr> for Expr {
34252    #[inline]
34253    fn from(node: SliceExpr) -> Expr {
34254        Expr::SliceExpr(node)
34255    }
34256}
34257impl From<TupleExpr> for Expr {
34258    #[inline]
34259    fn from(node: TupleExpr) -> Expr {
34260        Expr::TupleExpr(node)
34261    }
34262}
34263impl AstNode for FuncOption {
34264    #[inline]
34265    fn can_cast(kind: SyntaxKind) -> bool {
34266        matches!(
34267            kind,
34268            SyntaxKind::AS_FUNC_OPTION
34269                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
34270                | SyntaxKind::COST_FUNC_OPTION
34271                | SyntaxKind::LANGUAGE_FUNC_OPTION
34272                | SyntaxKind::LEAKPROOF_FUNC_OPTION
34273                | SyntaxKind::PARALLEL_FUNC_OPTION
34274                | SyntaxKind::RESET_FUNC_OPTION
34275                | SyntaxKind::RETURN_FUNC_OPTION
34276                | SyntaxKind::ROWS_FUNC_OPTION
34277                | SyntaxKind::SECURITY_FUNC_OPTION
34278                | SyntaxKind::SET_FUNC_OPTION
34279                | SyntaxKind::STRICT_FUNC_OPTION
34280                | SyntaxKind::SUPPORT_FUNC_OPTION
34281                | SyntaxKind::TRANSFORM_FUNC_OPTION
34282                | SyntaxKind::VOLATILITY_FUNC_OPTION
34283                | SyntaxKind::WINDOW_FUNC_OPTION
34284        )
34285    }
34286    #[inline]
34287    fn cast(syntax: SyntaxNode) -> Option<Self> {
34288        let res = match syntax.kind() {
34289            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
34290            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
34291                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
34292            }
34293            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
34294            SyntaxKind::LANGUAGE_FUNC_OPTION => {
34295                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
34296            }
34297            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
34298                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
34299            }
34300            SyntaxKind::PARALLEL_FUNC_OPTION => {
34301                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
34302            }
34303            SyntaxKind::RESET_FUNC_OPTION => {
34304                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
34305            }
34306            SyntaxKind::RETURN_FUNC_OPTION => {
34307                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
34308            }
34309            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
34310            SyntaxKind::SECURITY_FUNC_OPTION => {
34311                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
34312            }
34313            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
34314            SyntaxKind::STRICT_FUNC_OPTION => {
34315                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
34316            }
34317            SyntaxKind::SUPPORT_FUNC_OPTION => {
34318                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
34319            }
34320            SyntaxKind::TRANSFORM_FUNC_OPTION => {
34321                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
34322            }
34323            SyntaxKind::VOLATILITY_FUNC_OPTION => {
34324                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
34325            }
34326            SyntaxKind::WINDOW_FUNC_OPTION => {
34327                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
34328            }
34329            _ => {
34330                return None;
34331            }
34332        };
34333        Some(res)
34334    }
34335    #[inline]
34336    fn syntax(&self) -> &SyntaxNode {
34337        match self {
34338            FuncOption::AsFuncOption(it) => &it.syntax,
34339            FuncOption::BeginFuncOptionList(it) => &it.syntax,
34340            FuncOption::CostFuncOption(it) => &it.syntax,
34341            FuncOption::LanguageFuncOption(it) => &it.syntax,
34342            FuncOption::LeakproofFuncOption(it) => &it.syntax,
34343            FuncOption::ParallelFuncOption(it) => &it.syntax,
34344            FuncOption::ResetFuncOption(it) => &it.syntax,
34345            FuncOption::ReturnFuncOption(it) => &it.syntax,
34346            FuncOption::RowsFuncOption(it) => &it.syntax,
34347            FuncOption::SecurityFuncOption(it) => &it.syntax,
34348            FuncOption::SetFuncOption(it) => &it.syntax,
34349            FuncOption::StrictFuncOption(it) => &it.syntax,
34350            FuncOption::SupportFuncOption(it) => &it.syntax,
34351            FuncOption::TransformFuncOption(it) => &it.syntax,
34352            FuncOption::VolatilityFuncOption(it) => &it.syntax,
34353            FuncOption::WindowFuncOption(it) => &it.syntax,
34354        }
34355    }
34356}
34357impl From<AsFuncOption> for FuncOption {
34358    #[inline]
34359    fn from(node: AsFuncOption) -> FuncOption {
34360        FuncOption::AsFuncOption(node)
34361    }
34362}
34363impl From<BeginFuncOptionList> for FuncOption {
34364    #[inline]
34365    fn from(node: BeginFuncOptionList) -> FuncOption {
34366        FuncOption::BeginFuncOptionList(node)
34367    }
34368}
34369impl From<CostFuncOption> for FuncOption {
34370    #[inline]
34371    fn from(node: CostFuncOption) -> FuncOption {
34372        FuncOption::CostFuncOption(node)
34373    }
34374}
34375impl From<LanguageFuncOption> for FuncOption {
34376    #[inline]
34377    fn from(node: LanguageFuncOption) -> FuncOption {
34378        FuncOption::LanguageFuncOption(node)
34379    }
34380}
34381impl From<LeakproofFuncOption> for FuncOption {
34382    #[inline]
34383    fn from(node: LeakproofFuncOption) -> FuncOption {
34384        FuncOption::LeakproofFuncOption(node)
34385    }
34386}
34387impl From<ParallelFuncOption> for FuncOption {
34388    #[inline]
34389    fn from(node: ParallelFuncOption) -> FuncOption {
34390        FuncOption::ParallelFuncOption(node)
34391    }
34392}
34393impl From<ResetFuncOption> for FuncOption {
34394    #[inline]
34395    fn from(node: ResetFuncOption) -> FuncOption {
34396        FuncOption::ResetFuncOption(node)
34397    }
34398}
34399impl From<ReturnFuncOption> for FuncOption {
34400    #[inline]
34401    fn from(node: ReturnFuncOption) -> FuncOption {
34402        FuncOption::ReturnFuncOption(node)
34403    }
34404}
34405impl From<RowsFuncOption> for FuncOption {
34406    #[inline]
34407    fn from(node: RowsFuncOption) -> FuncOption {
34408        FuncOption::RowsFuncOption(node)
34409    }
34410}
34411impl From<SecurityFuncOption> for FuncOption {
34412    #[inline]
34413    fn from(node: SecurityFuncOption) -> FuncOption {
34414        FuncOption::SecurityFuncOption(node)
34415    }
34416}
34417impl From<SetFuncOption> for FuncOption {
34418    #[inline]
34419    fn from(node: SetFuncOption) -> FuncOption {
34420        FuncOption::SetFuncOption(node)
34421    }
34422}
34423impl From<StrictFuncOption> for FuncOption {
34424    #[inline]
34425    fn from(node: StrictFuncOption) -> FuncOption {
34426        FuncOption::StrictFuncOption(node)
34427    }
34428}
34429impl From<SupportFuncOption> for FuncOption {
34430    #[inline]
34431    fn from(node: SupportFuncOption) -> FuncOption {
34432        FuncOption::SupportFuncOption(node)
34433    }
34434}
34435impl From<TransformFuncOption> for FuncOption {
34436    #[inline]
34437    fn from(node: TransformFuncOption) -> FuncOption {
34438        FuncOption::TransformFuncOption(node)
34439    }
34440}
34441impl From<VolatilityFuncOption> for FuncOption {
34442    #[inline]
34443    fn from(node: VolatilityFuncOption) -> FuncOption {
34444        FuncOption::VolatilityFuncOption(node)
34445    }
34446}
34447impl From<WindowFuncOption> for FuncOption {
34448    #[inline]
34449    fn from(node: WindowFuncOption) -> FuncOption {
34450        FuncOption::WindowFuncOption(node)
34451    }
34452}
34453impl AstNode for GroupBy {
34454    #[inline]
34455    fn can_cast(kind: SyntaxKind) -> bool {
34456        matches!(
34457            kind,
34458            SyntaxKind::GROUPING_CUBE
34459                | SyntaxKind::GROUPING_EXPR
34460                | SyntaxKind::GROUPING_ROLLUP
34461                | SyntaxKind::GROUPING_SETS
34462        )
34463    }
34464    #[inline]
34465    fn cast(syntax: SyntaxNode) -> Option<Self> {
34466        let res = match syntax.kind() {
34467            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
34468            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
34469            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
34470            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
34471            _ => {
34472                return None;
34473            }
34474        };
34475        Some(res)
34476    }
34477    #[inline]
34478    fn syntax(&self) -> &SyntaxNode {
34479        match self {
34480            GroupBy::GroupingCube(it) => &it.syntax,
34481            GroupBy::GroupingExpr(it) => &it.syntax,
34482            GroupBy::GroupingRollup(it) => &it.syntax,
34483            GroupBy::GroupingSets(it) => &it.syntax,
34484        }
34485    }
34486}
34487impl From<GroupingCube> for GroupBy {
34488    #[inline]
34489    fn from(node: GroupingCube) -> GroupBy {
34490        GroupBy::GroupingCube(node)
34491    }
34492}
34493impl From<GroupingExpr> for GroupBy {
34494    #[inline]
34495    fn from(node: GroupingExpr) -> GroupBy {
34496        GroupBy::GroupingExpr(node)
34497    }
34498}
34499impl From<GroupingRollup> for GroupBy {
34500    #[inline]
34501    fn from(node: GroupingRollup) -> GroupBy {
34502        GroupBy::GroupingRollup(node)
34503    }
34504}
34505impl From<GroupingSets> for GroupBy {
34506    #[inline]
34507    fn from(node: GroupingSets) -> GroupBy {
34508        GroupBy::GroupingSets(node)
34509    }
34510}
34511impl AstNode for JoinType {
34512    #[inline]
34513    fn can_cast(kind: SyntaxKind) -> bool {
34514        matches!(
34515            kind,
34516            SyntaxKind::JOIN_CROSS
34517                | SyntaxKind::JOIN_FULL
34518                | SyntaxKind::JOIN_INNER
34519                | SyntaxKind::JOIN_LEFT
34520                | SyntaxKind::JOIN_RIGHT
34521        )
34522    }
34523    #[inline]
34524    fn cast(syntax: SyntaxNode) -> Option<Self> {
34525        let res = match syntax.kind() {
34526            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
34527            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
34528            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
34529            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
34530            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
34531            _ => {
34532                return None;
34533            }
34534        };
34535        Some(res)
34536    }
34537    #[inline]
34538    fn syntax(&self) -> &SyntaxNode {
34539        match self {
34540            JoinType::JoinCross(it) => &it.syntax,
34541            JoinType::JoinFull(it) => &it.syntax,
34542            JoinType::JoinInner(it) => &it.syntax,
34543            JoinType::JoinLeft(it) => &it.syntax,
34544            JoinType::JoinRight(it) => &it.syntax,
34545        }
34546    }
34547}
34548impl From<JoinCross> for JoinType {
34549    #[inline]
34550    fn from(node: JoinCross) -> JoinType {
34551        JoinType::JoinCross(node)
34552    }
34553}
34554impl From<JoinFull> for JoinType {
34555    #[inline]
34556    fn from(node: JoinFull) -> JoinType {
34557        JoinType::JoinFull(node)
34558    }
34559}
34560impl From<JoinInner> for JoinType {
34561    #[inline]
34562    fn from(node: JoinInner) -> JoinType {
34563        JoinType::JoinInner(node)
34564    }
34565}
34566impl From<JoinLeft> for JoinType {
34567    #[inline]
34568    fn from(node: JoinLeft) -> JoinType {
34569        JoinType::JoinLeft(node)
34570    }
34571}
34572impl From<JoinRight> for JoinType {
34573    #[inline]
34574    fn from(node: JoinRight) -> JoinType {
34575        JoinType::JoinRight(node)
34576    }
34577}
34578impl AstNode for JsonBehavior {
34579    #[inline]
34580    fn can_cast(kind: SyntaxKind) -> bool {
34581        matches!(
34582            kind,
34583            SyntaxKind::JSON_BEHAVIOR_DEFAULT
34584                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
34585                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
34586                | SyntaxKind::JSON_BEHAVIOR_ERROR
34587                | SyntaxKind::JSON_BEHAVIOR_FALSE
34588                | SyntaxKind::JSON_BEHAVIOR_NULL
34589                | SyntaxKind::JSON_BEHAVIOR_TRUE
34590                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
34591        )
34592    }
34593    #[inline]
34594    fn cast(syntax: SyntaxNode) -> Option<Self> {
34595        let res = match syntax.kind() {
34596            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
34597                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
34598            }
34599            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
34600                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
34601            }
34602            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
34603                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
34604            }
34605            SyntaxKind::JSON_BEHAVIOR_ERROR => {
34606                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
34607            }
34608            SyntaxKind::JSON_BEHAVIOR_FALSE => {
34609                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
34610            }
34611            SyntaxKind::JSON_BEHAVIOR_NULL => {
34612                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
34613            }
34614            SyntaxKind::JSON_BEHAVIOR_TRUE => {
34615                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
34616            }
34617            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
34618                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
34619            }
34620            _ => {
34621                return None;
34622            }
34623        };
34624        Some(res)
34625    }
34626    #[inline]
34627    fn syntax(&self) -> &SyntaxNode {
34628        match self {
34629            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
34630            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
34631            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
34632            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
34633            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
34634            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
34635            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
34636            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
34637        }
34638    }
34639}
34640impl From<JsonBehaviorDefault> for JsonBehavior {
34641    #[inline]
34642    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
34643        JsonBehavior::JsonBehaviorDefault(node)
34644    }
34645}
34646impl From<JsonBehaviorEmptyArray> for JsonBehavior {
34647    #[inline]
34648    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
34649        JsonBehavior::JsonBehaviorEmptyArray(node)
34650    }
34651}
34652impl From<JsonBehaviorEmptyObject> for JsonBehavior {
34653    #[inline]
34654    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
34655        JsonBehavior::JsonBehaviorEmptyObject(node)
34656    }
34657}
34658impl From<JsonBehaviorError> for JsonBehavior {
34659    #[inline]
34660    fn from(node: JsonBehaviorError) -> JsonBehavior {
34661        JsonBehavior::JsonBehaviorError(node)
34662    }
34663}
34664impl From<JsonBehaviorFalse> for JsonBehavior {
34665    #[inline]
34666    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
34667        JsonBehavior::JsonBehaviorFalse(node)
34668    }
34669}
34670impl From<JsonBehaviorNull> for JsonBehavior {
34671    #[inline]
34672    fn from(node: JsonBehaviorNull) -> JsonBehavior {
34673        JsonBehavior::JsonBehaviorNull(node)
34674    }
34675}
34676impl From<JsonBehaviorTrue> for JsonBehavior {
34677    #[inline]
34678    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
34679        JsonBehavior::JsonBehaviorTrue(node)
34680    }
34681}
34682impl From<JsonBehaviorUnknown> for JsonBehavior {
34683    #[inline]
34684    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
34685        JsonBehavior::JsonBehaviorUnknown(node)
34686    }
34687}
34688impl AstNode for MatchType {
34689    #[inline]
34690    fn can_cast(kind: SyntaxKind) -> bool {
34691        matches!(
34692            kind,
34693            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
34694        )
34695    }
34696    #[inline]
34697    fn cast(syntax: SyntaxNode) -> Option<Self> {
34698        let res = match syntax.kind() {
34699            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
34700            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
34701            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
34702            _ => {
34703                return None;
34704            }
34705        };
34706        Some(res)
34707    }
34708    #[inline]
34709    fn syntax(&self) -> &SyntaxNode {
34710        match self {
34711            MatchType::MatchFull(it) => &it.syntax,
34712            MatchType::MatchPartial(it) => &it.syntax,
34713            MatchType::MatchSimple(it) => &it.syntax,
34714        }
34715    }
34716}
34717impl From<MatchFull> for MatchType {
34718    #[inline]
34719    fn from(node: MatchFull) -> MatchType {
34720        MatchType::MatchFull(node)
34721    }
34722}
34723impl From<MatchPartial> for MatchType {
34724    #[inline]
34725    fn from(node: MatchPartial) -> MatchType {
34726        MatchType::MatchPartial(node)
34727    }
34728}
34729impl From<MatchSimple> for MatchType {
34730    #[inline]
34731    fn from(node: MatchSimple) -> MatchType {
34732        MatchType::MatchSimple(node)
34733    }
34734}
34735impl AstNode for MergeAction {
34736    #[inline]
34737    fn can_cast(kind: SyntaxKind) -> bool {
34738        matches!(
34739            kind,
34740            SyntaxKind::MERGE_DELETE
34741                | SyntaxKind::MERGE_DO_NOTHING
34742                | SyntaxKind::MERGE_INSERT
34743                | SyntaxKind::MERGE_UPDATE
34744        )
34745    }
34746    #[inline]
34747    fn cast(syntax: SyntaxNode) -> Option<Self> {
34748        let res = match syntax.kind() {
34749            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
34750            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
34751            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
34752            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
34753            _ => {
34754                return None;
34755            }
34756        };
34757        Some(res)
34758    }
34759    #[inline]
34760    fn syntax(&self) -> &SyntaxNode {
34761        match self {
34762            MergeAction::MergeDelete(it) => &it.syntax,
34763            MergeAction::MergeDoNothing(it) => &it.syntax,
34764            MergeAction::MergeInsert(it) => &it.syntax,
34765            MergeAction::MergeUpdate(it) => &it.syntax,
34766        }
34767    }
34768}
34769impl From<MergeDelete> for MergeAction {
34770    #[inline]
34771    fn from(node: MergeDelete) -> MergeAction {
34772        MergeAction::MergeDelete(node)
34773    }
34774}
34775impl From<MergeDoNothing> for MergeAction {
34776    #[inline]
34777    fn from(node: MergeDoNothing) -> MergeAction {
34778        MergeAction::MergeDoNothing(node)
34779    }
34780}
34781impl From<MergeInsert> for MergeAction {
34782    #[inline]
34783    fn from(node: MergeInsert) -> MergeAction {
34784        MergeAction::MergeInsert(node)
34785    }
34786}
34787impl From<MergeUpdate> for MergeAction {
34788    #[inline]
34789    fn from(node: MergeUpdate) -> MergeAction {
34790        MergeAction::MergeUpdate(node)
34791    }
34792}
34793impl AstNode for MergeWhenClause {
34794    #[inline]
34795    fn can_cast(kind: SyntaxKind) -> bool {
34796        matches!(
34797            kind,
34798            SyntaxKind::MERGE_WHEN_MATCHED
34799                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
34800                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
34801        )
34802    }
34803    #[inline]
34804    fn cast(syntax: SyntaxNode) -> Option<Self> {
34805        let res = match syntax.kind() {
34806            SyntaxKind::MERGE_WHEN_MATCHED => {
34807                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
34808            }
34809            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
34810                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
34811            }
34812            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
34813                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
34814            }
34815            _ => {
34816                return None;
34817            }
34818        };
34819        Some(res)
34820    }
34821    #[inline]
34822    fn syntax(&self) -> &SyntaxNode {
34823        match self {
34824            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
34825            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
34826            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
34827        }
34828    }
34829}
34830impl From<MergeWhenMatched> for MergeWhenClause {
34831    #[inline]
34832    fn from(node: MergeWhenMatched) -> MergeWhenClause {
34833        MergeWhenClause::MergeWhenMatched(node)
34834    }
34835}
34836impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
34837    #[inline]
34838    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
34839        MergeWhenClause::MergeWhenNotMatchedSource(node)
34840    }
34841}
34842impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
34843    #[inline]
34844    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
34845        MergeWhenClause::MergeWhenNotMatchedTarget(node)
34846    }
34847}
34848impl AstNode for OnCommitAction {
34849    #[inline]
34850    fn can_cast(kind: SyntaxKind) -> bool {
34851        matches!(
34852            kind,
34853            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
34854        )
34855    }
34856    #[inline]
34857    fn cast(syntax: SyntaxNode) -> Option<Self> {
34858        let res = match syntax.kind() {
34859            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
34860            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
34861            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
34862            _ => {
34863                return None;
34864            }
34865        };
34866        Some(res)
34867    }
34868    #[inline]
34869    fn syntax(&self) -> &SyntaxNode {
34870        match self {
34871            OnCommitAction::DeleteRows(it) => &it.syntax,
34872            OnCommitAction::Drop(it) => &it.syntax,
34873            OnCommitAction::PreserveRows(it) => &it.syntax,
34874        }
34875    }
34876}
34877impl From<DeleteRows> for OnCommitAction {
34878    #[inline]
34879    fn from(node: DeleteRows) -> OnCommitAction {
34880        OnCommitAction::DeleteRows(node)
34881    }
34882}
34883impl From<Drop> for OnCommitAction {
34884    #[inline]
34885    fn from(node: Drop) -> OnCommitAction {
34886        OnCommitAction::Drop(node)
34887    }
34888}
34889impl From<PreserveRows> for OnCommitAction {
34890    #[inline]
34891    fn from(node: PreserveRows) -> OnCommitAction {
34892        OnCommitAction::PreserveRows(node)
34893    }
34894}
34895impl AstNode for ParamMode {
34896    #[inline]
34897    fn can_cast(kind: SyntaxKind) -> bool {
34898        matches!(
34899            kind,
34900            SyntaxKind::PARAM_IN
34901                | SyntaxKind::PARAM_IN_OUT
34902                | SyntaxKind::PARAM_OUT
34903                | SyntaxKind::PARAM_VARIADIC
34904        )
34905    }
34906    #[inline]
34907    fn cast(syntax: SyntaxNode) -> Option<Self> {
34908        let res = match syntax.kind() {
34909            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
34910            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
34911            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
34912            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
34913            _ => {
34914                return None;
34915            }
34916        };
34917        Some(res)
34918    }
34919    #[inline]
34920    fn syntax(&self) -> &SyntaxNode {
34921        match self {
34922            ParamMode::ParamIn(it) => &it.syntax,
34923            ParamMode::ParamInOut(it) => &it.syntax,
34924            ParamMode::ParamOut(it) => &it.syntax,
34925            ParamMode::ParamVariadic(it) => &it.syntax,
34926        }
34927    }
34928}
34929impl From<ParamIn> for ParamMode {
34930    #[inline]
34931    fn from(node: ParamIn) -> ParamMode {
34932        ParamMode::ParamIn(node)
34933    }
34934}
34935impl From<ParamInOut> for ParamMode {
34936    #[inline]
34937    fn from(node: ParamInOut) -> ParamMode {
34938        ParamMode::ParamInOut(node)
34939    }
34940}
34941impl From<ParamOut> for ParamMode {
34942    #[inline]
34943    fn from(node: ParamOut) -> ParamMode {
34944        ParamMode::ParamOut(node)
34945    }
34946}
34947impl From<ParamVariadic> for ParamMode {
34948    #[inline]
34949    fn from(node: ParamVariadic) -> ParamMode {
34950        ParamMode::ParamVariadic(node)
34951    }
34952}
34953impl AstNode for PartitionType {
34954    #[inline]
34955    fn can_cast(kind: SyntaxKind) -> bool {
34956        matches!(
34957            kind,
34958            SyntaxKind::PARTITION_DEFAULT
34959                | SyntaxKind::PARTITION_FOR_VALUES_FROM
34960                | SyntaxKind::PARTITION_FOR_VALUES_IN
34961                | SyntaxKind::PARTITION_FOR_VALUES_WITH
34962        )
34963    }
34964    #[inline]
34965    fn cast(syntax: SyntaxNode) -> Option<Self> {
34966        let res = match syntax.kind() {
34967            SyntaxKind::PARTITION_DEFAULT => {
34968                PartitionType::PartitionDefault(PartitionDefault { syntax })
34969            }
34970            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
34971                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
34972            }
34973            SyntaxKind::PARTITION_FOR_VALUES_IN => {
34974                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
34975            }
34976            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
34977                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
34978            }
34979            _ => {
34980                return None;
34981            }
34982        };
34983        Some(res)
34984    }
34985    #[inline]
34986    fn syntax(&self) -> &SyntaxNode {
34987        match self {
34988            PartitionType::PartitionDefault(it) => &it.syntax,
34989            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
34990            PartitionType::PartitionForValuesIn(it) => &it.syntax,
34991            PartitionType::PartitionForValuesWith(it) => &it.syntax,
34992        }
34993    }
34994}
34995impl From<PartitionDefault> for PartitionType {
34996    #[inline]
34997    fn from(node: PartitionDefault) -> PartitionType {
34998        PartitionType::PartitionDefault(node)
34999    }
35000}
35001impl From<PartitionForValuesFrom> for PartitionType {
35002    #[inline]
35003    fn from(node: PartitionForValuesFrom) -> PartitionType {
35004        PartitionType::PartitionForValuesFrom(node)
35005    }
35006}
35007impl From<PartitionForValuesIn> for PartitionType {
35008    #[inline]
35009    fn from(node: PartitionForValuesIn) -> PartitionType {
35010        PartitionType::PartitionForValuesIn(node)
35011    }
35012}
35013impl From<PartitionForValuesWith> for PartitionType {
35014    #[inline]
35015    fn from(node: PartitionForValuesWith) -> PartitionType {
35016        PartitionType::PartitionForValuesWith(node)
35017    }
35018}
35019impl AstNode for PathPrimary {
35020    #[inline]
35021    fn can_cast(kind: SyntaxKind) -> bool {
35022        matches!(
35023            kind,
35024            SyntaxKind::EDGE_ANY
35025                | SyntaxKind::EDGE_LEFT
35026                | SyntaxKind::EDGE_RIGHT
35027                | SyntaxKind::PAREN_GRAPH_PATTERN
35028                | SyntaxKind::VERTEX_PATTERN
35029        )
35030    }
35031    #[inline]
35032    fn cast(syntax: SyntaxNode) -> Option<Self> {
35033        let res = match syntax.kind() {
35034            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
35035            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
35036            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
35037            SyntaxKind::PAREN_GRAPH_PATTERN => {
35038                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
35039            }
35040            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
35041            _ => {
35042                return None;
35043            }
35044        };
35045        Some(res)
35046    }
35047    #[inline]
35048    fn syntax(&self) -> &SyntaxNode {
35049        match self {
35050            PathPrimary::EdgeAny(it) => &it.syntax,
35051            PathPrimary::EdgeLeft(it) => &it.syntax,
35052            PathPrimary::EdgeRight(it) => &it.syntax,
35053            PathPrimary::ParenGraphPattern(it) => &it.syntax,
35054            PathPrimary::VertexPattern(it) => &it.syntax,
35055        }
35056    }
35057}
35058impl From<EdgeAny> for PathPrimary {
35059    #[inline]
35060    fn from(node: EdgeAny) -> PathPrimary {
35061        PathPrimary::EdgeAny(node)
35062    }
35063}
35064impl From<EdgeLeft> for PathPrimary {
35065    #[inline]
35066    fn from(node: EdgeLeft) -> PathPrimary {
35067        PathPrimary::EdgeLeft(node)
35068    }
35069}
35070impl From<EdgeRight> for PathPrimary {
35071    #[inline]
35072    fn from(node: EdgeRight) -> PathPrimary {
35073        PathPrimary::EdgeRight(node)
35074    }
35075}
35076impl From<ParenGraphPattern> for PathPrimary {
35077    #[inline]
35078    fn from(node: ParenGraphPattern) -> PathPrimary {
35079        PathPrimary::ParenGraphPattern(node)
35080    }
35081}
35082impl From<VertexPattern> for PathPrimary {
35083    #[inline]
35084    fn from(node: VertexPattern) -> PathPrimary {
35085        PathPrimary::VertexPattern(node)
35086    }
35087}
35088impl AstNode for Persistence {
35089    #[inline]
35090    fn can_cast(kind: SyntaxKind) -> bool {
35091        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
35092    }
35093    #[inline]
35094    fn cast(syntax: SyntaxNode) -> Option<Self> {
35095        let res = match syntax.kind() {
35096            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
35097            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
35098            _ => {
35099                return None;
35100            }
35101        };
35102        Some(res)
35103    }
35104    #[inline]
35105    fn syntax(&self) -> &SyntaxNode {
35106        match self {
35107            Persistence::Temp(it) => &it.syntax,
35108            Persistence::Unlogged(it) => &it.syntax,
35109        }
35110    }
35111}
35112impl From<Temp> for Persistence {
35113    #[inline]
35114    fn from(node: Temp) -> Persistence {
35115        Persistence::Temp(node)
35116    }
35117}
35118impl From<Unlogged> for Persistence {
35119    #[inline]
35120    fn from(node: Unlogged) -> Persistence {
35121        Persistence::Unlogged(node)
35122    }
35123}
35124impl AstNode for PreparableStmt {
35125    #[inline]
35126    fn can_cast(kind: SyntaxKind) -> bool {
35127        matches!(
35128            kind,
35129            SyntaxKind::COMPOUND_SELECT
35130                | SyntaxKind::DELETE
35131                | SyntaxKind::INSERT
35132                | SyntaxKind::MERGE
35133                | SyntaxKind::SELECT
35134                | SyntaxKind::SELECT_INTO
35135                | SyntaxKind::TABLE
35136                | SyntaxKind::UPDATE
35137                | SyntaxKind::VALUES
35138        )
35139    }
35140    #[inline]
35141    fn cast(syntax: SyntaxNode) -> Option<Self> {
35142        let res = match syntax.kind() {
35143            SyntaxKind::COMPOUND_SELECT => {
35144                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
35145            }
35146            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
35147            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
35148            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
35149            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
35150            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
35151            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
35152            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
35153            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
35154            _ => {
35155                return None;
35156            }
35157        };
35158        Some(res)
35159    }
35160    #[inline]
35161    fn syntax(&self) -> &SyntaxNode {
35162        match self {
35163            PreparableStmt::CompoundSelect(it) => &it.syntax,
35164            PreparableStmt::Delete(it) => &it.syntax,
35165            PreparableStmt::Insert(it) => &it.syntax,
35166            PreparableStmt::Merge(it) => &it.syntax,
35167            PreparableStmt::Select(it) => &it.syntax,
35168            PreparableStmt::SelectInto(it) => &it.syntax,
35169            PreparableStmt::Table(it) => &it.syntax,
35170            PreparableStmt::Update(it) => &it.syntax,
35171            PreparableStmt::Values(it) => &it.syntax,
35172        }
35173    }
35174}
35175impl From<CompoundSelect> for PreparableStmt {
35176    #[inline]
35177    fn from(node: CompoundSelect) -> PreparableStmt {
35178        PreparableStmt::CompoundSelect(node)
35179    }
35180}
35181impl From<Delete> for PreparableStmt {
35182    #[inline]
35183    fn from(node: Delete) -> PreparableStmt {
35184        PreparableStmt::Delete(node)
35185    }
35186}
35187impl From<Insert> for PreparableStmt {
35188    #[inline]
35189    fn from(node: Insert) -> PreparableStmt {
35190        PreparableStmt::Insert(node)
35191    }
35192}
35193impl From<Merge> for PreparableStmt {
35194    #[inline]
35195    fn from(node: Merge) -> PreparableStmt {
35196        PreparableStmt::Merge(node)
35197    }
35198}
35199impl From<Select> for PreparableStmt {
35200    #[inline]
35201    fn from(node: Select) -> PreparableStmt {
35202        PreparableStmt::Select(node)
35203    }
35204}
35205impl From<SelectInto> for PreparableStmt {
35206    #[inline]
35207    fn from(node: SelectInto) -> PreparableStmt {
35208        PreparableStmt::SelectInto(node)
35209    }
35210}
35211impl From<Table> for PreparableStmt {
35212    #[inline]
35213    fn from(node: Table) -> PreparableStmt {
35214        PreparableStmt::Table(node)
35215    }
35216}
35217impl From<Update> for PreparableStmt {
35218    #[inline]
35219    fn from(node: Update) -> PreparableStmt {
35220        PreparableStmt::Update(node)
35221    }
35222}
35223impl From<Values> for PreparableStmt {
35224    #[inline]
35225    fn from(node: Values) -> PreparableStmt {
35226        PreparableStmt::Values(node)
35227    }
35228}
35229impl AstNode for RefAction {
35230    #[inline]
35231    fn can_cast(kind: SyntaxKind) -> bool {
35232        matches!(
35233            kind,
35234            SyntaxKind::CASCADE
35235                | SyntaxKind::NO_ACTION
35236                | SyntaxKind::RESTRICT
35237                | SyntaxKind::SET_DEFAULT_COLUMNS
35238                | SyntaxKind::SET_NULL_COLUMNS
35239        )
35240    }
35241    #[inline]
35242    fn cast(syntax: SyntaxNode) -> Option<Self> {
35243        let res = match syntax.kind() {
35244            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
35245            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
35246            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
35247            SyntaxKind::SET_DEFAULT_COLUMNS => {
35248                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
35249            }
35250            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
35251            _ => {
35252                return None;
35253            }
35254        };
35255        Some(res)
35256    }
35257    #[inline]
35258    fn syntax(&self) -> &SyntaxNode {
35259        match self {
35260            RefAction::Cascade(it) => &it.syntax,
35261            RefAction::NoAction(it) => &it.syntax,
35262            RefAction::Restrict(it) => &it.syntax,
35263            RefAction::SetDefaultColumns(it) => &it.syntax,
35264            RefAction::SetNullColumns(it) => &it.syntax,
35265        }
35266    }
35267}
35268impl From<Cascade> for RefAction {
35269    #[inline]
35270    fn from(node: Cascade) -> RefAction {
35271        RefAction::Cascade(node)
35272    }
35273}
35274impl From<NoAction> for RefAction {
35275    #[inline]
35276    fn from(node: NoAction) -> RefAction {
35277        RefAction::NoAction(node)
35278    }
35279}
35280impl From<Restrict> for RefAction {
35281    #[inline]
35282    fn from(node: Restrict) -> RefAction {
35283        RefAction::Restrict(node)
35284    }
35285}
35286impl From<SetDefaultColumns> for RefAction {
35287    #[inline]
35288    fn from(node: SetDefaultColumns) -> RefAction {
35289        RefAction::SetDefaultColumns(node)
35290    }
35291}
35292impl From<SetNullColumns> for RefAction {
35293    #[inline]
35294    fn from(node: SetNullColumns) -> RefAction {
35295        RefAction::SetNullColumns(node)
35296    }
35297}
35298impl AstNode for RuleAction {
35299    #[inline]
35300    fn can_cast(kind: SyntaxKind) -> bool {
35301        matches!(kind, SyntaxKind::NOTHING | SyntaxKind::RULE_STMT_LIST)
35302    }
35303    #[inline]
35304    fn cast(syntax: SyntaxNode) -> Option<Self> {
35305        let res = match syntax.kind() {
35306            SyntaxKind::NOTHING => RuleAction::Nothing(Nothing { syntax }),
35307            SyntaxKind::RULE_STMT_LIST => RuleAction::RuleStmtList(RuleStmtList { syntax }),
35308            _ => {
35309                if let Some(result) = RuleStmt::cast(syntax) {
35310                    return Some(RuleAction::RuleStmt(result));
35311                }
35312                return None;
35313            }
35314        };
35315        Some(res)
35316    }
35317    #[inline]
35318    fn syntax(&self) -> &SyntaxNode {
35319        match self {
35320            RuleAction::Nothing(it) => &it.syntax,
35321            RuleAction::RuleStmtList(it) => &it.syntax,
35322            RuleAction::RuleStmt(it) => it.syntax(),
35323        }
35324    }
35325}
35326impl From<Nothing> for RuleAction {
35327    #[inline]
35328    fn from(node: Nothing) -> RuleAction {
35329        RuleAction::Nothing(node)
35330    }
35331}
35332impl From<RuleStmtList> for RuleAction {
35333    #[inline]
35334    fn from(node: RuleStmtList) -> RuleAction {
35335        RuleAction::RuleStmtList(node)
35336    }
35337}
35338impl AstNode for RuleStmt {
35339    #[inline]
35340    fn can_cast(kind: SyntaxKind) -> bool {
35341        matches!(
35342            kind,
35343            SyntaxKind::DELETE | SyntaxKind::INSERT | SyntaxKind::NOTIFY | SyntaxKind::UPDATE
35344        )
35345    }
35346    #[inline]
35347    fn cast(syntax: SyntaxNode) -> Option<Self> {
35348        let res = match syntax.kind() {
35349            SyntaxKind::DELETE => RuleStmt::Delete(Delete { syntax }),
35350            SyntaxKind::INSERT => RuleStmt::Insert(Insert { syntax }),
35351            SyntaxKind::NOTIFY => RuleStmt::Notify(Notify { syntax }),
35352            SyntaxKind::UPDATE => RuleStmt::Update(Update { syntax }),
35353            _ => {
35354                if let Some(result) = SelectVariant::cast(syntax) {
35355                    return Some(RuleStmt::SelectVariant(result));
35356                }
35357                return None;
35358            }
35359        };
35360        Some(res)
35361    }
35362    #[inline]
35363    fn syntax(&self) -> &SyntaxNode {
35364        match self {
35365            RuleStmt::Delete(it) => &it.syntax,
35366            RuleStmt::Insert(it) => &it.syntax,
35367            RuleStmt::Notify(it) => &it.syntax,
35368            RuleStmt::Update(it) => &it.syntax,
35369            RuleStmt::SelectVariant(it) => it.syntax(),
35370        }
35371    }
35372}
35373impl From<Delete> for RuleStmt {
35374    #[inline]
35375    fn from(node: Delete) -> RuleStmt {
35376        RuleStmt::Delete(node)
35377    }
35378}
35379impl From<Insert> for RuleStmt {
35380    #[inline]
35381    fn from(node: Insert) -> RuleStmt {
35382        RuleStmt::Insert(node)
35383    }
35384}
35385impl From<Notify> for RuleStmt {
35386    #[inline]
35387    fn from(node: Notify) -> RuleStmt {
35388        RuleStmt::Notify(node)
35389    }
35390}
35391impl From<Update> for RuleStmt {
35392    #[inline]
35393    fn from(node: Update) -> RuleStmt {
35394        RuleStmt::Update(node)
35395    }
35396}
35397impl AstNode for SchemaElement {
35398    #[inline]
35399    fn can_cast(kind: SyntaxKind) -> bool {
35400        matches!(
35401            kind,
35402            SyntaxKind::CREATE_INDEX
35403                | SyntaxKind::CREATE_SEQUENCE
35404                | SyntaxKind::CREATE_TABLE
35405                | SyntaxKind::CREATE_TRIGGER
35406                | SyntaxKind::CREATE_VIEW
35407                | SyntaxKind::GRANT
35408        )
35409    }
35410    #[inline]
35411    fn cast(syntax: SyntaxNode) -> Option<Self> {
35412        let res = match syntax.kind() {
35413            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
35414            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
35415            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
35416            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
35417            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
35418            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
35419            _ => {
35420                return None;
35421            }
35422        };
35423        Some(res)
35424    }
35425    #[inline]
35426    fn syntax(&self) -> &SyntaxNode {
35427        match self {
35428            SchemaElement::CreateIndex(it) => &it.syntax,
35429            SchemaElement::CreateSequence(it) => &it.syntax,
35430            SchemaElement::CreateTable(it) => &it.syntax,
35431            SchemaElement::CreateTrigger(it) => &it.syntax,
35432            SchemaElement::CreateView(it) => &it.syntax,
35433            SchemaElement::Grant(it) => &it.syntax,
35434        }
35435    }
35436}
35437impl From<CreateIndex> for SchemaElement {
35438    #[inline]
35439    fn from(node: CreateIndex) -> SchemaElement {
35440        SchemaElement::CreateIndex(node)
35441    }
35442}
35443impl From<CreateSequence> for SchemaElement {
35444    #[inline]
35445    fn from(node: CreateSequence) -> SchemaElement {
35446        SchemaElement::CreateSequence(node)
35447    }
35448}
35449impl From<CreateTable> for SchemaElement {
35450    #[inline]
35451    fn from(node: CreateTable) -> SchemaElement {
35452        SchemaElement::CreateTable(node)
35453    }
35454}
35455impl From<CreateTrigger> for SchemaElement {
35456    #[inline]
35457    fn from(node: CreateTrigger) -> SchemaElement {
35458        SchemaElement::CreateTrigger(node)
35459    }
35460}
35461impl From<CreateView> for SchemaElement {
35462    #[inline]
35463    fn from(node: CreateView) -> SchemaElement {
35464        SchemaElement::CreateView(node)
35465    }
35466}
35467impl From<Grant> for SchemaElement {
35468    #[inline]
35469    fn from(node: Grant) -> SchemaElement {
35470        SchemaElement::Grant(node)
35471    }
35472}
35473impl AstNode for SelectVariant {
35474    #[inline]
35475    fn can_cast(kind: SyntaxKind) -> bool {
35476        matches!(
35477            kind,
35478            SyntaxKind::COMPOUND_SELECT
35479                | SyntaxKind::PAREN_SELECT
35480                | SyntaxKind::SELECT
35481                | SyntaxKind::SELECT_INTO
35482                | SyntaxKind::TABLE
35483                | SyntaxKind::VALUES
35484        )
35485    }
35486    #[inline]
35487    fn cast(syntax: SyntaxNode) -> Option<Self> {
35488        let res = match syntax.kind() {
35489            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
35490            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
35491            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
35492            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
35493            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
35494            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
35495            _ => {
35496                return None;
35497            }
35498        };
35499        Some(res)
35500    }
35501    #[inline]
35502    fn syntax(&self) -> &SyntaxNode {
35503        match self {
35504            SelectVariant::CompoundSelect(it) => &it.syntax,
35505            SelectVariant::ParenSelect(it) => &it.syntax,
35506            SelectVariant::Select(it) => &it.syntax,
35507            SelectVariant::SelectInto(it) => &it.syntax,
35508            SelectVariant::Table(it) => &it.syntax,
35509            SelectVariant::Values(it) => &it.syntax,
35510        }
35511    }
35512}
35513impl From<CompoundSelect> for SelectVariant {
35514    #[inline]
35515    fn from(node: CompoundSelect) -> SelectVariant {
35516        SelectVariant::CompoundSelect(node)
35517    }
35518}
35519impl From<ParenSelect> for SelectVariant {
35520    #[inline]
35521    fn from(node: ParenSelect) -> SelectVariant {
35522        SelectVariant::ParenSelect(node)
35523    }
35524}
35525impl From<Select> for SelectVariant {
35526    #[inline]
35527    fn from(node: Select) -> SelectVariant {
35528        SelectVariant::Select(node)
35529    }
35530}
35531impl From<SelectInto> for SelectVariant {
35532    #[inline]
35533    fn from(node: SelectInto) -> SelectVariant {
35534        SelectVariant::SelectInto(node)
35535    }
35536}
35537impl From<Table> for SelectVariant {
35538    #[inline]
35539    fn from(node: Table) -> SelectVariant {
35540        SelectVariant::Table(node)
35541    }
35542}
35543impl From<Values> for SelectVariant {
35544    #[inline]
35545    fn from(node: Values) -> SelectVariant {
35546        SelectVariant::Values(node)
35547    }
35548}
35549impl AstNode for SetColumn {
35550    #[inline]
35551    fn can_cast(kind: SyntaxKind) -> bool {
35552        matches!(
35553            kind,
35554            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
35555        )
35556    }
35557    #[inline]
35558    fn cast(syntax: SyntaxNode) -> Option<Self> {
35559        let res = match syntax.kind() {
35560            SyntaxKind::SET_MULTIPLE_COLUMNS => {
35561                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
35562            }
35563            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
35564            _ => {
35565                return None;
35566            }
35567        };
35568        Some(res)
35569    }
35570    #[inline]
35571    fn syntax(&self) -> &SyntaxNode {
35572        match self {
35573            SetColumn::SetMultipleColumns(it) => &it.syntax,
35574            SetColumn::SetSingleColumn(it) => &it.syntax,
35575        }
35576    }
35577}
35578impl From<SetMultipleColumns> for SetColumn {
35579    #[inline]
35580    fn from(node: SetMultipleColumns) -> SetColumn {
35581        SetColumn::SetMultipleColumns(node)
35582    }
35583}
35584impl From<SetSingleColumn> for SetColumn {
35585    #[inline]
35586    fn from(node: SetSingleColumn) -> SetColumn {
35587        SetColumn::SetSingleColumn(node)
35588    }
35589}
35590impl AstNode for Stmt {
35591    #[inline]
35592    fn can_cast(kind: SyntaxKind) -> bool {
35593        matches!(
35594            kind,
35595            SyntaxKind::ALTER_AGGREGATE
35596                | SyntaxKind::ALTER_COLLATION
35597                | SyntaxKind::ALTER_CONVERSION
35598                | SyntaxKind::ALTER_DATABASE
35599                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
35600                | SyntaxKind::ALTER_DOMAIN
35601                | SyntaxKind::ALTER_EVENT_TRIGGER
35602                | SyntaxKind::ALTER_EXTENSION
35603                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
35604                | SyntaxKind::ALTER_FOREIGN_TABLE
35605                | SyntaxKind::ALTER_FUNCTION
35606                | SyntaxKind::ALTER_GROUP
35607                | SyntaxKind::ALTER_INDEX
35608                | SyntaxKind::ALTER_LANGUAGE
35609                | SyntaxKind::ALTER_LARGE_OBJECT
35610                | SyntaxKind::ALTER_MATERIALIZED_VIEW
35611                | SyntaxKind::ALTER_OPERATOR
35612                | SyntaxKind::ALTER_OPERATOR_CLASS
35613                | SyntaxKind::ALTER_OPERATOR_FAMILY
35614                | SyntaxKind::ALTER_POLICY
35615                | SyntaxKind::ALTER_PROCEDURE
35616                | SyntaxKind::ALTER_PROPERTY_GRAPH
35617                | SyntaxKind::ALTER_PUBLICATION
35618                | SyntaxKind::ALTER_ROLE
35619                | SyntaxKind::ALTER_ROUTINE
35620                | SyntaxKind::ALTER_RULE
35621                | SyntaxKind::ALTER_SCHEMA
35622                | SyntaxKind::ALTER_SEQUENCE
35623                | SyntaxKind::ALTER_SERVER
35624                | SyntaxKind::ALTER_STATISTICS
35625                | SyntaxKind::ALTER_SUBSCRIPTION
35626                | SyntaxKind::ALTER_SYSTEM
35627                | SyntaxKind::ALTER_TABLE
35628                | SyntaxKind::ALTER_TABLESPACE
35629                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
35630                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
35631                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
35632                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
35633                | SyntaxKind::ALTER_TRIGGER
35634                | SyntaxKind::ALTER_TYPE
35635                | SyntaxKind::ALTER_USER
35636                | SyntaxKind::ALTER_USER_MAPPING
35637                | SyntaxKind::ALTER_VIEW
35638                | SyntaxKind::ANALYZE
35639                | SyntaxKind::BEGIN
35640                | SyntaxKind::CALL
35641                | SyntaxKind::CHECKPOINT
35642                | SyntaxKind::CLOSE
35643                | SyntaxKind::CLUSTER
35644                | SyntaxKind::COMMENT_ON
35645                | SyntaxKind::COMMIT
35646                | SyntaxKind::COPY
35647                | SyntaxKind::CREATE_ACCESS_METHOD
35648                | SyntaxKind::CREATE_AGGREGATE
35649                | SyntaxKind::CREATE_CAST
35650                | SyntaxKind::CREATE_COLLATION
35651                | SyntaxKind::CREATE_CONVERSION
35652                | SyntaxKind::CREATE_DATABASE
35653                | SyntaxKind::CREATE_DOMAIN
35654                | SyntaxKind::CREATE_EVENT_TRIGGER
35655                | SyntaxKind::CREATE_EXTENSION
35656                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
35657                | SyntaxKind::CREATE_FOREIGN_TABLE
35658                | SyntaxKind::CREATE_FUNCTION
35659                | SyntaxKind::CREATE_GROUP
35660                | SyntaxKind::CREATE_INDEX
35661                | SyntaxKind::CREATE_LANGUAGE
35662                | SyntaxKind::CREATE_MATERIALIZED_VIEW
35663                | SyntaxKind::CREATE_OPERATOR
35664                | SyntaxKind::CREATE_OPERATOR_CLASS
35665                | SyntaxKind::CREATE_OPERATOR_FAMILY
35666                | SyntaxKind::CREATE_POLICY
35667                | SyntaxKind::CREATE_PROCEDURE
35668                | SyntaxKind::CREATE_PROPERTY_GRAPH
35669                | SyntaxKind::CREATE_PUBLICATION
35670                | SyntaxKind::CREATE_ROLE
35671                | SyntaxKind::CREATE_RULE
35672                | SyntaxKind::CREATE_SCHEMA
35673                | SyntaxKind::CREATE_SEQUENCE
35674                | SyntaxKind::CREATE_SERVER
35675                | SyntaxKind::CREATE_STATISTICS
35676                | SyntaxKind::CREATE_SUBSCRIPTION
35677                | SyntaxKind::CREATE_TABLE
35678                | SyntaxKind::CREATE_TABLE_AS
35679                | SyntaxKind::CREATE_TABLESPACE
35680                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
35681                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
35682                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
35683                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
35684                | SyntaxKind::CREATE_TRANSFORM
35685                | SyntaxKind::CREATE_TRIGGER
35686                | SyntaxKind::CREATE_TYPE
35687                | SyntaxKind::CREATE_USER
35688                | SyntaxKind::CREATE_USER_MAPPING
35689                | SyntaxKind::CREATE_VIEW
35690                | SyntaxKind::DEALLOCATE
35691                | SyntaxKind::DECLARE
35692                | SyntaxKind::DELETE
35693                | SyntaxKind::DISCARD
35694                | SyntaxKind::DO
35695                | SyntaxKind::DROP_ACCESS_METHOD
35696                | SyntaxKind::DROP_AGGREGATE
35697                | SyntaxKind::DROP_CAST
35698                | SyntaxKind::DROP_COLLATION
35699                | SyntaxKind::DROP_CONVERSION
35700                | SyntaxKind::DROP_DATABASE
35701                | SyntaxKind::DROP_DOMAIN
35702                | SyntaxKind::DROP_EVENT_TRIGGER
35703                | SyntaxKind::DROP_EXTENSION
35704                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
35705                | SyntaxKind::DROP_FOREIGN_TABLE
35706                | SyntaxKind::DROP_FUNCTION
35707                | SyntaxKind::DROP_GROUP
35708                | SyntaxKind::DROP_INDEX
35709                | SyntaxKind::DROP_LANGUAGE
35710                | SyntaxKind::DROP_MATERIALIZED_VIEW
35711                | SyntaxKind::DROP_OPERATOR
35712                | SyntaxKind::DROP_OPERATOR_CLASS
35713                | SyntaxKind::DROP_OPERATOR_FAMILY
35714                | SyntaxKind::DROP_OWNED
35715                | SyntaxKind::DROP_POLICY
35716                | SyntaxKind::DROP_PROCEDURE
35717                | SyntaxKind::DROP_PROPERTY_GRAPH
35718                | SyntaxKind::DROP_PUBLICATION
35719                | SyntaxKind::DROP_ROLE
35720                | SyntaxKind::DROP_ROUTINE
35721                | SyntaxKind::DROP_RULE
35722                | SyntaxKind::DROP_SCHEMA
35723                | SyntaxKind::DROP_SEQUENCE
35724                | SyntaxKind::DROP_SERVER
35725                | SyntaxKind::DROP_STATISTICS
35726                | SyntaxKind::DROP_SUBSCRIPTION
35727                | SyntaxKind::DROP_TABLE
35728                | SyntaxKind::DROP_TABLESPACE
35729                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
35730                | SyntaxKind::DROP_TEXT_SEARCH_DICT
35731                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
35732                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
35733                | SyntaxKind::DROP_TRANSFORM
35734                | SyntaxKind::DROP_TRIGGER
35735                | SyntaxKind::DROP_TYPE
35736                | SyntaxKind::DROP_USER
35737                | SyntaxKind::DROP_USER_MAPPING
35738                | SyntaxKind::DROP_VIEW
35739                | SyntaxKind::EMPTY_STMT
35740                | SyntaxKind::EXECUTE
35741                | SyntaxKind::EXPLAIN
35742                | SyntaxKind::FETCH
35743                | SyntaxKind::GRANT
35744                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
35745                | SyntaxKind::INSERT
35746                | SyntaxKind::LISTEN
35747                | SyntaxKind::LOAD
35748                | SyntaxKind::LOCK
35749                | SyntaxKind::MERGE
35750                | SyntaxKind::MOVE
35751                | SyntaxKind::NOTIFY
35752                | SyntaxKind::PAREN_SELECT
35753                | SyntaxKind::PREPARE
35754                | SyntaxKind::PREPARE_TRANSACTION
35755                | SyntaxKind::REASSIGN
35756                | SyntaxKind::REFRESH
35757                | SyntaxKind::REINDEX
35758                | SyntaxKind::RELEASE_SAVEPOINT
35759                | SyntaxKind::REPACK
35760                | SyntaxKind::RESET
35761                | SyntaxKind::RESET_SESSION_AUTH
35762                | SyntaxKind::REVOKE
35763                | SyntaxKind::ROLLBACK
35764                | SyntaxKind::SAVEPOINT
35765                | SyntaxKind::SECURITY_LABEL
35766                | SyntaxKind::SELECT
35767                | SyntaxKind::SELECT_INTO
35768                | SyntaxKind::SET
35769                | SyntaxKind::SET_CONSTRAINTS
35770                | SyntaxKind::SET_ROLE
35771                | SyntaxKind::SET_SESSION_AUTH
35772                | SyntaxKind::SET_TRANSACTION
35773                | SyntaxKind::SHOW
35774                | SyntaxKind::TABLE
35775                | SyntaxKind::TRUNCATE
35776                | SyntaxKind::UNLISTEN
35777                | SyntaxKind::UPDATE
35778                | SyntaxKind::VACUUM
35779                | SyntaxKind::VALUES
35780        )
35781    }
35782    #[inline]
35783    fn cast(syntax: SyntaxNode) -> Option<Self> {
35784        let res = match syntax.kind() {
35785            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
35786            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
35787            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
35788            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
35789            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
35790                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
35791            }
35792            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
35793            SyntaxKind::ALTER_EVENT_TRIGGER => {
35794                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
35795            }
35796            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
35797            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
35798                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
35799            }
35800            SyntaxKind::ALTER_FOREIGN_TABLE => {
35801                Stmt::AlterForeignTable(AlterForeignTable { syntax })
35802            }
35803            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
35804            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
35805            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
35806            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
35807            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
35808            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
35809                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
35810            }
35811            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
35812            SyntaxKind::ALTER_OPERATOR_CLASS => {
35813                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
35814            }
35815            SyntaxKind::ALTER_OPERATOR_FAMILY => {
35816                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
35817            }
35818            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
35819            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
35820            SyntaxKind::ALTER_PROPERTY_GRAPH => {
35821                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
35822            }
35823            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
35824            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
35825            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
35826            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
35827            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
35828            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
35829            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
35830            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
35831            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
35832            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
35833            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
35834            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
35835            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
35836                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
35837            }
35838            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
35839                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
35840            }
35841            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
35842                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
35843            }
35844            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
35845                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
35846            }
35847            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
35848            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
35849            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
35850            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
35851            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
35852            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
35853            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
35854            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
35855            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
35856            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
35857            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
35858            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
35859            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
35860            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
35861            SyntaxKind::CREATE_ACCESS_METHOD => {
35862                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
35863            }
35864            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
35865            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
35866            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
35867            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
35868            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
35869            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
35870            SyntaxKind::CREATE_EVENT_TRIGGER => {
35871                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
35872            }
35873            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
35874            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
35875                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
35876            }
35877            SyntaxKind::CREATE_FOREIGN_TABLE => {
35878                Stmt::CreateForeignTable(CreateForeignTable { syntax })
35879            }
35880            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
35881            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
35882            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
35883            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
35884            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
35885                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
35886            }
35887            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
35888            SyntaxKind::CREATE_OPERATOR_CLASS => {
35889                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
35890            }
35891            SyntaxKind::CREATE_OPERATOR_FAMILY => {
35892                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
35893            }
35894            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
35895            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
35896            SyntaxKind::CREATE_PROPERTY_GRAPH => {
35897                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
35898            }
35899            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
35900            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
35901            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
35902            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
35903            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
35904            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
35905            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
35906            SyntaxKind::CREATE_SUBSCRIPTION => {
35907                Stmt::CreateSubscription(CreateSubscription { syntax })
35908            }
35909            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
35910            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
35911            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
35912            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
35913                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
35914            }
35915            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
35916                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
35917            }
35918            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
35919                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
35920            }
35921            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
35922                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
35923            }
35924            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
35925            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
35926            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
35927            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
35928            SyntaxKind::CREATE_USER_MAPPING => {
35929                Stmt::CreateUserMapping(CreateUserMapping { syntax })
35930            }
35931            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
35932            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
35933            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
35934            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
35935            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
35936            SyntaxKind::DO => Stmt::Do(Do { syntax }),
35937            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
35938            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
35939            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
35940            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
35941            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
35942            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
35943            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
35944            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
35945            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
35946            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
35947                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
35948            }
35949            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
35950            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
35951            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
35952            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
35953            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
35954            SyntaxKind::DROP_MATERIALIZED_VIEW => {
35955                Stmt::DropMaterializedView(DropMaterializedView { syntax })
35956            }
35957            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
35958            SyntaxKind::DROP_OPERATOR_CLASS => {
35959                Stmt::DropOperatorClass(DropOperatorClass { syntax })
35960            }
35961            SyntaxKind::DROP_OPERATOR_FAMILY => {
35962                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
35963            }
35964            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
35965            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
35966            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
35967            SyntaxKind::DROP_PROPERTY_GRAPH => {
35968                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
35969            }
35970            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
35971            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
35972            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
35973            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
35974            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
35975            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
35976            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
35977            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
35978            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
35979            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
35980            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
35981            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
35982                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
35983            }
35984            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
35985                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
35986            }
35987            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
35988                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
35989            }
35990            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
35991                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
35992            }
35993            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
35994            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
35995            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
35996            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
35997            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
35998            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
35999            SyntaxKind::EMPTY_STMT => Stmt::EmptyStmt(EmptyStmt { syntax }),
36000            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
36001            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
36002            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
36003            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
36004            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
36005                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
36006            }
36007            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
36008            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
36009            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
36010            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
36011            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
36012            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
36013            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
36014            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
36015            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
36016            SyntaxKind::PREPARE_TRANSACTION => {
36017                Stmt::PrepareTransaction(PrepareTransaction { syntax })
36018            }
36019            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
36020            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
36021            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
36022            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
36023            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
36024            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
36025            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
36026            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
36027            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
36028            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
36029            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
36030            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
36031            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
36032            SyntaxKind::SET => Stmt::Set(Set { syntax }),
36033            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
36034            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
36035            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
36036            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
36037            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
36038            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
36039            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
36040            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
36041            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
36042            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
36043            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
36044            _ => {
36045                return None;
36046            }
36047        };
36048        Some(res)
36049    }
36050    #[inline]
36051    fn syntax(&self) -> &SyntaxNode {
36052        match self {
36053            Stmt::AlterAggregate(it) => &it.syntax,
36054            Stmt::AlterCollation(it) => &it.syntax,
36055            Stmt::AlterConversion(it) => &it.syntax,
36056            Stmt::AlterDatabase(it) => &it.syntax,
36057            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
36058            Stmt::AlterDomain(it) => &it.syntax,
36059            Stmt::AlterEventTrigger(it) => &it.syntax,
36060            Stmt::AlterExtension(it) => &it.syntax,
36061            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
36062            Stmt::AlterForeignTable(it) => &it.syntax,
36063            Stmt::AlterFunction(it) => &it.syntax,
36064            Stmt::AlterGroup(it) => &it.syntax,
36065            Stmt::AlterIndex(it) => &it.syntax,
36066            Stmt::AlterLanguage(it) => &it.syntax,
36067            Stmt::AlterLargeObject(it) => &it.syntax,
36068            Stmt::AlterMaterializedView(it) => &it.syntax,
36069            Stmt::AlterOperator(it) => &it.syntax,
36070            Stmt::AlterOperatorClass(it) => &it.syntax,
36071            Stmt::AlterOperatorFamily(it) => &it.syntax,
36072            Stmt::AlterPolicy(it) => &it.syntax,
36073            Stmt::AlterProcedure(it) => &it.syntax,
36074            Stmt::AlterPropertyGraph(it) => &it.syntax,
36075            Stmt::AlterPublication(it) => &it.syntax,
36076            Stmt::AlterRole(it) => &it.syntax,
36077            Stmt::AlterRoutine(it) => &it.syntax,
36078            Stmt::AlterRule(it) => &it.syntax,
36079            Stmt::AlterSchema(it) => &it.syntax,
36080            Stmt::AlterSequence(it) => &it.syntax,
36081            Stmt::AlterServer(it) => &it.syntax,
36082            Stmt::AlterStatistics(it) => &it.syntax,
36083            Stmt::AlterSubscription(it) => &it.syntax,
36084            Stmt::AlterSystem(it) => &it.syntax,
36085            Stmt::AlterTable(it) => &it.syntax,
36086            Stmt::AlterTablespace(it) => &it.syntax,
36087            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
36088            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
36089            Stmt::AlterTextSearchParser(it) => &it.syntax,
36090            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
36091            Stmt::AlterTrigger(it) => &it.syntax,
36092            Stmt::AlterType(it) => &it.syntax,
36093            Stmt::AlterUser(it) => &it.syntax,
36094            Stmt::AlterUserMapping(it) => &it.syntax,
36095            Stmt::AlterView(it) => &it.syntax,
36096            Stmt::Analyze(it) => &it.syntax,
36097            Stmt::Begin(it) => &it.syntax,
36098            Stmt::Call(it) => &it.syntax,
36099            Stmt::Checkpoint(it) => &it.syntax,
36100            Stmt::Close(it) => &it.syntax,
36101            Stmt::Cluster(it) => &it.syntax,
36102            Stmt::CommentOn(it) => &it.syntax,
36103            Stmt::Commit(it) => &it.syntax,
36104            Stmt::Copy(it) => &it.syntax,
36105            Stmt::CreateAccessMethod(it) => &it.syntax,
36106            Stmt::CreateAggregate(it) => &it.syntax,
36107            Stmt::CreateCast(it) => &it.syntax,
36108            Stmt::CreateCollation(it) => &it.syntax,
36109            Stmt::CreateConversion(it) => &it.syntax,
36110            Stmt::CreateDatabase(it) => &it.syntax,
36111            Stmt::CreateDomain(it) => &it.syntax,
36112            Stmt::CreateEventTrigger(it) => &it.syntax,
36113            Stmt::CreateExtension(it) => &it.syntax,
36114            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
36115            Stmt::CreateForeignTable(it) => &it.syntax,
36116            Stmt::CreateFunction(it) => &it.syntax,
36117            Stmt::CreateGroup(it) => &it.syntax,
36118            Stmt::CreateIndex(it) => &it.syntax,
36119            Stmt::CreateLanguage(it) => &it.syntax,
36120            Stmt::CreateMaterializedView(it) => &it.syntax,
36121            Stmt::CreateOperator(it) => &it.syntax,
36122            Stmt::CreateOperatorClass(it) => &it.syntax,
36123            Stmt::CreateOperatorFamily(it) => &it.syntax,
36124            Stmt::CreatePolicy(it) => &it.syntax,
36125            Stmt::CreateProcedure(it) => &it.syntax,
36126            Stmt::CreatePropertyGraph(it) => &it.syntax,
36127            Stmt::CreatePublication(it) => &it.syntax,
36128            Stmt::CreateRole(it) => &it.syntax,
36129            Stmt::CreateRule(it) => &it.syntax,
36130            Stmt::CreateSchema(it) => &it.syntax,
36131            Stmt::CreateSequence(it) => &it.syntax,
36132            Stmt::CreateServer(it) => &it.syntax,
36133            Stmt::CreateStatistics(it) => &it.syntax,
36134            Stmt::CreateSubscription(it) => &it.syntax,
36135            Stmt::CreateTable(it) => &it.syntax,
36136            Stmt::CreateTableAs(it) => &it.syntax,
36137            Stmt::CreateTablespace(it) => &it.syntax,
36138            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
36139            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
36140            Stmt::CreateTextSearchParser(it) => &it.syntax,
36141            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
36142            Stmt::CreateTransform(it) => &it.syntax,
36143            Stmt::CreateTrigger(it) => &it.syntax,
36144            Stmt::CreateType(it) => &it.syntax,
36145            Stmt::CreateUser(it) => &it.syntax,
36146            Stmt::CreateUserMapping(it) => &it.syntax,
36147            Stmt::CreateView(it) => &it.syntax,
36148            Stmt::Deallocate(it) => &it.syntax,
36149            Stmt::Declare(it) => &it.syntax,
36150            Stmt::Delete(it) => &it.syntax,
36151            Stmt::Discard(it) => &it.syntax,
36152            Stmt::Do(it) => &it.syntax,
36153            Stmt::DropAccessMethod(it) => &it.syntax,
36154            Stmt::DropAggregate(it) => &it.syntax,
36155            Stmt::DropCast(it) => &it.syntax,
36156            Stmt::DropCollation(it) => &it.syntax,
36157            Stmt::DropConversion(it) => &it.syntax,
36158            Stmt::DropDatabase(it) => &it.syntax,
36159            Stmt::DropDomain(it) => &it.syntax,
36160            Stmt::DropEventTrigger(it) => &it.syntax,
36161            Stmt::DropExtension(it) => &it.syntax,
36162            Stmt::DropForeignDataWrapper(it) => &it.syntax,
36163            Stmt::DropForeignTable(it) => &it.syntax,
36164            Stmt::DropFunction(it) => &it.syntax,
36165            Stmt::DropGroup(it) => &it.syntax,
36166            Stmt::DropIndex(it) => &it.syntax,
36167            Stmt::DropLanguage(it) => &it.syntax,
36168            Stmt::DropMaterializedView(it) => &it.syntax,
36169            Stmt::DropOperator(it) => &it.syntax,
36170            Stmt::DropOperatorClass(it) => &it.syntax,
36171            Stmt::DropOperatorFamily(it) => &it.syntax,
36172            Stmt::DropOwned(it) => &it.syntax,
36173            Stmt::DropPolicy(it) => &it.syntax,
36174            Stmt::DropProcedure(it) => &it.syntax,
36175            Stmt::DropPropertyGraph(it) => &it.syntax,
36176            Stmt::DropPublication(it) => &it.syntax,
36177            Stmt::DropRole(it) => &it.syntax,
36178            Stmt::DropRoutine(it) => &it.syntax,
36179            Stmt::DropRule(it) => &it.syntax,
36180            Stmt::DropSchema(it) => &it.syntax,
36181            Stmt::DropSequence(it) => &it.syntax,
36182            Stmt::DropServer(it) => &it.syntax,
36183            Stmt::DropStatistics(it) => &it.syntax,
36184            Stmt::DropSubscription(it) => &it.syntax,
36185            Stmt::DropTable(it) => &it.syntax,
36186            Stmt::DropTablespace(it) => &it.syntax,
36187            Stmt::DropTextSearchConfig(it) => &it.syntax,
36188            Stmt::DropTextSearchDict(it) => &it.syntax,
36189            Stmt::DropTextSearchParser(it) => &it.syntax,
36190            Stmt::DropTextSearchTemplate(it) => &it.syntax,
36191            Stmt::DropTransform(it) => &it.syntax,
36192            Stmt::DropTrigger(it) => &it.syntax,
36193            Stmt::DropType(it) => &it.syntax,
36194            Stmt::DropUser(it) => &it.syntax,
36195            Stmt::DropUserMapping(it) => &it.syntax,
36196            Stmt::DropView(it) => &it.syntax,
36197            Stmt::EmptyStmt(it) => &it.syntax,
36198            Stmt::Execute(it) => &it.syntax,
36199            Stmt::Explain(it) => &it.syntax,
36200            Stmt::Fetch(it) => &it.syntax,
36201            Stmt::Grant(it) => &it.syntax,
36202            Stmt::ImportForeignSchema(it) => &it.syntax,
36203            Stmt::Insert(it) => &it.syntax,
36204            Stmt::Listen(it) => &it.syntax,
36205            Stmt::Load(it) => &it.syntax,
36206            Stmt::Lock(it) => &it.syntax,
36207            Stmt::Merge(it) => &it.syntax,
36208            Stmt::Move(it) => &it.syntax,
36209            Stmt::Notify(it) => &it.syntax,
36210            Stmt::ParenSelect(it) => &it.syntax,
36211            Stmt::Prepare(it) => &it.syntax,
36212            Stmt::PrepareTransaction(it) => &it.syntax,
36213            Stmt::Reassign(it) => &it.syntax,
36214            Stmt::Refresh(it) => &it.syntax,
36215            Stmt::Reindex(it) => &it.syntax,
36216            Stmt::ReleaseSavepoint(it) => &it.syntax,
36217            Stmt::Repack(it) => &it.syntax,
36218            Stmt::Reset(it) => &it.syntax,
36219            Stmt::ResetSessionAuth(it) => &it.syntax,
36220            Stmt::Revoke(it) => &it.syntax,
36221            Stmt::Rollback(it) => &it.syntax,
36222            Stmt::Savepoint(it) => &it.syntax,
36223            Stmt::SecurityLabel(it) => &it.syntax,
36224            Stmt::Select(it) => &it.syntax,
36225            Stmt::SelectInto(it) => &it.syntax,
36226            Stmt::Set(it) => &it.syntax,
36227            Stmt::SetConstraints(it) => &it.syntax,
36228            Stmt::SetRole(it) => &it.syntax,
36229            Stmt::SetSessionAuth(it) => &it.syntax,
36230            Stmt::SetTransaction(it) => &it.syntax,
36231            Stmt::Show(it) => &it.syntax,
36232            Stmt::Table(it) => &it.syntax,
36233            Stmt::Truncate(it) => &it.syntax,
36234            Stmt::Unlisten(it) => &it.syntax,
36235            Stmt::Update(it) => &it.syntax,
36236            Stmt::Vacuum(it) => &it.syntax,
36237            Stmt::Values(it) => &it.syntax,
36238        }
36239    }
36240}
36241impl From<AlterAggregate> for Stmt {
36242    #[inline]
36243    fn from(node: AlterAggregate) -> Stmt {
36244        Stmt::AlterAggregate(node)
36245    }
36246}
36247impl From<AlterCollation> for Stmt {
36248    #[inline]
36249    fn from(node: AlterCollation) -> Stmt {
36250        Stmt::AlterCollation(node)
36251    }
36252}
36253impl From<AlterConversion> for Stmt {
36254    #[inline]
36255    fn from(node: AlterConversion) -> Stmt {
36256        Stmt::AlterConversion(node)
36257    }
36258}
36259impl From<AlterDatabase> for Stmt {
36260    #[inline]
36261    fn from(node: AlterDatabase) -> Stmt {
36262        Stmt::AlterDatabase(node)
36263    }
36264}
36265impl From<AlterDefaultPrivileges> for Stmt {
36266    #[inline]
36267    fn from(node: AlterDefaultPrivileges) -> Stmt {
36268        Stmt::AlterDefaultPrivileges(node)
36269    }
36270}
36271impl From<AlterDomain> for Stmt {
36272    #[inline]
36273    fn from(node: AlterDomain) -> Stmt {
36274        Stmt::AlterDomain(node)
36275    }
36276}
36277impl From<AlterEventTrigger> for Stmt {
36278    #[inline]
36279    fn from(node: AlterEventTrigger) -> Stmt {
36280        Stmt::AlterEventTrigger(node)
36281    }
36282}
36283impl From<AlterExtension> for Stmt {
36284    #[inline]
36285    fn from(node: AlterExtension) -> Stmt {
36286        Stmt::AlterExtension(node)
36287    }
36288}
36289impl From<AlterForeignDataWrapper> for Stmt {
36290    #[inline]
36291    fn from(node: AlterForeignDataWrapper) -> Stmt {
36292        Stmt::AlterForeignDataWrapper(node)
36293    }
36294}
36295impl From<AlterForeignTable> for Stmt {
36296    #[inline]
36297    fn from(node: AlterForeignTable) -> Stmt {
36298        Stmt::AlterForeignTable(node)
36299    }
36300}
36301impl From<AlterFunction> for Stmt {
36302    #[inline]
36303    fn from(node: AlterFunction) -> Stmt {
36304        Stmt::AlterFunction(node)
36305    }
36306}
36307impl From<AlterGroup> for Stmt {
36308    #[inline]
36309    fn from(node: AlterGroup) -> Stmt {
36310        Stmt::AlterGroup(node)
36311    }
36312}
36313impl From<AlterIndex> for Stmt {
36314    #[inline]
36315    fn from(node: AlterIndex) -> Stmt {
36316        Stmt::AlterIndex(node)
36317    }
36318}
36319impl From<AlterLanguage> for Stmt {
36320    #[inline]
36321    fn from(node: AlterLanguage) -> Stmt {
36322        Stmt::AlterLanguage(node)
36323    }
36324}
36325impl From<AlterLargeObject> for Stmt {
36326    #[inline]
36327    fn from(node: AlterLargeObject) -> Stmt {
36328        Stmt::AlterLargeObject(node)
36329    }
36330}
36331impl From<AlterMaterializedView> for Stmt {
36332    #[inline]
36333    fn from(node: AlterMaterializedView) -> Stmt {
36334        Stmt::AlterMaterializedView(node)
36335    }
36336}
36337impl From<AlterOperator> for Stmt {
36338    #[inline]
36339    fn from(node: AlterOperator) -> Stmt {
36340        Stmt::AlterOperator(node)
36341    }
36342}
36343impl From<AlterOperatorClass> for Stmt {
36344    #[inline]
36345    fn from(node: AlterOperatorClass) -> Stmt {
36346        Stmt::AlterOperatorClass(node)
36347    }
36348}
36349impl From<AlterOperatorFamily> for Stmt {
36350    #[inline]
36351    fn from(node: AlterOperatorFamily) -> Stmt {
36352        Stmt::AlterOperatorFamily(node)
36353    }
36354}
36355impl From<AlterPolicy> for Stmt {
36356    #[inline]
36357    fn from(node: AlterPolicy) -> Stmt {
36358        Stmt::AlterPolicy(node)
36359    }
36360}
36361impl From<AlterProcedure> for Stmt {
36362    #[inline]
36363    fn from(node: AlterProcedure) -> Stmt {
36364        Stmt::AlterProcedure(node)
36365    }
36366}
36367impl From<AlterPropertyGraph> for Stmt {
36368    #[inline]
36369    fn from(node: AlterPropertyGraph) -> Stmt {
36370        Stmt::AlterPropertyGraph(node)
36371    }
36372}
36373impl From<AlterPublication> for Stmt {
36374    #[inline]
36375    fn from(node: AlterPublication) -> Stmt {
36376        Stmt::AlterPublication(node)
36377    }
36378}
36379impl From<AlterRole> for Stmt {
36380    #[inline]
36381    fn from(node: AlterRole) -> Stmt {
36382        Stmt::AlterRole(node)
36383    }
36384}
36385impl From<AlterRoutine> for Stmt {
36386    #[inline]
36387    fn from(node: AlterRoutine) -> Stmt {
36388        Stmt::AlterRoutine(node)
36389    }
36390}
36391impl From<AlterRule> for Stmt {
36392    #[inline]
36393    fn from(node: AlterRule) -> Stmt {
36394        Stmt::AlterRule(node)
36395    }
36396}
36397impl From<AlterSchema> for Stmt {
36398    #[inline]
36399    fn from(node: AlterSchema) -> Stmt {
36400        Stmt::AlterSchema(node)
36401    }
36402}
36403impl From<AlterSequence> for Stmt {
36404    #[inline]
36405    fn from(node: AlterSequence) -> Stmt {
36406        Stmt::AlterSequence(node)
36407    }
36408}
36409impl From<AlterServer> for Stmt {
36410    #[inline]
36411    fn from(node: AlterServer) -> Stmt {
36412        Stmt::AlterServer(node)
36413    }
36414}
36415impl From<AlterStatistics> for Stmt {
36416    #[inline]
36417    fn from(node: AlterStatistics) -> Stmt {
36418        Stmt::AlterStatistics(node)
36419    }
36420}
36421impl From<AlterSubscription> for Stmt {
36422    #[inline]
36423    fn from(node: AlterSubscription) -> Stmt {
36424        Stmt::AlterSubscription(node)
36425    }
36426}
36427impl From<AlterSystem> for Stmt {
36428    #[inline]
36429    fn from(node: AlterSystem) -> Stmt {
36430        Stmt::AlterSystem(node)
36431    }
36432}
36433impl From<AlterTable> for Stmt {
36434    #[inline]
36435    fn from(node: AlterTable) -> Stmt {
36436        Stmt::AlterTable(node)
36437    }
36438}
36439impl From<AlterTablespace> for Stmt {
36440    #[inline]
36441    fn from(node: AlterTablespace) -> Stmt {
36442        Stmt::AlterTablespace(node)
36443    }
36444}
36445impl From<AlterTextSearchConfiguration> for Stmt {
36446    #[inline]
36447    fn from(node: AlterTextSearchConfiguration) -> Stmt {
36448        Stmt::AlterTextSearchConfiguration(node)
36449    }
36450}
36451impl From<AlterTextSearchDictionary> for Stmt {
36452    #[inline]
36453    fn from(node: AlterTextSearchDictionary) -> Stmt {
36454        Stmt::AlterTextSearchDictionary(node)
36455    }
36456}
36457impl From<AlterTextSearchParser> for Stmt {
36458    #[inline]
36459    fn from(node: AlterTextSearchParser) -> Stmt {
36460        Stmt::AlterTextSearchParser(node)
36461    }
36462}
36463impl From<AlterTextSearchTemplate> for Stmt {
36464    #[inline]
36465    fn from(node: AlterTextSearchTemplate) -> Stmt {
36466        Stmt::AlterTextSearchTemplate(node)
36467    }
36468}
36469impl From<AlterTrigger> for Stmt {
36470    #[inline]
36471    fn from(node: AlterTrigger) -> Stmt {
36472        Stmt::AlterTrigger(node)
36473    }
36474}
36475impl From<AlterType> for Stmt {
36476    #[inline]
36477    fn from(node: AlterType) -> Stmt {
36478        Stmt::AlterType(node)
36479    }
36480}
36481impl From<AlterUser> for Stmt {
36482    #[inline]
36483    fn from(node: AlterUser) -> Stmt {
36484        Stmt::AlterUser(node)
36485    }
36486}
36487impl From<AlterUserMapping> for Stmt {
36488    #[inline]
36489    fn from(node: AlterUserMapping) -> Stmt {
36490        Stmt::AlterUserMapping(node)
36491    }
36492}
36493impl From<AlterView> for Stmt {
36494    #[inline]
36495    fn from(node: AlterView) -> Stmt {
36496        Stmt::AlterView(node)
36497    }
36498}
36499impl From<Analyze> for Stmt {
36500    #[inline]
36501    fn from(node: Analyze) -> Stmt {
36502        Stmt::Analyze(node)
36503    }
36504}
36505impl From<Begin> for Stmt {
36506    #[inline]
36507    fn from(node: Begin) -> Stmt {
36508        Stmt::Begin(node)
36509    }
36510}
36511impl From<Call> for Stmt {
36512    #[inline]
36513    fn from(node: Call) -> Stmt {
36514        Stmt::Call(node)
36515    }
36516}
36517impl From<Checkpoint> for Stmt {
36518    #[inline]
36519    fn from(node: Checkpoint) -> Stmt {
36520        Stmt::Checkpoint(node)
36521    }
36522}
36523impl From<Close> for Stmt {
36524    #[inline]
36525    fn from(node: Close) -> Stmt {
36526        Stmt::Close(node)
36527    }
36528}
36529impl From<Cluster> for Stmt {
36530    #[inline]
36531    fn from(node: Cluster) -> Stmt {
36532        Stmt::Cluster(node)
36533    }
36534}
36535impl From<CommentOn> for Stmt {
36536    #[inline]
36537    fn from(node: CommentOn) -> Stmt {
36538        Stmt::CommentOn(node)
36539    }
36540}
36541impl From<Commit> for Stmt {
36542    #[inline]
36543    fn from(node: Commit) -> Stmt {
36544        Stmt::Commit(node)
36545    }
36546}
36547impl From<Copy> for Stmt {
36548    #[inline]
36549    fn from(node: Copy) -> Stmt {
36550        Stmt::Copy(node)
36551    }
36552}
36553impl From<CreateAccessMethod> for Stmt {
36554    #[inline]
36555    fn from(node: CreateAccessMethod) -> Stmt {
36556        Stmt::CreateAccessMethod(node)
36557    }
36558}
36559impl From<CreateAggregate> for Stmt {
36560    #[inline]
36561    fn from(node: CreateAggregate) -> Stmt {
36562        Stmt::CreateAggregate(node)
36563    }
36564}
36565impl From<CreateCast> for Stmt {
36566    #[inline]
36567    fn from(node: CreateCast) -> Stmt {
36568        Stmt::CreateCast(node)
36569    }
36570}
36571impl From<CreateCollation> for Stmt {
36572    #[inline]
36573    fn from(node: CreateCollation) -> Stmt {
36574        Stmt::CreateCollation(node)
36575    }
36576}
36577impl From<CreateConversion> for Stmt {
36578    #[inline]
36579    fn from(node: CreateConversion) -> Stmt {
36580        Stmt::CreateConversion(node)
36581    }
36582}
36583impl From<CreateDatabase> for Stmt {
36584    #[inline]
36585    fn from(node: CreateDatabase) -> Stmt {
36586        Stmt::CreateDatabase(node)
36587    }
36588}
36589impl From<CreateDomain> for Stmt {
36590    #[inline]
36591    fn from(node: CreateDomain) -> Stmt {
36592        Stmt::CreateDomain(node)
36593    }
36594}
36595impl From<CreateEventTrigger> for Stmt {
36596    #[inline]
36597    fn from(node: CreateEventTrigger) -> Stmt {
36598        Stmt::CreateEventTrigger(node)
36599    }
36600}
36601impl From<CreateExtension> for Stmt {
36602    #[inline]
36603    fn from(node: CreateExtension) -> Stmt {
36604        Stmt::CreateExtension(node)
36605    }
36606}
36607impl From<CreateForeignDataWrapper> for Stmt {
36608    #[inline]
36609    fn from(node: CreateForeignDataWrapper) -> Stmt {
36610        Stmt::CreateForeignDataWrapper(node)
36611    }
36612}
36613impl From<CreateForeignTable> for Stmt {
36614    #[inline]
36615    fn from(node: CreateForeignTable) -> Stmt {
36616        Stmt::CreateForeignTable(node)
36617    }
36618}
36619impl From<CreateFunction> for Stmt {
36620    #[inline]
36621    fn from(node: CreateFunction) -> Stmt {
36622        Stmt::CreateFunction(node)
36623    }
36624}
36625impl From<CreateGroup> for Stmt {
36626    #[inline]
36627    fn from(node: CreateGroup) -> Stmt {
36628        Stmt::CreateGroup(node)
36629    }
36630}
36631impl From<CreateIndex> for Stmt {
36632    #[inline]
36633    fn from(node: CreateIndex) -> Stmt {
36634        Stmt::CreateIndex(node)
36635    }
36636}
36637impl From<CreateLanguage> for Stmt {
36638    #[inline]
36639    fn from(node: CreateLanguage) -> Stmt {
36640        Stmt::CreateLanguage(node)
36641    }
36642}
36643impl From<CreateMaterializedView> for Stmt {
36644    #[inline]
36645    fn from(node: CreateMaterializedView) -> Stmt {
36646        Stmt::CreateMaterializedView(node)
36647    }
36648}
36649impl From<CreateOperator> for Stmt {
36650    #[inline]
36651    fn from(node: CreateOperator) -> Stmt {
36652        Stmt::CreateOperator(node)
36653    }
36654}
36655impl From<CreateOperatorClass> for Stmt {
36656    #[inline]
36657    fn from(node: CreateOperatorClass) -> Stmt {
36658        Stmt::CreateOperatorClass(node)
36659    }
36660}
36661impl From<CreateOperatorFamily> for Stmt {
36662    #[inline]
36663    fn from(node: CreateOperatorFamily) -> Stmt {
36664        Stmt::CreateOperatorFamily(node)
36665    }
36666}
36667impl From<CreatePolicy> for Stmt {
36668    #[inline]
36669    fn from(node: CreatePolicy) -> Stmt {
36670        Stmt::CreatePolicy(node)
36671    }
36672}
36673impl From<CreateProcedure> for Stmt {
36674    #[inline]
36675    fn from(node: CreateProcedure) -> Stmt {
36676        Stmt::CreateProcedure(node)
36677    }
36678}
36679impl From<CreatePropertyGraph> for Stmt {
36680    #[inline]
36681    fn from(node: CreatePropertyGraph) -> Stmt {
36682        Stmt::CreatePropertyGraph(node)
36683    }
36684}
36685impl From<CreatePublication> for Stmt {
36686    #[inline]
36687    fn from(node: CreatePublication) -> Stmt {
36688        Stmt::CreatePublication(node)
36689    }
36690}
36691impl From<CreateRole> for Stmt {
36692    #[inline]
36693    fn from(node: CreateRole) -> Stmt {
36694        Stmt::CreateRole(node)
36695    }
36696}
36697impl From<CreateRule> for Stmt {
36698    #[inline]
36699    fn from(node: CreateRule) -> Stmt {
36700        Stmt::CreateRule(node)
36701    }
36702}
36703impl From<CreateSchema> for Stmt {
36704    #[inline]
36705    fn from(node: CreateSchema) -> Stmt {
36706        Stmt::CreateSchema(node)
36707    }
36708}
36709impl From<CreateSequence> for Stmt {
36710    #[inline]
36711    fn from(node: CreateSequence) -> Stmt {
36712        Stmt::CreateSequence(node)
36713    }
36714}
36715impl From<CreateServer> for Stmt {
36716    #[inline]
36717    fn from(node: CreateServer) -> Stmt {
36718        Stmt::CreateServer(node)
36719    }
36720}
36721impl From<CreateStatistics> for Stmt {
36722    #[inline]
36723    fn from(node: CreateStatistics) -> Stmt {
36724        Stmt::CreateStatistics(node)
36725    }
36726}
36727impl From<CreateSubscription> for Stmt {
36728    #[inline]
36729    fn from(node: CreateSubscription) -> Stmt {
36730        Stmt::CreateSubscription(node)
36731    }
36732}
36733impl From<CreateTable> for Stmt {
36734    #[inline]
36735    fn from(node: CreateTable) -> Stmt {
36736        Stmt::CreateTable(node)
36737    }
36738}
36739impl From<CreateTableAs> for Stmt {
36740    #[inline]
36741    fn from(node: CreateTableAs) -> Stmt {
36742        Stmt::CreateTableAs(node)
36743    }
36744}
36745impl From<CreateTablespace> for Stmt {
36746    #[inline]
36747    fn from(node: CreateTablespace) -> Stmt {
36748        Stmt::CreateTablespace(node)
36749    }
36750}
36751impl From<CreateTextSearchConfiguration> for Stmt {
36752    #[inline]
36753    fn from(node: CreateTextSearchConfiguration) -> Stmt {
36754        Stmt::CreateTextSearchConfiguration(node)
36755    }
36756}
36757impl From<CreateTextSearchDictionary> for Stmt {
36758    #[inline]
36759    fn from(node: CreateTextSearchDictionary) -> Stmt {
36760        Stmt::CreateTextSearchDictionary(node)
36761    }
36762}
36763impl From<CreateTextSearchParser> for Stmt {
36764    #[inline]
36765    fn from(node: CreateTextSearchParser) -> Stmt {
36766        Stmt::CreateTextSearchParser(node)
36767    }
36768}
36769impl From<CreateTextSearchTemplate> for Stmt {
36770    #[inline]
36771    fn from(node: CreateTextSearchTemplate) -> Stmt {
36772        Stmt::CreateTextSearchTemplate(node)
36773    }
36774}
36775impl From<CreateTransform> for Stmt {
36776    #[inline]
36777    fn from(node: CreateTransform) -> Stmt {
36778        Stmt::CreateTransform(node)
36779    }
36780}
36781impl From<CreateTrigger> for Stmt {
36782    #[inline]
36783    fn from(node: CreateTrigger) -> Stmt {
36784        Stmt::CreateTrigger(node)
36785    }
36786}
36787impl From<CreateType> for Stmt {
36788    #[inline]
36789    fn from(node: CreateType) -> Stmt {
36790        Stmt::CreateType(node)
36791    }
36792}
36793impl From<CreateUser> for Stmt {
36794    #[inline]
36795    fn from(node: CreateUser) -> Stmt {
36796        Stmt::CreateUser(node)
36797    }
36798}
36799impl From<CreateUserMapping> for Stmt {
36800    #[inline]
36801    fn from(node: CreateUserMapping) -> Stmt {
36802        Stmt::CreateUserMapping(node)
36803    }
36804}
36805impl From<CreateView> for Stmt {
36806    #[inline]
36807    fn from(node: CreateView) -> Stmt {
36808        Stmt::CreateView(node)
36809    }
36810}
36811impl From<Deallocate> for Stmt {
36812    #[inline]
36813    fn from(node: Deallocate) -> Stmt {
36814        Stmt::Deallocate(node)
36815    }
36816}
36817impl From<Declare> for Stmt {
36818    #[inline]
36819    fn from(node: Declare) -> Stmt {
36820        Stmt::Declare(node)
36821    }
36822}
36823impl From<Delete> for Stmt {
36824    #[inline]
36825    fn from(node: Delete) -> Stmt {
36826        Stmt::Delete(node)
36827    }
36828}
36829impl From<Discard> for Stmt {
36830    #[inline]
36831    fn from(node: Discard) -> Stmt {
36832        Stmt::Discard(node)
36833    }
36834}
36835impl From<Do> for Stmt {
36836    #[inline]
36837    fn from(node: Do) -> Stmt {
36838        Stmt::Do(node)
36839    }
36840}
36841impl From<DropAccessMethod> for Stmt {
36842    #[inline]
36843    fn from(node: DropAccessMethod) -> Stmt {
36844        Stmt::DropAccessMethod(node)
36845    }
36846}
36847impl From<DropAggregate> for Stmt {
36848    #[inline]
36849    fn from(node: DropAggregate) -> Stmt {
36850        Stmt::DropAggregate(node)
36851    }
36852}
36853impl From<DropCast> for Stmt {
36854    #[inline]
36855    fn from(node: DropCast) -> Stmt {
36856        Stmt::DropCast(node)
36857    }
36858}
36859impl From<DropCollation> for Stmt {
36860    #[inline]
36861    fn from(node: DropCollation) -> Stmt {
36862        Stmt::DropCollation(node)
36863    }
36864}
36865impl From<DropConversion> for Stmt {
36866    #[inline]
36867    fn from(node: DropConversion) -> Stmt {
36868        Stmt::DropConversion(node)
36869    }
36870}
36871impl From<DropDatabase> for Stmt {
36872    #[inline]
36873    fn from(node: DropDatabase) -> Stmt {
36874        Stmt::DropDatabase(node)
36875    }
36876}
36877impl From<DropDomain> for Stmt {
36878    #[inline]
36879    fn from(node: DropDomain) -> Stmt {
36880        Stmt::DropDomain(node)
36881    }
36882}
36883impl From<DropEventTrigger> for Stmt {
36884    #[inline]
36885    fn from(node: DropEventTrigger) -> Stmt {
36886        Stmt::DropEventTrigger(node)
36887    }
36888}
36889impl From<DropExtension> for Stmt {
36890    #[inline]
36891    fn from(node: DropExtension) -> Stmt {
36892        Stmt::DropExtension(node)
36893    }
36894}
36895impl From<DropForeignDataWrapper> for Stmt {
36896    #[inline]
36897    fn from(node: DropForeignDataWrapper) -> Stmt {
36898        Stmt::DropForeignDataWrapper(node)
36899    }
36900}
36901impl From<DropForeignTable> for Stmt {
36902    #[inline]
36903    fn from(node: DropForeignTable) -> Stmt {
36904        Stmt::DropForeignTable(node)
36905    }
36906}
36907impl From<DropFunction> for Stmt {
36908    #[inline]
36909    fn from(node: DropFunction) -> Stmt {
36910        Stmt::DropFunction(node)
36911    }
36912}
36913impl From<DropGroup> for Stmt {
36914    #[inline]
36915    fn from(node: DropGroup) -> Stmt {
36916        Stmt::DropGroup(node)
36917    }
36918}
36919impl From<DropIndex> for Stmt {
36920    #[inline]
36921    fn from(node: DropIndex) -> Stmt {
36922        Stmt::DropIndex(node)
36923    }
36924}
36925impl From<DropLanguage> for Stmt {
36926    #[inline]
36927    fn from(node: DropLanguage) -> Stmt {
36928        Stmt::DropLanguage(node)
36929    }
36930}
36931impl From<DropMaterializedView> for Stmt {
36932    #[inline]
36933    fn from(node: DropMaterializedView) -> Stmt {
36934        Stmt::DropMaterializedView(node)
36935    }
36936}
36937impl From<DropOperator> for Stmt {
36938    #[inline]
36939    fn from(node: DropOperator) -> Stmt {
36940        Stmt::DropOperator(node)
36941    }
36942}
36943impl From<DropOperatorClass> for Stmt {
36944    #[inline]
36945    fn from(node: DropOperatorClass) -> Stmt {
36946        Stmt::DropOperatorClass(node)
36947    }
36948}
36949impl From<DropOperatorFamily> for Stmt {
36950    #[inline]
36951    fn from(node: DropOperatorFamily) -> Stmt {
36952        Stmt::DropOperatorFamily(node)
36953    }
36954}
36955impl From<DropOwned> for Stmt {
36956    #[inline]
36957    fn from(node: DropOwned) -> Stmt {
36958        Stmt::DropOwned(node)
36959    }
36960}
36961impl From<DropPolicy> for Stmt {
36962    #[inline]
36963    fn from(node: DropPolicy) -> Stmt {
36964        Stmt::DropPolicy(node)
36965    }
36966}
36967impl From<DropProcedure> for Stmt {
36968    #[inline]
36969    fn from(node: DropProcedure) -> Stmt {
36970        Stmt::DropProcedure(node)
36971    }
36972}
36973impl From<DropPropertyGraph> for Stmt {
36974    #[inline]
36975    fn from(node: DropPropertyGraph) -> Stmt {
36976        Stmt::DropPropertyGraph(node)
36977    }
36978}
36979impl From<DropPublication> for Stmt {
36980    #[inline]
36981    fn from(node: DropPublication) -> Stmt {
36982        Stmt::DropPublication(node)
36983    }
36984}
36985impl From<DropRole> for Stmt {
36986    #[inline]
36987    fn from(node: DropRole) -> Stmt {
36988        Stmt::DropRole(node)
36989    }
36990}
36991impl From<DropRoutine> for Stmt {
36992    #[inline]
36993    fn from(node: DropRoutine) -> Stmt {
36994        Stmt::DropRoutine(node)
36995    }
36996}
36997impl From<DropRule> for Stmt {
36998    #[inline]
36999    fn from(node: DropRule) -> Stmt {
37000        Stmt::DropRule(node)
37001    }
37002}
37003impl From<DropSchema> for Stmt {
37004    #[inline]
37005    fn from(node: DropSchema) -> Stmt {
37006        Stmt::DropSchema(node)
37007    }
37008}
37009impl From<DropSequence> for Stmt {
37010    #[inline]
37011    fn from(node: DropSequence) -> Stmt {
37012        Stmt::DropSequence(node)
37013    }
37014}
37015impl From<DropServer> for Stmt {
37016    #[inline]
37017    fn from(node: DropServer) -> Stmt {
37018        Stmt::DropServer(node)
37019    }
37020}
37021impl From<DropStatistics> for Stmt {
37022    #[inline]
37023    fn from(node: DropStatistics) -> Stmt {
37024        Stmt::DropStatistics(node)
37025    }
37026}
37027impl From<DropSubscription> for Stmt {
37028    #[inline]
37029    fn from(node: DropSubscription) -> Stmt {
37030        Stmt::DropSubscription(node)
37031    }
37032}
37033impl From<DropTable> for Stmt {
37034    #[inline]
37035    fn from(node: DropTable) -> Stmt {
37036        Stmt::DropTable(node)
37037    }
37038}
37039impl From<DropTablespace> for Stmt {
37040    #[inline]
37041    fn from(node: DropTablespace) -> Stmt {
37042        Stmt::DropTablespace(node)
37043    }
37044}
37045impl From<DropTextSearchConfig> for Stmt {
37046    #[inline]
37047    fn from(node: DropTextSearchConfig) -> Stmt {
37048        Stmt::DropTextSearchConfig(node)
37049    }
37050}
37051impl From<DropTextSearchDict> for Stmt {
37052    #[inline]
37053    fn from(node: DropTextSearchDict) -> Stmt {
37054        Stmt::DropTextSearchDict(node)
37055    }
37056}
37057impl From<DropTextSearchParser> for Stmt {
37058    #[inline]
37059    fn from(node: DropTextSearchParser) -> Stmt {
37060        Stmt::DropTextSearchParser(node)
37061    }
37062}
37063impl From<DropTextSearchTemplate> for Stmt {
37064    #[inline]
37065    fn from(node: DropTextSearchTemplate) -> Stmt {
37066        Stmt::DropTextSearchTemplate(node)
37067    }
37068}
37069impl From<DropTransform> for Stmt {
37070    #[inline]
37071    fn from(node: DropTransform) -> Stmt {
37072        Stmt::DropTransform(node)
37073    }
37074}
37075impl From<DropTrigger> for Stmt {
37076    #[inline]
37077    fn from(node: DropTrigger) -> Stmt {
37078        Stmt::DropTrigger(node)
37079    }
37080}
37081impl From<DropType> for Stmt {
37082    #[inline]
37083    fn from(node: DropType) -> Stmt {
37084        Stmt::DropType(node)
37085    }
37086}
37087impl From<DropUser> for Stmt {
37088    #[inline]
37089    fn from(node: DropUser) -> Stmt {
37090        Stmt::DropUser(node)
37091    }
37092}
37093impl From<DropUserMapping> for Stmt {
37094    #[inline]
37095    fn from(node: DropUserMapping) -> Stmt {
37096        Stmt::DropUserMapping(node)
37097    }
37098}
37099impl From<DropView> for Stmt {
37100    #[inline]
37101    fn from(node: DropView) -> Stmt {
37102        Stmt::DropView(node)
37103    }
37104}
37105impl From<EmptyStmt> for Stmt {
37106    #[inline]
37107    fn from(node: EmptyStmt) -> Stmt {
37108        Stmt::EmptyStmt(node)
37109    }
37110}
37111impl From<Execute> for Stmt {
37112    #[inline]
37113    fn from(node: Execute) -> Stmt {
37114        Stmt::Execute(node)
37115    }
37116}
37117impl From<Explain> for Stmt {
37118    #[inline]
37119    fn from(node: Explain) -> Stmt {
37120        Stmt::Explain(node)
37121    }
37122}
37123impl From<Fetch> for Stmt {
37124    #[inline]
37125    fn from(node: Fetch) -> Stmt {
37126        Stmt::Fetch(node)
37127    }
37128}
37129impl From<Grant> for Stmt {
37130    #[inline]
37131    fn from(node: Grant) -> Stmt {
37132        Stmt::Grant(node)
37133    }
37134}
37135impl From<ImportForeignSchema> for Stmt {
37136    #[inline]
37137    fn from(node: ImportForeignSchema) -> Stmt {
37138        Stmt::ImportForeignSchema(node)
37139    }
37140}
37141impl From<Insert> for Stmt {
37142    #[inline]
37143    fn from(node: Insert) -> Stmt {
37144        Stmt::Insert(node)
37145    }
37146}
37147impl From<Listen> for Stmt {
37148    #[inline]
37149    fn from(node: Listen) -> Stmt {
37150        Stmt::Listen(node)
37151    }
37152}
37153impl From<Load> for Stmt {
37154    #[inline]
37155    fn from(node: Load) -> Stmt {
37156        Stmt::Load(node)
37157    }
37158}
37159impl From<Lock> for Stmt {
37160    #[inline]
37161    fn from(node: Lock) -> Stmt {
37162        Stmt::Lock(node)
37163    }
37164}
37165impl From<Merge> for Stmt {
37166    #[inline]
37167    fn from(node: Merge) -> Stmt {
37168        Stmt::Merge(node)
37169    }
37170}
37171impl From<Move> for Stmt {
37172    #[inline]
37173    fn from(node: Move) -> Stmt {
37174        Stmt::Move(node)
37175    }
37176}
37177impl From<Notify> for Stmt {
37178    #[inline]
37179    fn from(node: Notify) -> Stmt {
37180        Stmt::Notify(node)
37181    }
37182}
37183impl From<ParenSelect> for Stmt {
37184    #[inline]
37185    fn from(node: ParenSelect) -> Stmt {
37186        Stmt::ParenSelect(node)
37187    }
37188}
37189impl From<Prepare> for Stmt {
37190    #[inline]
37191    fn from(node: Prepare) -> Stmt {
37192        Stmt::Prepare(node)
37193    }
37194}
37195impl From<PrepareTransaction> for Stmt {
37196    #[inline]
37197    fn from(node: PrepareTransaction) -> Stmt {
37198        Stmt::PrepareTransaction(node)
37199    }
37200}
37201impl From<Reassign> for Stmt {
37202    #[inline]
37203    fn from(node: Reassign) -> Stmt {
37204        Stmt::Reassign(node)
37205    }
37206}
37207impl From<Refresh> for Stmt {
37208    #[inline]
37209    fn from(node: Refresh) -> Stmt {
37210        Stmt::Refresh(node)
37211    }
37212}
37213impl From<Reindex> for Stmt {
37214    #[inline]
37215    fn from(node: Reindex) -> Stmt {
37216        Stmt::Reindex(node)
37217    }
37218}
37219impl From<ReleaseSavepoint> for Stmt {
37220    #[inline]
37221    fn from(node: ReleaseSavepoint) -> Stmt {
37222        Stmt::ReleaseSavepoint(node)
37223    }
37224}
37225impl From<Repack> for Stmt {
37226    #[inline]
37227    fn from(node: Repack) -> Stmt {
37228        Stmt::Repack(node)
37229    }
37230}
37231impl From<Reset> for Stmt {
37232    #[inline]
37233    fn from(node: Reset) -> Stmt {
37234        Stmt::Reset(node)
37235    }
37236}
37237impl From<ResetSessionAuth> for Stmt {
37238    #[inline]
37239    fn from(node: ResetSessionAuth) -> Stmt {
37240        Stmt::ResetSessionAuth(node)
37241    }
37242}
37243impl From<Revoke> for Stmt {
37244    #[inline]
37245    fn from(node: Revoke) -> Stmt {
37246        Stmt::Revoke(node)
37247    }
37248}
37249impl From<Rollback> for Stmt {
37250    #[inline]
37251    fn from(node: Rollback) -> Stmt {
37252        Stmt::Rollback(node)
37253    }
37254}
37255impl From<Savepoint> for Stmt {
37256    #[inline]
37257    fn from(node: Savepoint) -> Stmt {
37258        Stmt::Savepoint(node)
37259    }
37260}
37261impl From<SecurityLabel> for Stmt {
37262    #[inline]
37263    fn from(node: SecurityLabel) -> Stmt {
37264        Stmt::SecurityLabel(node)
37265    }
37266}
37267impl From<Select> for Stmt {
37268    #[inline]
37269    fn from(node: Select) -> Stmt {
37270        Stmt::Select(node)
37271    }
37272}
37273impl From<SelectInto> for Stmt {
37274    #[inline]
37275    fn from(node: SelectInto) -> Stmt {
37276        Stmt::SelectInto(node)
37277    }
37278}
37279impl From<Set> for Stmt {
37280    #[inline]
37281    fn from(node: Set) -> Stmt {
37282        Stmt::Set(node)
37283    }
37284}
37285impl From<SetConstraints> for Stmt {
37286    #[inline]
37287    fn from(node: SetConstraints) -> Stmt {
37288        Stmt::SetConstraints(node)
37289    }
37290}
37291impl From<SetRole> for Stmt {
37292    #[inline]
37293    fn from(node: SetRole) -> Stmt {
37294        Stmt::SetRole(node)
37295    }
37296}
37297impl From<SetSessionAuth> for Stmt {
37298    #[inline]
37299    fn from(node: SetSessionAuth) -> Stmt {
37300        Stmt::SetSessionAuth(node)
37301    }
37302}
37303impl From<SetTransaction> for Stmt {
37304    #[inline]
37305    fn from(node: SetTransaction) -> Stmt {
37306        Stmt::SetTransaction(node)
37307    }
37308}
37309impl From<Show> for Stmt {
37310    #[inline]
37311    fn from(node: Show) -> Stmt {
37312        Stmt::Show(node)
37313    }
37314}
37315impl From<Table> for Stmt {
37316    #[inline]
37317    fn from(node: Table) -> Stmt {
37318        Stmt::Table(node)
37319    }
37320}
37321impl From<Truncate> for Stmt {
37322    #[inline]
37323    fn from(node: Truncate) -> Stmt {
37324        Stmt::Truncate(node)
37325    }
37326}
37327impl From<Unlisten> for Stmt {
37328    #[inline]
37329    fn from(node: Unlisten) -> Stmt {
37330        Stmt::Unlisten(node)
37331    }
37332}
37333impl From<Update> for Stmt {
37334    #[inline]
37335    fn from(node: Update) -> Stmt {
37336        Stmt::Update(node)
37337    }
37338}
37339impl From<Vacuum> for Stmt {
37340    #[inline]
37341    fn from(node: Vacuum) -> Stmt {
37342        Stmt::Vacuum(node)
37343    }
37344}
37345impl From<Values> for Stmt {
37346    #[inline]
37347    fn from(node: Values) -> Stmt {
37348        Stmt::Values(node)
37349    }
37350}
37351impl AstNode for TableArg {
37352    #[inline]
37353    fn can_cast(kind: SyntaxKind) -> bool {
37354        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
37355    }
37356    #[inline]
37357    fn cast(syntax: SyntaxNode) -> Option<Self> {
37358        let res = match syntax.kind() {
37359            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
37360            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
37361            _ => {
37362                if let Some(result) = TableConstraint::cast(syntax) {
37363                    return Some(TableArg::TableConstraint(result));
37364                }
37365                return None;
37366            }
37367        };
37368        Some(res)
37369    }
37370    #[inline]
37371    fn syntax(&self) -> &SyntaxNode {
37372        match self {
37373            TableArg::Column(it) => &it.syntax,
37374            TableArg::LikeClause(it) => &it.syntax,
37375            TableArg::TableConstraint(it) => it.syntax(),
37376        }
37377    }
37378}
37379impl From<Column> for TableArg {
37380    #[inline]
37381    fn from(node: Column) -> TableArg {
37382        TableArg::Column(node)
37383    }
37384}
37385impl From<LikeClause> for TableArg {
37386    #[inline]
37387    fn from(node: LikeClause) -> TableArg {
37388        TableArg::LikeClause(node)
37389    }
37390}
37391impl AstNode for TableConstraint {
37392    #[inline]
37393    fn can_cast(kind: SyntaxKind) -> bool {
37394        matches!(
37395            kind,
37396            SyntaxKind::CHECK_CONSTRAINT
37397                | SyntaxKind::EXCLUDE_CONSTRAINT
37398                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
37399                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
37400                | SyntaxKind::UNIQUE_CONSTRAINT
37401        )
37402    }
37403    #[inline]
37404    fn cast(syntax: SyntaxNode) -> Option<Self> {
37405        let res = match syntax.kind() {
37406            SyntaxKind::CHECK_CONSTRAINT => {
37407                TableConstraint::CheckConstraint(CheckConstraint { syntax })
37408            }
37409            SyntaxKind::EXCLUDE_CONSTRAINT => {
37410                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
37411            }
37412            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
37413                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
37414            }
37415            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
37416                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
37417            }
37418            SyntaxKind::UNIQUE_CONSTRAINT => {
37419                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
37420            }
37421            _ => {
37422                return None;
37423            }
37424        };
37425        Some(res)
37426    }
37427    #[inline]
37428    fn syntax(&self) -> &SyntaxNode {
37429        match self {
37430            TableConstraint::CheckConstraint(it) => &it.syntax,
37431            TableConstraint::ExcludeConstraint(it) => &it.syntax,
37432            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
37433            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
37434            TableConstraint::UniqueConstraint(it) => &it.syntax,
37435        }
37436    }
37437}
37438impl From<CheckConstraint> for TableConstraint {
37439    #[inline]
37440    fn from(node: CheckConstraint) -> TableConstraint {
37441        TableConstraint::CheckConstraint(node)
37442    }
37443}
37444impl From<ExcludeConstraint> for TableConstraint {
37445    #[inline]
37446    fn from(node: ExcludeConstraint) -> TableConstraint {
37447        TableConstraint::ExcludeConstraint(node)
37448    }
37449}
37450impl From<ForeignKeyConstraint> for TableConstraint {
37451    #[inline]
37452    fn from(node: ForeignKeyConstraint) -> TableConstraint {
37453        TableConstraint::ForeignKeyConstraint(node)
37454    }
37455}
37456impl From<PrimaryKeyConstraint> for TableConstraint {
37457    #[inline]
37458    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
37459        TableConstraint::PrimaryKeyConstraint(node)
37460    }
37461}
37462impl From<UniqueConstraint> for TableConstraint {
37463    #[inline]
37464    fn from(node: UniqueConstraint) -> TableConstraint {
37465        TableConstraint::UniqueConstraint(node)
37466    }
37467}
37468impl AstNode for Timezone {
37469    #[inline]
37470    fn can_cast(kind: SyntaxKind) -> bool {
37471        matches!(
37472            kind,
37473            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
37474        )
37475    }
37476    #[inline]
37477    fn cast(syntax: SyntaxNode) -> Option<Self> {
37478        let res = match syntax.kind() {
37479            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
37480            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
37481            _ => {
37482                return None;
37483            }
37484        };
37485        Some(res)
37486    }
37487    #[inline]
37488    fn syntax(&self) -> &SyntaxNode {
37489        match self {
37490            Timezone::WithTimezone(it) => &it.syntax,
37491            Timezone::WithoutTimezone(it) => &it.syntax,
37492        }
37493    }
37494}
37495impl From<WithTimezone> for Timezone {
37496    #[inline]
37497    fn from(node: WithTimezone) -> Timezone {
37498        Timezone::WithTimezone(node)
37499    }
37500}
37501impl From<WithoutTimezone> for Timezone {
37502    #[inline]
37503    fn from(node: WithoutTimezone) -> Timezone {
37504        Timezone::WithoutTimezone(node)
37505    }
37506}
37507impl AstNode for TransactionMode {
37508    #[inline]
37509    fn can_cast(kind: SyntaxKind) -> bool {
37510        matches!(
37511            kind,
37512            SyntaxKind::DEFERRABLE
37513                | SyntaxKind::NOT_DEFERRABLE
37514                | SyntaxKind::READ_COMMITTED
37515                | SyntaxKind::READ_ONLY
37516                | SyntaxKind::READ_UNCOMMITTED
37517                | SyntaxKind::READ_WRITE
37518                | SyntaxKind::REPEATABLE_READ
37519                | SyntaxKind::SERIALIZABLE
37520        )
37521    }
37522    #[inline]
37523    fn cast(syntax: SyntaxNode) -> Option<Self> {
37524        let res = match syntax.kind() {
37525            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
37526            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
37527            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
37528            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
37529            SyntaxKind::READ_UNCOMMITTED => {
37530                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
37531            }
37532            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
37533            SyntaxKind::REPEATABLE_READ => {
37534                TransactionMode::RepeatableRead(RepeatableRead { syntax })
37535            }
37536            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
37537            _ => {
37538                return None;
37539            }
37540        };
37541        Some(res)
37542    }
37543    #[inline]
37544    fn syntax(&self) -> &SyntaxNode {
37545        match self {
37546            TransactionMode::Deferrable(it) => &it.syntax,
37547            TransactionMode::NotDeferrable(it) => &it.syntax,
37548            TransactionMode::ReadCommitted(it) => &it.syntax,
37549            TransactionMode::ReadOnly(it) => &it.syntax,
37550            TransactionMode::ReadUncommitted(it) => &it.syntax,
37551            TransactionMode::ReadWrite(it) => &it.syntax,
37552            TransactionMode::RepeatableRead(it) => &it.syntax,
37553            TransactionMode::Serializable(it) => &it.syntax,
37554        }
37555    }
37556}
37557impl From<Deferrable> for TransactionMode {
37558    #[inline]
37559    fn from(node: Deferrable) -> TransactionMode {
37560        TransactionMode::Deferrable(node)
37561    }
37562}
37563impl From<NotDeferrable> for TransactionMode {
37564    #[inline]
37565    fn from(node: NotDeferrable) -> TransactionMode {
37566        TransactionMode::NotDeferrable(node)
37567    }
37568}
37569impl From<ReadCommitted> for TransactionMode {
37570    #[inline]
37571    fn from(node: ReadCommitted) -> TransactionMode {
37572        TransactionMode::ReadCommitted(node)
37573    }
37574}
37575impl From<ReadOnly> for TransactionMode {
37576    #[inline]
37577    fn from(node: ReadOnly) -> TransactionMode {
37578        TransactionMode::ReadOnly(node)
37579    }
37580}
37581impl From<ReadUncommitted> for TransactionMode {
37582    #[inline]
37583    fn from(node: ReadUncommitted) -> TransactionMode {
37584        TransactionMode::ReadUncommitted(node)
37585    }
37586}
37587impl From<ReadWrite> for TransactionMode {
37588    #[inline]
37589    fn from(node: ReadWrite) -> TransactionMode {
37590        TransactionMode::ReadWrite(node)
37591    }
37592}
37593impl From<RepeatableRead> for TransactionMode {
37594    #[inline]
37595    fn from(node: RepeatableRead) -> TransactionMode {
37596        TransactionMode::RepeatableRead(node)
37597    }
37598}
37599impl From<Serializable> for TransactionMode {
37600    #[inline]
37601    fn from(node: Serializable) -> TransactionMode {
37602        TransactionMode::Serializable(node)
37603    }
37604}
37605impl AstNode for Type {
37606    #[inline]
37607    fn can_cast(kind: SyntaxKind) -> bool {
37608        matches!(
37609            kind,
37610            SyntaxKind::ARRAY_TYPE
37611                | SyntaxKind::BIT_TYPE
37612                | SyntaxKind::CHAR_TYPE
37613                | SyntaxKind::DOUBLE_TYPE
37614                | SyntaxKind::EXPR_TYPE
37615                | SyntaxKind::INTERVAL_TYPE
37616                | SyntaxKind::PATH_TYPE
37617                | SyntaxKind::PERCENT_TYPE
37618                | SyntaxKind::TIME_TYPE
37619        )
37620    }
37621    #[inline]
37622    fn cast(syntax: SyntaxNode) -> Option<Self> {
37623        let res = match syntax.kind() {
37624            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
37625            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
37626            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
37627            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
37628            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
37629            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
37630            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
37631            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
37632            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
37633            _ => {
37634                return None;
37635            }
37636        };
37637        Some(res)
37638    }
37639    #[inline]
37640    fn syntax(&self) -> &SyntaxNode {
37641        match self {
37642            Type::ArrayType(it) => &it.syntax,
37643            Type::BitType(it) => &it.syntax,
37644            Type::CharType(it) => &it.syntax,
37645            Type::DoubleType(it) => &it.syntax,
37646            Type::ExprType(it) => &it.syntax,
37647            Type::IntervalType(it) => &it.syntax,
37648            Type::PathType(it) => &it.syntax,
37649            Type::PercentType(it) => &it.syntax,
37650            Type::TimeType(it) => &it.syntax,
37651        }
37652    }
37653}
37654impl From<ArrayType> for Type {
37655    #[inline]
37656    fn from(node: ArrayType) -> Type {
37657        Type::ArrayType(node)
37658    }
37659}
37660impl From<BitType> for Type {
37661    #[inline]
37662    fn from(node: BitType) -> Type {
37663        Type::BitType(node)
37664    }
37665}
37666impl From<CharType> for Type {
37667    #[inline]
37668    fn from(node: CharType) -> Type {
37669        Type::CharType(node)
37670    }
37671}
37672impl From<DoubleType> for Type {
37673    #[inline]
37674    fn from(node: DoubleType) -> Type {
37675        Type::DoubleType(node)
37676    }
37677}
37678impl From<ExprType> for Type {
37679    #[inline]
37680    fn from(node: ExprType) -> Type {
37681        Type::ExprType(node)
37682    }
37683}
37684impl From<IntervalType> for Type {
37685    #[inline]
37686    fn from(node: IntervalType) -> Type {
37687        Type::IntervalType(node)
37688    }
37689}
37690impl From<PathType> for Type {
37691    #[inline]
37692    fn from(node: PathType) -> Type {
37693        Type::PathType(node)
37694    }
37695}
37696impl From<PercentType> for Type {
37697    #[inline]
37698    fn from(node: PercentType) -> Type {
37699        Type::PercentType(node)
37700    }
37701}
37702impl From<TimeType> for Type {
37703    #[inline]
37704    fn from(node: TimeType) -> Type {
37705        Type::TimeType(node)
37706    }
37707}
37708impl AstNode for ValuePosition {
37709    #[inline]
37710    fn can_cast(kind: SyntaxKind) -> bool {
37711        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
37712    }
37713    #[inline]
37714    fn cast(syntax: SyntaxNode) -> Option<Self> {
37715        let res = match syntax.kind() {
37716            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
37717            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
37718            _ => {
37719                return None;
37720            }
37721        };
37722        Some(res)
37723    }
37724    #[inline]
37725    fn syntax(&self) -> &SyntaxNode {
37726        match self {
37727            ValuePosition::AfterValue(it) => &it.syntax,
37728            ValuePosition::BeforeValue(it) => &it.syntax,
37729        }
37730    }
37731}
37732impl From<AfterValue> for ValuePosition {
37733    #[inline]
37734    fn from(node: AfterValue) -> ValuePosition {
37735        ValuePosition::AfterValue(node)
37736    }
37737}
37738impl From<BeforeValue> for ValuePosition {
37739    #[inline]
37740    fn from(node: BeforeValue) -> ValuePosition {
37741        ValuePosition::BeforeValue(node)
37742    }
37743}
37744impl AstNode for WithQuery {
37745    #[inline]
37746    fn can_cast(kind: SyntaxKind) -> bool {
37747        matches!(
37748            kind,
37749            SyntaxKind::COMPOUND_SELECT
37750                | SyntaxKind::DELETE
37751                | SyntaxKind::INSERT
37752                | SyntaxKind::MERGE
37753                | SyntaxKind::PAREN_SELECT
37754                | SyntaxKind::SELECT
37755                | SyntaxKind::TABLE
37756                | SyntaxKind::UPDATE
37757                | SyntaxKind::VALUES
37758        )
37759    }
37760    #[inline]
37761    fn cast(syntax: SyntaxNode) -> Option<Self> {
37762        let res = match syntax.kind() {
37763            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
37764            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
37765            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
37766            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
37767            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
37768            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
37769            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
37770            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
37771            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
37772            _ => {
37773                return None;
37774            }
37775        };
37776        Some(res)
37777    }
37778    #[inline]
37779    fn syntax(&self) -> &SyntaxNode {
37780        match self {
37781            WithQuery::CompoundSelect(it) => &it.syntax,
37782            WithQuery::Delete(it) => &it.syntax,
37783            WithQuery::Insert(it) => &it.syntax,
37784            WithQuery::Merge(it) => &it.syntax,
37785            WithQuery::ParenSelect(it) => &it.syntax,
37786            WithQuery::Select(it) => &it.syntax,
37787            WithQuery::Table(it) => &it.syntax,
37788            WithQuery::Update(it) => &it.syntax,
37789            WithQuery::Values(it) => &it.syntax,
37790        }
37791    }
37792}
37793impl From<CompoundSelect> for WithQuery {
37794    #[inline]
37795    fn from(node: CompoundSelect) -> WithQuery {
37796        WithQuery::CompoundSelect(node)
37797    }
37798}
37799impl From<Delete> for WithQuery {
37800    #[inline]
37801    fn from(node: Delete) -> WithQuery {
37802        WithQuery::Delete(node)
37803    }
37804}
37805impl From<Insert> for WithQuery {
37806    #[inline]
37807    fn from(node: Insert) -> WithQuery {
37808        WithQuery::Insert(node)
37809    }
37810}
37811impl From<Merge> for WithQuery {
37812    #[inline]
37813    fn from(node: Merge) -> WithQuery {
37814        WithQuery::Merge(node)
37815    }
37816}
37817impl From<ParenSelect> for WithQuery {
37818    #[inline]
37819    fn from(node: ParenSelect) -> WithQuery {
37820        WithQuery::ParenSelect(node)
37821    }
37822}
37823impl From<Select> for WithQuery {
37824    #[inline]
37825    fn from(node: Select) -> WithQuery {
37826        WithQuery::Select(node)
37827    }
37828}
37829impl From<Table> for WithQuery {
37830    #[inline]
37831    fn from(node: Table) -> WithQuery {
37832        WithQuery::Table(node)
37833    }
37834}
37835impl From<Update> for WithQuery {
37836    #[inline]
37837    fn from(node: Update) -> WithQuery {
37838        WithQuery::Update(node)
37839    }
37840}
37841impl From<Values> for WithQuery {
37842    #[inline]
37843    fn from(node: Values) -> WithQuery {
37844        WithQuery::Values(node)
37845    }
37846}