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 aggregate_token(&self) -> Option<SyntaxToken> {
391        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
392    }
393    #[inline]
394    pub fn alter_token(&self) -> Option<SyntaxToken> {
395        support::token(&self.syntax, SyntaxKind::ALTER_KW)
396    }
397}
398
399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
400pub struct AlterAttribute {
401    pub(crate) syntax: SyntaxNode,
402}
403impl AlterAttribute {
404    #[inline]
405    pub fn cascade(&self) -> Option<Cascade> {
406        support::child(&self.syntax)
407    }
408    #[inline]
409    pub fn restrict(&self) -> Option<Restrict> {
410        support::child(&self.syntax)
411    }
412    #[inline]
413    pub fn alter_token(&self) -> Option<SyntaxToken> {
414        support::token(&self.syntax, SyntaxKind::ALTER_KW)
415    }
416    #[inline]
417    pub fn attribute_token(&self) -> Option<SyntaxToken> {
418        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
419    }
420}
421
422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
423pub struct AlterCollation {
424    pub(crate) syntax: SyntaxNode,
425}
426impl AlterCollation {
427    #[inline]
428    pub fn owner_to(&self) -> Option<OwnerTo> {
429        support::child(&self.syntax)
430    }
431    #[inline]
432    pub fn path(&self) -> Option<Path> {
433        support::child(&self.syntax)
434    }
435    #[inline]
436    pub fn refresh_version(&self) -> Option<RefreshVersion> {
437        support::child(&self.syntax)
438    }
439    #[inline]
440    pub fn rename_to(&self) -> Option<RenameTo> {
441        support::child(&self.syntax)
442    }
443    #[inline]
444    pub fn set_schema(&self) -> Option<SetSchema> {
445        support::child(&self.syntax)
446    }
447    #[inline]
448    pub fn alter_token(&self) -> Option<SyntaxToken> {
449        support::token(&self.syntax, SyntaxKind::ALTER_KW)
450    }
451    #[inline]
452    pub fn collation_token(&self) -> Option<SyntaxToken> {
453        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
454    }
455}
456
457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
458pub struct AlterColumn {
459    pub(crate) syntax: SyntaxNode,
460}
461impl AlterColumn {
462    #[inline]
463    pub fn name_ref(&self) -> Option<NameRef> {
464        support::child(&self.syntax)
465    }
466    #[inline]
467    pub fn option(&self) -> Option<AlterColumnOption> {
468        support::child(&self.syntax)
469    }
470    #[inline]
471    pub fn alter_token(&self) -> Option<SyntaxToken> {
472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
473    }
474    #[inline]
475    pub fn column_token(&self) -> Option<SyntaxToken> {
476        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
477    }
478}
479
480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
481pub struct AlterConstraint {
482    pub(crate) syntax: SyntaxNode,
483}
484impl AlterConstraint {
485    #[inline]
486    pub fn option(&self) -> Option<AlterColumnOption> {
487        support::child(&self.syntax)
488    }
489    #[inline]
490    pub fn alter_token(&self) -> Option<SyntaxToken> {
491        support::token(&self.syntax, SyntaxKind::ALTER_KW)
492    }
493    #[inline]
494    pub fn constraint_token(&self) -> Option<SyntaxToken> {
495        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
496    }
497}
498
499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
500pub struct AlterConversion {
501    pub(crate) syntax: SyntaxNode,
502}
503impl AlterConversion {
504    #[inline]
505    pub fn owner_to(&self) -> Option<OwnerTo> {
506        support::child(&self.syntax)
507    }
508    #[inline]
509    pub fn path(&self) -> Option<Path> {
510        support::child(&self.syntax)
511    }
512    #[inline]
513    pub fn rename_to(&self) -> Option<RenameTo> {
514        support::child(&self.syntax)
515    }
516    #[inline]
517    pub fn set_schema(&self) -> Option<SetSchema> {
518        support::child(&self.syntax)
519    }
520    #[inline]
521    pub fn alter_token(&self) -> Option<SyntaxToken> {
522        support::token(&self.syntax, SyntaxKind::ALTER_KW)
523    }
524    #[inline]
525    pub fn conversion_token(&self) -> Option<SyntaxToken> {
526        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
527    }
528}
529
530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
531pub struct AlterDatabase {
532    pub(crate) syntax: SyntaxNode,
533}
534impl AlterDatabase {
535    #[inline]
536    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
537        support::child(&self.syntax)
538    }
539    #[inline]
540    pub fn name_ref(&self) -> Option<NameRef> {
541        support::child(&self.syntax)
542    }
543    #[inline]
544    pub fn owner_to(&self) -> Option<OwnerTo> {
545        support::child(&self.syntax)
546    }
547    #[inline]
548    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
549        support::child(&self.syntax)
550    }
551    #[inline]
552    pub fn rename_to(&self) -> Option<RenameTo> {
553        support::child(&self.syntax)
554    }
555    #[inline]
556    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
557        support::child(&self.syntax)
558    }
559    #[inline]
560    pub fn set_config_param(&self) -> Option<SetConfigParam> {
561        support::child(&self.syntax)
562    }
563    #[inline]
564    pub fn set_tablespace(&self) -> Option<SetTablespace> {
565        support::child(&self.syntax)
566    }
567    #[inline]
568    pub fn alter_token(&self) -> Option<SyntaxToken> {
569        support::token(&self.syntax, SyntaxKind::ALTER_KW)
570    }
571    #[inline]
572    pub fn database_token(&self) -> Option<SyntaxToken> {
573        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
574    }
575}
576
577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
578pub struct AlterDefaultPrivileges {
579    pub(crate) syntax: SyntaxNode,
580}
581impl AlterDefaultPrivileges {
582    #[inline]
583    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
584        support::child(&self.syntax)
585    }
586    #[inline]
587    pub fn name_refs(&self) -> AstChildren<NameRef> {
588        support::children(&self.syntax)
589    }
590    #[inline]
591    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
592        support::child(&self.syntax)
593    }
594    #[inline]
595    pub fn role_ref_list(&self) -> Option<RoleRefList> {
596        support::child(&self.syntax)
597    }
598    #[inline]
599    pub fn alter_token(&self) -> Option<SyntaxToken> {
600        support::token(&self.syntax, SyntaxKind::ALTER_KW)
601    }
602    #[inline]
603    pub fn default_token(&self) -> Option<SyntaxToken> {
604        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
605    }
606    #[inline]
607    pub fn for_token(&self) -> Option<SyntaxToken> {
608        support::token(&self.syntax, SyntaxKind::FOR_KW)
609    }
610    #[inline]
611    pub fn in_token(&self) -> Option<SyntaxToken> {
612        support::token(&self.syntax, SyntaxKind::IN_KW)
613    }
614    #[inline]
615    pub fn privileges_token(&self) -> Option<SyntaxToken> {
616        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
617    }
618    #[inline]
619    pub fn role_token(&self) -> Option<SyntaxToken> {
620        support::token(&self.syntax, SyntaxKind::ROLE_KW)
621    }
622    #[inline]
623    pub fn schema_token(&self) -> Option<SyntaxToken> {
624        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
625    }
626    #[inline]
627    pub fn user_token(&self) -> Option<SyntaxToken> {
628        support::token(&self.syntax, SyntaxKind::USER_KW)
629    }
630}
631
632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
633pub struct AlterDomain {
634    pub(crate) syntax: SyntaxNode,
635}
636impl AlterDomain {
637    #[inline]
638    pub fn action(&self) -> Option<AlterDomainAction> {
639        support::child(&self.syntax)
640    }
641    #[inline]
642    pub fn path(&self) -> Option<Path> {
643        support::child(&self.syntax)
644    }
645    #[inline]
646    pub fn alter_token(&self) -> Option<SyntaxToken> {
647        support::token(&self.syntax, SyntaxKind::ALTER_KW)
648    }
649    #[inline]
650    pub fn domain_token(&self) -> Option<SyntaxToken> {
651        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
652    }
653}
654
655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
656pub struct AlterEventTrigger {
657    pub(crate) syntax: SyntaxNode,
658}
659impl AlterEventTrigger {
660    #[inline]
661    pub fn name_ref(&self) -> Option<NameRef> {
662        support::child(&self.syntax)
663    }
664    #[inline]
665    pub fn owner_to(&self) -> Option<OwnerTo> {
666        support::child(&self.syntax)
667    }
668    #[inline]
669    pub fn rename_to(&self) -> Option<RenameTo> {
670        support::child(&self.syntax)
671    }
672    #[inline]
673    pub fn alter_token(&self) -> Option<SyntaxToken> {
674        support::token(&self.syntax, SyntaxKind::ALTER_KW)
675    }
676    #[inline]
677    pub fn always_token(&self) -> Option<SyntaxToken> {
678        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
679    }
680    #[inline]
681    pub fn disable_token(&self) -> Option<SyntaxToken> {
682        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
683    }
684    #[inline]
685    pub fn enable_token(&self) -> Option<SyntaxToken> {
686        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
687    }
688    #[inline]
689    pub fn event_token(&self) -> Option<SyntaxToken> {
690        support::token(&self.syntax, SyntaxKind::EVENT_KW)
691    }
692    #[inline]
693    pub fn replica_token(&self) -> Option<SyntaxToken> {
694        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
695    }
696    #[inline]
697    pub fn trigger_token(&self) -> Option<SyntaxToken> {
698        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
699    }
700}
701
702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
703pub struct AlterExtension {
704    pub(crate) syntax: SyntaxNode,
705}
706impl AlterExtension {
707    #[inline]
708    pub fn name_ref(&self) -> Option<NameRef> {
709        support::child(&self.syntax)
710    }
711    #[inline]
712    pub fn alter_token(&self) -> Option<SyntaxToken> {
713        support::token(&self.syntax, SyntaxKind::ALTER_KW)
714    }
715    #[inline]
716    pub fn extension_token(&self) -> Option<SyntaxToken> {
717        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
718    }
719}
720
721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
722pub struct AlterForeignDataWrapper {
723    pub(crate) syntax: SyntaxNode,
724}
725impl AlterForeignDataWrapper {
726    #[inline]
727    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
728        support::child(&self.syntax)
729    }
730    #[inline]
731    pub fn name_ref(&self) -> Option<NameRef> {
732        support::child(&self.syntax)
733    }
734    #[inline]
735    pub fn owner_to(&self) -> Option<OwnerTo> {
736        support::child(&self.syntax)
737    }
738    #[inline]
739    pub fn rename_to(&self) -> Option<RenameTo> {
740        support::child(&self.syntax)
741    }
742    #[inline]
743    pub fn alter_token(&self) -> Option<SyntaxToken> {
744        support::token(&self.syntax, SyntaxKind::ALTER_KW)
745    }
746    #[inline]
747    pub fn data_token(&self) -> Option<SyntaxToken> {
748        support::token(&self.syntax, SyntaxKind::DATA_KW)
749    }
750    #[inline]
751    pub fn foreign_token(&self) -> Option<SyntaxToken> {
752        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
753    }
754    #[inline]
755    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
756        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
757    }
758}
759
760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
761pub struct AlterForeignTable {
762    pub(crate) syntax: SyntaxNode,
763}
764impl AlterForeignTable {
765    #[inline]
766    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
767        support::children(&self.syntax)
768    }
769    #[inline]
770    pub fn if_exists(&self) -> Option<IfExists> {
771        support::child(&self.syntax)
772    }
773    #[inline]
774    pub fn relation_name(&self) -> Option<RelationName> {
775        support::child(&self.syntax)
776    }
777    #[inline]
778    pub fn rename_column(&self) -> Option<RenameColumn> {
779        support::child(&self.syntax)
780    }
781    #[inline]
782    pub fn rename_to(&self) -> Option<RenameTo> {
783        support::child(&self.syntax)
784    }
785    #[inline]
786    pub fn set_schema(&self) -> Option<SetSchema> {
787        support::child(&self.syntax)
788    }
789    #[inline]
790    pub fn alter_token(&self) -> Option<SyntaxToken> {
791        support::token(&self.syntax, SyntaxKind::ALTER_KW)
792    }
793    #[inline]
794    pub fn foreign_token(&self) -> Option<SyntaxToken> {
795        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
796    }
797    #[inline]
798    pub fn table_token(&self) -> Option<SyntaxToken> {
799        support::token(&self.syntax, SyntaxKind::TABLE_KW)
800    }
801}
802
803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
804pub struct AlterFunction {
805    pub(crate) syntax: SyntaxNode,
806}
807impl AlterFunction {
808    #[inline]
809    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
810        support::child(&self.syntax)
811    }
812    #[inline]
813    pub fn func_option_list(&self) -> Option<FuncOptionList> {
814        support::child(&self.syntax)
815    }
816    #[inline]
817    pub fn function_sig(&self) -> Option<FunctionSig> {
818        support::child(&self.syntax)
819    }
820    #[inline]
821    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
822        support::child(&self.syntax)
823    }
824    #[inline]
825    pub fn owner_to(&self) -> Option<OwnerTo> {
826        support::child(&self.syntax)
827    }
828    #[inline]
829    pub fn rename_to(&self) -> Option<RenameTo> {
830        support::child(&self.syntax)
831    }
832    #[inline]
833    pub fn set_schema(&self) -> Option<SetSchema> {
834        support::child(&self.syntax)
835    }
836    #[inline]
837    pub fn alter_token(&self) -> Option<SyntaxToken> {
838        support::token(&self.syntax, SyntaxKind::ALTER_KW)
839    }
840    #[inline]
841    pub fn function_token(&self) -> Option<SyntaxToken> {
842        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
843    }
844    #[inline]
845    pub fn restrict_token(&self) -> Option<SyntaxToken> {
846        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
847    }
848}
849
850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
851pub struct AlterGroup {
852    pub(crate) syntax: SyntaxNode,
853}
854impl AlterGroup {
855    #[inline]
856    pub fn name_refs(&self) -> AstChildren<NameRef> {
857        support::children(&self.syntax)
858    }
859    #[inline]
860    pub fn rename_to(&self) -> Option<RenameTo> {
861        support::child(&self.syntax)
862    }
863    #[inline]
864    pub fn role_ref(&self) -> Option<RoleRef> {
865        support::child(&self.syntax)
866    }
867    #[inline]
868    pub fn add_token(&self) -> Option<SyntaxToken> {
869        support::token(&self.syntax, SyntaxKind::ADD_KW)
870    }
871    #[inline]
872    pub fn alter_token(&self) -> Option<SyntaxToken> {
873        support::token(&self.syntax, SyntaxKind::ALTER_KW)
874    }
875    #[inline]
876    pub fn drop_token(&self) -> Option<SyntaxToken> {
877        support::token(&self.syntax, SyntaxKind::DROP_KW)
878    }
879    #[inline]
880    pub fn group_token(&self) -> Option<SyntaxToken> {
881        support::token(&self.syntax, SyntaxKind::GROUP_KW)
882    }
883    #[inline]
884    pub fn user_token(&self) -> Option<SyntaxToken> {
885        support::token(&self.syntax, SyntaxKind::USER_KW)
886    }
887}
888
889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
890pub struct AlterIndex {
891    pub(crate) syntax: SyntaxNode,
892}
893impl AlterIndex {
894    #[inline]
895    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
896        support::child(&self.syntax)
897    }
898    #[inline]
899    pub fn if_exists(&self) -> Option<IfExists> {
900        support::child(&self.syntax)
901    }
902    #[inline]
903    pub fn name_ref(&self) -> Option<NameRef> {
904        support::child(&self.syntax)
905    }
906    #[inline]
907    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
908        support::child(&self.syntax)
909    }
910    #[inline]
911    pub fn path(&self) -> Option<Path> {
912        support::child(&self.syntax)
913    }
914    #[inline]
915    pub fn all_token(&self) -> Option<SyntaxToken> {
916        support::token(&self.syntax, SyntaxKind::ALL_KW)
917    }
918    #[inline]
919    pub fn alter_token(&self) -> Option<SyntaxToken> {
920        support::token(&self.syntax, SyntaxKind::ALTER_KW)
921    }
922    #[inline]
923    pub fn in_token(&self) -> Option<SyntaxToken> {
924        support::token(&self.syntax, SyntaxKind::IN_KW)
925    }
926    #[inline]
927    pub fn index_token(&self) -> Option<SyntaxToken> {
928        support::token(&self.syntax, SyntaxKind::INDEX_KW)
929    }
930    #[inline]
931    pub fn nowait_token(&self) -> Option<SyntaxToken> {
932        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
933    }
934    #[inline]
935    pub fn set_token(&self) -> Option<SyntaxToken> {
936        support::token(&self.syntax, SyntaxKind::SET_KW)
937    }
938    #[inline]
939    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
940        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
941    }
942}
943
944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
945pub struct AlterLanguage {
946    pub(crate) syntax: SyntaxNode,
947}
948impl AlterLanguage {
949    #[inline]
950    pub fn name_ref(&self) -> Option<NameRef> {
951        support::child(&self.syntax)
952    }
953    #[inline]
954    pub fn owner_to(&self) -> Option<OwnerTo> {
955        support::child(&self.syntax)
956    }
957    #[inline]
958    pub fn rename_to(&self) -> Option<RenameTo> {
959        support::child(&self.syntax)
960    }
961    #[inline]
962    pub fn alter_token(&self) -> Option<SyntaxToken> {
963        support::token(&self.syntax, SyntaxKind::ALTER_KW)
964    }
965    #[inline]
966    pub fn language_token(&self) -> Option<SyntaxToken> {
967        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
968    }
969}
970
971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
972pub struct AlterLargeObject {
973    pub(crate) syntax: SyntaxNode,
974}
975impl AlterLargeObject {
976    #[inline]
977    pub fn alter_token(&self) -> Option<SyntaxToken> {
978        support::token(&self.syntax, SyntaxKind::ALTER_KW)
979    }
980    #[inline]
981    pub fn large_token(&self) -> Option<SyntaxToken> {
982        support::token(&self.syntax, SyntaxKind::LARGE_KW)
983    }
984    #[inline]
985    pub fn object_token(&self) -> Option<SyntaxToken> {
986        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
987    }
988}
989
990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
991pub struct AlterMaterializedView {
992    pub(crate) syntax: SyntaxNode,
993}
994impl AlterMaterializedView {
995    #[inline]
996    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
997        support::children(&self.syntax)
998    }
999    #[inline]
1000    pub fn if_exists(&self) -> Option<IfExists> {
1001        support::child(&self.syntax)
1002    }
1003    #[inline]
1004    pub fn name(&self) -> Option<Name> {
1005        support::child(&self.syntax)
1006    }
1007    #[inline]
1008    pub fn name_ref(&self) -> Option<NameRef> {
1009        support::child(&self.syntax)
1010    }
1011    #[inline]
1012    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
1013        support::child(&self.syntax)
1014    }
1015    #[inline]
1016    pub fn path(&self) -> Option<Path> {
1017        support::child(&self.syntax)
1018    }
1019    #[inline]
1020    pub fn all_token(&self) -> Option<SyntaxToken> {
1021        support::token(&self.syntax, SyntaxKind::ALL_KW)
1022    }
1023    #[inline]
1024    pub fn alter_token(&self) -> Option<SyntaxToken> {
1025        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1026    }
1027    #[inline]
1028    pub fn in_token(&self) -> Option<SyntaxToken> {
1029        support::token(&self.syntax, SyntaxKind::IN_KW)
1030    }
1031    #[inline]
1032    pub fn materialized_token(&self) -> Option<SyntaxToken> {
1033        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
1034    }
1035    #[inline]
1036    pub fn nowait_token(&self) -> Option<SyntaxToken> {
1037        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
1038    }
1039    #[inline]
1040    pub fn set_token(&self) -> Option<SyntaxToken> {
1041        support::token(&self.syntax, SyntaxKind::SET_KW)
1042    }
1043    #[inline]
1044    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1045        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1046    }
1047    #[inline]
1048    pub fn view_token(&self) -> Option<SyntaxToken> {
1049        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1050    }
1051}
1052
1053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1054pub struct AlterOperator {
1055    pub(crate) syntax: SyntaxNode,
1056}
1057impl AlterOperator {
1058    #[inline]
1059    pub fn op_sig(&self) -> Option<OpSig> {
1060        support::child(&self.syntax)
1061    }
1062    #[inline]
1063    pub fn owner_to(&self) -> Option<OwnerTo> {
1064        support::child(&self.syntax)
1065    }
1066    #[inline]
1067    pub fn set_options(&self) -> Option<SetOptions> {
1068        support::child(&self.syntax)
1069    }
1070    #[inline]
1071    pub fn set_schema(&self) -> Option<SetSchema> {
1072        support::child(&self.syntax)
1073    }
1074    #[inline]
1075    pub fn alter_token(&self) -> Option<SyntaxToken> {
1076        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1077    }
1078    #[inline]
1079    pub fn operator_token(&self) -> Option<SyntaxToken> {
1080        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1081    }
1082}
1083
1084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1085pub struct AlterOperatorClass {
1086    pub(crate) syntax: SyntaxNode,
1087}
1088impl AlterOperatorClass {
1089    #[inline]
1090    pub fn name_ref(&self) -> Option<NameRef> {
1091        support::child(&self.syntax)
1092    }
1093    #[inline]
1094    pub fn owner_to(&self) -> Option<OwnerTo> {
1095        support::child(&self.syntax)
1096    }
1097    #[inline]
1098    pub fn path(&self) -> Option<Path> {
1099        support::child(&self.syntax)
1100    }
1101    #[inline]
1102    pub fn rename_to(&self) -> Option<RenameTo> {
1103        support::child(&self.syntax)
1104    }
1105    #[inline]
1106    pub fn set_schema(&self) -> Option<SetSchema> {
1107        support::child(&self.syntax)
1108    }
1109    #[inline]
1110    pub fn alter_token(&self) -> Option<SyntaxToken> {
1111        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1112    }
1113    #[inline]
1114    pub fn class_token(&self) -> Option<SyntaxToken> {
1115        support::token(&self.syntax, SyntaxKind::CLASS_KW)
1116    }
1117    #[inline]
1118    pub fn operator_token(&self) -> Option<SyntaxToken> {
1119        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1120    }
1121    #[inline]
1122    pub fn using_token(&self) -> Option<SyntaxToken> {
1123        support::token(&self.syntax, SyntaxKind::USING_KW)
1124    }
1125}
1126
1127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1128pub struct AlterOperatorFamily {
1129    pub(crate) syntax: SyntaxNode,
1130}
1131impl AlterOperatorFamily {
1132    #[inline]
1133    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
1134        support::child(&self.syntax)
1135    }
1136    #[inline]
1137    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
1138        support::child(&self.syntax)
1139    }
1140    #[inline]
1141    pub fn name_ref(&self) -> Option<NameRef> {
1142        support::child(&self.syntax)
1143    }
1144    #[inline]
1145    pub fn owner_to(&self) -> Option<OwnerTo> {
1146        support::child(&self.syntax)
1147    }
1148    #[inline]
1149    pub fn path(&self) -> Option<Path> {
1150        support::child(&self.syntax)
1151    }
1152    #[inline]
1153    pub fn rename_to(&self) -> Option<RenameTo> {
1154        support::child(&self.syntax)
1155    }
1156    #[inline]
1157    pub fn set_schema(&self) -> Option<SetSchema> {
1158        support::child(&self.syntax)
1159    }
1160    #[inline]
1161    pub fn alter_token(&self) -> Option<SyntaxToken> {
1162        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1163    }
1164    #[inline]
1165    pub fn family_token(&self) -> Option<SyntaxToken> {
1166        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
1167    }
1168    #[inline]
1169    pub fn operator_token(&self) -> Option<SyntaxToken> {
1170        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1171    }
1172    #[inline]
1173    pub fn using_token(&self) -> Option<SyntaxToken> {
1174        support::token(&self.syntax, SyntaxKind::USING_KW)
1175    }
1176}
1177
1178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1179pub struct AlterOption {
1180    pub(crate) syntax: SyntaxNode,
1181}
1182impl AlterOption {
1183    #[inline]
1184    pub fn literal(&self) -> Option<Literal> {
1185        support::child(&self.syntax)
1186    }
1187    #[inline]
1188    pub fn name_ref(&self) -> Option<NameRef> {
1189        support::child(&self.syntax)
1190    }
1191    #[inline]
1192    pub fn add_token(&self) -> Option<SyntaxToken> {
1193        support::token(&self.syntax, SyntaxKind::ADD_KW)
1194    }
1195    #[inline]
1196    pub fn drop_token(&self) -> Option<SyntaxToken> {
1197        support::token(&self.syntax, SyntaxKind::DROP_KW)
1198    }
1199    #[inline]
1200    pub fn set_token(&self) -> Option<SyntaxToken> {
1201        support::token(&self.syntax, SyntaxKind::SET_KW)
1202    }
1203}
1204
1205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1206pub struct AlterOptionList {
1207    pub(crate) syntax: SyntaxNode,
1208}
1209impl AlterOptionList {
1210    #[inline]
1211    pub fn alter_options(&self) -> AstChildren<AlterOption> {
1212        support::children(&self.syntax)
1213    }
1214}
1215
1216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1217pub struct AlterPolicy {
1218    pub(crate) syntax: SyntaxNode,
1219}
1220impl AlterPolicy {
1221    #[inline]
1222    pub fn name_ref(&self) -> Option<NameRef> {
1223        support::child(&self.syntax)
1224    }
1225    #[inline]
1226    pub fn on_table(&self) -> Option<OnTable> {
1227        support::child(&self.syntax)
1228    }
1229    #[inline]
1230    pub fn rename_to(&self) -> Option<RenameTo> {
1231        support::child(&self.syntax)
1232    }
1233    #[inline]
1234    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1235        support::child(&self.syntax)
1236    }
1237    #[inline]
1238    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1239        support::child(&self.syntax)
1240    }
1241    #[inline]
1242    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1243        support::child(&self.syntax)
1244    }
1245    #[inline]
1246    pub fn alter_token(&self) -> Option<SyntaxToken> {
1247        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1248    }
1249    #[inline]
1250    pub fn policy_token(&self) -> Option<SyntaxToken> {
1251        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1252    }
1253    #[inline]
1254    pub fn to_token(&self) -> Option<SyntaxToken> {
1255        support::token(&self.syntax, SyntaxKind::TO_KW)
1256    }
1257}
1258
1259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1260pub struct AlterProcedure {
1261    pub(crate) syntax: SyntaxNode,
1262}
1263impl AlterProcedure {
1264    #[inline]
1265    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1266        support::child(&self.syntax)
1267    }
1268    #[inline]
1269    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1270        support::child(&self.syntax)
1271    }
1272    #[inline]
1273    pub fn function_sig(&self) -> Option<FunctionSig> {
1274        support::child(&self.syntax)
1275    }
1276    #[inline]
1277    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1278        support::child(&self.syntax)
1279    }
1280    #[inline]
1281    pub fn owner_to(&self) -> Option<OwnerTo> {
1282        support::child(&self.syntax)
1283    }
1284    #[inline]
1285    pub fn rename_to(&self) -> Option<RenameTo> {
1286        support::child(&self.syntax)
1287    }
1288    #[inline]
1289    pub fn set_schema(&self) -> Option<SetSchema> {
1290        support::child(&self.syntax)
1291    }
1292    #[inline]
1293    pub fn alter_token(&self) -> Option<SyntaxToken> {
1294        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1295    }
1296    #[inline]
1297    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1298        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1299    }
1300    #[inline]
1301    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1303    }
1304}
1305
1306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1307pub struct AlterPropertyGraph {
1308    pub(crate) syntax: SyntaxNode,
1309}
1310impl AlterPropertyGraph {
1311    #[inline]
1312    pub fn alter_property_graph_action(&self) -> Option<AlterPropertyGraphAction> {
1313        support::child(&self.syntax)
1314    }
1315    #[inline]
1316    pub fn if_exists(&self) -> Option<IfExists> {
1317        support::child(&self.syntax)
1318    }
1319    #[inline]
1320    pub fn path(&self) -> Option<Path> {
1321        support::child(&self.syntax)
1322    }
1323    #[inline]
1324    pub fn alter_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1326    }
1327    #[inline]
1328    pub fn graph_token(&self) -> Option<SyntaxToken> {
1329        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
1330    }
1331    #[inline]
1332    pub fn property_token(&self) -> Option<SyntaxToken> {
1333        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
1334    }
1335}
1336
1337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1338pub struct AlterPublication {
1339    pub(crate) syntax: SyntaxNode,
1340}
1341impl AlterPublication {
1342    #[inline]
1343    pub fn name_ref(&self) -> Option<NameRef> {
1344        support::child(&self.syntax)
1345    }
1346    #[inline]
1347    pub fn alter_token(&self) -> Option<SyntaxToken> {
1348        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1349    }
1350    #[inline]
1351    pub fn publication_token(&self) -> Option<SyntaxToken> {
1352        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1353    }
1354}
1355
1356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1357pub struct AlterRole {
1358    pub(crate) syntax: SyntaxNode,
1359}
1360impl AlterRole {
1361    #[inline]
1362    pub fn role_ref(&self) -> Option<RoleRef> {
1363        support::child(&self.syntax)
1364    }
1365    #[inline]
1366    pub fn alter_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1368    }
1369    #[inline]
1370    pub fn role_token(&self) -> Option<SyntaxToken> {
1371        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1372    }
1373}
1374
1375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1376pub struct AlterRoutine {
1377    pub(crate) syntax: SyntaxNode,
1378}
1379impl AlterRoutine {
1380    #[inline]
1381    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn function_sig(&self) -> Option<FunctionSig> {
1390        support::child(&self.syntax)
1391    }
1392    #[inline]
1393    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1394        support::child(&self.syntax)
1395    }
1396    #[inline]
1397    pub fn owner_to(&self) -> Option<OwnerTo> {
1398        support::child(&self.syntax)
1399    }
1400    #[inline]
1401    pub fn rename_to(&self) -> Option<RenameTo> {
1402        support::child(&self.syntax)
1403    }
1404    #[inline]
1405    pub fn set_schema(&self) -> Option<SetSchema> {
1406        support::child(&self.syntax)
1407    }
1408    #[inline]
1409    pub fn alter_token(&self) -> Option<SyntaxToken> {
1410        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1411    }
1412    #[inline]
1413    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1414        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1415    }
1416    #[inline]
1417    pub fn routine_token(&self) -> Option<SyntaxToken> {
1418        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1419    }
1420}
1421
1422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1423pub struct AlterRule {
1424    pub(crate) syntax: SyntaxNode,
1425}
1426impl AlterRule {
1427    #[inline]
1428    pub fn name_ref(&self) -> Option<NameRef> {
1429        support::child(&self.syntax)
1430    }
1431    #[inline]
1432    pub fn on_table(&self) -> Option<OnTable> {
1433        support::child(&self.syntax)
1434    }
1435    #[inline]
1436    pub fn rename_to(&self) -> Option<RenameTo> {
1437        support::child(&self.syntax)
1438    }
1439    #[inline]
1440    pub fn alter_token(&self) -> Option<SyntaxToken> {
1441        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1442    }
1443    #[inline]
1444    pub fn on_token(&self) -> Option<SyntaxToken> {
1445        support::token(&self.syntax, SyntaxKind::ON_KW)
1446    }
1447    #[inline]
1448    pub fn rule_token(&self) -> Option<SyntaxToken> {
1449        support::token(&self.syntax, SyntaxKind::RULE_KW)
1450    }
1451}
1452
1453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1454pub struct AlterSchema {
1455    pub(crate) syntax: SyntaxNode,
1456}
1457impl AlterSchema {
1458    #[inline]
1459    pub fn name_ref(&self) -> Option<NameRef> {
1460        support::child(&self.syntax)
1461    }
1462    #[inline]
1463    pub fn owner_to(&self) -> Option<OwnerTo> {
1464        support::child(&self.syntax)
1465    }
1466    #[inline]
1467    pub fn rename_to(&self) -> Option<RenameTo> {
1468        support::child(&self.syntax)
1469    }
1470    #[inline]
1471    pub fn alter_token(&self) -> Option<SyntaxToken> {
1472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1473    }
1474    #[inline]
1475    pub fn schema_token(&self) -> Option<SyntaxToken> {
1476        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1477    }
1478}
1479
1480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1481pub struct AlterSequence {
1482    pub(crate) syntax: SyntaxNode,
1483}
1484impl AlterSequence {
1485    #[inline]
1486    pub fn if_exists(&self) -> Option<IfExists> {
1487        support::child(&self.syntax)
1488    }
1489    #[inline]
1490    pub fn path(&self) -> Option<Path> {
1491        support::child(&self.syntax)
1492    }
1493    #[inline]
1494    pub fn alter_token(&self) -> Option<SyntaxToken> {
1495        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1496    }
1497    #[inline]
1498    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1499        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1500    }
1501}
1502
1503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1504pub struct AlterServer {
1505    pub(crate) syntax: SyntaxNode,
1506}
1507impl AlterServer {
1508    #[inline]
1509    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1510        support::child(&self.syntax)
1511    }
1512    #[inline]
1513    pub fn name_ref(&self) -> Option<NameRef> {
1514        support::child(&self.syntax)
1515    }
1516    #[inline]
1517    pub fn alter_token(&self) -> Option<SyntaxToken> {
1518        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1519    }
1520    #[inline]
1521    pub fn server_token(&self) -> Option<SyntaxToken> {
1522        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1523    }
1524}
1525
1526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1527pub struct AlterSetStatistics {
1528    pub(crate) syntax: SyntaxNode,
1529}
1530impl AlterSetStatistics {
1531    #[inline]
1532    pub fn literal(&self) -> Option<Literal> {
1533        support::child(&self.syntax)
1534    }
1535    #[inline]
1536    pub fn name_ref(&self) -> Option<NameRef> {
1537        support::child(&self.syntax)
1538    }
1539    #[inline]
1540    pub fn column_token(&self) -> Option<SyntaxToken> {
1541        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1542    }
1543    #[inline]
1544    pub fn set_token(&self) -> Option<SyntaxToken> {
1545        support::token(&self.syntax, SyntaxKind::SET_KW)
1546    }
1547    #[inline]
1548    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1549        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1550    }
1551}
1552
1553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1554pub struct AlterStatistics {
1555    pub(crate) syntax: SyntaxNode,
1556}
1557impl AlterStatistics {
1558    #[inline]
1559    pub fn path(&self) -> Option<Path> {
1560        support::child(&self.syntax)
1561    }
1562    #[inline]
1563    pub fn alter_token(&self) -> Option<SyntaxToken> {
1564        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1565    }
1566    #[inline]
1567    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1568        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1569    }
1570}
1571
1572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1573pub struct AlterSubscription {
1574    pub(crate) syntax: SyntaxNode,
1575}
1576impl AlterSubscription {
1577    #[inline]
1578    pub fn name_ref(&self) -> Option<NameRef> {
1579        support::child(&self.syntax)
1580    }
1581    #[inline]
1582    pub fn alter_token(&self) -> Option<SyntaxToken> {
1583        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1584    }
1585    #[inline]
1586    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1587        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1588    }
1589}
1590
1591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1592pub struct AlterSystem {
1593    pub(crate) syntax: SyntaxNode,
1594}
1595impl AlterSystem {
1596    #[inline]
1597    pub fn alter_token(&self) -> Option<SyntaxToken> {
1598        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1599    }
1600    #[inline]
1601    pub fn set_token(&self) -> Option<SyntaxToken> {
1602        support::token(&self.syntax, SyntaxKind::SET_KW)
1603    }
1604    #[inline]
1605    pub fn system_token(&self) -> Option<SyntaxToken> {
1606        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1607    }
1608}
1609
1610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1611pub struct AlterTable {
1612    pub(crate) syntax: SyntaxNode,
1613}
1614impl AlterTable {
1615    #[inline]
1616    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1617        support::children(&self.syntax)
1618    }
1619    #[inline]
1620    pub fn relation_name(&self) -> Option<RelationName> {
1621        support::child(&self.syntax)
1622    }
1623    #[inline]
1624    pub fn alter_token(&self) -> Option<SyntaxToken> {
1625        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1626    }
1627    #[inline]
1628    pub fn table_token(&self) -> Option<SyntaxToken> {
1629        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1630    }
1631}
1632
1633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1634pub struct AlterTablespace {
1635    pub(crate) syntax: SyntaxNode,
1636}
1637impl AlterTablespace {
1638    #[inline]
1639    pub fn owner_to(&self) -> Option<OwnerTo> {
1640        support::child(&self.syntax)
1641    }
1642    #[inline]
1643    pub fn path(&self) -> Option<Path> {
1644        support::child(&self.syntax)
1645    }
1646    #[inline]
1647    pub fn rename_to(&self) -> Option<RenameTo> {
1648        support::child(&self.syntax)
1649    }
1650    #[inline]
1651    pub fn reset_options(&self) -> Option<ResetOptions> {
1652        support::child(&self.syntax)
1653    }
1654    #[inline]
1655    pub fn set_options(&self) -> Option<SetOptions> {
1656        support::child(&self.syntax)
1657    }
1658    #[inline]
1659    pub fn alter_token(&self) -> Option<SyntaxToken> {
1660        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1661    }
1662    #[inline]
1663    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1664        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1665    }
1666}
1667
1668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1669pub struct AlterTextSearchConfiguration {
1670    pub(crate) syntax: SyntaxNode,
1671}
1672impl AlterTextSearchConfiguration {
1673    #[inline]
1674    pub fn owner_to(&self) -> Option<OwnerTo> {
1675        support::child(&self.syntax)
1676    }
1677    #[inline]
1678    pub fn path(&self) -> Option<Path> {
1679        support::child(&self.syntax)
1680    }
1681    #[inline]
1682    pub fn rename_to(&self) -> Option<RenameTo> {
1683        support::child(&self.syntax)
1684    }
1685    #[inline]
1686    pub fn set_schema(&self) -> Option<SetSchema> {
1687        support::child(&self.syntax)
1688    }
1689    #[inline]
1690    pub fn alter_token(&self) -> Option<SyntaxToken> {
1691        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1692    }
1693    #[inline]
1694    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1695        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1696    }
1697    #[inline]
1698    pub fn search_token(&self) -> Option<SyntaxToken> {
1699        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1700    }
1701    #[inline]
1702    pub fn text_token(&self) -> Option<SyntaxToken> {
1703        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1704    }
1705}
1706
1707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1708pub struct AlterTextSearchDictionary {
1709    pub(crate) syntax: SyntaxNode,
1710}
1711impl AlterTextSearchDictionary {
1712    #[inline]
1713    pub fn attribute_list(&self) -> Option<AttributeList> {
1714        support::child(&self.syntax)
1715    }
1716    #[inline]
1717    pub fn owner_to(&self) -> Option<OwnerTo> {
1718        support::child(&self.syntax)
1719    }
1720    #[inline]
1721    pub fn path(&self) -> Option<Path> {
1722        support::child(&self.syntax)
1723    }
1724    #[inline]
1725    pub fn rename_to(&self) -> Option<RenameTo> {
1726        support::child(&self.syntax)
1727    }
1728    #[inline]
1729    pub fn set_schema(&self) -> Option<SetSchema> {
1730        support::child(&self.syntax)
1731    }
1732    #[inline]
1733    pub fn alter_token(&self) -> Option<SyntaxToken> {
1734        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1735    }
1736    #[inline]
1737    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1738        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1739    }
1740    #[inline]
1741    pub fn search_token(&self) -> Option<SyntaxToken> {
1742        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1743    }
1744    #[inline]
1745    pub fn text_token(&self) -> Option<SyntaxToken> {
1746        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct AlterTextSearchParser {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl AlterTextSearchParser {
1755    #[inline]
1756    pub fn path(&self) -> Option<Path> {
1757        support::child(&self.syntax)
1758    }
1759    #[inline]
1760    pub fn rename_to(&self) -> Option<RenameTo> {
1761        support::child(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn set_schema(&self) -> Option<SetSchema> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn alter_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1770    }
1771    #[inline]
1772    pub fn parser_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1774    }
1775    #[inline]
1776    pub fn search_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1778    }
1779    #[inline]
1780    pub fn text_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1782    }
1783}
1784
1785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1786pub struct AlterTextSearchTemplate {
1787    pub(crate) syntax: SyntaxNode,
1788}
1789impl AlterTextSearchTemplate {
1790    #[inline]
1791    pub fn path(&self) -> Option<Path> {
1792        support::child(&self.syntax)
1793    }
1794    #[inline]
1795    pub fn rename_to(&self) -> Option<RenameTo> {
1796        support::child(&self.syntax)
1797    }
1798    #[inline]
1799    pub fn set_schema(&self) -> Option<SetSchema> {
1800        support::child(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn alter_token(&self) -> Option<SyntaxToken> {
1804        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1805    }
1806    #[inline]
1807    pub fn search_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1809    }
1810    #[inline]
1811    pub fn template_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1813    }
1814    #[inline]
1815    pub fn text_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1817    }
1818}
1819
1820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1821pub struct AlterTrigger {
1822    pub(crate) syntax: SyntaxNode,
1823}
1824impl AlterTrigger {
1825    #[inline]
1826    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1827        support::child(&self.syntax)
1828    }
1829    #[inline]
1830    pub fn name_ref(&self) -> Option<NameRef> {
1831        support::child(&self.syntax)
1832    }
1833    #[inline]
1834    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn on_table(&self) -> Option<OnTable> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn rename_to(&self) -> Option<RenameTo> {
1843        support::child(&self.syntax)
1844    }
1845    #[inline]
1846    pub fn alter_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1848    }
1849    #[inline]
1850    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1852    }
1853}
1854
1855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1856pub struct AlterType {
1857    pub(crate) syntax: SyntaxNode,
1858}
1859impl AlterType {
1860    #[inline]
1861    pub fn add_value(&self) -> Option<AddValue> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn alter_type_actions(&self) -> AstChildren<AlterTypeAction> {
1866        support::children(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn owner_to(&self) -> Option<OwnerTo> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn path(&self) -> Option<Path> {
1874        support::child(&self.syntax)
1875    }
1876    #[inline]
1877    pub fn rename_attribute(&self) -> Option<RenameAttribute> {
1878        support::child(&self.syntax)
1879    }
1880    #[inline]
1881    pub fn rename_to(&self) -> Option<RenameTo> {
1882        support::child(&self.syntax)
1883    }
1884    #[inline]
1885    pub fn rename_value(&self) -> Option<RenameValue> {
1886        support::child(&self.syntax)
1887    }
1888    #[inline]
1889    pub fn set_options(&self) -> Option<SetOptions> {
1890        support::child(&self.syntax)
1891    }
1892    #[inline]
1893    pub fn set_schema(&self) -> Option<SetSchema> {
1894        support::child(&self.syntax)
1895    }
1896    #[inline]
1897    pub fn alter_token(&self) -> Option<SyntaxToken> {
1898        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1899    }
1900    #[inline]
1901    pub fn type_token(&self) -> Option<SyntaxToken> {
1902        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1903    }
1904}
1905
1906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1907pub struct AlterUser {
1908    pub(crate) syntax: SyntaxNode,
1909}
1910impl AlterUser {
1911    #[inline]
1912    pub fn role_ref(&self) -> Option<RoleRef> {
1913        support::child(&self.syntax)
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 user_token(&self) -> Option<SyntaxToken> {
1921        support::token(&self.syntax, SyntaxKind::USER_KW)
1922    }
1923}
1924
1925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1926pub struct AlterUserMapping {
1927    pub(crate) syntax: SyntaxNode,
1928}
1929impl AlterUserMapping {
1930    #[inline]
1931    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1932        support::child(&self.syntax)
1933    }
1934    #[inline]
1935    pub fn role_ref(&self) -> Option<RoleRef> {
1936        support::child(&self.syntax)
1937    }
1938    #[inline]
1939    pub fn server_name(&self) -> Option<ServerName> {
1940        support::child(&self.syntax)
1941    }
1942    #[inline]
1943    pub fn alter_token(&self) -> Option<SyntaxToken> {
1944        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1945    }
1946    #[inline]
1947    pub fn for_token(&self) -> Option<SyntaxToken> {
1948        support::token(&self.syntax, SyntaxKind::FOR_KW)
1949    }
1950    #[inline]
1951    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1952        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1953    }
1954    #[inline]
1955    pub fn user_token(&self) -> Option<SyntaxToken> {
1956        support::token(&self.syntax, SyntaxKind::USER_KW)
1957    }
1958}
1959
1960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1961pub struct AlterVertexEdgeLabels {
1962    pub(crate) syntax: SyntaxNode,
1963}
1964impl AlterVertexEdgeLabels {
1965    #[inline]
1966    pub fn add_label(&self) -> Option<AddLabel> {
1967        support::child(&self.syntax)
1968    }
1969    #[inline]
1970    pub fn add_labels(&self) -> AstChildren<AddLabel> {
1971        support::children(&self.syntax)
1972    }
1973    #[inline]
1974    pub fn name(&self) -> Option<Name> {
1975        support::child(&self.syntax)
1976    }
1977    #[inline]
1978    pub fn alter_token(&self) -> Option<SyntaxToken> {
1979        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1980    }
1981    #[inline]
1982    pub fn edge_token(&self) -> Option<SyntaxToken> {
1983        support::token(&self.syntax, SyntaxKind::EDGE_KW)
1984    }
1985    #[inline]
1986    pub fn node_token(&self) -> Option<SyntaxToken> {
1987        support::token(&self.syntax, SyntaxKind::NODE_KW)
1988    }
1989    #[inline]
1990    pub fn relationship_token(&self) -> Option<SyntaxToken> {
1991        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
1992    }
1993    #[inline]
1994    pub fn table_token(&self) -> Option<SyntaxToken> {
1995        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1996    }
1997    #[inline]
1998    pub fn vertex_token(&self) -> Option<SyntaxToken> {
1999        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
2000    }
2001}
2002
2003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2004pub struct AlterView {
2005    pub(crate) syntax: SyntaxNode,
2006}
2007impl AlterView {
2008    #[inline]
2009    pub fn path(&self) -> Option<Path> {
2010        support::child(&self.syntax)
2011    }
2012    #[inline]
2013    pub fn alter_token(&self) -> Option<SyntaxToken> {
2014        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2015    }
2016    #[inline]
2017    pub fn view_token(&self) -> Option<SyntaxToken> {
2018        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2019    }
2020}
2021
2022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2023pub struct Analyze {
2024    pub(crate) syntax: SyntaxNode,
2025}
2026impl Analyze {
2027    #[inline]
2028    pub fn option_item_list(&self) -> Option<OptionItemList> {
2029        support::child(&self.syntax)
2030    }
2031    #[inline]
2032    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
2033        support::child(&self.syntax)
2034    }
2035    #[inline]
2036    pub fn analyse_token(&self) -> Option<SyntaxToken> {
2037        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
2038    }
2039    #[inline]
2040    pub fn analyze_token(&self) -> Option<SyntaxToken> {
2041        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
2042    }
2043    #[inline]
2044    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2045        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2046    }
2047}
2048
2049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2050pub struct AnyFn {
2051    pub(crate) syntax: SyntaxNode,
2052}
2053impl AnyFn {
2054    #[inline]
2055    pub fn expr(&self) -> Option<Expr> {
2056        support::child(&self.syntax)
2057    }
2058    #[inline]
2059    pub fn select_variant(&self) -> Option<SelectVariant> {
2060        support::child(&self.syntax)
2061    }
2062    #[inline]
2063    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2064        support::token(&self.syntax, SyntaxKind::L_PAREN)
2065    }
2066    #[inline]
2067    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2068        support::token(&self.syntax, SyntaxKind::R_PAREN)
2069    }
2070    #[inline]
2071    pub fn any_token(&self) -> Option<SyntaxToken> {
2072        support::token(&self.syntax, SyntaxKind::ANY_KW)
2073    }
2074}
2075
2076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2077pub struct Arg {
2078    pub(crate) syntax: SyntaxNode,
2079}
2080impl Arg {
2081    #[inline]
2082    pub fn expr(&self) -> Option<Expr> {
2083        support::child(&self.syntax)
2084    }
2085}
2086
2087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2088pub struct ArgList {
2089    pub(crate) syntax: SyntaxNode,
2090}
2091impl ArgList {
2092    #[inline]
2093    pub fn args(&self) -> AstChildren<Expr> {
2094        support::children(&self.syntax)
2095    }
2096    #[inline]
2097    pub fn expr(&self) -> Option<Expr> {
2098        support::child(&self.syntax)
2099    }
2100    #[inline]
2101    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2102        support::token(&self.syntax, SyntaxKind::L_PAREN)
2103    }
2104    #[inline]
2105    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2106        support::token(&self.syntax, SyntaxKind::R_PAREN)
2107    }
2108    #[inline]
2109    pub fn star_token(&self) -> Option<SyntaxToken> {
2110        support::token(&self.syntax, SyntaxKind::STAR)
2111    }
2112    #[inline]
2113    pub fn all_token(&self) -> Option<SyntaxToken> {
2114        support::token(&self.syntax, SyntaxKind::ALL_KW)
2115    }
2116    #[inline]
2117    pub fn distinct_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
2119    }
2120    #[inline]
2121    pub fn variadic_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
2123    }
2124}
2125
2126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2127pub struct ArrayExpr {
2128    pub(crate) syntax: SyntaxNode,
2129}
2130impl ArrayExpr {
2131    #[inline]
2132    pub fn exprs(&self) -> AstChildren<Expr> {
2133        support::children(&self.syntax)
2134    }
2135    #[inline]
2136    pub fn select(&self) -> Option<Select> {
2137        support::child(&self.syntax)
2138    }
2139    #[inline]
2140    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2141        support::token(&self.syntax, SyntaxKind::L_PAREN)
2142    }
2143    #[inline]
2144    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2145        support::token(&self.syntax, SyntaxKind::R_PAREN)
2146    }
2147    #[inline]
2148    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::L_BRACK)
2150    }
2151    #[inline]
2152    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2153        support::token(&self.syntax, SyntaxKind::R_BRACK)
2154    }
2155    #[inline]
2156    pub fn array_token(&self) -> Option<SyntaxToken> {
2157        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2158    }
2159}
2160
2161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2162pub struct ArrayType {
2163    pub(crate) syntax: SyntaxNode,
2164}
2165impl ArrayType {
2166    #[inline]
2167    pub fn expr(&self) -> Option<Expr> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn name_ref(&self) -> Option<NameRef> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn ty(&self) -> Option<Type> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2180        support::token(&self.syntax, SyntaxKind::L_BRACK)
2181    }
2182    #[inline]
2183    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2184        support::token(&self.syntax, SyntaxKind::R_BRACK)
2185    }
2186    #[inline]
2187    pub fn array_token(&self) -> Option<SyntaxToken> {
2188        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2189    }
2190}
2191
2192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2193pub struct AsFuncOption {
2194    pub(crate) syntax: SyntaxNode,
2195}
2196impl AsFuncOption {
2197    #[inline]
2198    pub fn definition(&self) -> Option<Literal> {
2199        support::child(&self.syntax)
2200    }
2201    #[inline]
2202    pub fn link_symbol(&self) -> Option<Literal> {
2203        support::child(&self.syntax)
2204    }
2205    #[inline]
2206    pub fn obj_file(&self) -> Option<Literal> {
2207        support::child(&self.syntax)
2208    }
2209    #[inline]
2210    pub fn comma_token(&self) -> Option<SyntaxToken> {
2211        support::token(&self.syntax, SyntaxKind::COMMA)
2212    }
2213    #[inline]
2214    pub fn as_token(&self) -> Option<SyntaxToken> {
2215        support::token(&self.syntax, SyntaxKind::AS_KW)
2216    }
2217}
2218
2219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2220pub struct AsName {
2221    pub(crate) syntax: SyntaxNode,
2222}
2223impl AsName {
2224    #[inline]
2225    pub fn name(&self) -> Option<Name> {
2226        support::child(&self.syntax)
2227    }
2228    #[inline]
2229    pub fn as_token(&self) -> Option<SyntaxToken> {
2230        support::token(&self.syntax, SyntaxKind::AS_KW)
2231    }
2232}
2233
2234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2235pub struct AsPolicyType {
2236    pub(crate) syntax: SyntaxNode,
2237}
2238impl AsPolicyType {
2239    #[inline]
2240    pub fn as_token(&self) -> Option<SyntaxToken> {
2241        support::token(&self.syntax, SyntaxKind::AS_KW)
2242    }
2243    #[inline]
2244    pub fn ident_token(&self) -> Option<SyntaxToken> {
2245        support::token(&self.syntax, SyntaxKind::IDENT)
2246    }
2247}
2248
2249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2250pub struct AtTimeZone {
2251    pub(crate) syntax: SyntaxNode,
2252}
2253impl AtTimeZone {
2254    #[inline]
2255    pub fn at_token(&self) -> Option<SyntaxToken> {
2256        support::token(&self.syntax, SyntaxKind::AT_KW)
2257    }
2258    #[inline]
2259    pub fn time_token(&self) -> Option<SyntaxToken> {
2260        support::token(&self.syntax, SyntaxKind::TIME_KW)
2261    }
2262    #[inline]
2263    pub fn zone_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::ZONE_KW)
2265    }
2266}
2267
2268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2269pub struct AttachPartition {
2270    pub(crate) syntax: SyntaxNode,
2271}
2272impl AttachPartition {
2273    #[inline]
2274    pub fn partition_type(&self) -> Option<PartitionType> {
2275        support::child(&self.syntax)
2276    }
2277    #[inline]
2278    pub fn path(&self) -> Option<Path> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn attach_token(&self) -> Option<SyntaxToken> {
2283        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
2284    }
2285    #[inline]
2286    pub fn partition_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
2288    }
2289}
2290
2291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2292pub struct AttributeList {
2293    pub(crate) syntax: SyntaxNode,
2294}
2295impl AttributeList {
2296    #[inline]
2297    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
2298        support::children(&self.syntax)
2299    }
2300    #[inline]
2301    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2302        support::token(&self.syntax, SyntaxKind::L_PAREN)
2303    }
2304    #[inline]
2305    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2306        support::token(&self.syntax, SyntaxKind::R_PAREN)
2307    }
2308}
2309
2310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2311pub struct AttributeOption {
2312    pub(crate) syntax: SyntaxNode,
2313}
2314impl AttributeOption {
2315    #[inline]
2316    pub fn attribute_value(&self) -> Option<AttributeValue> {
2317        support::child(&self.syntax)
2318    }
2319    #[inline]
2320    pub fn name(&self) -> Option<Name> {
2321        support::child(&self.syntax)
2322    }
2323    #[inline]
2324    pub fn dot_token(&self) -> Option<SyntaxToken> {
2325        support::token(&self.syntax, SyntaxKind::DOT)
2326    }
2327    #[inline]
2328    pub fn eq_token(&self) -> Option<SyntaxToken> {
2329        support::token(&self.syntax, SyntaxKind::EQ)
2330    }
2331}
2332
2333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2334pub struct AttributeValue {
2335    pub(crate) syntax: SyntaxNode,
2336}
2337impl AttributeValue {
2338    #[inline]
2339    pub fn literal(&self) -> Option<Literal> {
2340        support::child(&self.syntax)
2341    }
2342    #[inline]
2343    pub fn op(&self) -> Option<Op> {
2344        support::child(&self.syntax)
2345    }
2346    #[inline]
2347    pub fn ty(&self) -> Option<Type> {
2348        support::child(&self.syntax)
2349    }
2350    #[inline]
2351    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2352        support::token(&self.syntax, SyntaxKind::L_PAREN)
2353    }
2354    #[inline]
2355    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2356        support::token(&self.syntax, SyntaxKind::R_PAREN)
2357    }
2358    #[inline]
2359    pub fn none_token(&self) -> Option<SyntaxToken> {
2360        support::token(&self.syntax, SyntaxKind::NONE_KW)
2361    }
2362    #[inline]
2363    pub fn operator_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2365    }
2366}
2367
2368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2369pub struct BeforeValue {
2370    pub(crate) syntax: SyntaxNode,
2371}
2372impl BeforeValue {
2373    #[inline]
2374    pub fn literal(&self) -> Option<Literal> {
2375        support::child(&self.syntax)
2376    }
2377    #[inline]
2378    pub fn before_token(&self) -> Option<SyntaxToken> {
2379        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
2380    }
2381}
2382
2383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2384pub struct Begin {
2385    pub(crate) syntax: SyntaxNode,
2386}
2387impl Begin {
2388    #[inline]
2389    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2390        support::child(&self.syntax)
2391    }
2392    #[inline]
2393    pub fn begin_token(&self) -> Option<SyntaxToken> {
2394        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2395    }
2396    #[inline]
2397    pub fn start_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::START_KW)
2399    }
2400    #[inline]
2401    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2402        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2403    }
2404    #[inline]
2405    pub fn work_token(&self) -> Option<SyntaxToken> {
2406        support::token(&self.syntax, SyntaxKind::WORK_KW)
2407    }
2408}
2409
2410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2411pub struct BeginFuncOption {
2412    pub(crate) syntax: SyntaxNode,
2413}
2414impl BeginFuncOption {
2415    #[inline]
2416    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2417        support::child(&self.syntax)
2418    }
2419    #[inline]
2420    pub fn stmt(&self) -> Option<Stmt> {
2421        support::child(&self.syntax)
2422    }
2423    #[inline]
2424    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2426    }
2427}
2428
2429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2430pub struct BeginFuncOptionList {
2431    pub(crate) syntax: SyntaxNode,
2432}
2433impl BeginFuncOptionList {
2434    #[inline]
2435    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2436        support::children(&self.syntax)
2437    }
2438    #[inline]
2439    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2440        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2441    }
2442    #[inline]
2443    pub fn begin_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2445    }
2446    #[inline]
2447    pub fn end_token(&self) -> Option<SyntaxToken> {
2448        support::token(&self.syntax, SyntaxKind::END_KW)
2449    }
2450}
2451
2452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2453pub struct BetweenExpr {
2454    pub(crate) syntax: SyntaxNode,
2455}
2456impl BetweenExpr {
2457    #[inline]
2458    pub fn and_token(&self) -> Option<SyntaxToken> {
2459        support::token(&self.syntax, SyntaxKind::AND_KW)
2460    }
2461    #[inline]
2462    pub fn between_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2464    }
2465    #[inline]
2466    pub fn not_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::NOT_KW)
2468    }
2469    #[inline]
2470    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
2471        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
2472    }
2473}
2474
2475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2476pub struct BinExpr {
2477    pub(crate) syntax: SyntaxNode,
2478}
2479impl BinExpr {}
2480
2481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2482pub struct BitType {
2483    pub(crate) syntax: SyntaxNode,
2484}
2485impl BitType {
2486    #[inline]
2487    pub fn arg_list(&self) -> Option<ArgList> {
2488        support::child(&self.syntax)
2489    }
2490    #[inline]
2491    pub fn bit_token(&self) -> Option<SyntaxToken> {
2492        support::token(&self.syntax, SyntaxKind::BIT_KW)
2493    }
2494    #[inline]
2495    pub fn setof_token(&self) -> Option<SyntaxToken> {
2496        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2497    }
2498    #[inline]
2499    pub fn varying_token(&self) -> Option<SyntaxToken> {
2500        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2501    }
2502}
2503
2504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2505pub struct Call {
2506    pub(crate) syntax: SyntaxNode,
2507}
2508impl Call {
2509    #[inline]
2510    pub fn arg_list(&self) -> Option<ArgList> {
2511        support::child(&self.syntax)
2512    }
2513    #[inline]
2514    pub fn path(&self) -> Option<Path> {
2515        support::child(&self.syntax)
2516    }
2517    #[inline]
2518    pub fn call_token(&self) -> Option<SyntaxToken> {
2519        support::token(&self.syntax, SyntaxKind::CALL_KW)
2520    }
2521}
2522
2523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2524pub struct CallExpr {
2525    pub(crate) syntax: SyntaxNode,
2526}
2527impl CallExpr {
2528    #[inline]
2529    pub fn all_fn(&self) -> Option<AllFn> {
2530        support::child(&self.syntax)
2531    }
2532    #[inline]
2533    pub fn any_fn(&self) -> Option<AnyFn> {
2534        support::child(&self.syntax)
2535    }
2536    #[inline]
2537    pub fn arg_list(&self) -> Option<ArgList> {
2538        support::child(&self.syntax)
2539    }
2540    #[inline]
2541    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2542        support::child(&self.syntax)
2543    }
2544    #[inline]
2545    pub fn exists_fn(&self) -> Option<ExistsFn> {
2546        support::child(&self.syntax)
2547    }
2548    #[inline]
2549    pub fn expr(&self) -> Option<Expr> {
2550        support::child(&self.syntax)
2551    }
2552    #[inline]
2553    pub fn extract_fn(&self) -> Option<ExtractFn> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn filter_clause(&self) -> Option<FilterClause> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn json_fn(&self) -> Option<JsonFn> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn over_clause(&self) -> Option<OverClause> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn position_fn(&self) -> Option<PositionFn> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn some_fn(&self) -> Option<SomeFn> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn substring_fn(&self) -> Option<SubstringFn> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn trim_fn(&self) -> Option<TrimFn> {
2626        support::child(&self.syntax)
2627    }
2628    #[inline]
2629    pub fn within_clause(&self) -> Option<WithinClause> {
2630        support::child(&self.syntax)
2631    }
2632    #[inline]
2633    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2634        support::child(&self.syntax)
2635    }
2636    #[inline]
2637    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2638        support::child(&self.syntax)
2639    }
2640    #[inline]
2641    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2642        support::child(&self.syntax)
2643    }
2644    #[inline]
2645    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2646        support::child(&self.syntax)
2647    }
2648    #[inline]
2649    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2650        support::child(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2654        support::child(&self.syntax)
2655    }
2656    #[inline]
2657    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2658        support::child(&self.syntax)
2659    }
2660}
2661
2662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2663pub struct Cascade {
2664    pub(crate) syntax: SyntaxNode,
2665}
2666impl Cascade {
2667    #[inline]
2668    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2669        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2670    }
2671}
2672
2673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2674pub struct CaseExpr {
2675    pub(crate) syntax: SyntaxNode,
2676}
2677impl CaseExpr {
2678    #[inline]
2679    pub fn else_clause(&self) -> Option<ElseClause> {
2680        support::child(&self.syntax)
2681    }
2682    #[inline]
2683    pub fn expr(&self) -> Option<Expr> {
2684        support::child(&self.syntax)
2685    }
2686    #[inline]
2687    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2688        support::child(&self.syntax)
2689    }
2690    #[inline]
2691    pub fn case_token(&self) -> Option<SyntaxToken> {
2692        support::token(&self.syntax, SyntaxKind::CASE_KW)
2693    }
2694}
2695
2696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2697pub struct CastExpr {
2698    pub(crate) syntax: SyntaxNode,
2699}
2700impl CastExpr {
2701    #[inline]
2702    pub fn colon_colon(&self) -> Option<ColonColon> {
2703        support::child(&self.syntax)
2704    }
2705    #[inline]
2706    pub fn expr(&self) -> Option<Expr> {
2707        support::child(&self.syntax)
2708    }
2709    #[inline]
2710    pub fn literal(&self) -> Option<Literal> {
2711        support::child(&self.syntax)
2712    }
2713    #[inline]
2714    pub fn ty(&self) -> Option<Type> {
2715        support::child(&self.syntax)
2716    }
2717    #[inline]
2718    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::L_PAREN)
2720    }
2721    #[inline]
2722    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::R_PAREN)
2724    }
2725    #[inline]
2726    pub fn as_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::AS_KW)
2728    }
2729    #[inline]
2730    pub fn cast_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::CAST_KW)
2732    }
2733    #[inline]
2734    pub fn treat_token(&self) -> Option<SyntaxToken> {
2735        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2736    }
2737}
2738
2739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2740pub struct CastSig {
2741    pub(crate) syntax: SyntaxNode,
2742}
2743impl CastSig {
2744    #[inline]
2745    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::L_PAREN)
2747    }
2748    #[inline]
2749    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::R_PAREN)
2751    }
2752    #[inline]
2753    pub fn as_token(&self) -> Option<SyntaxToken> {
2754        support::token(&self.syntax, SyntaxKind::AS_KW)
2755    }
2756}
2757
2758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2759pub struct CharType {
2760    pub(crate) syntax: SyntaxNode,
2761}
2762impl CharType {
2763    #[inline]
2764    pub fn arg_list(&self) -> Option<ArgList> {
2765        support::child(&self.syntax)
2766    }
2767    #[inline]
2768    pub fn char_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2770    }
2771    #[inline]
2772    pub fn character_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2774    }
2775    #[inline]
2776    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2777        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2778    }
2779    #[inline]
2780    pub fn setof_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2782    }
2783    #[inline]
2784    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2785        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2786    }
2787    #[inline]
2788    pub fn varying_token(&self) -> Option<SyntaxToken> {
2789        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2790    }
2791}
2792
2793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2794pub struct CheckConstraint {
2795    pub(crate) syntax: SyntaxNode,
2796}
2797impl CheckConstraint {
2798    #[inline]
2799    pub fn constraint_name(&self) -> Option<ConstraintName> {
2800        support::child(&self.syntax)
2801    }
2802    #[inline]
2803    pub fn expr(&self) -> Option<Expr> {
2804        support::child(&self.syntax)
2805    }
2806    #[inline]
2807    pub fn no_inherit(&self) -> Option<NoInherit> {
2808        support::child(&self.syntax)
2809    }
2810    #[inline]
2811    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2812        support::token(&self.syntax, SyntaxKind::L_PAREN)
2813    }
2814    #[inline]
2815    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2816        support::token(&self.syntax, SyntaxKind::R_PAREN)
2817    }
2818    #[inline]
2819    pub fn check_token(&self) -> Option<SyntaxToken> {
2820        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2821    }
2822}
2823
2824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2825pub struct Checkpoint {
2826    pub(crate) syntax: SyntaxNode,
2827}
2828impl Checkpoint {
2829    #[inline]
2830    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2831        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2832    }
2833}
2834
2835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2836pub struct Close {
2837    pub(crate) syntax: SyntaxNode,
2838}
2839impl Close {
2840    #[inline]
2841    pub fn name_ref(&self) -> Option<NameRef> {
2842        support::child(&self.syntax)
2843    }
2844    #[inline]
2845    pub fn close_token(&self) -> Option<SyntaxToken> {
2846        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2847    }
2848}
2849
2850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2851pub struct Cluster {
2852    pub(crate) syntax: SyntaxNode,
2853}
2854impl Cluster {
2855    #[inline]
2856    pub fn option_item_list(&self) -> Option<OptionItemList> {
2857        support::child(&self.syntax)
2858    }
2859    #[inline]
2860    pub fn path(&self) -> Option<Path> {
2861        support::child(&self.syntax)
2862    }
2863    #[inline]
2864    pub fn using_method(&self) -> Option<UsingMethod> {
2865        support::child(&self.syntax)
2866    }
2867    #[inline]
2868    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2869        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2870    }
2871    #[inline]
2872    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2873        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2874    }
2875}
2876
2877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2878pub struct ClusterOn {
2879    pub(crate) syntax: SyntaxNode,
2880}
2881impl ClusterOn {
2882    #[inline]
2883    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2884        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2885    }
2886    #[inline]
2887    pub fn on_token(&self) -> Option<SyntaxToken> {
2888        support::token(&self.syntax, SyntaxKind::ON_KW)
2889    }
2890}
2891
2892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2893pub struct Collate {
2894    pub(crate) syntax: SyntaxNode,
2895}
2896impl Collate {
2897    #[inline]
2898    pub fn path(&self) -> Option<Path> {
2899        support::child(&self.syntax)
2900    }
2901    #[inline]
2902    pub fn collate_token(&self) -> Option<SyntaxToken> {
2903        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2904    }
2905}
2906
2907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2908pub struct CollationForFn {
2909    pub(crate) syntax: SyntaxNode,
2910}
2911impl CollationForFn {
2912    #[inline]
2913    pub fn expr(&self) -> Option<Expr> {
2914        support::child(&self.syntax)
2915    }
2916    #[inline]
2917    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2918        support::token(&self.syntax, SyntaxKind::L_PAREN)
2919    }
2920    #[inline]
2921    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2922        support::token(&self.syntax, SyntaxKind::R_PAREN)
2923    }
2924    #[inline]
2925    pub fn collation_token(&self) -> Option<SyntaxToken> {
2926        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2927    }
2928    #[inline]
2929    pub fn for_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::FOR_KW)
2931    }
2932}
2933
2934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2935pub struct ColonColon {
2936    pub(crate) syntax: SyntaxNode,
2937}
2938impl ColonColon {
2939    #[inline]
2940    pub fn colon_token(&self) -> Option<SyntaxToken> {
2941        support::token(&self.syntax, SyntaxKind::COLON)
2942    }
2943}
2944
2945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2946pub struct ColonEq {
2947    pub(crate) syntax: SyntaxNode,
2948}
2949impl ColonEq {
2950    #[inline]
2951    pub fn colon_token(&self) -> Option<SyntaxToken> {
2952        support::token(&self.syntax, SyntaxKind::COLON)
2953    }
2954    #[inline]
2955    pub fn eq_token(&self) -> Option<SyntaxToken> {
2956        support::token(&self.syntax, SyntaxKind::EQ)
2957    }
2958}
2959
2960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2961pub struct Column {
2962    pub(crate) syntax: SyntaxNode,
2963}
2964impl Column {
2965    #[inline]
2966    pub fn collate(&self) -> Option<Collate> {
2967        support::child(&self.syntax)
2968    }
2969    #[inline]
2970    pub fn compression_method(&self) -> Option<CompressionMethod> {
2971        support::child(&self.syntax)
2972    }
2973    #[inline]
2974    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2975        support::children(&self.syntax)
2976    }
2977    #[inline]
2978    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2979        support::child(&self.syntax)
2980    }
2981    #[inline]
2982    pub fn enforced(&self) -> Option<Enforced> {
2983        support::child(&self.syntax)
2984    }
2985    #[inline]
2986    pub fn index_expr(&self) -> Option<IndexExpr> {
2987        support::child(&self.syntax)
2988    }
2989    #[inline]
2990    pub fn initially_deferred_constraint_option(
2991        &self,
2992    ) -> Option<InitiallyDeferredConstraintOption> {
2993        support::child(&self.syntax)
2994    }
2995    #[inline]
2996    pub fn initially_immediate_constraint_option(
2997        &self,
2998    ) -> Option<InitiallyImmediateConstraintOption> {
2999        support::child(&self.syntax)
3000    }
3001    #[inline]
3002    pub fn name(&self) -> Option<Name> {
3003        support::child(&self.syntax)
3004    }
3005    #[inline]
3006    pub fn name_ref(&self) -> Option<NameRef> {
3007        support::child(&self.syntax)
3008    }
3009    #[inline]
3010    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn not_enforced(&self) -> Option<NotEnforced> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn storage(&self) -> Option<Storage> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn ty(&self) -> Option<Type> {
3023        support::child(&self.syntax)
3024    }
3025    #[inline]
3026    pub fn with_options(&self) -> Option<WithOptions> {
3027        support::child(&self.syntax)
3028    }
3029    #[inline]
3030    pub fn period_token(&self) -> Option<SyntaxToken> {
3031        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3032    }
3033}
3034
3035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3036pub struct ColumnList {
3037    pub(crate) syntax: SyntaxNode,
3038}
3039impl ColumnList {
3040    #[inline]
3041    pub fn columns(&self) -> AstChildren<Column> {
3042        support::children(&self.syntax)
3043    }
3044    #[inline]
3045    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3046        support::token(&self.syntax, SyntaxKind::L_PAREN)
3047    }
3048    #[inline]
3049    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3050        support::token(&self.syntax, SyntaxKind::R_PAREN)
3051    }
3052}
3053
3054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3055pub struct CommentOn {
3056    pub(crate) syntax: SyntaxNode,
3057}
3058impl CommentOn {
3059    #[inline]
3060    pub fn aggregate(&self) -> Option<Aggregate> {
3061        support::child(&self.syntax)
3062    }
3063    #[inline]
3064    pub fn cast_sig(&self) -> Option<CastSig> {
3065        support::child(&self.syntax)
3066    }
3067    #[inline]
3068    pub fn function_sig(&self) -> Option<FunctionSig> {
3069        support::child(&self.syntax)
3070    }
3071    #[inline]
3072    pub fn literal(&self) -> Option<Literal> {
3073        support::child(&self.syntax)
3074    }
3075    #[inline]
3076    pub fn name_ref(&self) -> Option<NameRef> {
3077        support::child(&self.syntax)
3078    }
3079    #[inline]
3080    pub fn op(&self) -> Option<Op> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn path(&self) -> Option<Path> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn ty(&self) -> Option<Type> {
3089        support::child(&self.syntax)
3090    }
3091    #[inline]
3092    pub fn using_method(&self) -> Option<UsingMethod> {
3093        support::child(&self.syntax)
3094    }
3095    #[inline]
3096    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3097        support::token(&self.syntax, SyntaxKind::L_PAREN)
3098    }
3099    #[inline]
3100    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::R_PAREN)
3102    }
3103    #[inline]
3104    pub fn comma_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::COMMA)
3106    }
3107    #[inline]
3108    pub fn access_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3110    }
3111    #[inline]
3112    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3114    }
3115    #[inline]
3116    pub fn cast_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::CAST_KW)
3118    }
3119    #[inline]
3120    pub fn class_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3122    }
3123    #[inline]
3124    pub fn collation_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3126    }
3127    #[inline]
3128    pub fn column_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3130    }
3131    #[inline]
3132    pub fn comment_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3134    }
3135    #[inline]
3136    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3138    }
3139    #[inline]
3140    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3142    }
3143    #[inline]
3144    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3146    }
3147    #[inline]
3148    pub fn data_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::DATA_KW)
3150    }
3151    #[inline]
3152    pub fn database_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3154    }
3155    #[inline]
3156    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3158    }
3159    #[inline]
3160    pub fn domain_token(&self) -> Option<SyntaxToken> {
3161        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3162    }
3163    #[inline]
3164    pub fn event_token(&self) -> Option<SyntaxToken> {
3165        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3166    }
3167    #[inline]
3168    pub fn extension_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3170    }
3171    #[inline]
3172    pub fn family_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3174    }
3175    #[inline]
3176    pub fn for_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::FOR_KW)
3178    }
3179    #[inline]
3180    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3182    }
3183    #[inline]
3184    pub fn function_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3186    }
3187    #[inline]
3188    pub fn graph_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3190    }
3191    #[inline]
3192    pub fn index_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3194    }
3195    #[inline]
3196    pub fn is_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::IS_KW)
3198    }
3199    #[inline]
3200    pub fn language_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3202    }
3203    #[inline]
3204    pub fn large_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3206    }
3207    #[inline]
3208    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3210    }
3211    #[inline]
3212    pub fn method_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3214    }
3215    #[inline]
3216    pub fn null_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::NULL_KW)
3218    }
3219    #[inline]
3220    pub fn object_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3222    }
3223    #[inline]
3224    pub fn on_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::ON_KW)
3226    }
3227    #[inline]
3228    pub fn operator_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3230    }
3231    #[inline]
3232    pub fn parser_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3234    }
3235    #[inline]
3236    pub fn policy_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3238    }
3239    #[inline]
3240    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3242    }
3243    #[inline]
3244    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3246    }
3247    #[inline]
3248    pub fn property_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3250    }
3251    #[inline]
3252    pub fn publication_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3254    }
3255    #[inline]
3256    pub fn role_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3258    }
3259    #[inline]
3260    pub fn routine_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3262    }
3263    #[inline]
3264    pub fn rule_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::RULE_KW)
3266    }
3267    #[inline]
3268    pub fn schema_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3270    }
3271    #[inline]
3272    pub fn search_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3274    }
3275    #[inline]
3276    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3278    }
3279    #[inline]
3280    pub fn server_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3282    }
3283    #[inline]
3284    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3286    }
3287    #[inline]
3288    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3289        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3290    }
3291    #[inline]
3292    pub fn table_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3294    }
3295    #[inline]
3296    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3298    }
3299    #[inline]
3300    pub fn template_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3302    }
3303    #[inline]
3304    pub fn text_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3306    }
3307    #[inline]
3308    pub fn transform_token(&self) -> Option<SyntaxToken> {
3309        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3310    }
3311    #[inline]
3312    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3313        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3314    }
3315    #[inline]
3316    pub fn type_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3318    }
3319    #[inline]
3320    pub fn view_token(&self) -> Option<SyntaxToken> {
3321        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3322    }
3323    #[inline]
3324    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3325        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3326    }
3327}
3328
3329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3330pub struct Commit {
3331    pub(crate) syntax: SyntaxNode,
3332}
3333impl Commit {
3334    #[inline]
3335    pub fn literal(&self) -> Option<Literal> {
3336        support::child(&self.syntax)
3337    }
3338    #[inline]
3339    pub fn and_token(&self) -> Option<SyntaxToken> {
3340        support::token(&self.syntax, SyntaxKind::AND_KW)
3341    }
3342    #[inline]
3343    pub fn chain_token(&self) -> Option<SyntaxToken> {
3344        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3345    }
3346    #[inline]
3347    pub fn commit_token(&self) -> Option<SyntaxToken> {
3348        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3349    }
3350    #[inline]
3351    pub fn no_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::NO_KW)
3353    }
3354    #[inline]
3355    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3357    }
3358    #[inline]
3359    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3360        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3361    }
3362    #[inline]
3363    pub fn work_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::WORK_KW)
3365    }
3366}
3367
3368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3369pub struct CompoundSelect {
3370    pub(crate) syntax: SyntaxNode,
3371}
3372impl CompoundSelect {
3373    #[inline]
3374    pub fn all_token(&self) -> Option<SyntaxToken> {
3375        support::token(&self.syntax, SyntaxKind::ALL_KW)
3376    }
3377    #[inline]
3378    pub fn except_token(&self) -> Option<SyntaxToken> {
3379        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3380    }
3381    #[inline]
3382    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3383        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3384    }
3385    #[inline]
3386    pub fn union_token(&self) -> Option<SyntaxToken> {
3387        support::token(&self.syntax, SyntaxKind::UNION_KW)
3388    }
3389}
3390
3391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3392pub struct CompressionMethod {
3393    pub(crate) syntax: SyntaxNode,
3394}
3395impl CompressionMethod {
3396    #[inline]
3397    pub fn compression_token(&self) -> Option<SyntaxToken> {
3398        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3399    }
3400    #[inline]
3401    pub fn default_token(&self) -> Option<SyntaxToken> {
3402        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3403    }
3404    #[inline]
3405    pub fn ident_token(&self) -> Option<SyntaxToken> {
3406        support::token(&self.syntax, SyntaxKind::IDENT)
3407    }
3408}
3409
3410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3411pub struct ConflictDoNothing {
3412    pub(crate) syntax: SyntaxNode,
3413}
3414impl ConflictDoNothing {
3415    #[inline]
3416    pub fn do_token(&self) -> Option<SyntaxToken> {
3417        support::token(&self.syntax, SyntaxKind::DO_KW)
3418    }
3419    #[inline]
3420    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3421        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3422    }
3423}
3424
3425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3426pub struct ConflictDoSelect {
3427    pub(crate) syntax: SyntaxNode,
3428}
3429impl ConflictDoSelect {
3430    #[inline]
3431    pub fn locking_clause(&self) -> Option<LockingClause> {
3432        support::child(&self.syntax)
3433    }
3434    #[inline]
3435    pub fn where_clause(&self) -> Option<WhereClause> {
3436        support::child(&self.syntax)
3437    }
3438    #[inline]
3439    pub fn do_token(&self) -> Option<SyntaxToken> {
3440        support::token(&self.syntax, SyntaxKind::DO_KW)
3441    }
3442    #[inline]
3443    pub fn select_token(&self) -> Option<SyntaxToken> {
3444        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3445    }
3446}
3447
3448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3449pub struct ConflictDoUpdateSet {
3450    pub(crate) syntax: SyntaxNode,
3451}
3452impl ConflictDoUpdateSet {
3453    #[inline]
3454    pub fn set_clause(&self) -> Option<SetClause> {
3455        support::child(&self.syntax)
3456    }
3457    #[inline]
3458    pub fn where_clause(&self) -> Option<WhereClause> {
3459        support::child(&self.syntax)
3460    }
3461    #[inline]
3462    pub fn do_token(&self) -> Option<SyntaxToken> {
3463        support::token(&self.syntax, SyntaxKind::DO_KW)
3464    }
3465    #[inline]
3466    pub fn update_token(&self) -> Option<SyntaxToken> {
3467        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3468    }
3469}
3470
3471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3472pub struct ConflictIndexItem {
3473    pub(crate) syntax: SyntaxNode,
3474}
3475impl ConflictIndexItem {
3476    #[inline]
3477    pub fn collate(&self) -> Option<Collate> {
3478        support::child(&self.syntax)
3479    }
3480    #[inline]
3481    pub fn expr(&self) -> Option<Expr> {
3482        support::child(&self.syntax)
3483    }
3484    #[inline]
3485    pub fn ident_token(&self) -> Option<SyntaxToken> {
3486        support::token(&self.syntax, SyntaxKind::IDENT)
3487    }
3488}
3489
3490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3491pub struct ConflictIndexItemList {
3492    pub(crate) syntax: SyntaxNode,
3493}
3494impl ConflictIndexItemList {
3495    #[inline]
3496    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3497        support::children(&self.syntax)
3498    }
3499    #[inline]
3500    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3501        support::token(&self.syntax, SyntaxKind::L_PAREN)
3502    }
3503    #[inline]
3504    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3505        support::token(&self.syntax, SyntaxKind::R_PAREN)
3506    }
3507}
3508
3509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3510pub struct ConflictOnConstraint {
3511    pub(crate) syntax: SyntaxNode,
3512}
3513impl ConflictOnConstraint {
3514    #[inline]
3515    pub fn name_ref(&self) -> Option<NameRef> {
3516        support::child(&self.syntax)
3517    }
3518    #[inline]
3519    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3520        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3521    }
3522    #[inline]
3523    pub fn on_token(&self) -> Option<SyntaxToken> {
3524        support::token(&self.syntax, SyntaxKind::ON_KW)
3525    }
3526}
3527
3528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3529pub struct ConflictOnIndex {
3530    pub(crate) syntax: SyntaxNode,
3531}
3532impl ConflictOnIndex {
3533    #[inline]
3534    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3535        support::child(&self.syntax)
3536    }
3537    #[inline]
3538    pub fn where_clause(&self) -> Option<WhereClause> {
3539        support::child(&self.syntax)
3540    }
3541}
3542
3543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3544pub struct ConstraintExclusion {
3545    pub(crate) syntax: SyntaxNode,
3546}
3547impl ConstraintExclusion {
3548    #[inline]
3549    pub fn expr(&self) -> Option<Expr> {
3550        support::child(&self.syntax)
3551    }
3552    #[inline]
3553    pub fn op(&self) -> Option<Op> {
3554        support::child(&self.syntax)
3555    }
3556    #[inline]
3557    pub fn with_token(&self) -> Option<SyntaxToken> {
3558        support::token(&self.syntax, SyntaxKind::WITH_KW)
3559    }
3560}
3561
3562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3563pub struct ConstraintExclusionList {
3564    pub(crate) syntax: SyntaxNode,
3565}
3566impl ConstraintExclusionList {
3567    #[inline]
3568    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3569        support::children(&self.syntax)
3570    }
3571    #[inline]
3572    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3573        support::token(&self.syntax, SyntaxKind::L_PAREN)
3574    }
3575    #[inline]
3576    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3577        support::token(&self.syntax, SyntaxKind::R_PAREN)
3578    }
3579}
3580
3581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3582pub struct ConstraintIncludeClause {
3583    pub(crate) syntax: SyntaxNode,
3584}
3585impl ConstraintIncludeClause {
3586    #[inline]
3587    pub fn include_token(&self) -> Option<SyntaxToken> {
3588        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3589    }
3590}
3591
3592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3593pub struct ConstraintIndexMethod {
3594    pub(crate) syntax: SyntaxNode,
3595}
3596impl ConstraintIndexMethod {
3597    #[inline]
3598    pub fn using_token(&self) -> Option<SyntaxToken> {
3599        support::token(&self.syntax, SyntaxKind::USING_KW)
3600    }
3601}
3602
3603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3604pub struct ConstraintIndexTablespace {
3605    pub(crate) syntax: SyntaxNode,
3606}
3607impl ConstraintIndexTablespace {
3608    #[inline]
3609    pub fn name_ref(&self) -> Option<NameRef> {
3610        support::child(&self.syntax)
3611    }
3612    #[inline]
3613    pub fn index_token(&self) -> Option<SyntaxToken> {
3614        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3615    }
3616    #[inline]
3617    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3618        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3619    }
3620    #[inline]
3621    pub fn using_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::USING_KW)
3623    }
3624}
3625
3626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3627pub struct ConstraintName {
3628    pub(crate) syntax: SyntaxNode,
3629}
3630impl ConstraintName {
3631    #[inline]
3632    pub fn name(&self) -> Option<Name> {
3633        support::child(&self.syntax)
3634    }
3635    #[inline]
3636    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3637        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3638    }
3639}
3640
3641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3642pub struct Copy {
3643    pub(crate) syntax: SyntaxNode,
3644}
3645impl Copy {
3646    #[inline]
3647    pub fn column_list(&self) -> Option<ColumnList> {
3648        support::child(&self.syntax)
3649    }
3650    #[inline]
3651    pub fn literal(&self) -> Option<Literal> {
3652        support::child(&self.syntax)
3653    }
3654    #[inline]
3655    pub fn path(&self) -> Option<Path> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
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 l_paren_token(&self) -> Option<SyntaxToken> {
3668        support::token(&self.syntax, SyntaxKind::L_PAREN)
3669    }
3670    #[inline]
3671    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3672        support::token(&self.syntax, SyntaxKind::R_PAREN)
3673    }
3674    #[inline]
3675    pub fn binary_token(&self) -> Option<SyntaxToken> {
3676        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3677    }
3678    #[inline]
3679    pub fn copy_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::COPY_KW)
3681    }
3682    #[inline]
3683    pub fn from_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::FROM_KW)
3685    }
3686    #[inline]
3687    pub fn program_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3689    }
3690    #[inline]
3691    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3693    }
3694    #[inline]
3695    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3697    }
3698    #[inline]
3699    pub fn to_token(&self) -> Option<SyntaxToken> {
3700        support::token(&self.syntax, SyntaxKind::TO_KW)
3701    }
3702    #[inline]
3703    pub fn with_token(&self) -> Option<SyntaxToken> {
3704        support::token(&self.syntax, SyntaxKind::WITH_KW)
3705    }
3706}
3707
3708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3709pub struct CopyOption {
3710    pub(crate) syntax: SyntaxNode,
3711}
3712impl CopyOption {
3713    #[inline]
3714    pub fn name(&self) -> Option<Name> {
3715        support::child(&self.syntax)
3716    }
3717}
3718
3719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3720pub struct CopyOptionList {
3721    pub(crate) syntax: SyntaxNode,
3722}
3723impl CopyOptionList {
3724    #[inline]
3725    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3726        support::children(&self.syntax)
3727    }
3728    #[inline]
3729    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3730        support::token(&self.syntax, SyntaxKind::L_PAREN)
3731    }
3732    #[inline]
3733    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3734        support::token(&self.syntax, SyntaxKind::R_PAREN)
3735    }
3736}
3737
3738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3739pub struct CostFuncOption {
3740    pub(crate) syntax: SyntaxNode,
3741}
3742impl CostFuncOption {
3743    #[inline]
3744    pub fn cost_token(&self) -> Option<SyntaxToken> {
3745        support::token(&self.syntax, SyntaxKind::COST_KW)
3746    }
3747}
3748
3749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3750pub struct CreateAccessMethod {
3751    pub(crate) syntax: SyntaxNode,
3752}
3753impl CreateAccessMethod {
3754    #[inline]
3755    pub fn handler_clause(&self) -> Option<HandlerClause> {
3756        support::child(&self.syntax)
3757    }
3758    #[inline]
3759    pub fn name(&self) -> Option<Path> {
3760        support::child(&self.syntax)
3761    }
3762    #[inline]
3763    pub fn access_token(&self) -> Option<SyntaxToken> {
3764        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3765    }
3766    #[inline]
3767    pub fn create_token(&self) -> Option<SyntaxToken> {
3768        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3769    }
3770    #[inline]
3771    pub fn index_token(&self) -> Option<SyntaxToken> {
3772        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3773    }
3774    #[inline]
3775    pub fn method_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3777    }
3778    #[inline]
3779    pub fn table_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3781    }
3782    #[inline]
3783    pub fn type_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3785    }
3786}
3787
3788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3789pub struct CreateAggregate {
3790    pub(crate) syntax: SyntaxNode,
3791}
3792impl CreateAggregate {
3793    #[inline]
3794    pub fn or_replace(&self) -> Option<OrReplace> {
3795        support::child(&self.syntax)
3796    }
3797    #[inline]
3798    pub fn param_list(&self) -> Option<ParamList> {
3799        support::child(&self.syntax)
3800    }
3801    #[inline]
3802    pub fn path(&self) -> Option<Path> {
3803        support::child(&self.syntax)
3804    }
3805    #[inline]
3806    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3807        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3808    }
3809    #[inline]
3810    pub fn create_token(&self) -> Option<SyntaxToken> {
3811        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3812    }
3813}
3814
3815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3816pub struct CreateCast {
3817    pub(crate) syntax: SyntaxNode,
3818}
3819impl CreateCast {
3820    #[inline]
3821    pub fn cast_sig(&self) -> Option<CastSig> {
3822        support::child(&self.syntax)
3823    }
3824    #[inline]
3825    pub fn function_sig(&self) -> Option<FunctionSig> {
3826        support::child(&self.syntax)
3827    }
3828    #[inline]
3829    pub fn as_token(&self) -> Option<SyntaxToken> {
3830        support::token(&self.syntax, SyntaxKind::AS_KW)
3831    }
3832    #[inline]
3833    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3834        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3835    }
3836    #[inline]
3837    pub fn cast_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::CAST_KW)
3839    }
3840    #[inline]
3841    pub fn create_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3843    }
3844    #[inline]
3845    pub fn function_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3847    }
3848    #[inline]
3849    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3851    }
3852    #[inline]
3853    pub fn inout_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3855    }
3856    #[inline]
3857    pub fn with_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::WITH_KW)
3859    }
3860    #[inline]
3861    pub fn without_token(&self) -> Option<SyntaxToken> {
3862        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3863    }
3864}
3865
3866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3867pub struct CreateCollation {
3868    pub(crate) syntax: SyntaxNode,
3869}
3870impl CreateCollation {
3871    #[inline]
3872    pub fn path(&self) -> Option<Path> {
3873        support::child(&self.syntax)
3874    }
3875    #[inline]
3876    pub fn collation_token(&self) -> Option<SyntaxToken> {
3877        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3878    }
3879    #[inline]
3880    pub fn create_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3882    }
3883}
3884
3885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3886pub struct CreateConversion {
3887    pub(crate) syntax: SyntaxNode,
3888}
3889impl CreateConversion {
3890    #[inline]
3891    pub fn literal(&self) -> Option<Literal> {
3892        support::child(&self.syntax)
3893    }
3894    #[inline]
3895    pub fn path(&self) -> Option<Path> {
3896        support::child(&self.syntax)
3897    }
3898    #[inline]
3899    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3900        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3901    }
3902    #[inline]
3903    pub fn create_token(&self) -> Option<SyntaxToken> {
3904        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3905    }
3906    #[inline]
3907    pub fn default_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3909    }
3910    #[inline]
3911    pub fn for_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::FOR_KW)
3913    }
3914    #[inline]
3915    pub fn from_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::FROM_KW)
3917    }
3918    #[inline]
3919    pub fn to_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::TO_KW)
3921    }
3922}
3923
3924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3925pub struct CreateDatabase {
3926    pub(crate) syntax: SyntaxNode,
3927}
3928impl CreateDatabase {
3929    #[inline]
3930    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3931        support::child(&self.syntax)
3932    }
3933    #[inline]
3934    pub fn name(&self) -> Option<Name> {
3935        support::child(&self.syntax)
3936    }
3937    #[inline]
3938    pub fn create_token(&self) -> Option<SyntaxToken> {
3939        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3940    }
3941    #[inline]
3942    pub fn database_token(&self) -> Option<SyntaxToken> {
3943        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3944    }
3945}
3946
3947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3948pub struct CreateDatabaseOption {
3949    pub(crate) syntax: SyntaxNode,
3950}
3951impl CreateDatabaseOption {
3952    #[inline]
3953    pub fn literal(&self) -> Option<Literal> {
3954        support::child(&self.syntax)
3955    }
3956    #[inline]
3957    pub fn eq_token(&self) -> Option<SyntaxToken> {
3958        support::token(&self.syntax, SyntaxKind::EQ)
3959    }
3960    #[inline]
3961    pub fn connection_token(&self) -> Option<SyntaxToken> {
3962        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3963    }
3964    #[inline]
3965    pub fn default_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3967    }
3968    #[inline]
3969    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3971    }
3972    #[inline]
3973    pub fn ident_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::IDENT)
3975    }
3976    #[inline]
3977    pub fn limit_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3979    }
3980    #[inline]
3981    pub fn owner_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3983    }
3984    #[inline]
3985    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3986        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3987    }
3988    #[inline]
3989    pub fn template_token(&self) -> Option<SyntaxToken> {
3990        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3991    }
3992}
3993
3994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3995pub struct CreateDatabaseOptionList {
3996    pub(crate) syntax: SyntaxNode,
3997}
3998impl CreateDatabaseOptionList {
3999    #[inline]
4000    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4001        support::children(&self.syntax)
4002    }
4003    #[inline]
4004    pub fn with_token(&self) -> Option<SyntaxToken> {
4005        support::token(&self.syntax, SyntaxKind::WITH_KW)
4006    }
4007}
4008
4009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4010pub struct CreateDomain {
4011    pub(crate) syntax: SyntaxNode,
4012}
4013impl CreateDomain {
4014    #[inline]
4015    pub fn collate(&self) -> Option<Collate> {
4016        support::child(&self.syntax)
4017    }
4018    #[inline]
4019    pub fn constraints(&self) -> AstChildren<Constraint> {
4020        support::children(&self.syntax)
4021    }
4022    #[inline]
4023    pub fn path(&self) -> Option<Path> {
4024        support::child(&self.syntax)
4025    }
4026    #[inline]
4027    pub fn ty(&self) -> Option<Type> {
4028        support::child(&self.syntax)
4029    }
4030    #[inline]
4031    pub fn as_token(&self) -> Option<SyntaxToken> {
4032        support::token(&self.syntax, SyntaxKind::AS_KW)
4033    }
4034    #[inline]
4035    pub fn create_token(&self) -> Option<SyntaxToken> {
4036        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4037    }
4038    #[inline]
4039    pub fn domain_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4041    }
4042}
4043
4044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4045pub struct CreateEventTrigger {
4046    pub(crate) syntax: SyntaxNode,
4047}
4048impl CreateEventTrigger {
4049    #[inline]
4050    pub fn call_expr(&self) -> Option<CallExpr> {
4051        support::child(&self.syntax)
4052    }
4053    #[inline]
4054    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4055        support::child(&self.syntax)
4056    }
4057    #[inline]
4058    pub fn name(&self) -> Option<Name> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn name_ref(&self) -> Option<NameRef> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn create_token(&self) -> Option<SyntaxToken> {
4067        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4068    }
4069    #[inline]
4070    pub fn event_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4072    }
4073    #[inline]
4074    pub fn execute_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4076    }
4077    #[inline]
4078    pub fn function_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4080    }
4081    #[inline]
4082    pub fn on_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::ON_KW)
4084    }
4085    #[inline]
4086    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4088    }
4089    #[inline]
4090    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4092    }
4093}
4094
4095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4096pub struct CreateExtension {
4097    pub(crate) syntax: SyntaxNode,
4098}
4099impl CreateExtension {
4100    #[inline]
4101    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4102        support::child(&self.syntax)
4103    }
4104    #[inline]
4105    pub fn name(&self) -> Option<Name> {
4106        support::child(&self.syntax)
4107    }
4108    #[inline]
4109    pub fn create_token(&self) -> Option<SyntaxToken> {
4110        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4111    }
4112    #[inline]
4113    pub fn extension_token(&self) -> Option<SyntaxToken> {
4114        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4115    }
4116}
4117
4118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4119pub struct CreateForeignDataWrapper {
4120    pub(crate) syntax: SyntaxNode,
4121}
4122impl CreateForeignDataWrapper {
4123    #[inline]
4124    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4125        support::child(&self.syntax)
4126    }
4127    #[inline]
4128    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4129        support::child(&self.syntax)
4130    }
4131    #[inline]
4132    pub fn name(&self) -> Option<Name> {
4133        support::child(&self.syntax)
4134    }
4135    #[inline]
4136    pub fn create_token(&self) -> Option<SyntaxToken> {
4137        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4138    }
4139    #[inline]
4140    pub fn data_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::DATA_KW)
4142    }
4143    #[inline]
4144    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4146    }
4147    #[inline]
4148    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4150    }
4151}
4152
4153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4154pub struct CreateForeignTable {
4155    pub(crate) syntax: SyntaxNode,
4156}
4157impl CreateForeignTable {
4158    #[inline]
4159    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4160        support::child(&self.syntax)
4161    }
4162    #[inline]
4163    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4164        support::child(&self.syntax)
4165    }
4166    #[inline]
4167    pub fn inherits(&self) -> Option<Inherits> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn partition_of(&self) -> Option<PartitionOf> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn partition_type(&self) -> Option<PartitionType> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn path(&self) -> Option<Path> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn server_name(&self) -> Option<ServerName> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn table_arg_list(&self) -> Option<TableArgList> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn create_token(&self) -> Option<SyntaxToken> {
4192        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4193    }
4194    #[inline]
4195    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4196        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4197    }
4198    #[inline]
4199    pub fn table_token(&self) -> Option<SyntaxToken> {
4200        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4201    }
4202}
4203
4204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4205pub struct CreateFunction {
4206    pub(crate) syntax: SyntaxNode,
4207}
4208impl CreateFunction {
4209    #[inline]
4210    pub fn option_list(&self) -> Option<FuncOptionList> {
4211        support::child(&self.syntax)
4212    }
4213    #[inline]
4214    pub fn or_replace(&self) -> Option<OrReplace> {
4215        support::child(&self.syntax)
4216    }
4217    #[inline]
4218    pub fn param_list(&self) -> Option<ParamList> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn path(&self) -> Option<Path> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn ret_type(&self) -> Option<RetType> {
4227        support::child(&self.syntax)
4228    }
4229    #[inline]
4230    pub fn create_token(&self) -> Option<SyntaxToken> {
4231        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4232    }
4233    #[inline]
4234    pub fn function_token(&self) -> Option<SyntaxToken> {
4235        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4236    }
4237}
4238
4239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4240pub struct CreateGroup {
4241    pub(crate) syntax: SyntaxNode,
4242}
4243impl CreateGroup {
4244    #[inline]
4245    pub fn name(&self) -> Option<Name> {
4246        support::child(&self.syntax)
4247    }
4248    #[inline]
4249    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4250        support::child(&self.syntax)
4251    }
4252    #[inline]
4253    pub fn create_token(&self) -> Option<SyntaxToken> {
4254        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4255    }
4256    #[inline]
4257    pub fn group_token(&self) -> Option<SyntaxToken> {
4258        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4259    }
4260}
4261
4262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4263pub struct CreateIndex {
4264    pub(crate) syntax: SyntaxNode,
4265}
4266impl CreateIndex {
4267    #[inline]
4268    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4269        support::child(&self.syntax)
4270    }
4271    #[inline]
4272    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4273        support::child(&self.syntax)
4274    }
4275    #[inline]
4276    pub fn name(&self) -> Option<Name> {
4277        support::child(&self.syntax)
4278    }
4279    #[inline]
4280    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn relation_name(&self) -> Option<RelationName> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn tablespace(&self) -> Option<Tablespace> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn using_method(&self) -> Option<UsingMethod> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn where_clause(&self) -> Option<WhereClause> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn with_params(&self) -> Option<WithParams> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4313        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4314    }
4315    #[inline]
4316    pub fn create_token(&self) -> Option<SyntaxToken> {
4317        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4318    }
4319    #[inline]
4320    pub fn index_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4322    }
4323    #[inline]
4324    pub fn on_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::ON_KW)
4326    }
4327    #[inline]
4328    pub fn unique_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4330    }
4331}
4332
4333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4334pub struct CreateLanguage {
4335    pub(crate) syntax: SyntaxNode,
4336}
4337impl CreateLanguage {
4338    #[inline]
4339    pub fn name(&self) -> Option<Name> {
4340        support::child(&self.syntax)
4341    }
4342    #[inline]
4343    pub fn or_replace(&self) -> Option<OrReplace> {
4344        support::child(&self.syntax)
4345    }
4346    #[inline]
4347    pub fn path(&self) -> Option<Path> {
4348        support::child(&self.syntax)
4349    }
4350    #[inline]
4351    pub fn create_token(&self) -> Option<SyntaxToken> {
4352        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4353    }
4354    #[inline]
4355    pub fn handler_token(&self) -> Option<SyntaxToken> {
4356        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4357    }
4358    #[inline]
4359    pub fn inline_token(&self) -> Option<SyntaxToken> {
4360        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4361    }
4362    #[inline]
4363    pub fn language_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4365    }
4366    #[inline]
4367    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4369    }
4370    #[inline]
4371    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4372        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4373    }
4374    #[inline]
4375    pub fn validator_token(&self) -> Option<SyntaxToken> {
4376        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4377    }
4378}
4379
4380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4381pub struct CreateMaterializedView {
4382    pub(crate) syntax: SyntaxNode,
4383}
4384impl CreateMaterializedView {
4385    #[inline]
4386    pub fn column_list(&self) -> Option<ColumnList> {
4387        support::child(&self.syntax)
4388    }
4389    #[inline]
4390    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4391        support::child(&self.syntax)
4392    }
4393    #[inline]
4394    pub fn path(&self) -> Option<Path> {
4395        support::child(&self.syntax)
4396    }
4397    #[inline]
4398    pub fn query(&self) -> Option<SelectVariant> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn tablespace(&self) -> Option<Tablespace> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn using_method(&self) -> Option<UsingMethod> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn with_data(&self) -> Option<WithData> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn with_no_data(&self) -> Option<WithNoData> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn with_params(&self) -> Option<WithParams> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn as_token(&self) -> Option<SyntaxToken> {
4423        support::token(&self.syntax, SyntaxKind::AS_KW)
4424    }
4425    #[inline]
4426    pub fn create_token(&self) -> Option<SyntaxToken> {
4427        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4428    }
4429    #[inline]
4430    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4431        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4432    }
4433    #[inline]
4434    pub fn view_token(&self) -> Option<SyntaxToken> {
4435        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4436    }
4437}
4438
4439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4440pub struct CreateOperator {
4441    pub(crate) syntax: SyntaxNode,
4442}
4443impl CreateOperator {
4444    #[inline]
4445    pub fn attribute_list(&self) -> Option<AttributeList> {
4446        support::child(&self.syntax)
4447    }
4448    #[inline]
4449    pub fn op(&self) -> Option<Op> {
4450        support::child(&self.syntax)
4451    }
4452    #[inline]
4453    pub fn path(&self) -> Option<Path> {
4454        support::child(&self.syntax)
4455    }
4456    #[inline]
4457    pub fn create_token(&self) -> Option<SyntaxToken> {
4458        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4459    }
4460    #[inline]
4461    pub fn operator_token(&self) -> Option<SyntaxToken> {
4462        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4463    }
4464}
4465
4466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4467pub struct CreateOperatorClass {
4468    pub(crate) syntax: SyntaxNode,
4469}
4470impl CreateOperatorClass {
4471    #[inline]
4472    pub fn name_ref(&self) -> Option<NameRef> {
4473        support::child(&self.syntax)
4474    }
4475    #[inline]
4476    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4477        support::child(&self.syntax)
4478    }
4479    #[inline]
4480    pub fn path(&self) -> Option<Path> {
4481        support::child(&self.syntax)
4482    }
4483    #[inline]
4484    pub fn ty(&self) -> Option<Type> {
4485        support::child(&self.syntax)
4486    }
4487    #[inline]
4488    pub fn as_token(&self) -> Option<SyntaxToken> {
4489        support::token(&self.syntax, SyntaxKind::AS_KW)
4490    }
4491    #[inline]
4492    pub fn class_token(&self) -> Option<SyntaxToken> {
4493        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4494    }
4495    #[inline]
4496    pub fn create_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4498    }
4499    #[inline]
4500    pub fn default_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4502    }
4503    #[inline]
4504    pub fn family_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4506    }
4507    #[inline]
4508    pub fn for_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::FOR_KW)
4510    }
4511    #[inline]
4512    pub fn operator_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4514    }
4515    #[inline]
4516    pub fn type_token(&self) -> Option<SyntaxToken> {
4517        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4518    }
4519    #[inline]
4520    pub fn using_token(&self) -> Option<SyntaxToken> {
4521        support::token(&self.syntax, SyntaxKind::USING_KW)
4522    }
4523}
4524
4525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4526pub struct CreateOperatorFamily {
4527    pub(crate) syntax: SyntaxNode,
4528}
4529impl CreateOperatorFamily {
4530    #[inline]
4531    pub fn name_ref(&self) -> Option<NameRef> {
4532        support::child(&self.syntax)
4533    }
4534    #[inline]
4535    pub fn path(&self) -> Option<Path> {
4536        support::child(&self.syntax)
4537    }
4538    #[inline]
4539    pub fn create_token(&self) -> Option<SyntaxToken> {
4540        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4541    }
4542    #[inline]
4543    pub fn family_token(&self) -> Option<SyntaxToken> {
4544        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4545    }
4546    #[inline]
4547    pub fn operator_token(&self) -> Option<SyntaxToken> {
4548        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4549    }
4550    #[inline]
4551    pub fn using_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::USING_KW)
4553    }
4554}
4555
4556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4557pub struct CreatePolicy {
4558    pub(crate) syntax: SyntaxNode,
4559}
4560impl CreatePolicy {
4561    #[inline]
4562    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4563        support::child(&self.syntax)
4564    }
4565    #[inline]
4566    pub fn name(&self) -> Option<Name> {
4567        support::child(&self.syntax)
4568    }
4569    #[inline]
4570    pub fn on_table(&self) -> Option<OnTable> {
4571        support::child(&self.syntax)
4572    }
4573    #[inline]
4574    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4575        support::child(&self.syntax)
4576    }
4577    #[inline]
4578    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4579        support::child(&self.syntax)
4580    }
4581    #[inline]
4582    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4583        support::child(&self.syntax)
4584    }
4585    #[inline]
4586    pub fn all_token(&self) -> Option<SyntaxToken> {
4587        support::token(&self.syntax, SyntaxKind::ALL_KW)
4588    }
4589    #[inline]
4590    pub fn create_token(&self) -> Option<SyntaxToken> {
4591        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4592    }
4593    #[inline]
4594    pub fn delete_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4596    }
4597    #[inline]
4598    pub fn for_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::FOR_KW)
4600    }
4601    #[inline]
4602    pub fn insert_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4604    }
4605    #[inline]
4606    pub fn policy_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4608    }
4609    #[inline]
4610    pub fn select_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4612    }
4613    #[inline]
4614    pub fn to_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::TO_KW)
4616    }
4617    #[inline]
4618    pub fn update_token(&self) -> Option<SyntaxToken> {
4619        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4620    }
4621}
4622
4623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4624pub struct CreateProcedure {
4625    pub(crate) syntax: SyntaxNode,
4626}
4627impl CreateProcedure {
4628    #[inline]
4629    pub fn option_list(&self) -> Option<FuncOptionList> {
4630        support::child(&self.syntax)
4631    }
4632    #[inline]
4633    pub fn or_replace(&self) -> Option<OrReplace> {
4634        support::child(&self.syntax)
4635    }
4636    #[inline]
4637    pub fn param_list(&self) -> Option<ParamList> {
4638        support::child(&self.syntax)
4639    }
4640    #[inline]
4641    pub fn path(&self) -> Option<Path> {
4642        support::child(&self.syntax)
4643    }
4644    #[inline]
4645    pub fn create_token(&self) -> Option<SyntaxToken> {
4646        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4647    }
4648    #[inline]
4649    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4650        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4651    }
4652}
4653
4654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4655pub struct CreatePropertyGraph {
4656    pub(crate) syntax: SyntaxNode,
4657}
4658impl CreatePropertyGraph {
4659    #[inline]
4660    pub fn edge_tables(&self) -> Option<EdgeTables> {
4661        support::child(&self.syntax)
4662    }
4663    #[inline]
4664    pub fn path(&self) -> Option<Path> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn persistence(&self) -> Option<Persistence> {
4669        support::child(&self.syntax)
4670    }
4671    #[inline]
4672    pub fn vertex_tables(&self) -> Option<VertexTables> {
4673        support::child(&self.syntax)
4674    }
4675    #[inline]
4676    pub fn create_token(&self) -> Option<SyntaxToken> {
4677        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4678    }
4679    #[inline]
4680    pub fn graph_token(&self) -> Option<SyntaxToken> {
4681        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4682    }
4683    #[inline]
4684    pub fn property_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4686    }
4687}
4688
4689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4690pub struct CreatePublication {
4691    pub(crate) syntax: SyntaxNode,
4692}
4693impl CreatePublication {
4694    #[inline]
4695    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4696        support::child(&self.syntax)
4697    }
4698    #[inline]
4699    pub fn name(&self) -> Option<Name> {
4700        support::child(&self.syntax)
4701    }
4702    #[inline]
4703    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4704        support::children(&self.syntax)
4705    }
4706    #[inline]
4707    pub fn with_params(&self) -> Option<WithParams> {
4708        support::child(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn all_token(&self) -> Option<SyntaxToken> {
4712        support::token(&self.syntax, SyntaxKind::ALL_KW)
4713    }
4714    #[inline]
4715    pub fn create_token(&self) -> Option<SyntaxToken> {
4716        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4717    }
4718    #[inline]
4719    pub fn for_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::FOR_KW)
4721    }
4722    #[inline]
4723    pub fn publication_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4725    }
4726    #[inline]
4727    pub fn tables_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4729    }
4730}
4731
4732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4733pub struct CreateRole {
4734    pub(crate) syntax: SyntaxNode,
4735}
4736impl CreateRole {
4737    #[inline]
4738    pub fn name(&self) -> Option<Name> {
4739        support::child(&self.syntax)
4740    }
4741    #[inline]
4742    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4743        support::child(&self.syntax)
4744    }
4745    #[inline]
4746    pub fn create_token(&self) -> Option<SyntaxToken> {
4747        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4748    }
4749    #[inline]
4750    pub fn role_token(&self) -> Option<SyntaxToken> {
4751        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4752    }
4753}
4754
4755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4756pub struct CreateRule {
4757    pub(crate) syntax: SyntaxNode,
4758}
4759impl CreateRule {
4760    #[inline]
4761    pub fn name(&self) -> Option<Name> {
4762        support::child(&self.syntax)
4763    }
4764    #[inline]
4765    pub fn or_replace(&self) -> Option<OrReplace> {
4766        support::child(&self.syntax)
4767    }
4768    #[inline]
4769    pub fn path(&self) -> Option<Path> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn stmt(&self) -> Option<Stmt> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn stmts(&self) -> AstChildren<Stmt> {
4778        support::children(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn where_clause(&self) -> Option<WhereClause> {
4782        support::child(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4786        support::token(&self.syntax, SyntaxKind::L_PAREN)
4787    }
4788    #[inline]
4789    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4790        support::token(&self.syntax, SyntaxKind::R_PAREN)
4791    }
4792    #[inline]
4793    pub fn also_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4795    }
4796    #[inline]
4797    pub fn as_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::AS_KW)
4799    }
4800    #[inline]
4801    pub fn create_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4803    }
4804    #[inline]
4805    pub fn delete_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4807    }
4808    #[inline]
4809    pub fn do_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::DO_KW)
4811    }
4812    #[inline]
4813    pub fn ident_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::IDENT)
4815    }
4816    #[inline]
4817    pub fn insert_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4819    }
4820    #[inline]
4821    pub fn instead_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4823    }
4824    #[inline]
4825    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4827    }
4828    #[inline]
4829    pub fn on_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::ON_KW)
4831    }
4832    #[inline]
4833    pub fn rule_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::RULE_KW)
4835    }
4836    #[inline]
4837    pub fn select_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4839    }
4840    #[inline]
4841    pub fn to_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::TO_KW)
4843    }
4844    #[inline]
4845    pub fn update_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4847    }
4848}
4849
4850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4851pub struct CreateSchema {
4852    pub(crate) syntax: SyntaxNode,
4853}
4854impl CreateSchema {
4855    #[inline]
4856    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4857        support::child(&self.syntax)
4858    }
4859    #[inline]
4860    pub fn name(&self) -> Option<Name> {
4861        support::child(&self.syntax)
4862    }
4863    #[inline]
4864    pub fn role(&self) -> Option<Role> {
4865        support::child(&self.syntax)
4866    }
4867    #[inline]
4868    pub fn role_ref(&self) -> Option<RoleRef> {
4869        support::child(&self.syntax)
4870    }
4871    #[inline]
4872    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4873        support::children(&self.syntax)
4874    }
4875    #[inline]
4876    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4877        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4878    }
4879    #[inline]
4880    pub fn create_token(&self) -> Option<SyntaxToken> {
4881        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4882    }
4883    #[inline]
4884    pub fn schema_token(&self) -> Option<SyntaxToken> {
4885        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4886    }
4887}
4888
4889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4890pub struct CreateSequence {
4891    pub(crate) syntax: SyntaxNode,
4892}
4893impl CreateSequence {
4894    #[inline]
4895    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4896        support::child(&self.syntax)
4897    }
4898    #[inline]
4899    pub fn path(&self) -> Option<Path> {
4900        support::child(&self.syntax)
4901    }
4902    #[inline]
4903    pub fn persistence(&self) -> Option<Persistence> {
4904        support::child(&self.syntax)
4905    }
4906    #[inline]
4907    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4908        support::children(&self.syntax)
4909    }
4910    #[inline]
4911    pub fn create_token(&self) -> Option<SyntaxToken> {
4912        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4913    }
4914    #[inline]
4915    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4916        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4917    }
4918}
4919
4920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4921pub struct CreateServer {
4922    pub(crate) syntax: SyntaxNode,
4923}
4924impl CreateServer {
4925    #[inline]
4926    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4927        support::child(&self.syntax)
4928    }
4929    #[inline]
4930    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4931        support::child(&self.syntax)
4932    }
4933    #[inline]
4934    pub fn literal(&self) -> Option<Literal> {
4935        support::child(&self.syntax)
4936    }
4937    #[inline]
4938    pub fn name(&self) -> Option<Name> {
4939        support::child(&self.syntax)
4940    }
4941    #[inline]
4942    pub fn name_ref(&self) -> Option<NameRef> {
4943        support::child(&self.syntax)
4944    }
4945    #[inline]
4946    pub fn create_token(&self) -> Option<SyntaxToken> {
4947        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4948    }
4949    #[inline]
4950    pub fn data_token(&self) -> Option<SyntaxToken> {
4951        support::token(&self.syntax, SyntaxKind::DATA_KW)
4952    }
4953    #[inline]
4954    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4955        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4956    }
4957    #[inline]
4958    pub fn server_token(&self) -> Option<SyntaxToken> {
4959        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4960    }
4961    #[inline]
4962    pub fn type_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4964    }
4965    #[inline]
4966    pub fn version_token(&self) -> Option<SyntaxToken> {
4967        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4968    }
4969    #[inline]
4970    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4971        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4972    }
4973}
4974
4975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4976pub struct CreateStatistics {
4977    pub(crate) syntax: SyntaxNode,
4978}
4979impl CreateStatistics {
4980    #[inline]
4981    pub fn from_table(&self) -> Option<FromTable> {
4982        support::child(&self.syntax)
4983    }
4984    #[inline]
4985    pub fn name_refs(&self) -> AstChildren<NameRef> {
4986        support::children(&self.syntax)
4987    }
4988    #[inline]
4989    pub fn path(&self) -> Option<Path> {
4990        support::child(&self.syntax)
4991    }
4992    #[inline]
4993    pub fn create_token(&self) -> Option<SyntaxToken> {
4994        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4995    }
4996    #[inline]
4997    pub fn on_token(&self) -> Option<SyntaxToken> {
4998        support::token(&self.syntax, SyntaxKind::ON_KW)
4999    }
5000    #[inline]
5001    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5002        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5003    }
5004}
5005
5006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5007pub struct CreateSubscription {
5008    pub(crate) syntax: SyntaxNode,
5009}
5010impl CreateSubscription {
5011    #[inline]
5012    pub fn literal(&self) -> Option<Literal> {
5013        support::child(&self.syntax)
5014    }
5015    #[inline]
5016    pub fn name(&self) -> Option<Name> {
5017        support::child(&self.syntax)
5018    }
5019    #[inline]
5020    pub fn name_ref(&self) -> Option<NameRef> {
5021        support::child(&self.syntax)
5022    }
5023    #[inline]
5024    pub fn name_refs(&self) -> AstChildren<NameRef> {
5025        support::children(&self.syntax)
5026    }
5027    #[inline]
5028    pub fn with_params(&self) -> Option<WithParams> {
5029        support::child(&self.syntax)
5030    }
5031    #[inline]
5032    pub fn connection_token(&self) -> Option<SyntaxToken> {
5033        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5034    }
5035    #[inline]
5036    pub fn create_token(&self) -> Option<SyntaxToken> {
5037        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5038    }
5039    #[inline]
5040    pub fn publication_token(&self) -> Option<SyntaxToken> {
5041        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5042    }
5043    #[inline]
5044    pub fn server_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5046    }
5047    #[inline]
5048    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5050    }
5051}
5052
5053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5054pub struct CreateTable {
5055    pub(crate) syntax: SyntaxNode,
5056}
5057impl CreateTable {
5058    #[inline]
5059    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5060        support::child(&self.syntax)
5061    }
5062    #[inline]
5063    pub fn inherits(&self) -> Option<Inherits> {
5064        support::child(&self.syntax)
5065    }
5066    #[inline]
5067    pub fn of_type(&self) -> Option<OfType> {
5068        support::child(&self.syntax)
5069    }
5070    #[inline]
5071    pub fn on_commit(&self) -> Option<OnCommit> {
5072        support::child(&self.syntax)
5073    }
5074    #[inline]
5075    pub fn partition_by(&self) -> Option<PartitionBy> {
5076        support::child(&self.syntax)
5077    }
5078    #[inline]
5079    pub fn partition_of(&self) -> Option<PartitionOf> {
5080        support::child(&self.syntax)
5081    }
5082    #[inline]
5083    pub fn path(&self) -> Option<Path> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn persistence(&self) -> Option<Persistence> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn table_arg_list(&self) -> Option<TableArgList> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn tablespace(&self) -> Option<Tablespace> {
5096        support::child(&self.syntax)
5097    }
5098    #[inline]
5099    pub fn using_method(&self) -> Option<UsingMethod> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn with_params(&self) -> Option<WithParams> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn without_oids(&self) -> Option<WithoutOids> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn create_token(&self) -> Option<SyntaxToken> {
5112        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5113    }
5114    #[inline]
5115    pub fn table_token(&self) -> Option<SyntaxToken> {
5116        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5117    }
5118}
5119
5120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5121pub struct CreateTableAs {
5122    pub(crate) syntax: SyntaxNode,
5123}
5124impl CreateTableAs {
5125    #[inline]
5126    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5127        support::child(&self.syntax)
5128    }
5129    #[inline]
5130    pub fn on_commit(&self) -> Option<OnCommit> {
5131        support::child(&self.syntax)
5132    }
5133    #[inline]
5134    pub fn path(&self) -> Option<Path> {
5135        support::child(&self.syntax)
5136    }
5137    #[inline]
5138    pub fn persistence(&self) -> Option<Persistence> {
5139        support::child(&self.syntax)
5140    }
5141    #[inline]
5142    pub fn query(&self) -> Option<SelectVariant> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn tablespace(&self) -> Option<Tablespace> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn using_method(&self) -> Option<UsingMethod> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn with_data(&self) -> Option<WithData> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn with_no_data(&self) -> Option<WithNoData> {
5159        support::child(&self.syntax)
5160    }
5161    #[inline]
5162    pub fn with_params(&self) -> Option<WithParams> {
5163        support::child(&self.syntax)
5164    }
5165    #[inline]
5166    pub fn without_oids(&self) -> Option<WithoutOids> {
5167        support::child(&self.syntax)
5168    }
5169    #[inline]
5170    pub fn as_token(&self) -> Option<SyntaxToken> {
5171        support::token(&self.syntax, SyntaxKind::AS_KW)
5172    }
5173    #[inline]
5174    pub fn create_token(&self) -> Option<SyntaxToken> {
5175        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5176    }
5177    #[inline]
5178    pub fn table_token(&self) -> Option<SyntaxToken> {
5179        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5180    }
5181}
5182
5183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5184pub struct CreateTablespace {
5185    pub(crate) syntax: SyntaxNode,
5186}
5187impl CreateTablespace {
5188    #[inline]
5189    pub fn literal(&self) -> Option<Literal> {
5190        support::child(&self.syntax)
5191    }
5192    #[inline]
5193    pub fn name(&self) -> Option<Name> {
5194        support::child(&self.syntax)
5195    }
5196    #[inline]
5197    pub fn role_ref(&self) -> Option<RoleRef> {
5198        support::child(&self.syntax)
5199    }
5200    #[inline]
5201    pub fn with_params(&self) -> Option<WithParams> {
5202        support::child(&self.syntax)
5203    }
5204    #[inline]
5205    pub fn create_token(&self) -> Option<SyntaxToken> {
5206        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5207    }
5208    #[inline]
5209    pub fn location_token(&self) -> Option<SyntaxToken> {
5210        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5211    }
5212    #[inline]
5213    pub fn owner_token(&self) -> Option<SyntaxToken> {
5214        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5215    }
5216    #[inline]
5217    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5218        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5219    }
5220}
5221
5222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5223pub struct CreateTextSearchConfiguration {
5224    pub(crate) syntax: SyntaxNode,
5225}
5226impl CreateTextSearchConfiguration {
5227    #[inline]
5228    pub fn attribute_list(&self) -> Option<AttributeList> {
5229        support::child(&self.syntax)
5230    }
5231    #[inline]
5232    pub fn path(&self) -> Option<Path> {
5233        support::child(&self.syntax)
5234    }
5235    #[inline]
5236    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5237        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5238    }
5239    #[inline]
5240    pub fn create_token(&self) -> Option<SyntaxToken> {
5241        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5242    }
5243    #[inline]
5244    pub fn search_token(&self) -> Option<SyntaxToken> {
5245        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5246    }
5247    #[inline]
5248    pub fn text_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5250    }
5251}
5252
5253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5254pub struct CreateTextSearchDictionary {
5255    pub(crate) syntax: SyntaxNode,
5256}
5257impl CreateTextSearchDictionary {
5258    #[inline]
5259    pub fn attribute_list(&self) -> Option<AttributeList> {
5260        support::child(&self.syntax)
5261    }
5262    #[inline]
5263    pub fn path(&self) -> Option<Path> {
5264        support::child(&self.syntax)
5265    }
5266    #[inline]
5267    pub fn create_token(&self) -> Option<SyntaxToken> {
5268        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5269    }
5270    #[inline]
5271    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5272        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5273    }
5274    #[inline]
5275    pub fn search_token(&self) -> Option<SyntaxToken> {
5276        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5277    }
5278    #[inline]
5279    pub fn text_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5281    }
5282}
5283
5284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5285pub struct CreateTextSearchParser {
5286    pub(crate) syntax: SyntaxNode,
5287}
5288impl CreateTextSearchParser {
5289    #[inline]
5290    pub fn attribute_list(&self) -> Option<AttributeList> {
5291        support::child(&self.syntax)
5292    }
5293    #[inline]
5294    pub fn path(&self) -> Option<Path> {
5295        support::child(&self.syntax)
5296    }
5297    #[inline]
5298    pub fn create_token(&self) -> Option<SyntaxToken> {
5299        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5300    }
5301    #[inline]
5302    pub fn parser_token(&self) -> Option<SyntaxToken> {
5303        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5304    }
5305    #[inline]
5306    pub fn search_token(&self) -> Option<SyntaxToken> {
5307        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5308    }
5309    #[inline]
5310    pub fn text_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5312    }
5313}
5314
5315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5316pub struct CreateTextSearchTemplate {
5317    pub(crate) syntax: SyntaxNode,
5318}
5319impl CreateTextSearchTemplate {
5320    #[inline]
5321    pub fn attribute_list(&self) -> Option<AttributeList> {
5322        support::child(&self.syntax)
5323    }
5324    #[inline]
5325    pub fn path(&self) -> Option<Path> {
5326        support::child(&self.syntax)
5327    }
5328    #[inline]
5329    pub fn create_token(&self) -> Option<SyntaxToken> {
5330        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5331    }
5332    #[inline]
5333    pub fn search_token(&self) -> Option<SyntaxToken> {
5334        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5335    }
5336    #[inline]
5337    pub fn template_token(&self) -> Option<SyntaxToken> {
5338        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5339    }
5340    #[inline]
5341    pub fn text_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5343    }
5344}
5345
5346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5347pub struct CreateTransform {
5348    pub(crate) syntax: SyntaxNode,
5349}
5350impl CreateTransform {
5351    #[inline]
5352    pub fn from_func(&self) -> Option<TransformFromFunc> {
5353        support::child(&self.syntax)
5354    }
5355    #[inline]
5356    pub fn language(&self) -> Option<NameRef> {
5357        support::child(&self.syntax)
5358    }
5359    #[inline]
5360    pub fn or_replace(&self) -> Option<OrReplace> {
5361        support::child(&self.syntax)
5362    }
5363    #[inline]
5364    pub fn to_func(&self) -> Option<TransformToFunc> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn ty(&self) -> Option<Type> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5373        support::token(&self.syntax, SyntaxKind::L_PAREN)
5374    }
5375    #[inline]
5376    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::R_PAREN)
5378    }
5379    #[inline]
5380    pub fn comma_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::COMMA)
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 for_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::FOR_KW)
5390    }
5391    #[inline]
5392    pub fn language_token(&self) -> Option<SyntaxToken> {
5393        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5394    }
5395    #[inline]
5396    pub fn transform_token(&self) -> Option<SyntaxToken> {
5397        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5398    }
5399}
5400
5401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5402pub struct CreateTrigger {
5403    pub(crate) syntax: SyntaxNode,
5404}
5405impl CreateTrigger {
5406    #[inline]
5407    pub fn call_expr(&self) -> Option<CallExpr> {
5408        support::child(&self.syntax)
5409    }
5410    #[inline]
5411    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5412        support::child(&self.syntax)
5413    }
5414    #[inline]
5415    pub fn from_table(&self) -> Option<FromTable> {
5416        support::child(&self.syntax)
5417    }
5418    #[inline]
5419    pub fn initially_deferred_constraint_option(
5420        &self,
5421    ) -> Option<InitiallyDeferredConstraintOption> {
5422        support::child(&self.syntax)
5423    }
5424    #[inline]
5425    pub fn initially_immediate_constraint_option(
5426        &self,
5427    ) -> Option<InitiallyImmediateConstraintOption> {
5428        support::child(&self.syntax)
5429    }
5430    #[inline]
5431    pub fn name(&self) -> Option<Name> {
5432        support::child(&self.syntax)
5433    }
5434    #[inline]
5435    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5436        support::child(&self.syntax)
5437    }
5438    #[inline]
5439    pub fn on_table(&self) -> Option<OnTable> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn or_replace(&self) -> Option<OrReplace> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn referencing(&self) -> Option<Referencing> {
5448        support::child(&self.syntax)
5449    }
5450    #[inline]
5451    pub fn timing(&self) -> Option<Timing> {
5452        support::child(&self.syntax)
5453    }
5454    #[inline]
5455    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn when_condition(&self) -> Option<WhenCondition> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5464        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5465    }
5466    #[inline]
5467    pub fn create_token(&self) -> Option<SyntaxToken> {
5468        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5469    }
5470    #[inline]
5471    pub fn each_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::EACH_KW)
5473    }
5474    #[inline]
5475    pub fn execute_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5477    }
5478    #[inline]
5479    pub fn for_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::FOR_KW)
5481    }
5482    #[inline]
5483    pub fn function_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5485    }
5486    #[inline]
5487    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5489    }
5490    #[inline]
5491    pub fn row_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::ROW_KW)
5493    }
5494    #[inline]
5495    pub fn statement_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5497    }
5498    #[inline]
5499    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5501    }
5502}
5503
5504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5505pub struct CreateType {
5506    pub(crate) syntax: SyntaxNode,
5507}
5508impl CreateType {
5509    #[inline]
5510    pub fn attribute_list(&self) -> Option<AttributeList> {
5511        support::child(&self.syntax)
5512    }
5513    #[inline]
5514    pub fn column_list(&self) -> Option<ColumnList> {
5515        support::child(&self.syntax)
5516    }
5517    #[inline]
5518    pub fn path(&self) -> Option<Path> {
5519        support::child(&self.syntax)
5520    }
5521    #[inline]
5522    pub fn variant_list(&self) -> Option<VariantList> {
5523        support::child(&self.syntax)
5524    }
5525    #[inline]
5526    pub fn as_token(&self) -> Option<SyntaxToken> {
5527        support::token(&self.syntax, SyntaxKind::AS_KW)
5528    }
5529    #[inline]
5530    pub fn create_token(&self) -> Option<SyntaxToken> {
5531        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5532    }
5533    #[inline]
5534    pub fn enum_token(&self) -> Option<SyntaxToken> {
5535        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5536    }
5537    #[inline]
5538    pub fn range_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5540    }
5541    #[inline]
5542    pub fn type_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5544    }
5545}
5546
5547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5548pub struct CreateUser {
5549    pub(crate) syntax: SyntaxNode,
5550}
5551impl CreateUser {
5552    #[inline]
5553    pub fn name(&self) -> Option<Name> {
5554        support::child(&self.syntax)
5555    }
5556    #[inline]
5557    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5558        support::child(&self.syntax)
5559    }
5560    #[inline]
5561    pub fn create_token(&self) -> Option<SyntaxToken> {
5562        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5563    }
5564    #[inline]
5565    pub fn user_token(&self) -> Option<SyntaxToken> {
5566        support::token(&self.syntax, SyntaxKind::USER_KW)
5567    }
5568}
5569
5570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5571pub struct CreateUserMapping {
5572    pub(crate) syntax: SyntaxNode,
5573}
5574impl CreateUserMapping {
5575    #[inline]
5576    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5577        support::child(&self.syntax)
5578    }
5579    #[inline]
5580    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5581        support::child(&self.syntax)
5582    }
5583    #[inline]
5584    pub fn role_ref(&self) -> Option<RoleRef> {
5585        support::child(&self.syntax)
5586    }
5587    #[inline]
5588    pub fn server_name(&self) -> Option<ServerName> {
5589        support::child(&self.syntax)
5590    }
5591    #[inline]
5592    pub fn create_token(&self) -> Option<SyntaxToken> {
5593        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5594    }
5595    #[inline]
5596    pub fn for_token(&self) -> Option<SyntaxToken> {
5597        support::token(&self.syntax, SyntaxKind::FOR_KW)
5598    }
5599    #[inline]
5600    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5601        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5602    }
5603    #[inline]
5604    pub fn user_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::USER_KW)
5606    }
5607}
5608
5609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5610pub struct CreateView {
5611    pub(crate) syntax: SyntaxNode,
5612}
5613impl CreateView {
5614    #[inline]
5615    pub fn column_list(&self) -> Option<ColumnList> {
5616        support::child(&self.syntax)
5617    }
5618    #[inline]
5619    pub fn or_replace(&self) -> Option<OrReplace> {
5620        support::child(&self.syntax)
5621    }
5622    #[inline]
5623    pub fn path(&self) -> Option<Path> {
5624        support::child(&self.syntax)
5625    }
5626    #[inline]
5627    pub fn persistence(&self) -> Option<Persistence> {
5628        support::child(&self.syntax)
5629    }
5630    #[inline]
5631    pub fn query(&self) -> Option<SelectVariant> {
5632        support::child(&self.syntax)
5633    }
5634    #[inline]
5635    pub fn with_params(&self) -> Option<WithParams> {
5636        support::child(&self.syntax)
5637    }
5638    #[inline]
5639    pub fn as_token(&self) -> Option<SyntaxToken> {
5640        support::token(&self.syntax, SyntaxKind::AS_KW)
5641    }
5642    #[inline]
5643    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5644        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5645    }
5646    #[inline]
5647    pub fn check_token(&self) -> Option<SyntaxToken> {
5648        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5649    }
5650    #[inline]
5651    pub fn create_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5653    }
5654    #[inline]
5655    pub fn local_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5657    }
5658    #[inline]
5659    pub fn option_token(&self) -> Option<SyntaxToken> {
5660        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5661    }
5662    #[inline]
5663    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5664        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5665    }
5666    #[inline]
5667    pub fn view_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5669    }
5670    #[inline]
5671    pub fn with_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::WITH_KW)
5673    }
5674}
5675
5676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5677pub struct CustomOp {
5678    pub(crate) syntax: SyntaxNode,
5679}
5680impl CustomOp {
5681    #[inline]
5682    pub fn bang_token(&self) -> Option<SyntaxToken> {
5683        support::token(&self.syntax, SyntaxKind::BANG)
5684    }
5685    #[inline]
5686    pub fn pound_token(&self) -> Option<SyntaxToken> {
5687        support::token(&self.syntax, SyntaxKind::POUND)
5688    }
5689    #[inline]
5690    pub fn percent_token(&self) -> Option<SyntaxToken> {
5691        support::token(&self.syntax, SyntaxKind::PERCENT)
5692    }
5693    #[inline]
5694    pub fn amp_token(&self) -> Option<SyntaxToken> {
5695        support::token(&self.syntax, SyntaxKind::AMP)
5696    }
5697    #[inline]
5698    pub fn star_token(&self) -> Option<SyntaxToken> {
5699        support::token(&self.syntax, SyntaxKind::STAR)
5700    }
5701    #[inline]
5702    pub fn plus_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::PLUS)
5704    }
5705    #[inline]
5706    pub fn minus_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::MINUS)
5708    }
5709    #[inline]
5710    pub fn slash_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::SLASH)
5712    }
5713    #[inline]
5714    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5716    }
5717    #[inline]
5718    pub fn eq_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::EQ)
5720    }
5721    #[inline]
5722    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5723        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5724    }
5725    #[inline]
5726    pub fn question_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::QUESTION)
5728    }
5729    #[inline]
5730    pub fn at_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::AT)
5732    }
5733    #[inline]
5734    pub fn caret_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::CARET)
5736    }
5737    #[inline]
5738    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::BACKTICK)
5740    }
5741    #[inline]
5742    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::PIPE)
5744    }
5745    #[inline]
5746    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::TILDE)
5748    }
5749}
5750
5751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5752pub struct Deallocate {
5753    pub(crate) syntax: SyntaxNode,
5754}
5755impl Deallocate {
5756    #[inline]
5757    pub fn name_ref(&self) -> Option<NameRef> {
5758        support::child(&self.syntax)
5759    }
5760    #[inline]
5761    pub fn all_token(&self) -> Option<SyntaxToken> {
5762        support::token(&self.syntax, SyntaxKind::ALL_KW)
5763    }
5764    #[inline]
5765    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5766        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5767    }
5768    #[inline]
5769    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5770        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5771    }
5772}
5773
5774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5775pub struct Declare {
5776    pub(crate) syntax: SyntaxNode,
5777}
5778impl Declare {
5779    #[inline]
5780    pub fn name(&self) -> Option<Name> {
5781        support::child(&self.syntax)
5782    }
5783    #[inline]
5784    pub fn query(&self) -> Option<SelectVariant> {
5785        support::child(&self.syntax)
5786    }
5787    #[inline]
5788    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5790    }
5791    #[inline]
5792    pub fn binary_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5794    }
5795    #[inline]
5796    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5798    }
5799    #[inline]
5800    pub fn declare_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5802    }
5803    #[inline]
5804    pub fn for_token(&self) -> Option<SyntaxToken> {
5805        support::token(&self.syntax, SyntaxKind::FOR_KW)
5806    }
5807    #[inline]
5808    pub fn hold_token(&self) -> Option<SyntaxToken> {
5809        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5810    }
5811    #[inline]
5812    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5814    }
5815    #[inline]
5816    pub fn no_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::NO_KW)
5818    }
5819    #[inline]
5820    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5822    }
5823    #[inline]
5824    pub fn with_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::WITH_KW)
5826    }
5827    #[inline]
5828    pub fn without_token(&self) -> Option<SyntaxToken> {
5829        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5830    }
5831}
5832
5833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5834pub struct DefaultConstraint {
5835    pub(crate) syntax: SyntaxNode,
5836}
5837impl DefaultConstraint {
5838    #[inline]
5839    pub fn expr(&self) -> Option<Expr> {
5840        support::child(&self.syntax)
5841    }
5842    #[inline]
5843    pub fn name_ref(&self) -> Option<NameRef> {
5844        support::child(&self.syntax)
5845    }
5846    #[inline]
5847    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5848        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5849    }
5850    #[inline]
5851    pub fn default_token(&self) -> Option<SyntaxToken> {
5852        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5853    }
5854}
5855
5856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5857pub struct Deferrable {
5858    pub(crate) syntax: SyntaxNode,
5859}
5860impl Deferrable {
5861    #[inline]
5862    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5863        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5864    }
5865}
5866
5867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5868pub struct DeferrableConstraintOption {
5869    pub(crate) syntax: SyntaxNode,
5870}
5871impl DeferrableConstraintOption {
5872    #[inline]
5873    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5874        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5875    }
5876}
5877
5878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5879pub struct Delete {
5880    pub(crate) syntax: SyntaxNode,
5881}
5882impl Delete {
5883    #[inline]
5884    pub fn alias(&self) -> Option<Alias> {
5885        support::child(&self.syntax)
5886    }
5887    #[inline]
5888    pub fn relation_name(&self) -> Option<RelationName> {
5889        support::child(&self.syntax)
5890    }
5891    #[inline]
5892    pub fn returning_clause(&self) -> Option<ReturningClause> {
5893        support::child(&self.syntax)
5894    }
5895    #[inline]
5896    pub fn using_clause(&self) -> Option<UsingClause> {
5897        support::child(&self.syntax)
5898    }
5899    #[inline]
5900    pub fn where_clause(&self) -> Option<WhereClause> {
5901        support::child(&self.syntax)
5902    }
5903    #[inline]
5904    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn with_clause(&self) -> Option<WithClause> {
5909        support::child(&self.syntax)
5910    }
5911    #[inline]
5912    pub fn delete_token(&self) -> Option<SyntaxToken> {
5913        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5914    }
5915    #[inline]
5916    pub fn from_token(&self) -> Option<SyntaxToken> {
5917        support::token(&self.syntax, SyntaxKind::FROM_KW)
5918    }
5919}
5920
5921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5922pub struct DeleteRows {
5923    pub(crate) syntax: SyntaxNode,
5924}
5925impl DeleteRows {
5926    #[inline]
5927    pub fn delete_token(&self) -> Option<SyntaxToken> {
5928        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5929    }
5930    #[inline]
5931    pub fn rows_token(&self) -> Option<SyntaxToken> {
5932        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5933    }
5934}
5935
5936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5937pub struct DependsOnExtension {
5938    pub(crate) syntax: SyntaxNode,
5939}
5940impl DependsOnExtension {
5941    #[inline]
5942    pub fn name_ref(&self) -> Option<NameRef> {
5943        support::child(&self.syntax)
5944    }
5945    #[inline]
5946    pub fn depends_token(&self) -> Option<SyntaxToken> {
5947        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5948    }
5949    #[inline]
5950    pub fn extension_token(&self) -> Option<SyntaxToken> {
5951        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5952    }
5953    #[inline]
5954    pub fn on_token(&self) -> Option<SyntaxToken> {
5955        support::token(&self.syntax, SyntaxKind::ON_KW)
5956    }
5957}
5958
5959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5960pub struct DestVertexTable {
5961    pub(crate) syntax: SyntaxNode,
5962}
5963impl DestVertexTable {
5964    #[inline]
5965    pub fn column_list(&self) -> Option<ColumnList> {
5966        support::child(&self.syntax)
5967    }
5968    #[inline]
5969    pub fn name_ref(&self) -> Option<NameRef> {
5970        support::child(&self.syntax)
5971    }
5972    #[inline]
5973    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5974        support::token(&self.syntax, SyntaxKind::L_PAREN)
5975    }
5976    #[inline]
5977    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5978        support::token(&self.syntax, SyntaxKind::R_PAREN)
5979    }
5980    #[inline]
5981    pub fn destination_token(&self) -> Option<SyntaxToken> {
5982        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
5983    }
5984    #[inline]
5985    pub fn key_token(&self) -> Option<SyntaxToken> {
5986        support::token(&self.syntax, SyntaxKind::KEY_KW)
5987    }
5988    #[inline]
5989    pub fn references_token(&self) -> Option<SyntaxToken> {
5990        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
5991    }
5992}
5993
5994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5995pub struct DetachPartition {
5996    pub(crate) syntax: SyntaxNode,
5997}
5998impl DetachPartition {
5999    #[inline]
6000    pub fn path(&self) -> Option<Path> {
6001        support::child(&self.syntax)
6002    }
6003    #[inline]
6004    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6005        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6006    }
6007    #[inline]
6008    pub fn detach_token(&self) -> Option<SyntaxToken> {
6009        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6010    }
6011    #[inline]
6012    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6013        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6014    }
6015    #[inline]
6016    pub fn partition_token(&self) -> Option<SyntaxToken> {
6017        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6018    }
6019}
6020
6021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6022pub struct DisableRls {
6023    pub(crate) syntax: SyntaxNode,
6024}
6025impl DisableRls {
6026    #[inline]
6027    pub fn disable_token(&self) -> Option<SyntaxToken> {
6028        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6029    }
6030    #[inline]
6031    pub fn level_token(&self) -> Option<SyntaxToken> {
6032        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6033    }
6034    #[inline]
6035    pub fn row_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::ROW_KW)
6037    }
6038    #[inline]
6039    pub fn security_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6041    }
6042}
6043
6044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6045pub struct DisableRule {
6046    pub(crate) syntax: SyntaxNode,
6047}
6048impl DisableRule {
6049    #[inline]
6050    pub fn disable_token(&self) -> Option<SyntaxToken> {
6051        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6052    }
6053    #[inline]
6054    pub fn rule_token(&self) -> Option<SyntaxToken> {
6055        support::token(&self.syntax, SyntaxKind::RULE_KW)
6056    }
6057}
6058
6059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6060pub struct DisableTrigger {
6061    pub(crate) syntax: SyntaxNode,
6062}
6063impl DisableTrigger {
6064    #[inline]
6065    pub fn disable_token(&self) -> Option<SyntaxToken> {
6066        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6067    }
6068    #[inline]
6069    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6070        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6071    }
6072}
6073
6074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6075pub struct Discard {
6076    pub(crate) syntax: SyntaxNode,
6077}
6078impl Discard {
6079    #[inline]
6080    pub fn all_token(&self) -> Option<SyntaxToken> {
6081        support::token(&self.syntax, SyntaxKind::ALL_KW)
6082    }
6083    #[inline]
6084    pub fn discard_token(&self) -> Option<SyntaxToken> {
6085        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6086    }
6087    #[inline]
6088    pub fn plans_token(&self) -> Option<SyntaxToken> {
6089        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6090    }
6091    #[inline]
6092    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6093        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6094    }
6095    #[inline]
6096    pub fn temp_token(&self) -> Option<SyntaxToken> {
6097        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6098    }
6099    #[inline]
6100    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6101        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6102    }
6103}
6104
6105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6106pub struct DistinctClause {
6107    pub(crate) syntax: SyntaxNode,
6108}
6109impl DistinctClause {
6110    #[inline]
6111    pub fn exprs(&self) -> AstChildren<Expr> {
6112        support::children(&self.syntax)
6113    }
6114    #[inline]
6115    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6116        support::token(&self.syntax, SyntaxKind::L_PAREN)
6117    }
6118    #[inline]
6119    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6120        support::token(&self.syntax, SyntaxKind::R_PAREN)
6121    }
6122    #[inline]
6123    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6124        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6125    }
6126    #[inline]
6127    pub fn on_token(&self) -> Option<SyntaxToken> {
6128        support::token(&self.syntax, SyntaxKind::ON_KW)
6129    }
6130}
6131
6132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6133pub struct Do {
6134    pub(crate) syntax: SyntaxNode,
6135}
6136impl Do {
6137    #[inline]
6138    pub fn do_token(&self) -> Option<SyntaxToken> {
6139        support::token(&self.syntax, SyntaxKind::DO_KW)
6140    }
6141}
6142
6143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6144pub struct DoubleType {
6145    pub(crate) syntax: SyntaxNode,
6146}
6147impl DoubleType {
6148    #[inline]
6149    pub fn double_token(&self) -> Option<SyntaxToken> {
6150        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6151    }
6152    #[inline]
6153    pub fn precision_token(&self) -> Option<SyntaxToken> {
6154        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6155    }
6156    #[inline]
6157    pub fn setof_token(&self) -> Option<SyntaxToken> {
6158        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6159    }
6160}
6161
6162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6163pub struct Drop {
6164    pub(crate) syntax: SyntaxNode,
6165}
6166impl Drop {
6167    #[inline]
6168    pub fn drop_token(&self) -> Option<SyntaxToken> {
6169        support::token(&self.syntax, SyntaxKind::DROP_KW)
6170    }
6171}
6172
6173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6174pub struct DropAccessMethod {
6175    pub(crate) syntax: SyntaxNode,
6176}
6177impl DropAccessMethod {
6178    #[inline]
6179    pub fn if_exists(&self) -> Option<IfExists> {
6180        support::child(&self.syntax)
6181    }
6182    #[inline]
6183    pub fn name_ref(&self) -> Option<NameRef> {
6184        support::child(&self.syntax)
6185    }
6186    #[inline]
6187    pub fn access_token(&self) -> Option<SyntaxToken> {
6188        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6189    }
6190    #[inline]
6191    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6192        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6193    }
6194    #[inline]
6195    pub fn drop_token(&self) -> Option<SyntaxToken> {
6196        support::token(&self.syntax, SyntaxKind::DROP_KW)
6197    }
6198    #[inline]
6199    pub fn method_token(&self) -> Option<SyntaxToken> {
6200        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6201    }
6202    #[inline]
6203    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6204        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6205    }
6206}
6207
6208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6209pub struct DropAggregate {
6210    pub(crate) syntax: SyntaxNode,
6211}
6212impl DropAggregate {
6213    #[inline]
6214    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6215        support::children(&self.syntax)
6216    }
6217    #[inline]
6218    pub fn if_exists(&self) -> Option<IfExists> {
6219        support::child(&self.syntax)
6220    }
6221    #[inline]
6222    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6223        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6224    }
6225    #[inline]
6226    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6227        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6228    }
6229    #[inline]
6230    pub fn drop_token(&self) -> Option<SyntaxToken> {
6231        support::token(&self.syntax, SyntaxKind::DROP_KW)
6232    }
6233    #[inline]
6234    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6235        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6236    }
6237}
6238
6239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6240pub struct DropAttribute {
6241    pub(crate) syntax: SyntaxNode,
6242}
6243impl DropAttribute {
6244    #[inline]
6245    pub fn cascade(&self) -> Option<Cascade> {
6246        support::child(&self.syntax)
6247    }
6248    #[inline]
6249    pub fn if_exists(&self) -> Option<IfExists> {
6250        support::child(&self.syntax)
6251    }
6252    #[inline]
6253    pub fn restrict(&self) -> Option<Restrict> {
6254        support::child(&self.syntax)
6255    }
6256    #[inline]
6257    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6258        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6259    }
6260    #[inline]
6261    pub fn drop_token(&self) -> Option<SyntaxToken> {
6262        support::token(&self.syntax, SyntaxKind::DROP_KW)
6263    }
6264}
6265
6266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6267pub struct DropCast {
6268    pub(crate) syntax: SyntaxNode,
6269}
6270impl DropCast {
6271    #[inline]
6272    pub fn cast_sig(&self) -> Option<CastSig> {
6273        support::child(&self.syntax)
6274    }
6275    #[inline]
6276    pub fn if_exists(&self) -> Option<IfExists> {
6277        support::child(&self.syntax)
6278    }
6279    #[inline]
6280    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6281        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6282    }
6283    #[inline]
6284    pub fn cast_token(&self) -> Option<SyntaxToken> {
6285        support::token(&self.syntax, SyntaxKind::CAST_KW)
6286    }
6287    #[inline]
6288    pub fn drop_token(&self) -> Option<SyntaxToken> {
6289        support::token(&self.syntax, SyntaxKind::DROP_KW)
6290    }
6291    #[inline]
6292    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6293        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6294    }
6295}
6296
6297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6298pub struct DropCollation {
6299    pub(crate) syntax: SyntaxNode,
6300}
6301impl DropCollation {
6302    #[inline]
6303    pub fn if_exists(&self) -> Option<IfExists> {
6304        support::child(&self.syntax)
6305    }
6306    #[inline]
6307    pub fn paths(&self) -> AstChildren<Path> {
6308        support::children(&self.syntax)
6309    }
6310    #[inline]
6311    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6312        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6313    }
6314    #[inline]
6315    pub fn collation_token(&self) -> Option<SyntaxToken> {
6316        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6317    }
6318    #[inline]
6319    pub fn drop_token(&self) -> Option<SyntaxToken> {
6320        support::token(&self.syntax, SyntaxKind::DROP_KW)
6321    }
6322    #[inline]
6323    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6324        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6325    }
6326}
6327
6328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6329pub struct DropColumn {
6330    pub(crate) syntax: SyntaxNode,
6331}
6332impl DropColumn {
6333    #[inline]
6334    pub fn if_exists(&self) -> Option<IfExists> {
6335        support::child(&self.syntax)
6336    }
6337    #[inline]
6338    pub fn name_ref(&self) -> Option<NameRef> {
6339        support::child(&self.syntax)
6340    }
6341    #[inline]
6342    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6343        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6344    }
6345    #[inline]
6346    pub fn column_token(&self) -> Option<SyntaxToken> {
6347        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6348    }
6349    #[inline]
6350    pub fn drop_token(&self) -> Option<SyntaxToken> {
6351        support::token(&self.syntax, SyntaxKind::DROP_KW)
6352    }
6353    #[inline]
6354    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6355        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6356    }
6357}
6358
6359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6360pub struct DropConstraint {
6361    pub(crate) syntax: SyntaxNode,
6362}
6363impl DropConstraint {
6364    #[inline]
6365    pub fn if_exists(&self) -> Option<IfExists> {
6366        support::child(&self.syntax)
6367    }
6368    #[inline]
6369    pub fn name_ref(&self) -> Option<NameRef> {
6370        support::child(&self.syntax)
6371    }
6372    #[inline]
6373    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6374        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6375    }
6376    #[inline]
6377    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6378        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6379    }
6380    #[inline]
6381    pub fn drop_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::DROP_KW)
6383    }
6384    #[inline]
6385    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6387    }
6388}
6389
6390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6391pub struct DropConversion {
6392    pub(crate) syntax: SyntaxNode,
6393}
6394impl DropConversion {
6395    #[inline]
6396    pub fn if_exists(&self) -> Option<IfExists> {
6397        support::child(&self.syntax)
6398    }
6399    #[inline]
6400    pub fn path(&self) -> Option<Path> {
6401        support::child(&self.syntax)
6402    }
6403    #[inline]
6404    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6405        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6406    }
6407    #[inline]
6408    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6409        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6410    }
6411    #[inline]
6412    pub fn drop_token(&self) -> Option<SyntaxToken> {
6413        support::token(&self.syntax, SyntaxKind::DROP_KW)
6414    }
6415    #[inline]
6416    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6417        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6418    }
6419}
6420
6421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6422pub struct DropDatabase {
6423    pub(crate) syntax: SyntaxNode,
6424}
6425impl DropDatabase {
6426    #[inline]
6427    pub fn if_exists(&self) -> Option<IfExists> {
6428        support::child(&self.syntax)
6429    }
6430    #[inline]
6431    pub fn name_ref(&self) -> Option<NameRef> {
6432        support::child(&self.syntax)
6433    }
6434    #[inline]
6435    pub fn database_token(&self) -> Option<SyntaxToken> {
6436        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6437    }
6438    #[inline]
6439    pub fn drop_token(&self) -> Option<SyntaxToken> {
6440        support::token(&self.syntax, SyntaxKind::DROP_KW)
6441    }
6442}
6443
6444#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6445pub struct DropDefault {
6446    pub(crate) syntax: SyntaxNode,
6447}
6448impl DropDefault {
6449    #[inline]
6450    pub fn default_token(&self) -> Option<SyntaxToken> {
6451        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6452    }
6453    #[inline]
6454    pub fn drop_token(&self) -> Option<SyntaxToken> {
6455        support::token(&self.syntax, SyntaxKind::DROP_KW)
6456    }
6457}
6458
6459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6460pub struct DropDomain {
6461    pub(crate) syntax: SyntaxNode,
6462}
6463impl DropDomain {
6464    #[inline]
6465    pub fn if_exists(&self) -> Option<IfExists> {
6466        support::child(&self.syntax)
6467    }
6468    #[inline]
6469    pub fn paths(&self) -> AstChildren<Path> {
6470        support::children(&self.syntax)
6471    }
6472    #[inline]
6473    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6474        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6475    }
6476    #[inline]
6477    pub fn domain_token(&self) -> Option<SyntaxToken> {
6478        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6479    }
6480    #[inline]
6481    pub fn drop_token(&self) -> Option<SyntaxToken> {
6482        support::token(&self.syntax, SyntaxKind::DROP_KW)
6483    }
6484    #[inline]
6485    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6487    }
6488}
6489
6490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6491pub struct DropEdgeTables {
6492    pub(crate) syntax: SyntaxNode,
6493}
6494impl DropEdgeTables {
6495    #[inline]
6496    pub fn names(&self) -> AstChildren<Name> {
6497        support::children(&self.syntax)
6498    }
6499    #[inline]
6500    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6501        support::token(&self.syntax, SyntaxKind::L_PAREN)
6502    }
6503    #[inline]
6504    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6505        support::token(&self.syntax, SyntaxKind::R_PAREN)
6506    }
6507    #[inline]
6508    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6509        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6510    }
6511    #[inline]
6512    pub fn drop_token(&self) -> Option<SyntaxToken> {
6513        support::token(&self.syntax, SyntaxKind::DROP_KW)
6514    }
6515    #[inline]
6516    pub fn edge_token(&self) -> Option<SyntaxToken> {
6517        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6518    }
6519    #[inline]
6520    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6521        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6522    }
6523    #[inline]
6524    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6526    }
6527    #[inline]
6528    pub fn tables_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6530    }
6531}
6532
6533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6534pub struct DropEventTrigger {
6535    pub(crate) syntax: SyntaxNode,
6536}
6537impl DropEventTrigger {
6538    #[inline]
6539    pub fn if_exists(&self) -> Option<IfExists> {
6540        support::child(&self.syntax)
6541    }
6542    #[inline]
6543    pub fn name_ref(&self) -> Option<NameRef> {
6544        support::child(&self.syntax)
6545    }
6546    #[inline]
6547    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6548        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6549    }
6550    #[inline]
6551    pub fn drop_token(&self) -> Option<SyntaxToken> {
6552        support::token(&self.syntax, SyntaxKind::DROP_KW)
6553    }
6554    #[inline]
6555    pub fn event_token(&self) -> Option<SyntaxToken> {
6556        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6557    }
6558    #[inline]
6559    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6560        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6561    }
6562    #[inline]
6563    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6565    }
6566}
6567
6568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6569pub struct DropExpression {
6570    pub(crate) syntax: SyntaxNode,
6571}
6572impl DropExpression {
6573    #[inline]
6574    pub fn if_exists(&self) -> Option<IfExists> {
6575        support::child(&self.syntax)
6576    }
6577    #[inline]
6578    pub fn drop_token(&self) -> Option<SyntaxToken> {
6579        support::token(&self.syntax, SyntaxKind::DROP_KW)
6580    }
6581    #[inline]
6582    pub fn expression_token(&self) -> Option<SyntaxToken> {
6583        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6584    }
6585}
6586
6587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6588pub struct DropExtension {
6589    pub(crate) syntax: SyntaxNode,
6590}
6591impl DropExtension {
6592    #[inline]
6593    pub fn if_exists(&self) -> Option<IfExists> {
6594        support::child(&self.syntax)
6595    }
6596    #[inline]
6597    pub fn name_refs(&self) -> AstChildren<NameRef> {
6598        support::children(&self.syntax)
6599    }
6600    #[inline]
6601    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6602        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6603    }
6604    #[inline]
6605    pub fn drop_token(&self) -> Option<SyntaxToken> {
6606        support::token(&self.syntax, SyntaxKind::DROP_KW)
6607    }
6608    #[inline]
6609    pub fn extension_token(&self) -> Option<SyntaxToken> {
6610        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6611    }
6612    #[inline]
6613    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6614        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6615    }
6616}
6617
6618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6619pub struct DropForeignDataWrapper {
6620    pub(crate) syntax: SyntaxNode,
6621}
6622impl DropForeignDataWrapper {
6623    #[inline]
6624    pub fn if_exists(&self) -> Option<IfExists> {
6625        support::child(&self.syntax)
6626    }
6627    #[inline]
6628    pub fn name_refs(&self) -> AstChildren<NameRef> {
6629        support::children(&self.syntax)
6630    }
6631    #[inline]
6632    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6633        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6634    }
6635    #[inline]
6636    pub fn data_token(&self) -> Option<SyntaxToken> {
6637        support::token(&self.syntax, SyntaxKind::DATA_KW)
6638    }
6639    #[inline]
6640    pub fn drop_token(&self) -> Option<SyntaxToken> {
6641        support::token(&self.syntax, SyntaxKind::DROP_KW)
6642    }
6643    #[inline]
6644    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6645        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6646    }
6647    #[inline]
6648    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6650    }
6651    #[inline]
6652    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6654    }
6655}
6656
6657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6658pub struct DropForeignTable {
6659    pub(crate) syntax: SyntaxNode,
6660}
6661impl DropForeignTable {
6662    #[inline]
6663    pub fn if_exists(&self) -> Option<IfExists> {
6664        support::child(&self.syntax)
6665    }
6666    #[inline]
6667    pub fn path(&self) -> Option<Path> {
6668        support::child(&self.syntax)
6669    }
6670    #[inline]
6671    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6672        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6673    }
6674    #[inline]
6675    pub fn drop_token(&self) -> Option<SyntaxToken> {
6676        support::token(&self.syntax, SyntaxKind::DROP_KW)
6677    }
6678    #[inline]
6679    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6680        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6681    }
6682    #[inline]
6683    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6684        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6685    }
6686    #[inline]
6687    pub fn table_token(&self) -> Option<SyntaxToken> {
6688        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6689    }
6690}
6691
6692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6693pub struct DropFunction {
6694    pub(crate) syntax: SyntaxNode,
6695}
6696impl DropFunction {
6697    #[inline]
6698    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6699        support::child(&self.syntax)
6700    }
6701    #[inline]
6702    pub fn if_exists(&self) -> Option<IfExists> {
6703        support::child(&self.syntax)
6704    }
6705    #[inline]
6706    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6707        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6708    }
6709    #[inline]
6710    pub fn drop_token(&self) -> Option<SyntaxToken> {
6711        support::token(&self.syntax, SyntaxKind::DROP_KW)
6712    }
6713    #[inline]
6714    pub fn function_token(&self) -> Option<SyntaxToken> {
6715        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6716    }
6717    #[inline]
6718    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6719        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6720    }
6721}
6722
6723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6724pub struct DropGroup {
6725    pub(crate) syntax: SyntaxNode,
6726}
6727impl DropGroup {
6728    #[inline]
6729    pub fn if_exists(&self) -> Option<IfExists> {
6730        support::child(&self.syntax)
6731    }
6732    #[inline]
6733    pub fn name_refs(&self) -> AstChildren<NameRef> {
6734        support::children(&self.syntax)
6735    }
6736    #[inline]
6737    pub fn drop_token(&self) -> Option<SyntaxToken> {
6738        support::token(&self.syntax, SyntaxKind::DROP_KW)
6739    }
6740    #[inline]
6741    pub fn group_token(&self) -> Option<SyntaxToken> {
6742        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6743    }
6744}
6745
6746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6747pub struct DropIdentity {
6748    pub(crate) syntax: SyntaxNode,
6749}
6750impl DropIdentity {
6751    #[inline]
6752    pub fn if_exists(&self) -> Option<IfExists> {
6753        support::child(&self.syntax)
6754    }
6755    #[inline]
6756    pub fn drop_token(&self) -> Option<SyntaxToken> {
6757        support::token(&self.syntax, SyntaxKind::DROP_KW)
6758    }
6759    #[inline]
6760    pub fn identity_token(&self) -> Option<SyntaxToken> {
6761        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6762    }
6763}
6764
6765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6766pub struct DropIndex {
6767    pub(crate) syntax: SyntaxNode,
6768}
6769impl DropIndex {
6770    #[inline]
6771    pub fn if_exists(&self) -> Option<IfExists> {
6772        support::child(&self.syntax)
6773    }
6774    #[inline]
6775    pub fn paths(&self) -> AstChildren<Path> {
6776        support::children(&self.syntax)
6777    }
6778    #[inline]
6779    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6780        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6781    }
6782    #[inline]
6783    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6784        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6785    }
6786    #[inline]
6787    pub fn drop_token(&self) -> Option<SyntaxToken> {
6788        support::token(&self.syntax, SyntaxKind::DROP_KW)
6789    }
6790    #[inline]
6791    pub fn index_token(&self) -> Option<SyntaxToken> {
6792        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6793    }
6794    #[inline]
6795    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6796        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6797    }
6798}
6799
6800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6801pub struct DropLanguage {
6802    pub(crate) syntax: SyntaxNode,
6803}
6804impl DropLanguage {
6805    #[inline]
6806    pub fn if_exists(&self) -> Option<IfExists> {
6807        support::child(&self.syntax)
6808    }
6809    #[inline]
6810    pub fn name_ref(&self) -> Option<NameRef> {
6811        support::child(&self.syntax)
6812    }
6813    #[inline]
6814    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6815        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6816    }
6817    #[inline]
6818    pub fn drop_token(&self) -> Option<SyntaxToken> {
6819        support::token(&self.syntax, SyntaxKind::DROP_KW)
6820    }
6821    #[inline]
6822    pub fn language_token(&self) -> Option<SyntaxToken> {
6823        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6824    }
6825    #[inline]
6826    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6827        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6828    }
6829    #[inline]
6830    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6831        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6832    }
6833}
6834
6835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6836pub struct DropMaterializedView {
6837    pub(crate) syntax: SyntaxNode,
6838}
6839impl DropMaterializedView {
6840    #[inline]
6841    pub fn if_exists(&self) -> Option<IfExists> {
6842        support::child(&self.syntax)
6843    }
6844    #[inline]
6845    pub fn paths(&self) -> AstChildren<Path> {
6846        support::children(&self.syntax)
6847    }
6848    #[inline]
6849    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6850        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6851    }
6852    #[inline]
6853    pub fn drop_token(&self) -> Option<SyntaxToken> {
6854        support::token(&self.syntax, SyntaxKind::DROP_KW)
6855    }
6856    #[inline]
6857    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6858        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6859    }
6860    #[inline]
6861    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6862        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6863    }
6864    #[inline]
6865    pub fn view_token(&self) -> Option<SyntaxToken> {
6866        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6867    }
6868}
6869
6870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6871pub struct DropNotNull {
6872    pub(crate) syntax: SyntaxNode,
6873}
6874impl DropNotNull {
6875    #[inline]
6876    pub fn drop_token(&self) -> Option<SyntaxToken> {
6877        support::token(&self.syntax, SyntaxKind::DROP_KW)
6878    }
6879    #[inline]
6880    pub fn not_token(&self) -> Option<SyntaxToken> {
6881        support::token(&self.syntax, SyntaxKind::NOT_KW)
6882    }
6883    #[inline]
6884    pub fn null_token(&self) -> Option<SyntaxToken> {
6885        support::token(&self.syntax, SyntaxKind::NULL_KW)
6886    }
6887}
6888
6889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6890pub struct DropOpClassOption {
6891    pub(crate) syntax: SyntaxNode,
6892}
6893impl DropOpClassOption {
6894    #[inline]
6895    pub fn literal(&self) -> Option<Literal> {
6896        support::child(&self.syntax)
6897    }
6898    #[inline]
6899    pub fn param_list(&self) -> Option<ParamList> {
6900        support::child(&self.syntax)
6901    }
6902    #[inline]
6903    pub fn function_token(&self) -> Option<SyntaxToken> {
6904        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6905    }
6906    #[inline]
6907    pub fn operator_token(&self) -> Option<SyntaxToken> {
6908        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6909    }
6910}
6911
6912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6913pub struct DropOpClassOptionList {
6914    pub(crate) syntax: SyntaxNode,
6915}
6916impl DropOpClassOptionList {
6917    #[inline]
6918    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6919        support::children(&self.syntax)
6920    }
6921}
6922
6923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6924pub struct DropOpClassOptions {
6925    pub(crate) syntax: SyntaxNode,
6926}
6927impl DropOpClassOptions {
6928    #[inline]
6929    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6930        support::child(&self.syntax)
6931    }
6932    #[inline]
6933    pub fn drop_token(&self) -> Option<SyntaxToken> {
6934        support::token(&self.syntax, SyntaxKind::DROP_KW)
6935    }
6936}
6937
6938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6939pub struct DropOperator {
6940    pub(crate) syntax: SyntaxNode,
6941}
6942impl DropOperator {
6943    #[inline]
6944    pub fn if_exists(&self) -> Option<IfExists> {
6945        support::child(&self.syntax)
6946    }
6947    #[inline]
6948    pub fn op_sig_list(&self) -> Option<OpSigList> {
6949        support::child(&self.syntax)
6950    }
6951    #[inline]
6952    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6953        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6954    }
6955    #[inline]
6956    pub fn drop_token(&self) -> Option<SyntaxToken> {
6957        support::token(&self.syntax, SyntaxKind::DROP_KW)
6958    }
6959    #[inline]
6960    pub fn operator_token(&self) -> Option<SyntaxToken> {
6961        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6962    }
6963    #[inline]
6964    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6965        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6966    }
6967}
6968
6969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6970pub struct DropOperatorClass {
6971    pub(crate) syntax: SyntaxNode,
6972}
6973impl DropOperatorClass {
6974    #[inline]
6975    pub fn if_exists(&self) -> Option<IfExists> {
6976        support::child(&self.syntax)
6977    }
6978    #[inline]
6979    pub fn name_ref(&self) -> Option<NameRef> {
6980        support::child(&self.syntax)
6981    }
6982    #[inline]
6983    pub fn path(&self) -> Option<Path> {
6984        support::child(&self.syntax)
6985    }
6986    #[inline]
6987    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6988        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6989    }
6990    #[inline]
6991    pub fn class_token(&self) -> Option<SyntaxToken> {
6992        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6993    }
6994    #[inline]
6995    pub fn drop_token(&self) -> Option<SyntaxToken> {
6996        support::token(&self.syntax, SyntaxKind::DROP_KW)
6997    }
6998    #[inline]
6999    pub fn operator_token(&self) -> Option<SyntaxToken> {
7000        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7001    }
7002    #[inline]
7003    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7005    }
7006    #[inline]
7007    pub fn using_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::USING_KW)
7009    }
7010}
7011
7012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7013pub struct DropOperatorFamily {
7014    pub(crate) syntax: SyntaxNode,
7015}
7016impl DropOperatorFamily {
7017    #[inline]
7018    pub fn if_exists(&self) -> Option<IfExists> {
7019        support::child(&self.syntax)
7020    }
7021    #[inline]
7022    pub fn name_ref(&self) -> Option<NameRef> {
7023        support::child(&self.syntax)
7024    }
7025    #[inline]
7026    pub fn path(&self) -> Option<Path> {
7027        support::child(&self.syntax)
7028    }
7029    #[inline]
7030    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7031        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7032    }
7033    #[inline]
7034    pub fn drop_token(&self) -> Option<SyntaxToken> {
7035        support::token(&self.syntax, SyntaxKind::DROP_KW)
7036    }
7037    #[inline]
7038    pub fn family_token(&self) -> Option<SyntaxToken> {
7039        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7040    }
7041    #[inline]
7042    pub fn operator_token(&self) -> Option<SyntaxToken> {
7043        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7044    }
7045    #[inline]
7046    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7048    }
7049    #[inline]
7050    pub fn using_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::USING_KW)
7052    }
7053}
7054
7055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7056pub struct DropOwned {
7057    pub(crate) syntax: SyntaxNode,
7058}
7059impl DropOwned {
7060    #[inline]
7061    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7062        support::child(&self.syntax)
7063    }
7064    #[inline]
7065    pub fn by_token(&self) -> Option<SyntaxToken> {
7066        support::token(&self.syntax, SyntaxKind::BY_KW)
7067    }
7068    #[inline]
7069    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7070        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7071    }
7072    #[inline]
7073    pub fn drop_token(&self) -> Option<SyntaxToken> {
7074        support::token(&self.syntax, SyntaxKind::DROP_KW)
7075    }
7076    #[inline]
7077    pub fn owned_token(&self) -> Option<SyntaxToken> {
7078        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7079    }
7080    #[inline]
7081    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7083    }
7084}
7085
7086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7087pub struct DropPolicy {
7088    pub(crate) syntax: SyntaxNode,
7089}
7090impl DropPolicy {
7091    #[inline]
7092    pub fn if_exists(&self) -> Option<IfExists> {
7093        support::child(&self.syntax)
7094    }
7095    #[inline]
7096    pub fn name_ref(&self) -> Option<NameRef> {
7097        support::child(&self.syntax)
7098    }
7099    #[inline]
7100    pub fn on_table(&self) -> Option<OnTable> {
7101        support::child(&self.syntax)
7102    }
7103    #[inline]
7104    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7106    }
7107    #[inline]
7108    pub fn drop_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::DROP_KW)
7110    }
7111    #[inline]
7112    pub fn policy_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7114    }
7115    #[inline]
7116    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7118    }
7119}
7120
7121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7122pub struct DropProcedure {
7123    pub(crate) syntax: SyntaxNode,
7124}
7125impl DropProcedure {
7126    #[inline]
7127    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7128        support::child(&self.syntax)
7129    }
7130    #[inline]
7131    pub fn if_exists(&self) -> Option<IfExists> {
7132        support::child(&self.syntax)
7133    }
7134    #[inline]
7135    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7136        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7137    }
7138    #[inline]
7139    pub fn drop_token(&self) -> Option<SyntaxToken> {
7140        support::token(&self.syntax, SyntaxKind::DROP_KW)
7141    }
7142    #[inline]
7143    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7144        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7145    }
7146    #[inline]
7147    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7148        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7149    }
7150}
7151
7152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7153pub struct DropPropertyGraph {
7154    pub(crate) syntax: SyntaxNode,
7155}
7156impl DropPropertyGraph {
7157    #[inline]
7158    pub fn if_exists(&self) -> Option<IfExists> {
7159        support::child(&self.syntax)
7160    }
7161    #[inline]
7162    pub fn path(&self) -> Option<Path> {
7163        support::child(&self.syntax)
7164    }
7165    #[inline]
7166    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7167        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7168    }
7169    #[inline]
7170    pub fn drop_token(&self) -> Option<SyntaxToken> {
7171        support::token(&self.syntax, SyntaxKind::DROP_KW)
7172    }
7173    #[inline]
7174    pub fn graph_token(&self) -> Option<SyntaxToken> {
7175        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7176    }
7177    #[inline]
7178    pub fn property_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7180    }
7181    #[inline]
7182    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7184    }
7185}
7186
7187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7188pub struct DropPublication {
7189    pub(crate) syntax: SyntaxNode,
7190}
7191impl DropPublication {
7192    #[inline]
7193    pub fn if_exists(&self) -> Option<IfExists> {
7194        support::child(&self.syntax)
7195    }
7196    #[inline]
7197    pub fn name_refs(&self) -> AstChildren<NameRef> {
7198        support::children(&self.syntax)
7199    }
7200    #[inline]
7201    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7202        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7203    }
7204    #[inline]
7205    pub fn drop_token(&self) -> Option<SyntaxToken> {
7206        support::token(&self.syntax, SyntaxKind::DROP_KW)
7207    }
7208    #[inline]
7209    pub fn publication_token(&self) -> Option<SyntaxToken> {
7210        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7211    }
7212    #[inline]
7213    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7214        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7215    }
7216}
7217
7218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7219pub struct DropRole {
7220    pub(crate) syntax: SyntaxNode,
7221}
7222impl DropRole {
7223    #[inline]
7224    pub fn if_exists(&self) -> Option<IfExists> {
7225        support::child(&self.syntax)
7226    }
7227    #[inline]
7228    pub fn name_refs(&self) -> AstChildren<NameRef> {
7229        support::children(&self.syntax)
7230    }
7231    #[inline]
7232    pub fn drop_token(&self) -> Option<SyntaxToken> {
7233        support::token(&self.syntax, SyntaxKind::DROP_KW)
7234    }
7235    #[inline]
7236    pub fn role_token(&self) -> Option<SyntaxToken> {
7237        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7238    }
7239}
7240
7241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7242pub struct DropRoutine {
7243    pub(crate) syntax: SyntaxNode,
7244}
7245impl DropRoutine {
7246    #[inline]
7247    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7248        support::child(&self.syntax)
7249    }
7250    #[inline]
7251    pub fn if_exists(&self) -> Option<IfExists> {
7252        support::child(&self.syntax)
7253    }
7254    #[inline]
7255    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7256        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7257    }
7258    #[inline]
7259    pub fn drop_token(&self) -> Option<SyntaxToken> {
7260        support::token(&self.syntax, SyntaxKind::DROP_KW)
7261    }
7262    #[inline]
7263    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7264        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7265    }
7266    #[inline]
7267    pub fn routine_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7269    }
7270}
7271
7272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7273pub struct DropRule {
7274    pub(crate) syntax: SyntaxNode,
7275}
7276impl DropRule {
7277    #[inline]
7278    pub fn if_exists(&self) -> Option<IfExists> {
7279        support::child(&self.syntax)
7280    }
7281    #[inline]
7282    pub fn name_ref(&self) -> Option<NameRef> {
7283        support::child(&self.syntax)
7284    }
7285    #[inline]
7286    pub fn on_table(&self) -> Option<OnTable> {
7287        support::child(&self.syntax)
7288    }
7289    #[inline]
7290    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7291        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7292    }
7293    #[inline]
7294    pub fn drop_token(&self) -> Option<SyntaxToken> {
7295        support::token(&self.syntax, SyntaxKind::DROP_KW)
7296    }
7297    #[inline]
7298    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7299        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7300    }
7301    #[inline]
7302    pub fn rule_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::RULE_KW)
7304    }
7305}
7306
7307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7308pub struct DropSchema {
7309    pub(crate) syntax: SyntaxNode,
7310}
7311impl DropSchema {
7312    #[inline]
7313    pub fn if_exists(&self) -> Option<IfExists> {
7314        support::child(&self.syntax)
7315    }
7316    #[inline]
7317    pub fn name_refs(&self) -> AstChildren<NameRef> {
7318        support::children(&self.syntax)
7319    }
7320    #[inline]
7321    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7322        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7323    }
7324    #[inline]
7325    pub fn drop_token(&self) -> Option<SyntaxToken> {
7326        support::token(&self.syntax, SyntaxKind::DROP_KW)
7327    }
7328    #[inline]
7329    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7330        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7331    }
7332    #[inline]
7333    pub fn schema_token(&self) -> Option<SyntaxToken> {
7334        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7335    }
7336}
7337
7338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7339pub struct DropSequence {
7340    pub(crate) syntax: SyntaxNode,
7341}
7342impl DropSequence {
7343    #[inline]
7344    pub fn if_exists(&self) -> Option<IfExists> {
7345        support::child(&self.syntax)
7346    }
7347    #[inline]
7348    pub fn paths(&self) -> AstChildren<Path> {
7349        support::children(&self.syntax)
7350    }
7351    #[inline]
7352    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7353        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7354    }
7355    #[inline]
7356    pub fn drop_token(&self) -> Option<SyntaxToken> {
7357        support::token(&self.syntax, SyntaxKind::DROP_KW)
7358    }
7359    #[inline]
7360    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7361        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7362    }
7363    #[inline]
7364    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7366    }
7367}
7368
7369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7370pub struct DropServer {
7371    pub(crate) syntax: SyntaxNode,
7372}
7373impl DropServer {
7374    #[inline]
7375    pub fn if_exists(&self) -> Option<IfExists> {
7376        support::child(&self.syntax)
7377    }
7378    #[inline]
7379    pub fn name_ref(&self) -> Option<NameRef> {
7380        support::child(&self.syntax)
7381    }
7382    #[inline]
7383    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7384        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7385    }
7386    #[inline]
7387    pub fn drop_token(&self) -> Option<SyntaxToken> {
7388        support::token(&self.syntax, SyntaxKind::DROP_KW)
7389    }
7390    #[inline]
7391    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7392        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7393    }
7394    #[inline]
7395    pub fn server_token(&self) -> Option<SyntaxToken> {
7396        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7397    }
7398}
7399
7400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7401pub struct DropStatistics {
7402    pub(crate) syntax: SyntaxNode,
7403}
7404impl DropStatistics {
7405    #[inline]
7406    pub fn if_exists(&self) -> Option<IfExists> {
7407        support::child(&self.syntax)
7408    }
7409    #[inline]
7410    pub fn paths(&self) -> AstChildren<Path> {
7411        support::children(&self.syntax)
7412    }
7413    #[inline]
7414    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7415        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7416    }
7417    #[inline]
7418    pub fn drop_token(&self) -> Option<SyntaxToken> {
7419        support::token(&self.syntax, SyntaxKind::DROP_KW)
7420    }
7421    #[inline]
7422    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7423        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7424    }
7425    #[inline]
7426    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7427        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7428    }
7429}
7430
7431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7432pub struct DropSubscription {
7433    pub(crate) syntax: SyntaxNode,
7434}
7435impl DropSubscription {
7436    #[inline]
7437    pub fn if_exists(&self) -> Option<IfExists> {
7438        support::child(&self.syntax)
7439    }
7440    #[inline]
7441    pub fn name_ref(&self) -> Option<NameRef> {
7442        support::child(&self.syntax)
7443    }
7444    #[inline]
7445    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7446        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7447    }
7448    #[inline]
7449    pub fn drop_token(&self) -> Option<SyntaxToken> {
7450        support::token(&self.syntax, SyntaxKind::DROP_KW)
7451    }
7452    #[inline]
7453    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7454        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7455    }
7456    #[inline]
7457    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7458        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7459    }
7460}
7461
7462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7463pub struct DropTable {
7464    pub(crate) syntax: SyntaxNode,
7465}
7466impl DropTable {
7467    #[inline]
7468    pub fn if_exists(&self) -> Option<IfExists> {
7469        support::child(&self.syntax)
7470    }
7471    #[inline]
7472    pub fn path(&self) -> Option<Path> {
7473        support::child(&self.syntax)
7474    }
7475    #[inline]
7476    pub fn comma_token(&self) -> Option<SyntaxToken> {
7477        support::token(&self.syntax, SyntaxKind::COMMA)
7478    }
7479    #[inline]
7480    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7481        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7482    }
7483    #[inline]
7484    pub fn drop_token(&self) -> Option<SyntaxToken> {
7485        support::token(&self.syntax, SyntaxKind::DROP_KW)
7486    }
7487    #[inline]
7488    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7489        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7490    }
7491    #[inline]
7492    pub fn table_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7494    }
7495}
7496
7497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7498pub struct DropTablespace {
7499    pub(crate) syntax: SyntaxNode,
7500}
7501impl DropTablespace {
7502    #[inline]
7503    pub fn if_exists(&self) -> Option<IfExists> {
7504        support::child(&self.syntax)
7505    }
7506    #[inline]
7507    pub fn name_ref(&self) -> Option<NameRef> {
7508        support::child(&self.syntax)
7509    }
7510    #[inline]
7511    pub fn drop_token(&self) -> Option<SyntaxToken> {
7512        support::token(&self.syntax, SyntaxKind::DROP_KW)
7513    }
7514    #[inline]
7515    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7516        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7517    }
7518}
7519
7520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7521pub struct DropTextSearchConfig {
7522    pub(crate) syntax: SyntaxNode,
7523}
7524impl DropTextSearchConfig {
7525    #[inline]
7526    pub fn if_exists(&self) -> Option<IfExists> {
7527        support::child(&self.syntax)
7528    }
7529    #[inline]
7530    pub fn path(&self) -> Option<Path> {
7531        support::child(&self.syntax)
7532    }
7533    #[inline]
7534    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7535        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7536    }
7537    #[inline]
7538    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7539        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7540    }
7541    #[inline]
7542    pub fn drop_token(&self) -> Option<SyntaxToken> {
7543        support::token(&self.syntax, SyntaxKind::DROP_KW)
7544    }
7545    #[inline]
7546    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7547        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7548    }
7549    #[inline]
7550    pub fn search_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7552    }
7553    #[inline]
7554    pub fn text_token(&self) -> Option<SyntaxToken> {
7555        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7556    }
7557}
7558
7559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7560pub struct DropTextSearchDict {
7561    pub(crate) syntax: SyntaxNode,
7562}
7563impl DropTextSearchDict {
7564    #[inline]
7565    pub fn if_exists(&self) -> Option<IfExists> {
7566        support::child(&self.syntax)
7567    }
7568    #[inline]
7569    pub fn path(&self) -> Option<Path> {
7570        support::child(&self.syntax)
7571    }
7572    #[inline]
7573    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7574        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7575    }
7576    #[inline]
7577    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7578        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7579    }
7580    #[inline]
7581    pub fn drop_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::DROP_KW)
7583    }
7584    #[inline]
7585    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7586        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7587    }
7588    #[inline]
7589    pub fn search_token(&self) -> Option<SyntaxToken> {
7590        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7591    }
7592    #[inline]
7593    pub fn text_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7595    }
7596}
7597
7598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7599pub struct DropTextSearchParser {
7600    pub(crate) syntax: SyntaxNode,
7601}
7602impl DropTextSearchParser {
7603    #[inline]
7604    pub fn if_exists(&self) -> Option<IfExists> {
7605        support::child(&self.syntax)
7606    }
7607    #[inline]
7608    pub fn path(&self) -> Option<Path> {
7609        support::child(&self.syntax)
7610    }
7611    #[inline]
7612    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7613        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7614    }
7615    #[inline]
7616    pub fn drop_token(&self) -> Option<SyntaxToken> {
7617        support::token(&self.syntax, SyntaxKind::DROP_KW)
7618    }
7619    #[inline]
7620    pub fn parser_token(&self) -> Option<SyntaxToken> {
7621        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7622    }
7623    #[inline]
7624    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7625        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7626    }
7627    #[inline]
7628    pub fn search_token(&self) -> Option<SyntaxToken> {
7629        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7630    }
7631    #[inline]
7632    pub fn text_token(&self) -> Option<SyntaxToken> {
7633        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7634    }
7635}
7636
7637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7638pub struct DropTextSearchTemplate {
7639    pub(crate) syntax: SyntaxNode,
7640}
7641impl DropTextSearchTemplate {
7642    #[inline]
7643    pub fn if_exists(&self) -> Option<IfExists> {
7644        support::child(&self.syntax)
7645    }
7646    #[inline]
7647    pub fn path(&self) -> Option<Path> {
7648        support::child(&self.syntax)
7649    }
7650    #[inline]
7651    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7652        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7653    }
7654    #[inline]
7655    pub fn drop_token(&self) -> Option<SyntaxToken> {
7656        support::token(&self.syntax, SyntaxKind::DROP_KW)
7657    }
7658    #[inline]
7659    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7660        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7661    }
7662    #[inline]
7663    pub fn search_token(&self) -> Option<SyntaxToken> {
7664        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7665    }
7666    #[inline]
7667    pub fn template_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7669    }
7670    #[inline]
7671    pub fn text_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7673    }
7674}
7675
7676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7677pub struct DropTransform {
7678    pub(crate) syntax: SyntaxNode,
7679}
7680impl DropTransform {
7681    #[inline]
7682    pub fn if_exists(&self) -> Option<IfExists> {
7683        support::child(&self.syntax)
7684    }
7685    #[inline]
7686    pub fn language(&self) -> Option<NameRef> {
7687        support::child(&self.syntax)
7688    }
7689    #[inline]
7690    pub fn ty(&self) -> Option<Type> {
7691        support::child(&self.syntax)
7692    }
7693    #[inline]
7694    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7695        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7696    }
7697    #[inline]
7698    pub fn drop_token(&self) -> Option<SyntaxToken> {
7699        support::token(&self.syntax, SyntaxKind::DROP_KW)
7700    }
7701    #[inline]
7702    pub fn for_token(&self) -> Option<SyntaxToken> {
7703        support::token(&self.syntax, SyntaxKind::FOR_KW)
7704    }
7705    #[inline]
7706    pub fn language_token(&self) -> Option<SyntaxToken> {
7707        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7708    }
7709    #[inline]
7710    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7712    }
7713    #[inline]
7714    pub fn transform_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7716    }
7717}
7718
7719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7720pub struct DropTrigger {
7721    pub(crate) syntax: SyntaxNode,
7722}
7723impl DropTrigger {
7724    #[inline]
7725    pub fn if_exists(&self) -> Option<IfExists> {
7726        support::child(&self.syntax)
7727    }
7728    #[inline]
7729    pub fn on_table(&self) -> Option<OnTable> {
7730        support::child(&self.syntax)
7731    }
7732    #[inline]
7733    pub fn path(&self) -> Option<Path> {
7734        support::child(&self.syntax)
7735    }
7736    #[inline]
7737    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7738        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7739    }
7740    #[inline]
7741    pub fn drop_token(&self) -> Option<SyntaxToken> {
7742        support::token(&self.syntax, SyntaxKind::DROP_KW)
7743    }
7744    #[inline]
7745    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7746        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7747    }
7748    #[inline]
7749    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7750        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7751    }
7752}
7753
7754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7755pub struct DropType {
7756    pub(crate) syntax: SyntaxNode,
7757}
7758impl DropType {
7759    #[inline]
7760    pub fn if_exists(&self) -> Option<IfExists> {
7761        support::child(&self.syntax)
7762    }
7763    #[inline]
7764    pub fn paths(&self) -> AstChildren<Path> {
7765        support::children(&self.syntax)
7766    }
7767    #[inline]
7768    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7769        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7770    }
7771    #[inline]
7772    pub fn drop_token(&self) -> Option<SyntaxToken> {
7773        support::token(&self.syntax, SyntaxKind::DROP_KW)
7774    }
7775    #[inline]
7776    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7777        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7778    }
7779    #[inline]
7780    pub fn type_token(&self) -> Option<SyntaxToken> {
7781        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7782    }
7783}
7784
7785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7786pub struct DropUser {
7787    pub(crate) syntax: SyntaxNode,
7788}
7789impl DropUser {
7790    #[inline]
7791    pub fn if_exists(&self) -> Option<IfExists> {
7792        support::child(&self.syntax)
7793    }
7794    #[inline]
7795    pub fn name_refs(&self) -> AstChildren<NameRef> {
7796        support::children(&self.syntax)
7797    }
7798    #[inline]
7799    pub fn drop_token(&self) -> Option<SyntaxToken> {
7800        support::token(&self.syntax, SyntaxKind::DROP_KW)
7801    }
7802    #[inline]
7803    pub fn user_token(&self) -> Option<SyntaxToken> {
7804        support::token(&self.syntax, SyntaxKind::USER_KW)
7805    }
7806}
7807
7808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7809pub struct DropUserMapping {
7810    pub(crate) syntax: SyntaxNode,
7811}
7812impl DropUserMapping {
7813    #[inline]
7814    pub fn if_exists(&self) -> Option<IfExists> {
7815        support::child(&self.syntax)
7816    }
7817    #[inline]
7818    pub fn role_ref(&self) -> Option<RoleRef> {
7819        support::child(&self.syntax)
7820    }
7821    #[inline]
7822    pub fn server_name(&self) -> Option<ServerName> {
7823        support::child(&self.syntax)
7824    }
7825    #[inline]
7826    pub fn drop_token(&self) -> Option<SyntaxToken> {
7827        support::token(&self.syntax, SyntaxKind::DROP_KW)
7828    }
7829    #[inline]
7830    pub fn for_token(&self) -> Option<SyntaxToken> {
7831        support::token(&self.syntax, SyntaxKind::FOR_KW)
7832    }
7833    #[inline]
7834    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7836    }
7837    #[inline]
7838    pub fn user_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::USER_KW)
7840    }
7841}
7842
7843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7844pub struct DropVertexEdgeLabel {
7845    pub(crate) syntax: SyntaxNode,
7846}
7847impl DropVertexEdgeLabel {
7848    #[inline]
7849    pub fn name_ref(&self) -> Option<NameRef> {
7850        support::child(&self.syntax)
7851    }
7852    #[inline]
7853    pub fn alter_token(&self) -> Option<SyntaxToken> {
7854        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7855    }
7856    #[inline]
7857    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7858        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7859    }
7860    #[inline]
7861    pub fn drop_token(&self) -> Option<SyntaxToken> {
7862        support::token(&self.syntax, SyntaxKind::DROP_KW)
7863    }
7864    #[inline]
7865    pub fn edge_token(&self) -> Option<SyntaxToken> {
7866        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7867    }
7868    #[inline]
7869    pub fn label_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7871    }
7872    #[inline]
7873    pub fn node_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::NODE_KW)
7875    }
7876    #[inline]
7877    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7879    }
7880    #[inline]
7881    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7882        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7883    }
7884    #[inline]
7885    pub fn table_token(&self) -> Option<SyntaxToken> {
7886        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7887    }
7888    #[inline]
7889    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7891    }
7892}
7893
7894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7895pub struct DropVertexEdgeLabelProperties {
7896    pub(crate) syntax: SyntaxNode,
7897}
7898impl DropVertexEdgeLabelProperties {
7899    #[inline]
7900    pub fn name_ref(&self) -> Option<NameRef> {
7901        support::child(&self.syntax)
7902    }
7903    #[inline]
7904    pub fn names(&self) -> AstChildren<Name> {
7905        support::children(&self.syntax)
7906    }
7907    #[inline]
7908    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7909        support::token(&self.syntax, SyntaxKind::L_PAREN)
7910    }
7911    #[inline]
7912    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7913        support::token(&self.syntax, SyntaxKind::R_PAREN)
7914    }
7915    #[inline]
7916    pub fn alter_token(&self) -> Option<SyntaxToken> {
7917        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7918    }
7919    #[inline]
7920    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7921        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7922    }
7923    #[inline]
7924    pub fn drop_token(&self) -> Option<SyntaxToken> {
7925        support::token(&self.syntax, SyntaxKind::DROP_KW)
7926    }
7927    #[inline]
7928    pub fn edge_token(&self) -> Option<SyntaxToken> {
7929        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7930    }
7931    #[inline]
7932    pub fn label_token(&self) -> Option<SyntaxToken> {
7933        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7934    }
7935    #[inline]
7936    pub fn node_token(&self) -> Option<SyntaxToken> {
7937        support::token(&self.syntax, SyntaxKind::NODE_KW)
7938    }
7939    #[inline]
7940    pub fn properties_token(&self) -> Option<SyntaxToken> {
7941        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
7942    }
7943    #[inline]
7944    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7946    }
7947    #[inline]
7948    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7950    }
7951    #[inline]
7952    pub fn table_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7954    }
7955    #[inline]
7956    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7958    }
7959}
7960
7961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7962pub struct DropVertexTables {
7963    pub(crate) syntax: SyntaxNode,
7964}
7965impl DropVertexTables {
7966    #[inline]
7967    pub fn names(&self) -> AstChildren<Name> {
7968        support::children(&self.syntax)
7969    }
7970    #[inline]
7971    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7972        support::token(&self.syntax, SyntaxKind::L_PAREN)
7973    }
7974    #[inline]
7975    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7976        support::token(&self.syntax, SyntaxKind::R_PAREN)
7977    }
7978    #[inline]
7979    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7980        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7981    }
7982    #[inline]
7983    pub fn drop_token(&self) -> Option<SyntaxToken> {
7984        support::token(&self.syntax, SyntaxKind::DROP_KW)
7985    }
7986    #[inline]
7987    pub fn node_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::NODE_KW)
7989    }
7990    #[inline]
7991    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7993    }
7994    #[inline]
7995    pub fn tables_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::TABLES_KW)
7997    }
7998    #[inline]
7999    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8001    }
8002}
8003
8004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8005pub struct DropView {
8006    pub(crate) syntax: SyntaxNode,
8007}
8008impl DropView {
8009    #[inline]
8010    pub fn if_exists(&self) -> Option<IfExists> {
8011        support::child(&self.syntax)
8012    }
8013    #[inline]
8014    pub fn path(&self) -> Option<Path> {
8015        support::child(&self.syntax)
8016    }
8017    #[inline]
8018    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8019        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8020    }
8021    #[inline]
8022    pub fn drop_token(&self) -> Option<SyntaxToken> {
8023        support::token(&self.syntax, SyntaxKind::DROP_KW)
8024    }
8025    #[inline]
8026    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8027        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8028    }
8029    #[inline]
8030    pub fn view_token(&self) -> Option<SyntaxToken> {
8031        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8032    }
8033}
8034
8035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8036pub struct EdgeAny {
8037    pub(crate) syntax: SyntaxNode,
8038}
8039impl EdgeAny {
8040    #[inline]
8041    pub fn is_label(&self) -> Option<IsLabel> {
8042        support::child(&self.syntax)
8043    }
8044    #[inline]
8045    pub fn name(&self) -> Option<Name> {
8046        support::child(&self.syntax)
8047    }
8048    #[inline]
8049    pub fn where_clause(&self) -> Option<WhereClause> {
8050        support::child(&self.syntax)
8051    }
8052    #[inline]
8053    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8054        support::token(&self.syntax, SyntaxKind::L_BRACK)
8055    }
8056    #[inline]
8057    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8058        support::token(&self.syntax, SyntaxKind::R_BRACK)
8059    }
8060    #[inline]
8061    pub fn minus_token(&self) -> Option<SyntaxToken> {
8062        support::token(&self.syntax, SyntaxKind::MINUS)
8063    }
8064}
8065
8066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8067pub struct EdgeLeft {
8068    pub(crate) syntax: SyntaxNode,
8069}
8070impl EdgeLeft {
8071    #[inline]
8072    pub fn is_label(&self) -> Option<IsLabel> {
8073        support::child(&self.syntax)
8074    }
8075    #[inline]
8076    pub fn name(&self) -> Option<Name> {
8077        support::child(&self.syntax)
8078    }
8079    #[inline]
8080    pub fn where_clause(&self) -> Option<WhereClause> {
8081        support::child(&self.syntax)
8082    }
8083    #[inline]
8084    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8085        support::token(&self.syntax, SyntaxKind::L_BRACK)
8086    }
8087    #[inline]
8088    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8089        support::token(&self.syntax, SyntaxKind::R_BRACK)
8090    }
8091    #[inline]
8092    pub fn minus_token(&self) -> Option<SyntaxToken> {
8093        support::token(&self.syntax, SyntaxKind::MINUS)
8094    }
8095    #[inline]
8096    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8097        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8098    }
8099}
8100
8101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8102pub struct EdgeRight {
8103    pub(crate) syntax: SyntaxNode,
8104}
8105impl EdgeRight {
8106    #[inline]
8107    pub fn is_label(&self) -> Option<IsLabel> {
8108        support::child(&self.syntax)
8109    }
8110    #[inline]
8111    pub fn name(&self) -> Option<Name> {
8112        support::child(&self.syntax)
8113    }
8114    #[inline]
8115    pub fn where_clause(&self) -> Option<WhereClause> {
8116        support::child(&self.syntax)
8117    }
8118    #[inline]
8119    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8120        support::token(&self.syntax, SyntaxKind::L_BRACK)
8121    }
8122    #[inline]
8123    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8124        support::token(&self.syntax, SyntaxKind::R_BRACK)
8125    }
8126    #[inline]
8127    pub fn minus_token(&self) -> Option<SyntaxToken> {
8128        support::token(&self.syntax, SyntaxKind::MINUS)
8129    }
8130    #[inline]
8131    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8132        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8133    }
8134}
8135
8136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8137pub struct EdgeTableDef {
8138    pub(crate) syntax: SyntaxNode,
8139}
8140impl EdgeTableDef {
8141    #[inline]
8142    pub fn column_list(&self) -> Option<ColumnList> {
8143        support::child(&self.syntax)
8144    }
8145    #[inline]
8146    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8147        support::child(&self.syntax)
8148    }
8149    #[inline]
8150    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8151        support::child(&self.syntax)
8152    }
8153    #[inline]
8154    pub fn name(&self) -> Option<Name> {
8155        support::child(&self.syntax)
8156    }
8157    #[inline]
8158    pub fn path(&self) -> Option<Path> {
8159        support::child(&self.syntax)
8160    }
8161    #[inline]
8162    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8163        support::child(&self.syntax)
8164    }
8165    #[inline]
8166    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8167        support::token(&self.syntax, SyntaxKind::L_PAREN)
8168    }
8169    #[inline]
8170    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8171        support::token(&self.syntax, SyntaxKind::R_PAREN)
8172    }
8173    #[inline]
8174    pub fn as_token(&self) -> Option<SyntaxToken> {
8175        support::token(&self.syntax, SyntaxKind::AS_KW)
8176    }
8177    #[inline]
8178    pub fn key_token(&self) -> Option<SyntaxToken> {
8179        support::token(&self.syntax, SyntaxKind::KEY_KW)
8180    }
8181}
8182
8183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8184pub struct EdgeTables {
8185    pub(crate) syntax: SyntaxNode,
8186}
8187impl EdgeTables {
8188    #[inline]
8189    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8190        support::children(&self.syntax)
8191    }
8192    #[inline]
8193    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8194        support::token(&self.syntax, SyntaxKind::L_PAREN)
8195    }
8196    #[inline]
8197    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8198        support::token(&self.syntax, SyntaxKind::R_PAREN)
8199    }
8200    #[inline]
8201    pub fn edge_token(&self) -> Option<SyntaxToken> {
8202        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8203    }
8204    #[inline]
8205    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8206        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8207    }
8208    #[inline]
8209    pub fn tables_token(&self) -> Option<SyntaxToken> {
8210        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8211    }
8212}
8213
8214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8215pub struct ElseClause {
8216    pub(crate) syntax: SyntaxNode,
8217}
8218impl ElseClause {
8219    #[inline]
8220    pub fn expr(&self) -> Option<Expr> {
8221        support::child(&self.syntax)
8222    }
8223    #[inline]
8224    pub fn else_token(&self) -> Option<SyntaxToken> {
8225        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8226    }
8227}
8228
8229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8230pub struct EnableAlwaysRule {
8231    pub(crate) syntax: SyntaxNode,
8232}
8233impl EnableAlwaysRule {
8234    #[inline]
8235    pub fn always_token(&self) -> Option<SyntaxToken> {
8236        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8237    }
8238    #[inline]
8239    pub fn enable_token(&self) -> Option<SyntaxToken> {
8240        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8241    }
8242    #[inline]
8243    pub fn rule_token(&self) -> Option<SyntaxToken> {
8244        support::token(&self.syntax, SyntaxKind::RULE_KW)
8245    }
8246}
8247
8248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8249pub struct EnableAlwaysTrigger {
8250    pub(crate) syntax: SyntaxNode,
8251}
8252impl EnableAlwaysTrigger {
8253    #[inline]
8254    pub fn always_token(&self) -> Option<SyntaxToken> {
8255        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8256    }
8257    #[inline]
8258    pub fn enable_token(&self) -> Option<SyntaxToken> {
8259        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8260    }
8261    #[inline]
8262    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8263        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8264    }
8265}
8266
8267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8268pub struct EnableReplicaRule {
8269    pub(crate) syntax: SyntaxNode,
8270}
8271impl EnableReplicaRule {
8272    #[inline]
8273    pub fn enable_token(&self) -> Option<SyntaxToken> {
8274        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8275    }
8276    #[inline]
8277    pub fn replica_token(&self) -> Option<SyntaxToken> {
8278        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8279    }
8280    #[inline]
8281    pub fn rule_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::RULE_KW)
8283    }
8284}
8285
8286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8287pub struct EnableReplicaTrigger {
8288    pub(crate) syntax: SyntaxNode,
8289}
8290impl EnableReplicaTrigger {
8291    #[inline]
8292    pub fn enable_token(&self) -> Option<SyntaxToken> {
8293        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8294    }
8295    #[inline]
8296    pub fn replica_token(&self) -> Option<SyntaxToken> {
8297        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8298    }
8299    #[inline]
8300    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8301        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8302    }
8303}
8304
8305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8306pub struct EnableRls {
8307    pub(crate) syntax: SyntaxNode,
8308}
8309impl EnableRls {
8310    #[inline]
8311    pub fn enable_token(&self) -> Option<SyntaxToken> {
8312        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8313    }
8314    #[inline]
8315    pub fn level_token(&self) -> Option<SyntaxToken> {
8316        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8317    }
8318    #[inline]
8319    pub fn row_token(&self) -> Option<SyntaxToken> {
8320        support::token(&self.syntax, SyntaxKind::ROW_KW)
8321    }
8322    #[inline]
8323    pub fn security_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8325    }
8326}
8327
8328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8329pub struct EnableRule {
8330    pub(crate) syntax: SyntaxNode,
8331}
8332impl EnableRule {
8333    #[inline]
8334    pub fn enable_token(&self) -> Option<SyntaxToken> {
8335        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8336    }
8337    #[inline]
8338    pub fn rule_token(&self) -> Option<SyntaxToken> {
8339        support::token(&self.syntax, SyntaxKind::RULE_KW)
8340    }
8341}
8342
8343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8344pub struct EnableTrigger {
8345    pub(crate) syntax: SyntaxNode,
8346}
8347impl EnableTrigger {
8348    #[inline]
8349    pub fn enable_token(&self) -> Option<SyntaxToken> {
8350        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8351    }
8352    #[inline]
8353    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8354        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8355    }
8356}
8357
8358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8359pub struct Enforced {
8360    pub(crate) syntax: SyntaxNode,
8361}
8362impl Enforced {
8363    #[inline]
8364    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8365        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8366    }
8367}
8368
8369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8370pub struct EventTriggerWhen {
8371    pub(crate) syntax: SyntaxNode,
8372}
8373impl EventTriggerWhen {
8374    #[inline]
8375    pub fn literals(&self) -> AstChildren<Literal> {
8376        support::children(&self.syntax)
8377    }
8378    #[inline]
8379    pub fn name_ref(&self) -> Option<NameRef> {
8380        support::child(&self.syntax)
8381    }
8382    #[inline]
8383    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8384        support::token(&self.syntax, SyntaxKind::L_PAREN)
8385    }
8386    #[inline]
8387    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8388        support::token(&self.syntax, SyntaxKind::R_PAREN)
8389    }
8390    #[inline]
8391    pub fn in_token(&self) -> Option<SyntaxToken> {
8392        support::token(&self.syntax, SyntaxKind::IN_KW)
8393    }
8394}
8395
8396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8397pub struct EventTriggerWhenClause {
8398    pub(crate) syntax: SyntaxNode,
8399}
8400impl EventTriggerWhenClause {
8401    #[inline]
8402    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8403        support::children(&self.syntax)
8404    }
8405    #[inline]
8406    pub fn when_token(&self) -> Option<SyntaxToken> {
8407        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8408    }
8409}
8410
8411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8412pub struct ExceptTableClause {
8413    pub(crate) syntax: SyntaxNode,
8414}
8415impl ExceptTableClause {
8416    #[inline]
8417    pub fn relation_names(&self) -> AstChildren<RelationName> {
8418        support::children(&self.syntax)
8419    }
8420    #[inline]
8421    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8422        support::token(&self.syntax, SyntaxKind::L_PAREN)
8423    }
8424    #[inline]
8425    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8426        support::token(&self.syntax, SyntaxKind::R_PAREN)
8427    }
8428    #[inline]
8429    pub fn except_token(&self) -> Option<SyntaxToken> {
8430        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8431    }
8432    #[inline]
8433    pub fn table_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8435    }
8436}
8437
8438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8439pub struct ExceptTables {
8440    pub(crate) syntax: SyntaxNode,
8441}
8442impl ExceptTables {
8443    #[inline]
8444    pub fn name_refs(&self) -> AstChildren<NameRef> {
8445        support::children(&self.syntax)
8446    }
8447    #[inline]
8448    pub fn except_token(&self) -> Option<SyntaxToken> {
8449        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8450    }
8451}
8452
8453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8454pub struct ExcludeConstraint {
8455    pub(crate) syntax: SyntaxNode,
8456}
8457impl ExcludeConstraint {
8458    #[inline]
8459    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8460        support::child(&self.syntax)
8461    }
8462    #[inline]
8463    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8464        support::child(&self.syntax)
8465    }
8466    #[inline]
8467    pub fn constraint_name(&self) -> Option<ConstraintName> {
8468        support::child(&self.syntax)
8469    }
8470    #[inline]
8471    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
8472        support::child(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn exclude_token(&self) -> Option<SyntaxToken> {
8476        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
8477    }
8478}
8479
8480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8481pub struct Execute {
8482    pub(crate) syntax: SyntaxNode,
8483}
8484impl Execute {
8485    #[inline]
8486    pub fn arg_list(&self) -> Option<ArgList> {
8487        support::child(&self.syntax)
8488    }
8489    #[inline]
8490    pub fn name_ref(&self) -> Option<NameRef> {
8491        support::child(&self.syntax)
8492    }
8493    #[inline]
8494    pub fn execute_token(&self) -> Option<SyntaxToken> {
8495        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
8496    }
8497}
8498
8499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8500pub struct ExistsFn {
8501    pub(crate) syntax: SyntaxNode,
8502}
8503impl ExistsFn {
8504    #[inline]
8505    pub fn select_variant(&self) -> Option<SelectVariant> {
8506        support::child(&self.syntax)
8507    }
8508    #[inline]
8509    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8510        support::token(&self.syntax, SyntaxKind::L_PAREN)
8511    }
8512    #[inline]
8513    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8514        support::token(&self.syntax, SyntaxKind::R_PAREN)
8515    }
8516    #[inline]
8517    pub fn exists_token(&self) -> Option<SyntaxToken> {
8518        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8519    }
8520}
8521
8522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8523pub struct Explain {
8524    pub(crate) syntax: SyntaxNode,
8525}
8526impl Explain {
8527    #[inline]
8528    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
8529        support::child(&self.syntax)
8530    }
8531    #[inline]
8532    pub fn analyse_token(&self) -> Option<SyntaxToken> {
8533        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
8534    }
8535    #[inline]
8536    pub fn analyze_token(&self) -> Option<SyntaxToken> {
8537        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
8538    }
8539    #[inline]
8540    pub fn explain_token(&self) -> Option<SyntaxToken> {
8541        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
8542    }
8543    #[inline]
8544    pub fn verbose_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
8546    }
8547}
8548
8549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8550pub struct ExprAsName {
8551    pub(crate) syntax: SyntaxNode,
8552}
8553impl ExprAsName {
8554    #[inline]
8555    pub fn as_name(&self) -> Option<AsName> {
8556        support::child(&self.syntax)
8557    }
8558    #[inline]
8559    pub fn expr(&self) -> Option<Expr> {
8560        support::child(&self.syntax)
8561    }
8562}
8563
8564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8565pub struct ExprAsNameList {
8566    pub(crate) syntax: SyntaxNode,
8567}
8568impl ExprAsNameList {
8569    #[inline]
8570    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
8571        support::children(&self.syntax)
8572    }
8573}
8574
8575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8576pub struct ExprType {
8577    pub(crate) syntax: SyntaxNode,
8578}
8579impl ExprType {
8580    #[inline]
8581    pub fn expr(&self) -> Option<Expr> {
8582        support::child(&self.syntax)
8583    }
8584}
8585
8586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8587pub struct ExtractFn {
8588    pub(crate) syntax: SyntaxNode,
8589}
8590impl ExtractFn {
8591    #[inline]
8592    pub fn expr(&self) -> Option<Expr> {
8593        support::child(&self.syntax)
8594    }
8595    #[inline]
8596    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8597        support::token(&self.syntax, SyntaxKind::L_PAREN)
8598    }
8599    #[inline]
8600    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8601        support::token(&self.syntax, SyntaxKind::R_PAREN)
8602    }
8603    #[inline]
8604    pub fn day_token(&self) -> Option<SyntaxToken> {
8605        support::token(&self.syntax, SyntaxKind::DAY_KW)
8606    }
8607    #[inline]
8608    pub fn extract_token(&self) -> Option<SyntaxToken> {
8609        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
8610    }
8611    #[inline]
8612    pub fn from_token(&self) -> Option<SyntaxToken> {
8613        support::token(&self.syntax, SyntaxKind::FROM_KW)
8614    }
8615    #[inline]
8616    pub fn hour_token(&self) -> Option<SyntaxToken> {
8617        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8618    }
8619    #[inline]
8620    pub fn ident_token(&self) -> Option<SyntaxToken> {
8621        support::token(&self.syntax, SyntaxKind::IDENT)
8622    }
8623    #[inline]
8624    pub fn minute_token(&self) -> Option<SyntaxToken> {
8625        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8626    }
8627    #[inline]
8628    pub fn month_token(&self) -> Option<SyntaxToken> {
8629        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8630    }
8631    #[inline]
8632    pub fn second_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8634    }
8635    #[inline]
8636    pub fn string_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::STRING_KW)
8638    }
8639    #[inline]
8640    pub fn year_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8642    }
8643}
8644
8645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8646pub struct FatArrow {
8647    pub(crate) syntax: SyntaxNode,
8648}
8649impl FatArrow {
8650    #[inline]
8651    pub fn eq_token(&self) -> Option<SyntaxToken> {
8652        support::token(&self.syntax, SyntaxKind::EQ)
8653    }
8654    #[inline]
8655    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8656        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8657    }
8658}
8659
8660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8661pub struct FdwOption {
8662    pub(crate) syntax: SyntaxNode,
8663}
8664impl FdwOption {
8665    #[inline]
8666    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8667        support::child(&self.syntax)
8668    }
8669    #[inline]
8670    pub fn path(&self) -> Option<Path> {
8671        support::child(&self.syntax)
8672    }
8673    #[inline]
8674    pub fn connection_token(&self) -> Option<SyntaxToken> {
8675        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
8676    }
8677    #[inline]
8678    pub fn handler_token(&self) -> Option<SyntaxToken> {
8679        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8680    }
8681    #[inline]
8682    pub fn no_token(&self) -> Option<SyntaxToken> {
8683        support::token(&self.syntax, SyntaxKind::NO_KW)
8684    }
8685    #[inline]
8686    pub fn options_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
8688    }
8689    #[inline]
8690    pub fn validator_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
8692    }
8693}
8694
8695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8696pub struct FdwOptionList {
8697    pub(crate) syntax: SyntaxNode,
8698}
8699impl FdwOptionList {
8700    #[inline]
8701    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
8702        support::children(&self.syntax)
8703    }
8704}
8705
8706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8707pub struct Fetch {
8708    pub(crate) syntax: SyntaxNode,
8709}
8710impl Fetch {
8711    #[inline]
8712    pub fn name_ref(&self) -> Option<NameRef> {
8713        support::child(&self.syntax)
8714    }
8715    #[inline]
8716    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8717        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8718    }
8719    #[inline]
8720    pub fn from_token(&self) -> Option<SyntaxToken> {
8721        support::token(&self.syntax, SyntaxKind::FROM_KW)
8722    }
8723    #[inline]
8724    pub fn in_token(&self) -> Option<SyntaxToken> {
8725        support::token(&self.syntax, SyntaxKind::IN_KW)
8726    }
8727}
8728
8729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8730pub struct FetchClause {
8731    pub(crate) syntax: SyntaxNode,
8732}
8733impl FetchClause {
8734    #[inline]
8735    pub fn expr(&self) -> Option<Expr> {
8736        support::child(&self.syntax)
8737    }
8738    #[inline]
8739    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8740        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8741    }
8742    #[inline]
8743    pub fn first_token(&self) -> Option<SyntaxToken> {
8744        support::token(&self.syntax, SyntaxKind::FIRST_KW)
8745    }
8746    #[inline]
8747    pub fn next_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::NEXT_KW)
8749    }
8750    #[inline]
8751    pub fn only_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8753    }
8754    #[inline]
8755    pub fn row_token(&self) -> Option<SyntaxToken> {
8756        support::token(&self.syntax, SyntaxKind::ROW_KW)
8757    }
8758    #[inline]
8759    pub fn rows_token(&self) -> Option<SyntaxToken> {
8760        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8761    }
8762    #[inline]
8763    pub fn ties_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::TIES_KW)
8765    }
8766    #[inline]
8767    pub fn with_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::WITH_KW)
8769    }
8770}
8771
8772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8773pub struct FieldExpr {
8774    pub(crate) syntax: SyntaxNode,
8775}
8776impl FieldExpr {
8777    #[inline]
8778    pub fn star_token(&self) -> Option<SyntaxToken> {
8779        support::token(&self.syntax, SyntaxKind::STAR)
8780    }
8781    #[inline]
8782    pub fn dot_token(&self) -> Option<SyntaxToken> {
8783        support::token(&self.syntax, SyntaxKind::DOT)
8784    }
8785}
8786
8787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8788pub struct FilterClause {
8789    pub(crate) syntax: SyntaxNode,
8790}
8791impl FilterClause {
8792    #[inline]
8793    pub fn expr(&self) -> Option<Expr> {
8794        support::child(&self.syntax)
8795    }
8796    #[inline]
8797    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8798        support::token(&self.syntax, SyntaxKind::L_PAREN)
8799    }
8800    #[inline]
8801    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8802        support::token(&self.syntax, SyntaxKind::R_PAREN)
8803    }
8804    #[inline]
8805    pub fn filter_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::FILTER_KW)
8807    }
8808    #[inline]
8809    pub fn where_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::WHERE_KW)
8811    }
8812}
8813
8814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8815pub struct ForProvider {
8816    pub(crate) syntax: SyntaxNode,
8817}
8818impl ForProvider {
8819    #[inline]
8820    pub fn literal(&self) -> Option<Literal> {
8821        support::child(&self.syntax)
8822    }
8823    #[inline]
8824    pub fn name_ref(&self) -> Option<NameRef> {
8825        support::child(&self.syntax)
8826    }
8827    #[inline]
8828    pub fn for_token(&self) -> Option<SyntaxToken> {
8829        support::token(&self.syntax, SyntaxKind::FOR_KW)
8830    }
8831}
8832
8833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8834pub struct ForceRls {
8835    pub(crate) syntax: SyntaxNode,
8836}
8837impl ForceRls {
8838    #[inline]
8839    pub fn force_token(&self) -> Option<SyntaxToken> {
8840        support::token(&self.syntax, SyntaxKind::FORCE_KW)
8841    }
8842    #[inline]
8843    pub fn level_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8845    }
8846    #[inline]
8847    pub fn row_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::ROW_KW)
8849    }
8850    #[inline]
8851    pub fn security_token(&self) -> Option<SyntaxToken> {
8852        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8853    }
8854}
8855
8856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8857pub struct ForeignKeyConstraint {
8858    pub(crate) syntax: SyntaxNode,
8859}
8860impl ForeignKeyConstraint {
8861    #[inline]
8862    pub fn constraint_name(&self) -> Option<ConstraintName> {
8863        support::child(&self.syntax)
8864    }
8865    #[inline]
8866    pub fn match_type(&self) -> Option<MatchType> {
8867        support::child(&self.syntax)
8868    }
8869    #[inline]
8870    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8871        support::child(&self.syntax)
8872    }
8873    #[inline]
8874    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8875        support::child(&self.syntax)
8876    }
8877    #[inline]
8878    pub fn path(&self) -> Option<Path> {
8879        support::child(&self.syntax)
8880    }
8881    #[inline]
8882    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8883        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8884    }
8885    #[inline]
8886    pub fn key_token(&self) -> Option<SyntaxToken> {
8887        support::token(&self.syntax, SyntaxKind::KEY_KW)
8888    }
8889    #[inline]
8890    pub fn references_token(&self) -> Option<SyntaxToken> {
8891        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8892    }
8893}
8894
8895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8896pub struct FrameClause {
8897    pub(crate) syntax: SyntaxNode,
8898}
8899impl FrameClause {
8900    #[inline]
8901    pub fn groups_token(&self) -> Option<SyntaxToken> {
8902        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8903    }
8904    #[inline]
8905    pub fn range_token(&self) -> Option<SyntaxToken> {
8906        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8907    }
8908    #[inline]
8909    pub fn rows_token(&self) -> Option<SyntaxToken> {
8910        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8911    }
8912}
8913
8914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8915pub struct FromClause {
8916    pub(crate) syntax: SyntaxNode,
8917}
8918impl FromClause {
8919    #[inline]
8920    pub fn from_items(&self) -> AstChildren<FromItem> {
8921        support::children(&self.syntax)
8922    }
8923    #[inline]
8924    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8925        support::children(&self.syntax)
8926    }
8927    #[inline]
8928    pub fn from_token(&self) -> Option<SyntaxToken> {
8929        support::token(&self.syntax, SyntaxKind::FROM_KW)
8930    }
8931}
8932
8933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8934pub struct FromItem {
8935    pub(crate) syntax: SyntaxNode,
8936}
8937impl FromItem {
8938    #[inline]
8939    pub fn alias(&self) -> Option<Alias> {
8940        support::child(&self.syntax)
8941    }
8942    #[inline]
8943    pub fn call_expr(&self) -> Option<CallExpr> {
8944        support::child(&self.syntax)
8945    }
8946    #[inline]
8947    pub fn cast_expr(&self) -> Option<CastExpr> {
8948        support::child(&self.syntax)
8949    }
8950    #[inline]
8951    pub fn field_expr(&self) -> Option<FieldExpr> {
8952        support::child(&self.syntax)
8953    }
8954    #[inline]
8955    pub fn json_table(&self) -> Option<JsonTable> {
8956        support::child(&self.syntax)
8957    }
8958    #[inline]
8959    pub fn name_ref(&self) -> Option<NameRef> {
8960        support::child(&self.syntax)
8961    }
8962    #[inline]
8963    pub fn paren_expr(&self) -> Option<ParenExpr> {
8964        support::child(&self.syntax)
8965    }
8966    #[inline]
8967    pub fn paren_select(&self) -> Option<ParenSelect> {
8968        support::child(&self.syntax)
8969    }
8970    #[inline]
8971    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
8972        support::child(&self.syntax)
8973    }
8974    #[inline]
8975    pub fn xml_table(&self) -> Option<XmlTable> {
8976        support::child(&self.syntax)
8977    }
8978    #[inline]
8979    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8980        support::token(&self.syntax, SyntaxKind::L_PAREN)
8981    }
8982    #[inline]
8983    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8984        support::token(&self.syntax, SyntaxKind::R_PAREN)
8985    }
8986    #[inline]
8987    pub fn star_token(&self) -> Option<SyntaxToken> {
8988        support::token(&self.syntax, SyntaxKind::STAR)
8989    }
8990    #[inline]
8991    pub fn from_token(&self) -> Option<SyntaxToken> {
8992        support::token(&self.syntax, SyntaxKind::FROM_KW)
8993    }
8994    #[inline]
8995    pub fn lateral_token(&self) -> Option<SyntaxToken> {
8996        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
8997    }
8998    #[inline]
8999    pub fn only_token(&self) -> Option<SyntaxToken> {
9000        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9001    }
9002    #[inline]
9003    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9004        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9005    }
9006    #[inline]
9007    pub fn rows_token(&self) -> Option<SyntaxToken> {
9008        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9009    }
9010    #[inline]
9011    pub fn with_token(&self) -> Option<SyntaxToken> {
9012        support::token(&self.syntax, SyntaxKind::WITH_KW)
9013    }
9014}
9015
9016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9017pub struct FromTable {
9018    pub(crate) syntax: SyntaxNode,
9019}
9020impl FromTable {
9021    #[inline]
9022    pub fn path(&self) -> Option<Path> {
9023        support::child(&self.syntax)
9024    }
9025    #[inline]
9026    pub fn from_token(&self) -> Option<SyntaxToken> {
9027        support::token(&self.syntax, SyntaxKind::FROM_KW)
9028    }
9029}
9030
9031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9032pub struct FuncOptionList {
9033    pub(crate) syntax: SyntaxNode,
9034}
9035impl FuncOptionList {
9036    #[inline]
9037    pub fn options(&self) -> AstChildren<FuncOption> {
9038        support::children(&self.syntax)
9039    }
9040}
9041
9042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9043pub struct FunctionSig {
9044    pub(crate) syntax: SyntaxNode,
9045}
9046impl FunctionSig {
9047    #[inline]
9048    pub fn param_list(&self) -> Option<ParamList> {
9049        support::child(&self.syntax)
9050    }
9051    #[inline]
9052    pub fn path(&self) -> Option<Path> {
9053        support::child(&self.syntax)
9054    }
9055}
9056
9057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9058pub struct FunctionSigList {
9059    pub(crate) syntax: SyntaxNode,
9060}
9061impl FunctionSigList {
9062    #[inline]
9063    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9064        support::children(&self.syntax)
9065    }
9066}
9067
9068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9069pub struct GeneratedConstraint {
9070    pub(crate) syntax: SyntaxNode,
9071}
9072impl GeneratedConstraint {
9073    #[inline]
9074    pub fn expr(&self) -> Option<Expr> {
9075        support::child(&self.syntax)
9076    }
9077    #[inline]
9078    pub fn name_ref(&self) -> Option<NameRef> {
9079        support::child(&self.syntax)
9080    }
9081    #[inline]
9082    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9083        support::child(&self.syntax)
9084    }
9085    #[inline]
9086    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9087        support::token(&self.syntax, SyntaxKind::L_PAREN)
9088    }
9089    #[inline]
9090    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9091        support::token(&self.syntax, SyntaxKind::R_PAREN)
9092    }
9093    #[inline]
9094    pub fn always_token(&self) -> Option<SyntaxToken> {
9095        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9096    }
9097    #[inline]
9098    pub fn as_token(&self) -> Option<SyntaxToken> {
9099        support::token(&self.syntax, SyntaxKind::AS_KW)
9100    }
9101    #[inline]
9102    pub fn by_token(&self) -> Option<SyntaxToken> {
9103        support::token(&self.syntax, SyntaxKind::BY_KW)
9104    }
9105    #[inline]
9106    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9107        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9108    }
9109    #[inline]
9110    pub fn default_token(&self) -> Option<SyntaxToken> {
9111        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9112    }
9113    #[inline]
9114    pub fn generated_token(&self) -> Option<SyntaxToken> {
9115        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9116    }
9117    #[inline]
9118    pub fn identity_token(&self) -> Option<SyntaxToken> {
9119        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9120    }
9121    #[inline]
9122    pub fn stored_token(&self) -> Option<SyntaxToken> {
9123        support::token(&self.syntax, SyntaxKind::STORED_KW)
9124    }
9125}
9126
9127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9128pub struct Grant {
9129    pub(crate) syntax: SyntaxNode,
9130}
9131impl Grant {
9132    #[inline]
9133    pub fn name_refs(&self) -> AstChildren<NameRef> {
9134        support::children(&self.syntax)
9135    }
9136    #[inline]
9137    pub fn paths(&self) -> AstChildren<Path> {
9138        support::children(&self.syntax)
9139    }
9140    #[inline]
9141    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9142        support::child(&self.syntax)
9143    }
9144    #[inline]
9145    pub fn role_ref(&self) -> Option<RoleRef> {
9146        support::child(&self.syntax)
9147    }
9148    #[inline]
9149    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9150        support::child(&self.syntax)
9151    }
9152    #[inline]
9153    pub fn all_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::ALL_KW)
9155    }
9156    #[inline]
9157    pub fn by_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::BY_KW)
9159    }
9160    #[inline]
9161    pub fn grant_token(&self) -> Option<SyntaxToken> {
9162        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9163    }
9164    #[inline]
9165    pub fn granted_token(&self) -> Option<SyntaxToken> {
9166        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9167    }
9168    #[inline]
9169    pub fn in_token(&self) -> Option<SyntaxToken> {
9170        support::token(&self.syntax, SyntaxKind::IN_KW)
9171    }
9172    #[inline]
9173    pub fn on_token(&self) -> Option<SyntaxToken> {
9174        support::token(&self.syntax, SyntaxKind::ON_KW)
9175    }
9176    #[inline]
9177    pub fn option_token(&self) -> Option<SyntaxToken> {
9178        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9179    }
9180    #[inline]
9181    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9182        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9183    }
9184    #[inline]
9185    pub fn schema_token(&self) -> Option<SyntaxToken> {
9186        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9187    }
9188    #[inline]
9189    pub fn table_token(&self) -> Option<SyntaxToken> {
9190        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9191    }
9192    #[inline]
9193    pub fn tables_token(&self) -> Option<SyntaxToken> {
9194        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9195    }
9196    #[inline]
9197    pub fn to_token(&self) -> Option<SyntaxToken> {
9198        support::token(&self.syntax, SyntaxKind::TO_KW)
9199    }
9200    #[inline]
9201    pub fn with_token(&self) -> Option<SyntaxToken> {
9202        support::token(&self.syntax, SyntaxKind::WITH_KW)
9203    }
9204}
9205
9206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9207pub struct GrantDefaultPrivileges {
9208    pub(crate) syntax: SyntaxNode,
9209}
9210impl GrantDefaultPrivileges {
9211    #[inline]
9212    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9213        support::child(&self.syntax)
9214    }
9215    #[inline]
9216    pub fn privileges(&self) -> Option<Privileges> {
9217        support::child(&self.syntax)
9218    }
9219    #[inline]
9220    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9221        support::child(&self.syntax)
9222    }
9223    #[inline]
9224    pub fn grant_token(&self) -> Option<SyntaxToken> {
9225        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9226    }
9227    #[inline]
9228    pub fn on_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::ON_KW)
9230    }
9231    #[inline]
9232    pub fn option_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9234    }
9235    #[inline]
9236    pub fn to_token(&self) -> Option<SyntaxToken> {
9237        support::token(&self.syntax, SyntaxKind::TO_KW)
9238    }
9239    #[inline]
9240    pub fn with_token(&self) -> Option<SyntaxToken> {
9241        support::token(&self.syntax, SyntaxKind::WITH_KW)
9242    }
9243}
9244
9245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9246pub struct GraphPatternQualifier {
9247    pub(crate) syntax: SyntaxNode,
9248}
9249impl GraphPatternQualifier {
9250    #[inline]
9251    pub fn literal(&self) -> Option<Literal> {
9252        support::child(&self.syntax)
9253    }
9254    #[inline]
9255    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9256        support::token(&self.syntax, SyntaxKind::L_CURLY)
9257    }
9258    #[inline]
9259    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9260        support::token(&self.syntax, SyntaxKind::R_CURLY)
9261    }
9262    #[inline]
9263    pub fn comma_token(&self) -> Option<SyntaxToken> {
9264        support::token(&self.syntax, SyntaxKind::COMMA)
9265    }
9266}
9267
9268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9269pub struct GraphTableFn {
9270    pub(crate) syntax: SyntaxNode,
9271}
9272impl GraphTableFn {
9273    #[inline]
9274    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9275        support::child(&self.syntax)
9276    }
9277    #[inline]
9278    pub fn path(&self) -> Option<Path> {
9279        support::child(&self.syntax)
9280    }
9281    #[inline]
9282    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9283        support::child(&self.syntax)
9284    }
9285    #[inline]
9286    pub fn where_clause(&self) -> Option<WhereClause> {
9287        support::child(&self.syntax)
9288    }
9289    #[inline]
9290    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9291        support::token(&self.syntax, SyntaxKind::L_PAREN)
9292    }
9293    #[inline]
9294    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9295        support::token(&self.syntax, SyntaxKind::R_PAREN)
9296    }
9297    #[inline]
9298    pub fn columns_token(&self) -> Option<SyntaxToken> {
9299        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9300    }
9301    #[inline]
9302    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9303        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9304    }
9305    #[inline]
9306    pub fn match_token(&self) -> Option<SyntaxToken> {
9307        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9308    }
9309}
9310
9311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9312pub struct GroupByClause {
9313    pub(crate) syntax: SyntaxNode,
9314}
9315impl GroupByClause {
9316    #[inline]
9317    pub fn group_by_list(&self) -> Option<GroupByList> {
9318        support::child(&self.syntax)
9319    }
9320    #[inline]
9321    pub fn all_token(&self) -> Option<SyntaxToken> {
9322        support::token(&self.syntax, SyntaxKind::ALL_KW)
9323    }
9324    #[inline]
9325    pub fn by_token(&self) -> Option<SyntaxToken> {
9326        support::token(&self.syntax, SyntaxKind::BY_KW)
9327    }
9328    #[inline]
9329    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9330        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9331    }
9332    #[inline]
9333    pub fn group_token(&self) -> Option<SyntaxToken> {
9334        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9335    }
9336}
9337
9338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9339pub struct GroupByList {
9340    pub(crate) syntax: SyntaxNode,
9341}
9342impl GroupByList {
9343    #[inline]
9344    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9345        support::children(&self.syntax)
9346    }
9347}
9348
9349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9350pub struct GroupingCube {
9351    pub(crate) syntax: SyntaxNode,
9352}
9353impl GroupingCube {
9354    #[inline]
9355    pub fn expr(&self) -> Option<Expr> {
9356        support::child(&self.syntax)
9357    }
9358    #[inline]
9359    pub fn cube_token(&self) -> Option<SyntaxToken> {
9360        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9361    }
9362}
9363
9364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9365pub struct GroupingExpr {
9366    pub(crate) syntax: SyntaxNode,
9367}
9368impl GroupingExpr {
9369    #[inline]
9370    pub fn expr(&self) -> Option<Expr> {
9371        support::child(&self.syntax)
9372    }
9373}
9374
9375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9376pub struct GroupingRollup {
9377    pub(crate) syntax: SyntaxNode,
9378}
9379impl GroupingRollup {
9380    #[inline]
9381    pub fn expr(&self) -> Option<Expr> {
9382        support::child(&self.syntax)
9383    }
9384    #[inline]
9385    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9386        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9387    }
9388}
9389
9390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9391pub struct GroupingSets {
9392    pub(crate) syntax: SyntaxNode,
9393}
9394impl GroupingSets {
9395    #[inline]
9396    pub fn expr(&self) -> Option<Expr> {
9397        support::child(&self.syntax)
9398    }
9399    #[inline]
9400    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9401        support::token(&self.syntax, SyntaxKind::L_PAREN)
9402    }
9403    #[inline]
9404    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9405        support::token(&self.syntax, SyntaxKind::R_PAREN)
9406    }
9407    #[inline]
9408    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9409        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9410    }
9411    #[inline]
9412    pub fn sets_token(&self) -> Option<SyntaxToken> {
9413        support::token(&self.syntax, SyntaxKind::SETS_KW)
9414    }
9415}
9416
9417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9418pub struct Gteq {
9419    pub(crate) syntax: SyntaxNode,
9420}
9421impl Gteq {
9422    #[inline]
9423    pub fn eq_token(&self) -> Option<SyntaxToken> {
9424        support::token(&self.syntax, SyntaxKind::EQ)
9425    }
9426    #[inline]
9427    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9428        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9429    }
9430}
9431
9432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9433pub struct HandlerClause {
9434    pub(crate) syntax: SyntaxNode,
9435}
9436impl HandlerClause {
9437    #[inline]
9438    pub fn path(&self) -> Option<Path> {
9439        support::child(&self.syntax)
9440    }
9441    #[inline]
9442    pub fn handler_token(&self) -> Option<SyntaxToken> {
9443        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9444    }
9445}
9446
9447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9448pub struct HavingClause {
9449    pub(crate) syntax: SyntaxNode,
9450}
9451impl HavingClause {
9452    #[inline]
9453    pub fn expr(&self) -> Option<Expr> {
9454        support::child(&self.syntax)
9455    }
9456    #[inline]
9457    pub fn having_token(&self) -> Option<SyntaxToken> {
9458        support::token(&self.syntax, SyntaxKind::HAVING_KW)
9459    }
9460}
9461
9462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9463pub struct IfExists {
9464    pub(crate) syntax: SyntaxNode,
9465}
9466impl IfExists {
9467    #[inline]
9468    pub fn exists_token(&self) -> Option<SyntaxToken> {
9469        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9470    }
9471    #[inline]
9472    pub fn if_token(&self) -> Option<SyntaxToken> {
9473        support::token(&self.syntax, SyntaxKind::IF_KW)
9474    }
9475}
9476
9477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9478pub struct IfNotExists {
9479    pub(crate) syntax: SyntaxNode,
9480}
9481impl IfNotExists {
9482    #[inline]
9483    pub fn exists_token(&self) -> Option<SyntaxToken> {
9484        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9485    }
9486    #[inline]
9487    pub fn if_token(&self) -> Option<SyntaxToken> {
9488        support::token(&self.syntax, SyntaxKind::IF_KW)
9489    }
9490    #[inline]
9491    pub fn not_token(&self) -> Option<SyntaxToken> {
9492        support::token(&self.syntax, SyntaxKind::NOT_KW)
9493    }
9494}
9495
9496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9497pub struct ImportForeignSchema {
9498    pub(crate) syntax: SyntaxNode,
9499}
9500impl ImportForeignSchema {
9501    #[inline]
9502    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9503        support::child(&self.syntax)
9504    }
9505    #[inline]
9506    pub fn except_tables(&self) -> Option<ExceptTables> {
9507        support::child(&self.syntax)
9508    }
9509    #[inline]
9510    pub fn into_schema(&self) -> Option<IntoSchema> {
9511        support::child(&self.syntax)
9512    }
9513    #[inline]
9514    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
9515        support::child(&self.syntax)
9516    }
9517    #[inline]
9518    pub fn name_ref(&self) -> Option<NameRef> {
9519        support::child(&self.syntax)
9520    }
9521    #[inline]
9522    pub fn server_name(&self) -> Option<ServerName> {
9523        support::child(&self.syntax)
9524    }
9525    #[inline]
9526    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9527        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9528    }
9529    #[inline]
9530    pub fn from_token(&self) -> Option<SyntaxToken> {
9531        support::token(&self.syntax, SyntaxKind::FROM_KW)
9532    }
9533    #[inline]
9534    pub fn import_token(&self) -> Option<SyntaxToken> {
9535        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
9536    }
9537    #[inline]
9538    pub fn schema_token(&self) -> Option<SyntaxToken> {
9539        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9540    }
9541}
9542
9543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9544pub struct IndexExpr {
9545    pub(crate) syntax: SyntaxNode,
9546}
9547impl IndexExpr {
9548    #[inline]
9549    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9550        support::token(&self.syntax, SyntaxKind::L_BRACK)
9551    }
9552    #[inline]
9553    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9554        support::token(&self.syntax, SyntaxKind::R_BRACK)
9555    }
9556}
9557
9558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9559pub struct Inherit {
9560    pub(crate) syntax: SyntaxNode,
9561}
9562impl Inherit {
9563    #[inline]
9564    pub fn path(&self) -> Option<Path> {
9565        support::child(&self.syntax)
9566    }
9567    #[inline]
9568    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9569        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9570    }
9571}
9572
9573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9574pub struct InheritTable {
9575    pub(crate) syntax: SyntaxNode,
9576}
9577impl InheritTable {
9578    #[inline]
9579    pub fn path(&self) -> Option<Path> {
9580        support::child(&self.syntax)
9581    }
9582    #[inline]
9583    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9584        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9585    }
9586}
9587
9588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9589pub struct Inherits {
9590    pub(crate) syntax: SyntaxNode,
9591}
9592impl Inherits {
9593    #[inline]
9594    pub fn paths(&self) -> AstChildren<Path> {
9595        support::children(&self.syntax)
9596    }
9597    #[inline]
9598    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9599        support::token(&self.syntax, SyntaxKind::L_PAREN)
9600    }
9601    #[inline]
9602    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9603        support::token(&self.syntax, SyntaxKind::R_PAREN)
9604    }
9605    #[inline]
9606    pub fn inherits_token(&self) -> Option<SyntaxToken> {
9607        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
9608    }
9609}
9610
9611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9612pub struct InitiallyDeferredConstraintOption {
9613    pub(crate) syntax: SyntaxNode,
9614}
9615impl InitiallyDeferredConstraintOption {
9616    #[inline]
9617    pub fn deferred_token(&self) -> Option<SyntaxToken> {
9618        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
9619    }
9620    #[inline]
9621    pub fn initially_token(&self) -> Option<SyntaxToken> {
9622        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9623    }
9624}
9625
9626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9627pub struct InitiallyImmediateConstraintOption {
9628    pub(crate) syntax: SyntaxNode,
9629}
9630impl InitiallyImmediateConstraintOption {
9631    #[inline]
9632    pub fn immediate_token(&self) -> Option<SyntaxToken> {
9633        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
9634    }
9635    #[inline]
9636    pub fn initially_token(&self) -> Option<SyntaxToken> {
9637        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9638    }
9639}
9640
9641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9642pub struct Insert {
9643    pub(crate) syntax: SyntaxNode,
9644}
9645impl Insert {
9646    #[inline]
9647    pub fn alias(&self) -> Option<Alias> {
9648        support::child(&self.syntax)
9649    }
9650    #[inline]
9651    pub fn column_list(&self) -> Option<ColumnList> {
9652        support::child(&self.syntax)
9653    }
9654    #[inline]
9655    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
9656        support::child(&self.syntax)
9657    }
9658    #[inline]
9659    pub fn path(&self) -> Option<Path> {
9660        support::child(&self.syntax)
9661    }
9662    #[inline]
9663    pub fn returning_clause(&self) -> Option<ReturningClause> {
9664        support::child(&self.syntax)
9665    }
9666    #[inline]
9667    pub fn stmt(&self) -> Option<Stmt> {
9668        support::child(&self.syntax)
9669    }
9670    #[inline]
9671    pub fn values(&self) -> Option<Values> {
9672        support::child(&self.syntax)
9673    }
9674    #[inline]
9675    pub fn with_clause(&self) -> Option<WithClause> {
9676        support::child(&self.syntax)
9677    }
9678    #[inline]
9679    pub fn default_token(&self) -> Option<SyntaxToken> {
9680        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9681    }
9682    #[inline]
9683    pub fn insert_token(&self) -> Option<SyntaxToken> {
9684        support::token(&self.syntax, SyntaxKind::INSERT_KW)
9685    }
9686    #[inline]
9687    pub fn into_token(&self) -> Option<SyntaxToken> {
9688        support::token(&self.syntax, SyntaxKind::INTO_KW)
9689    }
9690    #[inline]
9691    pub fn overriding_token(&self) -> Option<SyntaxToken> {
9692        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
9693    }
9694    #[inline]
9695    pub fn system_token(&self) -> Option<SyntaxToken> {
9696        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
9697    }
9698    #[inline]
9699    pub fn user_token(&self) -> Option<SyntaxToken> {
9700        support::token(&self.syntax, SyntaxKind::USER_KW)
9701    }
9702    #[inline]
9703    pub fn value_token(&self) -> Option<SyntaxToken> {
9704        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9705    }
9706    #[inline]
9707    pub fn values_token(&self) -> Option<SyntaxToken> {
9708        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9709    }
9710}
9711
9712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9713pub struct IntervalType {
9714    pub(crate) syntax: SyntaxNode,
9715}
9716impl IntervalType {
9717    #[inline]
9718    pub fn literal(&self) -> Option<Literal> {
9719        support::child(&self.syntax)
9720    }
9721    #[inline]
9722    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9723        support::token(&self.syntax, SyntaxKind::L_PAREN)
9724    }
9725    #[inline]
9726    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9727        support::token(&self.syntax, SyntaxKind::R_PAREN)
9728    }
9729    #[inline]
9730    pub fn day_token(&self) -> Option<SyntaxToken> {
9731        support::token(&self.syntax, SyntaxKind::DAY_KW)
9732    }
9733    #[inline]
9734    pub fn hour_token(&self) -> Option<SyntaxToken> {
9735        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9736    }
9737    #[inline]
9738    pub fn interval_token(&self) -> Option<SyntaxToken> {
9739        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
9740    }
9741    #[inline]
9742    pub fn minute_token(&self) -> Option<SyntaxToken> {
9743        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9744    }
9745    #[inline]
9746    pub fn month_token(&self) -> Option<SyntaxToken> {
9747        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9748    }
9749    #[inline]
9750    pub fn second_token(&self) -> Option<SyntaxToken> {
9751        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9752    }
9753    #[inline]
9754    pub fn setof_token(&self) -> Option<SyntaxToken> {
9755        support::token(&self.syntax, SyntaxKind::SETOF_KW)
9756    }
9757    #[inline]
9758    pub fn to_token(&self) -> Option<SyntaxToken> {
9759        support::token(&self.syntax, SyntaxKind::TO_KW)
9760    }
9761    #[inline]
9762    pub fn year_token(&self) -> Option<SyntaxToken> {
9763        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9764    }
9765}
9766
9767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9768pub struct IntoClause {
9769    pub(crate) syntax: SyntaxNode,
9770}
9771impl IntoClause {
9772    #[inline]
9773    pub fn path(&self) -> Option<Path> {
9774        support::child(&self.syntax)
9775    }
9776    #[inline]
9777    pub fn persistence(&self) -> Option<Persistence> {
9778        support::child(&self.syntax)
9779    }
9780    #[inline]
9781    pub fn into_token(&self) -> Option<SyntaxToken> {
9782        support::token(&self.syntax, SyntaxKind::INTO_KW)
9783    }
9784    #[inline]
9785    pub fn table_token(&self) -> Option<SyntaxToken> {
9786        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9787    }
9788}
9789
9790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9791pub struct IntoSchema {
9792    pub(crate) syntax: SyntaxNode,
9793}
9794impl IntoSchema {
9795    #[inline]
9796    pub fn name_ref(&self) -> Option<NameRef> {
9797        support::child(&self.syntax)
9798    }
9799    #[inline]
9800    pub fn into_token(&self) -> Option<SyntaxToken> {
9801        support::token(&self.syntax, SyntaxKind::INTO_KW)
9802    }
9803}
9804
9805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9806pub struct IsDistinctFrom {
9807    pub(crate) syntax: SyntaxNode,
9808}
9809impl IsDistinctFrom {
9810    #[inline]
9811    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9812        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9813    }
9814    #[inline]
9815    pub fn from_token(&self) -> Option<SyntaxToken> {
9816        support::token(&self.syntax, SyntaxKind::FROM_KW)
9817    }
9818    #[inline]
9819    pub fn is_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::IS_KW)
9821    }
9822}
9823
9824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9825pub struct IsJson {
9826    pub(crate) syntax: SyntaxNode,
9827}
9828impl IsJson {
9829    #[inline]
9830    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9831        support::child(&self.syntax)
9832    }
9833    #[inline]
9834    pub fn is_token(&self) -> Option<SyntaxToken> {
9835        support::token(&self.syntax, SyntaxKind::IS_KW)
9836    }
9837    #[inline]
9838    pub fn json_token(&self) -> Option<SyntaxToken> {
9839        support::token(&self.syntax, SyntaxKind::JSON_KW)
9840    }
9841}
9842
9843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9844pub struct IsJsonArray {
9845    pub(crate) syntax: SyntaxNode,
9846}
9847impl IsJsonArray {
9848    #[inline]
9849    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9850        support::child(&self.syntax)
9851    }
9852    #[inline]
9853    pub fn array_token(&self) -> Option<SyntaxToken> {
9854        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9855    }
9856    #[inline]
9857    pub fn is_token(&self) -> Option<SyntaxToken> {
9858        support::token(&self.syntax, SyntaxKind::IS_KW)
9859    }
9860    #[inline]
9861    pub fn json_token(&self) -> Option<SyntaxToken> {
9862        support::token(&self.syntax, SyntaxKind::JSON_KW)
9863    }
9864}
9865
9866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9867pub struct IsJsonObject {
9868    pub(crate) syntax: SyntaxNode,
9869}
9870impl IsJsonObject {
9871    #[inline]
9872    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9873        support::child(&self.syntax)
9874    }
9875    #[inline]
9876    pub fn is_token(&self) -> Option<SyntaxToken> {
9877        support::token(&self.syntax, SyntaxKind::IS_KW)
9878    }
9879    #[inline]
9880    pub fn json_token(&self) -> Option<SyntaxToken> {
9881        support::token(&self.syntax, SyntaxKind::JSON_KW)
9882    }
9883    #[inline]
9884    pub fn object_token(&self) -> Option<SyntaxToken> {
9885        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9886    }
9887}
9888
9889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9890pub struct IsJsonScalar {
9891    pub(crate) syntax: SyntaxNode,
9892}
9893impl IsJsonScalar {
9894    #[inline]
9895    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9896        support::child(&self.syntax)
9897    }
9898    #[inline]
9899    pub fn is_token(&self) -> Option<SyntaxToken> {
9900        support::token(&self.syntax, SyntaxKind::IS_KW)
9901    }
9902    #[inline]
9903    pub fn json_token(&self) -> Option<SyntaxToken> {
9904        support::token(&self.syntax, SyntaxKind::JSON_KW)
9905    }
9906    #[inline]
9907    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9908        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9909    }
9910}
9911
9912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9913pub struct IsJsonValue {
9914    pub(crate) syntax: SyntaxNode,
9915}
9916impl IsJsonValue {
9917    #[inline]
9918    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9919        support::child(&self.syntax)
9920    }
9921    #[inline]
9922    pub fn is_token(&self) -> Option<SyntaxToken> {
9923        support::token(&self.syntax, SyntaxKind::IS_KW)
9924    }
9925    #[inline]
9926    pub fn json_token(&self) -> Option<SyntaxToken> {
9927        support::token(&self.syntax, SyntaxKind::JSON_KW)
9928    }
9929    #[inline]
9930    pub fn value_token(&self) -> Option<SyntaxToken> {
9931        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9932    }
9933}
9934
9935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9936pub struct IsLabel {
9937    pub(crate) syntax: SyntaxNode,
9938}
9939impl IsLabel {
9940    #[inline]
9941    pub fn expr(&self) -> Option<Expr> {
9942        support::child(&self.syntax)
9943    }
9944    #[inline]
9945    pub fn is_token(&self) -> Option<SyntaxToken> {
9946        support::token(&self.syntax, SyntaxKind::IS_KW)
9947    }
9948}
9949
9950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9951pub struct IsNormalized {
9952    pub(crate) syntax: SyntaxNode,
9953}
9954impl IsNormalized {
9955    #[inline]
9956    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
9957        support::child(&self.syntax)
9958    }
9959    #[inline]
9960    pub fn is_token(&self) -> Option<SyntaxToken> {
9961        support::token(&self.syntax, SyntaxKind::IS_KW)
9962    }
9963    #[inline]
9964    pub fn normalized_token(&self) -> Option<SyntaxToken> {
9965        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
9966    }
9967}
9968
9969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9970pub struct IsNot {
9971    pub(crate) syntax: SyntaxNode,
9972}
9973impl IsNot {
9974    #[inline]
9975    pub fn is_token(&self) -> Option<SyntaxToken> {
9976        support::token(&self.syntax, SyntaxKind::IS_KW)
9977    }
9978    #[inline]
9979    pub fn not_token(&self) -> Option<SyntaxToken> {
9980        support::token(&self.syntax, SyntaxKind::NOT_KW)
9981    }
9982}
9983
9984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9985pub struct IsNotDistinctFrom {
9986    pub(crate) syntax: SyntaxNode,
9987}
9988impl IsNotDistinctFrom {
9989    #[inline]
9990    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9991        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9992    }
9993    #[inline]
9994    pub fn from_token(&self) -> Option<SyntaxToken> {
9995        support::token(&self.syntax, SyntaxKind::FROM_KW)
9996    }
9997    #[inline]
9998    pub fn is_token(&self) -> Option<SyntaxToken> {
9999        support::token(&self.syntax, SyntaxKind::IS_KW)
10000    }
10001    #[inline]
10002    pub fn not_token(&self) -> Option<SyntaxToken> {
10003        support::token(&self.syntax, SyntaxKind::NOT_KW)
10004    }
10005}
10006
10007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10008pub struct IsNotJson {
10009    pub(crate) syntax: SyntaxNode,
10010}
10011impl IsNotJson {
10012    #[inline]
10013    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10014        support::child(&self.syntax)
10015    }
10016    #[inline]
10017    pub fn is_token(&self) -> Option<SyntaxToken> {
10018        support::token(&self.syntax, SyntaxKind::IS_KW)
10019    }
10020    #[inline]
10021    pub fn json_token(&self) -> Option<SyntaxToken> {
10022        support::token(&self.syntax, SyntaxKind::JSON_KW)
10023    }
10024    #[inline]
10025    pub fn not_token(&self) -> Option<SyntaxToken> {
10026        support::token(&self.syntax, SyntaxKind::NOT_KW)
10027    }
10028}
10029
10030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10031pub struct IsNotJsonArray {
10032    pub(crate) syntax: SyntaxNode,
10033}
10034impl IsNotJsonArray {
10035    #[inline]
10036    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10037        support::child(&self.syntax)
10038    }
10039    #[inline]
10040    pub fn array_token(&self) -> Option<SyntaxToken> {
10041        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10042    }
10043    #[inline]
10044    pub fn is_token(&self) -> Option<SyntaxToken> {
10045        support::token(&self.syntax, SyntaxKind::IS_KW)
10046    }
10047    #[inline]
10048    pub fn json_token(&self) -> Option<SyntaxToken> {
10049        support::token(&self.syntax, SyntaxKind::JSON_KW)
10050    }
10051    #[inline]
10052    pub fn not_token(&self) -> Option<SyntaxToken> {
10053        support::token(&self.syntax, SyntaxKind::NOT_KW)
10054    }
10055}
10056
10057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10058pub struct IsNotJsonObject {
10059    pub(crate) syntax: SyntaxNode,
10060}
10061impl IsNotJsonObject {
10062    #[inline]
10063    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10064        support::child(&self.syntax)
10065    }
10066    #[inline]
10067    pub fn is_token(&self) -> Option<SyntaxToken> {
10068        support::token(&self.syntax, SyntaxKind::IS_KW)
10069    }
10070    #[inline]
10071    pub fn json_token(&self) -> Option<SyntaxToken> {
10072        support::token(&self.syntax, SyntaxKind::JSON_KW)
10073    }
10074    #[inline]
10075    pub fn not_token(&self) -> Option<SyntaxToken> {
10076        support::token(&self.syntax, SyntaxKind::NOT_KW)
10077    }
10078    #[inline]
10079    pub fn object_token(&self) -> Option<SyntaxToken> {
10080        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10081    }
10082}
10083
10084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10085pub struct IsNotJsonScalar {
10086    pub(crate) syntax: SyntaxNode,
10087}
10088impl IsNotJsonScalar {
10089    #[inline]
10090    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10091        support::child(&self.syntax)
10092    }
10093    #[inline]
10094    pub fn is_token(&self) -> Option<SyntaxToken> {
10095        support::token(&self.syntax, SyntaxKind::IS_KW)
10096    }
10097    #[inline]
10098    pub fn json_token(&self) -> Option<SyntaxToken> {
10099        support::token(&self.syntax, SyntaxKind::JSON_KW)
10100    }
10101    #[inline]
10102    pub fn not_token(&self) -> Option<SyntaxToken> {
10103        support::token(&self.syntax, SyntaxKind::NOT_KW)
10104    }
10105    #[inline]
10106    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10107        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10108    }
10109}
10110
10111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10112pub struct IsNotJsonValue {
10113    pub(crate) syntax: SyntaxNode,
10114}
10115impl IsNotJsonValue {
10116    #[inline]
10117    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10118        support::child(&self.syntax)
10119    }
10120    #[inline]
10121    pub fn is_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::IS_KW)
10123    }
10124    #[inline]
10125    pub fn json_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::JSON_KW)
10127    }
10128    #[inline]
10129    pub fn not_token(&self) -> Option<SyntaxToken> {
10130        support::token(&self.syntax, SyntaxKind::NOT_KW)
10131    }
10132    #[inline]
10133    pub fn value_token(&self) -> Option<SyntaxToken> {
10134        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10135    }
10136}
10137
10138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10139pub struct IsNotNormalized {
10140    pub(crate) syntax: SyntaxNode,
10141}
10142impl IsNotNormalized {
10143    #[inline]
10144    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10145        support::child(&self.syntax)
10146    }
10147    #[inline]
10148    pub fn is_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::IS_KW)
10150    }
10151    #[inline]
10152    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10153        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10154    }
10155    #[inline]
10156    pub fn not_token(&self) -> Option<SyntaxToken> {
10157        support::token(&self.syntax, SyntaxKind::NOT_KW)
10158    }
10159}
10160
10161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10162pub struct Join {
10163    pub(crate) syntax: SyntaxNode,
10164}
10165impl Join {
10166    #[inline]
10167    pub fn from_item(&self) -> Option<FromItem> {
10168        support::child(&self.syntax)
10169    }
10170    #[inline]
10171    pub fn join_type(&self) -> Option<JoinType> {
10172        support::child(&self.syntax)
10173    }
10174    #[inline]
10175    pub fn on_clause(&self) -> Option<OnClause> {
10176        support::child(&self.syntax)
10177    }
10178    #[inline]
10179    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10180        support::child(&self.syntax)
10181    }
10182    #[inline]
10183    pub fn natural_token(&self) -> Option<SyntaxToken> {
10184        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10185    }
10186}
10187
10188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10189pub struct JoinCross {
10190    pub(crate) syntax: SyntaxNode,
10191}
10192impl JoinCross {
10193    #[inline]
10194    pub fn cross_token(&self) -> Option<SyntaxToken> {
10195        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10196    }
10197    #[inline]
10198    pub fn join_token(&self) -> Option<SyntaxToken> {
10199        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10200    }
10201}
10202
10203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10204pub struct JoinExpr {
10205    pub(crate) syntax: SyntaxNode,
10206}
10207impl JoinExpr {
10208    #[inline]
10209    pub fn from_item(&self) -> Option<FromItem> {
10210        support::child(&self.syntax)
10211    }
10212    #[inline]
10213    pub fn join(&self) -> Option<Join> {
10214        support::child(&self.syntax)
10215    }
10216    #[inline]
10217    pub fn join_expr(&self) -> Option<JoinExpr> {
10218        support::child(&self.syntax)
10219    }
10220}
10221
10222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10223pub struct JoinFull {
10224    pub(crate) syntax: SyntaxNode,
10225}
10226impl JoinFull {
10227    #[inline]
10228    pub fn full_token(&self) -> Option<SyntaxToken> {
10229        support::token(&self.syntax, SyntaxKind::FULL_KW)
10230    }
10231    #[inline]
10232    pub fn join_token(&self) -> Option<SyntaxToken> {
10233        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10234    }
10235    #[inline]
10236    pub fn outer_token(&self) -> Option<SyntaxToken> {
10237        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10238    }
10239}
10240
10241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10242pub struct JoinInner {
10243    pub(crate) syntax: SyntaxNode,
10244}
10245impl JoinInner {
10246    #[inline]
10247    pub fn inner_token(&self) -> Option<SyntaxToken> {
10248        support::token(&self.syntax, SyntaxKind::INNER_KW)
10249    }
10250    #[inline]
10251    pub fn join_token(&self) -> Option<SyntaxToken> {
10252        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10253    }
10254}
10255
10256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10257pub struct JoinLeft {
10258    pub(crate) syntax: SyntaxNode,
10259}
10260impl JoinLeft {
10261    #[inline]
10262    pub fn join_token(&self) -> Option<SyntaxToken> {
10263        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10264    }
10265    #[inline]
10266    pub fn left_token(&self) -> Option<SyntaxToken> {
10267        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10268    }
10269    #[inline]
10270    pub fn outer_token(&self) -> Option<SyntaxToken> {
10271        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10272    }
10273}
10274
10275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10276pub struct JoinRight {
10277    pub(crate) syntax: SyntaxNode,
10278}
10279impl JoinRight {
10280    #[inline]
10281    pub fn join_token(&self) -> Option<SyntaxToken> {
10282        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10283    }
10284    #[inline]
10285    pub fn outer_token(&self) -> Option<SyntaxToken> {
10286        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10287    }
10288    #[inline]
10289    pub fn right_token(&self) -> Option<SyntaxToken> {
10290        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10291    }
10292}
10293
10294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10295pub struct JoinUsingClause {
10296    pub(crate) syntax: SyntaxNode,
10297}
10298impl JoinUsingClause {
10299    #[inline]
10300    pub fn alias(&self) -> Option<Alias> {
10301        support::child(&self.syntax)
10302    }
10303    #[inline]
10304    pub fn column_list(&self) -> Option<ColumnList> {
10305        support::child(&self.syntax)
10306    }
10307    #[inline]
10308    pub fn using_token(&self) -> Option<SyntaxToken> {
10309        support::token(&self.syntax, SyntaxKind::USING_KW)
10310    }
10311}
10312
10313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10314pub struct JsonArrayAggFn {
10315    pub(crate) syntax: SyntaxNode,
10316}
10317impl JsonArrayAggFn {
10318    #[inline]
10319    pub fn expr(&self) -> Option<Expr> {
10320        support::child(&self.syntax)
10321    }
10322    #[inline]
10323    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10324        support::child(&self.syntax)
10325    }
10326    #[inline]
10327    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10328        support::child(&self.syntax)
10329    }
10330    #[inline]
10331    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10332        support::children(&self.syntax)
10333    }
10334    #[inline]
10335    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10336        support::token(&self.syntax, SyntaxKind::L_PAREN)
10337    }
10338    #[inline]
10339    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10340        support::token(&self.syntax, SyntaxKind::R_PAREN)
10341    }
10342    #[inline]
10343    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10344        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10345    }
10346}
10347
10348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10349pub struct JsonArrayFn {
10350    pub(crate) syntax: SyntaxNode,
10351}
10352impl JsonArrayFn {
10353    #[inline]
10354    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10355        support::children(&self.syntax)
10356    }
10357    #[inline]
10358    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10359        support::child(&self.syntax)
10360    }
10361    #[inline]
10362    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10363        support::child(&self.syntax)
10364    }
10365    #[inline]
10366    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10367        support::children(&self.syntax)
10368    }
10369    #[inline]
10370    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10371        support::token(&self.syntax, SyntaxKind::L_PAREN)
10372    }
10373    #[inline]
10374    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10375        support::token(&self.syntax, SyntaxKind::R_PAREN)
10376    }
10377    #[inline]
10378    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10379        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10380    }
10381}
10382
10383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10384pub struct JsonBehaviorClause {
10385    pub(crate) syntax: SyntaxNode,
10386}
10387impl JsonBehaviorClause {
10388    #[inline]
10389    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10390        support::child(&self.syntax)
10391    }
10392}
10393
10394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10395pub struct JsonBehaviorDefault {
10396    pub(crate) syntax: SyntaxNode,
10397}
10398impl JsonBehaviorDefault {
10399    #[inline]
10400    pub fn expr(&self) -> Option<Expr> {
10401        support::child(&self.syntax)
10402    }
10403    #[inline]
10404    pub fn default_token(&self) -> Option<SyntaxToken> {
10405        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10406    }
10407}
10408
10409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10410pub struct JsonBehaviorEmptyArray {
10411    pub(crate) syntax: SyntaxNode,
10412}
10413impl JsonBehaviorEmptyArray {
10414    #[inline]
10415    pub fn array_token(&self) -> Option<SyntaxToken> {
10416        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10417    }
10418    #[inline]
10419    pub fn empty_token(&self) -> Option<SyntaxToken> {
10420        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10421    }
10422}
10423
10424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10425pub struct JsonBehaviorEmptyObject {
10426    pub(crate) syntax: SyntaxNode,
10427}
10428impl JsonBehaviorEmptyObject {
10429    #[inline]
10430    pub fn empty_token(&self) -> Option<SyntaxToken> {
10431        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10432    }
10433    #[inline]
10434    pub fn object_token(&self) -> Option<SyntaxToken> {
10435        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10436    }
10437}
10438
10439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10440pub struct JsonBehaviorError {
10441    pub(crate) syntax: SyntaxNode,
10442}
10443impl JsonBehaviorError {
10444    #[inline]
10445    pub fn error_token(&self) -> Option<SyntaxToken> {
10446        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10447    }
10448}
10449
10450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10451pub struct JsonBehaviorFalse {
10452    pub(crate) syntax: SyntaxNode,
10453}
10454impl JsonBehaviorFalse {
10455    #[inline]
10456    pub fn false_token(&self) -> Option<SyntaxToken> {
10457        support::token(&self.syntax, SyntaxKind::FALSE_KW)
10458    }
10459}
10460
10461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10462pub struct JsonBehaviorNull {
10463    pub(crate) syntax: SyntaxNode,
10464}
10465impl JsonBehaviorNull {
10466    #[inline]
10467    pub fn null_token(&self) -> Option<SyntaxToken> {
10468        support::token(&self.syntax, SyntaxKind::NULL_KW)
10469    }
10470}
10471
10472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10473pub struct JsonBehaviorTrue {
10474    pub(crate) syntax: SyntaxNode,
10475}
10476impl JsonBehaviorTrue {
10477    #[inline]
10478    pub fn true_token(&self) -> Option<SyntaxToken> {
10479        support::token(&self.syntax, SyntaxKind::TRUE_KW)
10480    }
10481}
10482
10483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10484pub struct JsonBehaviorUnknown {
10485    pub(crate) syntax: SyntaxNode,
10486}
10487impl JsonBehaviorUnknown {
10488    #[inline]
10489    pub fn unknown_token(&self) -> Option<SyntaxToken> {
10490        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
10491    }
10492}
10493
10494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10495pub struct JsonEncodingClause {
10496    pub(crate) syntax: SyntaxNode,
10497}
10498impl JsonEncodingClause {
10499    #[inline]
10500    pub fn name_ref(&self) -> Option<NameRef> {
10501        support::child(&self.syntax)
10502    }
10503    #[inline]
10504    pub fn encoding_token(&self) -> Option<SyntaxToken> {
10505        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
10506    }
10507}
10508
10509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10510pub struct JsonExistsFn {
10511    pub(crate) syntax: SyntaxNode,
10512}
10513impl JsonExistsFn {
10514    #[inline]
10515    pub fn expr(&self) -> Option<Expr> {
10516        support::child(&self.syntax)
10517    }
10518    #[inline]
10519    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10520        support::child(&self.syntax)
10521    }
10522    #[inline]
10523    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10524        support::child(&self.syntax)
10525    }
10526    #[inline]
10527    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10528        support::child(&self.syntax)
10529    }
10530    #[inline]
10531    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10532        support::token(&self.syntax, SyntaxKind::L_PAREN)
10533    }
10534    #[inline]
10535    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10536        support::token(&self.syntax, SyntaxKind::R_PAREN)
10537    }
10538    #[inline]
10539    pub fn comma_token(&self) -> Option<SyntaxToken> {
10540        support::token(&self.syntax, SyntaxKind::COMMA)
10541    }
10542    #[inline]
10543    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
10544        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
10545    }
10546}
10547
10548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10549pub struct JsonExprFormat {
10550    pub(crate) syntax: SyntaxNode,
10551}
10552impl JsonExprFormat {
10553    #[inline]
10554    pub fn expr(&self) -> Option<Expr> {
10555        support::child(&self.syntax)
10556    }
10557    #[inline]
10558    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10559        support::child(&self.syntax)
10560    }
10561}
10562
10563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10564pub struct JsonFn {
10565    pub(crate) syntax: SyntaxNode,
10566}
10567impl JsonFn {
10568    #[inline]
10569    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
10570        support::child(&self.syntax)
10571    }
10572    #[inline]
10573    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10574        support::child(&self.syntax)
10575    }
10576    #[inline]
10577    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10578        support::token(&self.syntax, SyntaxKind::L_PAREN)
10579    }
10580    #[inline]
10581    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10582        support::token(&self.syntax, SyntaxKind::R_PAREN)
10583    }
10584    #[inline]
10585    pub fn json_token(&self) -> Option<SyntaxToken> {
10586        support::token(&self.syntax, SyntaxKind::JSON_KW)
10587    }
10588}
10589
10590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10591pub struct JsonFormatClause {
10592    pub(crate) syntax: SyntaxNode,
10593}
10594impl JsonFormatClause {
10595    #[inline]
10596    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
10597        support::child(&self.syntax)
10598    }
10599    #[inline]
10600    pub fn format_token(&self) -> Option<SyntaxToken> {
10601        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
10602    }
10603    #[inline]
10604    pub fn json_token(&self) -> Option<SyntaxToken> {
10605        support::token(&self.syntax, SyntaxKind::JSON_KW)
10606    }
10607}
10608
10609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10610pub struct JsonKeyValue {
10611    pub(crate) syntax: SyntaxNode,
10612}
10613impl JsonKeyValue {
10614    #[inline]
10615    pub fn expr(&self) -> Option<Expr> {
10616        support::child(&self.syntax)
10617    }
10618    #[inline]
10619    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
10620        support::child(&self.syntax)
10621    }
10622    #[inline]
10623    pub fn colon_token(&self) -> Option<SyntaxToken> {
10624        support::token(&self.syntax, SyntaxKind::COLON)
10625    }
10626    #[inline]
10627    pub fn value_token(&self) -> Option<SyntaxToken> {
10628        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10629    }
10630}
10631
10632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10633pub struct JsonKeysUniqueClause {
10634    pub(crate) syntax: SyntaxNode,
10635}
10636impl JsonKeysUniqueClause {
10637    #[inline]
10638    pub fn keys_token(&self) -> Option<SyntaxToken> {
10639        support::token(&self.syntax, SyntaxKind::KEYS_KW)
10640    }
10641    #[inline]
10642    pub fn unique_token(&self) -> Option<SyntaxToken> {
10643        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10644    }
10645    #[inline]
10646    pub fn with_token(&self) -> Option<SyntaxToken> {
10647        support::token(&self.syntax, SyntaxKind::WITH_KW)
10648    }
10649    #[inline]
10650    pub fn without_token(&self) -> Option<SyntaxToken> {
10651        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10652    }
10653}
10654
10655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10656pub struct JsonNullClause {
10657    pub(crate) syntax: SyntaxNode,
10658}
10659impl JsonNullClause {
10660    #[inline]
10661    pub fn absent_token(&self) -> Option<SyntaxToken> {
10662        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
10663    }
10664    #[inline]
10665    pub fn null_token(&self) -> Option<SyntaxToken> {
10666        support::token(&self.syntax, SyntaxKind::NULL_KW)
10667    }
10668    #[inline]
10669    pub fn on_token(&self) -> Option<SyntaxToken> {
10670        support::token(&self.syntax, SyntaxKind::ON_KW)
10671    }
10672}
10673
10674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10675pub struct JsonObjectAggFn {
10676    pub(crate) syntax: SyntaxNode,
10677}
10678impl JsonObjectAggFn {
10679    #[inline]
10680    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
10681        support::child(&self.syntax)
10682    }
10683    #[inline]
10684    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10685        support::child(&self.syntax)
10686    }
10687    #[inline]
10688    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10689        support::child(&self.syntax)
10690    }
10691    #[inline]
10692    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10693        support::child(&self.syntax)
10694    }
10695    #[inline]
10696    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10697        support::token(&self.syntax, SyntaxKind::L_PAREN)
10698    }
10699    #[inline]
10700    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10701        support::token(&self.syntax, SyntaxKind::R_PAREN)
10702    }
10703    #[inline]
10704    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
10705        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
10706    }
10707}
10708
10709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10710pub struct JsonObjectFn {
10711    pub(crate) syntax: SyntaxNode,
10712}
10713impl JsonObjectFn {
10714    #[inline]
10715    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
10716        support::children(&self.syntax)
10717    }
10718    #[inline]
10719    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10720        support::child(&self.syntax)
10721    }
10722    #[inline]
10723    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10724        support::child(&self.syntax)
10725    }
10726    #[inline]
10727    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10728        support::child(&self.syntax)
10729    }
10730    #[inline]
10731    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10732        support::token(&self.syntax, SyntaxKind::L_PAREN)
10733    }
10734    #[inline]
10735    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10736        support::token(&self.syntax, SyntaxKind::R_PAREN)
10737    }
10738    #[inline]
10739    pub fn json_object_token(&self) -> Option<SyntaxToken> {
10740        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
10741    }
10742}
10743
10744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10745pub struct JsonOnEmptyClause {
10746    pub(crate) syntax: SyntaxNode,
10747}
10748impl JsonOnEmptyClause {
10749    #[inline]
10750    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10751        support::child(&self.syntax)
10752    }
10753    #[inline]
10754    pub fn empty_token(&self) -> Option<SyntaxToken> {
10755        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10756    }
10757    #[inline]
10758    pub fn on_token(&self) -> Option<SyntaxToken> {
10759        support::token(&self.syntax, SyntaxKind::ON_KW)
10760    }
10761}
10762
10763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10764pub struct JsonOnErrorClause {
10765    pub(crate) syntax: SyntaxNode,
10766}
10767impl JsonOnErrorClause {
10768    #[inline]
10769    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10770        support::child(&self.syntax)
10771    }
10772    #[inline]
10773    pub fn error_token(&self) -> Option<SyntaxToken> {
10774        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10775    }
10776    #[inline]
10777    pub fn on_token(&self) -> Option<SyntaxToken> {
10778        support::token(&self.syntax, SyntaxKind::ON_KW)
10779    }
10780}
10781
10782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10783pub struct JsonPassingArg {
10784    pub(crate) syntax: SyntaxNode,
10785}
10786impl JsonPassingArg {
10787    #[inline]
10788    pub fn expr(&self) -> Option<Expr> {
10789        support::child(&self.syntax)
10790    }
10791    #[inline]
10792    pub fn name(&self) -> Option<Name> {
10793        support::child(&self.syntax)
10794    }
10795    #[inline]
10796    pub fn as_token(&self) -> Option<SyntaxToken> {
10797        support::token(&self.syntax, SyntaxKind::AS_KW)
10798    }
10799}
10800
10801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10802pub struct JsonPassingClause {
10803    pub(crate) syntax: SyntaxNode,
10804}
10805impl JsonPassingClause {
10806    #[inline]
10807    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
10808        support::children(&self.syntax)
10809    }
10810    #[inline]
10811    pub fn passing_token(&self) -> Option<SyntaxToken> {
10812        support::token(&self.syntax, SyntaxKind::PASSING_KW)
10813    }
10814}
10815
10816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10817pub struct JsonPathClause {
10818    pub(crate) syntax: SyntaxNode,
10819}
10820impl JsonPathClause {
10821    #[inline]
10822    pub fn expr(&self) -> Option<Expr> {
10823        support::child(&self.syntax)
10824    }
10825    #[inline]
10826    pub fn path_token(&self) -> Option<SyntaxToken> {
10827        support::token(&self.syntax, SyntaxKind::PATH_KW)
10828    }
10829}
10830
10831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10832pub struct JsonQueryFn {
10833    pub(crate) syntax: SyntaxNode,
10834}
10835impl JsonQueryFn {
10836    #[inline]
10837    pub fn expr(&self) -> Option<Expr> {
10838        support::child(&self.syntax)
10839    }
10840    #[inline]
10841    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10842        support::child(&self.syntax)
10843    }
10844    #[inline]
10845    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10846        support::child(&self.syntax)
10847    }
10848    #[inline]
10849    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10850        support::child(&self.syntax)
10851    }
10852    #[inline]
10853    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10854        support::child(&self.syntax)
10855    }
10856    #[inline]
10857    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10858        support::child(&self.syntax)
10859    }
10860    #[inline]
10861    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10862        support::child(&self.syntax)
10863    }
10864    #[inline]
10865    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10866        support::token(&self.syntax, SyntaxKind::L_PAREN)
10867    }
10868    #[inline]
10869    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10870        support::token(&self.syntax, SyntaxKind::R_PAREN)
10871    }
10872    #[inline]
10873    pub fn comma_token(&self) -> Option<SyntaxToken> {
10874        support::token(&self.syntax, SyntaxKind::COMMA)
10875    }
10876    #[inline]
10877    pub fn json_query_token(&self) -> Option<SyntaxToken> {
10878        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
10879    }
10880}
10881
10882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10883pub struct JsonQuotesClause {
10884    pub(crate) syntax: SyntaxNode,
10885}
10886impl JsonQuotesClause {
10887    #[inline]
10888    pub fn keep_token(&self) -> Option<SyntaxToken> {
10889        support::token(&self.syntax, SyntaxKind::KEEP_KW)
10890    }
10891    #[inline]
10892    pub fn omit_token(&self) -> Option<SyntaxToken> {
10893        support::token(&self.syntax, SyntaxKind::OMIT_KW)
10894    }
10895    #[inline]
10896    pub fn on_token(&self) -> Option<SyntaxToken> {
10897        support::token(&self.syntax, SyntaxKind::ON_KW)
10898    }
10899    #[inline]
10900    pub fn quotes_token(&self) -> Option<SyntaxToken> {
10901        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
10902    }
10903    #[inline]
10904    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10905        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10906    }
10907    #[inline]
10908    pub fn string_token(&self) -> Option<SyntaxToken> {
10909        support::token(&self.syntax, SyntaxKind::STRING_KW)
10910    }
10911}
10912
10913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10914pub struct JsonReturningClause {
10915    pub(crate) syntax: SyntaxNode,
10916}
10917impl JsonReturningClause {
10918    #[inline]
10919    pub fn ty(&self) -> Option<Type> {
10920        support::child(&self.syntax)
10921    }
10922    #[inline]
10923    pub fn returning_token(&self) -> Option<SyntaxToken> {
10924        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
10925    }
10926}
10927
10928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10929pub struct JsonScalarFn {
10930    pub(crate) syntax: SyntaxNode,
10931}
10932impl JsonScalarFn {
10933    #[inline]
10934    pub fn expr(&self) -> Option<Expr> {
10935        support::child(&self.syntax)
10936    }
10937    #[inline]
10938    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10939        support::token(&self.syntax, SyntaxKind::L_PAREN)
10940    }
10941    #[inline]
10942    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10943        support::token(&self.syntax, SyntaxKind::R_PAREN)
10944    }
10945    #[inline]
10946    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
10947        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
10948    }
10949}
10950
10951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10952pub struct JsonSelectFormat {
10953    pub(crate) syntax: SyntaxNode,
10954}
10955impl JsonSelectFormat {
10956    #[inline]
10957    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10958        support::child(&self.syntax)
10959    }
10960    #[inline]
10961    pub fn select_variant(&self) -> Option<SelectVariant> {
10962        support::child(&self.syntax)
10963    }
10964}
10965
10966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10967pub struct JsonSerializeFn {
10968    pub(crate) syntax: SyntaxNode,
10969}
10970impl JsonSerializeFn {
10971    #[inline]
10972    pub fn expr(&self) -> Option<Expr> {
10973        support::child(&self.syntax)
10974    }
10975    #[inline]
10976    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10977        support::child(&self.syntax)
10978    }
10979    #[inline]
10980    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10981        support::child(&self.syntax)
10982    }
10983    #[inline]
10984    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10985        support::token(&self.syntax, SyntaxKind::L_PAREN)
10986    }
10987    #[inline]
10988    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10989        support::token(&self.syntax, SyntaxKind::R_PAREN)
10990    }
10991    #[inline]
10992    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
10993        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
10994    }
10995}
10996
10997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10998pub struct JsonTable {
10999    pub(crate) syntax: SyntaxNode,
11000}
11001impl JsonTable {
11002    #[inline]
11003    pub fn expr(&self) -> Option<Expr> {
11004        support::child(&self.syntax)
11005    }
11006    #[inline]
11007    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11008        support::child(&self.syntax)
11009    }
11010    #[inline]
11011    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11012        support::child(&self.syntax)
11013    }
11014    #[inline]
11015    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11016        support::child(&self.syntax)
11017    }
11018    #[inline]
11019    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11020        support::child(&self.syntax)
11021    }
11022    #[inline]
11023    pub fn name(&self) -> Option<Name> {
11024        support::child(&self.syntax)
11025    }
11026    #[inline]
11027    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11028        support::token(&self.syntax, SyntaxKind::L_PAREN)
11029    }
11030    #[inline]
11031    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11032        support::token(&self.syntax, SyntaxKind::R_PAREN)
11033    }
11034    #[inline]
11035    pub fn comma_token(&self) -> Option<SyntaxToken> {
11036        support::token(&self.syntax, SyntaxKind::COMMA)
11037    }
11038    #[inline]
11039    pub fn as_token(&self) -> Option<SyntaxToken> {
11040        support::token(&self.syntax, SyntaxKind::AS_KW)
11041    }
11042    #[inline]
11043    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11044        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11045    }
11046}
11047
11048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11049pub struct JsonTableColumn {
11050    pub(crate) syntax: SyntaxNode,
11051}
11052impl JsonTableColumn {
11053    #[inline]
11054    pub fn expr(&self) -> Option<Expr> {
11055        support::child(&self.syntax)
11056    }
11057    #[inline]
11058    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11059        support::child(&self.syntax)
11060    }
11061    #[inline]
11062    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11063        support::child(&self.syntax)
11064    }
11065    #[inline]
11066    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11067        support::child(&self.syntax)
11068    }
11069    #[inline]
11070    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11071        support::child(&self.syntax)
11072    }
11073    #[inline]
11074    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11075        support::child(&self.syntax)
11076    }
11077    #[inline]
11078    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11079        support::child(&self.syntax)
11080    }
11081    #[inline]
11082    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11083        support::child(&self.syntax)
11084    }
11085    #[inline]
11086    pub fn name(&self) -> Option<Name> {
11087        support::child(&self.syntax)
11088    }
11089    #[inline]
11090    pub fn ty(&self) -> Option<Type> {
11091        support::child(&self.syntax)
11092    }
11093    #[inline]
11094    pub fn as_token(&self) -> Option<SyntaxToken> {
11095        support::token(&self.syntax, SyntaxKind::AS_KW)
11096    }
11097    #[inline]
11098    pub fn exists_token(&self) -> Option<SyntaxToken> {
11099        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11100    }
11101    #[inline]
11102    pub fn for_token(&self) -> Option<SyntaxToken> {
11103        support::token(&self.syntax, SyntaxKind::FOR_KW)
11104    }
11105    #[inline]
11106    pub fn nested_token(&self) -> Option<SyntaxToken> {
11107        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11108    }
11109    #[inline]
11110    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11111        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11112    }
11113    #[inline]
11114    pub fn path_token(&self) -> Option<SyntaxToken> {
11115        support::token(&self.syntax, SyntaxKind::PATH_KW)
11116    }
11117}
11118
11119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11120pub struct JsonTableColumnList {
11121    pub(crate) syntax: SyntaxNode,
11122}
11123impl JsonTableColumnList {
11124    #[inline]
11125    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11126        support::children(&self.syntax)
11127    }
11128    #[inline]
11129    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11130        support::token(&self.syntax, SyntaxKind::L_PAREN)
11131    }
11132    #[inline]
11133    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11134        support::token(&self.syntax, SyntaxKind::R_PAREN)
11135    }
11136    #[inline]
11137    pub fn columns_token(&self) -> Option<SyntaxToken> {
11138        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11139    }
11140}
11141
11142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11143pub struct JsonValueExpr {
11144    pub(crate) syntax: SyntaxNode,
11145}
11146impl JsonValueExpr {
11147    #[inline]
11148    pub fn expr(&self) -> Option<Expr> {
11149        support::child(&self.syntax)
11150    }
11151    #[inline]
11152    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11153        support::child(&self.syntax)
11154    }
11155}
11156
11157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11158pub struct JsonValueFn {
11159    pub(crate) syntax: SyntaxNode,
11160}
11161impl JsonValueFn {
11162    #[inline]
11163    pub fn expr(&self) -> Option<Expr> {
11164        support::child(&self.syntax)
11165    }
11166    #[inline]
11167    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11168        support::child(&self.syntax)
11169    }
11170    #[inline]
11171    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11172        support::child(&self.syntax)
11173    }
11174    #[inline]
11175    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11176        support::child(&self.syntax)
11177    }
11178    #[inline]
11179    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11180        support::child(&self.syntax)
11181    }
11182    #[inline]
11183    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11184        support::token(&self.syntax, SyntaxKind::L_PAREN)
11185    }
11186    #[inline]
11187    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11188        support::token(&self.syntax, SyntaxKind::R_PAREN)
11189    }
11190    #[inline]
11191    pub fn comma_token(&self) -> Option<SyntaxToken> {
11192        support::token(&self.syntax, SyntaxKind::COMMA)
11193    }
11194    #[inline]
11195    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11196        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11197    }
11198}
11199
11200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11201pub struct JsonWrapperBehaviorClause {
11202    pub(crate) syntax: SyntaxNode,
11203}
11204impl JsonWrapperBehaviorClause {
11205    #[inline]
11206    pub fn array_token(&self) -> Option<SyntaxToken> {
11207        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11208    }
11209    #[inline]
11210    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11211        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11212    }
11213    #[inline]
11214    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11215        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11216    }
11217    #[inline]
11218    pub fn with_token(&self) -> Option<SyntaxToken> {
11219        support::token(&self.syntax, SyntaxKind::WITH_KW)
11220    }
11221    #[inline]
11222    pub fn without_token(&self) -> Option<SyntaxToken> {
11223        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11224    }
11225    #[inline]
11226    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11227        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11228    }
11229}
11230
11231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11232pub struct LabelAndProperties {
11233    pub(crate) syntax: SyntaxNode,
11234}
11235impl LabelAndProperties {
11236    #[inline]
11237    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11238        support::child(&self.syntax)
11239    }
11240    #[inline]
11241    pub fn name(&self) -> Option<Name> {
11242        support::child(&self.syntax)
11243    }
11244    #[inline]
11245    pub fn default_token(&self) -> Option<SyntaxToken> {
11246        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11247    }
11248    #[inline]
11249    pub fn label_token(&self) -> Option<SyntaxToken> {
11250        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11251    }
11252}
11253
11254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11255pub struct LabelAndPropertiesList {
11256    pub(crate) syntax: SyntaxNode,
11257}
11258impl LabelAndPropertiesList {
11259    #[inline]
11260    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11261        support::children(&self.syntax)
11262    }
11263}
11264
11265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11266pub struct LanguageFuncOption {
11267    pub(crate) syntax: SyntaxNode,
11268}
11269impl LanguageFuncOption {
11270    #[inline]
11271    pub fn name_ref(&self) -> Option<NameRef> {
11272        support::child(&self.syntax)
11273    }
11274    #[inline]
11275    pub fn language_token(&self) -> Option<SyntaxToken> {
11276        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11277    }
11278}
11279
11280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11281pub struct LeakproofFuncOption {
11282    pub(crate) syntax: SyntaxNode,
11283}
11284impl LeakproofFuncOption {
11285    #[inline]
11286    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11287        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11288    }
11289    #[inline]
11290    pub fn not_token(&self) -> Option<SyntaxToken> {
11291        support::token(&self.syntax, SyntaxKind::NOT_KW)
11292    }
11293}
11294
11295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11296pub struct LikeClause {
11297    pub(crate) syntax: SyntaxNode,
11298}
11299impl LikeClause {
11300    #[inline]
11301    pub fn like_options(&self) -> AstChildren<LikeOption> {
11302        support::children(&self.syntax)
11303    }
11304    #[inline]
11305    pub fn path(&self) -> Option<Path> {
11306        support::child(&self.syntax)
11307    }
11308    #[inline]
11309    pub fn like_token(&self) -> Option<SyntaxToken> {
11310        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11311    }
11312}
11313
11314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11315pub struct LikeOption {
11316    pub(crate) syntax: SyntaxNode,
11317}
11318impl LikeOption {
11319    #[inline]
11320    pub fn all_token(&self) -> Option<SyntaxToken> {
11321        support::token(&self.syntax, SyntaxKind::ALL_KW)
11322    }
11323    #[inline]
11324    pub fn comments_token(&self) -> Option<SyntaxToken> {
11325        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11326    }
11327    #[inline]
11328    pub fn compression_token(&self) -> Option<SyntaxToken> {
11329        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11330    }
11331    #[inline]
11332    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11333        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11334    }
11335    #[inline]
11336    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11337        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11338    }
11339    #[inline]
11340    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11341        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11342    }
11343    #[inline]
11344    pub fn generated_token(&self) -> Option<SyntaxToken> {
11345        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11346    }
11347    #[inline]
11348    pub fn identity_token(&self) -> Option<SyntaxToken> {
11349        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11350    }
11351    #[inline]
11352    pub fn including_token(&self) -> Option<SyntaxToken> {
11353        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11354    }
11355    #[inline]
11356    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11357        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11358    }
11359    #[inline]
11360    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11361        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11362    }
11363    #[inline]
11364    pub fn storage_token(&self) -> Option<SyntaxToken> {
11365        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11366    }
11367}
11368
11369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11370pub struct LimitClause {
11371    pub(crate) syntax: SyntaxNode,
11372}
11373impl LimitClause {
11374    #[inline]
11375    pub fn expr(&self) -> Option<Expr> {
11376        support::child(&self.syntax)
11377    }
11378    #[inline]
11379    pub fn all_token(&self) -> Option<SyntaxToken> {
11380        support::token(&self.syntax, SyntaxKind::ALL_KW)
11381    }
11382    #[inline]
11383    pub fn limit_token(&self) -> Option<SyntaxToken> {
11384        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11385    }
11386}
11387
11388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11389pub struct LimitToTables {
11390    pub(crate) syntax: SyntaxNode,
11391}
11392impl LimitToTables {
11393    #[inline]
11394    pub fn name_refs(&self) -> AstChildren<NameRef> {
11395        support::children(&self.syntax)
11396    }
11397    #[inline]
11398    pub fn limit_token(&self) -> Option<SyntaxToken> {
11399        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11400    }
11401    #[inline]
11402    pub fn to_token(&self) -> Option<SyntaxToken> {
11403        support::token(&self.syntax, SyntaxKind::TO_KW)
11404    }
11405}
11406
11407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11408pub struct Listen {
11409    pub(crate) syntax: SyntaxNode,
11410}
11411impl Listen {
11412    #[inline]
11413    pub fn name(&self) -> Option<Name> {
11414        support::child(&self.syntax)
11415    }
11416    #[inline]
11417    pub fn listen_token(&self) -> Option<SyntaxToken> {
11418        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
11419    }
11420}
11421
11422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11423pub struct Literal {
11424    pub(crate) syntax: SyntaxNode,
11425}
11426impl Literal {}
11427
11428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11429pub struct Load {
11430    pub(crate) syntax: SyntaxNode,
11431}
11432impl Load {
11433    #[inline]
11434    pub fn literal(&self) -> Option<Literal> {
11435        support::child(&self.syntax)
11436    }
11437    #[inline]
11438    pub fn load_token(&self) -> Option<SyntaxToken> {
11439        support::token(&self.syntax, SyntaxKind::LOAD_KW)
11440    }
11441}
11442
11443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11444pub struct Lock {
11445    pub(crate) syntax: SyntaxNode,
11446}
11447impl Lock {
11448    #[inline]
11449    pub fn table_list(&self) -> Option<TableList> {
11450        support::child(&self.syntax)
11451    }
11452    #[inline]
11453    pub fn lock_token(&self) -> Option<SyntaxToken> {
11454        support::token(&self.syntax, SyntaxKind::LOCK_KW)
11455    }
11456    #[inline]
11457    pub fn table_token(&self) -> Option<SyntaxToken> {
11458        support::token(&self.syntax, SyntaxKind::TABLE_KW)
11459    }
11460}
11461
11462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11463pub struct LockingClause {
11464    pub(crate) syntax: SyntaxNode,
11465}
11466impl LockingClause {
11467    #[inline]
11468    pub fn for_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::FOR_KW)
11470    }
11471}
11472
11473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11474pub struct Lteq {
11475    pub(crate) syntax: SyntaxNode,
11476}
11477impl Lteq {
11478    #[inline]
11479    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11480        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11481    }
11482    #[inline]
11483    pub fn eq_token(&self) -> Option<SyntaxToken> {
11484        support::token(&self.syntax, SyntaxKind::EQ)
11485    }
11486}
11487
11488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11489pub struct MatchFull {
11490    pub(crate) syntax: SyntaxNode,
11491}
11492impl MatchFull {
11493    #[inline]
11494    pub fn full_token(&self) -> Option<SyntaxToken> {
11495        support::token(&self.syntax, SyntaxKind::FULL_KW)
11496    }
11497    #[inline]
11498    pub fn match_token(&self) -> Option<SyntaxToken> {
11499        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11500    }
11501}
11502
11503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11504pub struct MatchPartial {
11505    pub(crate) syntax: SyntaxNode,
11506}
11507impl MatchPartial {
11508    #[inline]
11509    pub fn match_token(&self) -> Option<SyntaxToken> {
11510        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11511    }
11512    #[inline]
11513    pub fn partial_token(&self) -> Option<SyntaxToken> {
11514        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
11515    }
11516}
11517
11518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11519pub struct MatchSimple {
11520    pub(crate) syntax: SyntaxNode,
11521}
11522impl MatchSimple {
11523    #[inline]
11524    pub fn match_token(&self) -> Option<SyntaxToken> {
11525        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11526    }
11527    #[inline]
11528    pub fn simple_token(&self) -> Option<SyntaxToken> {
11529        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
11530    }
11531}
11532
11533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11534pub struct Materialized {
11535    pub(crate) syntax: SyntaxNode,
11536}
11537impl Materialized {
11538    #[inline]
11539    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11540        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11541    }
11542}
11543
11544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11545pub struct Merge {
11546    pub(crate) syntax: SyntaxNode,
11547}
11548impl Merge {
11549    #[inline]
11550    pub fn alias(&self) -> Option<Alias> {
11551        support::child(&self.syntax)
11552    }
11553    #[inline]
11554    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
11555        support::children(&self.syntax)
11556    }
11557    #[inline]
11558    pub fn relation_name(&self) -> Option<RelationName> {
11559        support::child(&self.syntax)
11560    }
11561    #[inline]
11562    pub fn returning_clause(&self) -> Option<ReturningClause> {
11563        support::child(&self.syntax)
11564    }
11565    #[inline]
11566    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
11567        support::child(&self.syntax)
11568    }
11569    #[inline]
11570    pub fn with_clause(&self) -> Option<WithClause> {
11571        support::child(&self.syntax)
11572    }
11573    #[inline]
11574    pub fn into_token(&self) -> Option<SyntaxToken> {
11575        support::token(&self.syntax, SyntaxKind::INTO_KW)
11576    }
11577    #[inline]
11578    pub fn merge_token(&self) -> Option<SyntaxToken> {
11579        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11580    }
11581}
11582
11583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11584pub struct MergeDelete {
11585    pub(crate) syntax: SyntaxNode,
11586}
11587impl MergeDelete {
11588    #[inline]
11589    pub fn delete_token(&self) -> Option<SyntaxToken> {
11590        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11591    }
11592}
11593
11594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11595pub struct MergeDoNothing {
11596    pub(crate) syntax: SyntaxNode,
11597}
11598impl MergeDoNothing {
11599    #[inline]
11600    pub fn do_token(&self) -> Option<SyntaxToken> {
11601        support::token(&self.syntax, SyntaxKind::DO_KW)
11602    }
11603    #[inline]
11604    pub fn nothing_token(&self) -> Option<SyntaxToken> {
11605        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
11606    }
11607}
11608
11609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11610pub struct MergeInsert {
11611    pub(crate) syntax: SyntaxNode,
11612}
11613impl MergeInsert {
11614    #[inline]
11615    pub fn column_list(&self) -> Option<ColumnList> {
11616        support::child(&self.syntax)
11617    }
11618    #[inline]
11619    pub fn values(&self) -> Option<Values> {
11620        support::child(&self.syntax)
11621    }
11622    #[inline]
11623    pub fn default_token(&self) -> Option<SyntaxToken> {
11624        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11625    }
11626    #[inline]
11627    pub fn insert_token(&self) -> Option<SyntaxToken> {
11628        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11629    }
11630    #[inline]
11631    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11632        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11633    }
11634    #[inline]
11635    pub fn system_token(&self) -> Option<SyntaxToken> {
11636        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11637    }
11638    #[inline]
11639    pub fn user_token(&self) -> Option<SyntaxToken> {
11640        support::token(&self.syntax, SyntaxKind::USER_KW)
11641    }
11642    #[inline]
11643    pub fn values_token(&self) -> Option<SyntaxToken> {
11644        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11645    }
11646}
11647
11648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11649pub struct MergePartitions {
11650    pub(crate) syntax: SyntaxNode,
11651}
11652impl MergePartitions {
11653    #[inline]
11654    pub fn path(&self) -> Option<Path> {
11655        support::child(&self.syntax)
11656    }
11657    #[inline]
11658    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11659        support::token(&self.syntax, SyntaxKind::L_PAREN)
11660    }
11661    #[inline]
11662    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11663        support::token(&self.syntax, SyntaxKind::R_PAREN)
11664    }
11665    #[inline]
11666    pub fn into_token(&self) -> Option<SyntaxToken> {
11667        support::token(&self.syntax, SyntaxKind::INTO_KW)
11668    }
11669    #[inline]
11670    pub fn merge_token(&self) -> Option<SyntaxToken> {
11671        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11672    }
11673    #[inline]
11674    pub fn partitions_token(&self) -> Option<SyntaxToken> {
11675        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
11676    }
11677}
11678
11679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11680pub struct MergeUpdate {
11681    pub(crate) syntax: SyntaxNode,
11682}
11683impl MergeUpdate {
11684    #[inline]
11685    pub fn set_clause(&self) -> Option<SetClause> {
11686        support::child(&self.syntax)
11687    }
11688    #[inline]
11689    pub fn set_token(&self) -> Option<SyntaxToken> {
11690        support::token(&self.syntax, SyntaxKind::SET_KW)
11691    }
11692    #[inline]
11693    pub fn update_token(&self) -> Option<SyntaxToken> {
11694        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11695    }
11696}
11697
11698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11699pub struct MergeWhenMatched {
11700    pub(crate) syntax: SyntaxNode,
11701}
11702impl MergeWhenMatched {
11703    #[inline]
11704    pub fn expr(&self) -> Option<Expr> {
11705        support::child(&self.syntax)
11706    }
11707    #[inline]
11708    pub fn merge_action(&self) -> Option<MergeAction> {
11709        support::child(&self.syntax)
11710    }
11711    #[inline]
11712    pub fn and_token(&self) -> Option<SyntaxToken> {
11713        support::token(&self.syntax, SyntaxKind::AND_KW)
11714    }
11715    #[inline]
11716    pub fn matched_token(&self) -> Option<SyntaxToken> {
11717        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11718    }
11719    #[inline]
11720    pub fn then_token(&self) -> Option<SyntaxToken> {
11721        support::token(&self.syntax, SyntaxKind::THEN_KW)
11722    }
11723    #[inline]
11724    pub fn when_token(&self) -> Option<SyntaxToken> {
11725        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11726    }
11727}
11728
11729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11730pub struct MergeWhenNotMatchedSource {
11731    pub(crate) syntax: SyntaxNode,
11732}
11733impl MergeWhenNotMatchedSource {
11734    #[inline]
11735    pub fn expr(&self) -> Option<Expr> {
11736        support::child(&self.syntax)
11737    }
11738    #[inline]
11739    pub fn merge_action(&self) -> Option<MergeAction> {
11740        support::child(&self.syntax)
11741    }
11742    #[inline]
11743    pub fn and_token(&self) -> Option<SyntaxToken> {
11744        support::token(&self.syntax, SyntaxKind::AND_KW)
11745    }
11746    #[inline]
11747    pub fn by_token(&self) -> Option<SyntaxToken> {
11748        support::token(&self.syntax, SyntaxKind::BY_KW)
11749    }
11750    #[inline]
11751    pub fn matched_token(&self) -> Option<SyntaxToken> {
11752        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11753    }
11754    #[inline]
11755    pub fn not_token(&self) -> Option<SyntaxToken> {
11756        support::token(&self.syntax, SyntaxKind::NOT_KW)
11757    }
11758    #[inline]
11759    pub fn source_token(&self) -> Option<SyntaxToken> {
11760        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
11761    }
11762    #[inline]
11763    pub fn then_token(&self) -> Option<SyntaxToken> {
11764        support::token(&self.syntax, SyntaxKind::THEN_KW)
11765    }
11766    #[inline]
11767    pub fn when_token(&self) -> Option<SyntaxToken> {
11768        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11769    }
11770}
11771
11772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11773pub struct MergeWhenNotMatchedTarget {
11774    pub(crate) syntax: SyntaxNode,
11775}
11776impl MergeWhenNotMatchedTarget {
11777    #[inline]
11778    pub fn expr(&self) -> Option<Expr> {
11779        support::child(&self.syntax)
11780    }
11781    #[inline]
11782    pub fn merge_action(&self) -> Option<MergeAction> {
11783        support::child(&self.syntax)
11784    }
11785    #[inline]
11786    pub fn and_token(&self) -> Option<SyntaxToken> {
11787        support::token(&self.syntax, SyntaxKind::AND_KW)
11788    }
11789    #[inline]
11790    pub fn by_token(&self) -> Option<SyntaxToken> {
11791        support::token(&self.syntax, SyntaxKind::BY_KW)
11792    }
11793    #[inline]
11794    pub fn matched_token(&self) -> Option<SyntaxToken> {
11795        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11796    }
11797    #[inline]
11798    pub fn not_token(&self) -> Option<SyntaxToken> {
11799        support::token(&self.syntax, SyntaxKind::NOT_KW)
11800    }
11801    #[inline]
11802    pub fn target_token(&self) -> Option<SyntaxToken> {
11803        support::token(&self.syntax, SyntaxKind::TARGET_KW)
11804    }
11805    #[inline]
11806    pub fn then_token(&self) -> Option<SyntaxToken> {
11807        support::token(&self.syntax, SyntaxKind::THEN_KW)
11808    }
11809    #[inline]
11810    pub fn when_token(&self) -> Option<SyntaxToken> {
11811        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11812    }
11813}
11814
11815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11816pub struct Move {
11817    pub(crate) syntax: SyntaxNode,
11818}
11819impl Move {
11820    #[inline]
11821    pub fn name_ref(&self) -> Option<NameRef> {
11822        support::child(&self.syntax)
11823    }
11824    #[inline]
11825    pub fn from_token(&self) -> Option<SyntaxToken> {
11826        support::token(&self.syntax, SyntaxKind::FROM_KW)
11827    }
11828    #[inline]
11829    pub fn in_token(&self) -> Option<SyntaxToken> {
11830        support::token(&self.syntax, SyntaxKind::IN_KW)
11831    }
11832    #[inline]
11833    pub fn move_token(&self) -> Option<SyntaxToken> {
11834        support::token(&self.syntax, SyntaxKind::MOVE_KW)
11835    }
11836}
11837
11838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11839pub struct Name {
11840    pub(crate) syntax: SyntaxNode,
11841}
11842impl Name {
11843    #[inline]
11844    pub fn ident_token(&self) -> Option<SyntaxToken> {
11845        support::token(&self.syntax, SyntaxKind::IDENT)
11846    }
11847}
11848
11849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11850pub struct NameRef {
11851    pub(crate) syntax: SyntaxNode,
11852}
11853impl NameRef {
11854    #[inline]
11855    pub fn ident_token(&self) -> Option<SyntaxToken> {
11856        support::token(&self.syntax, SyntaxKind::IDENT)
11857    }
11858}
11859
11860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11861pub struct NamedArg {
11862    pub(crate) syntax: SyntaxNode,
11863}
11864impl NamedArg {
11865    #[inline]
11866    pub fn expr(&self) -> Option<Expr> {
11867        support::child(&self.syntax)
11868    }
11869    #[inline]
11870    pub fn fat_arrow(&self) -> Option<FatArrow> {
11871        support::child(&self.syntax)
11872    }
11873    #[inline]
11874    pub fn name_ref(&self) -> Option<NameRef> {
11875        support::child(&self.syntax)
11876    }
11877}
11878
11879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11880pub struct Neq {
11881    pub(crate) syntax: SyntaxNode,
11882}
11883impl Neq {
11884    #[inline]
11885    pub fn bang_token(&self) -> Option<SyntaxToken> {
11886        support::token(&self.syntax, SyntaxKind::BANG)
11887    }
11888    #[inline]
11889    pub fn eq_token(&self) -> Option<SyntaxToken> {
11890        support::token(&self.syntax, SyntaxKind::EQ)
11891    }
11892}
11893
11894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11895pub struct Neqb {
11896    pub(crate) syntax: SyntaxNode,
11897}
11898impl Neqb {
11899    #[inline]
11900    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11902    }
11903    #[inline]
11904    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11906    }
11907}
11908
11909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11910pub struct NoAction {
11911    pub(crate) syntax: SyntaxNode,
11912}
11913impl NoAction {
11914    #[inline]
11915    pub fn action_token(&self) -> Option<SyntaxToken> {
11916        support::token(&self.syntax, SyntaxKind::ACTION_KW)
11917    }
11918    #[inline]
11919    pub fn no_token(&self) -> Option<SyntaxToken> {
11920        support::token(&self.syntax, SyntaxKind::NO_KW)
11921    }
11922}
11923
11924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11925pub struct NoDependsOnExtension {
11926    pub(crate) syntax: SyntaxNode,
11927}
11928impl NoDependsOnExtension {
11929    #[inline]
11930    pub fn name_ref(&self) -> Option<NameRef> {
11931        support::child(&self.syntax)
11932    }
11933    #[inline]
11934    pub fn depends_token(&self) -> Option<SyntaxToken> {
11935        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
11936    }
11937    #[inline]
11938    pub fn extension_token(&self) -> Option<SyntaxToken> {
11939        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
11940    }
11941    #[inline]
11942    pub fn no_token(&self) -> Option<SyntaxToken> {
11943        support::token(&self.syntax, SyntaxKind::NO_KW)
11944    }
11945    #[inline]
11946    pub fn on_token(&self) -> Option<SyntaxToken> {
11947        support::token(&self.syntax, SyntaxKind::ON_KW)
11948    }
11949}
11950
11951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11952pub struct NoForceRls {
11953    pub(crate) syntax: SyntaxNode,
11954}
11955impl NoForceRls {
11956    #[inline]
11957    pub fn force_token(&self) -> Option<SyntaxToken> {
11958        support::token(&self.syntax, SyntaxKind::FORCE_KW)
11959    }
11960    #[inline]
11961    pub fn level_token(&self) -> Option<SyntaxToken> {
11962        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
11963    }
11964    #[inline]
11965    pub fn no_token(&self) -> Option<SyntaxToken> {
11966        support::token(&self.syntax, SyntaxKind::NO_KW)
11967    }
11968    #[inline]
11969    pub fn row_token(&self) -> Option<SyntaxToken> {
11970        support::token(&self.syntax, SyntaxKind::ROW_KW)
11971    }
11972    #[inline]
11973    pub fn security_token(&self) -> Option<SyntaxToken> {
11974        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
11975    }
11976}
11977
11978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11979pub struct NoInherit {
11980    pub(crate) syntax: SyntaxNode,
11981}
11982impl NoInherit {
11983    #[inline]
11984    pub fn path(&self) -> Option<Path> {
11985        support::child(&self.syntax)
11986    }
11987    #[inline]
11988    pub fn inherit_token(&self) -> Option<SyntaxToken> {
11989        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
11990    }
11991    #[inline]
11992    pub fn no_token(&self) -> Option<SyntaxToken> {
11993        support::token(&self.syntax, SyntaxKind::NO_KW)
11994    }
11995}
11996
11997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11998pub struct NoInheritTable {
11999    pub(crate) syntax: SyntaxNode,
12000}
12001impl NoInheritTable {
12002    #[inline]
12003    pub fn path(&self) -> Option<Path> {
12004        support::child(&self.syntax)
12005    }
12006    #[inline]
12007    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12008        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12009    }
12010    #[inline]
12011    pub fn no_token(&self) -> Option<SyntaxToken> {
12012        support::token(&self.syntax, SyntaxKind::NO_KW)
12013    }
12014}
12015
12016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12017pub struct NoProperties {
12018    pub(crate) syntax: SyntaxNode,
12019}
12020impl NoProperties {
12021    #[inline]
12022    pub fn no_token(&self) -> Option<SyntaxToken> {
12023        support::token(&self.syntax, SyntaxKind::NO_KW)
12024    }
12025    #[inline]
12026    pub fn properties_token(&self) -> Option<SyntaxToken> {
12027        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12028    }
12029}
12030
12031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12032pub struct NonStandardParam {
12033    pub(crate) syntax: SyntaxNode,
12034}
12035impl NonStandardParam {
12036    #[inline]
12037    pub fn name_ref(&self) -> Option<NameRef> {
12038        support::child(&self.syntax)
12039    }
12040    #[inline]
12041    pub fn colon_token(&self) -> Option<SyntaxToken> {
12042        support::token(&self.syntax, SyntaxKind::COLON)
12043    }
12044}
12045
12046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12047pub struct NotDeferrable {
12048    pub(crate) syntax: SyntaxNode,
12049}
12050impl NotDeferrable {
12051    #[inline]
12052    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12053        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12054    }
12055    #[inline]
12056    pub fn not_token(&self) -> Option<SyntaxToken> {
12057        support::token(&self.syntax, SyntaxKind::NOT_KW)
12058    }
12059}
12060
12061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12062pub struct NotDeferrableConstraintOption {
12063    pub(crate) syntax: SyntaxNode,
12064}
12065impl NotDeferrableConstraintOption {
12066    #[inline]
12067    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12068        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12069    }
12070    #[inline]
12071    pub fn not_token(&self) -> Option<SyntaxToken> {
12072        support::token(&self.syntax, SyntaxKind::NOT_KW)
12073    }
12074}
12075
12076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12077pub struct NotEnforced {
12078    pub(crate) syntax: SyntaxNode,
12079}
12080impl NotEnforced {
12081    #[inline]
12082    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12083        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12084    }
12085    #[inline]
12086    pub fn not_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::NOT_KW)
12088    }
12089}
12090
12091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12092pub struct NotIlike {
12093    pub(crate) syntax: SyntaxNode,
12094}
12095impl NotIlike {
12096    #[inline]
12097    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12098        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12099    }
12100    #[inline]
12101    pub fn not_token(&self) -> Option<SyntaxToken> {
12102        support::token(&self.syntax, SyntaxKind::NOT_KW)
12103    }
12104}
12105
12106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12107pub struct NotIn {
12108    pub(crate) syntax: SyntaxNode,
12109}
12110impl NotIn {
12111    #[inline]
12112    pub fn in_token(&self) -> Option<SyntaxToken> {
12113        support::token(&self.syntax, SyntaxKind::IN_KW)
12114    }
12115    #[inline]
12116    pub fn not_token(&self) -> Option<SyntaxToken> {
12117        support::token(&self.syntax, SyntaxKind::NOT_KW)
12118    }
12119}
12120
12121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12122pub struct NotLike {
12123    pub(crate) syntax: SyntaxNode,
12124}
12125impl NotLike {
12126    #[inline]
12127    pub fn like_token(&self) -> Option<SyntaxToken> {
12128        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12129    }
12130    #[inline]
12131    pub fn not_token(&self) -> Option<SyntaxToken> {
12132        support::token(&self.syntax, SyntaxKind::NOT_KW)
12133    }
12134}
12135
12136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12137pub struct NotMaterialized {
12138    pub(crate) syntax: SyntaxNode,
12139}
12140impl NotMaterialized {
12141    #[inline]
12142    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12143        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12144    }
12145    #[inline]
12146    pub fn not_token(&self) -> Option<SyntaxToken> {
12147        support::token(&self.syntax, SyntaxKind::NOT_KW)
12148    }
12149}
12150
12151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12152pub struct NotNullConstraint {
12153    pub(crate) syntax: SyntaxNode,
12154}
12155impl NotNullConstraint {
12156    #[inline]
12157    pub fn name_ref(&self) -> Option<NameRef> {
12158        support::child(&self.syntax)
12159    }
12160    #[inline]
12161    pub fn no_inherit(&self) -> Option<NoInherit> {
12162        support::child(&self.syntax)
12163    }
12164    #[inline]
12165    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12166        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12167    }
12168    #[inline]
12169    pub fn not_token(&self) -> Option<SyntaxToken> {
12170        support::token(&self.syntax, SyntaxKind::NOT_KW)
12171    }
12172    #[inline]
12173    pub fn null_token(&self) -> Option<SyntaxToken> {
12174        support::token(&self.syntax, SyntaxKind::NULL_KW)
12175    }
12176}
12177
12178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12179pub struct NotOf {
12180    pub(crate) syntax: SyntaxNode,
12181}
12182impl NotOf {
12183    #[inline]
12184    pub fn not_token(&self) -> Option<SyntaxToken> {
12185        support::token(&self.syntax, SyntaxKind::NOT_KW)
12186    }
12187    #[inline]
12188    pub fn of_token(&self) -> Option<SyntaxToken> {
12189        support::token(&self.syntax, SyntaxKind::OF_KW)
12190    }
12191}
12192
12193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12194pub struct NotSimilarTo {
12195    pub(crate) syntax: SyntaxNode,
12196}
12197impl NotSimilarTo {
12198    #[inline]
12199    pub fn not_token(&self) -> Option<SyntaxToken> {
12200        support::token(&self.syntax, SyntaxKind::NOT_KW)
12201    }
12202    #[inline]
12203    pub fn similar_token(&self) -> Option<SyntaxToken> {
12204        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12205    }
12206    #[inline]
12207    pub fn to_token(&self) -> Option<SyntaxToken> {
12208        support::token(&self.syntax, SyntaxKind::TO_KW)
12209    }
12210}
12211
12212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12213pub struct NotValid {
12214    pub(crate) syntax: SyntaxNode,
12215}
12216impl NotValid {
12217    #[inline]
12218    pub fn not_token(&self) -> Option<SyntaxToken> {
12219        support::token(&self.syntax, SyntaxKind::NOT_KW)
12220    }
12221    #[inline]
12222    pub fn valid_token(&self) -> Option<SyntaxToken> {
12223        support::token(&self.syntax, SyntaxKind::VALID_KW)
12224    }
12225}
12226
12227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12228pub struct Notify {
12229    pub(crate) syntax: SyntaxNode,
12230}
12231impl Notify {
12232    #[inline]
12233    pub fn literal(&self) -> Option<Literal> {
12234        support::child(&self.syntax)
12235    }
12236    #[inline]
12237    pub fn name_ref(&self) -> Option<NameRef> {
12238        support::child(&self.syntax)
12239    }
12240    #[inline]
12241    pub fn comma_token(&self) -> Option<SyntaxToken> {
12242        support::token(&self.syntax, SyntaxKind::COMMA)
12243    }
12244    #[inline]
12245    pub fn notify_token(&self) -> Option<SyntaxToken> {
12246        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12247    }
12248}
12249
12250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12251pub struct NullConstraint {
12252    pub(crate) syntax: SyntaxNode,
12253}
12254impl NullConstraint {
12255    #[inline]
12256    pub fn name_ref(&self) -> Option<NameRef> {
12257        support::child(&self.syntax)
12258    }
12259    #[inline]
12260    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12261        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12262    }
12263    #[inline]
12264    pub fn null_token(&self) -> Option<SyntaxToken> {
12265        support::token(&self.syntax, SyntaxKind::NULL_KW)
12266    }
12267}
12268
12269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12270pub struct NullsDistinct {
12271    pub(crate) syntax: SyntaxNode,
12272}
12273impl NullsDistinct {
12274    #[inline]
12275    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12276        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12277    }
12278    #[inline]
12279    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12280        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12281    }
12282}
12283
12284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12285pub struct NullsFirst {
12286    pub(crate) syntax: SyntaxNode,
12287}
12288impl NullsFirst {
12289    #[inline]
12290    pub fn first_token(&self) -> Option<SyntaxToken> {
12291        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12292    }
12293    #[inline]
12294    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12295        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12296    }
12297}
12298
12299#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12300pub struct NullsLast {
12301    pub(crate) syntax: SyntaxNode,
12302}
12303impl NullsLast {
12304    #[inline]
12305    pub fn last_token(&self) -> Option<SyntaxToken> {
12306        support::token(&self.syntax, SyntaxKind::LAST_KW)
12307    }
12308    #[inline]
12309    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12310        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12311    }
12312}
12313
12314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12315pub struct NullsNotDistinct {
12316    pub(crate) syntax: SyntaxNode,
12317}
12318impl NullsNotDistinct {
12319    #[inline]
12320    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12321        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12322    }
12323    #[inline]
12324    pub fn not_token(&self) -> Option<SyntaxToken> {
12325        support::token(&self.syntax, SyntaxKind::NOT_KW)
12326    }
12327    #[inline]
12328    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12329        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12330    }
12331}
12332
12333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12334pub struct OfType {
12335    pub(crate) syntax: SyntaxNode,
12336}
12337impl OfType {
12338    #[inline]
12339    pub fn ty(&self) -> Option<Type> {
12340        support::child(&self.syntax)
12341    }
12342    #[inline]
12343    pub fn of_token(&self) -> Option<SyntaxToken> {
12344        support::token(&self.syntax, SyntaxKind::OF_KW)
12345    }
12346}
12347
12348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12349pub struct OffsetClause {
12350    pub(crate) syntax: SyntaxNode,
12351}
12352impl OffsetClause {
12353    #[inline]
12354    pub fn expr(&self) -> Option<Expr> {
12355        support::child(&self.syntax)
12356    }
12357    #[inline]
12358    pub fn offset_token(&self) -> Option<SyntaxToken> {
12359        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12360    }
12361    #[inline]
12362    pub fn row_token(&self) -> Option<SyntaxToken> {
12363        support::token(&self.syntax, SyntaxKind::ROW_KW)
12364    }
12365    #[inline]
12366    pub fn rows_token(&self) -> Option<SyntaxToken> {
12367        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12368    }
12369}
12370
12371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12372pub struct OnClause {
12373    pub(crate) syntax: SyntaxNode,
12374}
12375impl OnClause {
12376    #[inline]
12377    pub fn expr(&self) -> Option<Expr> {
12378        support::child(&self.syntax)
12379    }
12380    #[inline]
12381    pub fn on_token(&self) -> Option<SyntaxToken> {
12382        support::token(&self.syntax, SyntaxKind::ON_KW)
12383    }
12384}
12385
12386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12387pub struct OnCommit {
12388    pub(crate) syntax: SyntaxNode,
12389}
12390impl OnCommit {
12391    #[inline]
12392    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
12393        support::child(&self.syntax)
12394    }
12395    #[inline]
12396    pub fn commit_token(&self) -> Option<SyntaxToken> {
12397        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
12398    }
12399    #[inline]
12400    pub fn on_token(&self) -> Option<SyntaxToken> {
12401        support::token(&self.syntax, SyntaxKind::ON_KW)
12402    }
12403}
12404
12405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12406pub struct OnConflictClause {
12407    pub(crate) syntax: SyntaxNode,
12408}
12409impl OnConflictClause {
12410    #[inline]
12411    pub fn conflict_action(&self) -> Option<ConflictAction> {
12412        support::child(&self.syntax)
12413    }
12414    #[inline]
12415    pub fn conflict_target(&self) -> Option<ConflictTarget> {
12416        support::child(&self.syntax)
12417    }
12418    #[inline]
12419    pub fn conflict_token(&self) -> Option<SyntaxToken> {
12420        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
12421    }
12422    #[inline]
12423    pub fn on_token(&self) -> Option<SyntaxToken> {
12424        support::token(&self.syntax, SyntaxKind::ON_KW)
12425    }
12426}
12427
12428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12429pub struct OnDeleteAction {
12430    pub(crate) syntax: SyntaxNode,
12431}
12432impl OnDeleteAction {
12433    #[inline]
12434    pub fn ref_action(&self) -> Option<RefAction> {
12435        support::child(&self.syntax)
12436    }
12437    #[inline]
12438    pub fn delete_token(&self) -> Option<SyntaxToken> {
12439        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12440    }
12441    #[inline]
12442    pub fn on_token(&self) -> Option<SyntaxToken> {
12443        support::token(&self.syntax, SyntaxKind::ON_KW)
12444    }
12445}
12446
12447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12448pub struct OnTable {
12449    pub(crate) syntax: SyntaxNode,
12450}
12451impl OnTable {
12452    #[inline]
12453    pub fn path(&self) -> Option<Path> {
12454        support::child(&self.syntax)
12455    }
12456    #[inline]
12457    pub fn on_token(&self) -> Option<SyntaxToken> {
12458        support::token(&self.syntax, SyntaxKind::ON_KW)
12459    }
12460}
12461
12462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12463pub struct OnUpdateAction {
12464    pub(crate) syntax: SyntaxNode,
12465}
12466impl OnUpdateAction {
12467    #[inline]
12468    pub fn ref_action(&self) -> Option<RefAction> {
12469        support::child(&self.syntax)
12470    }
12471    #[inline]
12472    pub fn on_token(&self) -> Option<SyntaxToken> {
12473        support::token(&self.syntax, SyntaxKind::ON_KW)
12474    }
12475    #[inline]
12476    pub fn update_token(&self) -> Option<SyntaxToken> {
12477        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12478    }
12479}
12480
12481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12482pub struct Op {
12483    pub(crate) syntax: SyntaxNode,
12484}
12485impl Op {
12486    #[inline]
12487    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
12488        support::child(&self.syntax)
12489    }
12490    #[inline]
12491    pub fn colon_colon(&self) -> Option<ColonColon> {
12492        support::child(&self.syntax)
12493    }
12494    #[inline]
12495    pub fn colon_eq(&self) -> Option<ColonEq> {
12496        support::child(&self.syntax)
12497    }
12498    #[inline]
12499    pub fn custom_op(&self) -> Option<CustomOp> {
12500        support::child(&self.syntax)
12501    }
12502    #[inline]
12503    pub fn fat_arrow(&self) -> Option<FatArrow> {
12504        support::child(&self.syntax)
12505    }
12506    #[inline]
12507    pub fn gteq(&self) -> Option<Gteq> {
12508        support::child(&self.syntax)
12509    }
12510    #[inline]
12511    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
12512        support::child(&self.syntax)
12513    }
12514    #[inline]
12515    pub fn is_json(&self) -> Option<IsJson> {
12516        support::child(&self.syntax)
12517    }
12518    #[inline]
12519    pub fn is_json_array(&self) -> Option<IsJsonArray> {
12520        support::child(&self.syntax)
12521    }
12522    #[inline]
12523    pub fn is_json_object(&self) -> Option<IsJsonObject> {
12524        support::child(&self.syntax)
12525    }
12526    #[inline]
12527    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
12528        support::child(&self.syntax)
12529    }
12530    #[inline]
12531    pub fn is_json_value(&self) -> Option<IsJsonValue> {
12532        support::child(&self.syntax)
12533    }
12534    #[inline]
12535    pub fn is_not(&self) -> Option<IsNot> {
12536        support::child(&self.syntax)
12537    }
12538    #[inline]
12539    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
12540        support::child(&self.syntax)
12541    }
12542    #[inline]
12543    pub fn is_not_json(&self) -> Option<IsNotJson> {
12544        support::child(&self.syntax)
12545    }
12546    #[inline]
12547    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
12548        support::child(&self.syntax)
12549    }
12550    #[inline]
12551    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
12552        support::child(&self.syntax)
12553    }
12554    #[inline]
12555    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
12556        support::child(&self.syntax)
12557    }
12558    #[inline]
12559    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
12560        support::child(&self.syntax)
12561    }
12562    #[inline]
12563    pub fn lteq(&self) -> Option<Lteq> {
12564        support::child(&self.syntax)
12565    }
12566    #[inline]
12567    pub fn neq(&self) -> Option<Neq> {
12568        support::child(&self.syntax)
12569    }
12570    #[inline]
12571    pub fn neqb(&self) -> Option<Neqb> {
12572        support::child(&self.syntax)
12573    }
12574    #[inline]
12575    pub fn not_ilike(&self) -> Option<NotIlike> {
12576        support::child(&self.syntax)
12577    }
12578    #[inline]
12579    pub fn not_in(&self) -> Option<NotIn> {
12580        support::child(&self.syntax)
12581    }
12582    #[inline]
12583    pub fn not_like(&self) -> Option<NotLike> {
12584        support::child(&self.syntax)
12585    }
12586    #[inline]
12587    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
12588        support::child(&self.syntax)
12589    }
12590    #[inline]
12591    pub fn operator_call(&self) -> Option<OperatorCall> {
12592        support::child(&self.syntax)
12593    }
12594    #[inline]
12595    pub fn similar_to(&self) -> Option<SimilarTo> {
12596        support::child(&self.syntax)
12597    }
12598    #[inline]
12599    pub fn percent_token(&self) -> Option<SyntaxToken> {
12600        support::token(&self.syntax, SyntaxKind::PERCENT)
12601    }
12602    #[inline]
12603    pub fn plus_token(&self) -> Option<SyntaxToken> {
12604        support::token(&self.syntax, SyntaxKind::PLUS)
12605    }
12606    #[inline]
12607    pub fn minus_token(&self) -> Option<SyntaxToken> {
12608        support::token(&self.syntax, SyntaxKind::MINUS)
12609    }
12610    #[inline]
12611    pub fn slash_token(&self) -> Option<SyntaxToken> {
12612        support::token(&self.syntax, SyntaxKind::SLASH)
12613    }
12614    #[inline]
12615    pub fn colon_token(&self) -> Option<SyntaxToken> {
12616        support::token(&self.syntax, SyntaxKind::COLON)
12617    }
12618    #[inline]
12619    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12620        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12621    }
12622    #[inline]
12623    pub fn eq_token(&self) -> Option<SyntaxToken> {
12624        support::token(&self.syntax, SyntaxKind::EQ)
12625    }
12626    #[inline]
12627    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12628        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12629    }
12630    #[inline]
12631    pub fn caret_token(&self) -> Option<SyntaxToken> {
12632        support::token(&self.syntax, SyntaxKind::CARET)
12633    }
12634    #[inline]
12635    pub fn and_token(&self) -> Option<SyntaxToken> {
12636        support::token(&self.syntax, SyntaxKind::AND_KW)
12637    }
12638    #[inline]
12639    pub fn collate_token(&self) -> Option<SyntaxToken> {
12640        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
12641    }
12642    #[inline]
12643    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12644        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12645    }
12646    #[inline]
12647    pub fn in_token(&self) -> Option<SyntaxToken> {
12648        support::token(&self.syntax, SyntaxKind::IN_KW)
12649    }
12650    #[inline]
12651    pub fn is_token(&self) -> Option<SyntaxToken> {
12652        support::token(&self.syntax, SyntaxKind::IS_KW)
12653    }
12654    #[inline]
12655    pub fn like_token(&self) -> Option<SyntaxToken> {
12656        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12657    }
12658    #[inline]
12659    pub fn or_token(&self) -> Option<SyntaxToken> {
12660        support::token(&self.syntax, SyntaxKind::OR_KW)
12661    }
12662    #[inline]
12663    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
12664        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
12665    }
12666    #[inline]
12667    pub fn value_token(&self) -> Option<SyntaxToken> {
12668        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12669    }
12670}
12671
12672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12673pub struct OpClassOption {
12674    pub(crate) syntax: SyntaxNode,
12675}
12676impl OpClassOption {
12677    #[inline]
12678    pub fn function_sig(&self) -> Option<FunctionSig> {
12679        support::child(&self.syntax)
12680    }
12681    #[inline]
12682    pub fn literal(&self) -> Option<Literal> {
12683        support::child(&self.syntax)
12684    }
12685    #[inline]
12686    pub fn op(&self) -> Option<Op> {
12687        support::child(&self.syntax)
12688    }
12689    #[inline]
12690    pub fn param_list(&self) -> Option<ParamList> {
12691        support::child(&self.syntax)
12692    }
12693    #[inline]
12694    pub fn path(&self) -> Option<Path> {
12695        support::child(&self.syntax)
12696    }
12697    #[inline]
12698    pub fn ty(&self) -> Option<Type> {
12699        support::child(&self.syntax)
12700    }
12701    #[inline]
12702    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12703        support::token(&self.syntax, SyntaxKind::L_PAREN)
12704    }
12705    #[inline]
12706    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12707        support::token(&self.syntax, SyntaxKind::R_PAREN)
12708    }
12709    #[inline]
12710    pub fn comma_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::COMMA)
12712    }
12713    #[inline]
12714    pub fn by_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::BY_KW)
12716    }
12717    #[inline]
12718    pub fn for_token(&self) -> Option<SyntaxToken> {
12719        support::token(&self.syntax, SyntaxKind::FOR_KW)
12720    }
12721    #[inline]
12722    pub fn function_token(&self) -> Option<SyntaxToken> {
12723        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
12724    }
12725    #[inline]
12726    pub fn operator_token(&self) -> Option<SyntaxToken> {
12727        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12728    }
12729    #[inline]
12730    pub fn order_token(&self) -> Option<SyntaxToken> {
12731        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12732    }
12733    #[inline]
12734    pub fn search_token(&self) -> Option<SyntaxToken> {
12735        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
12736    }
12737    #[inline]
12738    pub fn storage_token(&self) -> Option<SyntaxToken> {
12739        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
12740    }
12741}
12742
12743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12744pub struct OpSig {
12745    pub(crate) syntax: SyntaxNode,
12746}
12747impl OpSig {
12748    #[inline]
12749    pub fn op(&self) -> Option<Op> {
12750        support::child(&self.syntax)
12751    }
12752    #[inline]
12753    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12754        support::token(&self.syntax, SyntaxKind::L_PAREN)
12755    }
12756    #[inline]
12757    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12758        support::token(&self.syntax, SyntaxKind::R_PAREN)
12759    }
12760    #[inline]
12761    pub fn comma_token(&self) -> Option<SyntaxToken> {
12762        support::token(&self.syntax, SyntaxKind::COMMA)
12763    }
12764    #[inline]
12765    pub fn none_token(&self) -> Option<SyntaxToken> {
12766        support::token(&self.syntax, SyntaxKind::NONE_KW)
12767    }
12768}
12769
12770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12771pub struct OpSigList {
12772    pub(crate) syntax: SyntaxNode,
12773}
12774impl OpSigList {
12775    #[inline]
12776    pub fn op_sigs(&self) -> AstChildren<OpSig> {
12777        support::children(&self.syntax)
12778    }
12779}
12780
12781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12782pub struct OperatorCall {
12783    pub(crate) syntax: SyntaxNode,
12784}
12785impl OperatorCall {
12786    #[inline]
12787    pub fn op(&self) -> Option<Op> {
12788        support::child(&self.syntax)
12789    }
12790    #[inline]
12791    pub fn path(&self) -> Option<Path> {
12792        support::child(&self.syntax)
12793    }
12794    #[inline]
12795    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12796        support::token(&self.syntax, SyntaxKind::L_PAREN)
12797    }
12798    #[inline]
12799    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12800        support::token(&self.syntax, SyntaxKind::R_PAREN)
12801    }
12802    #[inline]
12803    pub fn dot_token(&self) -> Option<SyntaxToken> {
12804        support::token(&self.syntax, SyntaxKind::DOT)
12805    }
12806    #[inline]
12807    pub fn operator_token(&self) -> Option<SyntaxToken> {
12808        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12809    }
12810}
12811
12812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12813pub struct OperatorClassOptionList {
12814    pub(crate) syntax: SyntaxNode,
12815}
12816impl OperatorClassOptionList {
12817    #[inline]
12818    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
12819        support::children(&self.syntax)
12820    }
12821}
12822
12823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12824pub struct OptionItem {
12825    pub(crate) syntax: SyntaxNode,
12826}
12827impl OptionItem {
12828    #[inline]
12829    pub fn expr(&self) -> Option<Expr> {
12830        support::child(&self.syntax)
12831    }
12832    #[inline]
12833    pub fn default_token(&self) -> Option<SyntaxToken> {
12834        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12835    }
12836}
12837
12838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12839pub struct OptionItemList {
12840    pub(crate) syntax: SyntaxNode,
12841}
12842impl OptionItemList {
12843    #[inline]
12844    pub fn option_items(&self) -> AstChildren<OptionItem> {
12845        support::children(&self.syntax)
12846    }
12847    #[inline]
12848    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12849        support::token(&self.syntax, SyntaxKind::L_PAREN)
12850    }
12851    #[inline]
12852    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12853        support::token(&self.syntax, SyntaxKind::R_PAREN)
12854    }
12855}
12856
12857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12858pub struct OrReplace {
12859    pub(crate) syntax: SyntaxNode,
12860}
12861impl OrReplace {
12862    #[inline]
12863    pub fn or_token(&self) -> Option<SyntaxToken> {
12864        support::token(&self.syntax, SyntaxKind::OR_KW)
12865    }
12866    #[inline]
12867    pub fn replace_token(&self) -> Option<SyntaxToken> {
12868        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
12869    }
12870}
12871
12872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12873pub struct OrderByClause {
12874    pub(crate) syntax: SyntaxNode,
12875}
12876impl OrderByClause {
12877    #[inline]
12878    pub fn sort_by_list(&self) -> Option<SortByList> {
12879        support::child(&self.syntax)
12880    }
12881    #[inline]
12882    pub fn by_token(&self) -> Option<SyntaxToken> {
12883        support::token(&self.syntax, SyntaxKind::BY_KW)
12884    }
12885    #[inline]
12886    pub fn order_token(&self) -> Option<SyntaxToken> {
12887        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12888    }
12889}
12890
12891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12892pub struct OverClause {
12893    pub(crate) syntax: SyntaxNode,
12894}
12895impl OverClause {
12896    #[inline]
12897    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12898        support::token(&self.syntax, SyntaxKind::L_PAREN)
12899    }
12900    #[inline]
12901    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12902        support::token(&self.syntax, SyntaxKind::R_PAREN)
12903    }
12904    #[inline]
12905    pub fn over_token(&self) -> Option<SyntaxToken> {
12906        support::token(&self.syntax, SyntaxKind::OVER_KW)
12907    }
12908}
12909
12910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12911pub struct OverlayFn {
12912    pub(crate) syntax: SyntaxNode,
12913}
12914impl OverlayFn {
12915    #[inline]
12916    pub fn expr(&self) -> Option<Expr> {
12917        support::child(&self.syntax)
12918    }
12919    #[inline]
12920    pub fn exprs(&self) -> AstChildren<Expr> {
12921        support::children(&self.syntax)
12922    }
12923    #[inline]
12924    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12925        support::token(&self.syntax, SyntaxKind::L_PAREN)
12926    }
12927    #[inline]
12928    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12929        support::token(&self.syntax, SyntaxKind::R_PAREN)
12930    }
12931    #[inline]
12932    pub fn for_token(&self) -> Option<SyntaxToken> {
12933        support::token(&self.syntax, SyntaxKind::FOR_KW)
12934    }
12935    #[inline]
12936    pub fn from_token(&self) -> Option<SyntaxToken> {
12937        support::token(&self.syntax, SyntaxKind::FROM_KW)
12938    }
12939    #[inline]
12940    pub fn overlay_token(&self) -> Option<SyntaxToken> {
12941        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
12942    }
12943    #[inline]
12944    pub fn placing_token(&self) -> Option<SyntaxToken> {
12945        support::token(&self.syntax, SyntaxKind::PLACING_KW)
12946    }
12947}
12948
12949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12950pub struct OwnedByRoles {
12951    pub(crate) syntax: SyntaxNode,
12952}
12953impl OwnedByRoles {
12954    #[inline]
12955    pub fn role_ref_list(&self) -> Option<RoleRefList> {
12956        support::child(&self.syntax)
12957    }
12958    #[inline]
12959    pub fn by_token(&self) -> Option<SyntaxToken> {
12960        support::token(&self.syntax, SyntaxKind::BY_KW)
12961    }
12962    #[inline]
12963    pub fn owned_token(&self) -> Option<SyntaxToken> {
12964        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12965    }
12966}
12967
12968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12969pub struct OwnerTo {
12970    pub(crate) syntax: SyntaxNode,
12971}
12972impl OwnerTo {
12973    #[inline]
12974    pub fn role_ref(&self) -> Option<RoleRef> {
12975        support::child(&self.syntax)
12976    }
12977    #[inline]
12978    pub fn owner_token(&self) -> Option<SyntaxToken> {
12979        support::token(&self.syntax, SyntaxKind::OWNER_KW)
12980    }
12981    #[inline]
12982    pub fn to_token(&self) -> Option<SyntaxToken> {
12983        support::token(&self.syntax, SyntaxKind::TO_KW)
12984    }
12985}
12986
12987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12988pub struct ParallelFuncOption {
12989    pub(crate) syntax: SyntaxNode,
12990}
12991impl ParallelFuncOption {
12992    #[inline]
12993    pub fn ident_token(&self) -> Option<SyntaxToken> {
12994        support::token(&self.syntax, SyntaxKind::IDENT)
12995    }
12996    #[inline]
12997    pub fn parallel_token(&self) -> Option<SyntaxToken> {
12998        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
12999    }
13000}
13001
13002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13003pub struct Param {
13004    pub(crate) syntax: SyntaxNode,
13005}
13006impl Param {
13007    #[inline]
13008    pub fn mode(&self) -> Option<ParamMode> {
13009        support::child(&self.syntax)
13010    }
13011    #[inline]
13012    pub fn name(&self) -> Option<Name> {
13013        support::child(&self.syntax)
13014    }
13015    #[inline]
13016    pub fn param_default(&self) -> Option<ParamDefault> {
13017        support::child(&self.syntax)
13018    }
13019    #[inline]
13020    pub fn ty(&self) -> Option<Type> {
13021        support::child(&self.syntax)
13022    }
13023}
13024
13025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13026pub struct ParamDefault {
13027    pub(crate) syntax: SyntaxNode,
13028}
13029impl ParamDefault {
13030    #[inline]
13031    pub fn expr(&self) -> Option<Expr> {
13032        support::child(&self.syntax)
13033    }
13034    #[inline]
13035    pub fn eq_token(&self) -> Option<SyntaxToken> {
13036        support::token(&self.syntax, SyntaxKind::EQ)
13037    }
13038    #[inline]
13039    pub fn default_token(&self) -> Option<SyntaxToken> {
13040        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13041    }
13042}
13043
13044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13045pub struct ParamIn {
13046    pub(crate) syntax: SyntaxNode,
13047}
13048impl ParamIn {
13049    #[inline]
13050    pub fn in_token(&self) -> Option<SyntaxToken> {
13051        support::token(&self.syntax, SyntaxKind::IN_KW)
13052    }
13053}
13054
13055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13056pub struct ParamInOut {
13057    pub(crate) syntax: SyntaxNode,
13058}
13059impl ParamInOut {
13060    #[inline]
13061    pub fn in_token(&self) -> Option<SyntaxToken> {
13062        support::token(&self.syntax, SyntaxKind::IN_KW)
13063    }
13064    #[inline]
13065    pub fn inout_token(&self) -> Option<SyntaxToken> {
13066        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13067    }
13068    #[inline]
13069    pub fn out_token(&self) -> Option<SyntaxToken> {
13070        support::token(&self.syntax, SyntaxKind::OUT_KW)
13071    }
13072}
13073
13074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13075pub struct ParamList {
13076    pub(crate) syntax: SyntaxNode,
13077}
13078impl ParamList {
13079    #[inline]
13080    pub fn params(&self) -> AstChildren<Param> {
13081        support::children(&self.syntax)
13082    }
13083}
13084
13085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13086pub struct ParamOut {
13087    pub(crate) syntax: SyntaxNode,
13088}
13089impl ParamOut {
13090    #[inline]
13091    pub fn out_token(&self) -> Option<SyntaxToken> {
13092        support::token(&self.syntax, SyntaxKind::OUT_KW)
13093    }
13094}
13095
13096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13097pub struct ParamVariadic {
13098    pub(crate) syntax: SyntaxNode,
13099}
13100impl ParamVariadic {
13101    #[inline]
13102    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13103        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13104    }
13105}
13106
13107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13108pub struct ParenExpr {
13109    pub(crate) syntax: SyntaxNode,
13110}
13111impl ParenExpr {
13112    #[inline]
13113    pub fn expr(&self) -> Option<Expr> {
13114        support::child(&self.syntax)
13115    }
13116    #[inline]
13117    pub fn from_item(&self) -> Option<FromItem> {
13118        support::child(&self.syntax)
13119    }
13120    #[inline]
13121    pub fn select(&self) -> Option<Select> {
13122        support::child(&self.syntax)
13123    }
13124    #[inline]
13125    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13126        support::token(&self.syntax, SyntaxKind::L_PAREN)
13127    }
13128    #[inline]
13129    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13130        support::token(&self.syntax, SyntaxKind::R_PAREN)
13131    }
13132}
13133
13134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13135pub struct ParenGraphPattern {
13136    pub(crate) syntax: SyntaxNode,
13137}
13138impl ParenGraphPattern {
13139    #[inline]
13140    pub fn path_pattern(&self) -> Option<PathPattern> {
13141        support::child(&self.syntax)
13142    }
13143    #[inline]
13144    pub fn where_clause(&self) -> Option<WhereClause> {
13145        support::child(&self.syntax)
13146    }
13147    #[inline]
13148    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13149        support::token(&self.syntax, SyntaxKind::L_PAREN)
13150    }
13151    #[inline]
13152    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13153        support::token(&self.syntax, SyntaxKind::R_PAREN)
13154    }
13155}
13156
13157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13158pub struct ParenSelect {
13159    pub(crate) syntax: SyntaxNode,
13160}
13161impl ParenSelect {
13162    #[inline]
13163    pub fn select(&self) -> Option<SelectVariant> {
13164        support::child(&self.syntax)
13165    }
13166    #[inline]
13167    pub fn with_clause(&self) -> Option<WithClause> {
13168        support::child(&self.syntax)
13169    }
13170    #[inline]
13171    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13172        support::token(&self.syntax, SyntaxKind::L_PAREN)
13173    }
13174    #[inline]
13175    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13176        support::token(&self.syntax, SyntaxKind::R_PAREN)
13177    }
13178}
13179
13180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13181pub struct Partition {
13182    pub(crate) syntax: SyntaxNode,
13183}
13184impl Partition {
13185    #[inline]
13186    pub fn partition_type(&self) -> Option<PartitionType> {
13187        support::child(&self.syntax)
13188    }
13189    #[inline]
13190    pub fn path(&self) -> Option<Path> {
13191        support::child(&self.syntax)
13192    }
13193    #[inline]
13194    pub fn partition_token(&self) -> Option<SyntaxToken> {
13195        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13196    }
13197}
13198
13199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13200pub struct PartitionBy {
13201    pub(crate) syntax: SyntaxNode,
13202}
13203impl PartitionBy {
13204    #[inline]
13205    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13206        support::child(&self.syntax)
13207    }
13208    #[inline]
13209    pub fn by_token(&self) -> Option<SyntaxToken> {
13210        support::token(&self.syntax, SyntaxKind::BY_KW)
13211    }
13212    #[inline]
13213    pub fn ident_token(&self) -> Option<SyntaxToken> {
13214        support::token(&self.syntax, SyntaxKind::IDENT)
13215    }
13216    #[inline]
13217    pub fn partition_token(&self) -> Option<SyntaxToken> {
13218        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13219    }
13220    #[inline]
13221    pub fn range_token(&self) -> Option<SyntaxToken> {
13222        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13223    }
13224}
13225
13226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13227pub struct PartitionDefault {
13228    pub(crate) syntax: SyntaxNode,
13229}
13230impl PartitionDefault {
13231    #[inline]
13232    pub fn default_token(&self) -> Option<SyntaxToken> {
13233        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13234    }
13235}
13236
13237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13238pub struct PartitionForValuesFrom {
13239    pub(crate) syntax: SyntaxNode,
13240}
13241impl PartitionForValuesFrom {
13242    #[inline]
13243    pub fn exprs(&self) -> AstChildren<Expr> {
13244        support::children(&self.syntax)
13245    }
13246    #[inline]
13247    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13248        support::token(&self.syntax, SyntaxKind::L_PAREN)
13249    }
13250    #[inline]
13251    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13252        support::token(&self.syntax, SyntaxKind::R_PAREN)
13253    }
13254    #[inline]
13255    pub fn for_token(&self) -> Option<SyntaxToken> {
13256        support::token(&self.syntax, SyntaxKind::FOR_KW)
13257    }
13258    #[inline]
13259    pub fn from_token(&self) -> Option<SyntaxToken> {
13260        support::token(&self.syntax, SyntaxKind::FROM_KW)
13261    }
13262    #[inline]
13263    pub fn to_token(&self) -> Option<SyntaxToken> {
13264        support::token(&self.syntax, SyntaxKind::TO_KW)
13265    }
13266    #[inline]
13267    pub fn values_token(&self) -> Option<SyntaxToken> {
13268        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13269    }
13270}
13271
13272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13273pub struct PartitionForValuesIn {
13274    pub(crate) syntax: SyntaxNode,
13275}
13276impl PartitionForValuesIn {
13277    #[inline]
13278    pub fn exprs(&self) -> AstChildren<Expr> {
13279        support::children(&self.syntax)
13280    }
13281    #[inline]
13282    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13283        support::token(&self.syntax, SyntaxKind::L_PAREN)
13284    }
13285    #[inline]
13286    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13287        support::token(&self.syntax, SyntaxKind::R_PAREN)
13288    }
13289    #[inline]
13290    pub fn for_token(&self) -> Option<SyntaxToken> {
13291        support::token(&self.syntax, SyntaxKind::FOR_KW)
13292    }
13293    #[inline]
13294    pub fn in_token(&self) -> Option<SyntaxToken> {
13295        support::token(&self.syntax, SyntaxKind::IN_KW)
13296    }
13297    #[inline]
13298    pub fn values_token(&self) -> Option<SyntaxToken> {
13299        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13300    }
13301}
13302
13303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13304pub struct PartitionForValuesWith {
13305    pub(crate) syntax: SyntaxNode,
13306}
13307impl PartitionForValuesWith {
13308    #[inline]
13309    pub fn literal(&self) -> Option<Literal> {
13310        support::child(&self.syntax)
13311    }
13312    #[inline]
13313    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13314        support::token(&self.syntax, SyntaxKind::L_PAREN)
13315    }
13316    #[inline]
13317    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13318        support::token(&self.syntax, SyntaxKind::R_PAREN)
13319    }
13320    #[inline]
13321    pub fn comma_token(&self) -> Option<SyntaxToken> {
13322        support::token(&self.syntax, SyntaxKind::COMMA)
13323    }
13324    #[inline]
13325    pub fn for_token(&self) -> Option<SyntaxToken> {
13326        support::token(&self.syntax, SyntaxKind::FOR_KW)
13327    }
13328    #[inline]
13329    pub fn ident_token(&self) -> Option<SyntaxToken> {
13330        support::token(&self.syntax, SyntaxKind::IDENT)
13331    }
13332    #[inline]
13333    pub fn values_token(&self) -> Option<SyntaxToken> {
13334        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13335    }
13336    #[inline]
13337    pub fn with_token(&self) -> Option<SyntaxToken> {
13338        support::token(&self.syntax, SyntaxKind::WITH_KW)
13339    }
13340}
13341
13342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13343pub struct PartitionItem {
13344    pub(crate) syntax: SyntaxNode,
13345}
13346impl PartitionItem {
13347    #[inline]
13348    pub fn collate(&self) -> Option<Collate> {
13349        support::child(&self.syntax)
13350    }
13351    #[inline]
13352    pub fn expr(&self) -> Option<Expr> {
13353        support::child(&self.syntax)
13354    }
13355}
13356
13357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13358pub struct PartitionItemList {
13359    pub(crate) syntax: SyntaxNode,
13360}
13361impl PartitionItemList {
13362    #[inline]
13363    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
13364        support::children(&self.syntax)
13365    }
13366    #[inline]
13367    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13368        support::token(&self.syntax, SyntaxKind::L_PAREN)
13369    }
13370    #[inline]
13371    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13372        support::token(&self.syntax, SyntaxKind::R_PAREN)
13373    }
13374}
13375
13376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13377pub struct PartitionList {
13378    pub(crate) syntax: SyntaxNode,
13379}
13380impl PartitionList {
13381    #[inline]
13382    pub fn partitions(&self) -> AstChildren<Partition> {
13383        support::children(&self.syntax)
13384    }
13385    #[inline]
13386    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13387        support::token(&self.syntax, SyntaxKind::L_PAREN)
13388    }
13389    #[inline]
13390    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13391        support::token(&self.syntax, SyntaxKind::R_PAREN)
13392    }
13393}
13394
13395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13396pub struct PartitionOf {
13397    pub(crate) syntax: SyntaxNode,
13398}
13399impl PartitionOf {
13400    #[inline]
13401    pub fn path(&self) -> Option<Path> {
13402        support::child(&self.syntax)
13403    }
13404    #[inline]
13405    pub fn of_token(&self) -> Option<SyntaxToken> {
13406        support::token(&self.syntax, SyntaxKind::OF_KW)
13407    }
13408    #[inline]
13409    pub fn partition_token(&self) -> Option<SyntaxToken> {
13410        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13411    }
13412}
13413
13414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13415pub struct Path {
13416    pub(crate) syntax: SyntaxNode,
13417}
13418impl Path {
13419    #[inline]
13420    pub fn qualifier(&self) -> Option<Path> {
13421        support::child(&self.syntax)
13422    }
13423    #[inline]
13424    pub fn segment(&self) -> Option<PathSegment> {
13425        support::child(&self.syntax)
13426    }
13427    #[inline]
13428    pub fn dot_token(&self) -> Option<SyntaxToken> {
13429        support::token(&self.syntax, SyntaxKind::DOT)
13430    }
13431}
13432
13433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13434pub struct PathFactor {
13435    pub(crate) syntax: SyntaxNode,
13436}
13437impl PathFactor {
13438    #[inline]
13439    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
13440        support::child(&self.syntax)
13441    }
13442    #[inline]
13443    pub fn path_primary(&self) -> Option<PathPrimary> {
13444        support::child(&self.syntax)
13445    }
13446}
13447
13448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13449pub struct PathPattern {
13450    pub(crate) syntax: SyntaxNode,
13451}
13452impl PathPattern {
13453    #[inline]
13454    pub fn path_factor(&self) -> Option<PathFactor> {
13455        support::child(&self.syntax)
13456    }
13457    #[inline]
13458    pub fn path_factors(&self) -> AstChildren<PathFactor> {
13459        support::children(&self.syntax)
13460    }
13461}
13462
13463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13464pub struct PathPatternList {
13465    pub(crate) syntax: SyntaxNode,
13466}
13467impl PathPatternList {
13468    #[inline]
13469    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
13470        support::children(&self.syntax)
13471    }
13472}
13473
13474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13475pub struct PathSegment {
13476    pub(crate) syntax: SyntaxNode,
13477}
13478impl PathSegment {
13479    #[inline]
13480    pub fn name(&self) -> Option<Name> {
13481        support::child(&self.syntax)
13482    }
13483    #[inline]
13484    pub fn name_ref(&self) -> Option<NameRef> {
13485        support::child(&self.syntax)
13486    }
13487}
13488
13489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13490pub struct PathType {
13491    pub(crate) syntax: SyntaxNode,
13492}
13493impl PathType {
13494    #[inline]
13495    pub fn arg_list(&self) -> Option<ArgList> {
13496        support::child(&self.syntax)
13497    }
13498    #[inline]
13499    pub fn path(&self) -> Option<Path> {
13500        support::child(&self.syntax)
13501    }
13502    #[inline]
13503    pub fn setof_token(&self) -> Option<SyntaxToken> {
13504        support::token(&self.syntax, SyntaxKind::SETOF_KW)
13505    }
13506}
13507
13508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13509pub struct PercentType {
13510    pub(crate) syntax: SyntaxNode,
13511}
13512impl PercentType {
13513    #[inline]
13514    pub fn percent_token(&self) -> Option<SyntaxToken> {
13515        support::token(&self.syntax, SyntaxKind::PERCENT)
13516    }
13517    #[inline]
13518    pub fn type_token(&self) -> Option<SyntaxToken> {
13519        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13520    }
13521}
13522
13523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13524pub struct PercentTypeClause {
13525    pub(crate) syntax: SyntaxNode,
13526}
13527impl PercentTypeClause {
13528    #[inline]
13529    pub fn path(&self) -> Option<Path> {
13530        support::child(&self.syntax)
13531    }
13532    #[inline]
13533    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
13534        support::child(&self.syntax)
13535    }
13536}
13537
13538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13539pub struct PositionFn {
13540    pub(crate) syntax: SyntaxNode,
13541}
13542impl PositionFn {
13543    #[inline]
13544    pub fn expr(&self) -> Option<Expr> {
13545        support::child(&self.syntax)
13546    }
13547    #[inline]
13548    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13549        support::token(&self.syntax, SyntaxKind::L_PAREN)
13550    }
13551    #[inline]
13552    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13553        support::token(&self.syntax, SyntaxKind::R_PAREN)
13554    }
13555    #[inline]
13556    pub fn in_token(&self) -> Option<SyntaxToken> {
13557        support::token(&self.syntax, SyntaxKind::IN_KW)
13558    }
13559    #[inline]
13560    pub fn position_token(&self) -> Option<SyntaxToken> {
13561        support::token(&self.syntax, SyntaxKind::POSITION_KW)
13562    }
13563}
13564
13565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13566pub struct PostfixExpr {
13567    pub(crate) syntax: SyntaxNode,
13568}
13569impl PostfixExpr {
13570    #[inline]
13571    pub fn expr(&self) -> Option<Expr> {
13572        support::child(&self.syntax)
13573    }
13574}
13575
13576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13577pub struct PrefixExpr {
13578    pub(crate) syntax: SyntaxNode,
13579}
13580impl PrefixExpr {
13581    #[inline]
13582    pub fn expr(&self) -> Option<Expr> {
13583        support::child(&self.syntax)
13584    }
13585}
13586
13587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13588pub struct Prepare {
13589    pub(crate) syntax: SyntaxNode,
13590}
13591impl Prepare {
13592    #[inline]
13593    pub fn name(&self) -> Option<Name> {
13594        support::child(&self.syntax)
13595    }
13596    #[inline]
13597    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
13598        support::child(&self.syntax)
13599    }
13600    #[inline]
13601    pub fn as_token(&self) -> Option<SyntaxToken> {
13602        support::token(&self.syntax, SyntaxKind::AS_KW)
13603    }
13604    #[inline]
13605    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13606        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13607    }
13608}
13609
13610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13611pub struct PrepareTransaction {
13612    pub(crate) syntax: SyntaxNode,
13613}
13614impl PrepareTransaction {
13615    #[inline]
13616    pub fn literal(&self) -> Option<Literal> {
13617        support::child(&self.syntax)
13618    }
13619    #[inline]
13620    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13621        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13622    }
13623    #[inline]
13624    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13625        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13626    }
13627}
13628
13629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13630pub struct PreserveRows {
13631    pub(crate) syntax: SyntaxNode,
13632}
13633impl PreserveRows {
13634    #[inline]
13635    pub fn preserve_token(&self) -> Option<SyntaxToken> {
13636        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
13637    }
13638    #[inline]
13639    pub fn rows_token(&self) -> Option<SyntaxToken> {
13640        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13641    }
13642}
13643
13644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13645pub struct PrimaryKeyConstraint {
13646    pub(crate) syntax: SyntaxNode,
13647}
13648impl PrimaryKeyConstraint {
13649    #[inline]
13650    pub fn column_list(&self) -> Option<ColumnList> {
13651        support::child(&self.syntax)
13652    }
13653    #[inline]
13654    pub fn constraint_name(&self) -> Option<ConstraintName> {
13655        support::child(&self.syntax)
13656    }
13657    #[inline]
13658    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13659        support::child(&self.syntax)
13660    }
13661    #[inline]
13662    pub fn using_index(&self) -> Option<UsingIndex> {
13663        support::child(&self.syntax)
13664    }
13665    #[inline]
13666    pub fn key_token(&self) -> Option<SyntaxToken> {
13667        support::token(&self.syntax, SyntaxKind::KEY_KW)
13668    }
13669    #[inline]
13670    pub fn primary_token(&self) -> Option<SyntaxToken> {
13671        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
13672    }
13673}
13674
13675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13676pub struct PrivilegeTarget {
13677    pub(crate) syntax: SyntaxNode,
13678}
13679impl PrivilegeTarget {
13680    #[inline]
13681    pub fn functions_token(&self) -> Option<SyntaxToken> {
13682        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
13683    }
13684    #[inline]
13685    pub fn large_token(&self) -> Option<SyntaxToken> {
13686        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13687    }
13688    #[inline]
13689    pub fn objects_token(&self) -> Option<SyntaxToken> {
13690        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
13691    }
13692    #[inline]
13693    pub fn routines_token(&self) -> Option<SyntaxToken> {
13694        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
13695    }
13696    #[inline]
13697    pub fn schemas_token(&self) -> Option<SyntaxToken> {
13698        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
13699    }
13700    #[inline]
13701    pub fn sequences_token(&self) -> Option<SyntaxToken> {
13702        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
13703    }
13704    #[inline]
13705    pub fn tables_token(&self) -> Option<SyntaxToken> {
13706        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13707    }
13708    #[inline]
13709    pub fn types_token(&self) -> Option<SyntaxToken> {
13710        support::token(&self.syntax, SyntaxKind::TYPES_KW)
13711    }
13712}
13713
13714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13715pub struct Privileges {
13716    pub(crate) syntax: SyntaxNode,
13717}
13718impl Privileges {
13719    #[inline]
13720    pub fn column_list(&self) -> Option<ColumnList> {
13721        support::child(&self.syntax)
13722    }
13723    #[inline]
13724    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13725        support::child(&self.syntax)
13726    }
13727    #[inline]
13728    pub fn all_token(&self) -> Option<SyntaxToken> {
13729        support::token(&self.syntax, SyntaxKind::ALL_KW)
13730    }
13731    #[inline]
13732    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13733        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13734    }
13735}
13736
13737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13738pub struct PropertiesList {
13739    pub(crate) syntax: SyntaxNode,
13740}
13741impl PropertiesList {
13742    #[inline]
13743    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
13744        support::child(&self.syntax)
13745    }
13746    #[inline]
13747    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13748        support::token(&self.syntax, SyntaxKind::L_PAREN)
13749    }
13750    #[inline]
13751    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13752        support::token(&self.syntax, SyntaxKind::R_PAREN)
13753    }
13754    #[inline]
13755    pub fn properties_token(&self) -> Option<SyntaxToken> {
13756        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
13757    }
13758}
13759
13760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13761pub struct PublicationObject {
13762    pub(crate) syntax: SyntaxNode,
13763}
13764impl PublicationObject {
13765    #[inline]
13766    pub fn column_list(&self) -> Option<ColumnList> {
13767        support::child(&self.syntax)
13768    }
13769    #[inline]
13770    pub fn name_ref(&self) -> Option<NameRef> {
13771        support::child(&self.syntax)
13772    }
13773    #[inline]
13774    pub fn path(&self) -> Option<Path> {
13775        support::child(&self.syntax)
13776    }
13777    #[inline]
13778    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
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    #[inline]
13790    pub fn star_token(&self) -> Option<SyntaxToken> {
13791        support::token(&self.syntax, SyntaxKind::STAR)
13792    }
13793    #[inline]
13794    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
13795        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
13796    }
13797    #[inline]
13798    pub fn in_token(&self) -> Option<SyntaxToken> {
13799        support::token(&self.syntax, SyntaxKind::IN_KW)
13800    }
13801    #[inline]
13802    pub fn only_token(&self) -> Option<SyntaxToken> {
13803        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13804    }
13805    #[inline]
13806    pub fn schema_token(&self) -> Option<SyntaxToken> {
13807        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13808    }
13809    #[inline]
13810    pub fn table_token(&self) -> Option<SyntaxToken> {
13811        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13812    }
13813    #[inline]
13814    pub fn tables_token(&self) -> Option<SyntaxToken> {
13815        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13816    }
13817}
13818
13819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13820pub struct ReadCommitted {
13821    pub(crate) syntax: SyntaxNode,
13822}
13823impl ReadCommitted {
13824    #[inline]
13825    pub fn committed_token(&self) -> Option<SyntaxToken> {
13826        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
13827    }
13828    #[inline]
13829    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13830        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13831    }
13832    #[inline]
13833    pub fn level_token(&self) -> Option<SyntaxToken> {
13834        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13835    }
13836    #[inline]
13837    pub fn read_token(&self) -> Option<SyntaxToken> {
13838        support::token(&self.syntax, SyntaxKind::READ_KW)
13839    }
13840}
13841
13842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13843pub struct ReadOnly {
13844    pub(crate) syntax: SyntaxNode,
13845}
13846impl ReadOnly {
13847    #[inline]
13848    pub fn only_token(&self) -> Option<SyntaxToken> {
13849        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13850    }
13851    #[inline]
13852    pub fn read_token(&self) -> Option<SyntaxToken> {
13853        support::token(&self.syntax, SyntaxKind::READ_KW)
13854    }
13855}
13856
13857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13858pub struct ReadUncommitted {
13859    pub(crate) syntax: SyntaxNode,
13860}
13861impl ReadUncommitted {
13862    #[inline]
13863    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13864        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13865    }
13866    #[inline]
13867    pub fn level_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13869    }
13870    #[inline]
13871    pub fn read_token(&self) -> Option<SyntaxToken> {
13872        support::token(&self.syntax, SyntaxKind::READ_KW)
13873    }
13874    #[inline]
13875    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
13876        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
13877    }
13878}
13879
13880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13881pub struct ReadWrite {
13882    pub(crate) syntax: SyntaxNode,
13883}
13884impl ReadWrite {
13885    #[inline]
13886    pub fn read_token(&self) -> Option<SyntaxToken> {
13887        support::token(&self.syntax, SyntaxKind::READ_KW)
13888    }
13889    #[inline]
13890    pub fn write_token(&self) -> Option<SyntaxToken> {
13891        support::token(&self.syntax, SyntaxKind::WRITE_KW)
13892    }
13893}
13894
13895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13896pub struct Reassign {
13897    pub(crate) syntax: SyntaxNode,
13898}
13899impl Reassign {
13900    #[inline]
13901    pub fn new_roles(&self) -> Option<RoleRefList> {
13902        support::child(&self.syntax)
13903    }
13904    #[inline]
13905    pub fn old_roles(&self) -> Option<RoleRefList> {
13906        support::child(&self.syntax)
13907    }
13908    #[inline]
13909    pub fn by_token(&self) -> Option<SyntaxToken> {
13910        support::token(&self.syntax, SyntaxKind::BY_KW)
13911    }
13912    #[inline]
13913    pub fn owned_token(&self) -> Option<SyntaxToken> {
13914        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13915    }
13916    #[inline]
13917    pub fn reassign_token(&self) -> Option<SyntaxToken> {
13918        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
13919    }
13920    #[inline]
13921    pub fn to_token(&self) -> Option<SyntaxToken> {
13922        support::token(&self.syntax, SyntaxKind::TO_KW)
13923    }
13924}
13925
13926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13927pub struct ReferencesConstraint {
13928    pub(crate) syntax: SyntaxNode,
13929}
13930impl ReferencesConstraint {
13931    #[inline]
13932    pub fn column(&self) -> Option<NameRef> {
13933        support::child(&self.syntax)
13934    }
13935    #[inline]
13936    pub fn constraint_name(&self) -> Option<ConstraintName> {
13937        support::child(&self.syntax)
13938    }
13939    #[inline]
13940    pub fn match_type(&self) -> Option<MatchType> {
13941        support::child(&self.syntax)
13942    }
13943    #[inline]
13944    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
13945        support::child(&self.syntax)
13946    }
13947    #[inline]
13948    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
13949        support::child(&self.syntax)
13950    }
13951    #[inline]
13952    pub fn table(&self) -> Option<Path> {
13953        support::child(&self.syntax)
13954    }
13955    #[inline]
13956    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13957        support::token(&self.syntax, SyntaxKind::L_PAREN)
13958    }
13959    #[inline]
13960    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13961        support::token(&self.syntax, SyntaxKind::R_PAREN)
13962    }
13963    #[inline]
13964    pub fn references_token(&self) -> Option<SyntaxToken> {
13965        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13966    }
13967}
13968
13969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13970pub struct Referencing {
13971    pub(crate) syntax: SyntaxNode,
13972}
13973impl Referencing {
13974    #[inline]
13975    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
13976        support::children(&self.syntax)
13977    }
13978    #[inline]
13979    pub fn referencing_token(&self) -> Option<SyntaxToken> {
13980        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
13981    }
13982}
13983
13984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13985pub struct ReferencingTable {
13986    pub(crate) syntax: SyntaxNode,
13987}
13988impl ReferencingTable {
13989    #[inline]
13990    pub fn name_ref(&self) -> Option<NameRef> {
13991        support::child(&self.syntax)
13992    }
13993    #[inline]
13994    pub fn as_token(&self) -> Option<SyntaxToken> {
13995        support::token(&self.syntax, SyntaxKind::AS_KW)
13996    }
13997    #[inline]
13998    pub fn new_token(&self) -> Option<SyntaxToken> {
13999        support::token(&self.syntax, SyntaxKind::NEW_KW)
14000    }
14001    #[inline]
14002    pub fn old_token(&self) -> Option<SyntaxToken> {
14003        support::token(&self.syntax, SyntaxKind::OLD_KW)
14004    }
14005    #[inline]
14006    pub fn table_token(&self) -> Option<SyntaxToken> {
14007        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14008    }
14009}
14010
14011#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14012pub struct Refresh {
14013    pub(crate) syntax: SyntaxNode,
14014}
14015impl Refresh {
14016    #[inline]
14017    pub fn path(&self) -> Option<Path> {
14018        support::child(&self.syntax)
14019    }
14020    #[inline]
14021    pub fn with_data(&self) -> Option<WithData> {
14022        support::child(&self.syntax)
14023    }
14024    #[inline]
14025    pub fn with_no_data(&self) -> Option<WithNoData> {
14026        support::child(&self.syntax)
14027    }
14028    #[inline]
14029    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14030        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14031    }
14032    #[inline]
14033    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14034        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14035    }
14036    #[inline]
14037    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14038        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14039    }
14040    #[inline]
14041    pub fn view_token(&self) -> Option<SyntaxToken> {
14042        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14043    }
14044}
14045
14046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14047pub struct RefreshCollationVersion {
14048    pub(crate) syntax: SyntaxNode,
14049}
14050impl RefreshCollationVersion {
14051    #[inline]
14052    pub fn collation_token(&self) -> Option<SyntaxToken> {
14053        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14054    }
14055    #[inline]
14056    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14057        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14058    }
14059    #[inline]
14060    pub fn version_token(&self) -> Option<SyntaxToken> {
14061        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14062    }
14063}
14064
14065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14066pub struct RefreshVersion {
14067    pub(crate) syntax: SyntaxNode,
14068}
14069impl RefreshVersion {
14070    #[inline]
14071    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14072        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14073    }
14074    #[inline]
14075    pub fn version_token(&self) -> Option<SyntaxToken> {
14076        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14077    }
14078}
14079
14080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14081pub struct Reindex {
14082    pub(crate) syntax: SyntaxNode,
14083}
14084impl Reindex {
14085    #[inline]
14086    pub fn path(&self) -> Option<Path> {
14087        support::child(&self.syntax)
14088    }
14089    #[inline]
14090    pub fn database_token(&self) -> Option<SyntaxToken> {
14091        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14092    }
14093    #[inline]
14094    pub fn index_token(&self) -> Option<SyntaxToken> {
14095        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14096    }
14097    #[inline]
14098    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14099        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14100    }
14101    #[inline]
14102    pub fn schema_token(&self) -> Option<SyntaxToken> {
14103        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14104    }
14105    #[inline]
14106    pub fn system_token(&self) -> Option<SyntaxToken> {
14107        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14108    }
14109    #[inline]
14110    pub fn table_token(&self) -> Option<SyntaxToken> {
14111        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14112    }
14113}
14114
14115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14116pub struct RelationName {
14117    pub(crate) syntax: SyntaxNode,
14118}
14119impl RelationName {
14120    #[inline]
14121    pub fn path(&self) -> Option<Path> {
14122        support::child(&self.syntax)
14123    }
14124    #[inline]
14125    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14126        support::token(&self.syntax, SyntaxKind::L_PAREN)
14127    }
14128    #[inline]
14129    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14130        support::token(&self.syntax, SyntaxKind::R_PAREN)
14131    }
14132    #[inline]
14133    pub fn star_token(&self) -> Option<SyntaxToken> {
14134        support::token(&self.syntax, SyntaxKind::STAR)
14135    }
14136    #[inline]
14137    pub fn only_token(&self) -> Option<SyntaxToken> {
14138        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14139    }
14140}
14141
14142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14143pub struct ReleaseSavepoint {
14144    pub(crate) syntax: SyntaxNode,
14145}
14146impl ReleaseSavepoint {
14147    #[inline]
14148    pub fn name_ref(&self) -> Option<NameRef> {
14149        support::child(&self.syntax)
14150    }
14151    #[inline]
14152    pub fn release_token(&self) -> Option<SyntaxToken> {
14153        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14154    }
14155    #[inline]
14156    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14157        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14158    }
14159}
14160
14161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14162pub struct RenameAttribute {
14163    pub(crate) syntax: SyntaxNode,
14164}
14165impl RenameAttribute {
14166    #[inline]
14167    pub fn name(&self) -> Option<Name> {
14168        support::child(&self.syntax)
14169    }
14170    #[inline]
14171    pub fn name_ref(&self) -> Option<NameRef> {
14172        support::child(&self.syntax)
14173    }
14174    #[inline]
14175    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14176        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14177    }
14178    #[inline]
14179    pub fn rename_token(&self) -> Option<SyntaxToken> {
14180        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14181    }
14182    #[inline]
14183    pub fn to_token(&self) -> Option<SyntaxToken> {
14184        support::token(&self.syntax, SyntaxKind::TO_KW)
14185    }
14186}
14187
14188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14189pub struct RenameColumn {
14190    pub(crate) syntax: SyntaxNode,
14191}
14192impl RenameColumn {
14193    #[inline]
14194    pub fn column_token(&self) -> Option<SyntaxToken> {
14195        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14196    }
14197    #[inline]
14198    pub fn rename_token(&self) -> Option<SyntaxToken> {
14199        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14200    }
14201    #[inline]
14202    pub fn to_token(&self) -> Option<SyntaxToken> {
14203        support::token(&self.syntax, SyntaxKind::TO_KW)
14204    }
14205}
14206
14207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14208pub struct RenameConstraint {
14209    pub(crate) syntax: SyntaxNode,
14210}
14211impl RenameConstraint {
14212    #[inline]
14213    pub fn name(&self) -> Option<Name> {
14214        support::child(&self.syntax)
14215    }
14216    #[inline]
14217    pub fn name_ref(&self) -> Option<NameRef> {
14218        support::child(&self.syntax)
14219    }
14220    #[inline]
14221    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14222        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14223    }
14224    #[inline]
14225    pub fn rename_token(&self) -> Option<SyntaxToken> {
14226        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14227    }
14228    #[inline]
14229    pub fn to_token(&self) -> Option<SyntaxToken> {
14230        support::token(&self.syntax, SyntaxKind::TO_KW)
14231    }
14232}
14233
14234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14235pub struct RenameTo {
14236    pub(crate) syntax: SyntaxNode,
14237}
14238impl RenameTo {
14239    #[inline]
14240    pub fn name(&self) -> Option<Name> {
14241        support::child(&self.syntax)
14242    }
14243    #[inline]
14244    pub fn rename_token(&self) -> Option<SyntaxToken> {
14245        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14246    }
14247    #[inline]
14248    pub fn to_token(&self) -> Option<SyntaxToken> {
14249        support::token(&self.syntax, SyntaxKind::TO_KW)
14250    }
14251}
14252
14253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14254pub struct RenameValue {
14255    pub(crate) syntax: SyntaxNode,
14256}
14257impl RenameValue {
14258    #[inline]
14259    pub fn literal(&self) -> Option<Literal> {
14260        support::child(&self.syntax)
14261    }
14262    #[inline]
14263    pub fn rename_token(&self) -> Option<SyntaxToken> {
14264        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14265    }
14266    #[inline]
14267    pub fn to_token(&self) -> Option<SyntaxToken> {
14268        support::token(&self.syntax, SyntaxKind::TO_KW)
14269    }
14270    #[inline]
14271    pub fn value_token(&self) -> Option<SyntaxToken> {
14272        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14273    }
14274}
14275
14276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14277pub struct Repack {
14278    pub(crate) syntax: SyntaxNode,
14279}
14280impl Repack {
14281    #[inline]
14282    pub fn name_ref(&self) -> Option<NameRef> {
14283        support::child(&self.syntax)
14284    }
14285    #[inline]
14286    pub fn option_item_list(&self) -> Option<OptionItemList> {
14287        support::child(&self.syntax)
14288    }
14289    #[inline]
14290    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
14291        support::child(&self.syntax)
14292    }
14293    #[inline]
14294    pub fn index_token(&self) -> Option<SyntaxToken> {
14295        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14296    }
14297    #[inline]
14298    pub fn repack_token(&self) -> Option<SyntaxToken> {
14299        support::token(&self.syntax, SyntaxKind::REPACK_KW)
14300    }
14301    #[inline]
14302    pub fn using_token(&self) -> Option<SyntaxToken> {
14303        support::token(&self.syntax, SyntaxKind::USING_KW)
14304    }
14305}
14306
14307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14308pub struct RepeatableClause {
14309    pub(crate) syntax: SyntaxNode,
14310}
14311impl RepeatableClause {
14312    #[inline]
14313    pub fn expr(&self) -> Option<Expr> {
14314        support::child(&self.syntax)
14315    }
14316    #[inline]
14317    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14318        support::token(&self.syntax, SyntaxKind::L_PAREN)
14319    }
14320    #[inline]
14321    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14322        support::token(&self.syntax, SyntaxKind::R_PAREN)
14323    }
14324    #[inline]
14325    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14326        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14327    }
14328}
14329
14330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14331pub struct RepeatableRead {
14332    pub(crate) syntax: SyntaxNode,
14333}
14334impl RepeatableRead {
14335    #[inline]
14336    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14337        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14338    }
14339    #[inline]
14340    pub fn level_token(&self) -> Option<SyntaxToken> {
14341        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14342    }
14343    #[inline]
14344    pub fn read_token(&self) -> Option<SyntaxToken> {
14345        support::token(&self.syntax, SyntaxKind::READ_KW)
14346    }
14347    #[inline]
14348    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14349        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14350    }
14351}
14352
14353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14354pub struct ReplicaIdentity {
14355    pub(crate) syntax: SyntaxNode,
14356}
14357impl ReplicaIdentity {
14358    #[inline]
14359    pub fn identity_token(&self) -> Option<SyntaxToken> {
14360        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14361    }
14362    #[inline]
14363    pub fn replica_token(&self) -> Option<SyntaxToken> {
14364        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
14365    }
14366}
14367
14368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14369pub struct Reset {
14370    pub(crate) syntax: SyntaxNode,
14371}
14372impl Reset {
14373    #[inline]
14374    pub fn name_ref(&self) -> Option<NameRef> {
14375        support::child(&self.syntax)
14376    }
14377    #[inline]
14378    pub fn all_token(&self) -> Option<SyntaxToken> {
14379        support::token(&self.syntax, SyntaxKind::ALL_KW)
14380    }
14381    #[inline]
14382    pub fn reset_token(&self) -> Option<SyntaxToken> {
14383        support::token(&self.syntax, SyntaxKind::RESET_KW)
14384    }
14385}
14386
14387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14388pub struct ResetConfigParam {
14389    pub(crate) syntax: SyntaxNode,
14390}
14391impl ResetConfigParam {
14392    #[inline]
14393    pub fn path(&self) -> Option<Path> {
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 reset_token(&self) -> Option<SyntaxToken> {
14402        support::token(&self.syntax, SyntaxKind::RESET_KW)
14403    }
14404}
14405
14406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14407pub struct ResetFuncOption {
14408    pub(crate) syntax: SyntaxNode,
14409}
14410impl ResetFuncOption {
14411    #[inline]
14412    pub fn name_ref(&self) -> Option<NameRef> {
14413        support::child(&self.syntax)
14414    }
14415    #[inline]
14416    pub fn reset_token(&self) -> Option<SyntaxToken> {
14417        support::token(&self.syntax, SyntaxKind::RESET_KW)
14418    }
14419}
14420
14421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14422pub struct ResetOptions {
14423    pub(crate) syntax: SyntaxNode,
14424}
14425impl ResetOptions {
14426    #[inline]
14427    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14428        support::token(&self.syntax, SyntaxKind::L_PAREN)
14429    }
14430    #[inline]
14431    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14432        support::token(&self.syntax, SyntaxKind::R_PAREN)
14433    }
14434    #[inline]
14435    pub fn reset_token(&self) -> Option<SyntaxToken> {
14436        support::token(&self.syntax, SyntaxKind::RESET_KW)
14437    }
14438}
14439
14440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14441pub struct ResetSessionAuth {
14442    pub(crate) syntax: SyntaxNode,
14443}
14444impl ResetSessionAuth {
14445    #[inline]
14446    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14447        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14448    }
14449    #[inline]
14450    pub fn reset_token(&self) -> Option<SyntaxToken> {
14451        support::token(&self.syntax, SyntaxKind::RESET_KW)
14452    }
14453    #[inline]
14454    pub fn session_token(&self) -> Option<SyntaxToken> {
14455        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14456    }
14457}
14458
14459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14460pub struct Restart {
14461    pub(crate) syntax: SyntaxNode,
14462}
14463impl Restart {
14464    #[inline]
14465    pub fn restart_token(&self) -> Option<SyntaxToken> {
14466        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14467    }
14468    #[inline]
14469    pub fn with_token(&self) -> Option<SyntaxToken> {
14470        support::token(&self.syntax, SyntaxKind::WITH_KW)
14471    }
14472}
14473
14474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14475pub struct Restrict {
14476    pub(crate) syntax: SyntaxNode,
14477}
14478impl Restrict {
14479    #[inline]
14480    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14481        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14482    }
14483}
14484
14485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14486pub struct RetType {
14487    pub(crate) syntax: SyntaxNode,
14488}
14489impl RetType {
14490    #[inline]
14491    pub fn table_arg_list(&self) -> Option<TableArgList> {
14492        support::child(&self.syntax)
14493    }
14494    #[inline]
14495    pub fn ty(&self) -> Option<Type> {
14496        support::child(&self.syntax)
14497    }
14498    #[inline]
14499    pub fn returns_token(&self) -> Option<SyntaxToken> {
14500        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14501    }
14502    #[inline]
14503    pub fn table_token(&self) -> Option<SyntaxToken> {
14504        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14505    }
14506}
14507
14508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14509pub struct ReturnFuncOption {
14510    pub(crate) syntax: SyntaxNode,
14511}
14512impl ReturnFuncOption {
14513    #[inline]
14514    pub fn expr(&self) -> Option<Expr> {
14515        support::child(&self.syntax)
14516    }
14517    #[inline]
14518    pub fn return_token(&self) -> Option<SyntaxToken> {
14519        support::token(&self.syntax, SyntaxKind::RETURN_KW)
14520    }
14521}
14522
14523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14524pub struct ReturningClause {
14525    pub(crate) syntax: SyntaxNode,
14526}
14527impl ReturningClause {
14528    #[inline]
14529    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
14530        support::child(&self.syntax)
14531    }
14532    #[inline]
14533    pub fn target_list(&self) -> Option<TargetList> {
14534        support::child(&self.syntax)
14535    }
14536    #[inline]
14537    pub fn returning_token(&self) -> Option<SyntaxToken> {
14538        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
14539    }
14540}
14541
14542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14543pub struct ReturningOption {
14544    pub(crate) syntax: SyntaxNode,
14545}
14546impl ReturningOption {
14547    #[inline]
14548    pub fn name(&self) -> Option<Name> {
14549        support::child(&self.syntax)
14550    }
14551    #[inline]
14552    pub fn as_token(&self) -> Option<SyntaxToken> {
14553        support::token(&self.syntax, SyntaxKind::AS_KW)
14554    }
14555    #[inline]
14556    pub fn new_token(&self) -> Option<SyntaxToken> {
14557        support::token(&self.syntax, SyntaxKind::NEW_KW)
14558    }
14559    #[inline]
14560    pub fn old_token(&self) -> Option<SyntaxToken> {
14561        support::token(&self.syntax, SyntaxKind::OLD_KW)
14562    }
14563}
14564
14565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14566pub struct ReturningOptionList {
14567    pub(crate) syntax: SyntaxNode,
14568}
14569impl ReturningOptionList {
14570    #[inline]
14571    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
14572        support::children(&self.syntax)
14573    }
14574    #[inline]
14575    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14576        support::token(&self.syntax, SyntaxKind::L_PAREN)
14577    }
14578    #[inline]
14579    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14580        support::token(&self.syntax, SyntaxKind::R_PAREN)
14581    }
14582    #[inline]
14583    pub fn with_token(&self) -> Option<SyntaxToken> {
14584        support::token(&self.syntax, SyntaxKind::WITH_KW)
14585    }
14586}
14587
14588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14589pub struct Revoke {
14590    pub(crate) syntax: SyntaxNode,
14591}
14592impl Revoke {
14593    #[inline]
14594    pub fn name_refs(&self) -> AstChildren<NameRef> {
14595        support::children(&self.syntax)
14596    }
14597    #[inline]
14598    pub fn paths(&self) -> AstChildren<Path> {
14599        support::children(&self.syntax)
14600    }
14601    #[inline]
14602    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14603        support::child(&self.syntax)
14604    }
14605    #[inline]
14606    pub fn role_ref(&self) -> Option<RoleRef> {
14607        support::child(&self.syntax)
14608    }
14609    #[inline]
14610    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14611        support::child(&self.syntax)
14612    }
14613    #[inline]
14614    pub fn all_token(&self) -> Option<SyntaxToken> {
14615        support::token(&self.syntax, SyntaxKind::ALL_KW)
14616    }
14617    #[inline]
14618    pub fn by_token(&self) -> Option<SyntaxToken> {
14619        support::token(&self.syntax, SyntaxKind::BY_KW)
14620    }
14621    #[inline]
14622    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14623        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14624    }
14625    #[inline]
14626    pub fn for_token(&self) -> Option<SyntaxToken> {
14627        support::token(&self.syntax, SyntaxKind::FOR_KW)
14628    }
14629    #[inline]
14630    pub fn from_token(&self) -> Option<SyntaxToken> {
14631        support::token(&self.syntax, SyntaxKind::FROM_KW)
14632    }
14633    #[inline]
14634    pub fn grant_token(&self) -> Option<SyntaxToken> {
14635        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14636    }
14637    #[inline]
14638    pub fn granted_token(&self) -> Option<SyntaxToken> {
14639        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
14640    }
14641    #[inline]
14642    pub fn in_token(&self) -> Option<SyntaxToken> {
14643        support::token(&self.syntax, SyntaxKind::IN_KW)
14644    }
14645    #[inline]
14646    pub fn on_token(&self) -> Option<SyntaxToken> {
14647        support::token(&self.syntax, SyntaxKind::ON_KW)
14648    }
14649    #[inline]
14650    pub fn option_token(&self) -> Option<SyntaxToken> {
14651        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14652    }
14653    #[inline]
14654    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14655        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14656    }
14657    #[inline]
14658    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14659        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14660    }
14661    #[inline]
14662    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14663        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14664    }
14665    #[inline]
14666    pub fn schema_token(&self) -> Option<SyntaxToken> {
14667        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14668    }
14669    #[inline]
14670    pub fn table_token(&self) -> Option<SyntaxToken> {
14671        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14672    }
14673    #[inline]
14674    pub fn tables_token(&self) -> Option<SyntaxToken> {
14675        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14676    }
14677}
14678
14679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14680pub struct RevokeCommand {
14681    pub(crate) syntax: SyntaxNode,
14682}
14683impl RevokeCommand {
14684    #[inline]
14685    pub fn role_ref(&self) -> Option<RoleRef> {
14686        support::child(&self.syntax)
14687    }
14688    #[inline]
14689    pub fn all_token(&self) -> Option<SyntaxToken> {
14690        support::token(&self.syntax, SyntaxKind::ALL_KW)
14691    }
14692    #[inline]
14693    pub fn alter_token(&self) -> Option<SyntaxToken> {
14694        support::token(&self.syntax, SyntaxKind::ALTER_KW)
14695    }
14696    #[inline]
14697    pub fn create_token(&self) -> Option<SyntaxToken> {
14698        support::token(&self.syntax, SyntaxKind::CREATE_KW)
14699    }
14700    #[inline]
14701    pub fn delete_token(&self) -> Option<SyntaxToken> {
14702        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14703    }
14704    #[inline]
14705    pub fn execute_token(&self) -> Option<SyntaxToken> {
14706        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
14707    }
14708    #[inline]
14709    pub fn ident_token(&self) -> Option<SyntaxToken> {
14710        support::token(&self.syntax, SyntaxKind::IDENT)
14711    }
14712    #[inline]
14713    pub fn insert_token(&self) -> Option<SyntaxToken> {
14714        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14715    }
14716    #[inline]
14717    pub fn references_token(&self) -> Option<SyntaxToken> {
14718        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14719    }
14720    #[inline]
14721    pub fn select_token(&self) -> Option<SyntaxToken> {
14722        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14723    }
14724    #[inline]
14725    pub fn system_token(&self) -> Option<SyntaxToken> {
14726        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14727    }
14728    #[inline]
14729    pub fn temp_token(&self) -> Option<SyntaxToken> {
14730        support::token(&self.syntax, SyntaxKind::TEMP_KW)
14731    }
14732    #[inline]
14733    pub fn temporary_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
14735    }
14736    #[inline]
14737    pub fn trigger_token(&self) -> Option<SyntaxToken> {
14738        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
14739    }
14740    #[inline]
14741    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14742        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14743    }
14744    #[inline]
14745    pub fn update_token(&self) -> Option<SyntaxToken> {
14746        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14747    }
14748}
14749
14750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14751pub struct RevokeCommandList {
14752    pub(crate) syntax: SyntaxNode,
14753}
14754impl RevokeCommandList {
14755    #[inline]
14756    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
14757        support::children(&self.syntax)
14758    }
14759}
14760
14761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14762pub struct RevokeDefaultPrivileges {
14763    pub(crate) syntax: SyntaxNode,
14764}
14765impl RevokeDefaultPrivileges {
14766    #[inline]
14767    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
14768        support::child(&self.syntax)
14769    }
14770    #[inline]
14771    pub fn privileges(&self) -> Option<Privileges> {
14772        support::child(&self.syntax)
14773    }
14774    #[inline]
14775    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14776        support::child(&self.syntax)
14777    }
14778    #[inline]
14779    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14780        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14781    }
14782    #[inline]
14783    pub fn for_token(&self) -> Option<SyntaxToken> {
14784        support::token(&self.syntax, SyntaxKind::FOR_KW)
14785    }
14786    #[inline]
14787    pub fn from_token(&self) -> Option<SyntaxToken> {
14788        support::token(&self.syntax, SyntaxKind::FROM_KW)
14789    }
14790    #[inline]
14791    pub fn grant_token(&self) -> Option<SyntaxToken> {
14792        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14793    }
14794    #[inline]
14795    pub fn on_token(&self) -> Option<SyntaxToken> {
14796        support::token(&self.syntax, SyntaxKind::ON_KW)
14797    }
14798    #[inline]
14799    pub fn option_token(&self) -> Option<SyntaxToken> {
14800        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14801    }
14802    #[inline]
14803    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14804        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14805    }
14806    #[inline]
14807    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14808        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14809    }
14810}
14811
14812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14813pub struct Role {
14814    pub(crate) syntax: SyntaxNode,
14815}
14816impl Role {
14817    #[inline]
14818    pub fn name(&self) -> Option<Name> {
14819        support::child(&self.syntax)
14820    }
14821    #[inline]
14822    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14823        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14824    }
14825    #[inline]
14826    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14827        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14828    }
14829    #[inline]
14830    pub fn group_token(&self) -> Option<SyntaxToken> {
14831        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14832    }
14833    #[inline]
14834    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14835        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14836    }
14837}
14838
14839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14840pub struct RoleOption {
14841    pub(crate) syntax: SyntaxNode,
14842}
14843impl RoleOption {
14844    #[inline]
14845    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14846        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14847    }
14848}
14849
14850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14851pub struct RoleOptionList {
14852    pub(crate) syntax: SyntaxNode,
14853}
14854impl RoleOptionList {
14855    #[inline]
14856    pub fn role_options(&self) -> AstChildren<RoleOption> {
14857        support::children(&self.syntax)
14858    }
14859    #[inline]
14860    pub fn with_token(&self) -> Option<SyntaxToken> {
14861        support::token(&self.syntax, SyntaxKind::WITH_KW)
14862    }
14863}
14864
14865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14866pub struct RoleRef {
14867    pub(crate) syntax: SyntaxNode,
14868}
14869impl RoleRef {
14870    #[inline]
14871    pub fn name_ref(&self) -> Option<NameRef> {
14872        support::child(&self.syntax)
14873    }
14874    #[inline]
14875    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14876        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14877    }
14878    #[inline]
14879    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14880        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14881    }
14882    #[inline]
14883    pub fn group_token(&self) -> Option<SyntaxToken> {
14884        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14885    }
14886    #[inline]
14887    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14888        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14889    }
14890}
14891
14892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14893pub struct RoleRefList {
14894    pub(crate) syntax: SyntaxNode,
14895}
14896impl RoleRefList {
14897    #[inline]
14898    pub fn role_refs(&self) -> AstChildren<RoleRef> {
14899        support::children(&self.syntax)
14900    }
14901}
14902
14903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14904pub struct Rollback {
14905    pub(crate) syntax: SyntaxNode,
14906}
14907impl Rollback {
14908    #[inline]
14909    pub fn literal(&self) -> Option<Literal> {
14910        support::child(&self.syntax)
14911    }
14912    #[inline]
14913    pub fn name_ref(&self) -> Option<NameRef> {
14914        support::child(&self.syntax)
14915    }
14916    #[inline]
14917    pub fn abort_token(&self) -> Option<SyntaxToken> {
14918        support::token(&self.syntax, SyntaxKind::ABORT_KW)
14919    }
14920    #[inline]
14921    pub fn and_token(&self) -> Option<SyntaxToken> {
14922        support::token(&self.syntax, SyntaxKind::AND_KW)
14923    }
14924    #[inline]
14925    pub fn chain_token(&self) -> Option<SyntaxToken> {
14926        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
14927    }
14928    #[inline]
14929    pub fn no_token(&self) -> Option<SyntaxToken> {
14930        support::token(&self.syntax, SyntaxKind::NO_KW)
14931    }
14932    #[inline]
14933    pub fn prepared_token(&self) -> Option<SyntaxToken> {
14934        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
14935    }
14936    #[inline]
14937    pub fn rollback_token(&self) -> Option<SyntaxToken> {
14938        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
14939    }
14940    #[inline]
14941    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14942        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14943    }
14944    #[inline]
14945    pub fn to_token(&self) -> Option<SyntaxToken> {
14946        support::token(&self.syntax, SyntaxKind::TO_KW)
14947    }
14948    #[inline]
14949    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14950        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14951    }
14952    #[inline]
14953    pub fn work_token(&self) -> Option<SyntaxToken> {
14954        support::token(&self.syntax, SyntaxKind::WORK_KW)
14955    }
14956}
14957
14958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14959pub struct Row {
14960    pub(crate) syntax: SyntaxNode,
14961}
14962impl Row {
14963    #[inline]
14964    pub fn exprs(&self) -> AstChildren<Expr> {
14965        support::children(&self.syntax)
14966    }
14967}
14968
14969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14970pub struct RowList {
14971    pub(crate) syntax: SyntaxNode,
14972}
14973impl RowList {
14974    #[inline]
14975    pub fn rows(&self) -> AstChildren<Row> {
14976        support::children(&self.syntax)
14977    }
14978}
14979
14980#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14981pub struct RowsFuncOption {
14982    pub(crate) syntax: SyntaxNode,
14983}
14984impl RowsFuncOption {
14985    #[inline]
14986    pub fn rows_token(&self) -> Option<SyntaxToken> {
14987        support::token(&self.syntax, SyntaxKind::ROWS_KW)
14988    }
14989}
14990
14991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14992pub struct Savepoint {
14993    pub(crate) syntax: SyntaxNode,
14994}
14995impl Savepoint {
14996    #[inline]
14997    pub fn name(&self) -> Option<Name> {
14998        support::child(&self.syntax)
14999    }
15000    #[inline]
15001    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15002        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15003    }
15004}
15005
15006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15007pub struct SecurityFuncOption {
15008    pub(crate) syntax: SyntaxNode,
15009}
15010impl SecurityFuncOption {
15011    #[inline]
15012    pub fn definer_token(&self) -> Option<SyntaxToken> {
15013        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15014    }
15015    #[inline]
15016    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15017        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15018    }
15019    #[inline]
15020    pub fn security_token(&self) -> Option<SyntaxToken> {
15021        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15022    }
15023}
15024
15025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15026pub struct SecurityLabel {
15027    pub(crate) syntax: SyntaxNode,
15028}
15029impl SecurityLabel {
15030    #[inline]
15031    pub fn aggregate(&self) -> Option<Aggregate> {
15032        support::child(&self.syntax)
15033    }
15034    #[inline]
15035    pub fn for_provider(&self) -> Option<ForProvider> {
15036        support::child(&self.syntax)
15037    }
15038    #[inline]
15039    pub fn function_sig(&self) -> Option<FunctionSig> {
15040        support::child(&self.syntax)
15041    }
15042    #[inline]
15043    pub fn literal(&self) -> Option<Literal> {
15044        support::child(&self.syntax)
15045    }
15046    #[inline]
15047    pub fn path(&self) -> Option<Path> {
15048        support::child(&self.syntax)
15049    }
15050    #[inline]
15051    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15052        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15053    }
15054    #[inline]
15055    pub fn column_token(&self) -> Option<SyntaxToken> {
15056        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15057    }
15058    #[inline]
15059    pub fn database_token(&self) -> Option<SyntaxToken> {
15060        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15061    }
15062    #[inline]
15063    pub fn domain_token(&self) -> Option<SyntaxToken> {
15064        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15065    }
15066    #[inline]
15067    pub fn event_token(&self) -> Option<SyntaxToken> {
15068        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15069    }
15070    #[inline]
15071    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15072        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15073    }
15074    #[inline]
15075    pub fn function_token(&self) -> Option<SyntaxToken> {
15076        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15077    }
15078    #[inline]
15079    pub fn is_token(&self) -> Option<SyntaxToken> {
15080        support::token(&self.syntax, SyntaxKind::IS_KW)
15081    }
15082    #[inline]
15083    pub fn label_token(&self) -> Option<SyntaxToken> {
15084        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15085    }
15086    #[inline]
15087    pub fn language_token(&self) -> Option<SyntaxToken> {
15088        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15089    }
15090    #[inline]
15091    pub fn large_token(&self) -> Option<SyntaxToken> {
15092        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15093    }
15094    #[inline]
15095    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15096        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15097    }
15098    #[inline]
15099    pub fn null_token(&self) -> Option<SyntaxToken> {
15100        support::token(&self.syntax, SyntaxKind::NULL_KW)
15101    }
15102    #[inline]
15103    pub fn object_token(&self) -> Option<SyntaxToken> {
15104        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15105    }
15106    #[inline]
15107    pub fn on_token(&self) -> Option<SyntaxToken> {
15108        support::token(&self.syntax, SyntaxKind::ON_KW)
15109    }
15110    #[inline]
15111    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15112        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15113    }
15114    #[inline]
15115    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15116        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15117    }
15118    #[inline]
15119    pub fn publication_token(&self) -> Option<SyntaxToken> {
15120        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15121    }
15122    #[inline]
15123    pub fn role_token(&self) -> Option<SyntaxToken> {
15124        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15125    }
15126    #[inline]
15127    pub fn routine_token(&self) -> Option<SyntaxToken> {
15128        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15129    }
15130    #[inline]
15131    pub fn schema_token(&self) -> Option<SyntaxToken> {
15132        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15133    }
15134    #[inline]
15135    pub fn security_token(&self) -> Option<SyntaxToken> {
15136        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15137    }
15138    #[inline]
15139    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15140        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15141    }
15142    #[inline]
15143    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15144        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15145    }
15146    #[inline]
15147    pub fn table_token(&self) -> Option<SyntaxToken> {
15148        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15149    }
15150    #[inline]
15151    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15152        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15153    }
15154    #[inline]
15155    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15156        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15157    }
15158    #[inline]
15159    pub fn type_token(&self) -> Option<SyntaxToken> {
15160        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15161    }
15162    #[inline]
15163    pub fn view_token(&self) -> Option<SyntaxToken> {
15164        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15165    }
15166}
15167
15168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15169pub struct Select {
15170    pub(crate) syntax: SyntaxNode,
15171}
15172impl Select {
15173    #[inline]
15174    pub fn fetch_clause(&self) -> Option<FetchClause> {
15175        support::child(&self.syntax)
15176    }
15177    #[inline]
15178    pub fn filter_clause(&self) -> Option<FilterClause> {
15179        support::child(&self.syntax)
15180    }
15181    #[inline]
15182    pub fn from_clause(&self) -> Option<FromClause> {
15183        support::child(&self.syntax)
15184    }
15185    #[inline]
15186    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15187        support::child(&self.syntax)
15188    }
15189    #[inline]
15190    pub fn having_clause(&self) -> Option<HavingClause> {
15191        support::child(&self.syntax)
15192    }
15193    #[inline]
15194    pub fn limit_clause(&self) -> Option<LimitClause> {
15195        support::child(&self.syntax)
15196    }
15197    #[inline]
15198    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15199        support::children(&self.syntax)
15200    }
15201    #[inline]
15202    pub fn offset_clause(&self) -> Option<OffsetClause> {
15203        support::child(&self.syntax)
15204    }
15205    #[inline]
15206    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15207        support::child(&self.syntax)
15208    }
15209    #[inline]
15210    pub fn select_clause(&self) -> Option<SelectClause> {
15211        support::child(&self.syntax)
15212    }
15213    #[inline]
15214    pub fn where_clause(&self) -> Option<WhereClause> {
15215        support::child(&self.syntax)
15216    }
15217    #[inline]
15218    pub fn window_clause(&self) -> Option<WindowClause> {
15219        support::child(&self.syntax)
15220    }
15221    #[inline]
15222    pub fn with_clause(&self) -> Option<WithClause> {
15223        support::child(&self.syntax)
15224    }
15225}
15226
15227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15228pub struct SelectClause {
15229    pub(crate) syntax: SyntaxNode,
15230}
15231impl SelectClause {
15232    #[inline]
15233    pub fn distinct_clause(&self) -> Option<DistinctClause> {
15234        support::child(&self.syntax)
15235    }
15236    #[inline]
15237    pub fn target_list(&self) -> Option<TargetList> {
15238        support::child(&self.syntax)
15239    }
15240    #[inline]
15241    pub fn all_token(&self) -> Option<SyntaxToken> {
15242        support::token(&self.syntax, SyntaxKind::ALL_KW)
15243    }
15244    #[inline]
15245    pub fn select_token(&self) -> Option<SyntaxToken> {
15246        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15247    }
15248}
15249
15250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15251pub struct SelectInto {
15252    pub(crate) syntax: SyntaxNode,
15253}
15254impl SelectInto {
15255    #[inline]
15256    pub fn filter_clause(&self) -> Option<FilterClause> {
15257        support::child(&self.syntax)
15258    }
15259    #[inline]
15260    pub fn from_clause(&self) -> Option<FromClause> {
15261        support::child(&self.syntax)
15262    }
15263    #[inline]
15264    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15265        support::child(&self.syntax)
15266    }
15267    #[inline]
15268    pub fn having_clause(&self) -> Option<HavingClause> {
15269        support::child(&self.syntax)
15270    }
15271    #[inline]
15272    pub fn into_clause(&self) -> Option<IntoClause> {
15273        support::child(&self.syntax)
15274    }
15275    #[inline]
15276    pub fn limit_clause(&self) -> Option<LimitClause> {
15277        support::child(&self.syntax)
15278    }
15279    #[inline]
15280    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15281        support::children(&self.syntax)
15282    }
15283    #[inline]
15284    pub fn offset_clause(&self) -> Option<OffsetClause> {
15285        support::child(&self.syntax)
15286    }
15287    #[inline]
15288    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15289        support::child(&self.syntax)
15290    }
15291    #[inline]
15292    pub fn select_clause(&self) -> Option<SelectClause> {
15293        support::child(&self.syntax)
15294    }
15295    #[inline]
15296    pub fn where_clause(&self) -> Option<WhereClause> {
15297        support::child(&self.syntax)
15298    }
15299    #[inline]
15300    pub fn window_clause(&self) -> Option<WindowClause> {
15301        support::child(&self.syntax)
15302    }
15303    #[inline]
15304    pub fn with_clause(&self) -> Option<WithClause> {
15305        support::child(&self.syntax)
15306    }
15307}
15308
15309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15310pub struct SequenceOption {
15311    pub(crate) syntax: SyntaxNode,
15312}
15313impl SequenceOption {
15314    #[inline]
15315    pub fn literal(&self) -> Option<Literal> {
15316        support::child(&self.syntax)
15317    }
15318    #[inline]
15319    pub fn name_ref(&self) -> Option<NameRef> {
15320        support::child(&self.syntax)
15321    }
15322    #[inline]
15323    pub fn path(&self) -> Option<Path> {
15324        support::child(&self.syntax)
15325    }
15326    #[inline]
15327    pub fn ty(&self) -> Option<Type> {
15328        support::child(&self.syntax)
15329    }
15330    #[inline]
15331    pub fn as_token(&self) -> Option<SyntaxToken> {
15332        support::token(&self.syntax, SyntaxKind::AS_KW)
15333    }
15334    #[inline]
15335    pub fn by_token(&self) -> Option<SyntaxToken> {
15336        support::token(&self.syntax, SyntaxKind::BY_KW)
15337    }
15338    #[inline]
15339    pub fn cycle_token(&self) -> Option<SyntaxToken> {
15340        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
15341    }
15342    #[inline]
15343    pub fn increment_token(&self) -> Option<SyntaxToken> {
15344        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
15345    }
15346    #[inline]
15347    pub fn logged_token(&self) -> Option<SyntaxToken> {
15348        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15349    }
15350    #[inline]
15351    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
15352        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
15353    }
15354    #[inline]
15355    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
15356        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
15357    }
15358    #[inline]
15359    pub fn name_token(&self) -> Option<SyntaxToken> {
15360        support::token(&self.syntax, SyntaxKind::NAME_KW)
15361    }
15362    #[inline]
15363    pub fn no_token(&self) -> Option<SyntaxToken> {
15364        support::token(&self.syntax, SyntaxKind::NO_KW)
15365    }
15366    #[inline]
15367    pub fn none_token(&self) -> Option<SyntaxToken> {
15368        support::token(&self.syntax, SyntaxKind::NONE_KW)
15369    }
15370    #[inline]
15371    pub fn owned_token(&self) -> Option<SyntaxToken> {
15372        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15373    }
15374    #[inline]
15375    pub fn restart_token(&self) -> Option<SyntaxToken> {
15376        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15377    }
15378    #[inline]
15379    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15380        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15381    }
15382    #[inline]
15383    pub fn start_token(&self) -> Option<SyntaxToken> {
15384        support::token(&self.syntax, SyntaxKind::START_KW)
15385    }
15386    #[inline]
15387    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
15388        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
15389    }
15390    #[inline]
15391    pub fn with_token(&self) -> Option<SyntaxToken> {
15392        support::token(&self.syntax, SyntaxKind::WITH_KW)
15393    }
15394}
15395
15396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15397pub struct SequenceOptionList {
15398    pub(crate) syntax: SyntaxNode,
15399}
15400impl SequenceOptionList {
15401    #[inline]
15402    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
15403        support::children(&self.syntax)
15404    }
15405    #[inline]
15406    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15407        support::token(&self.syntax, SyntaxKind::L_PAREN)
15408    }
15409    #[inline]
15410    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15411        support::token(&self.syntax, SyntaxKind::R_PAREN)
15412    }
15413}
15414
15415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15416pub struct Serializable {
15417    pub(crate) syntax: SyntaxNode,
15418}
15419impl Serializable {
15420    #[inline]
15421    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15422        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15423    }
15424    #[inline]
15425    pub fn level_token(&self) -> Option<SyntaxToken> {
15426        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15427    }
15428    #[inline]
15429    pub fn serializable_token(&self) -> Option<SyntaxToken> {
15430        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
15431    }
15432}
15433
15434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15435pub struct ServerName {
15436    pub(crate) syntax: SyntaxNode,
15437}
15438impl ServerName {
15439    #[inline]
15440    pub fn name_ref(&self) -> Option<NameRef> {
15441        support::child(&self.syntax)
15442    }
15443    #[inline]
15444    pub fn server_token(&self) -> Option<SyntaxToken> {
15445        support::token(&self.syntax, SyntaxKind::SERVER_KW)
15446    }
15447}
15448
15449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15450pub struct Set {
15451    pub(crate) syntax: SyntaxNode,
15452}
15453impl Set {
15454    #[inline]
15455    pub fn config_value(&self) -> Option<ConfigValue> {
15456        support::child(&self.syntax)
15457    }
15458    #[inline]
15459    pub fn config_values(&self) -> AstChildren<ConfigValue> {
15460        support::children(&self.syntax)
15461    }
15462    #[inline]
15463    pub fn literal(&self) -> Option<Literal> {
15464        support::child(&self.syntax)
15465    }
15466    #[inline]
15467    pub fn path(&self) -> Option<Path> {
15468        support::child(&self.syntax)
15469    }
15470    #[inline]
15471    pub fn eq_token(&self) -> Option<SyntaxToken> {
15472        support::token(&self.syntax, SyntaxKind::EQ)
15473    }
15474    #[inline]
15475    pub fn catalog_token(&self) -> Option<SyntaxToken> {
15476        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
15477    }
15478    #[inline]
15479    pub fn content_token(&self) -> Option<SyntaxToken> {
15480        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15481    }
15482    #[inline]
15483    pub fn current_token(&self) -> Option<SyntaxToken> {
15484        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15485    }
15486    #[inline]
15487    pub fn default_token(&self) -> Option<SyntaxToken> {
15488        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15489    }
15490    #[inline]
15491    pub fn document_token(&self) -> Option<SyntaxToken> {
15492        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15493    }
15494    #[inline]
15495    pub fn from_token(&self) -> Option<SyntaxToken> {
15496        support::token(&self.syntax, SyntaxKind::FROM_KW)
15497    }
15498    #[inline]
15499    pub fn local_token(&self) -> Option<SyntaxToken> {
15500        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15501    }
15502    #[inline]
15503    pub fn option_token(&self) -> Option<SyntaxToken> {
15504        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15505    }
15506    #[inline]
15507    pub fn schema_token(&self) -> Option<SyntaxToken> {
15508        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15509    }
15510    #[inline]
15511    pub fn session_token(&self) -> Option<SyntaxToken> {
15512        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15513    }
15514    #[inline]
15515    pub fn set_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::SET_KW)
15517    }
15518    #[inline]
15519    pub fn time_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::TIME_KW)
15521    }
15522    #[inline]
15523    pub fn to_token(&self) -> Option<SyntaxToken> {
15524        support::token(&self.syntax, SyntaxKind::TO_KW)
15525    }
15526    #[inline]
15527    pub fn xml_token(&self) -> Option<SyntaxToken> {
15528        support::token(&self.syntax, SyntaxKind::XML_KW)
15529    }
15530    #[inline]
15531    pub fn zone_token(&self) -> Option<SyntaxToken> {
15532        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15533    }
15534}
15535
15536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15537pub struct SetAccessMethod {
15538    pub(crate) syntax: SyntaxNode,
15539}
15540impl SetAccessMethod {
15541    #[inline]
15542    pub fn name_ref(&self) -> Option<NameRef> {
15543        support::child(&self.syntax)
15544    }
15545    #[inline]
15546    pub fn access_token(&self) -> Option<SyntaxToken> {
15547        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
15548    }
15549    #[inline]
15550    pub fn method_token(&self) -> Option<SyntaxToken> {
15551        support::token(&self.syntax, SyntaxKind::METHOD_KW)
15552    }
15553    #[inline]
15554    pub fn set_token(&self) -> Option<SyntaxToken> {
15555        support::token(&self.syntax, SyntaxKind::SET_KW)
15556    }
15557}
15558
15559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15560pub struct SetClause {
15561    pub(crate) syntax: SyntaxNode,
15562}
15563impl SetClause {
15564    #[inline]
15565    pub fn set_column_list(&self) -> Option<SetColumnList> {
15566        support::child(&self.syntax)
15567    }
15568    #[inline]
15569    pub fn set_token(&self) -> Option<SyntaxToken> {
15570        support::token(&self.syntax, SyntaxKind::SET_KW)
15571    }
15572}
15573
15574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15575pub struct SetColumnList {
15576    pub(crate) syntax: SyntaxNode,
15577}
15578impl SetColumnList {
15579    #[inline]
15580    pub fn set_columns(&self) -> AstChildren<SetColumn> {
15581        support::children(&self.syntax)
15582    }
15583}
15584
15585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15586pub struct SetCompression {
15587    pub(crate) syntax: SyntaxNode,
15588}
15589impl SetCompression {
15590    #[inline]
15591    pub fn compression_token(&self) -> Option<SyntaxToken> {
15592        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
15593    }
15594    #[inline]
15595    pub fn set_token(&self) -> Option<SyntaxToken> {
15596        support::token(&self.syntax, SyntaxKind::SET_KW)
15597    }
15598}
15599
15600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15601pub struct SetConfigParam {
15602    pub(crate) syntax: SyntaxNode,
15603}
15604impl SetConfigParam {
15605    #[inline]
15606    pub fn path(&self) -> Option<Path> {
15607        support::child(&self.syntax)
15608    }
15609    #[inline]
15610    pub fn set_token(&self) -> Option<SyntaxToken> {
15611        support::token(&self.syntax, SyntaxKind::SET_KW)
15612    }
15613}
15614
15615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15616pub struct SetConstraints {
15617    pub(crate) syntax: SyntaxNode,
15618}
15619impl SetConstraints {
15620    #[inline]
15621    pub fn paths(&self) -> AstChildren<Path> {
15622        support::children(&self.syntax)
15623    }
15624    #[inline]
15625    pub fn all_token(&self) -> Option<SyntaxToken> {
15626        support::token(&self.syntax, SyntaxKind::ALL_KW)
15627    }
15628    #[inline]
15629    pub fn constraints_token(&self) -> Option<SyntaxToken> {
15630        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
15631    }
15632    #[inline]
15633    pub fn deferred_token(&self) -> Option<SyntaxToken> {
15634        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
15635    }
15636    #[inline]
15637    pub fn immediate_token(&self) -> Option<SyntaxToken> {
15638        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
15639    }
15640    #[inline]
15641    pub fn set_token(&self) -> Option<SyntaxToken> {
15642        support::token(&self.syntax, SyntaxKind::SET_KW)
15643    }
15644}
15645
15646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15647pub struct SetDefault {
15648    pub(crate) syntax: SyntaxNode,
15649}
15650impl SetDefault {
15651    #[inline]
15652    pub fn expr(&self) -> Option<Expr> {
15653        support::child(&self.syntax)
15654    }
15655    #[inline]
15656    pub fn default_token(&self) -> Option<SyntaxToken> {
15657        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15658    }
15659    #[inline]
15660    pub fn set_token(&self) -> Option<SyntaxToken> {
15661        support::token(&self.syntax, SyntaxKind::SET_KW)
15662    }
15663}
15664
15665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15666pub struct SetDefaultColumns {
15667    pub(crate) syntax: SyntaxNode,
15668}
15669impl SetDefaultColumns {
15670    #[inline]
15671    pub fn column_list(&self) -> Option<ColumnList> {
15672        support::child(&self.syntax)
15673    }
15674    #[inline]
15675    pub fn default_token(&self) -> Option<SyntaxToken> {
15676        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15677    }
15678    #[inline]
15679    pub fn set_token(&self) -> Option<SyntaxToken> {
15680        support::token(&self.syntax, SyntaxKind::SET_KW)
15681    }
15682}
15683
15684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15685pub struct SetExpr {
15686    pub(crate) syntax: SyntaxNode,
15687}
15688impl SetExpr {
15689    #[inline]
15690    pub fn expr(&self) -> Option<Expr> {
15691        support::child(&self.syntax)
15692    }
15693    #[inline]
15694    pub fn default_token(&self) -> Option<SyntaxToken> {
15695        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15696    }
15697}
15698
15699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15700pub struct SetExprList {
15701    pub(crate) syntax: SyntaxNode,
15702}
15703impl SetExprList {
15704    #[inline]
15705    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
15706        support::children(&self.syntax)
15707    }
15708    #[inline]
15709    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15710        support::token(&self.syntax, SyntaxKind::L_PAREN)
15711    }
15712    #[inline]
15713    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15714        support::token(&self.syntax, SyntaxKind::R_PAREN)
15715    }
15716    #[inline]
15717    pub fn row_token(&self) -> Option<SyntaxToken> {
15718        support::token(&self.syntax, SyntaxKind::ROW_KW)
15719    }
15720}
15721
15722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15723pub struct SetExpression {
15724    pub(crate) syntax: SyntaxNode,
15725}
15726impl SetExpression {
15727    #[inline]
15728    pub fn expr(&self) -> Option<Expr> {
15729        support::child(&self.syntax)
15730    }
15731    #[inline]
15732    pub fn expression_token(&self) -> Option<SyntaxToken> {
15733        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
15734    }
15735    #[inline]
15736    pub fn set_token(&self) -> Option<SyntaxToken> {
15737        support::token(&self.syntax, SyntaxKind::SET_KW)
15738    }
15739}
15740
15741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15742pub struct SetFuncOption {
15743    pub(crate) syntax: SyntaxNode,
15744}
15745impl SetFuncOption {
15746    #[inline]
15747    pub fn set_token(&self) -> Option<SyntaxToken> {
15748        support::token(&self.syntax, SyntaxKind::SET_KW)
15749    }
15750}
15751
15752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15753pub struct SetGenerated {
15754    pub(crate) syntax: SyntaxNode,
15755}
15756impl SetGenerated {
15757    #[inline]
15758    pub fn set_token(&self) -> Option<SyntaxToken> {
15759        support::token(&self.syntax, SyntaxKind::SET_KW)
15760    }
15761}
15762
15763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15764pub struct SetGeneratedOptions {
15765    pub(crate) syntax: SyntaxNode,
15766}
15767impl SetGeneratedOptions {
15768    #[inline]
15769    pub fn generated_token(&self) -> Option<SyntaxToken> {
15770        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
15771    }
15772    #[inline]
15773    pub fn set_token(&self) -> Option<SyntaxToken> {
15774        support::token(&self.syntax, SyntaxKind::SET_KW)
15775    }
15776}
15777
15778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15779pub struct SetLogged {
15780    pub(crate) syntax: SyntaxNode,
15781}
15782impl SetLogged {
15783    #[inline]
15784    pub fn logged_token(&self) -> Option<SyntaxToken> {
15785        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15786    }
15787    #[inline]
15788    pub fn set_token(&self) -> Option<SyntaxToken> {
15789        support::token(&self.syntax, SyntaxKind::SET_KW)
15790    }
15791}
15792
15793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15794pub struct SetMultipleColumns {
15795    pub(crate) syntax: SyntaxNode,
15796}
15797impl SetMultipleColumns {
15798    #[inline]
15799    pub fn column_list(&self) -> Option<ColumnList> {
15800        support::child(&self.syntax)
15801    }
15802    #[inline]
15803    pub fn paren_select(&self) -> Option<ParenSelect> {
15804        support::child(&self.syntax)
15805    }
15806    #[inline]
15807    pub fn set_expr_list(&self) -> Option<SetExprList> {
15808        support::child(&self.syntax)
15809    }
15810    #[inline]
15811    pub fn eq_token(&self) -> Option<SyntaxToken> {
15812        support::token(&self.syntax, SyntaxKind::EQ)
15813    }
15814}
15815
15816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15817pub struct SetNotNull {
15818    pub(crate) syntax: SyntaxNode,
15819}
15820impl SetNotNull {
15821    #[inline]
15822    pub fn not_token(&self) -> Option<SyntaxToken> {
15823        support::token(&self.syntax, SyntaxKind::NOT_KW)
15824    }
15825    #[inline]
15826    pub fn null_token(&self) -> Option<SyntaxToken> {
15827        support::token(&self.syntax, SyntaxKind::NULL_KW)
15828    }
15829    #[inline]
15830    pub fn set_token(&self) -> Option<SyntaxToken> {
15831        support::token(&self.syntax, SyntaxKind::SET_KW)
15832    }
15833}
15834
15835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15836pub struct SetNullColumns {
15837    pub(crate) syntax: SyntaxNode,
15838}
15839impl SetNullColumns {
15840    #[inline]
15841    pub fn column_list(&self) -> Option<ColumnList> {
15842        support::child(&self.syntax)
15843    }
15844    #[inline]
15845    pub fn null_token(&self) -> Option<SyntaxToken> {
15846        support::token(&self.syntax, SyntaxKind::NULL_KW)
15847    }
15848    #[inline]
15849    pub fn set_token(&self) -> Option<SyntaxToken> {
15850        support::token(&self.syntax, SyntaxKind::SET_KW)
15851    }
15852}
15853
15854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15855pub struct SetOptions {
15856    pub(crate) syntax: SyntaxNode,
15857}
15858impl SetOptions {
15859    #[inline]
15860    pub fn attribute_list(&self) -> Option<AttributeList> {
15861        support::child(&self.syntax)
15862    }
15863    #[inline]
15864    pub fn set_token(&self) -> Option<SyntaxToken> {
15865        support::token(&self.syntax, SyntaxKind::SET_KW)
15866    }
15867}
15868
15869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15870pub struct SetOptionsList {
15871    pub(crate) syntax: SyntaxNode,
15872}
15873impl SetOptionsList {
15874    #[inline]
15875    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
15876        support::child(&self.syntax)
15877    }
15878    #[inline]
15879    pub fn options_token(&self) -> Option<SyntaxToken> {
15880        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15881    }
15882    #[inline]
15883    pub fn set_token(&self) -> Option<SyntaxToken> {
15884        support::token(&self.syntax, SyntaxKind::SET_KW)
15885    }
15886}
15887
15888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15889pub struct SetRole {
15890    pub(crate) syntax: SyntaxNode,
15891}
15892impl SetRole {
15893    #[inline]
15894    pub fn role_ref(&self) -> Option<RoleRef> {
15895        support::child(&self.syntax)
15896    }
15897    #[inline]
15898    pub fn local_token(&self) -> Option<SyntaxToken> {
15899        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15900    }
15901    #[inline]
15902    pub fn none_token(&self) -> Option<SyntaxToken> {
15903        support::token(&self.syntax, SyntaxKind::NONE_KW)
15904    }
15905    #[inline]
15906    pub fn reset_token(&self) -> Option<SyntaxToken> {
15907        support::token(&self.syntax, SyntaxKind::RESET_KW)
15908    }
15909    #[inline]
15910    pub fn role_token(&self) -> Option<SyntaxToken> {
15911        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15912    }
15913    #[inline]
15914    pub fn session_token(&self) -> Option<SyntaxToken> {
15915        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15916    }
15917    #[inline]
15918    pub fn set_token(&self) -> Option<SyntaxToken> {
15919        support::token(&self.syntax, SyntaxKind::SET_KW)
15920    }
15921}
15922
15923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15924pub struct SetSchema {
15925    pub(crate) syntax: SyntaxNode,
15926}
15927impl SetSchema {
15928    #[inline]
15929    pub fn name_ref(&self) -> Option<NameRef> {
15930        support::child(&self.syntax)
15931    }
15932    #[inline]
15933    pub fn schema_token(&self) -> Option<SyntaxToken> {
15934        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15935    }
15936    #[inline]
15937    pub fn set_token(&self) -> Option<SyntaxToken> {
15938        support::token(&self.syntax, SyntaxKind::SET_KW)
15939    }
15940}
15941
15942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15943pub struct SetSequenceOption {
15944    pub(crate) syntax: SyntaxNode,
15945}
15946impl SetSequenceOption {
15947    #[inline]
15948    pub fn set_token(&self) -> Option<SyntaxToken> {
15949        support::token(&self.syntax, SyntaxKind::SET_KW)
15950    }
15951}
15952
15953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15954pub struct SetSessionAuth {
15955    pub(crate) syntax: SyntaxNode,
15956}
15957impl SetSessionAuth {
15958    #[inline]
15959    pub fn literal(&self) -> Option<Literal> {
15960        support::child(&self.syntax)
15961    }
15962    #[inline]
15963    pub fn role_ref(&self) -> Option<RoleRef> {
15964        support::child(&self.syntax)
15965    }
15966    #[inline]
15967    pub fn authorization_token(&self) -> Option<SyntaxToken> {
15968        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
15969    }
15970    #[inline]
15971    pub fn default_token(&self) -> Option<SyntaxToken> {
15972        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15973    }
15974    #[inline]
15975    pub fn local_token(&self) -> Option<SyntaxToken> {
15976        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15977    }
15978    #[inline]
15979    pub fn session_token(&self) -> Option<SyntaxToken> {
15980        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15981    }
15982    #[inline]
15983    pub fn set_token(&self) -> Option<SyntaxToken> {
15984        support::token(&self.syntax, SyntaxKind::SET_KW)
15985    }
15986}
15987
15988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15989pub struct SetSingleColumn {
15990    pub(crate) syntax: SyntaxNode,
15991}
15992impl SetSingleColumn {
15993    #[inline]
15994    pub fn column(&self) -> Option<Column> {
15995        support::child(&self.syntax)
15996    }
15997    #[inline]
15998    pub fn set_expr(&self) -> Option<SetExpr> {
15999        support::child(&self.syntax)
16000    }
16001    #[inline]
16002    pub fn eq_token(&self) -> Option<SyntaxToken> {
16003        support::token(&self.syntax, SyntaxKind::EQ)
16004    }
16005}
16006
16007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16008pub struct SetStatistics {
16009    pub(crate) syntax: SyntaxNode,
16010}
16011impl SetStatistics {
16012    #[inline]
16013    pub fn set_token(&self) -> Option<SyntaxToken> {
16014        support::token(&self.syntax, SyntaxKind::SET_KW)
16015    }
16016    #[inline]
16017    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16018        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16019    }
16020}
16021
16022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16023pub struct SetStorage {
16024    pub(crate) syntax: SyntaxNode,
16025}
16026impl SetStorage {
16027    #[inline]
16028    pub fn set_token(&self) -> Option<SyntaxToken> {
16029        support::token(&self.syntax, SyntaxKind::SET_KW)
16030    }
16031    #[inline]
16032    pub fn storage_token(&self) -> Option<SyntaxToken> {
16033        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16034    }
16035}
16036
16037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16038pub struct SetTablespace {
16039    pub(crate) syntax: SyntaxNode,
16040}
16041impl SetTablespace {
16042    #[inline]
16043    pub fn path(&self) -> Option<Path> {
16044        support::child(&self.syntax)
16045    }
16046    #[inline]
16047    pub fn set_token(&self) -> Option<SyntaxToken> {
16048        support::token(&self.syntax, SyntaxKind::SET_KW)
16049    }
16050    #[inline]
16051    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16052        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16053    }
16054}
16055
16056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16057pub struct SetTransaction {
16058    pub(crate) syntax: SyntaxNode,
16059}
16060impl SetTransaction {
16061    #[inline]
16062    pub fn literal(&self) -> Option<Literal> {
16063        support::child(&self.syntax)
16064    }
16065    #[inline]
16066    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16067        support::child(&self.syntax)
16068    }
16069    #[inline]
16070    pub fn as_token(&self) -> Option<SyntaxToken> {
16071        support::token(&self.syntax, SyntaxKind::AS_KW)
16072    }
16073    #[inline]
16074    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16075        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16076    }
16077    #[inline]
16078    pub fn session_token(&self) -> Option<SyntaxToken> {
16079        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16080    }
16081    #[inline]
16082    pub fn set_token(&self) -> Option<SyntaxToken> {
16083        support::token(&self.syntax, SyntaxKind::SET_KW)
16084    }
16085    #[inline]
16086    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16087        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16088    }
16089    #[inline]
16090    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16091        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16092    }
16093}
16094
16095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16096pub struct SetType {
16097    pub(crate) syntax: SyntaxNode,
16098}
16099impl SetType {
16100    #[inline]
16101    pub fn collate(&self) -> Option<Collate> {
16102        support::child(&self.syntax)
16103    }
16104    #[inline]
16105    pub fn ty(&self) -> Option<Type> {
16106        support::child(&self.syntax)
16107    }
16108    #[inline]
16109    pub fn set_token(&self) -> Option<SyntaxToken> {
16110        support::token(&self.syntax, SyntaxKind::SET_KW)
16111    }
16112    #[inline]
16113    pub fn type_token(&self) -> Option<SyntaxToken> {
16114        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16115    }
16116}
16117
16118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16119pub struct SetUnlogged {
16120    pub(crate) syntax: SyntaxNode,
16121}
16122impl SetUnlogged {
16123    #[inline]
16124    pub fn set_token(&self) -> Option<SyntaxToken> {
16125        support::token(&self.syntax, SyntaxKind::SET_KW)
16126    }
16127    #[inline]
16128    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16129        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16130    }
16131}
16132
16133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16134pub struct SetWithoutCluster {
16135    pub(crate) syntax: SyntaxNode,
16136}
16137impl SetWithoutCluster {
16138    #[inline]
16139    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16140        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16141    }
16142    #[inline]
16143    pub fn set_token(&self) -> Option<SyntaxToken> {
16144        support::token(&self.syntax, SyntaxKind::SET_KW)
16145    }
16146    #[inline]
16147    pub fn without_token(&self) -> Option<SyntaxToken> {
16148        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16149    }
16150}
16151
16152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16153pub struct SetWithoutOids {
16154    pub(crate) syntax: SyntaxNode,
16155}
16156impl SetWithoutOids {
16157    #[inline]
16158    pub fn oids_token(&self) -> Option<SyntaxToken> {
16159        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16160    }
16161    #[inline]
16162    pub fn set_token(&self) -> Option<SyntaxToken> {
16163        support::token(&self.syntax, SyntaxKind::SET_KW)
16164    }
16165    #[inline]
16166    pub fn without_token(&self) -> Option<SyntaxToken> {
16167        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16168    }
16169}
16170
16171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16172pub struct Show {
16173    pub(crate) syntax: SyntaxNode,
16174}
16175impl Show {
16176    #[inline]
16177    pub fn show_token(&self) -> Option<SyntaxToken> {
16178        support::token(&self.syntax, SyntaxKind::SHOW_KW)
16179    }
16180}
16181
16182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16183pub struct SimilarTo {
16184    pub(crate) syntax: SyntaxNode,
16185}
16186impl SimilarTo {
16187    #[inline]
16188    pub fn similar_token(&self) -> Option<SyntaxToken> {
16189        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16190    }
16191    #[inline]
16192    pub fn to_token(&self) -> Option<SyntaxToken> {
16193        support::token(&self.syntax, SyntaxKind::TO_KW)
16194    }
16195}
16196
16197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16198pub struct SliceExpr {
16199    pub(crate) syntax: SyntaxNode,
16200}
16201impl SliceExpr {
16202    #[inline]
16203    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
16204        support::token(&self.syntax, SyntaxKind::L_BRACK)
16205    }
16206    #[inline]
16207    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
16208        support::token(&self.syntax, SyntaxKind::R_BRACK)
16209    }
16210    #[inline]
16211    pub fn colon_token(&self) -> Option<SyntaxToken> {
16212        support::token(&self.syntax, SyntaxKind::COLON)
16213    }
16214}
16215
16216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16217pub struct SomeFn {
16218    pub(crate) syntax: SyntaxNode,
16219}
16220impl SomeFn {
16221    #[inline]
16222    pub fn expr(&self) -> Option<Expr> {
16223        support::child(&self.syntax)
16224    }
16225    #[inline]
16226    pub fn select_variant(&self) -> Option<SelectVariant> {
16227        support::child(&self.syntax)
16228    }
16229    #[inline]
16230    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16231        support::token(&self.syntax, SyntaxKind::L_PAREN)
16232    }
16233    #[inline]
16234    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16235        support::token(&self.syntax, SyntaxKind::R_PAREN)
16236    }
16237    #[inline]
16238    pub fn some_token(&self) -> Option<SyntaxToken> {
16239        support::token(&self.syntax, SyntaxKind::SOME_KW)
16240    }
16241}
16242
16243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16244pub struct SortAsc {
16245    pub(crate) syntax: SyntaxNode,
16246}
16247impl SortAsc {
16248    #[inline]
16249    pub fn asc_token(&self) -> Option<SyntaxToken> {
16250        support::token(&self.syntax, SyntaxKind::ASC_KW)
16251    }
16252}
16253
16254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16255pub struct SortBy {
16256    pub(crate) syntax: SyntaxNode,
16257}
16258impl SortBy {
16259    #[inline]
16260    pub fn expr(&self) -> Option<Expr> {
16261        support::child(&self.syntax)
16262    }
16263    #[inline]
16264    pub fn nulls_first(&self) -> Option<NullsFirst> {
16265        support::child(&self.syntax)
16266    }
16267    #[inline]
16268    pub fn nulls_last(&self) -> Option<NullsLast> {
16269        support::child(&self.syntax)
16270    }
16271    #[inline]
16272    pub fn sort_asc(&self) -> Option<SortAsc> {
16273        support::child(&self.syntax)
16274    }
16275    #[inline]
16276    pub fn sort_desc(&self) -> Option<SortDesc> {
16277        support::child(&self.syntax)
16278    }
16279    #[inline]
16280    pub fn sort_using(&self) -> Option<SortUsing> {
16281        support::child(&self.syntax)
16282    }
16283}
16284
16285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16286pub struct SortByList {
16287    pub(crate) syntax: SyntaxNode,
16288}
16289impl SortByList {
16290    #[inline]
16291    pub fn sort_bys(&self) -> AstChildren<SortBy> {
16292        support::children(&self.syntax)
16293    }
16294}
16295
16296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16297pub struct SortDesc {
16298    pub(crate) syntax: SyntaxNode,
16299}
16300impl SortDesc {
16301    #[inline]
16302    pub fn desc_token(&self) -> Option<SyntaxToken> {
16303        support::token(&self.syntax, SyntaxKind::DESC_KW)
16304    }
16305}
16306
16307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16308pub struct SortUsing {
16309    pub(crate) syntax: SyntaxNode,
16310}
16311impl SortUsing {
16312    #[inline]
16313    pub fn op(&self) -> Option<Op> {
16314        support::child(&self.syntax)
16315    }
16316    #[inline]
16317    pub fn using_token(&self) -> Option<SyntaxToken> {
16318        support::token(&self.syntax, SyntaxKind::USING_KW)
16319    }
16320}
16321
16322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16323pub struct SourceFile {
16324    pub(crate) syntax: SyntaxNode,
16325}
16326impl SourceFile {
16327    #[inline]
16328    pub fn stmts(&self) -> AstChildren<Stmt> {
16329        support::children(&self.syntax)
16330    }
16331}
16332
16333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16334pub struct SourceVertexTable {
16335    pub(crate) syntax: SyntaxNode,
16336}
16337impl SourceVertexTable {
16338    #[inline]
16339    pub fn column_list(&self) -> Option<ColumnList> {
16340        support::child(&self.syntax)
16341    }
16342    #[inline]
16343    pub fn name_ref(&self) -> Option<NameRef> {
16344        support::child(&self.syntax)
16345    }
16346    #[inline]
16347    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16348        support::token(&self.syntax, SyntaxKind::L_PAREN)
16349    }
16350    #[inline]
16351    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16352        support::token(&self.syntax, SyntaxKind::R_PAREN)
16353    }
16354    #[inline]
16355    pub fn key_token(&self) -> Option<SyntaxToken> {
16356        support::token(&self.syntax, SyntaxKind::KEY_KW)
16357    }
16358    #[inline]
16359    pub fn references_token(&self) -> Option<SyntaxToken> {
16360        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
16361    }
16362    #[inline]
16363    pub fn source_token(&self) -> Option<SyntaxToken> {
16364        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
16365    }
16366}
16367
16368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16369pub struct SplitPartition {
16370    pub(crate) syntax: SyntaxNode,
16371}
16372impl SplitPartition {
16373    #[inline]
16374    pub fn partition_list(&self) -> Option<PartitionList> {
16375        support::child(&self.syntax)
16376    }
16377    #[inline]
16378    pub fn into_token(&self) -> Option<SyntaxToken> {
16379        support::token(&self.syntax, SyntaxKind::INTO_KW)
16380    }
16381    #[inline]
16382    pub fn partition_token(&self) -> Option<SyntaxToken> {
16383        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16384    }
16385    #[inline]
16386    pub fn split_token(&self) -> Option<SyntaxToken> {
16387        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
16388    }
16389}
16390
16391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16392pub struct Storage {
16393    pub(crate) syntax: SyntaxNode,
16394}
16395impl Storage {
16396    #[inline]
16397    pub fn default_token(&self) -> Option<SyntaxToken> {
16398        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16399    }
16400    #[inline]
16401    pub fn external_token(&self) -> Option<SyntaxToken> {
16402        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
16403    }
16404    #[inline]
16405    pub fn ident_token(&self) -> Option<SyntaxToken> {
16406        support::token(&self.syntax, SyntaxKind::IDENT)
16407    }
16408    #[inline]
16409    pub fn storage_token(&self) -> Option<SyntaxToken> {
16410        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16411    }
16412}
16413
16414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16415pub struct StrictFuncOption {
16416    pub(crate) syntax: SyntaxNode,
16417}
16418impl StrictFuncOption {
16419    #[inline]
16420    pub fn called_token(&self) -> Option<SyntaxToken> {
16421        support::token(&self.syntax, SyntaxKind::CALLED_KW)
16422    }
16423    #[inline]
16424    pub fn input_token(&self) -> Option<SyntaxToken> {
16425        support::token(&self.syntax, SyntaxKind::INPUT_KW)
16426    }
16427    #[inline]
16428    pub fn null_token(&self) -> Option<SyntaxToken> {
16429        support::token(&self.syntax, SyntaxKind::NULL_KW)
16430    }
16431    #[inline]
16432    pub fn on_token(&self) -> Option<SyntaxToken> {
16433        support::token(&self.syntax, SyntaxKind::ON_KW)
16434    }
16435    #[inline]
16436    pub fn returns_token(&self) -> Option<SyntaxToken> {
16437        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
16438    }
16439    #[inline]
16440    pub fn strict_token(&self) -> Option<SyntaxToken> {
16441        support::token(&self.syntax, SyntaxKind::STRICT_KW)
16442    }
16443}
16444
16445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16446pub struct SubstringFn {
16447    pub(crate) syntax: SyntaxNode,
16448}
16449impl SubstringFn {
16450    #[inline]
16451    pub fn expr(&self) -> Option<Expr> {
16452        support::child(&self.syntax)
16453    }
16454    #[inline]
16455    pub fn exprs(&self) -> AstChildren<Expr> {
16456        support::children(&self.syntax)
16457    }
16458    #[inline]
16459    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16460        support::token(&self.syntax, SyntaxKind::L_PAREN)
16461    }
16462    #[inline]
16463    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16464        support::token(&self.syntax, SyntaxKind::R_PAREN)
16465    }
16466    #[inline]
16467    pub fn escape_token(&self) -> Option<SyntaxToken> {
16468        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
16469    }
16470    #[inline]
16471    pub fn for_token(&self) -> Option<SyntaxToken> {
16472        support::token(&self.syntax, SyntaxKind::FOR_KW)
16473    }
16474    #[inline]
16475    pub fn from_token(&self) -> Option<SyntaxToken> {
16476        support::token(&self.syntax, SyntaxKind::FROM_KW)
16477    }
16478    #[inline]
16479    pub fn similar_token(&self) -> Option<SyntaxToken> {
16480        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16481    }
16482    #[inline]
16483    pub fn substring_token(&self) -> Option<SyntaxToken> {
16484        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
16485    }
16486}
16487
16488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16489pub struct SupportFuncOption {
16490    pub(crate) syntax: SyntaxNode,
16491}
16492impl SupportFuncOption {
16493    #[inline]
16494    pub fn support_token(&self) -> Option<SyntaxToken> {
16495        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
16496    }
16497}
16498
16499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16500pub struct Table {
16501    pub(crate) syntax: SyntaxNode,
16502}
16503impl Table {
16504    #[inline]
16505    pub fn relation_name(&self) -> Option<RelationName> {
16506        support::child(&self.syntax)
16507    }
16508    #[inline]
16509    pub fn with_clause(&self) -> Option<WithClause> {
16510        support::child(&self.syntax)
16511    }
16512    #[inline]
16513    pub fn table_token(&self) -> Option<SyntaxToken> {
16514        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16515    }
16516}
16517
16518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16519pub struct TableAndColumns {
16520    pub(crate) syntax: SyntaxNode,
16521}
16522impl TableAndColumns {
16523    #[inline]
16524    pub fn column_list(&self) -> Option<ColumnList> {
16525        support::child(&self.syntax)
16526    }
16527    #[inline]
16528    pub fn relation_name(&self) -> Option<RelationName> {
16529        support::child(&self.syntax)
16530    }
16531}
16532
16533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16534pub struct TableAndColumnsList {
16535    pub(crate) syntax: SyntaxNode,
16536}
16537impl TableAndColumnsList {
16538    #[inline]
16539    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
16540        support::children(&self.syntax)
16541    }
16542}
16543
16544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16545pub struct TableArgList {
16546    pub(crate) syntax: SyntaxNode,
16547}
16548impl TableArgList {
16549    #[inline]
16550    pub fn args(&self) -> AstChildren<TableArg> {
16551        support::children(&self.syntax)
16552    }
16553    #[inline]
16554    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16555        support::token(&self.syntax, SyntaxKind::L_PAREN)
16556    }
16557    #[inline]
16558    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16559        support::token(&self.syntax, SyntaxKind::R_PAREN)
16560    }
16561}
16562
16563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16564pub struct TableList {
16565    pub(crate) syntax: SyntaxNode,
16566}
16567impl TableList {
16568    #[inline]
16569    pub fn relation_names(&self) -> AstChildren<RelationName> {
16570        support::children(&self.syntax)
16571    }
16572}
16573
16574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16575pub struct TablesampleClause {
16576    pub(crate) syntax: SyntaxNode,
16577}
16578impl TablesampleClause {
16579    #[inline]
16580    pub fn call_expr(&self) -> Option<CallExpr> {
16581        support::child(&self.syntax)
16582    }
16583    #[inline]
16584    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
16585        support::child(&self.syntax)
16586    }
16587    #[inline]
16588    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
16589        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
16590    }
16591}
16592
16593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16594pub struct Tablespace {
16595    pub(crate) syntax: SyntaxNode,
16596}
16597impl Tablespace {
16598    #[inline]
16599    pub fn name_ref(&self) -> Option<NameRef> {
16600        support::child(&self.syntax)
16601    }
16602    #[inline]
16603    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16604        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16605    }
16606}
16607
16608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16609pub struct Target {
16610    pub(crate) syntax: SyntaxNode,
16611}
16612impl Target {
16613    #[inline]
16614    pub fn as_name(&self) -> Option<AsName> {
16615        support::child(&self.syntax)
16616    }
16617    #[inline]
16618    pub fn expr(&self) -> Option<Expr> {
16619        support::child(&self.syntax)
16620    }
16621    #[inline]
16622    pub fn star_token(&self) -> Option<SyntaxToken> {
16623        support::token(&self.syntax, SyntaxKind::STAR)
16624    }
16625}
16626
16627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16628pub struct TargetList {
16629    pub(crate) syntax: SyntaxNode,
16630}
16631impl TargetList {
16632    #[inline]
16633    pub fn targets(&self) -> AstChildren<Target> {
16634        support::children(&self.syntax)
16635    }
16636}
16637
16638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16639pub struct Temp {
16640    pub(crate) syntax: SyntaxNode,
16641}
16642impl Temp {
16643    #[inline]
16644    pub fn global_token(&self) -> Option<SyntaxToken> {
16645        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
16646    }
16647    #[inline]
16648    pub fn local_token(&self) -> Option<SyntaxToken> {
16649        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16650    }
16651    #[inline]
16652    pub fn temp_token(&self) -> Option<SyntaxToken> {
16653        support::token(&self.syntax, SyntaxKind::TEMP_KW)
16654    }
16655    #[inline]
16656    pub fn temporary_token(&self) -> Option<SyntaxToken> {
16657        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
16658    }
16659}
16660
16661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16662pub struct TimeType {
16663    pub(crate) syntax: SyntaxNode,
16664}
16665impl TimeType {
16666    #[inline]
16667    pub fn literal(&self) -> Option<Literal> {
16668        support::child(&self.syntax)
16669    }
16670    #[inline]
16671    pub fn timezone(&self) -> Option<Timezone> {
16672        support::child(&self.syntax)
16673    }
16674    #[inline]
16675    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16676        support::token(&self.syntax, SyntaxKind::L_PAREN)
16677    }
16678    #[inline]
16679    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16680        support::token(&self.syntax, SyntaxKind::R_PAREN)
16681    }
16682    #[inline]
16683    pub fn setof_token(&self) -> Option<SyntaxToken> {
16684        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16685    }
16686    #[inline]
16687    pub fn time_token(&self) -> Option<SyntaxToken> {
16688        support::token(&self.syntax, SyntaxKind::TIME_KW)
16689    }
16690    #[inline]
16691    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
16692        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
16693    }
16694}
16695
16696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16697pub struct Timing {
16698    pub(crate) syntax: SyntaxNode,
16699}
16700impl Timing {
16701    #[inline]
16702    pub fn after_token(&self) -> Option<SyntaxToken> {
16703        support::token(&self.syntax, SyntaxKind::AFTER_KW)
16704    }
16705    #[inline]
16706    pub fn before_token(&self) -> Option<SyntaxToken> {
16707        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
16708    }
16709    #[inline]
16710    pub fn instead_token(&self) -> Option<SyntaxToken> {
16711        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
16712    }
16713    #[inline]
16714    pub fn of_token(&self) -> Option<SyntaxToken> {
16715        support::token(&self.syntax, SyntaxKind::OF_KW)
16716    }
16717}
16718
16719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16720pub struct TransactionModeList {
16721    pub(crate) syntax: SyntaxNode,
16722}
16723impl TransactionModeList {
16724    #[inline]
16725    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
16726        support::children(&self.syntax)
16727    }
16728}
16729
16730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16731pub struct TransformFromFunc {
16732    pub(crate) syntax: SyntaxNode,
16733}
16734impl TransformFromFunc {
16735    #[inline]
16736    pub fn function_sig(&self) -> Option<FunctionSig> {
16737        support::child(&self.syntax)
16738    }
16739    #[inline]
16740    pub fn from_token(&self) -> Option<SyntaxToken> {
16741        support::token(&self.syntax, SyntaxKind::FROM_KW)
16742    }
16743    #[inline]
16744    pub fn function_token(&self) -> Option<SyntaxToken> {
16745        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16746    }
16747    #[inline]
16748    pub fn sql_token(&self) -> Option<SyntaxToken> {
16749        support::token(&self.syntax, SyntaxKind::SQL_KW)
16750    }
16751    #[inline]
16752    pub fn with_token(&self) -> Option<SyntaxToken> {
16753        support::token(&self.syntax, SyntaxKind::WITH_KW)
16754    }
16755}
16756
16757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16758pub struct TransformFuncOption {
16759    pub(crate) syntax: SyntaxNode,
16760}
16761impl TransformFuncOption {
16762    #[inline]
16763    pub fn transform_token(&self) -> Option<SyntaxToken> {
16764        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
16765    }
16766}
16767
16768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16769pub struct TransformToFunc {
16770    pub(crate) syntax: SyntaxNode,
16771}
16772impl TransformToFunc {
16773    #[inline]
16774    pub fn function_sig(&self) -> Option<FunctionSig> {
16775        support::child(&self.syntax)
16776    }
16777    #[inline]
16778    pub fn function_token(&self) -> Option<SyntaxToken> {
16779        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16780    }
16781    #[inline]
16782    pub fn sql_token(&self) -> Option<SyntaxToken> {
16783        support::token(&self.syntax, SyntaxKind::SQL_KW)
16784    }
16785    #[inline]
16786    pub fn to_token(&self) -> Option<SyntaxToken> {
16787        support::token(&self.syntax, SyntaxKind::TO_KW)
16788    }
16789    #[inline]
16790    pub fn with_token(&self) -> Option<SyntaxToken> {
16791        support::token(&self.syntax, SyntaxKind::WITH_KW)
16792    }
16793}
16794
16795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16796pub struct TriggerEvent {
16797    pub(crate) syntax: SyntaxNode,
16798}
16799impl TriggerEvent {
16800    #[inline]
16801    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
16802        support::child(&self.syntax)
16803    }
16804    #[inline]
16805    pub fn delete_token(&self) -> Option<SyntaxToken> {
16806        support::token(&self.syntax, SyntaxKind::DELETE_KW)
16807    }
16808    #[inline]
16809    pub fn insert_token(&self) -> Option<SyntaxToken> {
16810        support::token(&self.syntax, SyntaxKind::INSERT_KW)
16811    }
16812    #[inline]
16813    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16814        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16815    }
16816}
16817
16818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16819pub struct TriggerEventList {
16820    pub(crate) syntax: SyntaxNode,
16821}
16822impl TriggerEventList {
16823    #[inline]
16824    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
16825        support::children(&self.syntax)
16826    }
16827}
16828
16829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16830pub struct TriggerEventUpdate {
16831    pub(crate) syntax: SyntaxNode,
16832}
16833impl TriggerEventUpdate {
16834    #[inline]
16835    pub fn name_refs(&self) -> AstChildren<NameRef> {
16836        support::children(&self.syntax)
16837    }
16838    #[inline]
16839    pub fn of_token(&self) -> Option<SyntaxToken> {
16840        support::token(&self.syntax, SyntaxKind::OF_KW)
16841    }
16842    #[inline]
16843    pub fn update_token(&self) -> Option<SyntaxToken> {
16844        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
16845    }
16846}
16847
16848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16849pub struct TrimFn {
16850    pub(crate) syntax: SyntaxNode,
16851}
16852impl TrimFn {
16853    #[inline]
16854    pub fn expr(&self) -> Option<Expr> {
16855        support::child(&self.syntax)
16856    }
16857    #[inline]
16858    pub fn exprs(&self) -> AstChildren<Expr> {
16859        support::children(&self.syntax)
16860    }
16861    #[inline]
16862    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16863        support::token(&self.syntax, SyntaxKind::L_PAREN)
16864    }
16865    #[inline]
16866    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16867        support::token(&self.syntax, SyntaxKind::R_PAREN)
16868    }
16869    #[inline]
16870    pub fn both_token(&self) -> Option<SyntaxToken> {
16871        support::token(&self.syntax, SyntaxKind::BOTH_KW)
16872    }
16873    #[inline]
16874    pub fn from_token(&self) -> Option<SyntaxToken> {
16875        support::token(&self.syntax, SyntaxKind::FROM_KW)
16876    }
16877    #[inline]
16878    pub fn leading_token(&self) -> Option<SyntaxToken> {
16879        support::token(&self.syntax, SyntaxKind::LEADING_KW)
16880    }
16881    #[inline]
16882    pub fn trailing_token(&self) -> Option<SyntaxToken> {
16883        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
16884    }
16885    #[inline]
16886    pub fn trim_token(&self) -> Option<SyntaxToken> {
16887        support::token(&self.syntax, SyntaxKind::TRIM_KW)
16888    }
16889}
16890
16891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16892pub struct Truncate {
16893    pub(crate) syntax: SyntaxNode,
16894}
16895impl Truncate {
16896    #[inline]
16897    pub fn table_list(&self) -> Option<TableList> {
16898        support::child(&self.syntax)
16899    }
16900    #[inline]
16901    pub fn cascade_token(&self) -> Option<SyntaxToken> {
16902        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
16903    }
16904    #[inline]
16905    pub fn continue_token(&self) -> Option<SyntaxToken> {
16906        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
16907    }
16908    #[inline]
16909    pub fn identity_token(&self) -> Option<SyntaxToken> {
16910        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
16911    }
16912    #[inline]
16913    pub fn restart_token(&self) -> Option<SyntaxToken> {
16914        support::token(&self.syntax, SyntaxKind::RESTART_KW)
16915    }
16916    #[inline]
16917    pub fn restrict_token(&self) -> Option<SyntaxToken> {
16918        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
16919    }
16920    #[inline]
16921    pub fn table_token(&self) -> Option<SyntaxToken> {
16922        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16923    }
16924    #[inline]
16925    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16926        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16927    }
16928}
16929
16930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16931pub struct TupleExpr {
16932    pub(crate) syntax: SyntaxNode,
16933}
16934impl TupleExpr {
16935    #[inline]
16936    pub fn exprs(&self) -> AstChildren<Expr> {
16937        support::children(&self.syntax)
16938    }
16939    #[inline]
16940    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16941        support::token(&self.syntax, SyntaxKind::L_PAREN)
16942    }
16943    #[inline]
16944    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16945        support::token(&self.syntax, SyntaxKind::R_PAREN)
16946    }
16947}
16948
16949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16950pub struct UnicodeNormalForm {
16951    pub(crate) syntax: SyntaxNode,
16952}
16953impl UnicodeNormalForm {
16954    #[inline]
16955    pub fn nfc_token(&self) -> Option<SyntaxToken> {
16956        support::token(&self.syntax, SyntaxKind::NFC_KW)
16957    }
16958    #[inline]
16959    pub fn nfd_token(&self) -> Option<SyntaxToken> {
16960        support::token(&self.syntax, SyntaxKind::NFD_KW)
16961    }
16962    #[inline]
16963    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
16964        support::token(&self.syntax, SyntaxKind::NFKC_KW)
16965    }
16966    #[inline]
16967    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
16968        support::token(&self.syntax, SyntaxKind::NFKD_KW)
16969    }
16970}
16971
16972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16973pub struct UniqueConstraint {
16974    pub(crate) syntax: SyntaxNode,
16975}
16976impl UniqueConstraint {
16977    #[inline]
16978    pub fn column_list(&self) -> Option<ColumnList> {
16979        support::child(&self.syntax)
16980    }
16981    #[inline]
16982    pub fn constraint_name(&self) -> Option<ConstraintName> {
16983        support::child(&self.syntax)
16984    }
16985    #[inline]
16986    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
16987        support::child(&self.syntax)
16988    }
16989    #[inline]
16990    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
16991        support::child(&self.syntax)
16992    }
16993    #[inline]
16994    pub fn using_index(&self) -> Option<UsingIndex> {
16995        support::child(&self.syntax)
16996    }
16997    #[inline]
16998    pub fn unique_token(&self) -> Option<SyntaxToken> {
16999        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17000    }
17001}
17002
17003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17004pub struct Unlisten {
17005    pub(crate) syntax: SyntaxNode,
17006}
17007impl Unlisten {
17008    #[inline]
17009    pub fn name_ref(&self) -> Option<NameRef> {
17010        support::child(&self.syntax)
17011    }
17012    #[inline]
17013    pub fn star_token(&self) -> Option<SyntaxToken> {
17014        support::token(&self.syntax, SyntaxKind::STAR)
17015    }
17016    #[inline]
17017    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17018        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17019    }
17020}
17021
17022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17023pub struct Unlogged {
17024    pub(crate) syntax: SyntaxNode,
17025}
17026impl Unlogged {
17027    #[inline]
17028    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17029        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17030    }
17031}
17032
17033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17034pub struct Update {
17035    pub(crate) syntax: SyntaxNode,
17036}
17037impl Update {
17038    #[inline]
17039    pub fn alias(&self) -> Option<Alias> {
17040        support::child(&self.syntax)
17041    }
17042    #[inline]
17043    pub fn from_clause(&self) -> Option<FromClause> {
17044        support::child(&self.syntax)
17045    }
17046    #[inline]
17047    pub fn relation_name(&self) -> Option<RelationName> {
17048        support::child(&self.syntax)
17049    }
17050    #[inline]
17051    pub fn returning_clause(&self) -> Option<ReturningClause> {
17052        support::child(&self.syntax)
17053    }
17054    #[inline]
17055    pub fn set_clause(&self) -> Option<SetClause> {
17056        support::child(&self.syntax)
17057    }
17058    #[inline]
17059    pub fn where_clause(&self) -> Option<WhereClause> {
17060        support::child(&self.syntax)
17061    }
17062    #[inline]
17063    pub fn with_clause(&self) -> Option<WithClause> {
17064        support::child(&self.syntax)
17065    }
17066    #[inline]
17067    pub fn update_token(&self) -> Option<SyntaxToken> {
17068        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17069    }
17070}
17071
17072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17073pub struct UsingClause {
17074    pub(crate) syntax: SyntaxNode,
17075}
17076impl UsingClause {
17077    #[inline]
17078    pub fn from_items(&self) -> AstChildren<FromItem> {
17079        support::children(&self.syntax)
17080    }
17081    #[inline]
17082    pub fn using_token(&self) -> Option<SyntaxToken> {
17083        support::token(&self.syntax, SyntaxKind::USING_KW)
17084    }
17085}
17086
17087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17088pub struct UsingExprClause {
17089    pub(crate) syntax: SyntaxNode,
17090}
17091impl UsingExprClause {
17092    #[inline]
17093    pub fn expr(&self) -> Option<Expr> {
17094        support::child(&self.syntax)
17095    }
17096    #[inline]
17097    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17098        support::token(&self.syntax, SyntaxKind::L_PAREN)
17099    }
17100    #[inline]
17101    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17102        support::token(&self.syntax, SyntaxKind::R_PAREN)
17103    }
17104    #[inline]
17105    pub fn using_token(&self) -> Option<SyntaxToken> {
17106        support::token(&self.syntax, SyntaxKind::USING_KW)
17107    }
17108}
17109
17110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17111pub struct UsingIndex {
17112    pub(crate) syntax: SyntaxNode,
17113}
17114impl UsingIndex {
17115    #[inline]
17116    pub fn name_ref(&self) -> Option<NameRef> {
17117        support::child(&self.syntax)
17118    }
17119    #[inline]
17120    pub fn index_token(&self) -> Option<SyntaxToken> {
17121        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17122    }
17123    #[inline]
17124    pub fn using_token(&self) -> Option<SyntaxToken> {
17125        support::token(&self.syntax, SyntaxKind::USING_KW)
17126    }
17127}
17128
17129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17130pub struct UsingMethod {
17131    pub(crate) syntax: SyntaxNode,
17132}
17133impl UsingMethod {
17134    #[inline]
17135    pub fn name_ref(&self) -> Option<NameRef> {
17136        support::child(&self.syntax)
17137    }
17138    #[inline]
17139    pub fn using_token(&self) -> Option<SyntaxToken> {
17140        support::token(&self.syntax, SyntaxKind::USING_KW)
17141    }
17142}
17143
17144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17145pub struct UsingOnClause {
17146    pub(crate) syntax: SyntaxNode,
17147}
17148impl UsingOnClause {
17149    #[inline]
17150    pub fn from_item(&self) -> Option<FromItem> {
17151        support::child(&self.syntax)
17152    }
17153    #[inline]
17154    pub fn on_clause(&self) -> Option<OnClause> {
17155        support::child(&self.syntax)
17156    }
17157    #[inline]
17158    pub fn using_token(&self) -> Option<SyntaxToken> {
17159        support::token(&self.syntax, SyntaxKind::USING_KW)
17160    }
17161}
17162
17163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17164pub struct Vacuum {
17165    pub(crate) syntax: SyntaxNode,
17166}
17167impl Vacuum {
17168    #[inline]
17169    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17170        support::child(&self.syntax)
17171    }
17172    #[inline]
17173    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
17174        support::child(&self.syntax)
17175    }
17176    #[inline]
17177    pub fn analyse_token(&self) -> Option<SyntaxToken> {
17178        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
17179    }
17180    #[inline]
17181    pub fn analyze_token(&self) -> Option<SyntaxToken> {
17182        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
17183    }
17184    #[inline]
17185    pub fn freeze_token(&self) -> Option<SyntaxToken> {
17186        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
17187    }
17188    #[inline]
17189    pub fn full_token(&self) -> Option<SyntaxToken> {
17190        support::token(&self.syntax, SyntaxKind::FULL_KW)
17191    }
17192    #[inline]
17193    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
17194        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
17195    }
17196    #[inline]
17197    pub fn verbose_token(&self) -> Option<SyntaxToken> {
17198        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
17199    }
17200}
17201
17202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17203pub struct VacuumOption {
17204    pub(crate) syntax: SyntaxNode,
17205}
17206impl VacuumOption {
17207    #[inline]
17208    pub fn literal(&self) -> Option<Literal> {
17209        support::child(&self.syntax)
17210    }
17211}
17212
17213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17214pub struct VacuumOptionList {
17215    pub(crate) syntax: SyntaxNode,
17216}
17217impl VacuumOptionList {
17218    #[inline]
17219    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
17220        support::children(&self.syntax)
17221    }
17222    #[inline]
17223    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17224        support::token(&self.syntax, SyntaxKind::L_PAREN)
17225    }
17226    #[inline]
17227    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17228        support::token(&self.syntax, SyntaxKind::R_PAREN)
17229    }
17230}
17231
17232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17233pub struct ValidateConstraint {
17234    pub(crate) syntax: SyntaxNode,
17235}
17236impl ValidateConstraint {
17237    #[inline]
17238    pub fn name_ref(&self) -> Option<NameRef> {
17239        support::child(&self.syntax)
17240    }
17241    #[inline]
17242    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17243        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17244    }
17245    #[inline]
17246    pub fn validate_token(&self) -> Option<SyntaxToken> {
17247        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
17248    }
17249}
17250
17251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17252pub struct Values {
17253    pub(crate) syntax: SyntaxNode,
17254}
17255impl Values {
17256    #[inline]
17257    pub fn row_list(&self) -> Option<RowList> {
17258        support::child(&self.syntax)
17259    }
17260    #[inline]
17261    pub fn with_clause(&self) -> Option<WithClause> {
17262        support::child(&self.syntax)
17263    }
17264    #[inline]
17265    pub fn values_token(&self) -> Option<SyntaxToken> {
17266        support::token(&self.syntax, SyntaxKind::VALUES_KW)
17267    }
17268}
17269
17270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17271pub struct Variant {
17272    pub(crate) syntax: SyntaxNode,
17273}
17274impl Variant {
17275    #[inline]
17276    pub fn literal(&self) -> Option<Literal> {
17277        support::child(&self.syntax)
17278    }
17279}
17280
17281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17282pub struct VariantList {
17283    pub(crate) syntax: SyntaxNode,
17284}
17285impl VariantList {
17286    #[inline]
17287    pub fn variants(&self) -> AstChildren<Variant> {
17288        support::children(&self.syntax)
17289    }
17290    #[inline]
17291    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17292        support::token(&self.syntax, SyntaxKind::L_PAREN)
17293    }
17294    #[inline]
17295    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17296        support::token(&self.syntax, SyntaxKind::R_PAREN)
17297    }
17298}
17299
17300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17301pub struct VertexPattern {
17302    pub(crate) syntax: SyntaxNode,
17303}
17304impl VertexPattern {
17305    #[inline]
17306    pub fn is_label(&self) -> Option<IsLabel> {
17307        support::child(&self.syntax)
17308    }
17309    #[inline]
17310    pub fn name(&self) -> Option<Name> {
17311        support::child(&self.syntax)
17312    }
17313    #[inline]
17314    pub fn where_clause(&self) -> Option<WhereClause> {
17315        support::child(&self.syntax)
17316    }
17317    #[inline]
17318    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17319        support::token(&self.syntax, SyntaxKind::L_PAREN)
17320    }
17321    #[inline]
17322    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17323        support::token(&self.syntax, SyntaxKind::R_PAREN)
17324    }
17325}
17326
17327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17328pub struct VertexTableDef {
17329    pub(crate) syntax: SyntaxNode,
17330}
17331impl VertexTableDef {
17332    #[inline]
17333    pub fn column_list(&self) -> Option<ColumnList> {
17334        support::child(&self.syntax)
17335    }
17336    #[inline]
17337    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
17338        support::child(&self.syntax)
17339    }
17340    #[inline]
17341    pub fn name(&self) -> Option<Name> {
17342        support::child(&self.syntax)
17343    }
17344    #[inline]
17345    pub fn path(&self) -> Option<Path> {
17346        support::child(&self.syntax)
17347    }
17348    #[inline]
17349    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17350        support::token(&self.syntax, SyntaxKind::L_PAREN)
17351    }
17352    #[inline]
17353    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17354        support::token(&self.syntax, SyntaxKind::R_PAREN)
17355    }
17356    #[inline]
17357    pub fn as_token(&self) -> Option<SyntaxToken> {
17358        support::token(&self.syntax, SyntaxKind::AS_KW)
17359    }
17360    #[inline]
17361    pub fn key_token(&self) -> Option<SyntaxToken> {
17362        support::token(&self.syntax, SyntaxKind::KEY_KW)
17363    }
17364}
17365
17366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17367pub struct VertexTables {
17368    pub(crate) syntax: SyntaxNode,
17369}
17370impl VertexTables {
17371    #[inline]
17372    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
17373        support::children(&self.syntax)
17374    }
17375    #[inline]
17376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17377        support::token(&self.syntax, SyntaxKind::L_PAREN)
17378    }
17379    #[inline]
17380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17381        support::token(&self.syntax, SyntaxKind::R_PAREN)
17382    }
17383    #[inline]
17384    pub fn node_token(&self) -> Option<SyntaxToken> {
17385        support::token(&self.syntax, SyntaxKind::NODE_KW)
17386    }
17387    #[inline]
17388    pub fn tables_token(&self) -> Option<SyntaxToken> {
17389        support::token(&self.syntax, SyntaxKind::TABLES_KW)
17390    }
17391    #[inline]
17392    pub fn vertex_token(&self) -> Option<SyntaxToken> {
17393        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
17394    }
17395}
17396
17397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17398pub struct VolatilityFuncOption {
17399    pub(crate) syntax: SyntaxNode,
17400}
17401impl VolatilityFuncOption {
17402    #[inline]
17403    pub fn immutable_token(&self) -> Option<SyntaxToken> {
17404        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
17405    }
17406    #[inline]
17407    pub fn stable_token(&self) -> Option<SyntaxToken> {
17408        support::token(&self.syntax, SyntaxKind::STABLE_KW)
17409    }
17410    #[inline]
17411    pub fn volatile_token(&self) -> Option<SyntaxToken> {
17412        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
17413    }
17414}
17415
17416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17417pub struct WhenClause {
17418    pub(crate) syntax: SyntaxNode,
17419}
17420impl WhenClause {
17421    #[inline]
17422    pub fn then_token(&self) -> Option<SyntaxToken> {
17423        support::token(&self.syntax, SyntaxKind::THEN_KW)
17424    }
17425    #[inline]
17426    pub fn when_token(&self) -> Option<SyntaxToken> {
17427        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17428    }
17429}
17430
17431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17432pub struct WhenClauseList {
17433    pub(crate) syntax: SyntaxNode,
17434}
17435impl WhenClauseList {
17436    #[inline]
17437    pub fn when_clause(&self) -> Option<WhenClause> {
17438        support::child(&self.syntax)
17439    }
17440    #[inline]
17441    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
17442        support::children(&self.syntax)
17443    }
17444}
17445
17446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17447pub struct WhenCondition {
17448    pub(crate) syntax: SyntaxNode,
17449}
17450impl WhenCondition {
17451    #[inline]
17452    pub fn expr(&self) -> Option<Expr> {
17453        support::child(&self.syntax)
17454    }
17455    #[inline]
17456    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17457        support::token(&self.syntax, SyntaxKind::L_PAREN)
17458    }
17459    #[inline]
17460    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17461        support::token(&self.syntax, SyntaxKind::R_PAREN)
17462    }
17463    #[inline]
17464    pub fn when_token(&self) -> Option<SyntaxToken> {
17465        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17466    }
17467}
17468
17469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17470pub struct WhereClause {
17471    pub(crate) syntax: SyntaxNode,
17472}
17473impl WhereClause {
17474    #[inline]
17475    pub fn expr(&self) -> Option<Expr> {
17476        support::child(&self.syntax)
17477    }
17478    #[inline]
17479    pub fn where_token(&self) -> Option<SyntaxToken> {
17480        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17481    }
17482}
17483
17484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17485pub struct WhereConditionClause {
17486    pub(crate) syntax: SyntaxNode,
17487}
17488impl WhereConditionClause {
17489    #[inline]
17490    pub fn expr(&self) -> Option<Expr> {
17491        support::child(&self.syntax)
17492    }
17493    #[inline]
17494    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17495        support::token(&self.syntax, SyntaxKind::L_PAREN)
17496    }
17497    #[inline]
17498    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17499        support::token(&self.syntax, SyntaxKind::R_PAREN)
17500    }
17501    #[inline]
17502    pub fn where_token(&self) -> Option<SyntaxToken> {
17503        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17504    }
17505}
17506
17507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17508pub struct WhereCurrentOf {
17509    pub(crate) syntax: SyntaxNode,
17510}
17511impl WhereCurrentOf {
17512    #[inline]
17513    pub fn name_ref(&self) -> Option<NameRef> {
17514        support::child(&self.syntax)
17515    }
17516    #[inline]
17517    pub fn current_token(&self) -> Option<SyntaxToken> {
17518        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
17519    }
17520    #[inline]
17521    pub fn of_token(&self) -> Option<SyntaxToken> {
17522        support::token(&self.syntax, SyntaxKind::OF_KW)
17523    }
17524    #[inline]
17525    pub fn where_token(&self) -> Option<SyntaxToken> {
17526        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17527    }
17528}
17529
17530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17531pub struct WindowClause {
17532    pub(crate) syntax: SyntaxNode,
17533}
17534impl WindowClause {
17535    #[inline]
17536    pub fn window_defs(&self) -> AstChildren<WindowDef> {
17537        support::children(&self.syntax)
17538    }
17539    #[inline]
17540    pub fn window_token(&self) -> Option<SyntaxToken> {
17541        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17542    }
17543}
17544
17545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17546pub struct WindowDef {
17547    pub(crate) syntax: SyntaxNode,
17548}
17549impl WindowDef {
17550    #[inline]
17551    pub fn name(&self) -> Option<Name> {
17552        support::child(&self.syntax)
17553    }
17554    #[inline]
17555    pub fn window_spec(&self) -> Option<WindowSpec> {
17556        support::child(&self.syntax)
17557    }
17558    #[inline]
17559    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17560        support::token(&self.syntax, SyntaxKind::L_PAREN)
17561    }
17562    #[inline]
17563    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17564        support::token(&self.syntax, SyntaxKind::R_PAREN)
17565    }
17566    #[inline]
17567    pub fn as_token(&self) -> Option<SyntaxToken> {
17568        support::token(&self.syntax, SyntaxKind::AS_KW)
17569    }
17570}
17571
17572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17573pub struct WindowFuncOption {
17574    pub(crate) syntax: SyntaxNode,
17575}
17576impl WindowFuncOption {
17577    #[inline]
17578    pub fn window_token(&self) -> Option<SyntaxToken> {
17579        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17580    }
17581}
17582
17583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17584pub struct WindowSpec {
17585    pub(crate) syntax: SyntaxNode,
17586}
17587impl WindowSpec {
17588    #[inline]
17589    pub fn exprs(&self) -> AstChildren<Expr> {
17590        support::children(&self.syntax)
17591    }
17592    #[inline]
17593    pub fn frame_clause(&self) -> Option<FrameClause> {
17594        support::child(&self.syntax)
17595    }
17596    #[inline]
17597    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17598        support::child(&self.syntax)
17599    }
17600    #[inline]
17601    pub fn by_token(&self) -> Option<SyntaxToken> {
17602        support::token(&self.syntax, SyntaxKind::BY_KW)
17603    }
17604    #[inline]
17605    pub fn ident_token(&self) -> Option<SyntaxToken> {
17606        support::token(&self.syntax, SyntaxKind::IDENT)
17607    }
17608    #[inline]
17609    pub fn partition_token(&self) -> Option<SyntaxToken> {
17610        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17611    }
17612}
17613
17614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17615pub struct WithCheckExprClause {
17616    pub(crate) syntax: SyntaxNode,
17617}
17618impl WithCheckExprClause {
17619    #[inline]
17620    pub fn expr(&self) -> Option<Expr> {
17621        support::child(&self.syntax)
17622    }
17623    #[inline]
17624    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17625        support::token(&self.syntax, SyntaxKind::L_PAREN)
17626    }
17627    #[inline]
17628    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17629        support::token(&self.syntax, SyntaxKind::R_PAREN)
17630    }
17631    #[inline]
17632    pub fn check_token(&self) -> Option<SyntaxToken> {
17633        support::token(&self.syntax, SyntaxKind::CHECK_KW)
17634    }
17635    #[inline]
17636    pub fn with_token(&self) -> Option<SyntaxToken> {
17637        support::token(&self.syntax, SyntaxKind::WITH_KW)
17638    }
17639}
17640
17641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17642pub struct WithClause {
17643    pub(crate) syntax: SyntaxNode,
17644}
17645impl WithClause {
17646    #[inline]
17647    pub fn with_tables(&self) -> AstChildren<WithTable> {
17648        support::children(&self.syntax)
17649    }
17650    #[inline]
17651    pub fn recursive_token(&self) -> Option<SyntaxToken> {
17652        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
17653    }
17654    #[inline]
17655    pub fn with_token(&self) -> Option<SyntaxToken> {
17656        support::token(&self.syntax, SyntaxKind::WITH_KW)
17657    }
17658}
17659
17660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17661pub struct WithData {
17662    pub(crate) syntax: SyntaxNode,
17663}
17664impl WithData {
17665    #[inline]
17666    pub fn data_token(&self) -> Option<SyntaxToken> {
17667        support::token(&self.syntax, SyntaxKind::DATA_KW)
17668    }
17669    #[inline]
17670    pub fn with_token(&self) -> Option<SyntaxToken> {
17671        support::token(&self.syntax, SyntaxKind::WITH_KW)
17672    }
17673}
17674
17675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17676pub struct WithNoData {
17677    pub(crate) syntax: SyntaxNode,
17678}
17679impl WithNoData {
17680    #[inline]
17681    pub fn data_token(&self) -> Option<SyntaxToken> {
17682        support::token(&self.syntax, SyntaxKind::DATA_KW)
17683    }
17684    #[inline]
17685    pub fn no_token(&self) -> Option<SyntaxToken> {
17686        support::token(&self.syntax, SyntaxKind::NO_KW)
17687    }
17688    #[inline]
17689    pub fn with_token(&self) -> Option<SyntaxToken> {
17690        support::token(&self.syntax, SyntaxKind::WITH_KW)
17691    }
17692}
17693
17694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17695pub struct WithOptions {
17696    pub(crate) syntax: SyntaxNode,
17697}
17698impl WithOptions {
17699    #[inline]
17700    pub fn options_token(&self) -> Option<SyntaxToken> {
17701        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
17702    }
17703    #[inline]
17704    pub fn with_token(&self) -> Option<SyntaxToken> {
17705        support::token(&self.syntax, SyntaxKind::WITH_KW)
17706    }
17707}
17708
17709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17710pub struct WithParams {
17711    pub(crate) syntax: SyntaxNode,
17712}
17713impl WithParams {
17714    #[inline]
17715    pub fn attribute_list(&self) -> Option<AttributeList> {
17716        support::child(&self.syntax)
17717    }
17718    #[inline]
17719    pub fn with_token(&self) -> Option<SyntaxToken> {
17720        support::token(&self.syntax, SyntaxKind::WITH_KW)
17721    }
17722}
17723
17724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17725pub struct WithTable {
17726    pub(crate) syntax: SyntaxNode,
17727}
17728impl WithTable {
17729    #[inline]
17730    pub fn column_list(&self) -> Option<ColumnList> {
17731        support::child(&self.syntax)
17732    }
17733    #[inline]
17734    pub fn materialized(&self) -> Option<Materialized> {
17735        support::child(&self.syntax)
17736    }
17737    #[inline]
17738    pub fn name(&self) -> Option<Name> {
17739        support::child(&self.syntax)
17740    }
17741    #[inline]
17742    pub fn not_materialized(&self) -> Option<NotMaterialized> {
17743        support::child(&self.syntax)
17744    }
17745    #[inline]
17746    pub fn query(&self) -> Option<WithQuery> {
17747        support::child(&self.syntax)
17748    }
17749    #[inline]
17750    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17751        support::token(&self.syntax, SyntaxKind::L_PAREN)
17752    }
17753    #[inline]
17754    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17755        support::token(&self.syntax, SyntaxKind::R_PAREN)
17756    }
17757    #[inline]
17758    pub fn as_token(&self) -> Option<SyntaxToken> {
17759        support::token(&self.syntax, SyntaxKind::AS_KW)
17760    }
17761}
17762
17763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17764pub struct WithTimezone {
17765    pub(crate) syntax: SyntaxNode,
17766}
17767impl WithTimezone {
17768    #[inline]
17769    pub fn time_token(&self) -> Option<SyntaxToken> {
17770        support::token(&self.syntax, SyntaxKind::TIME_KW)
17771    }
17772    #[inline]
17773    pub fn with_token(&self) -> Option<SyntaxToken> {
17774        support::token(&self.syntax, SyntaxKind::WITH_KW)
17775    }
17776    #[inline]
17777    pub fn zone_token(&self) -> Option<SyntaxToken> {
17778        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17779    }
17780}
17781
17782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17783pub struct WithinClause {
17784    pub(crate) syntax: SyntaxNode,
17785}
17786impl WithinClause {
17787    #[inline]
17788    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17789        support::child(&self.syntax)
17790    }
17791    #[inline]
17792    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17793        support::token(&self.syntax, SyntaxKind::L_PAREN)
17794    }
17795    #[inline]
17796    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17797        support::token(&self.syntax, SyntaxKind::R_PAREN)
17798    }
17799    #[inline]
17800    pub fn group_token(&self) -> Option<SyntaxToken> {
17801        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17802    }
17803    #[inline]
17804    pub fn within_token(&self) -> Option<SyntaxToken> {
17805        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
17806    }
17807}
17808
17809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17810pub struct WithoutOids {
17811    pub(crate) syntax: SyntaxNode,
17812}
17813impl WithoutOids {
17814    #[inline]
17815    pub fn oids_token(&self) -> Option<SyntaxToken> {
17816        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17817    }
17818    #[inline]
17819    pub fn without_token(&self) -> Option<SyntaxToken> {
17820        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17821    }
17822}
17823
17824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17825pub struct WithoutTimezone {
17826    pub(crate) syntax: SyntaxNode,
17827}
17828impl WithoutTimezone {
17829    #[inline]
17830    pub fn time_token(&self) -> Option<SyntaxToken> {
17831        support::token(&self.syntax, SyntaxKind::TIME_KW)
17832    }
17833    #[inline]
17834    pub fn without_token(&self) -> Option<SyntaxToken> {
17835        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17836    }
17837    #[inline]
17838    pub fn zone_token(&self) -> Option<SyntaxToken> {
17839        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17840    }
17841}
17842
17843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17844pub struct XmlColumnOption {
17845    pub(crate) syntax: SyntaxNode,
17846}
17847impl XmlColumnOption {
17848    #[inline]
17849    pub fn expr(&self) -> Option<Expr> {
17850        support::child(&self.syntax)
17851    }
17852    #[inline]
17853    pub fn default_token(&self) -> Option<SyntaxToken> {
17854        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17855    }
17856    #[inline]
17857    pub fn ident_token(&self) -> Option<SyntaxToken> {
17858        support::token(&self.syntax, SyntaxKind::IDENT)
17859    }
17860    #[inline]
17861    pub fn not_token(&self) -> Option<SyntaxToken> {
17862        support::token(&self.syntax, SyntaxKind::NOT_KW)
17863    }
17864    #[inline]
17865    pub fn null_token(&self) -> Option<SyntaxToken> {
17866        support::token(&self.syntax, SyntaxKind::NULL_KW)
17867    }
17868    #[inline]
17869    pub fn path_token(&self) -> Option<SyntaxToken> {
17870        support::token(&self.syntax, SyntaxKind::PATH_KW)
17871    }
17872}
17873
17874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17875pub struct XmlColumnOptionList {
17876    pub(crate) syntax: SyntaxNode,
17877}
17878impl XmlColumnOptionList {
17879    #[inline]
17880    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
17881        support::child(&self.syntax)
17882    }
17883    #[inline]
17884    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
17885        support::children(&self.syntax)
17886    }
17887}
17888
17889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17890pub struct XmlElementFn {
17891    pub(crate) syntax: SyntaxNode,
17892}
17893impl XmlElementFn {
17894    #[inline]
17895    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17896        support::child(&self.syntax)
17897    }
17898    #[inline]
17899    pub fn exprs(&self) -> AstChildren<Expr> {
17900        support::children(&self.syntax)
17901    }
17902    #[inline]
17903    pub fn name(&self) -> Option<Name> {
17904        support::child(&self.syntax)
17905    }
17906    #[inline]
17907    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17908        support::token(&self.syntax, SyntaxKind::L_PAREN)
17909    }
17910    #[inline]
17911    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17912        support::token(&self.syntax, SyntaxKind::R_PAREN)
17913    }
17914    #[inline]
17915    pub fn comma_token(&self) -> Option<SyntaxToken> {
17916        support::token(&self.syntax, SyntaxKind::COMMA)
17917    }
17918    #[inline]
17919    pub fn name_token(&self) -> Option<SyntaxToken> {
17920        support::token(&self.syntax, SyntaxKind::NAME_KW)
17921    }
17922    #[inline]
17923    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
17924        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
17925    }
17926    #[inline]
17927    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
17928        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
17929    }
17930}
17931
17932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17933pub struct XmlExistsFn {
17934    pub(crate) syntax: SyntaxNode,
17935}
17936impl XmlExistsFn {
17937    #[inline]
17938    pub fn expr(&self) -> Option<Expr> {
17939        support::child(&self.syntax)
17940    }
17941    #[inline]
17942    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
17943        support::child(&self.syntax)
17944    }
17945    #[inline]
17946    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17947        support::token(&self.syntax, SyntaxKind::L_PAREN)
17948    }
17949    #[inline]
17950    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17951        support::token(&self.syntax, SyntaxKind::R_PAREN)
17952    }
17953    #[inline]
17954    pub fn passing_token(&self) -> Option<SyntaxToken> {
17955        support::token(&self.syntax, SyntaxKind::PASSING_KW)
17956    }
17957    #[inline]
17958    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
17959        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
17960    }
17961}
17962
17963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17964pub struct XmlForestFn {
17965    pub(crate) syntax: SyntaxNode,
17966}
17967impl XmlForestFn {
17968    #[inline]
17969    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17970        support::child(&self.syntax)
17971    }
17972    #[inline]
17973    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17974        support::token(&self.syntax, SyntaxKind::L_PAREN)
17975    }
17976    #[inline]
17977    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17978        support::token(&self.syntax, SyntaxKind::R_PAREN)
17979    }
17980    #[inline]
17981    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
17982        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
17983    }
17984}
17985
17986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17987pub struct XmlNamespace {
17988    pub(crate) syntax: SyntaxNode,
17989}
17990impl XmlNamespace {
17991    #[inline]
17992    pub fn expr(&self) -> Option<Expr> {
17993        support::child(&self.syntax)
17994    }
17995    #[inline]
17996    pub fn name(&self) -> Option<Name> {
17997        support::child(&self.syntax)
17998    }
17999    #[inline]
18000    pub fn as_token(&self) -> Option<SyntaxToken> {
18001        support::token(&self.syntax, SyntaxKind::AS_KW)
18002    }
18003    #[inline]
18004    pub fn default_token(&self) -> Option<SyntaxToken> {
18005        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18006    }
18007}
18008
18009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18010pub struct XmlNamespaceList {
18011    pub(crate) syntax: SyntaxNode,
18012}
18013impl XmlNamespaceList {
18014    #[inline]
18015    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18016        support::children(&self.syntax)
18017    }
18018    #[inline]
18019    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18020        support::token(&self.syntax, SyntaxKind::L_PAREN)
18021    }
18022    #[inline]
18023    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18024        support::token(&self.syntax, SyntaxKind::R_PAREN)
18025    }
18026}
18027
18028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18029pub struct XmlParseFn {
18030    pub(crate) syntax: SyntaxNode,
18031}
18032impl XmlParseFn {
18033    #[inline]
18034    pub fn expr(&self) -> Option<Expr> {
18035        support::child(&self.syntax)
18036    }
18037    #[inline]
18038    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18039        support::token(&self.syntax, SyntaxKind::L_PAREN)
18040    }
18041    #[inline]
18042    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18043        support::token(&self.syntax, SyntaxKind::R_PAREN)
18044    }
18045    #[inline]
18046    pub fn content_token(&self) -> Option<SyntaxToken> {
18047        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18048    }
18049    #[inline]
18050    pub fn document_token(&self) -> Option<SyntaxToken> {
18051        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18052    }
18053    #[inline]
18054    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18055        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18056    }
18057    #[inline]
18058    pub fn strip_token(&self) -> Option<SyntaxToken> {
18059        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18060    }
18061    #[inline]
18062    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18063        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18064    }
18065    #[inline]
18066    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18067        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18068    }
18069}
18070
18071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18072pub struct XmlPassingMech {
18073    pub(crate) syntax: SyntaxNode,
18074}
18075impl XmlPassingMech {
18076    #[inline]
18077    pub fn by_token(&self) -> Option<SyntaxToken> {
18078        support::token(&self.syntax, SyntaxKind::BY_KW)
18079    }
18080    #[inline]
18081    pub fn ref_token(&self) -> Option<SyntaxToken> {
18082        support::token(&self.syntax, SyntaxKind::REF_KW)
18083    }
18084    #[inline]
18085    pub fn value_token(&self) -> Option<SyntaxToken> {
18086        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18087    }
18088}
18089
18090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18091pub struct XmlPiFn {
18092    pub(crate) syntax: SyntaxNode,
18093}
18094impl XmlPiFn {
18095    #[inline]
18096    pub fn expr(&self) -> Option<Expr> {
18097        support::child(&self.syntax)
18098    }
18099    #[inline]
18100    pub fn name(&self) -> Option<Name> {
18101        support::child(&self.syntax)
18102    }
18103    #[inline]
18104    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18105        support::token(&self.syntax, SyntaxKind::L_PAREN)
18106    }
18107    #[inline]
18108    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18109        support::token(&self.syntax, SyntaxKind::R_PAREN)
18110    }
18111    #[inline]
18112    pub fn comma_token(&self) -> Option<SyntaxToken> {
18113        support::token(&self.syntax, SyntaxKind::COMMA)
18114    }
18115    #[inline]
18116    pub fn name_token(&self) -> Option<SyntaxToken> {
18117        support::token(&self.syntax, SyntaxKind::NAME_KW)
18118    }
18119    #[inline]
18120    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
18121        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
18122    }
18123}
18124
18125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18126pub struct XmlRootFn {
18127    pub(crate) syntax: SyntaxNode,
18128}
18129impl XmlRootFn {
18130    #[inline]
18131    pub fn expr(&self) -> Option<Expr> {
18132        support::child(&self.syntax)
18133    }
18134    #[inline]
18135    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18136        support::token(&self.syntax, SyntaxKind::L_PAREN)
18137    }
18138    #[inline]
18139    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18140        support::token(&self.syntax, SyntaxKind::R_PAREN)
18141    }
18142    #[inline]
18143    pub fn comma_token(&self) -> Option<SyntaxToken> {
18144        support::token(&self.syntax, SyntaxKind::COMMA)
18145    }
18146    #[inline]
18147    pub fn no_token(&self) -> Option<SyntaxToken> {
18148        support::token(&self.syntax, SyntaxKind::NO_KW)
18149    }
18150    #[inline]
18151    pub fn standalone_token(&self) -> Option<SyntaxToken> {
18152        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
18153    }
18154    #[inline]
18155    pub fn value_token(&self) -> Option<SyntaxToken> {
18156        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18157    }
18158    #[inline]
18159    pub fn version_token(&self) -> Option<SyntaxToken> {
18160        support::token(&self.syntax, SyntaxKind::VERSION_KW)
18161    }
18162    #[inline]
18163    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
18164        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
18165    }
18166    #[inline]
18167    pub fn yes_token(&self) -> Option<SyntaxToken> {
18168        support::token(&self.syntax, SyntaxKind::YES_KW)
18169    }
18170}
18171
18172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18173pub struct XmlRowPassingClause {
18174    pub(crate) syntax: SyntaxNode,
18175}
18176impl XmlRowPassingClause {
18177    #[inline]
18178    pub fn expr(&self) -> Option<Expr> {
18179        support::child(&self.syntax)
18180    }
18181    #[inline]
18182    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18183        support::child(&self.syntax)
18184    }
18185    #[inline]
18186    pub fn passing_token(&self) -> Option<SyntaxToken> {
18187        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18188    }
18189}
18190
18191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18192pub struct XmlSerializeFn {
18193    pub(crate) syntax: SyntaxNode,
18194}
18195impl XmlSerializeFn {
18196    #[inline]
18197    pub fn expr(&self) -> Option<Expr> {
18198        support::child(&self.syntax)
18199    }
18200    #[inline]
18201    pub fn ty(&self) -> Option<Type> {
18202        support::child(&self.syntax)
18203    }
18204    #[inline]
18205    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18206        support::token(&self.syntax, SyntaxKind::L_PAREN)
18207    }
18208    #[inline]
18209    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18210        support::token(&self.syntax, SyntaxKind::R_PAREN)
18211    }
18212    #[inline]
18213    pub fn as_token(&self) -> Option<SyntaxToken> {
18214        support::token(&self.syntax, SyntaxKind::AS_KW)
18215    }
18216    #[inline]
18217    pub fn content_token(&self) -> Option<SyntaxToken> {
18218        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18219    }
18220    #[inline]
18221    pub fn document_token(&self) -> Option<SyntaxToken> {
18222        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18223    }
18224    #[inline]
18225    pub fn indent_token(&self) -> Option<SyntaxToken> {
18226        support::token(&self.syntax, SyntaxKind::INDENT_KW)
18227    }
18228    #[inline]
18229    pub fn no_token(&self) -> Option<SyntaxToken> {
18230        support::token(&self.syntax, SyntaxKind::NO_KW)
18231    }
18232    #[inline]
18233    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
18234        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
18235    }
18236}
18237
18238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18239pub struct XmlTable {
18240    pub(crate) syntax: SyntaxNode,
18241}
18242impl XmlTable {
18243    #[inline]
18244    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
18245        support::child(&self.syntax)
18246    }
18247    #[inline]
18248    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
18249        support::child(&self.syntax)
18250    }
18251    #[inline]
18252    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
18253        support::child(&self.syntax)
18254    }
18255    #[inline]
18256    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18257        support::token(&self.syntax, SyntaxKind::L_PAREN)
18258    }
18259    #[inline]
18260    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18261        support::token(&self.syntax, SyntaxKind::R_PAREN)
18262    }
18263    #[inline]
18264    pub fn comma_token(&self) -> Option<SyntaxToken> {
18265        support::token(&self.syntax, SyntaxKind::COMMA)
18266    }
18267    #[inline]
18268    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
18269        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
18270    }
18271    #[inline]
18272    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
18273        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
18274    }
18275}
18276
18277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18278pub struct XmlTableColumn {
18279    pub(crate) syntax: SyntaxNode,
18280}
18281impl XmlTableColumn {
18282    #[inline]
18283    pub fn name(&self) -> Option<Name> {
18284        support::child(&self.syntax)
18285    }
18286    #[inline]
18287    pub fn ty(&self) -> Option<Type> {
18288        support::child(&self.syntax)
18289    }
18290    #[inline]
18291    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
18292        support::child(&self.syntax)
18293    }
18294    #[inline]
18295    pub fn for_token(&self) -> Option<SyntaxToken> {
18296        support::token(&self.syntax, SyntaxKind::FOR_KW)
18297    }
18298    #[inline]
18299    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
18300        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
18301    }
18302}
18303
18304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18305pub struct XmlTableColumnList {
18306    pub(crate) syntax: SyntaxNode,
18307}
18308impl XmlTableColumnList {
18309    #[inline]
18310    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
18311        support::children(&self.syntax)
18312    }
18313    #[inline]
18314    pub fn columns_token(&self) -> Option<SyntaxToken> {
18315        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
18316    }
18317}
18318
18319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18320pub enum AlterColumnOption {
18321    AddGenerated(AddGenerated),
18322    DropDefault(DropDefault),
18323    DropExpression(DropExpression),
18324    DropIdentity(DropIdentity),
18325    DropNotNull(DropNotNull),
18326    Inherit(Inherit),
18327    NoInherit(NoInherit),
18328    ResetOptions(ResetOptions),
18329    Restart(Restart),
18330    SetCompression(SetCompression),
18331    SetDefault(SetDefault),
18332    SetExpression(SetExpression),
18333    SetGenerated(SetGenerated),
18334    SetGeneratedOptions(SetGeneratedOptions),
18335    SetNotNull(SetNotNull),
18336    SetOptions(SetOptions),
18337    SetOptionsList(SetOptionsList),
18338    SetSequenceOption(SetSequenceOption),
18339    SetStatistics(SetStatistics),
18340    SetStorage(SetStorage),
18341    SetType(SetType),
18342}
18343
18344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18345pub enum AlterDomainAction {
18346    AddConstraint(AddConstraint),
18347    DropConstraint(DropConstraint),
18348    DropDefault(DropDefault),
18349    DropNotNull(DropNotNull),
18350    OwnerTo(OwnerTo),
18351    RenameConstraint(RenameConstraint),
18352    RenameTo(RenameTo),
18353    SetDefault(SetDefault),
18354    SetNotNull(SetNotNull),
18355    SetSchema(SetSchema),
18356    ValidateConstraint(ValidateConstraint),
18357}
18358
18359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18360pub enum AlterIndexAction {
18361    AlterSetStatistics(AlterSetStatistics),
18362    AttachPartition(AttachPartition),
18363    DependsOnExtension(DependsOnExtension),
18364    NoDependsOnExtension(NoDependsOnExtension),
18365    RenameTo(RenameTo),
18366    ResetOptions(ResetOptions),
18367    SetOptions(SetOptions),
18368    SetTablespace(SetTablespace),
18369}
18370
18371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18372pub enum AlterMaterializedViewAction {
18373    DependsOnExtension(DependsOnExtension),
18374    NoDependsOnExtension(NoDependsOnExtension),
18375    RenameColumn(RenameColumn),
18376    RenameTo(RenameTo),
18377    SetSchema(SetSchema),
18378    AlterTableAction(AlterTableAction),
18379}
18380
18381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18382pub enum AlterPropertyGraphAction {
18383    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
18384    AddVertexEdgeTables(AddVertexEdgeTables),
18385    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
18386    DropEdgeTables(DropEdgeTables),
18387    DropVertexEdgeLabel(DropVertexEdgeLabel),
18388    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
18389    DropVertexTables(DropVertexTables),
18390    OwnerTo(OwnerTo),
18391    RenameTo(RenameTo),
18392    SetSchema(SetSchema),
18393}
18394
18395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18396pub enum AlterTableAction {
18397    AddColumn(AddColumn),
18398    AddConstraint(AddConstraint),
18399    AlterColumn(AlterColumn),
18400    AlterConstraint(AlterConstraint),
18401    AttachPartition(AttachPartition),
18402    ClusterOn(ClusterOn),
18403    DetachPartition(DetachPartition),
18404    DisableRls(DisableRls),
18405    DisableRule(DisableRule),
18406    DisableTrigger(DisableTrigger),
18407    DropColumn(DropColumn),
18408    DropConstraint(DropConstraint),
18409    EnableAlwaysRule(EnableAlwaysRule),
18410    EnableAlwaysTrigger(EnableAlwaysTrigger),
18411    EnableReplicaRule(EnableReplicaRule),
18412    EnableReplicaTrigger(EnableReplicaTrigger),
18413    EnableRls(EnableRls),
18414    EnableRule(EnableRule),
18415    EnableTrigger(EnableTrigger),
18416    ForceRls(ForceRls),
18417    InheritTable(InheritTable),
18418    MergePartitions(MergePartitions),
18419    NoForceRls(NoForceRls),
18420    NoInheritTable(NoInheritTable),
18421    NotOf(NotOf),
18422    OfType(OfType),
18423    OptionItemList(OptionItemList),
18424    OwnerTo(OwnerTo),
18425    RenameColumn(RenameColumn),
18426    RenameConstraint(RenameConstraint),
18427    RenameTo(RenameTo),
18428    ReplicaIdentity(ReplicaIdentity),
18429    ResetOptions(ResetOptions),
18430    SetAccessMethod(SetAccessMethod),
18431    SetLogged(SetLogged),
18432    SetOptions(SetOptions),
18433    SetSchema(SetSchema),
18434    SetTablespace(SetTablespace),
18435    SetUnlogged(SetUnlogged),
18436    SetWithoutCluster(SetWithoutCluster),
18437    SetWithoutOids(SetWithoutOids),
18438    SplitPartition(SplitPartition),
18439    ValidateConstraint(ValidateConstraint),
18440}
18441
18442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18443pub enum AlterTypeAction {
18444    AddAttribute(AddAttribute),
18445    AlterAttribute(AlterAttribute),
18446    DropAttribute(DropAttribute),
18447}
18448
18449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18450pub enum ColumnConstraint {
18451    CheckConstraint(CheckConstraint),
18452    DefaultConstraint(DefaultConstraint),
18453    ExcludeConstraint(ExcludeConstraint),
18454    NotNullConstraint(NotNullConstraint),
18455    PrimaryKeyConstraint(PrimaryKeyConstraint),
18456    ReferencesConstraint(ReferencesConstraint),
18457    UniqueConstraint(UniqueConstraint),
18458}
18459
18460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18461pub enum ConfigValue {
18462    Literal(Literal),
18463    NameRef(NameRef),
18464}
18465
18466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18467pub enum ConflictAction {
18468    ConflictDoNothing(ConflictDoNothing),
18469    ConflictDoSelect(ConflictDoSelect),
18470    ConflictDoUpdateSet(ConflictDoUpdateSet),
18471}
18472
18473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18474pub enum ConflictTarget {
18475    ConflictOnConstraint(ConflictOnConstraint),
18476    ConflictOnIndex(ConflictOnIndex),
18477}
18478
18479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18480pub enum Constraint {
18481    CheckConstraint(CheckConstraint),
18482    DefaultConstraint(DefaultConstraint),
18483    ForeignKeyConstraint(ForeignKeyConstraint),
18484    GeneratedConstraint(GeneratedConstraint),
18485    NotNullConstraint(NotNullConstraint),
18486    NullConstraint(NullConstraint),
18487    PrimaryKeyConstraint(PrimaryKeyConstraint),
18488    ReferencesConstraint(ReferencesConstraint),
18489    UniqueConstraint(UniqueConstraint),
18490}
18491
18492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18493pub enum ElementTableLabelAndProperties {
18494    LabelAndPropertiesList(LabelAndPropertiesList),
18495    ElementTableProperties(ElementTableProperties),
18496}
18497
18498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18499pub enum ElementTableProperties {
18500    AllProperties(AllProperties),
18501    NoProperties(NoProperties),
18502    PropertiesList(PropertiesList),
18503}
18504
18505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18506pub enum ExplainStmt {
18507    CompoundSelect(CompoundSelect),
18508    CreateMaterializedView(CreateMaterializedView),
18509    CreateTableAs(CreateTableAs),
18510    Declare(Declare),
18511    Delete(Delete),
18512    Execute(Execute),
18513    Insert(Insert),
18514    Merge(Merge),
18515    ParenSelect(ParenSelect),
18516    Select(Select),
18517    SelectInto(SelectInto),
18518    Table(Table),
18519    Update(Update),
18520    Values(Values),
18521}
18522
18523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18524pub enum Expr {
18525    ArrayExpr(ArrayExpr),
18526    BetweenExpr(BetweenExpr),
18527    BinExpr(BinExpr),
18528    CallExpr(CallExpr),
18529    CaseExpr(CaseExpr),
18530    CastExpr(CastExpr),
18531    FieldExpr(FieldExpr),
18532    IndexExpr(IndexExpr),
18533    Literal(Literal),
18534    NameRef(NameRef),
18535    ParenExpr(ParenExpr),
18536    PostfixExpr(PostfixExpr),
18537    PrefixExpr(PrefixExpr),
18538    SliceExpr(SliceExpr),
18539    TupleExpr(TupleExpr),
18540}
18541
18542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18543pub enum FuncOption {
18544    AsFuncOption(AsFuncOption),
18545    BeginFuncOptionList(BeginFuncOptionList),
18546    CostFuncOption(CostFuncOption),
18547    LanguageFuncOption(LanguageFuncOption),
18548    LeakproofFuncOption(LeakproofFuncOption),
18549    ParallelFuncOption(ParallelFuncOption),
18550    ResetFuncOption(ResetFuncOption),
18551    ReturnFuncOption(ReturnFuncOption),
18552    RowsFuncOption(RowsFuncOption),
18553    SecurityFuncOption(SecurityFuncOption),
18554    SetFuncOption(SetFuncOption),
18555    StrictFuncOption(StrictFuncOption),
18556    SupportFuncOption(SupportFuncOption),
18557    TransformFuncOption(TransformFuncOption),
18558    VolatilityFuncOption(VolatilityFuncOption),
18559    WindowFuncOption(WindowFuncOption),
18560}
18561
18562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18563pub enum GroupBy {
18564    GroupingCube(GroupingCube),
18565    GroupingExpr(GroupingExpr),
18566    GroupingRollup(GroupingRollup),
18567    GroupingSets(GroupingSets),
18568}
18569
18570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18571pub enum JoinType {
18572    JoinCross(JoinCross),
18573    JoinFull(JoinFull),
18574    JoinInner(JoinInner),
18575    JoinLeft(JoinLeft),
18576    JoinRight(JoinRight),
18577}
18578
18579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18580pub enum JsonBehavior {
18581    JsonBehaviorDefault(JsonBehaviorDefault),
18582    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
18583    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
18584    JsonBehaviorError(JsonBehaviorError),
18585    JsonBehaviorFalse(JsonBehaviorFalse),
18586    JsonBehaviorNull(JsonBehaviorNull),
18587    JsonBehaviorTrue(JsonBehaviorTrue),
18588    JsonBehaviorUnknown(JsonBehaviorUnknown),
18589}
18590
18591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18592pub enum MatchType {
18593    MatchFull(MatchFull),
18594    MatchPartial(MatchPartial),
18595    MatchSimple(MatchSimple),
18596}
18597
18598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18599pub enum MergeAction {
18600    MergeDelete(MergeDelete),
18601    MergeDoNothing(MergeDoNothing),
18602    MergeInsert(MergeInsert),
18603    MergeUpdate(MergeUpdate),
18604}
18605
18606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18607pub enum MergeWhenClause {
18608    MergeWhenMatched(MergeWhenMatched),
18609    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
18610    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
18611}
18612
18613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18614pub enum OnCommitAction {
18615    DeleteRows(DeleteRows),
18616    Drop(Drop),
18617    PreserveRows(PreserveRows),
18618}
18619
18620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18621pub enum ParamMode {
18622    ParamIn(ParamIn),
18623    ParamInOut(ParamInOut),
18624    ParamOut(ParamOut),
18625    ParamVariadic(ParamVariadic),
18626}
18627
18628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18629pub enum PartitionType {
18630    PartitionDefault(PartitionDefault),
18631    PartitionForValuesFrom(PartitionForValuesFrom),
18632    PartitionForValuesIn(PartitionForValuesIn),
18633    PartitionForValuesWith(PartitionForValuesWith),
18634}
18635
18636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18637pub enum PathPrimary {
18638    EdgeAny(EdgeAny),
18639    EdgeLeft(EdgeLeft),
18640    EdgeRight(EdgeRight),
18641    ParenGraphPattern(ParenGraphPattern),
18642    VertexPattern(VertexPattern),
18643}
18644
18645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18646pub enum Persistence {
18647    Temp(Temp),
18648    Unlogged(Unlogged),
18649}
18650
18651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18652pub enum PreparableStmt {
18653    CompoundSelect(CompoundSelect),
18654    Delete(Delete),
18655    Insert(Insert),
18656    Merge(Merge),
18657    Select(Select),
18658    SelectInto(SelectInto),
18659    Table(Table),
18660    Update(Update),
18661    Values(Values),
18662}
18663
18664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18665pub enum RefAction {
18666    Cascade(Cascade),
18667    NoAction(NoAction),
18668    Restrict(Restrict),
18669    SetDefaultColumns(SetDefaultColumns),
18670    SetNullColumns(SetNullColumns),
18671}
18672
18673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18674pub enum SchemaElement {
18675    CreateIndex(CreateIndex),
18676    CreateSequence(CreateSequence),
18677    CreateTable(CreateTable),
18678    CreateTrigger(CreateTrigger),
18679    CreateView(CreateView),
18680    Grant(Grant),
18681}
18682
18683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18684pub enum SelectVariant {
18685    CompoundSelect(CompoundSelect),
18686    ParenSelect(ParenSelect),
18687    Select(Select),
18688    SelectInto(SelectInto),
18689    Table(Table),
18690    Values(Values),
18691}
18692
18693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18694pub enum SetColumn {
18695    SetMultipleColumns(SetMultipleColumns),
18696    SetSingleColumn(SetSingleColumn),
18697}
18698
18699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18700pub enum Stmt {
18701    AlterAggregate(AlterAggregate),
18702    AlterCollation(AlterCollation),
18703    AlterConversion(AlterConversion),
18704    AlterDatabase(AlterDatabase),
18705    AlterDefaultPrivileges(AlterDefaultPrivileges),
18706    AlterDomain(AlterDomain),
18707    AlterEventTrigger(AlterEventTrigger),
18708    AlterExtension(AlterExtension),
18709    AlterForeignDataWrapper(AlterForeignDataWrapper),
18710    AlterForeignTable(AlterForeignTable),
18711    AlterFunction(AlterFunction),
18712    AlterGroup(AlterGroup),
18713    AlterIndex(AlterIndex),
18714    AlterLanguage(AlterLanguage),
18715    AlterLargeObject(AlterLargeObject),
18716    AlterMaterializedView(AlterMaterializedView),
18717    AlterOperator(AlterOperator),
18718    AlterOperatorClass(AlterOperatorClass),
18719    AlterOperatorFamily(AlterOperatorFamily),
18720    AlterPolicy(AlterPolicy),
18721    AlterProcedure(AlterProcedure),
18722    AlterPropertyGraph(AlterPropertyGraph),
18723    AlterPublication(AlterPublication),
18724    AlterRole(AlterRole),
18725    AlterRoutine(AlterRoutine),
18726    AlterRule(AlterRule),
18727    AlterSchema(AlterSchema),
18728    AlterSequence(AlterSequence),
18729    AlterServer(AlterServer),
18730    AlterStatistics(AlterStatistics),
18731    AlterSubscription(AlterSubscription),
18732    AlterSystem(AlterSystem),
18733    AlterTable(AlterTable),
18734    AlterTablespace(AlterTablespace),
18735    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
18736    AlterTextSearchDictionary(AlterTextSearchDictionary),
18737    AlterTextSearchParser(AlterTextSearchParser),
18738    AlterTextSearchTemplate(AlterTextSearchTemplate),
18739    AlterTrigger(AlterTrigger),
18740    AlterType(AlterType),
18741    AlterUser(AlterUser),
18742    AlterUserMapping(AlterUserMapping),
18743    AlterView(AlterView),
18744    Analyze(Analyze),
18745    Begin(Begin),
18746    Call(Call),
18747    Checkpoint(Checkpoint),
18748    Close(Close),
18749    Cluster(Cluster),
18750    CommentOn(CommentOn),
18751    Commit(Commit),
18752    Copy(Copy),
18753    CreateAccessMethod(CreateAccessMethod),
18754    CreateAggregate(CreateAggregate),
18755    CreateCast(CreateCast),
18756    CreateCollation(CreateCollation),
18757    CreateConversion(CreateConversion),
18758    CreateDatabase(CreateDatabase),
18759    CreateDomain(CreateDomain),
18760    CreateEventTrigger(CreateEventTrigger),
18761    CreateExtension(CreateExtension),
18762    CreateForeignDataWrapper(CreateForeignDataWrapper),
18763    CreateForeignTable(CreateForeignTable),
18764    CreateFunction(CreateFunction),
18765    CreateGroup(CreateGroup),
18766    CreateIndex(CreateIndex),
18767    CreateLanguage(CreateLanguage),
18768    CreateMaterializedView(CreateMaterializedView),
18769    CreateOperator(CreateOperator),
18770    CreateOperatorClass(CreateOperatorClass),
18771    CreateOperatorFamily(CreateOperatorFamily),
18772    CreatePolicy(CreatePolicy),
18773    CreateProcedure(CreateProcedure),
18774    CreatePropertyGraph(CreatePropertyGraph),
18775    CreatePublication(CreatePublication),
18776    CreateRole(CreateRole),
18777    CreateRule(CreateRule),
18778    CreateSchema(CreateSchema),
18779    CreateSequence(CreateSequence),
18780    CreateServer(CreateServer),
18781    CreateStatistics(CreateStatistics),
18782    CreateSubscription(CreateSubscription),
18783    CreateTable(CreateTable),
18784    CreateTableAs(CreateTableAs),
18785    CreateTablespace(CreateTablespace),
18786    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
18787    CreateTextSearchDictionary(CreateTextSearchDictionary),
18788    CreateTextSearchParser(CreateTextSearchParser),
18789    CreateTextSearchTemplate(CreateTextSearchTemplate),
18790    CreateTransform(CreateTransform),
18791    CreateTrigger(CreateTrigger),
18792    CreateType(CreateType),
18793    CreateUser(CreateUser),
18794    CreateUserMapping(CreateUserMapping),
18795    CreateView(CreateView),
18796    Deallocate(Deallocate),
18797    Declare(Declare),
18798    Delete(Delete),
18799    Discard(Discard),
18800    Do(Do),
18801    DropAccessMethod(DropAccessMethod),
18802    DropAggregate(DropAggregate),
18803    DropCast(DropCast),
18804    DropCollation(DropCollation),
18805    DropConversion(DropConversion),
18806    DropDatabase(DropDatabase),
18807    DropDomain(DropDomain),
18808    DropEventTrigger(DropEventTrigger),
18809    DropExtension(DropExtension),
18810    DropForeignDataWrapper(DropForeignDataWrapper),
18811    DropForeignTable(DropForeignTable),
18812    DropFunction(DropFunction),
18813    DropGroup(DropGroup),
18814    DropIndex(DropIndex),
18815    DropLanguage(DropLanguage),
18816    DropMaterializedView(DropMaterializedView),
18817    DropOperator(DropOperator),
18818    DropOperatorClass(DropOperatorClass),
18819    DropOperatorFamily(DropOperatorFamily),
18820    DropOwned(DropOwned),
18821    DropPolicy(DropPolicy),
18822    DropProcedure(DropProcedure),
18823    DropPropertyGraph(DropPropertyGraph),
18824    DropPublication(DropPublication),
18825    DropRole(DropRole),
18826    DropRoutine(DropRoutine),
18827    DropRule(DropRule),
18828    DropSchema(DropSchema),
18829    DropSequence(DropSequence),
18830    DropServer(DropServer),
18831    DropStatistics(DropStatistics),
18832    DropSubscription(DropSubscription),
18833    DropTable(DropTable),
18834    DropTablespace(DropTablespace),
18835    DropTextSearchConfig(DropTextSearchConfig),
18836    DropTextSearchDict(DropTextSearchDict),
18837    DropTextSearchParser(DropTextSearchParser),
18838    DropTextSearchTemplate(DropTextSearchTemplate),
18839    DropTransform(DropTransform),
18840    DropTrigger(DropTrigger),
18841    DropType(DropType),
18842    DropUser(DropUser),
18843    DropUserMapping(DropUserMapping),
18844    DropView(DropView),
18845    Execute(Execute),
18846    Explain(Explain),
18847    Fetch(Fetch),
18848    Grant(Grant),
18849    ImportForeignSchema(ImportForeignSchema),
18850    Insert(Insert),
18851    Listen(Listen),
18852    Load(Load),
18853    Lock(Lock),
18854    Merge(Merge),
18855    Move(Move),
18856    Notify(Notify),
18857    ParenSelect(ParenSelect),
18858    Prepare(Prepare),
18859    PrepareTransaction(PrepareTransaction),
18860    Reassign(Reassign),
18861    Refresh(Refresh),
18862    Reindex(Reindex),
18863    ReleaseSavepoint(ReleaseSavepoint),
18864    Repack(Repack),
18865    Reset(Reset),
18866    ResetSessionAuth(ResetSessionAuth),
18867    Revoke(Revoke),
18868    Rollback(Rollback),
18869    Savepoint(Savepoint),
18870    SecurityLabel(SecurityLabel),
18871    Select(Select),
18872    SelectInto(SelectInto),
18873    Set(Set),
18874    SetConstraints(SetConstraints),
18875    SetRole(SetRole),
18876    SetSessionAuth(SetSessionAuth),
18877    SetTransaction(SetTransaction),
18878    Show(Show),
18879    Table(Table),
18880    Truncate(Truncate),
18881    Unlisten(Unlisten),
18882    Update(Update),
18883    Vacuum(Vacuum),
18884    Values(Values),
18885}
18886
18887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18888pub enum TableArg {
18889    Column(Column),
18890    LikeClause(LikeClause),
18891    TableConstraint(TableConstraint),
18892}
18893
18894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18895pub enum TableConstraint {
18896    CheckConstraint(CheckConstraint),
18897    ExcludeConstraint(ExcludeConstraint),
18898    ForeignKeyConstraint(ForeignKeyConstraint),
18899    PrimaryKeyConstraint(PrimaryKeyConstraint),
18900    UniqueConstraint(UniqueConstraint),
18901}
18902
18903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18904pub enum Timezone {
18905    WithTimezone(WithTimezone),
18906    WithoutTimezone(WithoutTimezone),
18907}
18908
18909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18910pub enum TransactionMode {
18911    Deferrable(Deferrable),
18912    NotDeferrable(NotDeferrable),
18913    ReadCommitted(ReadCommitted),
18914    ReadOnly(ReadOnly),
18915    ReadUncommitted(ReadUncommitted),
18916    ReadWrite(ReadWrite),
18917    RepeatableRead(RepeatableRead),
18918    Serializable(Serializable),
18919}
18920
18921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18922pub enum Type {
18923    ArrayType(ArrayType),
18924    BitType(BitType),
18925    CharType(CharType),
18926    DoubleType(DoubleType),
18927    ExprType(ExprType),
18928    IntervalType(IntervalType),
18929    PathType(PathType),
18930    PercentType(PercentType),
18931    TimeType(TimeType),
18932}
18933
18934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18935pub enum ValuePosition {
18936    AfterValue(AfterValue),
18937    BeforeValue(BeforeValue),
18938}
18939
18940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18941pub enum WithQuery {
18942    CompoundSelect(CompoundSelect),
18943    Delete(Delete),
18944    Insert(Insert),
18945    Merge(Merge),
18946    ParenSelect(ParenSelect),
18947    Select(Select),
18948    Table(Table),
18949    Update(Update),
18950    Values(Values),
18951}
18952impl AstNode for AddAttribute {
18953    #[inline]
18954    fn can_cast(kind: SyntaxKind) -> bool {
18955        kind == SyntaxKind::ADD_ATTRIBUTE
18956    }
18957    #[inline]
18958    fn cast(syntax: SyntaxNode) -> Option<Self> {
18959        if Self::can_cast(syntax.kind()) {
18960            Some(Self { syntax })
18961        } else {
18962            None
18963        }
18964    }
18965    #[inline]
18966    fn syntax(&self) -> &SyntaxNode {
18967        &self.syntax
18968    }
18969}
18970impl AstNode for AddColumn {
18971    #[inline]
18972    fn can_cast(kind: SyntaxKind) -> bool {
18973        kind == SyntaxKind::ADD_COLUMN
18974    }
18975    #[inline]
18976    fn cast(syntax: SyntaxNode) -> Option<Self> {
18977        if Self::can_cast(syntax.kind()) {
18978            Some(Self { syntax })
18979        } else {
18980            None
18981        }
18982    }
18983    #[inline]
18984    fn syntax(&self) -> &SyntaxNode {
18985        &self.syntax
18986    }
18987}
18988impl AstNode for AddConstraint {
18989    #[inline]
18990    fn can_cast(kind: SyntaxKind) -> bool {
18991        kind == SyntaxKind::ADD_CONSTRAINT
18992    }
18993    #[inline]
18994    fn cast(syntax: SyntaxNode) -> Option<Self> {
18995        if Self::can_cast(syntax.kind()) {
18996            Some(Self { syntax })
18997        } else {
18998            None
18999        }
19000    }
19001    #[inline]
19002    fn syntax(&self) -> &SyntaxNode {
19003        &self.syntax
19004    }
19005}
19006impl AstNode for AddGenerated {
19007    #[inline]
19008    fn can_cast(kind: SyntaxKind) -> bool {
19009        kind == SyntaxKind::ADD_GENERATED
19010    }
19011    #[inline]
19012    fn cast(syntax: SyntaxNode) -> Option<Self> {
19013        if Self::can_cast(syntax.kind()) {
19014            Some(Self { syntax })
19015        } else {
19016            None
19017        }
19018    }
19019    #[inline]
19020    fn syntax(&self) -> &SyntaxNode {
19021        &self.syntax
19022    }
19023}
19024impl AstNode for AddLabel {
19025    #[inline]
19026    fn can_cast(kind: SyntaxKind) -> bool {
19027        kind == SyntaxKind::ADD_LABEL
19028    }
19029    #[inline]
19030    fn cast(syntax: SyntaxNode) -> Option<Self> {
19031        if Self::can_cast(syntax.kind()) {
19032            Some(Self { syntax })
19033        } else {
19034            None
19035        }
19036    }
19037    #[inline]
19038    fn syntax(&self) -> &SyntaxNode {
19039        &self.syntax
19040    }
19041}
19042impl AstNode for AddOpClassOptions {
19043    #[inline]
19044    fn can_cast(kind: SyntaxKind) -> bool {
19045        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19046    }
19047    #[inline]
19048    fn cast(syntax: SyntaxNode) -> Option<Self> {
19049        if Self::can_cast(syntax.kind()) {
19050            Some(Self { syntax })
19051        } else {
19052            None
19053        }
19054    }
19055    #[inline]
19056    fn syntax(&self) -> &SyntaxNode {
19057        &self.syntax
19058    }
19059}
19060impl AstNode for AddValue {
19061    #[inline]
19062    fn can_cast(kind: SyntaxKind) -> bool {
19063        kind == SyntaxKind::ADD_VALUE
19064    }
19065    #[inline]
19066    fn cast(syntax: SyntaxNode) -> Option<Self> {
19067        if Self::can_cast(syntax.kind()) {
19068            Some(Self { syntax })
19069        } else {
19070            None
19071        }
19072    }
19073    #[inline]
19074    fn syntax(&self) -> &SyntaxNode {
19075        &self.syntax
19076    }
19077}
19078impl AstNode for AddVertexEdgeLabelProperties {
19079    #[inline]
19080    fn can_cast(kind: SyntaxKind) -> bool {
19081        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19082    }
19083    #[inline]
19084    fn cast(syntax: SyntaxNode) -> Option<Self> {
19085        if Self::can_cast(syntax.kind()) {
19086            Some(Self { syntax })
19087        } else {
19088            None
19089        }
19090    }
19091    #[inline]
19092    fn syntax(&self) -> &SyntaxNode {
19093        &self.syntax
19094    }
19095}
19096impl AstNode for AddVertexEdgeTables {
19097    #[inline]
19098    fn can_cast(kind: SyntaxKind) -> bool {
19099        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
19100    }
19101    #[inline]
19102    fn cast(syntax: SyntaxNode) -> Option<Self> {
19103        if Self::can_cast(syntax.kind()) {
19104            Some(Self { syntax })
19105        } else {
19106            None
19107        }
19108    }
19109    #[inline]
19110    fn syntax(&self) -> &SyntaxNode {
19111        &self.syntax
19112    }
19113}
19114impl AstNode for AfterValue {
19115    #[inline]
19116    fn can_cast(kind: SyntaxKind) -> bool {
19117        kind == SyntaxKind::AFTER_VALUE
19118    }
19119    #[inline]
19120    fn cast(syntax: SyntaxNode) -> Option<Self> {
19121        if Self::can_cast(syntax.kind()) {
19122            Some(Self { syntax })
19123        } else {
19124            None
19125        }
19126    }
19127    #[inline]
19128    fn syntax(&self) -> &SyntaxNode {
19129        &self.syntax
19130    }
19131}
19132impl AstNode for Aggregate {
19133    #[inline]
19134    fn can_cast(kind: SyntaxKind) -> bool {
19135        kind == SyntaxKind::AGGREGATE
19136    }
19137    #[inline]
19138    fn cast(syntax: SyntaxNode) -> Option<Self> {
19139        if Self::can_cast(syntax.kind()) {
19140            Some(Self { syntax })
19141        } else {
19142            None
19143        }
19144    }
19145    #[inline]
19146    fn syntax(&self) -> &SyntaxNode {
19147        &self.syntax
19148    }
19149}
19150impl AstNode for Alias {
19151    #[inline]
19152    fn can_cast(kind: SyntaxKind) -> bool {
19153        kind == SyntaxKind::ALIAS
19154    }
19155    #[inline]
19156    fn cast(syntax: SyntaxNode) -> Option<Self> {
19157        if Self::can_cast(syntax.kind()) {
19158            Some(Self { syntax })
19159        } else {
19160            None
19161        }
19162    }
19163    #[inline]
19164    fn syntax(&self) -> &SyntaxNode {
19165        &self.syntax
19166    }
19167}
19168impl AstNode for AllFn {
19169    #[inline]
19170    fn can_cast(kind: SyntaxKind) -> bool {
19171        kind == SyntaxKind::ALL_FN
19172    }
19173    #[inline]
19174    fn cast(syntax: SyntaxNode) -> Option<Self> {
19175        if Self::can_cast(syntax.kind()) {
19176            Some(Self { syntax })
19177        } else {
19178            None
19179        }
19180    }
19181    #[inline]
19182    fn syntax(&self) -> &SyntaxNode {
19183        &self.syntax
19184    }
19185}
19186impl AstNode for AllProperties {
19187    #[inline]
19188    fn can_cast(kind: SyntaxKind) -> bool {
19189        kind == SyntaxKind::ALL_PROPERTIES
19190    }
19191    #[inline]
19192    fn cast(syntax: SyntaxNode) -> Option<Self> {
19193        if Self::can_cast(syntax.kind()) {
19194            Some(Self { syntax })
19195        } else {
19196            None
19197        }
19198    }
19199    #[inline]
19200    fn syntax(&self) -> &SyntaxNode {
19201        &self.syntax
19202    }
19203}
19204impl AstNode for AlterAggregate {
19205    #[inline]
19206    fn can_cast(kind: SyntaxKind) -> bool {
19207        kind == SyntaxKind::ALTER_AGGREGATE
19208    }
19209    #[inline]
19210    fn cast(syntax: SyntaxNode) -> Option<Self> {
19211        if Self::can_cast(syntax.kind()) {
19212            Some(Self { syntax })
19213        } else {
19214            None
19215        }
19216    }
19217    #[inline]
19218    fn syntax(&self) -> &SyntaxNode {
19219        &self.syntax
19220    }
19221}
19222impl AstNode for AlterAttribute {
19223    #[inline]
19224    fn can_cast(kind: SyntaxKind) -> bool {
19225        kind == SyntaxKind::ALTER_ATTRIBUTE
19226    }
19227    #[inline]
19228    fn cast(syntax: SyntaxNode) -> Option<Self> {
19229        if Self::can_cast(syntax.kind()) {
19230            Some(Self { syntax })
19231        } else {
19232            None
19233        }
19234    }
19235    #[inline]
19236    fn syntax(&self) -> &SyntaxNode {
19237        &self.syntax
19238    }
19239}
19240impl AstNode for AlterCollation {
19241    #[inline]
19242    fn can_cast(kind: SyntaxKind) -> bool {
19243        kind == SyntaxKind::ALTER_COLLATION
19244    }
19245    #[inline]
19246    fn cast(syntax: SyntaxNode) -> Option<Self> {
19247        if Self::can_cast(syntax.kind()) {
19248            Some(Self { syntax })
19249        } else {
19250            None
19251        }
19252    }
19253    #[inline]
19254    fn syntax(&self) -> &SyntaxNode {
19255        &self.syntax
19256    }
19257}
19258impl AstNode for AlterColumn {
19259    #[inline]
19260    fn can_cast(kind: SyntaxKind) -> bool {
19261        kind == SyntaxKind::ALTER_COLUMN
19262    }
19263    #[inline]
19264    fn cast(syntax: SyntaxNode) -> Option<Self> {
19265        if Self::can_cast(syntax.kind()) {
19266            Some(Self { syntax })
19267        } else {
19268            None
19269        }
19270    }
19271    #[inline]
19272    fn syntax(&self) -> &SyntaxNode {
19273        &self.syntax
19274    }
19275}
19276impl AstNode for AlterConstraint {
19277    #[inline]
19278    fn can_cast(kind: SyntaxKind) -> bool {
19279        kind == SyntaxKind::ALTER_CONSTRAINT
19280    }
19281    #[inline]
19282    fn cast(syntax: SyntaxNode) -> Option<Self> {
19283        if Self::can_cast(syntax.kind()) {
19284            Some(Self { syntax })
19285        } else {
19286            None
19287        }
19288    }
19289    #[inline]
19290    fn syntax(&self) -> &SyntaxNode {
19291        &self.syntax
19292    }
19293}
19294impl AstNode for AlterConversion {
19295    #[inline]
19296    fn can_cast(kind: SyntaxKind) -> bool {
19297        kind == SyntaxKind::ALTER_CONVERSION
19298    }
19299    #[inline]
19300    fn cast(syntax: SyntaxNode) -> Option<Self> {
19301        if Self::can_cast(syntax.kind()) {
19302            Some(Self { syntax })
19303        } else {
19304            None
19305        }
19306    }
19307    #[inline]
19308    fn syntax(&self) -> &SyntaxNode {
19309        &self.syntax
19310    }
19311}
19312impl AstNode for AlterDatabase {
19313    #[inline]
19314    fn can_cast(kind: SyntaxKind) -> bool {
19315        kind == SyntaxKind::ALTER_DATABASE
19316    }
19317    #[inline]
19318    fn cast(syntax: SyntaxNode) -> Option<Self> {
19319        if Self::can_cast(syntax.kind()) {
19320            Some(Self { syntax })
19321        } else {
19322            None
19323        }
19324    }
19325    #[inline]
19326    fn syntax(&self) -> &SyntaxNode {
19327        &self.syntax
19328    }
19329}
19330impl AstNode for AlterDefaultPrivileges {
19331    #[inline]
19332    fn can_cast(kind: SyntaxKind) -> bool {
19333        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
19334    }
19335    #[inline]
19336    fn cast(syntax: SyntaxNode) -> Option<Self> {
19337        if Self::can_cast(syntax.kind()) {
19338            Some(Self { syntax })
19339        } else {
19340            None
19341        }
19342    }
19343    #[inline]
19344    fn syntax(&self) -> &SyntaxNode {
19345        &self.syntax
19346    }
19347}
19348impl AstNode for AlterDomain {
19349    #[inline]
19350    fn can_cast(kind: SyntaxKind) -> bool {
19351        kind == SyntaxKind::ALTER_DOMAIN
19352    }
19353    #[inline]
19354    fn cast(syntax: SyntaxNode) -> Option<Self> {
19355        if Self::can_cast(syntax.kind()) {
19356            Some(Self { syntax })
19357        } else {
19358            None
19359        }
19360    }
19361    #[inline]
19362    fn syntax(&self) -> &SyntaxNode {
19363        &self.syntax
19364    }
19365}
19366impl AstNode for AlterEventTrigger {
19367    #[inline]
19368    fn can_cast(kind: SyntaxKind) -> bool {
19369        kind == SyntaxKind::ALTER_EVENT_TRIGGER
19370    }
19371    #[inline]
19372    fn cast(syntax: SyntaxNode) -> Option<Self> {
19373        if Self::can_cast(syntax.kind()) {
19374            Some(Self { syntax })
19375        } else {
19376            None
19377        }
19378    }
19379    #[inline]
19380    fn syntax(&self) -> &SyntaxNode {
19381        &self.syntax
19382    }
19383}
19384impl AstNode for AlterExtension {
19385    #[inline]
19386    fn can_cast(kind: SyntaxKind) -> bool {
19387        kind == SyntaxKind::ALTER_EXTENSION
19388    }
19389    #[inline]
19390    fn cast(syntax: SyntaxNode) -> Option<Self> {
19391        if Self::can_cast(syntax.kind()) {
19392            Some(Self { syntax })
19393        } else {
19394            None
19395        }
19396    }
19397    #[inline]
19398    fn syntax(&self) -> &SyntaxNode {
19399        &self.syntax
19400    }
19401}
19402impl AstNode for AlterForeignDataWrapper {
19403    #[inline]
19404    fn can_cast(kind: SyntaxKind) -> bool {
19405        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
19406    }
19407    #[inline]
19408    fn cast(syntax: SyntaxNode) -> Option<Self> {
19409        if Self::can_cast(syntax.kind()) {
19410            Some(Self { syntax })
19411        } else {
19412            None
19413        }
19414    }
19415    #[inline]
19416    fn syntax(&self) -> &SyntaxNode {
19417        &self.syntax
19418    }
19419}
19420impl AstNode for AlterForeignTable {
19421    #[inline]
19422    fn can_cast(kind: SyntaxKind) -> bool {
19423        kind == SyntaxKind::ALTER_FOREIGN_TABLE
19424    }
19425    #[inline]
19426    fn cast(syntax: SyntaxNode) -> Option<Self> {
19427        if Self::can_cast(syntax.kind()) {
19428            Some(Self { syntax })
19429        } else {
19430            None
19431        }
19432    }
19433    #[inline]
19434    fn syntax(&self) -> &SyntaxNode {
19435        &self.syntax
19436    }
19437}
19438impl AstNode for AlterFunction {
19439    #[inline]
19440    fn can_cast(kind: SyntaxKind) -> bool {
19441        kind == SyntaxKind::ALTER_FUNCTION
19442    }
19443    #[inline]
19444    fn cast(syntax: SyntaxNode) -> Option<Self> {
19445        if Self::can_cast(syntax.kind()) {
19446            Some(Self { syntax })
19447        } else {
19448            None
19449        }
19450    }
19451    #[inline]
19452    fn syntax(&self) -> &SyntaxNode {
19453        &self.syntax
19454    }
19455}
19456impl AstNode for AlterGroup {
19457    #[inline]
19458    fn can_cast(kind: SyntaxKind) -> bool {
19459        kind == SyntaxKind::ALTER_GROUP
19460    }
19461    #[inline]
19462    fn cast(syntax: SyntaxNode) -> Option<Self> {
19463        if Self::can_cast(syntax.kind()) {
19464            Some(Self { syntax })
19465        } else {
19466            None
19467        }
19468    }
19469    #[inline]
19470    fn syntax(&self) -> &SyntaxNode {
19471        &self.syntax
19472    }
19473}
19474impl AstNode for AlterIndex {
19475    #[inline]
19476    fn can_cast(kind: SyntaxKind) -> bool {
19477        kind == SyntaxKind::ALTER_INDEX
19478    }
19479    #[inline]
19480    fn cast(syntax: SyntaxNode) -> Option<Self> {
19481        if Self::can_cast(syntax.kind()) {
19482            Some(Self { syntax })
19483        } else {
19484            None
19485        }
19486    }
19487    #[inline]
19488    fn syntax(&self) -> &SyntaxNode {
19489        &self.syntax
19490    }
19491}
19492impl AstNode for AlterLanguage {
19493    #[inline]
19494    fn can_cast(kind: SyntaxKind) -> bool {
19495        kind == SyntaxKind::ALTER_LANGUAGE
19496    }
19497    #[inline]
19498    fn cast(syntax: SyntaxNode) -> Option<Self> {
19499        if Self::can_cast(syntax.kind()) {
19500            Some(Self { syntax })
19501        } else {
19502            None
19503        }
19504    }
19505    #[inline]
19506    fn syntax(&self) -> &SyntaxNode {
19507        &self.syntax
19508    }
19509}
19510impl AstNode for AlterLargeObject {
19511    #[inline]
19512    fn can_cast(kind: SyntaxKind) -> bool {
19513        kind == SyntaxKind::ALTER_LARGE_OBJECT
19514    }
19515    #[inline]
19516    fn cast(syntax: SyntaxNode) -> Option<Self> {
19517        if Self::can_cast(syntax.kind()) {
19518            Some(Self { syntax })
19519        } else {
19520            None
19521        }
19522    }
19523    #[inline]
19524    fn syntax(&self) -> &SyntaxNode {
19525        &self.syntax
19526    }
19527}
19528impl AstNode for AlterMaterializedView {
19529    #[inline]
19530    fn can_cast(kind: SyntaxKind) -> bool {
19531        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
19532    }
19533    #[inline]
19534    fn cast(syntax: SyntaxNode) -> Option<Self> {
19535        if Self::can_cast(syntax.kind()) {
19536            Some(Self { syntax })
19537        } else {
19538            None
19539        }
19540    }
19541    #[inline]
19542    fn syntax(&self) -> &SyntaxNode {
19543        &self.syntax
19544    }
19545}
19546impl AstNode for AlterOperator {
19547    #[inline]
19548    fn can_cast(kind: SyntaxKind) -> bool {
19549        kind == SyntaxKind::ALTER_OPERATOR
19550    }
19551    #[inline]
19552    fn cast(syntax: SyntaxNode) -> Option<Self> {
19553        if Self::can_cast(syntax.kind()) {
19554            Some(Self { syntax })
19555        } else {
19556            None
19557        }
19558    }
19559    #[inline]
19560    fn syntax(&self) -> &SyntaxNode {
19561        &self.syntax
19562    }
19563}
19564impl AstNode for AlterOperatorClass {
19565    #[inline]
19566    fn can_cast(kind: SyntaxKind) -> bool {
19567        kind == SyntaxKind::ALTER_OPERATOR_CLASS
19568    }
19569    #[inline]
19570    fn cast(syntax: SyntaxNode) -> Option<Self> {
19571        if Self::can_cast(syntax.kind()) {
19572            Some(Self { syntax })
19573        } else {
19574            None
19575        }
19576    }
19577    #[inline]
19578    fn syntax(&self) -> &SyntaxNode {
19579        &self.syntax
19580    }
19581}
19582impl AstNode for AlterOperatorFamily {
19583    #[inline]
19584    fn can_cast(kind: SyntaxKind) -> bool {
19585        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
19586    }
19587    #[inline]
19588    fn cast(syntax: SyntaxNode) -> Option<Self> {
19589        if Self::can_cast(syntax.kind()) {
19590            Some(Self { syntax })
19591        } else {
19592            None
19593        }
19594    }
19595    #[inline]
19596    fn syntax(&self) -> &SyntaxNode {
19597        &self.syntax
19598    }
19599}
19600impl AstNode for AlterOption {
19601    #[inline]
19602    fn can_cast(kind: SyntaxKind) -> bool {
19603        kind == SyntaxKind::ALTER_OPTION
19604    }
19605    #[inline]
19606    fn cast(syntax: SyntaxNode) -> Option<Self> {
19607        if Self::can_cast(syntax.kind()) {
19608            Some(Self { syntax })
19609        } else {
19610            None
19611        }
19612    }
19613    #[inline]
19614    fn syntax(&self) -> &SyntaxNode {
19615        &self.syntax
19616    }
19617}
19618impl AstNode for AlterOptionList {
19619    #[inline]
19620    fn can_cast(kind: SyntaxKind) -> bool {
19621        kind == SyntaxKind::ALTER_OPTION_LIST
19622    }
19623    #[inline]
19624    fn cast(syntax: SyntaxNode) -> Option<Self> {
19625        if Self::can_cast(syntax.kind()) {
19626            Some(Self { syntax })
19627        } else {
19628            None
19629        }
19630    }
19631    #[inline]
19632    fn syntax(&self) -> &SyntaxNode {
19633        &self.syntax
19634    }
19635}
19636impl AstNode for AlterPolicy {
19637    #[inline]
19638    fn can_cast(kind: SyntaxKind) -> bool {
19639        kind == SyntaxKind::ALTER_POLICY
19640    }
19641    #[inline]
19642    fn cast(syntax: SyntaxNode) -> Option<Self> {
19643        if Self::can_cast(syntax.kind()) {
19644            Some(Self { syntax })
19645        } else {
19646            None
19647        }
19648    }
19649    #[inline]
19650    fn syntax(&self) -> &SyntaxNode {
19651        &self.syntax
19652    }
19653}
19654impl AstNode for AlterProcedure {
19655    #[inline]
19656    fn can_cast(kind: SyntaxKind) -> bool {
19657        kind == SyntaxKind::ALTER_PROCEDURE
19658    }
19659    #[inline]
19660    fn cast(syntax: SyntaxNode) -> Option<Self> {
19661        if Self::can_cast(syntax.kind()) {
19662            Some(Self { syntax })
19663        } else {
19664            None
19665        }
19666    }
19667    #[inline]
19668    fn syntax(&self) -> &SyntaxNode {
19669        &self.syntax
19670    }
19671}
19672impl AstNode for AlterPropertyGraph {
19673    #[inline]
19674    fn can_cast(kind: SyntaxKind) -> bool {
19675        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
19676    }
19677    #[inline]
19678    fn cast(syntax: SyntaxNode) -> Option<Self> {
19679        if Self::can_cast(syntax.kind()) {
19680            Some(Self { syntax })
19681        } else {
19682            None
19683        }
19684    }
19685    #[inline]
19686    fn syntax(&self) -> &SyntaxNode {
19687        &self.syntax
19688    }
19689}
19690impl AstNode for AlterPublication {
19691    #[inline]
19692    fn can_cast(kind: SyntaxKind) -> bool {
19693        kind == SyntaxKind::ALTER_PUBLICATION
19694    }
19695    #[inline]
19696    fn cast(syntax: SyntaxNode) -> Option<Self> {
19697        if Self::can_cast(syntax.kind()) {
19698            Some(Self { syntax })
19699        } else {
19700            None
19701        }
19702    }
19703    #[inline]
19704    fn syntax(&self) -> &SyntaxNode {
19705        &self.syntax
19706    }
19707}
19708impl AstNode for AlterRole {
19709    #[inline]
19710    fn can_cast(kind: SyntaxKind) -> bool {
19711        kind == SyntaxKind::ALTER_ROLE
19712    }
19713    #[inline]
19714    fn cast(syntax: SyntaxNode) -> Option<Self> {
19715        if Self::can_cast(syntax.kind()) {
19716            Some(Self { syntax })
19717        } else {
19718            None
19719        }
19720    }
19721    #[inline]
19722    fn syntax(&self) -> &SyntaxNode {
19723        &self.syntax
19724    }
19725}
19726impl AstNode for AlterRoutine {
19727    #[inline]
19728    fn can_cast(kind: SyntaxKind) -> bool {
19729        kind == SyntaxKind::ALTER_ROUTINE
19730    }
19731    #[inline]
19732    fn cast(syntax: SyntaxNode) -> Option<Self> {
19733        if Self::can_cast(syntax.kind()) {
19734            Some(Self { syntax })
19735        } else {
19736            None
19737        }
19738    }
19739    #[inline]
19740    fn syntax(&self) -> &SyntaxNode {
19741        &self.syntax
19742    }
19743}
19744impl AstNode for AlterRule {
19745    #[inline]
19746    fn can_cast(kind: SyntaxKind) -> bool {
19747        kind == SyntaxKind::ALTER_RULE
19748    }
19749    #[inline]
19750    fn cast(syntax: SyntaxNode) -> Option<Self> {
19751        if Self::can_cast(syntax.kind()) {
19752            Some(Self { syntax })
19753        } else {
19754            None
19755        }
19756    }
19757    #[inline]
19758    fn syntax(&self) -> &SyntaxNode {
19759        &self.syntax
19760    }
19761}
19762impl AstNode for AlterSchema {
19763    #[inline]
19764    fn can_cast(kind: SyntaxKind) -> bool {
19765        kind == SyntaxKind::ALTER_SCHEMA
19766    }
19767    #[inline]
19768    fn cast(syntax: SyntaxNode) -> Option<Self> {
19769        if Self::can_cast(syntax.kind()) {
19770            Some(Self { syntax })
19771        } else {
19772            None
19773        }
19774    }
19775    #[inline]
19776    fn syntax(&self) -> &SyntaxNode {
19777        &self.syntax
19778    }
19779}
19780impl AstNode for AlterSequence {
19781    #[inline]
19782    fn can_cast(kind: SyntaxKind) -> bool {
19783        kind == SyntaxKind::ALTER_SEQUENCE
19784    }
19785    #[inline]
19786    fn cast(syntax: SyntaxNode) -> Option<Self> {
19787        if Self::can_cast(syntax.kind()) {
19788            Some(Self { syntax })
19789        } else {
19790            None
19791        }
19792    }
19793    #[inline]
19794    fn syntax(&self) -> &SyntaxNode {
19795        &self.syntax
19796    }
19797}
19798impl AstNode for AlterServer {
19799    #[inline]
19800    fn can_cast(kind: SyntaxKind) -> bool {
19801        kind == SyntaxKind::ALTER_SERVER
19802    }
19803    #[inline]
19804    fn cast(syntax: SyntaxNode) -> Option<Self> {
19805        if Self::can_cast(syntax.kind()) {
19806            Some(Self { syntax })
19807        } else {
19808            None
19809        }
19810    }
19811    #[inline]
19812    fn syntax(&self) -> &SyntaxNode {
19813        &self.syntax
19814    }
19815}
19816impl AstNode for AlterSetStatistics {
19817    #[inline]
19818    fn can_cast(kind: SyntaxKind) -> bool {
19819        kind == SyntaxKind::ALTER_SET_STATISTICS
19820    }
19821    #[inline]
19822    fn cast(syntax: SyntaxNode) -> Option<Self> {
19823        if Self::can_cast(syntax.kind()) {
19824            Some(Self { syntax })
19825        } else {
19826            None
19827        }
19828    }
19829    #[inline]
19830    fn syntax(&self) -> &SyntaxNode {
19831        &self.syntax
19832    }
19833}
19834impl AstNode for AlterStatistics {
19835    #[inline]
19836    fn can_cast(kind: SyntaxKind) -> bool {
19837        kind == SyntaxKind::ALTER_STATISTICS
19838    }
19839    #[inline]
19840    fn cast(syntax: SyntaxNode) -> Option<Self> {
19841        if Self::can_cast(syntax.kind()) {
19842            Some(Self { syntax })
19843        } else {
19844            None
19845        }
19846    }
19847    #[inline]
19848    fn syntax(&self) -> &SyntaxNode {
19849        &self.syntax
19850    }
19851}
19852impl AstNode for AlterSubscription {
19853    #[inline]
19854    fn can_cast(kind: SyntaxKind) -> bool {
19855        kind == SyntaxKind::ALTER_SUBSCRIPTION
19856    }
19857    #[inline]
19858    fn cast(syntax: SyntaxNode) -> Option<Self> {
19859        if Self::can_cast(syntax.kind()) {
19860            Some(Self { syntax })
19861        } else {
19862            None
19863        }
19864    }
19865    #[inline]
19866    fn syntax(&self) -> &SyntaxNode {
19867        &self.syntax
19868    }
19869}
19870impl AstNode for AlterSystem {
19871    #[inline]
19872    fn can_cast(kind: SyntaxKind) -> bool {
19873        kind == SyntaxKind::ALTER_SYSTEM
19874    }
19875    #[inline]
19876    fn cast(syntax: SyntaxNode) -> Option<Self> {
19877        if Self::can_cast(syntax.kind()) {
19878            Some(Self { syntax })
19879        } else {
19880            None
19881        }
19882    }
19883    #[inline]
19884    fn syntax(&self) -> &SyntaxNode {
19885        &self.syntax
19886    }
19887}
19888impl AstNode for AlterTable {
19889    #[inline]
19890    fn can_cast(kind: SyntaxKind) -> bool {
19891        kind == SyntaxKind::ALTER_TABLE
19892    }
19893    #[inline]
19894    fn cast(syntax: SyntaxNode) -> Option<Self> {
19895        if Self::can_cast(syntax.kind()) {
19896            Some(Self { syntax })
19897        } else {
19898            None
19899        }
19900    }
19901    #[inline]
19902    fn syntax(&self) -> &SyntaxNode {
19903        &self.syntax
19904    }
19905}
19906impl AstNode for AlterTablespace {
19907    #[inline]
19908    fn can_cast(kind: SyntaxKind) -> bool {
19909        kind == SyntaxKind::ALTER_TABLESPACE
19910    }
19911    #[inline]
19912    fn cast(syntax: SyntaxNode) -> Option<Self> {
19913        if Self::can_cast(syntax.kind()) {
19914            Some(Self { syntax })
19915        } else {
19916            None
19917        }
19918    }
19919    #[inline]
19920    fn syntax(&self) -> &SyntaxNode {
19921        &self.syntax
19922    }
19923}
19924impl AstNode for AlterTextSearchConfiguration {
19925    #[inline]
19926    fn can_cast(kind: SyntaxKind) -> bool {
19927        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
19928    }
19929    #[inline]
19930    fn cast(syntax: SyntaxNode) -> Option<Self> {
19931        if Self::can_cast(syntax.kind()) {
19932            Some(Self { syntax })
19933        } else {
19934            None
19935        }
19936    }
19937    #[inline]
19938    fn syntax(&self) -> &SyntaxNode {
19939        &self.syntax
19940    }
19941}
19942impl AstNode for AlterTextSearchDictionary {
19943    #[inline]
19944    fn can_cast(kind: SyntaxKind) -> bool {
19945        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
19946    }
19947    #[inline]
19948    fn cast(syntax: SyntaxNode) -> Option<Self> {
19949        if Self::can_cast(syntax.kind()) {
19950            Some(Self { syntax })
19951        } else {
19952            None
19953        }
19954    }
19955    #[inline]
19956    fn syntax(&self) -> &SyntaxNode {
19957        &self.syntax
19958    }
19959}
19960impl AstNode for AlterTextSearchParser {
19961    #[inline]
19962    fn can_cast(kind: SyntaxKind) -> bool {
19963        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
19964    }
19965    #[inline]
19966    fn cast(syntax: SyntaxNode) -> Option<Self> {
19967        if Self::can_cast(syntax.kind()) {
19968            Some(Self { syntax })
19969        } else {
19970            None
19971        }
19972    }
19973    #[inline]
19974    fn syntax(&self) -> &SyntaxNode {
19975        &self.syntax
19976    }
19977}
19978impl AstNode for AlterTextSearchTemplate {
19979    #[inline]
19980    fn can_cast(kind: SyntaxKind) -> bool {
19981        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
19982    }
19983    #[inline]
19984    fn cast(syntax: SyntaxNode) -> Option<Self> {
19985        if Self::can_cast(syntax.kind()) {
19986            Some(Self { syntax })
19987        } else {
19988            None
19989        }
19990    }
19991    #[inline]
19992    fn syntax(&self) -> &SyntaxNode {
19993        &self.syntax
19994    }
19995}
19996impl AstNode for AlterTrigger {
19997    #[inline]
19998    fn can_cast(kind: SyntaxKind) -> bool {
19999        kind == SyntaxKind::ALTER_TRIGGER
20000    }
20001    #[inline]
20002    fn cast(syntax: SyntaxNode) -> Option<Self> {
20003        if Self::can_cast(syntax.kind()) {
20004            Some(Self { syntax })
20005        } else {
20006            None
20007        }
20008    }
20009    #[inline]
20010    fn syntax(&self) -> &SyntaxNode {
20011        &self.syntax
20012    }
20013}
20014impl AstNode for AlterType {
20015    #[inline]
20016    fn can_cast(kind: SyntaxKind) -> bool {
20017        kind == SyntaxKind::ALTER_TYPE
20018    }
20019    #[inline]
20020    fn cast(syntax: SyntaxNode) -> Option<Self> {
20021        if Self::can_cast(syntax.kind()) {
20022            Some(Self { syntax })
20023        } else {
20024            None
20025        }
20026    }
20027    #[inline]
20028    fn syntax(&self) -> &SyntaxNode {
20029        &self.syntax
20030    }
20031}
20032impl AstNode for AlterUser {
20033    #[inline]
20034    fn can_cast(kind: SyntaxKind) -> bool {
20035        kind == SyntaxKind::ALTER_USER
20036    }
20037    #[inline]
20038    fn cast(syntax: SyntaxNode) -> Option<Self> {
20039        if Self::can_cast(syntax.kind()) {
20040            Some(Self { syntax })
20041        } else {
20042            None
20043        }
20044    }
20045    #[inline]
20046    fn syntax(&self) -> &SyntaxNode {
20047        &self.syntax
20048    }
20049}
20050impl AstNode for AlterUserMapping {
20051    #[inline]
20052    fn can_cast(kind: SyntaxKind) -> bool {
20053        kind == SyntaxKind::ALTER_USER_MAPPING
20054    }
20055    #[inline]
20056    fn cast(syntax: SyntaxNode) -> Option<Self> {
20057        if Self::can_cast(syntax.kind()) {
20058            Some(Self { syntax })
20059        } else {
20060            None
20061        }
20062    }
20063    #[inline]
20064    fn syntax(&self) -> &SyntaxNode {
20065        &self.syntax
20066    }
20067}
20068impl AstNode for AlterVertexEdgeLabels {
20069    #[inline]
20070    fn can_cast(kind: SyntaxKind) -> bool {
20071        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20072    }
20073    #[inline]
20074    fn cast(syntax: SyntaxNode) -> Option<Self> {
20075        if Self::can_cast(syntax.kind()) {
20076            Some(Self { syntax })
20077        } else {
20078            None
20079        }
20080    }
20081    #[inline]
20082    fn syntax(&self) -> &SyntaxNode {
20083        &self.syntax
20084    }
20085}
20086impl AstNode for AlterView {
20087    #[inline]
20088    fn can_cast(kind: SyntaxKind) -> bool {
20089        kind == SyntaxKind::ALTER_VIEW
20090    }
20091    #[inline]
20092    fn cast(syntax: SyntaxNode) -> Option<Self> {
20093        if Self::can_cast(syntax.kind()) {
20094            Some(Self { syntax })
20095        } else {
20096            None
20097        }
20098    }
20099    #[inline]
20100    fn syntax(&self) -> &SyntaxNode {
20101        &self.syntax
20102    }
20103}
20104impl AstNode for Analyze {
20105    #[inline]
20106    fn can_cast(kind: SyntaxKind) -> bool {
20107        kind == SyntaxKind::ANALYZE
20108    }
20109    #[inline]
20110    fn cast(syntax: SyntaxNode) -> Option<Self> {
20111        if Self::can_cast(syntax.kind()) {
20112            Some(Self { syntax })
20113        } else {
20114            None
20115        }
20116    }
20117    #[inline]
20118    fn syntax(&self) -> &SyntaxNode {
20119        &self.syntax
20120    }
20121}
20122impl AstNode for AnyFn {
20123    #[inline]
20124    fn can_cast(kind: SyntaxKind) -> bool {
20125        kind == SyntaxKind::ANY_FN
20126    }
20127    #[inline]
20128    fn cast(syntax: SyntaxNode) -> Option<Self> {
20129        if Self::can_cast(syntax.kind()) {
20130            Some(Self { syntax })
20131        } else {
20132            None
20133        }
20134    }
20135    #[inline]
20136    fn syntax(&self) -> &SyntaxNode {
20137        &self.syntax
20138    }
20139}
20140impl AstNode for Arg {
20141    #[inline]
20142    fn can_cast(kind: SyntaxKind) -> bool {
20143        kind == SyntaxKind::ARG
20144    }
20145    #[inline]
20146    fn cast(syntax: SyntaxNode) -> Option<Self> {
20147        if Self::can_cast(syntax.kind()) {
20148            Some(Self { syntax })
20149        } else {
20150            None
20151        }
20152    }
20153    #[inline]
20154    fn syntax(&self) -> &SyntaxNode {
20155        &self.syntax
20156    }
20157}
20158impl AstNode for ArgList {
20159    #[inline]
20160    fn can_cast(kind: SyntaxKind) -> bool {
20161        kind == SyntaxKind::ARG_LIST
20162    }
20163    #[inline]
20164    fn cast(syntax: SyntaxNode) -> Option<Self> {
20165        if Self::can_cast(syntax.kind()) {
20166            Some(Self { syntax })
20167        } else {
20168            None
20169        }
20170    }
20171    #[inline]
20172    fn syntax(&self) -> &SyntaxNode {
20173        &self.syntax
20174    }
20175}
20176impl AstNode for ArrayExpr {
20177    #[inline]
20178    fn can_cast(kind: SyntaxKind) -> bool {
20179        kind == SyntaxKind::ARRAY_EXPR
20180    }
20181    #[inline]
20182    fn cast(syntax: SyntaxNode) -> Option<Self> {
20183        if Self::can_cast(syntax.kind()) {
20184            Some(Self { syntax })
20185        } else {
20186            None
20187        }
20188    }
20189    #[inline]
20190    fn syntax(&self) -> &SyntaxNode {
20191        &self.syntax
20192    }
20193}
20194impl AstNode for ArrayType {
20195    #[inline]
20196    fn can_cast(kind: SyntaxKind) -> bool {
20197        kind == SyntaxKind::ARRAY_TYPE
20198    }
20199    #[inline]
20200    fn cast(syntax: SyntaxNode) -> Option<Self> {
20201        if Self::can_cast(syntax.kind()) {
20202            Some(Self { syntax })
20203        } else {
20204            None
20205        }
20206    }
20207    #[inline]
20208    fn syntax(&self) -> &SyntaxNode {
20209        &self.syntax
20210    }
20211}
20212impl AstNode for AsFuncOption {
20213    #[inline]
20214    fn can_cast(kind: SyntaxKind) -> bool {
20215        kind == SyntaxKind::AS_FUNC_OPTION
20216    }
20217    #[inline]
20218    fn cast(syntax: SyntaxNode) -> Option<Self> {
20219        if Self::can_cast(syntax.kind()) {
20220            Some(Self { syntax })
20221        } else {
20222            None
20223        }
20224    }
20225    #[inline]
20226    fn syntax(&self) -> &SyntaxNode {
20227        &self.syntax
20228    }
20229}
20230impl AstNode for AsName {
20231    #[inline]
20232    fn can_cast(kind: SyntaxKind) -> bool {
20233        kind == SyntaxKind::AS_NAME
20234    }
20235    #[inline]
20236    fn cast(syntax: SyntaxNode) -> Option<Self> {
20237        if Self::can_cast(syntax.kind()) {
20238            Some(Self { syntax })
20239        } else {
20240            None
20241        }
20242    }
20243    #[inline]
20244    fn syntax(&self) -> &SyntaxNode {
20245        &self.syntax
20246    }
20247}
20248impl AstNode for AsPolicyType {
20249    #[inline]
20250    fn can_cast(kind: SyntaxKind) -> bool {
20251        kind == SyntaxKind::AS_POLICY_TYPE
20252    }
20253    #[inline]
20254    fn cast(syntax: SyntaxNode) -> Option<Self> {
20255        if Self::can_cast(syntax.kind()) {
20256            Some(Self { syntax })
20257        } else {
20258            None
20259        }
20260    }
20261    #[inline]
20262    fn syntax(&self) -> &SyntaxNode {
20263        &self.syntax
20264    }
20265}
20266impl AstNode for AtTimeZone {
20267    #[inline]
20268    fn can_cast(kind: SyntaxKind) -> bool {
20269        kind == SyntaxKind::AT_TIME_ZONE
20270    }
20271    #[inline]
20272    fn cast(syntax: SyntaxNode) -> Option<Self> {
20273        if Self::can_cast(syntax.kind()) {
20274            Some(Self { syntax })
20275        } else {
20276            None
20277        }
20278    }
20279    #[inline]
20280    fn syntax(&self) -> &SyntaxNode {
20281        &self.syntax
20282    }
20283}
20284impl AstNode for AttachPartition {
20285    #[inline]
20286    fn can_cast(kind: SyntaxKind) -> bool {
20287        kind == SyntaxKind::ATTACH_PARTITION
20288    }
20289    #[inline]
20290    fn cast(syntax: SyntaxNode) -> Option<Self> {
20291        if Self::can_cast(syntax.kind()) {
20292            Some(Self { syntax })
20293        } else {
20294            None
20295        }
20296    }
20297    #[inline]
20298    fn syntax(&self) -> &SyntaxNode {
20299        &self.syntax
20300    }
20301}
20302impl AstNode for AttributeList {
20303    #[inline]
20304    fn can_cast(kind: SyntaxKind) -> bool {
20305        kind == SyntaxKind::ATTRIBUTE_LIST
20306    }
20307    #[inline]
20308    fn cast(syntax: SyntaxNode) -> Option<Self> {
20309        if Self::can_cast(syntax.kind()) {
20310            Some(Self { syntax })
20311        } else {
20312            None
20313        }
20314    }
20315    #[inline]
20316    fn syntax(&self) -> &SyntaxNode {
20317        &self.syntax
20318    }
20319}
20320impl AstNode for AttributeOption {
20321    #[inline]
20322    fn can_cast(kind: SyntaxKind) -> bool {
20323        kind == SyntaxKind::ATTRIBUTE_OPTION
20324    }
20325    #[inline]
20326    fn cast(syntax: SyntaxNode) -> Option<Self> {
20327        if Self::can_cast(syntax.kind()) {
20328            Some(Self { syntax })
20329        } else {
20330            None
20331        }
20332    }
20333    #[inline]
20334    fn syntax(&self) -> &SyntaxNode {
20335        &self.syntax
20336    }
20337}
20338impl AstNode for AttributeValue {
20339    #[inline]
20340    fn can_cast(kind: SyntaxKind) -> bool {
20341        kind == SyntaxKind::ATTRIBUTE_VALUE
20342    }
20343    #[inline]
20344    fn cast(syntax: SyntaxNode) -> Option<Self> {
20345        if Self::can_cast(syntax.kind()) {
20346            Some(Self { syntax })
20347        } else {
20348            None
20349        }
20350    }
20351    #[inline]
20352    fn syntax(&self) -> &SyntaxNode {
20353        &self.syntax
20354    }
20355}
20356impl AstNode for BeforeValue {
20357    #[inline]
20358    fn can_cast(kind: SyntaxKind) -> bool {
20359        kind == SyntaxKind::BEFORE_VALUE
20360    }
20361    #[inline]
20362    fn cast(syntax: SyntaxNode) -> Option<Self> {
20363        if Self::can_cast(syntax.kind()) {
20364            Some(Self { syntax })
20365        } else {
20366            None
20367        }
20368    }
20369    #[inline]
20370    fn syntax(&self) -> &SyntaxNode {
20371        &self.syntax
20372    }
20373}
20374impl AstNode for Begin {
20375    #[inline]
20376    fn can_cast(kind: SyntaxKind) -> bool {
20377        kind == SyntaxKind::BEGIN
20378    }
20379    #[inline]
20380    fn cast(syntax: SyntaxNode) -> Option<Self> {
20381        if Self::can_cast(syntax.kind()) {
20382            Some(Self { syntax })
20383        } else {
20384            None
20385        }
20386    }
20387    #[inline]
20388    fn syntax(&self) -> &SyntaxNode {
20389        &self.syntax
20390    }
20391}
20392impl AstNode for BeginFuncOption {
20393    #[inline]
20394    fn can_cast(kind: SyntaxKind) -> bool {
20395        kind == SyntaxKind::BEGIN_FUNC_OPTION
20396    }
20397    #[inline]
20398    fn cast(syntax: SyntaxNode) -> Option<Self> {
20399        if Self::can_cast(syntax.kind()) {
20400            Some(Self { syntax })
20401        } else {
20402            None
20403        }
20404    }
20405    #[inline]
20406    fn syntax(&self) -> &SyntaxNode {
20407        &self.syntax
20408    }
20409}
20410impl AstNode for BeginFuncOptionList {
20411    #[inline]
20412    fn can_cast(kind: SyntaxKind) -> bool {
20413        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
20414    }
20415    #[inline]
20416    fn cast(syntax: SyntaxNode) -> Option<Self> {
20417        if Self::can_cast(syntax.kind()) {
20418            Some(Self { syntax })
20419        } else {
20420            None
20421        }
20422    }
20423    #[inline]
20424    fn syntax(&self) -> &SyntaxNode {
20425        &self.syntax
20426    }
20427}
20428impl AstNode for BetweenExpr {
20429    #[inline]
20430    fn can_cast(kind: SyntaxKind) -> bool {
20431        kind == SyntaxKind::BETWEEN_EXPR
20432    }
20433    #[inline]
20434    fn cast(syntax: SyntaxNode) -> Option<Self> {
20435        if Self::can_cast(syntax.kind()) {
20436            Some(Self { syntax })
20437        } else {
20438            None
20439        }
20440    }
20441    #[inline]
20442    fn syntax(&self) -> &SyntaxNode {
20443        &self.syntax
20444    }
20445}
20446impl AstNode for BinExpr {
20447    #[inline]
20448    fn can_cast(kind: SyntaxKind) -> bool {
20449        kind == SyntaxKind::BIN_EXPR
20450    }
20451    #[inline]
20452    fn cast(syntax: SyntaxNode) -> Option<Self> {
20453        if Self::can_cast(syntax.kind()) {
20454            Some(Self { syntax })
20455        } else {
20456            None
20457        }
20458    }
20459    #[inline]
20460    fn syntax(&self) -> &SyntaxNode {
20461        &self.syntax
20462    }
20463}
20464impl AstNode for BitType {
20465    #[inline]
20466    fn can_cast(kind: SyntaxKind) -> bool {
20467        kind == SyntaxKind::BIT_TYPE
20468    }
20469    #[inline]
20470    fn cast(syntax: SyntaxNode) -> Option<Self> {
20471        if Self::can_cast(syntax.kind()) {
20472            Some(Self { syntax })
20473        } else {
20474            None
20475        }
20476    }
20477    #[inline]
20478    fn syntax(&self) -> &SyntaxNode {
20479        &self.syntax
20480    }
20481}
20482impl AstNode for Call {
20483    #[inline]
20484    fn can_cast(kind: SyntaxKind) -> bool {
20485        kind == SyntaxKind::CALL
20486    }
20487    #[inline]
20488    fn cast(syntax: SyntaxNode) -> Option<Self> {
20489        if Self::can_cast(syntax.kind()) {
20490            Some(Self { syntax })
20491        } else {
20492            None
20493        }
20494    }
20495    #[inline]
20496    fn syntax(&self) -> &SyntaxNode {
20497        &self.syntax
20498    }
20499}
20500impl AstNode for CallExpr {
20501    #[inline]
20502    fn can_cast(kind: SyntaxKind) -> bool {
20503        kind == SyntaxKind::CALL_EXPR
20504    }
20505    #[inline]
20506    fn cast(syntax: SyntaxNode) -> Option<Self> {
20507        if Self::can_cast(syntax.kind()) {
20508            Some(Self { syntax })
20509        } else {
20510            None
20511        }
20512    }
20513    #[inline]
20514    fn syntax(&self) -> &SyntaxNode {
20515        &self.syntax
20516    }
20517}
20518impl AstNode for Cascade {
20519    #[inline]
20520    fn can_cast(kind: SyntaxKind) -> bool {
20521        kind == SyntaxKind::CASCADE
20522    }
20523    #[inline]
20524    fn cast(syntax: SyntaxNode) -> Option<Self> {
20525        if Self::can_cast(syntax.kind()) {
20526            Some(Self { syntax })
20527        } else {
20528            None
20529        }
20530    }
20531    #[inline]
20532    fn syntax(&self) -> &SyntaxNode {
20533        &self.syntax
20534    }
20535}
20536impl AstNode for CaseExpr {
20537    #[inline]
20538    fn can_cast(kind: SyntaxKind) -> bool {
20539        kind == SyntaxKind::CASE_EXPR
20540    }
20541    #[inline]
20542    fn cast(syntax: SyntaxNode) -> Option<Self> {
20543        if Self::can_cast(syntax.kind()) {
20544            Some(Self { syntax })
20545        } else {
20546            None
20547        }
20548    }
20549    #[inline]
20550    fn syntax(&self) -> &SyntaxNode {
20551        &self.syntax
20552    }
20553}
20554impl AstNode for CastExpr {
20555    #[inline]
20556    fn can_cast(kind: SyntaxKind) -> bool {
20557        kind == SyntaxKind::CAST_EXPR
20558    }
20559    #[inline]
20560    fn cast(syntax: SyntaxNode) -> Option<Self> {
20561        if Self::can_cast(syntax.kind()) {
20562            Some(Self { syntax })
20563        } else {
20564            None
20565        }
20566    }
20567    #[inline]
20568    fn syntax(&self) -> &SyntaxNode {
20569        &self.syntax
20570    }
20571}
20572impl AstNode for CastSig {
20573    #[inline]
20574    fn can_cast(kind: SyntaxKind) -> bool {
20575        kind == SyntaxKind::CAST_SIG
20576    }
20577    #[inline]
20578    fn cast(syntax: SyntaxNode) -> Option<Self> {
20579        if Self::can_cast(syntax.kind()) {
20580            Some(Self { syntax })
20581        } else {
20582            None
20583        }
20584    }
20585    #[inline]
20586    fn syntax(&self) -> &SyntaxNode {
20587        &self.syntax
20588    }
20589}
20590impl AstNode for CharType {
20591    #[inline]
20592    fn can_cast(kind: SyntaxKind) -> bool {
20593        kind == SyntaxKind::CHAR_TYPE
20594    }
20595    #[inline]
20596    fn cast(syntax: SyntaxNode) -> Option<Self> {
20597        if Self::can_cast(syntax.kind()) {
20598            Some(Self { syntax })
20599        } else {
20600            None
20601        }
20602    }
20603    #[inline]
20604    fn syntax(&self) -> &SyntaxNode {
20605        &self.syntax
20606    }
20607}
20608impl AstNode for CheckConstraint {
20609    #[inline]
20610    fn can_cast(kind: SyntaxKind) -> bool {
20611        kind == SyntaxKind::CHECK_CONSTRAINT
20612    }
20613    #[inline]
20614    fn cast(syntax: SyntaxNode) -> Option<Self> {
20615        if Self::can_cast(syntax.kind()) {
20616            Some(Self { syntax })
20617        } else {
20618            None
20619        }
20620    }
20621    #[inline]
20622    fn syntax(&self) -> &SyntaxNode {
20623        &self.syntax
20624    }
20625}
20626impl AstNode for Checkpoint {
20627    #[inline]
20628    fn can_cast(kind: SyntaxKind) -> bool {
20629        kind == SyntaxKind::CHECKPOINT
20630    }
20631    #[inline]
20632    fn cast(syntax: SyntaxNode) -> Option<Self> {
20633        if Self::can_cast(syntax.kind()) {
20634            Some(Self { syntax })
20635        } else {
20636            None
20637        }
20638    }
20639    #[inline]
20640    fn syntax(&self) -> &SyntaxNode {
20641        &self.syntax
20642    }
20643}
20644impl AstNode for Close {
20645    #[inline]
20646    fn can_cast(kind: SyntaxKind) -> bool {
20647        kind == SyntaxKind::CLOSE
20648    }
20649    #[inline]
20650    fn cast(syntax: SyntaxNode) -> Option<Self> {
20651        if Self::can_cast(syntax.kind()) {
20652            Some(Self { syntax })
20653        } else {
20654            None
20655        }
20656    }
20657    #[inline]
20658    fn syntax(&self) -> &SyntaxNode {
20659        &self.syntax
20660    }
20661}
20662impl AstNode for Cluster {
20663    #[inline]
20664    fn can_cast(kind: SyntaxKind) -> bool {
20665        kind == SyntaxKind::CLUSTER
20666    }
20667    #[inline]
20668    fn cast(syntax: SyntaxNode) -> Option<Self> {
20669        if Self::can_cast(syntax.kind()) {
20670            Some(Self { syntax })
20671        } else {
20672            None
20673        }
20674    }
20675    #[inline]
20676    fn syntax(&self) -> &SyntaxNode {
20677        &self.syntax
20678    }
20679}
20680impl AstNode for ClusterOn {
20681    #[inline]
20682    fn can_cast(kind: SyntaxKind) -> bool {
20683        kind == SyntaxKind::CLUSTER_ON
20684    }
20685    #[inline]
20686    fn cast(syntax: SyntaxNode) -> Option<Self> {
20687        if Self::can_cast(syntax.kind()) {
20688            Some(Self { syntax })
20689        } else {
20690            None
20691        }
20692    }
20693    #[inline]
20694    fn syntax(&self) -> &SyntaxNode {
20695        &self.syntax
20696    }
20697}
20698impl AstNode for Collate {
20699    #[inline]
20700    fn can_cast(kind: SyntaxKind) -> bool {
20701        kind == SyntaxKind::COLLATE
20702    }
20703    #[inline]
20704    fn cast(syntax: SyntaxNode) -> Option<Self> {
20705        if Self::can_cast(syntax.kind()) {
20706            Some(Self { syntax })
20707        } else {
20708            None
20709        }
20710    }
20711    #[inline]
20712    fn syntax(&self) -> &SyntaxNode {
20713        &self.syntax
20714    }
20715}
20716impl AstNode for CollationForFn {
20717    #[inline]
20718    fn can_cast(kind: SyntaxKind) -> bool {
20719        kind == SyntaxKind::COLLATION_FOR_FN
20720    }
20721    #[inline]
20722    fn cast(syntax: SyntaxNode) -> Option<Self> {
20723        if Self::can_cast(syntax.kind()) {
20724            Some(Self { syntax })
20725        } else {
20726            None
20727        }
20728    }
20729    #[inline]
20730    fn syntax(&self) -> &SyntaxNode {
20731        &self.syntax
20732    }
20733}
20734impl AstNode for ColonColon {
20735    #[inline]
20736    fn can_cast(kind: SyntaxKind) -> bool {
20737        kind == SyntaxKind::COLON_COLON
20738    }
20739    #[inline]
20740    fn cast(syntax: SyntaxNode) -> Option<Self> {
20741        if Self::can_cast(syntax.kind()) {
20742            Some(Self { syntax })
20743        } else {
20744            None
20745        }
20746    }
20747    #[inline]
20748    fn syntax(&self) -> &SyntaxNode {
20749        &self.syntax
20750    }
20751}
20752impl AstNode for ColonEq {
20753    #[inline]
20754    fn can_cast(kind: SyntaxKind) -> bool {
20755        kind == SyntaxKind::COLON_EQ
20756    }
20757    #[inline]
20758    fn cast(syntax: SyntaxNode) -> Option<Self> {
20759        if Self::can_cast(syntax.kind()) {
20760            Some(Self { syntax })
20761        } else {
20762            None
20763        }
20764    }
20765    #[inline]
20766    fn syntax(&self) -> &SyntaxNode {
20767        &self.syntax
20768    }
20769}
20770impl AstNode for Column {
20771    #[inline]
20772    fn can_cast(kind: SyntaxKind) -> bool {
20773        kind == SyntaxKind::COLUMN
20774    }
20775    #[inline]
20776    fn cast(syntax: SyntaxNode) -> Option<Self> {
20777        if Self::can_cast(syntax.kind()) {
20778            Some(Self { syntax })
20779        } else {
20780            None
20781        }
20782    }
20783    #[inline]
20784    fn syntax(&self) -> &SyntaxNode {
20785        &self.syntax
20786    }
20787}
20788impl AstNode for ColumnList {
20789    #[inline]
20790    fn can_cast(kind: SyntaxKind) -> bool {
20791        kind == SyntaxKind::COLUMN_LIST
20792    }
20793    #[inline]
20794    fn cast(syntax: SyntaxNode) -> Option<Self> {
20795        if Self::can_cast(syntax.kind()) {
20796            Some(Self { syntax })
20797        } else {
20798            None
20799        }
20800    }
20801    #[inline]
20802    fn syntax(&self) -> &SyntaxNode {
20803        &self.syntax
20804    }
20805}
20806impl AstNode for CommentOn {
20807    #[inline]
20808    fn can_cast(kind: SyntaxKind) -> bool {
20809        kind == SyntaxKind::COMMENT_ON
20810    }
20811    #[inline]
20812    fn cast(syntax: SyntaxNode) -> Option<Self> {
20813        if Self::can_cast(syntax.kind()) {
20814            Some(Self { syntax })
20815        } else {
20816            None
20817        }
20818    }
20819    #[inline]
20820    fn syntax(&self) -> &SyntaxNode {
20821        &self.syntax
20822    }
20823}
20824impl AstNode for Commit {
20825    #[inline]
20826    fn can_cast(kind: SyntaxKind) -> bool {
20827        kind == SyntaxKind::COMMIT
20828    }
20829    #[inline]
20830    fn cast(syntax: SyntaxNode) -> Option<Self> {
20831        if Self::can_cast(syntax.kind()) {
20832            Some(Self { syntax })
20833        } else {
20834            None
20835        }
20836    }
20837    #[inline]
20838    fn syntax(&self) -> &SyntaxNode {
20839        &self.syntax
20840    }
20841}
20842impl AstNode for CompoundSelect {
20843    #[inline]
20844    fn can_cast(kind: SyntaxKind) -> bool {
20845        kind == SyntaxKind::COMPOUND_SELECT
20846    }
20847    #[inline]
20848    fn cast(syntax: SyntaxNode) -> Option<Self> {
20849        if Self::can_cast(syntax.kind()) {
20850            Some(Self { syntax })
20851        } else {
20852            None
20853        }
20854    }
20855    #[inline]
20856    fn syntax(&self) -> &SyntaxNode {
20857        &self.syntax
20858    }
20859}
20860impl AstNode for CompressionMethod {
20861    #[inline]
20862    fn can_cast(kind: SyntaxKind) -> bool {
20863        kind == SyntaxKind::COMPRESSION_METHOD
20864    }
20865    #[inline]
20866    fn cast(syntax: SyntaxNode) -> Option<Self> {
20867        if Self::can_cast(syntax.kind()) {
20868            Some(Self { syntax })
20869        } else {
20870            None
20871        }
20872    }
20873    #[inline]
20874    fn syntax(&self) -> &SyntaxNode {
20875        &self.syntax
20876    }
20877}
20878impl AstNode for ConflictDoNothing {
20879    #[inline]
20880    fn can_cast(kind: SyntaxKind) -> bool {
20881        kind == SyntaxKind::CONFLICT_DO_NOTHING
20882    }
20883    #[inline]
20884    fn cast(syntax: SyntaxNode) -> Option<Self> {
20885        if Self::can_cast(syntax.kind()) {
20886            Some(Self { syntax })
20887        } else {
20888            None
20889        }
20890    }
20891    #[inline]
20892    fn syntax(&self) -> &SyntaxNode {
20893        &self.syntax
20894    }
20895}
20896impl AstNode for ConflictDoSelect {
20897    #[inline]
20898    fn can_cast(kind: SyntaxKind) -> bool {
20899        kind == SyntaxKind::CONFLICT_DO_SELECT
20900    }
20901    #[inline]
20902    fn cast(syntax: SyntaxNode) -> Option<Self> {
20903        if Self::can_cast(syntax.kind()) {
20904            Some(Self { syntax })
20905        } else {
20906            None
20907        }
20908    }
20909    #[inline]
20910    fn syntax(&self) -> &SyntaxNode {
20911        &self.syntax
20912    }
20913}
20914impl AstNode for ConflictDoUpdateSet {
20915    #[inline]
20916    fn can_cast(kind: SyntaxKind) -> bool {
20917        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
20918    }
20919    #[inline]
20920    fn cast(syntax: SyntaxNode) -> Option<Self> {
20921        if Self::can_cast(syntax.kind()) {
20922            Some(Self { syntax })
20923        } else {
20924            None
20925        }
20926    }
20927    #[inline]
20928    fn syntax(&self) -> &SyntaxNode {
20929        &self.syntax
20930    }
20931}
20932impl AstNode for ConflictIndexItem {
20933    #[inline]
20934    fn can_cast(kind: SyntaxKind) -> bool {
20935        kind == SyntaxKind::CONFLICT_INDEX_ITEM
20936    }
20937    #[inline]
20938    fn cast(syntax: SyntaxNode) -> Option<Self> {
20939        if Self::can_cast(syntax.kind()) {
20940            Some(Self { syntax })
20941        } else {
20942            None
20943        }
20944    }
20945    #[inline]
20946    fn syntax(&self) -> &SyntaxNode {
20947        &self.syntax
20948    }
20949}
20950impl AstNode for ConflictIndexItemList {
20951    #[inline]
20952    fn can_cast(kind: SyntaxKind) -> bool {
20953        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
20954    }
20955    #[inline]
20956    fn cast(syntax: SyntaxNode) -> Option<Self> {
20957        if Self::can_cast(syntax.kind()) {
20958            Some(Self { syntax })
20959        } else {
20960            None
20961        }
20962    }
20963    #[inline]
20964    fn syntax(&self) -> &SyntaxNode {
20965        &self.syntax
20966    }
20967}
20968impl AstNode for ConflictOnConstraint {
20969    #[inline]
20970    fn can_cast(kind: SyntaxKind) -> bool {
20971        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
20972    }
20973    #[inline]
20974    fn cast(syntax: SyntaxNode) -> Option<Self> {
20975        if Self::can_cast(syntax.kind()) {
20976            Some(Self { syntax })
20977        } else {
20978            None
20979        }
20980    }
20981    #[inline]
20982    fn syntax(&self) -> &SyntaxNode {
20983        &self.syntax
20984    }
20985}
20986impl AstNode for ConflictOnIndex {
20987    #[inline]
20988    fn can_cast(kind: SyntaxKind) -> bool {
20989        kind == SyntaxKind::CONFLICT_ON_INDEX
20990    }
20991    #[inline]
20992    fn cast(syntax: SyntaxNode) -> Option<Self> {
20993        if Self::can_cast(syntax.kind()) {
20994            Some(Self { syntax })
20995        } else {
20996            None
20997        }
20998    }
20999    #[inline]
21000    fn syntax(&self) -> &SyntaxNode {
21001        &self.syntax
21002    }
21003}
21004impl AstNode for ConstraintExclusion {
21005    #[inline]
21006    fn can_cast(kind: SyntaxKind) -> bool {
21007        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21008    }
21009    #[inline]
21010    fn cast(syntax: SyntaxNode) -> Option<Self> {
21011        if Self::can_cast(syntax.kind()) {
21012            Some(Self { syntax })
21013        } else {
21014            None
21015        }
21016    }
21017    #[inline]
21018    fn syntax(&self) -> &SyntaxNode {
21019        &self.syntax
21020    }
21021}
21022impl AstNode for ConstraintExclusionList {
21023    #[inline]
21024    fn can_cast(kind: SyntaxKind) -> bool {
21025        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21026    }
21027    #[inline]
21028    fn cast(syntax: SyntaxNode) -> Option<Self> {
21029        if Self::can_cast(syntax.kind()) {
21030            Some(Self { syntax })
21031        } else {
21032            None
21033        }
21034    }
21035    #[inline]
21036    fn syntax(&self) -> &SyntaxNode {
21037        &self.syntax
21038    }
21039}
21040impl AstNode for ConstraintIncludeClause {
21041    #[inline]
21042    fn can_cast(kind: SyntaxKind) -> bool {
21043        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21044    }
21045    #[inline]
21046    fn cast(syntax: SyntaxNode) -> Option<Self> {
21047        if Self::can_cast(syntax.kind()) {
21048            Some(Self { syntax })
21049        } else {
21050            None
21051        }
21052    }
21053    #[inline]
21054    fn syntax(&self) -> &SyntaxNode {
21055        &self.syntax
21056    }
21057}
21058impl AstNode for ConstraintIndexMethod {
21059    #[inline]
21060    fn can_cast(kind: SyntaxKind) -> bool {
21061        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21062    }
21063    #[inline]
21064    fn cast(syntax: SyntaxNode) -> Option<Self> {
21065        if Self::can_cast(syntax.kind()) {
21066            Some(Self { syntax })
21067        } else {
21068            None
21069        }
21070    }
21071    #[inline]
21072    fn syntax(&self) -> &SyntaxNode {
21073        &self.syntax
21074    }
21075}
21076impl AstNode for ConstraintIndexTablespace {
21077    #[inline]
21078    fn can_cast(kind: SyntaxKind) -> bool {
21079        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21080    }
21081    #[inline]
21082    fn cast(syntax: SyntaxNode) -> Option<Self> {
21083        if Self::can_cast(syntax.kind()) {
21084            Some(Self { syntax })
21085        } else {
21086            None
21087        }
21088    }
21089    #[inline]
21090    fn syntax(&self) -> &SyntaxNode {
21091        &self.syntax
21092    }
21093}
21094impl AstNode for ConstraintName {
21095    #[inline]
21096    fn can_cast(kind: SyntaxKind) -> bool {
21097        kind == SyntaxKind::CONSTRAINT_NAME
21098    }
21099    #[inline]
21100    fn cast(syntax: SyntaxNode) -> Option<Self> {
21101        if Self::can_cast(syntax.kind()) {
21102            Some(Self { syntax })
21103        } else {
21104            None
21105        }
21106    }
21107    #[inline]
21108    fn syntax(&self) -> &SyntaxNode {
21109        &self.syntax
21110    }
21111}
21112impl AstNode for Copy {
21113    #[inline]
21114    fn can_cast(kind: SyntaxKind) -> bool {
21115        kind == SyntaxKind::COPY
21116    }
21117    #[inline]
21118    fn cast(syntax: SyntaxNode) -> Option<Self> {
21119        if Self::can_cast(syntax.kind()) {
21120            Some(Self { syntax })
21121        } else {
21122            None
21123        }
21124    }
21125    #[inline]
21126    fn syntax(&self) -> &SyntaxNode {
21127        &self.syntax
21128    }
21129}
21130impl AstNode for CopyOption {
21131    #[inline]
21132    fn can_cast(kind: SyntaxKind) -> bool {
21133        kind == SyntaxKind::COPY_OPTION
21134    }
21135    #[inline]
21136    fn cast(syntax: SyntaxNode) -> Option<Self> {
21137        if Self::can_cast(syntax.kind()) {
21138            Some(Self { syntax })
21139        } else {
21140            None
21141        }
21142    }
21143    #[inline]
21144    fn syntax(&self) -> &SyntaxNode {
21145        &self.syntax
21146    }
21147}
21148impl AstNode for CopyOptionList {
21149    #[inline]
21150    fn can_cast(kind: SyntaxKind) -> bool {
21151        kind == SyntaxKind::COPY_OPTION_LIST
21152    }
21153    #[inline]
21154    fn cast(syntax: SyntaxNode) -> Option<Self> {
21155        if Self::can_cast(syntax.kind()) {
21156            Some(Self { syntax })
21157        } else {
21158            None
21159        }
21160    }
21161    #[inline]
21162    fn syntax(&self) -> &SyntaxNode {
21163        &self.syntax
21164    }
21165}
21166impl AstNode for CostFuncOption {
21167    #[inline]
21168    fn can_cast(kind: SyntaxKind) -> bool {
21169        kind == SyntaxKind::COST_FUNC_OPTION
21170    }
21171    #[inline]
21172    fn cast(syntax: SyntaxNode) -> Option<Self> {
21173        if Self::can_cast(syntax.kind()) {
21174            Some(Self { syntax })
21175        } else {
21176            None
21177        }
21178    }
21179    #[inline]
21180    fn syntax(&self) -> &SyntaxNode {
21181        &self.syntax
21182    }
21183}
21184impl AstNode for CreateAccessMethod {
21185    #[inline]
21186    fn can_cast(kind: SyntaxKind) -> bool {
21187        kind == SyntaxKind::CREATE_ACCESS_METHOD
21188    }
21189    #[inline]
21190    fn cast(syntax: SyntaxNode) -> Option<Self> {
21191        if Self::can_cast(syntax.kind()) {
21192            Some(Self { syntax })
21193        } else {
21194            None
21195        }
21196    }
21197    #[inline]
21198    fn syntax(&self) -> &SyntaxNode {
21199        &self.syntax
21200    }
21201}
21202impl AstNode for CreateAggregate {
21203    #[inline]
21204    fn can_cast(kind: SyntaxKind) -> bool {
21205        kind == SyntaxKind::CREATE_AGGREGATE
21206    }
21207    #[inline]
21208    fn cast(syntax: SyntaxNode) -> Option<Self> {
21209        if Self::can_cast(syntax.kind()) {
21210            Some(Self { syntax })
21211        } else {
21212            None
21213        }
21214    }
21215    #[inline]
21216    fn syntax(&self) -> &SyntaxNode {
21217        &self.syntax
21218    }
21219}
21220impl AstNode for CreateCast {
21221    #[inline]
21222    fn can_cast(kind: SyntaxKind) -> bool {
21223        kind == SyntaxKind::CREATE_CAST
21224    }
21225    #[inline]
21226    fn cast(syntax: SyntaxNode) -> Option<Self> {
21227        if Self::can_cast(syntax.kind()) {
21228            Some(Self { syntax })
21229        } else {
21230            None
21231        }
21232    }
21233    #[inline]
21234    fn syntax(&self) -> &SyntaxNode {
21235        &self.syntax
21236    }
21237}
21238impl AstNode for CreateCollation {
21239    #[inline]
21240    fn can_cast(kind: SyntaxKind) -> bool {
21241        kind == SyntaxKind::CREATE_COLLATION
21242    }
21243    #[inline]
21244    fn cast(syntax: SyntaxNode) -> Option<Self> {
21245        if Self::can_cast(syntax.kind()) {
21246            Some(Self { syntax })
21247        } else {
21248            None
21249        }
21250    }
21251    #[inline]
21252    fn syntax(&self) -> &SyntaxNode {
21253        &self.syntax
21254    }
21255}
21256impl AstNode for CreateConversion {
21257    #[inline]
21258    fn can_cast(kind: SyntaxKind) -> bool {
21259        kind == SyntaxKind::CREATE_CONVERSION
21260    }
21261    #[inline]
21262    fn cast(syntax: SyntaxNode) -> Option<Self> {
21263        if Self::can_cast(syntax.kind()) {
21264            Some(Self { syntax })
21265        } else {
21266            None
21267        }
21268    }
21269    #[inline]
21270    fn syntax(&self) -> &SyntaxNode {
21271        &self.syntax
21272    }
21273}
21274impl AstNode for CreateDatabase {
21275    #[inline]
21276    fn can_cast(kind: SyntaxKind) -> bool {
21277        kind == SyntaxKind::CREATE_DATABASE
21278    }
21279    #[inline]
21280    fn cast(syntax: SyntaxNode) -> Option<Self> {
21281        if Self::can_cast(syntax.kind()) {
21282            Some(Self { syntax })
21283        } else {
21284            None
21285        }
21286    }
21287    #[inline]
21288    fn syntax(&self) -> &SyntaxNode {
21289        &self.syntax
21290    }
21291}
21292impl AstNode for CreateDatabaseOption {
21293    #[inline]
21294    fn can_cast(kind: SyntaxKind) -> bool {
21295        kind == SyntaxKind::CREATE_DATABASE_OPTION
21296    }
21297    #[inline]
21298    fn cast(syntax: SyntaxNode) -> Option<Self> {
21299        if Self::can_cast(syntax.kind()) {
21300            Some(Self { syntax })
21301        } else {
21302            None
21303        }
21304    }
21305    #[inline]
21306    fn syntax(&self) -> &SyntaxNode {
21307        &self.syntax
21308    }
21309}
21310impl AstNode for CreateDatabaseOptionList {
21311    #[inline]
21312    fn can_cast(kind: SyntaxKind) -> bool {
21313        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
21314    }
21315    #[inline]
21316    fn cast(syntax: SyntaxNode) -> Option<Self> {
21317        if Self::can_cast(syntax.kind()) {
21318            Some(Self { syntax })
21319        } else {
21320            None
21321        }
21322    }
21323    #[inline]
21324    fn syntax(&self) -> &SyntaxNode {
21325        &self.syntax
21326    }
21327}
21328impl AstNode for CreateDomain {
21329    #[inline]
21330    fn can_cast(kind: SyntaxKind) -> bool {
21331        kind == SyntaxKind::CREATE_DOMAIN
21332    }
21333    #[inline]
21334    fn cast(syntax: SyntaxNode) -> Option<Self> {
21335        if Self::can_cast(syntax.kind()) {
21336            Some(Self { syntax })
21337        } else {
21338            None
21339        }
21340    }
21341    #[inline]
21342    fn syntax(&self) -> &SyntaxNode {
21343        &self.syntax
21344    }
21345}
21346impl AstNode for CreateEventTrigger {
21347    #[inline]
21348    fn can_cast(kind: SyntaxKind) -> bool {
21349        kind == SyntaxKind::CREATE_EVENT_TRIGGER
21350    }
21351    #[inline]
21352    fn cast(syntax: SyntaxNode) -> Option<Self> {
21353        if Self::can_cast(syntax.kind()) {
21354            Some(Self { syntax })
21355        } else {
21356            None
21357        }
21358    }
21359    #[inline]
21360    fn syntax(&self) -> &SyntaxNode {
21361        &self.syntax
21362    }
21363}
21364impl AstNode for CreateExtension {
21365    #[inline]
21366    fn can_cast(kind: SyntaxKind) -> bool {
21367        kind == SyntaxKind::CREATE_EXTENSION
21368    }
21369    #[inline]
21370    fn cast(syntax: SyntaxNode) -> Option<Self> {
21371        if Self::can_cast(syntax.kind()) {
21372            Some(Self { syntax })
21373        } else {
21374            None
21375        }
21376    }
21377    #[inline]
21378    fn syntax(&self) -> &SyntaxNode {
21379        &self.syntax
21380    }
21381}
21382impl AstNode for CreateForeignDataWrapper {
21383    #[inline]
21384    fn can_cast(kind: SyntaxKind) -> bool {
21385        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21386    }
21387    #[inline]
21388    fn cast(syntax: SyntaxNode) -> Option<Self> {
21389        if Self::can_cast(syntax.kind()) {
21390            Some(Self { syntax })
21391        } else {
21392            None
21393        }
21394    }
21395    #[inline]
21396    fn syntax(&self) -> &SyntaxNode {
21397        &self.syntax
21398    }
21399}
21400impl AstNode for CreateForeignTable {
21401    #[inline]
21402    fn can_cast(kind: SyntaxKind) -> bool {
21403        kind == SyntaxKind::CREATE_FOREIGN_TABLE
21404    }
21405    #[inline]
21406    fn cast(syntax: SyntaxNode) -> Option<Self> {
21407        if Self::can_cast(syntax.kind()) {
21408            Some(Self { syntax })
21409        } else {
21410            None
21411        }
21412    }
21413    #[inline]
21414    fn syntax(&self) -> &SyntaxNode {
21415        &self.syntax
21416    }
21417}
21418impl AstNode for CreateFunction {
21419    #[inline]
21420    fn can_cast(kind: SyntaxKind) -> bool {
21421        kind == SyntaxKind::CREATE_FUNCTION
21422    }
21423    #[inline]
21424    fn cast(syntax: SyntaxNode) -> Option<Self> {
21425        if Self::can_cast(syntax.kind()) {
21426            Some(Self { syntax })
21427        } else {
21428            None
21429        }
21430    }
21431    #[inline]
21432    fn syntax(&self) -> &SyntaxNode {
21433        &self.syntax
21434    }
21435}
21436impl AstNode for CreateGroup {
21437    #[inline]
21438    fn can_cast(kind: SyntaxKind) -> bool {
21439        kind == SyntaxKind::CREATE_GROUP
21440    }
21441    #[inline]
21442    fn cast(syntax: SyntaxNode) -> Option<Self> {
21443        if Self::can_cast(syntax.kind()) {
21444            Some(Self { syntax })
21445        } else {
21446            None
21447        }
21448    }
21449    #[inline]
21450    fn syntax(&self) -> &SyntaxNode {
21451        &self.syntax
21452    }
21453}
21454impl AstNode for CreateIndex {
21455    #[inline]
21456    fn can_cast(kind: SyntaxKind) -> bool {
21457        kind == SyntaxKind::CREATE_INDEX
21458    }
21459    #[inline]
21460    fn cast(syntax: SyntaxNode) -> Option<Self> {
21461        if Self::can_cast(syntax.kind()) {
21462            Some(Self { syntax })
21463        } else {
21464            None
21465        }
21466    }
21467    #[inline]
21468    fn syntax(&self) -> &SyntaxNode {
21469        &self.syntax
21470    }
21471}
21472impl AstNode for CreateLanguage {
21473    #[inline]
21474    fn can_cast(kind: SyntaxKind) -> bool {
21475        kind == SyntaxKind::CREATE_LANGUAGE
21476    }
21477    #[inline]
21478    fn cast(syntax: SyntaxNode) -> Option<Self> {
21479        if Self::can_cast(syntax.kind()) {
21480            Some(Self { syntax })
21481        } else {
21482            None
21483        }
21484    }
21485    #[inline]
21486    fn syntax(&self) -> &SyntaxNode {
21487        &self.syntax
21488    }
21489}
21490impl AstNode for CreateMaterializedView {
21491    #[inline]
21492    fn can_cast(kind: SyntaxKind) -> bool {
21493        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
21494    }
21495    #[inline]
21496    fn cast(syntax: SyntaxNode) -> Option<Self> {
21497        if Self::can_cast(syntax.kind()) {
21498            Some(Self { syntax })
21499        } else {
21500            None
21501        }
21502    }
21503    #[inline]
21504    fn syntax(&self) -> &SyntaxNode {
21505        &self.syntax
21506    }
21507}
21508impl AstNode for CreateOperator {
21509    #[inline]
21510    fn can_cast(kind: SyntaxKind) -> bool {
21511        kind == SyntaxKind::CREATE_OPERATOR
21512    }
21513    #[inline]
21514    fn cast(syntax: SyntaxNode) -> Option<Self> {
21515        if Self::can_cast(syntax.kind()) {
21516            Some(Self { syntax })
21517        } else {
21518            None
21519        }
21520    }
21521    #[inline]
21522    fn syntax(&self) -> &SyntaxNode {
21523        &self.syntax
21524    }
21525}
21526impl AstNode for CreateOperatorClass {
21527    #[inline]
21528    fn can_cast(kind: SyntaxKind) -> bool {
21529        kind == SyntaxKind::CREATE_OPERATOR_CLASS
21530    }
21531    #[inline]
21532    fn cast(syntax: SyntaxNode) -> Option<Self> {
21533        if Self::can_cast(syntax.kind()) {
21534            Some(Self { syntax })
21535        } else {
21536            None
21537        }
21538    }
21539    #[inline]
21540    fn syntax(&self) -> &SyntaxNode {
21541        &self.syntax
21542    }
21543}
21544impl AstNode for CreateOperatorFamily {
21545    #[inline]
21546    fn can_cast(kind: SyntaxKind) -> bool {
21547        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
21548    }
21549    #[inline]
21550    fn cast(syntax: SyntaxNode) -> Option<Self> {
21551        if Self::can_cast(syntax.kind()) {
21552            Some(Self { syntax })
21553        } else {
21554            None
21555        }
21556    }
21557    #[inline]
21558    fn syntax(&self) -> &SyntaxNode {
21559        &self.syntax
21560    }
21561}
21562impl AstNode for CreatePolicy {
21563    #[inline]
21564    fn can_cast(kind: SyntaxKind) -> bool {
21565        kind == SyntaxKind::CREATE_POLICY
21566    }
21567    #[inline]
21568    fn cast(syntax: SyntaxNode) -> Option<Self> {
21569        if Self::can_cast(syntax.kind()) {
21570            Some(Self { syntax })
21571        } else {
21572            None
21573        }
21574    }
21575    #[inline]
21576    fn syntax(&self) -> &SyntaxNode {
21577        &self.syntax
21578    }
21579}
21580impl AstNode for CreateProcedure {
21581    #[inline]
21582    fn can_cast(kind: SyntaxKind) -> bool {
21583        kind == SyntaxKind::CREATE_PROCEDURE
21584    }
21585    #[inline]
21586    fn cast(syntax: SyntaxNode) -> Option<Self> {
21587        if Self::can_cast(syntax.kind()) {
21588            Some(Self { syntax })
21589        } else {
21590            None
21591        }
21592    }
21593    #[inline]
21594    fn syntax(&self) -> &SyntaxNode {
21595        &self.syntax
21596    }
21597}
21598impl AstNode for CreatePropertyGraph {
21599    #[inline]
21600    fn can_cast(kind: SyntaxKind) -> bool {
21601        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
21602    }
21603    #[inline]
21604    fn cast(syntax: SyntaxNode) -> Option<Self> {
21605        if Self::can_cast(syntax.kind()) {
21606            Some(Self { syntax })
21607        } else {
21608            None
21609        }
21610    }
21611    #[inline]
21612    fn syntax(&self) -> &SyntaxNode {
21613        &self.syntax
21614    }
21615}
21616impl AstNode for CreatePublication {
21617    #[inline]
21618    fn can_cast(kind: SyntaxKind) -> bool {
21619        kind == SyntaxKind::CREATE_PUBLICATION
21620    }
21621    #[inline]
21622    fn cast(syntax: SyntaxNode) -> Option<Self> {
21623        if Self::can_cast(syntax.kind()) {
21624            Some(Self { syntax })
21625        } else {
21626            None
21627        }
21628    }
21629    #[inline]
21630    fn syntax(&self) -> &SyntaxNode {
21631        &self.syntax
21632    }
21633}
21634impl AstNode for CreateRole {
21635    #[inline]
21636    fn can_cast(kind: SyntaxKind) -> bool {
21637        kind == SyntaxKind::CREATE_ROLE
21638    }
21639    #[inline]
21640    fn cast(syntax: SyntaxNode) -> Option<Self> {
21641        if Self::can_cast(syntax.kind()) {
21642            Some(Self { syntax })
21643        } else {
21644            None
21645        }
21646    }
21647    #[inline]
21648    fn syntax(&self) -> &SyntaxNode {
21649        &self.syntax
21650    }
21651}
21652impl AstNode for CreateRule {
21653    #[inline]
21654    fn can_cast(kind: SyntaxKind) -> bool {
21655        kind == SyntaxKind::CREATE_RULE
21656    }
21657    #[inline]
21658    fn cast(syntax: SyntaxNode) -> Option<Self> {
21659        if Self::can_cast(syntax.kind()) {
21660            Some(Self { syntax })
21661        } else {
21662            None
21663        }
21664    }
21665    #[inline]
21666    fn syntax(&self) -> &SyntaxNode {
21667        &self.syntax
21668    }
21669}
21670impl AstNode for CreateSchema {
21671    #[inline]
21672    fn can_cast(kind: SyntaxKind) -> bool {
21673        kind == SyntaxKind::CREATE_SCHEMA
21674    }
21675    #[inline]
21676    fn cast(syntax: SyntaxNode) -> Option<Self> {
21677        if Self::can_cast(syntax.kind()) {
21678            Some(Self { syntax })
21679        } else {
21680            None
21681        }
21682    }
21683    #[inline]
21684    fn syntax(&self) -> &SyntaxNode {
21685        &self.syntax
21686    }
21687}
21688impl AstNode for CreateSequence {
21689    #[inline]
21690    fn can_cast(kind: SyntaxKind) -> bool {
21691        kind == SyntaxKind::CREATE_SEQUENCE
21692    }
21693    #[inline]
21694    fn cast(syntax: SyntaxNode) -> Option<Self> {
21695        if Self::can_cast(syntax.kind()) {
21696            Some(Self { syntax })
21697        } else {
21698            None
21699        }
21700    }
21701    #[inline]
21702    fn syntax(&self) -> &SyntaxNode {
21703        &self.syntax
21704    }
21705}
21706impl AstNode for CreateServer {
21707    #[inline]
21708    fn can_cast(kind: SyntaxKind) -> bool {
21709        kind == SyntaxKind::CREATE_SERVER
21710    }
21711    #[inline]
21712    fn cast(syntax: SyntaxNode) -> Option<Self> {
21713        if Self::can_cast(syntax.kind()) {
21714            Some(Self { syntax })
21715        } else {
21716            None
21717        }
21718    }
21719    #[inline]
21720    fn syntax(&self) -> &SyntaxNode {
21721        &self.syntax
21722    }
21723}
21724impl AstNode for CreateStatistics {
21725    #[inline]
21726    fn can_cast(kind: SyntaxKind) -> bool {
21727        kind == SyntaxKind::CREATE_STATISTICS
21728    }
21729    #[inline]
21730    fn cast(syntax: SyntaxNode) -> Option<Self> {
21731        if Self::can_cast(syntax.kind()) {
21732            Some(Self { syntax })
21733        } else {
21734            None
21735        }
21736    }
21737    #[inline]
21738    fn syntax(&self) -> &SyntaxNode {
21739        &self.syntax
21740    }
21741}
21742impl AstNode for CreateSubscription {
21743    #[inline]
21744    fn can_cast(kind: SyntaxKind) -> bool {
21745        kind == SyntaxKind::CREATE_SUBSCRIPTION
21746    }
21747    #[inline]
21748    fn cast(syntax: SyntaxNode) -> Option<Self> {
21749        if Self::can_cast(syntax.kind()) {
21750            Some(Self { syntax })
21751        } else {
21752            None
21753        }
21754    }
21755    #[inline]
21756    fn syntax(&self) -> &SyntaxNode {
21757        &self.syntax
21758    }
21759}
21760impl AstNode for CreateTable {
21761    #[inline]
21762    fn can_cast(kind: SyntaxKind) -> bool {
21763        kind == SyntaxKind::CREATE_TABLE
21764    }
21765    #[inline]
21766    fn cast(syntax: SyntaxNode) -> Option<Self> {
21767        if Self::can_cast(syntax.kind()) {
21768            Some(Self { syntax })
21769        } else {
21770            None
21771        }
21772    }
21773    #[inline]
21774    fn syntax(&self) -> &SyntaxNode {
21775        &self.syntax
21776    }
21777}
21778impl AstNode for CreateTableAs {
21779    #[inline]
21780    fn can_cast(kind: SyntaxKind) -> bool {
21781        kind == SyntaxKind::CREATE_TABLE_AS
21782    }
21783    #[inline]
21784    fn cast(syntax: SyntaxNode) -> Option<Self> {
21785        if Self::can_cast(syntax.kind()) {
21786            Some(Self { syntax })
21787        } else {
21788            None
21789        }
21790    }
21791    #[inline]
21792    fn syntax(&self) -> &SyntaxNode {
21793        &self.syntax
21794    }
21795}
21796impl AstNode for CreateTablespace {
21797    #[inline]
21798    fn can_cast(kind: SyntaxKind) -> bool {
21799        kind == SyntaxKind::CREATE_TABLESPACE
21800    }
21801    #[inline]
21802    fn cast(syntax: SyntaxNode) -> Option<Self> {
21803        if Self::can_cast(syntax.kind()) {
21804            Some(Self { syntax })
21805        } else {
21806            None
21807        }
21808    }
21809    #[inline]
21810    fn syntax(&self) -> &SyntaxNode {
21811        &self.syntax
21812    }
21813}
21814impl AstNode for CreateTextSearchConfiguration {
21815    #[inline]
21816    fn can_cast(kind: SyntaxKind) -> bool {
21817        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21818    }
21819    #[inline]
21820    fn cast(syntax: SyntaxNode) -> Option<Self> {
21821        if Self::can_cast(syntax.kind()) {
21822            Some(Self { syntax })
21823        } else {
21824            None
21825        }
21826    }
21827    #[inline]
21828    fn syntax(&self) -> &SyntaxNode {
21829        &self.syntax
21830    }
21831}
21832impl AstNode for CreateTextSearchDictionary {
21833    #[inline]
21834    fn can_cast(kind: SyntaxKind) -> bool {
21835        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21836    }
21837    #[inline]
21838    fn cast(syntax: SyntaxNode) -> Option<Self> {
21839        if Self::can_cast(syntax.kind()) {
21840            Some(Self { syntax })
21841        } else {
21842            None
21843        }
21844    }
21845    #[inline]
21846    fn syntax(&self) -> &SyntaxNode {
21847        &self.syntax
21848    }
21849}
21850impl AstNode for CreateTextSearchParser {
21851    #[inline]
21852    fn can_cast(kind: SyntaxKind) -> bool {
21853        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21854    }
21855    #[inline]
21856    fn cast(syntax: SyntaxNode) -> Option<Self> {
21857        if Self::can_cast(syntax.kind()) {
21858            Some(Self { syntax })
21859        } else {
21860            None
21861        }
21862    }
21863    #[inline]
21864    fn syntax(&self) -> &SyntaxNode {
21865        &self.syntax
21866    }
21867}
21868impl AstNode for CreateTextSearchTemplate {
21869    #[inline]
21870    fn can_cast(kind: SyntaxKind) -> bool {
21871        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
21872    }
21873    #[inline]
21874    fn cast(syntax: SyntaxNode) -> Option<Self> {
21875        if Self::can_cast(syntax.kind()) {
21876            Some(Self { syntax })
21877        } else {
21878            None
21879        }
21880    }
21881    #[inline]
21882    fn syntax(&self) -> &SyntaxNode {
21883        &self.syntax
21884    }
21885}
21886impl AstNode for CreateTransform {
21887    #[inline]
21888    fn can_cast(kind: SyntaxKind) -> bool {
21889        kind == SyntaxKind::CREATE_TRANSFORM
21890    }
21891    #[inline]
21892    fn cast(syntax: SyntaxNode) -> Option<Self> {
21893        if Self::can_cast(syntax.kind()) {
21894            Some(Self { syntax })
21895        } else {
21896            None
21897        }
21898    }
21899    #[inline]
21900    fn syntax(&self) -> &SyntaxNode {
21901        &self.syntax
21902    }
21903}
21904impl AstNode for CreateTrigger {
21905    #[inline]
21906    fn can_cast(kind: SyntaxKind) -> bool {
21907        kind == SyntaxKind::CREATE_TRIGGER
21908    }
21909    #[inline]
21910    fn cast(syntax: SyntaxNode) -> Option<Self> {
21911        if Self::can_cast(syntax.kind()) {
21912            Some(Self { syntax })
21913        } else {
21914            None
21915        }
21916    }
21917    #[inline]
21918    fn syntax(&self) -> &SyntaxNode {
21919        &self.syntax
21920    }
21921}
21922impl AstNode for CreateType {
21923    #[inline]
21924    fn can_cast(kind: SyntaxKind) -> bool {
21925        kind == SyntaxKind::CREATE_TYPE
21926    }
21927    #[inline]
21928    fn cast(syntax: SyntaxNode) -> Option<Self> {
21929        if Self::can_cast(syntax.kind()) {
21930            Some(Self { syntax })
21931        } else {
21932            None
21933        }
21934    }
21935    #[inline]
21936    fn syntax(&self) -> &SyntaxNode {
21937        &self.syntax
21938    }
21939}
21940impl AstNode for CreateUser {
21941    #[inline]
21942    fn can_cast(kind: SyntaxKind) -> bool {
21943        kind == SyntaxKind::CREATE_USER
21944    }
21945    #[inline]
21946    fn cast(syntax: SyntaxNode) -> Option<Self> {
21947        if Self::can_cast(syntax.kind()) {
21948            Some(Self { syntax })
21949        } else {
21950            None
21951        }
21952    }
21953    #[inline]
21954    fn syntax(&self) -> &SyntaxNode {
21955        &self.syntax
21956    }
21957}
21958impl AstNode for CreateUserMapping {
21959    #[inline]
21960    fn can_cast(kind: SyntaxKind) -> bool {
21961        kind == SyntaxKind::CREATE_USER_MAPPING
21962    }
21963    #[inline]
21964    fn cast(syntax: SyntaxNode) -> Option<Self> {
21965        if Self::can_cast(syntax.kind()) {
21966            Some(Self { syntax })
21967        } else {
21968            None
21969        }
21970    }
21971    #[inline]
21972    fn syntax(&self) -> &SyntaxNode {
21973        &self.syntax
21974    }
21975}
21976impl AstNode for CreateView {
21977    #[inline]
21978    fn can_cast(kind: SyntaxKind) -> bool {
21979        kind == SyntaxKind::CREATE_VIEW
21980    }
21981    #[inline]
21982    fn cast(syntax: SyntaxNode) -> Option<Self> {
21983        if Self::can_cast(syntax.kind()) {
21984            Some(Self { syntax })
21985        } else {
21986            None
21987        }
21988    }
21989    #[inline]
21990    fn syntax(&self) -> &SyntaxNode {
21991        &self.syntax
21992    }
21993}
21994impl AstNode for CustomOp {
21995    #[inline]
21996    fn can_cast(kind: SyntaxKind) -> bool {
21997        kind == SyntaxKind::CUSTOM_OP
21998    }
21999    #[inline]
22000    fn cast(syntax: SyntaxNode) -> Option<Self> {
22001        if Self::can_cast(syntax.kind()) {
22002            Some(Self { syntax })
22003        } else {
22004            None
22005        }
22006    }
22007    #[inline]
22008    fn syntax(&self) -> &SyntaxNode {
22009        &self.syntax
22010    }
22011}
22012impl AstNode for Deallocate {
22013    #[inline]
22014    fn can_cast(kind: SyntaxKind) -> bool {
22015        kind == SyntaxKind::DEALLOCATE
22016    }
22017    #[inline]
22018    fn cast(syntax: SyntaxNode) -> Option<Self> {
22019        if Self::can_cast(syntax.kind()) {
22020            Some(Self { syntax })
22021        } else {
22022            None
22023        }
22024    }
22025    #[inline]
22026    fn syntax(&self) -> &SyntaxNode {
22027        &self.syntax
22028    }
22029}
22030impl AstNode for Declare {
22031    #[inline]
22032    fn can_cast(kind: SyntaxKind) -> bool {
22033        kind == SyntaxKind::DECLARE
22034    }
22035    #[inline]
22036    fn cast(syntax: SyntaxNode) -> Option<Self> {
22037        if Self::can_cast(syntax.kind()) {
22038            Some(Self { syntax })
22039        } else {
22040            None
22041        }
22042    }
22043    #[inline]
22044    fn syntax(&self) -> &SyntaxNode {
22045        &self.syntax
22046    }
22047}
22048impl AstNode for DefaultConstraint {
22049    #[inline]
22050    fn can_cast(kind: SyntaxKind) -> bool {
22051        kind == SyntaxKind::DEFAULT_CONSTRAINT
22052    }
22053    #[inline]
22054    fn cast(syntax: SyntaxNode) -> Option<Self> {
22055        if Self::can_cast(syntax.kind()) {
22056            Some(Self { syntax })
22057        } else {
22058            None
22059        }
22060    }
22061    #[inline]
22062    fn syntax(&self) -> &SyntaxNode {
22063        &self.syntax
22064    }
22065}
22066impl AstNode for Deferrable {
22067    #[inline]
22068    fn can_cast(kind: SyntaxKind) -> bool {
22069        kind == SyntaxKind::DEFERRABLE
22070    }
22071    #[inline]
22072    fn cast(syntax: SyntaxNode) -> Option<Self> {
22073        if Self::can_cast(syntax.kind()) {
22074            Some(Self { syntax })
22075        } else {
22076            None
22077        }
22078    }
22079    #[inline]
22080    fn syntax(&self) -> &SyntaxNode {
22081        &self.syntax
22082    }
22083}
22084impl AstNode for DeferrableConstraintOption {
22085    #[inline]
22086    fn can_cast(kind: SyntaxKind) -> bool {
22087        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22088    }
22089    #[inline]
22090    fn cast(syntax: SyntaxNode) -> Option<Self> {
22091        if Self::can_cast(syntax.kind()) {
22092            Some(Self { syntax })
22093        } else {
22094            None
22095        }
22096    }
22097    #[inline]
22098    fn syntax(&self) -> &SyntaxNode {
22099        &self.syntax
22100    }
22101}
22102impl AstNode for Delete {
22103    #[inline]
22104    fn can_cast(kind: SyntaxKind) -> bool {
22105        kind == SyntaxKind::DELETE
22106    }
22107    #[inline]
22108    fn cast(syntax: SyntaxNode) -> Option<Self> {
22109        if Self::can_cast(syntax.kind()) {
22110            Some(Self { syntax })
22111        } else {
22112            None
22113        }
22114    }
22115    #[inline]
22116    fn syntax(&self) -> &SyntaxNode {
22117        &self.syntax
22118    }
22119}
22120impl AstNode for DeleteRows {
22121    #[inline]
22122    fn can_cast(kind: SyntaxKind) -> bool {
22123        kind == SyntaxKind::DELETE_ROWS
22124    }
22125    #[inline]
22126    fn cast(syntax: SyntaxNode) -> Option<Self> {
22127        if Self::can_cast(syntax.kind()) {
22128            Some(Self { syntax })
22129        } else {
22130            None
22131        }
22132    }
22133    #[inline]
22134    fn syntax(&self) -> &SyntaxNode {
22135        &self.syntax
22136    }
22137}
22138impl AstNode for DependsOnExtension {
22139    #[inline]
22140    fn can_cast(kind: SyntaxKind) -> bool {
22141        kind == SyntaxKind::DEPENDS_ON_EXTENSION
22142    }
22143    #[inline]
22144    fn cast(syntax: SyntaxNode) -> Option<Self> {
22145        if Self::can_cast(syntax.kind()) {
22146            Some(Self { syntax })
22147        } else {
22148            None
22149        }
22150    }
22151    #[inline]
22152    fn syntax(&self) -> &SyntaxNode {
22153        &self.syntax
22154    }
22155}
22156impl AstNode for DestVertexTable {
22157    #[inline]
22158    fn can_cast(kind: SyntaxKind) -> bool {
22159        kind == SyntaxKind::DEST_VERTEX_TABLE
22160    }
22161    #[inline]
22162    fn cast(syntax: SyntaxNode) -> Option<Self> {
22163        if Self::can_cast(syntax.kind()) {
22164            Some(Self { syntax })
22165        } else {
22166            None
22167        }
22168    }
22169    #[inline]
22170    fn syntax(&self) -> &SyntaxNode {
22171        &self.syntax
22172    }
22173}
22174impl AstNode for DetachPartition {
22175    #[inline]
22176    fn can_cast(kind: SyntaxKind) -> bool {
22177        kind == SyntaxKind::DETACH_PARTITION
22178    }
22179    #[inline]
22180    fn cast(syntax: SyntaxNode) -> Option<Self> {
22181        if Self::can_cast(syntax.kind()) {
22182            Some(Self { syntax })
22183        } else {
22184            None
22185        }
22186    }
22187    #[inline]
22188    fn syntax(&self) -> &SyntaxNode {
22189        &self.syntax
22190    }
22191}
22192impl AstNode for DisableRls {
22193    #[inline]
22194    fn can_cast(kind: SyntaxKind) -> bool {
22195        kind == SyntaxKind::DISABLE_RLS
22196    }
22197    #[inline]
22198    fn cast(syntax: SyntaxNode) -> Option<Self> {
22199        if Self::can_cast(syntax.kind()) {
22200            Some(Self { syntax })
22201        } else {
22202            None
22203        }
22204    }
22205    #[inline]
22206    fn syntax(&self) -> &SyntaxNode {
22207        &self.syntax
22208    }
22209}
22210impl AstNode for DisableRule {
22211    #[inline]
22212    fn can_cast(kind: SyntaxKind) -> bool {
22213        kind == SyntaxKind::DISABLE_RULE
22214    }
22215    #[inline]
22216    fn cast(syntax: SyntaxNode) -> Option<Self> {
22217        if Self::can_cast(syntax.kind()) {
22218            Some(Self { syntax })
22219        } else {
22220            None
22221        }
22222    }
22223    #[inline]
22224    fn syntax(&self) -> &SyntaxNode {
22225        &self.syntax
22226    }
22227}
22228impl AstNode for DisableTrigger {
22229    #[inline]
22230    fn can_cast(kind: SyntaxKind) -> bool {
22231        kind == SyntaxKind::DISABLE_TRIGGER
22232    }
22233    #[inline]
22234    fn cast(syntax: SyntaxNode) -> Option<Self> {
22235        if Self::can_cast(syntax.kind()) {
22236            Some(Self { syntax })
22237        } else {
22238            None
22239        }
22240    }
22241    #[inline]
22242    fn syntax(&self) -> &SyntaxNode {
22243        &self.syntax
22244    }
22245}
22246impl AstNode for Discard {
22247    #[inline]
22248    fn can_cast(kind: SyntaxKind) -> bool {
22249        kind == SyntaxKind::DISCARD
22250    }
22251    #[inline]
22252    fn cast(syntax: SyntaxNode) -> Option<Self> {
22253        if Self::can_cast(syntax.kind()) {
22254            Some(Self { syntax })
22255        } else {
22256            None
22257        }
22258    }
22259    #[inline]
22260    fn syntax(&self) -> &SyntaxNode {
22261        &self.syntax
22262    }
22263}
22264impl AstNode for DistinctClause {
22265    #[inline]
22266    fn can_cast(kind: SyntaxKind) -> bool {
22267        kind == SyntaxKind::DISTINCT_CLAUSE
22268    }
22269    #[inline]
22270    fn cast(syntax: SyntaxNode) -> Option<Self> {
22271        if Self::can_cast(syntax.kind()) {
22272            Some(Self { syntax })
22273        } else {
22274            None
22275        }
22276    }
22277    #[inline]
22278    fn syntax(&self) -> &SyntaxNode {
22279        &self.syntax
22280    }
22281}
22282impl AstNode for Do {
22283    #[inline]
22284    fn can_cast(kind: SyntaxKind) -> bool {
22285        kind == SyntaxKind::DO
22286    }
22287    #[inline]
22288    fn cast(syntax: SyntaxNode) -> Option<Self> {
22289        if Self::can_cast(syntax.kind()) {
22290            Some(Self { syntax })
22291        } else {
22292            None
22293        }
22294    }
22295    #[inline]
22296    fn syntax(&self) -> &SyntaxNode {
22297        &self.syntax
22298    }
22299}
22300impl AstNode for DoubleType {
22301    #[inline]
22302    fn can_cast(kind: SyntaxKind) -> bool {
22303        kind == SyntaxKind::DOUBLE_TYPE
22304    }
22305    #[inline]
22306    fn cast(syntax: SyntaxNode) -> Option<Self> {
22307        if Self::can_cast(syntax.kind()) {
22308            Some(Self { syntax })
22309        } else {
22310            None
22311        }
22312    }
22313    #[inline]
22314    fn syntax(&self) -> &SyntaxNode {
22315        &self.syntax
22316    }
22317}
22318impl AstNode for Drop {
22319    #[inline]
22320    fn can_cast(kind: SyntaxKind) -> bool {
22321        kind == SyntaxKind::DROP
22322    }
22323    #[inline]
22324    fn cast(syntax: SyntaxNode) -> Option<Self> {
22325        if Self::can_cast(syntax.kind()) {
22326            Some(Self { syntax })
22327        } else {
22328            None
22329        }
22330    }
22331    #[inline]
22332    fn syntax(&self) -> &SyntaxNode {
22333        &self.syntax
22334    }
22335}
22336impl AstNode for DropAccessMethod {
22337    #[inline]
22338    fn can_cast(kind: SyntaxKind) -> bool {
22339        kind == SyntaxKind::DROP_ACCESS_METHOD
22340    }
22341    #[inline]
22342    fn cast(syntax: SyntaxNode) -> Option<Self> {
22343        if Self::can_cast(syntax.kind()) {
22344            Some(Self { syntax })
22345        } else {
22346            None
22347        }
22348    }
22349    #[inline]
22350    fn syntax(&self) -> &SyntaxNode {
22351        &self.syntax
22352    }
22353}
22354impl AstNode for DropAggregate {
22355    #[inline]
22356    fn can_cast(kind: SyntaxKind) -> bool {
22357        kind == SyntaxKind::DROP_AGGREGATE
22358    }
22359    #[inline]
22360    fn cast(syntax: SyntaxNode) -> Option<Self> {
22361        if Self::can_cast(syntax.kind()) {
22362            Some(Self { syntax })
22363        } else {
22364            None
22365        }
22366    }
22367    #[inline]
22368    fn syntax(&self) -> &SyntaxNode {
22369        &self.syntax
22370    }
22371}
22372impl AstNode for DropAttribute {
22373    #[inline]
22374    fn can_cast(kind: SyntaxKind) -> bool {
22375        kind == SyntaxKind::DROP_ATTRIBUTE
22376    }
22377    #[inline]
22378    fn cast(syntax: SyntaxNode) -> Option<Self> {
22379        if Self::can_cast(syntax.kind()) {
22380            Some(Self { syntax })
22381        } else {
22382            None
22383        }
22384    }
22385    #[inline]
22386    fn syntax(&self) -> &SyntaxNode {
22387        &self.syntax
22388    }
22389}
22390impl AstNode for DropCast {
22391    #[inline]
22392    fn can_cast(kind: SyntaxKind) -> bool {
22393        kind == SyntaxKind::DROP_CAST
22394    }
22395    #[inline]
22396    fn cast(syntax: SyntaxNode) -> Option<Self> {
22397        if Self::can_cast(syntax.kind()) {
22398            Some(Self { syntax })
22399        } else {
22400            None
22401        }
22402    }
22403    #[inline]
22404    fn syntax(&self) -> &SyntaxNode {
22405        &self.syntax
22406    }
22407}
22408impl AstNode for DropCollation {
22409    #[inline]
22410    fn can_cast(kind: SyntaxKind) -> bool {
22411        kind == SyntaxKind::DROP_COLLATION
22412    }
22413    #[inline]
22414    fn cast(syntax: SyntaxNode) -> Option<Self> {
22415        if Self::can_cast(syntax.kind()) {
22416            Some(Self { syntax })
22417        } else {
22418            None
22419        }
22420    }
22421    #[inline]
22422    fn syntax(&self) -> &SyntaxNode {
22423        &self.syntax
22424    }
22425}
22426impl AstNode for DropColumn {
22427    #[inline]
22428    fn can_cast(kind: SyntaxKind) -> bool {
22429        kind == SyntaxKind::DROP_COLUMN
22430    }
22431    #[inline]
22432    fn cast(syntax: SyntaxNode) -> Option<Self> {
22433        if Self::can_cast(syntax.kind()) {
22434            Some(Self { syntax })
22435        } else {
22436            None
22437        }
22438    }
22439    #[inline]
22440    fn syntax(&self) -> &SyntaxNode {
22441        &self.syntax
22442    }
22443}
22444impl AstNode for DropConstraint {
22445    #[inline]
22446    fn can_cast(kind: SyntaxKind) -> bool {
22447        kind == SyntaxKind::DROP_CONSTRAINT
22448    }
22449    #[inline]
22450    fn cast(syntax: SyntaxNode) -> Option<Self> {
22451        if Self::can_cast(syntax.kind()) {
22452            Some(Self { syntax })
22453        } else {
22454            None
22455        }
22456    }
22457    #[inline]
22458    fn syntax(&self) -> &SyntaxNode {
22459        &self.syntax
22460    }
22461}
22462impl AstNode for DropConversion {
22463    #[inline]
22464    fn can_cast(kind: SyntaxKind) -> bool {
22465        kind == SyntaxKind::DROP_CONVERSION
22466    }
22467    #[inline]
22468    fn cast(syntax: SyntaxNode) -> Option<Self> {
22469        if Self::can_cast(syntax.kind()) {
22470            Some(Self { syntax })
22471        } else {
22472            None
22473        }
22474    }
22475    #[inline]
22476    fn syntax(&self) -> &SyntaxNode {
22477        &self.syntax
22478    }
22479}
22480impl AstNode for DropDatabase {
22481    #[inline]
22482    fn can_cast(kind: SyntaxKind) -> bool {
22483        kind == SyntaxKind::DROP_DATABASE
22484    }
22485    #[inline]
22486    fn cast(syntax: SyntaxNode) -> Option<Self> {
22487        if Self::can_cast(syntax.kind()) {
22488            Some(Self { syntax })
22489        } else {
22490            None
22491        }
22492    }
22493    #[inline]
22494    fn syntax(&self) -> &SyntaxNode {
22495        &self.syntax
22496    }
22497}
22498impl AstNode for DropDefault {
22499    #[inline]
22500    fn can_cast(kind: SyntaxKind) -> bool {
22501        kind == SyntaxKind::DROP_DEFAULT
22502    }
22503    #[inline]
22504    fn cast(syntax: SyntaxNode) -> Option<Self> {
22505        if Self::can_cast(syntax.kind()) {
22506            Some(Self { syntax })
22507        } else {
22508            None
22509        }
22510    }
22511    #[inline]
22512    fn syntax(&self) -> &SyntaxNode {
22513        &self.syntax
22514    }
22515}
22516impl AstNode for DropDomain {
22517    #[inline]
22518    fn can_cast(kind: SyntaxKind) -> bool {
22519        kind == SyntaxKind::DROP_DOMAIN
22520    }
22521    #[inline]
22522    fn cast(syntax: SyntaxNode) -> Option<Self> {
22523        if Self::can_cast(syntax.kind()) {
22524            Some(Self { syntax })
22525        } else {
22526            None
22527        }
22528    }
22529    #[inline]
22530    fn syntax(&self) -> &SyntaxNode {
22531        &self.syntax
22532    }
22533}
22534impl AstNode for DropEdgeTables {
22535    #[inline]
22536    fn can_cast(kind: SyntaxKind) -> bool {
22537        kind == SyntaxKind::DROP_EDGE_TABLES
22538    }
22539    #[inline]
22540    fn cast(syntax: SyntaxNode) -> Option<Self> {
22541        if Self::can_cast(syntax.kind()) {
22542            Some(Self { syntax })
22543        } else {
22544            None
22545        }
22546    }
22547    #[inline]
22548    fn syntax(&self) -> &SyntaxNode {
22549        &self.syntax
22550    }
22551}
22552impl AstNode for DropEventTrigger {
22553    #[inline]
22554    fn can_cast(kind: SyntaxKind) -> bool {
22555        kind == SyntaxKind::DROP_EVENT_TRIGGER
22556    }
22557    #[inline]
22558    fn cast(syntax: SyntaxNode) -> Option<Self> {
22559        if Self::can_cast(syntax.kind()) {
22560            Some(Self { syntax })
22561        } else {
22562            None
22563        }
22564    }
22565    #[inline]
22566    fn syntax(&self) -> &SyntaxNode {
22567        &self.syntax
22568    }
22569}
22570impl AstNode for DropExpression {
22571    #[inline]
22572    fn can_cast(kind: SyntaxKind) -> bool {
22573        kind == SyntaxKind::DROP_EXPRESSION
22574    }
22575    #[inline]
22576    fn cast(syntax: SyntaxNode) -> Option<Self> {
22577        if Self::can_cast(syntax.kind()) {
22578            Some(Self { syntax })
22579        } else {
22580            None
22581        }
22582    }
22583    #[inline]
22584    fn syntax(&self) -> &SyntaxNode {
22585        &self.syntax
22586    }
22587}
22588impl AstNode for DropExtension {
22589    #[inline]
22590    fn can_cast(kind: SyntaxKind) -> bool {
22591        kind == SyntaxKind::DROP_EXTENSION
22592    }
22593    #[inline]
22594    fn cast(syntax: SyntaxNode) -> Option<Self> {
22595        if Self::can_cast(syntax.kind()) {
22596            Some(Self { syntax })
22597        } else {
22598            None
22599        }
22600    }
22601    #[inline]
22602    fn syntax(&self) -> &SyntaxNode {
22603        &self.syntax
22604    }
22605}
22606impl AstNode for DropForeignDataWrapper {
22607    #[inline]
22608    fn can_cast(kind: SyntaxKind) -> bool {
22609        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22610    }
22611    #[inline]
22612    fn cast(syntax: SyntaxNode) -> Option<Self> {
22613        if Self::can_cast(syntax.kind()) {
22614            Some(Self { syntax })
22615        } else {
22616            None
22617        }
22618    }
22619    #[inline]
22620    fn syntax(&self) -> &SyntaxNode {
22621        &self.syntax
22622    }
22623}
22624impl AstNode for DropForeignTable {
22625    #[inline]
22626    fn can_cast(kind: SyntaxKind) -> bool {
22627        kind == SyntaxKind::DROP_FOREIGN_TABLE
22628    }
22629    #[inline]
22630    fn cast(syntax: SyntaxNode) -> Option<Self> {
22631        if Self::can_cast(syntax.kind()) {
22632            Some(Self { syntax })
22633        } else {
22634            None
22635        }
22636    }
22637    #[inline]
22638    fn syntax(&self) -> &SyntaxNode {
22639        &self.syntax
22640    }
22641}
22642impl AstNode for DropFunction {
22643    #[inline]
22644    fn can_cast(kind: SyntaxKind) -> bool {
22645        kind == SyntaxKind::DROP_FUNCTION
22646    }
22647    #[inline]
22648    fn cast(syntax: SyntaxNode) -> Option<Self> {
22649        if Self::can_cast(syntax.kind()) {
22650            Some(Self { syntax })
22651        } else {
22652            None
22653        }
22654    }
22655    #[inline]
22656    fn syntax(&self) -> &SyntaxNode {
22657        &self.syntax
22658    }
22659}
22660impl AstNode for DropGroup {
22661    #[inline]
22662    fn can_cast(kind: SyntaxKind) -> bool {
22663        kind == SyntaxKind::DROP_GROUP
22664    }
22665    #[inline]
22666    fn cast(syntax: SyntaxNode) -> Option<Self> {
22667        if Self::can_cast(syntax.kind()) {
22668            Some(Self { syntax })
22669        } else {
22670            None
22671        }
22672    }
22673    #[inline]
22674    fn syntax(&self) -> &SyntaxNode {
22675        &self.syntax
22676    }
22677}
22678impl AstNode for DropIdentity {
22679    #[inline]
22680    fn can_cast(kind: SyntaxKind) -> bool {
22681        kind == SyntaxKind::DROP_IDENTITY
22682    }
22683    #[inline]
22684    fn cast(syntax: SyntaxNode) -> Option<Self> {
22685        if Self::can_cast(syntax.kind()) {
22686            Some(Self { syntax })
22687        } else {
22688            None
22689        }
22690    }
22691    #[inline]
22692    fn syntax(&self) -> &SyntaxNode {
22693        &self.syntax
22694    }
22695}
22696impl AstNode for DropIndex {
22697    #[inline]
22698    fn can_cast(kind: SyntaxKind) -> bool {
22699        kind == SyntaxKind::DROP_INDEX
22700    }
22701    #[inline]
22702    fn cast(syntax: SyntaxNode) -> Option<Self> {
22703        if Self::can_cast(syntax.kind()) {
22704            Some(Self { syntax })
22705        } else {
22706            None
22707        }
22708    }
22709    #[inline]
22710    fn syntax(&self) -> &SyntaxNode {
22711        &self.syntax
22712    }
22713}
22714impl AstNode for DropLanguage {
22715    #[inline]
22716    fn can_cast(kind: SyntaxKind) -> bool {
22717        kind == SyntaxKind::DROP_LANGUAGE
22718    }
22719    #[inline]
22720    fn cast(syntax: SyntaxNode) -> Option<Self> {
22721        if Self::can_cast(syntax.kind()) {
22722            Some(Self { syntax })
22723        } else {
22724            None
22725        }
22726    }
22727    #[inline]
22728    fn syntax(&self) -> &SyntaxNode {
22729        &self.syntax
22730    }
22731}
22732impl AstNode for DropMaterializedView {
22733    #[inline]
22734    fn can_cast(kind: SyntaxKind) -> bool {
22735        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
22736    }
22737    #[inline]
22738    fn cast(syntax: SyntaxNode) -> Option<Self> {
22739        if Self::can_cast(syntax.kind()) {
22740            Some(Self { syntax })
22741        } else {
22742            None
22743        }
22744    }
22745    #[inline]
22746    fn syntax(&self) -> &SyntaxNode {
22747        &self.syntax
22748    }
22749}
22750impl AstNode for DropNotNull {
22751    #[inline]
22752    fn can_cast(kind: SyntaxKind) -> bool {
22753        kind == SyntaxKind::DROP_NOT_NULL
22754    }
22755    #[inline]
22756    fn cast(syntax: SyntaxNode) -> Option<Self> {
22757        if Self::can_cast(syntax.kind()) {
22758            Some(Self { syntax })
22759        } else {
22760            None
22761        }
22762    }
22763    #[inline]
22764    fn syntax(&self) -> &SyntaxNode {
22765        &self.syntax
22766    }
22767}
22768impl AstNode for DropOpClassOption {
22769    #[inline]
22770    fn can_cast(kind: SyntaxKind) -> bool {
22771        kind == SyntaxKind::DROP_OP_CLASS_OPTION
22772    }
22773    #[inline]
22774    fn cast(syntax: SyntaxNode) -> Option<Self> {
22775        if Self::can_cast(syntax.kind()) {
22776            Some(Self { syntax })
22777        } else {
22778            None
22779        }
22780    }
22781    #[inline]
22782    fn syntax(&self) -> &SyntaxNode {
22783        &self.syntax
22784    }
22785}
22786impl AstNode for DropOpClassOptionList {
22787    #[inline]
22788    fn can_cast(kind: SyntaxKind) -> bool {
22789        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
22790    }
22791    #[inline]
22792    fn cast(syntax: SyntaxNode) -> Option<Self> {
22793        if Self::can_cast(syntax.kind()) {
22794            Some(Self { syntax })
22795        } else {
22796            None
22797        }
22798    }
22799    #[inline]
22800    fn syntax(&self) -> &SyntaxNode {
22801        &self.syntax
22802    }
22803}
22804impl AstNode for DropOpClassOptions {
22805    #[inline]
22806    fn can_cast(kind: SyntaxKind) -> bool {
22807        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
22808    }
22809    #[inline]
22810    fn cast(syntax: SyntaxNode) -> Option<Self> {
22811        if Self::can_cast(syntax.kind()) {
22812            Some(Self { syntax })
22813        } else {
22814            None
22815        }
22816    }
22817    #[inline]
22818    fn syntax(&self) -> &SyntaxNode {
22819        &self.syntax
22820    }
22821}
22822impl AstNode for DropOperator {
22823    #[inline]
22824    fn can_cast(kind: SyntaxKind) -> bool {
22825        kind == SyntaxKind::DROP_OPERATOR
22826    }
22827    #[inline]
22828    fn cast(syntax: SyntaxNode) -> Option<Self> {
22829        if Self::can_cast(syntax.kind()) {
22830            Some(Self { syntax })
22831        } else {
22832            None
22833        }
22834    }
22835    #[inline]
22836    fn syntax(&self) -> &SyntaxNode {
22837        &self.syntax
22838    }
22839}
22840impl AstNode for DropOperatorClass {
22841    #[inline]
22842    fn can_cast(kind: SyntaxKind) -> bool {
22843        kind == SyntaxKind::DROP_OPERATOR_CLASS
22844    }
22845    #[inline]
22846    fn cast(syntax: SyntaxNode) -> Option<Self> {
22847        if Self::can_cast(syntax.kind()) {
22848            Some(Self { syntax })
22849        } else {
22850            None
22851        }
22852    }
22853    #[inline]
22854    fn syntax(&self) -> &SyntaxNode {
22855        &self.syntax
22856    }
22857}
22858impl AstNode for DropOperatorFamily {
22859    #[inline]
22860    fn can_cast(kind: SyntaxKind) -> bool {
22861        kind == SyntaxKind::DROP_OPERATOR_FAMILY
22862    }
22863    #[inline]
22864    fn cast(syntax: SyntaxNode) -> Option<Self> {
22865        if Self::can_cast(syntax.kind()) {
22866            Some(Self { syntax })
22867        } else {
22868            None
22869        }
22870    }
22871    #[inline]
22872    fn syntax(&self) -> &SyntaxNode {
22873        &self.syntax
22874    }
22875}
22876impl AstNode for DropOwned {
22877    #[inline]
22878    fn can_cast(kind: SyntaxKind) -> bool {
22879        kind == SyntaxKind::DROP_OWNED
22880    }
22881    #[inline]
22882    fn cast(syntax: SyntaxNode) -> Option<Self> {
22883        if Self::can_cast(syntax.kind()) {
22884            Some(Self { syntax })
22885        } else {
22886            None
22887        }
22888    }
22889    #[inline]
22890    fn syntax(&self) -> &SyntaxNode {
22891        &self.syntax
22892    }
22893}
22894impl AstNode for DropPolicy {
22895    #[inline]
22896    fn can_cast(kind: SyntaxKind) -> bool {
22897        kind == SyntaxKind::DROP_POLICY
22898    }
22899    #[inline]
22900    fn cast(syntax: SyntaxNode) -> Option<Self> {
22901        if Self::can_cast(syntax.kind()) {
22902            Some(Self { syntax })
22903        } else {
22904            None
22905        }
22906    }
22907    #[inline]
22908    fn syntax(&self) -> &SyntaxNode {
22909        &self.syntax
22910    }
22911}
22912impl AstNode for DropProcedure {
22913    #[inline]
22914    fn can_cast(kind: SyntaxKind) -> bool {
22915        kind == SyntaxKind::DROP_PROCEDURE
22916    }
22917    #[inline]
22918    fn cast(syntax: SyntaxNode) -> Option<Self> {
22919        if Self::can_cast(syntax.kind()) {
22920            Some(Self { syntax })
22921        } else {
22922            None
22923        }
22924    }
22925    #[inline]
22926    fn syntax(&self) -> &SyntaxNode {
22927        &self.syntax
22928    }
22929}
22930impl AstNode for DropPropertyGraph {
22931    #[inline]
22932    fn can_cast(kind: SyntaxKind) -> bool {
22933        kind == SyntaxKind::DROP_PROPERTY_GRAPH
22934    }
22935    #[inline]
22936    fn cast(syntax: SyntaxNode) -> Option<Self> {
22937        if Self::can_cast(syntax.kind()) {
22938            Some(Self { syntax })
22939        } else {
22940            None
22941        }
22942    }
22943    #[inline]
22944    fn syntax(&self) -> &SyntaxNode {
22945        &self.syntax
22946    }
22947}
22948impl AstNode for DropPublication {
22949    #[inline]
22950    fn can_cast(kind: SyntaxKind) -> bool {
22951        kind == SyntaxKind::DROP_PUBLICATION
22952    }
22953    #[inline]
22954    fn cast(syntax: SyntaxNode) -> Option<Self> {
22955        if Self::can_cast(syntax.kind()) {
22956            Some(Self { syntax })
22957        } else {
22958            None
22959        }
22960    }
22961    #[inline]
22962    fn syntax(&self) -> &SyntaxNode {
22963        &self.syntax
22964    }
22965}
22966impl AstNode for DropRole {
22967    #[inline]
22968    fn can_cast(kind: SyntaxKind) -> bool {
22969        kind == SyntaxKind::DROP_ROLE
22970    }
22971    #[inline]
22972    fn cast(syntax: SyntaxNode) -> Option<Self> {
22973        if Self::can_cast(syntax.kind()) {
22974            Some(Self { syntax })
22975        } else {
22976            None
22977        }
22978    }
22979    #[inline]
22980    fn syntax(&self) -> &SyntaxNode {
22981        &self.syntax
22982    }
22983}
22984impl AstNode for DropRoutine {
22985    #[inline]
22986    fn can_cast(kind: SyntaxKind) -> bool {
22987        kind == SyntaxKind::DROP_ROUTINE
22988    }
22989    #[inline]
22990    fn cast(syntax: SyntaxNode) -> Option<Self> {
22991        if Self::can_cast(syntax.kind()) {
22992            Some(Self { syntax })
22993        } else {
22994            None
22995        }
22996    }
22997    #[inline]
22998    fn syntax(&self) -> &SyntaxNode {
22999        &self.syntax
23000    }
23001}
23002impl AstNode for DropRule {
23003    #[inline]
23004    fn can_cast(kind: SyntaxKind) -> bool {
23005        kind == SyntaxKind::DROP_RULE
23006    }
23007    #[inline]
23008    fn cast(syntax: SyntaxNode) -> Option<Self> {
23009        if Self::can_cast(syntax.kind()) {
23010            Some(Self { syntax })
23011        } else {
23012            None
23013        }
23014    }
23015    #[inline]
23016    fn syntax(&self) -> &SyntaxNode {
23017        &self.syntax
23018    }
23019}
23020impl AstNode for DropSchema {
23021    #[inline]
23022    fn can_cast(kind: SyntaxKind) -> bool {
23023        kind == SyntaxKind::DROP_SCHEMA
23024    }
23025    #[inline]
23026    fn cast(syntax: SyntaxNode) -> Option<Self> {
23027        if Self::can_cast(syntax.kind()) {
23028            Some(Self { syntax })
23029        } else {
23030            None
23031        }
23032    }
23033    #[inline]
23034    fn syntax(&self) -> &SyntaxNode {
23035        &self.syntax
23036    }
23037}
23038impl AstNode for DropSequence {
23039    #[inline]
23040    fn can_cast(kind: SyntaxKind) -> bool {
23041        kind == SyntaxKind::DROP_SEQUENCE
23042    }
23043    #[inline]
23044    fn cast(syntax: SyntaxNode) -> Option<Self> {
23045        if Self::can_cast(syntax.kind()) {
23046            Some(Self { syntax })
23047        } else {
23048            None
23049        }
23050    }
23051    #[inline]
23052    fn syntax(&self) -> &SyntaxNode {
23053        &self.syntax
23054    }
23055}
23056impl AstNode for DropServer {
23057    #[inline]
23058    fn can_cast(kind: SyntaxKind) -> bool {
23059        kind == SyntaxKind::DROP_SERVER
23060    }
23061    #[inline]
23062    fn cast(syntax: SyntaxNode) -> Option<Self> {
23063        if Self::can_cast(syntax.kind()) {
23064            Some(Self { syntax })
23065        } else {
23066            None
23067        }
23068    }
23069    #[inline]
23070    fn syntax(&self) -> &SyntaxNode {
23071        &self.syntax
23072    }
23073}
23074impl AstNode for DropStatistics {
23075    #[inline]
23076    fn can_cast(kind: SyntaxKind) -> bool {
23077        kind == SyntaxKind::DROP_STATISTICS
23078    }
23079    #[inline]
23080    fn cast(syntax: SyntaxNode) -> Option<Self> {
23081        if Self::can_cast(syntax.kind()) {
23082            Some(Self { syntax })
23083        } else {
23084            None
23085        }
23086    }
23087    #[inline]
23088    fn syntax(&self) -> &SyntaxNode {
23089        &self.syntax
23090    }
23091}
23092impl AstNode for DropSubscription {
23093    #[inline]
23094    fn can_cast(kind: SyntaxKind) -> bool {
23095        kind == SyntaxKind::DROP_SUBSCRIPTION
23096    }
23097    #[inline]
23098    fn cast(syntax: SyntaxNode) -> Option<Self> {
23099        if Self::can_cast(syntax.kind()) {
23100            Some(Self { syntax })
23101        } else {
23102            None
23103        }
23104    }
23105    #[inline]
23106    fn syntax(&self) -> &SyntaxNode {
23107        &self.syntax
23108    }
23109}
23110impl AstNode for DropTable {
23111    #[inline]
23112    fn can_cast(kind: SyntaxKind) -> bool {
23113        kind == SyntaxKind::DROP_TABLE
23114    }
23115    #[inline]
23116    fn cast(syntax: SyntaxNode) -> Option<Self> {
23117        if Self::can_cast(syntax.kind()) {
23118            Some(Self { syntax })
23119        } else {
23120            None
23121        }
23122    }
23123    #[inline]
23124    fn syntax(&self) -> &SyntaxNode {
23125        &self.syntax
23126    }
23127}
23128impl AstNode for DropTablespace {
23129    #[inline]
23130    fn can_cast(kind: SyntaxKind) -> bool {
23131        kind == SyntaxKind::DROP_TABLESPACE
23132    }
23133    #[inline]
23134    fn cast(syntax: SyntaxNode) -> Option<Self> {
23135        if Self::can_cast(syntax.kind()) {
23136            Some(Self { syntax })
23137        } else {
23138            None
23139        }
23140    }
23141    #[inline]
23142    fn syntax(&self) -> &SyntaxNode {
23143        &self.syntax
23144    }
23145}
23146impl AstNode for DropTextSearchConfig {
23147    #[inline]
23148    fn can_cast(kind: SyntaxKind) -> bool {
23149        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23150    }
23151    #[inline]
23152    fn cast(syntax: SyntaxNode) -> Option<Self> {
23153        if Self::can_cast(syntax.kind()) {
23154            Some(Self { syntax })
23155        } else {
23156            None
23157        }
23158    }
23159    #[inline]
23160    fn syntax(&self) -> &SyntaxNode {
23161        &self.syntax
23162    }
23163}
23164impl AstNode for DropTextSearchDict {
23165    #[inline]
23166    fn can_cast(kind: SyntaxKind) -> bool {
23167        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
23168    }
23169    #[inline]
23170    fn cast(syntax: SyntaxNode) -> Option<Self> {
23171        if Self::can_cast(syntax.kind()) {
23172            Some(Self { syntax })
23173        } else {
23174            None
23175        }
23176    }
23177    #[inline]
23178    fn syntax(&self) -> &SyntaxNode {
23179        &self.syntax
23180    }
23181}
23182impl AstNode for DropTextSearchParser {
23183    #[inline]
23184    fn can_cast(kind: SyntaxKind) -> bool {
23185        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
23186    }
23187    #[inline]
23188    fn cast(syntax: SyntaxNode) -> Option<Self> {
23189        if Self::can_cast(syntax.kind()) {
23190            Some(Self { syntax })
23191        } else {
23192            None
23193        }
23194    }
23195    #[inline]
23196    fn syntax(&self) -> &SyntaxNode {
23197        &self.syntax
23198    }
23199}
23200impl AstNode for DropTextSearchTemplate {
23201    #[inline]
23202    fn can_cast(kind: SyntaxKind) -> bool {
23203        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23204    }
23205    #[inline]
23206    fn cast(syntax: SyntaxNode) -> Option<Self> {
23207        if Self::can_cast(syntax.kind()) {
23208            Some(Self { syntax })
23209        } else {
23210            None
23211        }
23212    }
23213    #[inline]
23214    fn syntax(&self) -> &SyntaxNode {
23215        &self.syntax
23216    }
23217}
23218impl AstNode for DropTransform {
23219    #[inline]
23220    fn can_cast(kind: SyntaxKind) -> bool {
23221        kind == SyntaxKind::DROP_TRANSFORM
23222    }
23223    #[inline]
23224    fn cast(syntax: SyntaxNode) -> Option<Self> {
23225        if Self::can_cast(syntax.kind()) {
23226            Some(Self { syntax })
23227        } else {
23228            None
23229        }
23230    }
23231    #[inline]
23232    fn syntax(&self) -> &SyntaxNode {
23233        &self.syntax
23234    }
23235}
23236impl AstNode for DropTrigger {
23237    #[inline]
23238    fn can_cast(kind: SyntaxKind) -> bool {
23239        kind == SyntaxKind::DROP_TRIGGER
23240    }
23241    #[inline]
23242    fn cast(syntax: SyntaxNode) -> Option<Self> {
23243        if Self::can_cast(syntax.kind()) {
23244            Some(Self { syntax })
23245        } else {
23246            None
23247        }
23248    }
23249    #[inline]
23250    fn syntax(&self) -> &SyntaxNode {
23251        &self.syntax
23252    }
23253}
23254impl AstNode for DropType {
23255    #[inline]
23256    fn can_cast(kind: SyntaxKind) -> bool {
23257        kind == SyntaxKind::DROP_TYPE
23258    }
23259    #[inline]
23260    fn cast(syntax: SyntaxNode) -> Option<Self> {
23261        if Self::can_cast(syntax.kind()) {
23262            Some(Self { syntax })
23263        } else {
23264            None
23265        }
23266    }
23267    #[inline]
23268    fn syntax(&self) -> &SyntaxNode {
23269        &self.syntax
23270    }
23271}
23272impl AstNode for DropUser {
23273    #[inline]
23274    fn can_cast(kind: SyntaxKind) -> bool {
23275        kind == SyntaxKind::DROP_USER
23276    }
23277    #[inline]
23278    fn cast(syntax: SyntaxNode) -> Option<Self> {
23279        if Self::can_cast(syntax.kind()) {
23280            Some(Self { syntax })
23281        } else {
23282            None
23283        }
23284    }
23285    #[inline]
23286    fn syntax(&self) -> &SyntaxNode {
23287        &self.syntax
23288    }
23289}
23290impl AstNode for DropUserMapping {
23291    #[inline]
23292    fn can_cast(kind: SyntaxKind) -> bool {
23293        kind == SyntaxKind::DROP_USER_MAPPING
23294    }
23295    #[inline]
23296    fn cast(syntax: SyntaxNode) -> Option<Self> {
23297        if Self::can_cast(syntax.kind()) {
23298            Some(Self { syntax })
23299        } else {
23300            None
23301        }
23302    }
23303    #[inline]
23304    fn syntax(&self) -> &SyntaxNode {
23305        &self.syntax
23306    }
23307}
23308impl AstNode for DropVertexEdgeLabel {
23309    #[inline]
23310    fn can_cast(kind: SyntaxKind) -> bool {
23311        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
23312    }
23313    #[inline]
23314    fn cast(syntax: SyntaxNode) -> Option<Self> {
23315        if Self::can_cast(syntax.kind()) {
23316            Some(Self { syntax })
23317        } else {
23318            None
23319        }
23320    }
23321    #[inline]
23322    fn syntax(&self) -> &SyntaxNode {
23323        &self.syntax
23324    }
23325}
23326impl AstNode for DropVertexEdgeLabelProperties {
23327    #[inline]
23328    fn can_cast(kind: SyntaxKind) -> bool {
23329        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
23330    }
23331    #[inline]
23332    fn cast(syntax: SyntaxNode) -> Option<Self> {
23333        if Self::can_cast(syntax.kind()) {
23334            Some(Self { syntax })
23335        } else {
23336            None
23337        }
23338    }
23339    #[inline]
23340    fn syntax(&self) -> &SyntaxNode {
23341        &self.syntax
23342    }
23343}
23344impl AstNode for DropVertexTables {
23345    #[inline]
23346    fn can_cast(kind: SyntaxKind) -> bool {
23347        kind == SyntaxKind::DROP_VERTEX_TABLES
23348    }
23349    #[inline]
23350    fn cast(syntax: SyntaxNode) -> Option<Self> {
23351        if Self::can_cast(syntax.kind()) {
23352            Some(Self { syntax })
23353        } else {
23354            None
23355        }
23356    }
23357    #[inline]
23358    fn syntax(&self) -> &SyntaxNode {
23359        &self.syntax
23360    }
23361}
23362impl AstNode for DropView {
23363    #[inline]
23364    fn can_cast(kind: SyntaxKind) -> bool {
23365        kind == SyntaxKind::DROP_VIEW
23366    }
23367    #[inline]
23368    fn cast(syntax: SyntaxNode) -> Option<Self> {
23369        if Self::can_cast(syntax.kind()) {
23370            Some(Self { syntax })
23371        } else {
23372            None
23373        }
23374    }
23375    #[inline]
23376    fn syntax(&self) -> &SyntaxNode {
23377        &self.syntax
23378    }
23379}
23380impl AstNode for EdgeAny {
23381    #[inline]
23382    fn can_cast(kind: SyntaxKind) -> bool {
23383        kind == SyntaxKind::EDGE_ANY
23384    }
23385    #[inline]
23386    fn cast(syntax: SyntaxNode) -> Option<Self> {
23387        if Self::can_cast(syntax.kind()) {
23388            Some(Self { syntax })
23389        } else {
23390            None
23391        }
23392    }
23393    #[inline]
23394    fn syntax(&self) -> &SyntaxNode {
23395        &self.syntax
23396    }
23397}
23398impl AstNode for EdgeLeft {
23399    #[inline]
23400    fn can_cast(kind: SyntaxKind) -> bool {
23401        kind == SyntaxKind::EDGE_LEFT
23402    }
23403    #[inline]
23404    fn cast(syntax: SyntaxNode) -> Option<Self> {
23405        if Self::can_cast(syntax.kind()) {
23406            Some(Self { syntax })
23407        } else {
23408            None
23409        }
23410    }
23411    #[inline]
23412    fn syntax(&self) -> &SyntaxNode {
23413        &self.syntax
23414    }
23415}
23416impl AstNode for EdgeRight {
23417    #[inline]
23418    fn can_cast(kind: SyntaxKind) -> bool {
23419        kind == SyntaxKind::EDGE_RIGHT
23420    }
23421    #[inline]
23422    fn cast(syntax: SyntaxNode) -> Option<Self> {
23423        if Self::can_cast(syntax.kind()) {
23424            Some(Self { syntax })
23425        } else {
23426            None
23427        }
23428    }
23429    #[inline]
23430    fn syntax(&self) -> &SyntaxNode {
23431        &self.syntax
23432    }
23433}
23434impl AstNode for EdgeTableDef {
23435    #[inline]
23436    fn can_cast(kind: SyntaxKind) -> bool {
23437        kind == SyntaxKind::EDGE_TABLE_DEF
23438    }
23439    #[inline]
23440    fn cast(syntax: SyntaxNode) -> Option<Self> {
23441        if Self::can_cast(syntax.kind()) {
23442            Some(Self { syntax })
23443        } else {
23444            None
23445        }
23446    }
23447    #[inline]
23448    fn syntax(&self) -> &SyntaxNode {
23449        &self.syntax
23450    }
23451}
23452impl AstNode for EdgeTables {
23453    #[inline]
23454    fn can_cast(kind: SyntaxKind) -> bool {
23455        kind == SyntaxKind::EDGE_TABLES
23456    }
23457    #[inline]
23458    fn cast(syntax: SyntaxNode) -> Option<Self> {
23459        if Self::can_cast(syntax.kind()) {
23460            Some(Self { syntax })
23461        } else {
23462            None
23463        }
23464    }
23465    #[inline]
23466    fn syntax(&self) -> &SyntaxNode {
23467        &self.syntax
23468    }
23469}
23470impl AstNode for ElseClause {
23471    #[inline]
23472    fn can_cast(kind: SyntaxKind) -> bool {
23473        kind == SyntaxKind::ELSE_CLAUSE
23474    }
23475    #[inline]
23476    fn cast(syntax: SyntaxNode) -> Option<Self> {
23477        if Self::can_cast(syntax.kind()) {
23478            Some(Self { syntax })
23479        } else {
23480            None
23481        }
23482    }
23483    #[inline]
23484    fn syntax(&self) -> &SyntaxNode {
23485        &self.syntax
23486    }
23487}
23488impl AstNode for EnableAlwaysRule {
23489    #[inline]
23490    fn can_cast(kind: SyntaxKind) -> bool {
23491        kind == SyntaxKind::ENABLE_ALWAYS_RULE
23492    }
23493    #[inline]
23494    fn cast(syntax: SyntaxNode) -> Option<Self> {
23495        if Self::can_cast(syntax.kind()) {
23496            Some(Self { syntax })
23497        } else {
23498            None
23499        }
23500    }
23501    #[inline]
23502    fn syntax(&self) -> &SyntaxNode {
23503        &self.syntax
23504    }
23505}
23506impl AstNode for EnableAlwaysTrigger {
23507    #[inline]
23508    fn can_cast(kind: SyntaxKind) -> bool {
23509        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
23510    }
23511    #[inline]
23512    fn cast(syntax: SyntaxNode) -> Option<Self> {
23513        if Self::can_cast(syntax.kind()) {
23514            Some(Self { syntax })
23515        } else {
23516            None
23517        }
23518    }
23519    #[inline]
23520    fn syntax(&self) -> &SyntaxNode {
23521        &self.syntax
23522    }
23523}
23524impl AstNode for EnableReplicaRule {
23525    #[inline]
23526    fn can_cast(kind: SyntaxKind) -> bool {
23527        kind == SyntaxKind::ENABLE_REPLICA_RULE
23528    }
23529    #[inline]
23530    fn cast(syntax: SyntaxNode) -> Option<Self> {
23531        if Self::can_cast(syntax.kind()) {
23532            Some(Self { syntax })
23533        } else {
23534            None
23535        }
23536    }
23537    #[inline]
23538    fn syntax(&self) -> &SyntaxNode {
23539        &self.syntax
23540    }
23541}
23542impl AstNode for EnableReplicaTrigger {
23543    #[inline]
23544    fn can_cast(kind: SyntaxKind) -> bool {
23545        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
23546    }
23547    #[inline]
23548    fn cast(syntax: SyntaxNode) -> Option<Self> {
23549        if Self::can_cast(syntax.kind()) {
23550            Some(Self { syntax })
23551        } else {
23552            None
23553        }
23554    }
23555    #[inline]
23556    fn syntax(&self) -> &SyntaxNode {
23557        &self.syntax
23558    }
23559}
23560impl AstNode for EnableRls {
23561    #[inline]
23562    fn can_cast(kind: SyntaxKind) -> bool {
23563        kind == SyntaxKind::ENABLE_RLS
23564    }
23565    #[inline]
23566    fn cast(syntax: SyntaxNode) -> Option<Self> {
23567        if Self::can_cast(syntax.kind()) {
23568            Some(Self { syntax })
23569        } else {
23570            None
23571        }
23572    }
23573    #[inline]
23574    fn syntax(&self) -> &SyntaxNode {
23575        &self.syntax
23576    }
23577}
23578impl AstNode for EnableRule {
23579    #[inline]
23580    fn can_cast(kind: SyntaxKind) -> bool {
23581        kind == SyntaxKind::ENABLE_RULE
23582    }
23583    #[inline]
23584    fn cast(syntax: SyntaxNode) -> Option<Self> {
23585        if Self::can_cast(syntax.kind()) {
23586            Some(Self { syntax })
23587        } else {
23588            None
23589        }
23590    }
23591    #[inline]
23592    fn syntax(&self) -> &SyntaxNode {
23593        &self.syntax
23594    }
23595}
23596impl AstNode for EnableTrigger {
23597    #[inline]
23598    fn can_cast(kind: SyntaxKind) -> bool {
23599        kind == SyntaxKind::ENABLE_TRIGGER
23600    }
23601    #[inline]
23602    fn cast(syntax: SyntaxNode) -> Option<Self> {
23603        if Self::can_cast(syntax.kind()) {
23604            Some(Self { syntax })
23605        } else {
23606            None
23607        }
23608    }
23609    #[inline]
23610    fn syntax(&self) -> &SyntaxNode {
23611        &self.syntax
23612    }
23613}
23614impl AstNode for Enforced {
23615    #[inline]
23616    fn can_cast(kind: SyntaxKind) -> bool {
23617        kind == SyntaxKind::ENFORCED
23618    }
23619    #[inline]
23620    fn cast(syntax: SyntaxNode) -> Option<Self> {
23621        if Self::can_cast(syntax.kind()) {
23622            Some(Self { syntax })
23623        } else {
23624            None
23625        }
23626    }
23627    #[inline]
23628    fn syntax(&self) -> &SyntaxNode {
23629        &self.syntax
23630    }
23631}
23632impl AstNode for EventTriggerWhen {
23633    #[inline]
23634    fn can_cast(kind: SyntaxKind) -> bool {
23635        kind == SyntaxKind::EVENT_TRIGGER_WHEN
23636    }
23637    #[inline]
23638    fn cast(syntax: SyntaxNode) -> Option<Self> {
23639        if Self::can_cast(syntax.kind()) {
23640            Some(Self { syntax })
23641        } else {
23642            None
23643        }
23644    }
23645    #[inline]
23646    fn syntax(&self) -> &SyntaxNode {
23647        &self.syntax
23648    }
23649}
23650impl AstNode for EventTriggerWhenClause {
23651    #[inline]
23652    fn can_cast(kind: SyntaxKind) -> bool {
23653        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
23654    }
23655    #[inline]
23656    fn cast(syntax: SyntaxNode) -> Option<Self> {
23657        if Self::can_cast(syntax.kind()) {
23658            Some(Self { syntax })
23659        } else {
23660            None
23661        }
23662    }
23663    #[inline]
23664    fn syntax(&self) -> &SyntaxNode {
23665        &self.syntax
23666    }
23667}
23668impl AstNode for ExceptTableClause {
23669    #[inline]
23670    fn can_cast(kind: SyntaxKind) -> bool {
23671        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
23672    }
23673    #[inline]
23674    fn cast(syntax: SyntaxNode) -> Option<Self> {
23675        if Self::can_cast(syntax.kind()) {
23676            Some(Self { syntax })
23677        } else {
23678            None
23679        }
23680    }
23681    #[inline]
23682    fn syntax(&self) -> &SyntaxNode {
23683        &self.syntax
23684    }
23685}
23686impl AstNode for ExceptTables {
23687    #[inline]
23688    fn can_cast(kind: SyntaxKind) -> bool {
23689        kind == SyntaxKind::EXCEPT_TABLES
23690    }
23691    #[inline]
23692    fn cast(syntax: SyntaxNode) -> Option<Self> {
23693        if Self::can_cast(syntax.kind()) {
23694            Some(Self { syntax })
23695        } else {
23696            None
23697        }
23698    }
23699    #[inline]
23700    fn syntax(&self) -> &SyntaxNode {
23701        &self.syntax
23702    }
23703}
23704impl AstNode for ExcludeConstraint {
23705    #[inline]
23706    fn can_cast(kind: SyntaxKind) -> bool {
23707        kind == SyntaxKind::EXCLUDE_CONSTRAINT
23708    }
23709    #[inline]
23710    fn cast(syntax: SyntaxNode) -> Option<Self> {
23711        if Self::can_cast(syntax.kind()) {
23712            Some(Self { syntax })
23713        } else {
23714            None
23715        }
23716    }
23717    #[inline]
23718    fn syntax(&self) -> &SyntaxNode {
23719        &self.syntax
23720    }
23721}
23722impl AstNode for Execute {
23723    #[inline]
23724    fn can_cast(kind: SyntaxKind) -> bool {
23725        kind == SyntaxKind::EXECUTE
23726    }
23727    #[inline]
23728    fn cast(syntax: SyntaxNode) -> Option<Self> {
23729        if Self::can_cast(syntax.kind()) {
23730            Some(Self { syntax })
23731        } else {
23732            None
23733        }
23734    }
23735    #[inline]
23736    fn syntax(&self) -> &SyntaxNode {
23737        &self.syntax
23738    }
23739}
23740impl AstNode for ExistsFn {
23741    #[inline]
23742    fn can_cast(kind: SyntaxKind) -> bool {
23743        kind == SyntaxKind::EXISTS_FN
23744    }
23745    #[inline]
23746    fn cast(syntax: SyntaxNode) -> Option<Self> {
23747        if Self::can_cast(syntax.kind()) {
23748            Some(Self { syntax })
23749        } else {
23750            None
23751        }
23752    }
23753    #[inline]
23754    fn syntax(&self) -> &SyntaxNode {
23755        &self.syntax
23756    }
23757}
23758impl AstNode for Explain {
23759    #[inline]
23760    fn can_cast(kind: SyntaxKind) -> bool {
23761        kind == SyntaxKind::EXPLAIN
23762    }
23763    #[inline]
23764    fn cast(syntax: SyntaxNode) -> Option<Self> {
23765        if Self::can_cast(syntax.kind()) {
23766            Some(Self { syntax })
23767        } else {
23768            None
23769        }
23770    }
23771    #[inline]
23772    fn syntax(&self) -> &SyntaxNode {
23773        &self.syntax
23774    }
23775}
23776impl AstNode for ExprAsName {
23777    #[inline]
23778    fn can_cast(kind: SyntaxKind) -> bool {
23779        kind == SyntaxKind::EXPR_AS_NAME
23780    }
23781    #[inline]
23782    fn cast(syntax: SyntaxNode) -> Option<Self> {
23783        if Self::can_cast(syntax.kind()) {
23784            Some(Self { syntax })
23785        } else {
23786            None
23787        }
23788    }
23789    #[inline]
23790    fn syntax(&self) -> &SyntaxNode {
23791        &self.syntax
23792    }
23793}
23794impl AstNode for ExprAsNameList {
23795    #[inline]
23796    fn can_cast(kind: SyntaxKind) -> bool {
23797        kind == SyntaxKind::EXPR_AS_NAME_LIST
23798    }
23799    #[inline]
23800    fn cast(syntax: SyntaxNode) -> Option<Self> {
23801        if Self::can_cast(syntax.kind()) {
23802            Some(Self { syntax })
23803        } else {
23804            None
23805        }
23806    }
23807    #[inline]
23808    fn syntax(&self) -> &SyntaxNode {
23809        &self.syntax
23810    }
23811}
23812impl AstNode for ExprType {
23813    #[inline]
23814    fn can_cast(kind: SyntaxKind) -> bool {
23815        kind == SyntaxKind::EXPR_TYPE
23816    }
23817    #[inline]
23818    fn cast(syntax: SyntaxNode) -> Option<Self> {
23819        if Self::can_cast(syntax.kind()) {
23820            Some(Self { syntax })
23821        } else {
23822            None
23823        }
23824    }
23825    #[inline]
23826    fn syntax(&self) -> &SyntaxNode {
23827        &self.syntax
23828    }
23829}
23830impl AstNode for ExtractFn {
23831    #[inline]
23832    fn can_cast(kind: SyntaxKind) -> bool {
23833        kind == SyntaxKind::EXTRACT_FN
23834    }
23835    #[inline]
23836    fn cast(syntax: SyntaxNode) -> Option<Self> {
23837        if Self::can_cast(syntax.kind()) {
23838            Some(Self { syntax })
23839        } else {
23840            None
23841        }
23842    }
23843    #[inline]
23844    fn syntax(&self) -> &SyntaxNode {
23845        &self.syntax
23846    }
23847}
23848impl AstNode for FatArrow {
23849    #[inline]
23850    fn can_cast(kind: SyntaxKind) -> bool {
23851        kind == SyntaxKind::FAT_ARROW
23852    }
23853    #[inline]
23854    fn cast(syntax: SyntaxNode) -> Option<Self> {
23855        if Self::can_cast(syntax.kind()) {
23856            Some(Self { syntax })
23857        } else {
23858            None
23859        }
23860    }
23861    #[inline]
23862    fn syntax(&self) -> &SyntaxNode {
23863        &self.syntax
23864    }
23865}
23866impl AstNode for FdwOption {
23867    #[inline]
23868    fn can_cast(kind: SyntaxKind) -> bool {
23869        kind == SyntaxKind::FDW_OPTION
23870    }
23871    #[inline]
23872    fn cast(syntax: SyntaxNode) -> Option<Self> {
23873        if Self::can_cast(syntax.kind()) {
23874            Some(Self { syntax })
23875        } else {
23876            None
23877        }
23878    }
23879    #[inline]
23880    fn syntax(&self) -> &SyntaxNode {
23881        &self.syntax
23882    }
23883}
23884impl AstNode for FdwOptionList {
23885    #[inline]
23886    fn can_cast(kind: SyntaxKind) -> bool {
23887        kind == SyntaxKind::FDW_OPTION_LIST
23888    }
23889    #[inline]
23890    fn cast(syntax: SyntaxNode) -> Option<Self> {
23891        if Self::can_cast(syntax.kind()) {
23892            Some(Self { syntax })
23893        } else {
23894            None
23895        }
23896    }
23897    #[inline]
23898    fn syntax(&self) -> &SyntaxNode {
23899        &self.syntax
23900    }
23901}
23902impl AstNode for Fetch {
23903    #[inline]
23904    fn can_cast(kind: SyntaxKind) -> bool {
23905        kind == SyntaxKind::FETCH
23906    }
23907    #[inline]
23908    fn cast(syntax: SyntaxNode) -> Option<Self> {
23909        if Self::can_cast(syntax.kind()) {
23910            Some(Self { syntax })
23911        } else {
23912            None
23913        }
23914    }
23915    #[inline]
23916    fn syntax(&self) -> &SyntaxNode {
23917        &self.syntax
23918    }
23919}
23920impl AstNode for FetchClause {
23921    #[inline]
23922    fn can_cast(kind: SyntaxKind) -> bool {
23923        kind == SyntaxKind::FETCH_CLAUSE
23924    }
23925    #[inline]
23926    fn cast(syntax: SyntaxNode) -> Option<Self> {
23927        if Self::can_cast(syntax.kind()) {
23928            Some(Self { syntax })
23929        } else {
23930            None
23931        }
23932    }
23933    #[inline]
23934    fn syntax(&self) -> &SyntaxNode {
23935        &self.syntax
23936    }
23937}
23938impl AstNode for FieldExpr {
23939    #[inline]
23940    fn can_cast(kind: SyntaxKind) -> bool {
23941        kind == SyntaxKind::FIELD_EXPR
23942    }
23943    #[inline]
23944    fn cast(syntax: SyntaxNode) -> Option<Self> {
23945        if Self::can_cast(syntax.kind()) {
23946            Some(Self { syntax })
23947        } else {
23948            None
23949        }
23950    }
23951    #[inline]
23952    fn syntax(&self) -> &SyntaxNode {
23953        &self.syntax
23954    }
23955}
23956impl AstNode for FilterClause {
23957    #[inline]
23958    fn can_cast(kind: SyntaxKind) -> bool {
23959        kind == SyntaxKind::FILTER_CLAUSE
23960    }
23961    #[inline]
23962    fn cast(syntax: SyntaxNode) -> Option<Self> {
23963        if Self::can_cast(syntax.kind()) {
23964            Some(Self { syntax })
23965        } else {
23966            None
23967        }
23968    }
23969    #[inline]
23970    fn syntax(&self) -> &SyntaxNode {
23971        &self.syntax
23972    }
23973}
23974impl AstNode for ForProvider {
23975    #[inline]
23976    fn can_cast(kind: SyntaxKind) -> bool {
23977        kind == SyntaxKind::FOR_PROVIDER
23978    }
23979    #[inline]
23980    fn cast(syntax: SyntaxNode) -> Option<Self> {
23981        if Self::can_cast(syntax.kind()) {
23982            Some(Self { syntax })
23983        } else {
23984            None
23985        }
23986    }
23987    #[inline]
23988    fn syntax(&self) -> &SyntaxNode {
23989        &self.syntax
23990    }
23991}
23992impl AstNode for ForceRls {
23993    #[inline]
23994    fn can_cast(kind: SyntaxKind) -> bool {
23995        kind == SyntaxKind::FORCE_RLS
23996    }
23997    #[inline]
23998    fn cast(syntax: SyntaxNode) -> Option<Self> {
23999        if Self::can_cast(syntax.kind()) {
24000            Some(Self { syntax })
24001        } else {
24002            None
24003        }
24004    }
24005    #[inline]
24006    fn syntax(&self) -> &SyntaxNode {
24007        &self.syntax
24008    }
24009}
24010impl AstNode for ForeignKeyConstraint {
24011    #[inline]
24012    fn can_cast(kind: SyntaxKind) -> bool {
24013        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24014    }
24015    #[inline]
24016    fn cast(syntax: SyntaxNode) -> Option<Self> {
24017        if Self::can_cast(syntax.kind()) {
24018            Some(Self { syntax })
24019        } else {
24020            None
24021        }
24022    }
24023    #[inline]
24024    fn syntax(&self) -> &SyntaxNode {
24025        &self.syntax
24026    }
24027}
24028impl AstNode for FrameClause {
24029    #[inline]
24030    fn can_cast(kind: SyntaxKind) -> bool {
24031        kind == SyntaxKind::FRAME_CLAUSE
24032    }
24033    #[inline]
24034    fn cast(syntax: SyntaxNode) -> Option<Self> {
24035        if Self::can_cast(syntax.kind()) {
24036            Some(Self { syntax })
24037        } else {
24038            None
24039        }
24040    }
24041    #[inline]
24042    fn syntax(&self) -> &SyntaxNode {
24043        &self.syntax
24044    }
24045}
24046impl AstNode for FromClause {
24047    #[inline]
24048    fn can_cast(kind: SyntaxKind) -> bool {
24049        kind == SyntaxKind::FROM_CLAUSE
24050    }
24051    #[inline]
24052    fn cast(syntax: SyntaxNode) -> Option<Self> {
24053        if Self::can_cast(syntax.kind()) {
24054            Some(Self { syntax })
24055        } else {
24056            None
24057        }
24058    }
24059    #[inline]
24060    fn syntax(&self) -> &SyntaxNode {
24061        &self.syntax
24062    }
24063}
24064impl AstNode for FromItem {
24065    #[inline]
24066    fn can_cast(kind: SyntaxKind) -> bool {
24067        kind == SyntaxKind::FROM_ITEM
24068    }
24069    #[inline]
24070    fn cast(syntax: SyntaxNode) -> Option<Self> {
24071        if Self::can_cast(syntax.kind()) {
24072            Some(Self { syntax })
24073        } else {
24074            None
24075        }
24076    }
24077    #[inline]
24078    fn syntax(&self) -> &SyntaxNode {
24079        &self.syntax
24080    }
24081}
24082impl AstNode for FromTable {
24083    #[inline]
24084    fn can_cast(kind: SyntaxKind) -> bool {
24085        kind == SyntaxKind::FROM_TABLE
24086    }
24087    #[inline]
24088    fn cast(syntax: SyntaxNode) -> Option<Self> {
24089        if Self::can_cast(syntax.kind()) {
24090            Some(Self { syntax })
24091        } else {
24092            None
24093        }
24094    }
24095    #[inline]
24096    fn syntax(&self) -> &SyntaxNode {
24097        &self.syntax
24098    }
24099}
24100impl AstNode for FuncOptionList {
24101    #[inline]
24102    fn can_cast(kind: SyntaxKind) -> bool {
24103        kind == SyntaxKind::FUNC_OPTION_LIST
24104    }
24105    #[inline]
24106    fn cast(syntax: SyntaxNode) -> Option<Self> {
24107        if Self::can_cast(syntax.kind()) {
24108            Some(Self { syntax })
24109        } else {
24110            None
24111        }
24112    }
24113    #[inline]
24114    fn syntax(&self) -> &SyntaxNode {
24115        &self.syntax
24116    }
24117}
24118impl AstNode for FunctionSig {
24119    #[inline]
24120    fn can_cast(kind: SyntaxKind) -> bool {
24121        kind == SyntaxKind::FUNCTION_SIG
24122    }
24123    #[inline]
24124    fn cast(syntax: SyntaxNode) -> Option<Self> {
24125        if Self::can_cast(syntax.kind()) {
24126            Some(Self { syntax })
24127        } else {
24128            None
24129        }
24130    }
24131    #[inline]
24132    fn syntax(&self) -> &SyntaxNode {
24133        &self.syntax
24134    }
24135}
24136impl AstNode for FunctionSigList {
24137    #[inline]
24138    fn can_cast(kind: SyntaxKind) -> bool {
24139        kind == SyntaxKind::FUNCTION_SIG_LIST
24140    }
24141    #[inline]
24142    fn cast(syntax: SyntaxNode) -> Option<Self> {
24143        if Self::can_cast(syntax.kind()) {
24144            Some(Self { syntax })
24145        } else {
24146            None
24147        }
24148    }
24149    #[inline]
24150    fn syntax(&self) -> &SyntaxNode {
24151        &self.syntax
24152    }
24153}
24154impl AstNode for GeneratedConstraint {
24155    #[inline]
24156    fn can_cast(kind: SyntaxKind) -> bool {
24157        kind == SyntaxKind::GENERATED_CONSTRAINT
24158    }
24159    #[inline]
24160    fn cast(syntax: SyntaxNode) -> Option<Self> {
24161        if Self::can_cast(syntax.kind()) {
24162            Some(Self { syntax })
24163        } else {
24164            None
24165        }
24166    }
24167    #[inline]
24168    fn syntax(&self) -> &SyntaxNode {
24169        &self.syntax
24170    }
24171}
24172impl AstNode for Grant {
24173    #[inline]
24174    fn can_cast(kind: SyntaxKind) -> bool {
24175        kind == SyntaxKind::GRANT
24176    }
24177    #[inline]
24178    fn cast(syntax: SyntaxNode) -> Option<Self> {
24179        if Self::can_cast(syntax.kind()) {
24180            Some(Self { syntax })
24181        } else {
24182            None
24183        }
24184    }
24185    #[inline]
24186    fn syntax(&self) -> &SyntaxNode {
24187        &self.syntax
24188    }
24189}
24190impl AstNode for GrantDefaultPrivileges {
24191    #[inline]
24192    fn can_cast(kind: SyntaxKind) -> bool {
24193        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
24194    }
24195    #[inline]
24196    fn cast(syntax: SyntaxNode) -> Option<Self> {
24197        if Self::can_cast(syntax.kind()) {
24198            Some(Self { syntax })
24199        } else {
24200            None
24201        }
24202    }
24203    #[inline]
24204    fn syntax(&self) -> &SyntaxNode {
24205        &self.syntax
24206    }
24207}
24208impl AstNode for GraphPatternQualifier {
24209    #[inline]
24210    fn can_cast(kind: SyntaxKind) -> bool {
24211        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
24212    }
24213    #[inline]
24214    fn cast(syntax: SyntaxNode) -> Option<Self> {
24215        if Self::can_cast(syntax.kind()) {
24216            Some(Self { syntax })
24217        } else {
24218            None
24219        }
24220    }
24221    #[inline]
24222    fn syntax(&self) -> &SyntaxNode {
24223        &self.syntax
24224    }
24225}
24226impl AstNode for GraphTableFn {
24227    #[inline]
24228    fn can_cast(kind: SyntaxKind) -> bool {
24229        kind == SyntaxKind::GRAPH_TABLE_FN
24230    }
24231    #[inline]
24232    fn cast(syntax: SyntaxNode) -> Option<Self> {
24233        if Self::can_cast(syntax.kind()) {
24234            Some(Self { syntax })
24235        } else {
24236            None
24237        }
24238    }
24239    #[inline]
24240    fn syntax(&self) -> &SyntaxNode {
24241        &self.syntax
24242    }
24243}
24244impl AstNode for GroupByClause {
24245    #[inline]
24246    fn can_cast(kind: SyntaxKind) -> bool {
24247        kind == SyntaxKind::GROUP_BY_CLAUSE
24248    }
24249    #[inline]
24250    fn cast(syntax: SyntaxNode) -> Option<Self> {
24251        if Self::can_cast(syntax.kind()) {
24252            Some(Self { syntax })
24253        } else {
24254            None
24255        }
24256    }
24257    #[inline]
24258    fn syntax(&self) -> &SyntaxNode {
24259        &self.syntax
24260    }
24261}
24262impl AstNode for GroupByList {
24263    #[inline]
24264    fn can_cast(kind: SyntaxKind) -> bool {
24265        kind == SyntaxKind::GROUP_BY_LIST
24266    }
24267    #[inline]
24268    fn cast(syntax: SyntaxNode) -> Option<Self> {
24269        if Self::can_cast(syntax.kind()) {
24270            Some(Self { syntax })
24271        } else {
24272            None
24273        }
24274    }
24275    #[inline]
24276    fn syntax(&self) -> &SyntaxNode {
24277        &self.syntax
24278    }
24279}
24280impl AstNode for GroupingCube {
24281    #[inline]
24282    fn can_cast(kind: SyntaxKind) -> bool {
24283        kind == SyntaxKind::GROUPING_CUBE
24284    }
24285    #[inline]
24286    fn cast(syntax: SyntaxNode) -> Option<Self> {
24287        if Self::can_cast(syntax.kind()) {
24288            Some(Self { syntax })
24289        } else {
24290            None
24291        }
24292    }
24293    #[inline]
24294    fn syntax(&self) -> &SyntaxNode {
24295        &self.syntax
24296    }
24297}
24298impl AstNode for GroupingExpr {
24299    #[inline]
24300    fn can_cast(kind: SyntaxKind) -> bool {
24301        kind == SyntaxKind::GROUPING_EXPR
24302    }
24303    #[inline]
24304    fn cast(syntax: SyntaxNode) -> Option<Self> {
24305        if Self::can_cast(syntax.kind()) {
24306            Some(Self { syntax })
24307        } else {
24308            None
24309        }
24310    }
24311    #[inline]
24312    fn syntax(&self) -> &SyntaxNode {
24313        &self.syntax
24314    }
24315}
24316impl AstNode for GroupingRollup {
24317    #[inline]
24318    fn can_cast(kind: SyntaxKind) -> bool {
24319        kind == SyntaxKind::GROUPING_ROLLUP
24320    }
24321    #[inline]
24322    fn cast(syntax: SyntaxNode) -> Option<Self> {
24323        if Self::can_cast(syntax.kind()) {
24324            Some(Self { syntax })
24325        } else {
24326            None
24327        }
24328    }
24329    #[inline]
24330    fn syntax(&self) -> &SyntaxNode {
24331        &self.syntax
24332    }
24333}
24334impl AstNode for GroupingSets {
24335    #[inline]
24336    fn can_cast(kind: SyntaxKind) -> bool {
24337        kind == SyntaxKind::GROUPING_SETS
24338    }
24339    #[inline]
24340    fn cast(syntax: SyntaxNode) -> Option<Self> {
24341        if Self::can_cast(syntax.kind()) {
24342            Some(Self { syntax })
24343        } else {
24344            None
24345        }
24346    }
24347    #[inline]
24348    fn syntax(&self) -> &SyntaxNode {
24349        &self.syntax
24350    }
24351}
24352impl AstNode for Gteq {
24353    #[inline]
24354    fn can_cast(kind: SyntaxKind) -> bool {
24355        kind == SyntaxKind::GTEQ
24356    }
24357    #[inline]
24358    fn cast(syntax: SyntaxNode) -> Option<Self> {
24359        if Self::can_cast(syntax.kind()) {
24360            Some(Self { syntax })
24361        } else {
24362            None
24363        }
24364    }
24365    #[inline]
24366    fn syntax(&self) -> &SyntaxNode {
24367        &self.syntax
24368    }
24369}
24370impl AstNode for HandlerClause {
24371    #[inline]
24372    fn can_cast(kind: SyntaxKind) -> bool {
24373        kind == SyntaxKind::HANDLER_CLAUSE
24374    }
24375    #[inline]
24376    fn cast(syntax: SyntaxNode) -> Option<Self> {
24377        if Self::can_cast(syntax.kind()) {
24378            Some(Self { syntax })
24379        } else {
24380            None
24381        }
24382    }
24383    #[inline]
24384    fn syntax(&self) -> &SyntaxNode {
24385        &self.syntax
24386    }
24387}
24388impl AstNode for HavingClause {
24389    #[inline]
24390    fn can_cast(kind: SyntaxKind) -> bool {
24391        kind == SyntaxKind::HAVING_CLAUSE
24392    }
24393    #[inline]
24394    fn cast(syntax: SyntaxNode) -> Option<Self> {
24395        if Self::can_cast(syntax.kind()) {
24396            Some(Self { syntax })
24397        } else {
24398            None
24399        }
24400    }
24401    #[inline]
24402    fn syntax(&self) -> &SyntaxNode {
24403        &self.syntax
24404    }
24405}
24406impl AstNode for IfExists {
24407    #[inline]
24408    fn can_cast(kind: SyntaxKind) -> bool {
24409        kind == SyntaxKind::IF_EXISTS
24410    }
24411    #[inline]
24412    fn cast(syntax: SyntaxNode) -> Option<Self> {
24413        if Self::can_cast(syntax.kind()) {
24414            Some(Self { syntax })
24415        } else {
24416            None
24417        }
24418    }
24419    #[inline]
24420    fn syntax(&self) -> &SyntaxNode {
24421        &self.syntax
24422    }
24423}
24424impl AstNode for IfNotExists {
24425    #[inline]
24426    fn can_cast(kind: SyntaxKind) -> bool {
24427        kind == SyntaxKind::IF_NOT_EXISTS
24428    }
24429    #[inline]
24430    fn cast(syntax: SyntaxNode) -> Option<Self> {
24431        if Self::can_cast(syntax.kind()) {
24432            Some(Self { syntax })
24433        } else {
24434            None
24435        }
24436    }
24437    #[inline]
24438    fn syntax(&self) -> &SyntaxNode {
24439        &self.syntax
24440    }
24441}
24442impl AstNode for ImportForeignSchema {
24443    #[inline]
24444    fn can_cast(kind: SyntaxKind) -> bool {
24445        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
24446    }
24447    #[inline]
24448    fn cast(syntax: SyntaxNode) -> Option<Self> {
24449        if Self::can_cast(syntax.kind()) {
24450            Some(Self { syntax })
24451        } else {
24452            None
24453        }
24454    }
24455    #[inline]
24456    fn syntax(&self) -> &SyntaxNode {
24457        &self.syntax
24458    }
24459}
24460impl AstNode for IndexExpr {
24461    #[inline]
24462    fn can_cast(kind: SyntaxKind) -> bool {
24463        kind == SyntaxKind::INDEX_EXPR
24464    }
24465    #[inline]
24466    fn cast(syntax: SyntaxNode) -> Option<Self> {
24467        if Self::can_cast(syntax.kind()) {
24468            Some(Self { syntax })
24469        } else {
24470            None
24471        }
24472    }
24473    #[inline]
24474    fn syntax(&self) -> &SyntaxNode {
24475        &self.syntax
24476    }
24477}
24478impl AstNode for Inherit {
24479    #[inline]
24480    fn can_cast(kind: SyntaxKind) -> bool {
24481        kind == SyntaxKind::INHERIT
24482    }
24483    #[inline]
24484    fn cast(syntax: SyntaxNode) -> Option<Self> {
24485        if Self::can_cast(syntax.kind()) {
24486            Some(Self { syntax })
24487        } else {
24488            None
24489        }
24490    }
24491    #[inline]
24492    fn syntax(&self) -> &SyntaxNode {
24493        &self.syntax
24494    }
24495}
24496impl AstNode for InheritTable {
24497    #[inline]
24498    fn can_cast(kind: SyntaxKind) -> bool {
24499        kind == SyntaxKind::INHERIT_TABLE
24500    }
24501    #[inline]
24502    fn cast(syntax: SyntaxNode) -> Option<Self> {
24503        if Self::can_cast(syntax.kind()) {
24504            Some(Self { syntax })
24505        } else {
24506            None
24507        }
24508    }
24509    #[inline]
24510    fn syntax(&self) -> &SyntaxNode {
24511        &self.syntax
24512    }
24513}
24514impl AstNode for Inherits {
24515    #[inline]
24516    fn can_cast(kind: SyntaxKind) -> bool {
24517        kind == SyntaxKind::INHERITS
24518    }
24519    #[inline]
24520    fn cast(syntax: SyntaxNode) -> Option<Self> {
24521        if Self::can_cast(syntax.kind()) {
24522            Some(Self { syntax })
24523        } else {
24524            None
24525        }
24526    }
24527    #[inline]
24528    fn syntax(&self) -> &SyntaxNode {
24529        &self.syntax
24530    }
24531}
24532impl AstNode for InitiallyDeferredConstraintOption {
24533    #[inline]
24534    fn can_cast(kind: SyntaxKind) -> bool {
24535        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
24536    }
24537    #[inline]
24538    fn cast(syntax: SyntaxNode) -> Option<Self> {
24539        if Self::can_cast(syntax.kind()) {
24540            Some(Self { syntax })
24541        } else {
24542            None
24543        }
24544    }
24545    #[inline]
24546    fn syntax(&self) -> &SyntaxNode {
24547        &self.syntax
24548    }
24549}
24550impl AstNode for InitiallyImmediateConstraintOption {
24551    #[inline]
24552    fn can_cast(kind: SyntaxKind) -> bool {
24553        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
24554    }
24555    #[inline]
24556    fn cast(syntax: SyntaxNode) -> Option<Self> {
24557        if Self::can_cast(syntax.kind()) {
24558            Some(Self { syntax })
24559        } else {
24560            None
24561        }
24562    }
24563    #[inline]
24564    fn syntax(&self) -> &SyntaxNode {
24565        &self.syntax
24566    }
24567}
24568impl AstNode for Insert {
24569    #[inline]
24570    fn can_cast(kind: SyntaxKind) -> bool {
24571        kind == SyntaxKind::INSERT
24572    }
24573    #[inline]
24574    fn cast(syntax: SyntaxNode) -> Option<Self> {
24575        if Self::can_cast(syntax.kind()) {
24576            Some(Self { syntax })
24577        } else {
24578            None
24579        }
24580    }
24581    #[inline]
24582    fn syntax(&self) -> &SyntaxNode {
24583        &self.syntax
24584    }
24585}
24586impl AstNode for IntervalType {
24587    #[inline]
24588    fn can_cast(kind: SyntaxKind) -> bool {
24589        kind == SyntaxKind::INTERVAL_TYPE
24590    }
24591    #[inline]
24592    fn cast(syntax: SyntaxNode) -> Option<Self> {
24593        if Self::can_cast(syntax.kind()) {
24594            Some(Self { syntax })
24595        } else {
24596            None
24597        }
24598    }
24599    #[inline]
24600    fn syntax(&self) -> &SyntaxNode {
24601        &self.syntax
24602    }
24603}
24604impl AstNode for IntoClause {
24605    #[inline]
24606    fn can_cast(kind: SyntaxKind) -> bool {
24607        kind == SyntaxKind::INTO_CLAUSE
24608    }
24609    #[inline]
24610    fn cast(syntax: SyntaxNode) -> Option<Self> {
24611        if Self::can_cast(syntax.kind()) {
24612            Some(Self { syntax })
24613        } else {
24614            None
24615        }
24616    }
24617    #[inline]
24618    fn syntax(&self) -> &SyntaxNode {
24619        &self.syntax
24620    }
24621}
24622impl AstNode for IntoSchema {
24623    #[inline]
24624    fn can_cast(kind: SyntaxKind) -> bool {
24625        kind == SyntaxKind::INTO_SCHEMA
24626    }
24627    #[inline]
24628    fn cast(syntax: SyntaxNode) -> Option<Self> {
24629        if Self::can_cast(syntax.kind()) {
24630            Some(Self { syntax })
24631        } else {
24632            None
24633        }
24634    }
24635    #[inline]
24636    fn syntax(&self) -> &SyntaxNode {
24637        &self.syntax
24638    }
24639}
24640impl AstNode for IsDistinctFrom {
24641    #[inline]
24642    fn can_cast(kind: SyntaxKind) -> bool {
24643        kind == SyntaxKind::IS_DISTINCT_FROM
24644    }
24645    #[inline]
24646    fn cast(syntax: SyntaxNode) -> Option<Self> {
24647        if Self::can_cast(syntax.kind()) {
24648            Some(Self { syntax })
24649        } else {
24650            None
24651        }
24652    }
24653    #[inline]
24654    fn syntax(&self) -> &SyntaxNode {
24655        &self.syntax
24656    }
24657}
24658impl AstNode for IsJson {
24659    #[inline]
24660    fn can_cast(kind: SyntaxKind) -> bool {
24661        kind == SyntaxKind::IS_JSON
24662    }
24663    #[inline]
24664    fn cast(syntax: SyntaxNode) -> Option<Self> {
24665        if Self::can_cast(syntax.kind()) {
24666            Some(Self { syntax })
24667        } else {
24668            None
24669        }
24670    }
24671    #[inline]
24672    fn syntax(&self) -> &SyntaxNode {
24673        &self.syntax
24674    }
24675}
24676impl AstNode for IsJsonArray {
24677    #[inline]
24678    fn can_cast(kind: SyntaxKind) -> bool {
24679        kind == SyntaxKind::IS_JSON_ARRAY
24680    }
24681    #[inline]
24682    fn cast(syntax: SyntaxNode) -> Option<Self> {
24683        if Self::can_cast(syntax.kind()) {
24684            Some(Self { syntax })
24685        } else {
24686            None
24687        }
24688    }
24689    #[inline]
24690    fn syntax(&self) -> &SyntaxNode {
24691        &self.syntax
24692    }
24693}
24694impl AstNode for IsJsonObject {
24695    #[inline]
24696    fn can_cast(kind: SyntaxKind) -> bool {
24697        kind == SyntaxKind::IS_JSON_OBJECT
24698    }
24699    #[inline]
24700    fn cast(syntax: SyntaxNode) -> Option<Self> {
24701        if Self::can_cast(syntax.kind()) {
24702            Some(Self { syntax })
24703        } else {
24704            None
24705        }
24706    }
24707    #[inline]
24708    fn syntax(&self) -> &SyntaxNode {
24709        &self.syntax
24710    }
24711}
24712impl AstNode for IsJsonScalar {
24713    #[inline]
24714    fn can_cast(kind: SyntaxKind) -> bool {
24715        kind == SyntaxKind::IS_JSON_SCALAR
24716    }
24717    #[inline]
24718    fn cast(syntax: SyntaxNode) -> Option<Self> {
24719        if Self::can_cast(syntax.kind()) {
24720            Some(Self { syntax })
24721        } else {
24722            None
24723        }
24724    }
24725    #[inline]
24726    fn syntax(&self) -> &SyntaxNode {
24727        &self.syntax
24728    }
24729}
24730impl AstNode for IsJsonValue {
24731    #[inline]
24732    fn can_cast(kind: SyntaxKind) -> bool {
24733        kind == SyntaxKind::IS_JSON_VALUE
24734    }
24735    #[inline]
24736    fn cast(syntax: SyntaxNode) -> Option<Self> {
24737        if Self::can_cast(syntax.kind()) {
24738            Some(Self { syntax })
24739        } else {
24740            None
24741        }
24742    }
24743    #[inline]
24744    fn syntax(&self) -> &SyntaxNode {
24745        &self.syntax
24746    }
24747}
24748impl AstNode for IsLabel {
24749    #[inline]
24750    fn can_cast(kind: SyntaxKind) -> bool {
24751        kind == SyntaxKind::IS_LABEL
24752    }
24753    #[inline]
24754    fn cast(syntax: SyntaxNode) -> Option<Self> {
24755        if Self::can_cast(syntax.kind()) {
24756            Some(Self { syntax })
24757        } else {
24758            None
24759        }
24760    }
24761    #[inline]
24762    fn syntax(&self) -> &SyntaxNode {
24763        &self.syntax
24764    }
24765}
24766impl AstNode for IsNormalized {
24767    #[inline]
24768    fn can_cast(kind: SyntaxKind) -> bool {
24769        kind == SyntaxKind::IS_NORMALIZED
24770    }
24771    #[inline]
24772    fn cast(syntax: SyntaxNode) -> Option<Self> {
24773        if Self::can_cast(syntax.kind()) {
24774            Some(Self { syntax })
24775        } else {
24776            None
24777        }
24778    }
24779    #[inline]
24780    fn syntax(&self) -> &SyntaxNode {
24781        &self.syntax
24782    }
24783}
24784impl AstNode for IsNot {
24785    #[inline]
24786    fn can_cast(kind: SyntaxKind) -> bool {
24787        kind == SyntaxKind::IS_NOT
24788    }
24789    #[inline]
24790    fn cast(syntax: SyntaxNode) -> Option<Self> {
24791        if Self::can_cast(syntax.kind()) {
24792            Some(Self { syntax })
24793        } else {
24794            None
24795        }
24796    }
24797    #[inline]
24798    fn syntax(&self) -> &SyntaxNode {
24799        &self.syntax
24800    }
24801}
24802impl AstNode for IsNotDistinctFrom {
24803    #[inline]
24804    fn can_cast(kind: SyntaxKind) -> bool {
24805        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
24806    }
24807    #[inline]
24808    fn cast(syntax: SyntaxNode) -> Option<Self> {
24809        if Self::can_cast(syntax.kind()) {
24810            Some(Self { syntax })
24811        } else {
24812            None
24813        }
24814    }
24815    #[inline]
24816    fn syntax(&self) -> &SyntaxNode {
24817        &self.syntax
24818    }
24819}
24820impl AstNode for IsNotJson {
24821    #[inline]
24822    fn can_cast(kind: SyntaxKind) -> bool {
24823        kind == SyntaxKind::IS_NOT_JSON
24824    }
24825    #[inline]
24826    fn cast(syntax: SyntaxNode) -> Option<Self> {
24827        if Self::can_cast(syntax.kind()) {
24828            Some(Self { syntax })
24829        } else {
24830            None
24831        }
24832    }
24833    #[inline]
24834    fn syntax(&self) -> &SyntaxNode {
24835        &self.syntax
24836    }
24837}
24838impl AstNode for IsNotJsonArray {
24839    #[inline]
24840    fn can_cast(kind: SyntaxKind) -> bool {
24841        kind == SyntaxKind::IS_NOT_JSON_ARRAY
24842    }
24843    #[inline]
24844    fn cast(syntax: SyntaxNode) -> Option<Self> {
24845        if Self::can_cast(syntax.kind()) {
24846            Some(Self { syntax })
24847        } else {
24848            None
24849        }
24850    }
24851    #[inline]
24852    fn syntax(&self) -> &SyntaxNode {
24853        &self.syntax
24854    }
24855}
24856impl AstNode for IsNotJsonObject {
24857    #[inline]
24858    fn can_cast(kind: SyntaxKind) -> bool {
24859        kind == SyntaxKind::IS_NOT_JSON_OBJECT
24860    }
24861    #[inline]
24862    fn cast(syntax: SyntaxNode) -> Option<Self> {
24863        if Self::can_cast(syntax.kind()) {
24864            Some(Self { syntax })
24865        } else {
24866            None
24867        }
24868    }
24869    #[inline]
24870    fn syntax(&self) -> &SyntaxNode {
24871        &self.syntax
24872    }
24873}
24874impl AstNode for IsNotJsonScalar {
24875    #[inline]
24876    fn can_cast(kind: SyntaxKind) -> bool {
24877        kind == SyntaxKind::IS_NOT_JSON_SCALAR
24878    }
24879    #[inline]
24880    fn cast(syntax: SyntaxNode) -> Option<Self> {
24881        if Self::can_cast(syntax.kind()) {
24882            Some(Self { syntax })
24883        } else {
24884            None
24885        }
24886    }
24887    #[inline]
24888    fn syntax(&self) -> &SyntaxNode {
24889        &self.syntax
24890    }
24891}
24892impl AstNode for IsNotJsonValue {
24893    #[inline]
24894    fn can_cast(kind: SyntaxKind) -> bool {
24895        kind == SyntaxKind::IS_NOT_JSON_VALUE
24896    }
24897    #[inline]
24898    fn cast(syntax: SyntaxNode) -> Option<Self> {
24899        if Self::can_cast(syntax.kind()) {
24900            Some(Self { syntax })
24901        } else {
24902            None
24903        }
24904    }
24905    #[inline]
24906    fn syntax(&self) -> &SyntaxNode {
24907        &self.syntax
24908    }
24909}
24910impl AstNode for IsNotNormalized {
24911    #[inline]
24912    fn can_cast(kind: SyntaxKind) -> bool {
24913        kind == SyntaxKind::IS_NOT_NORMALIZED
24914    }
24915    #[inline]
24916    fn cast(syntax: SyntaxNode) -> Option<Self> {
24917        if Self::can_cast(syntax.kind()) {
24918            Some(Self { syntax })
24919        } else {
24920            None
24921        }
24922    }
24923    #[inline]
24924    fn syntax(&self) -> &SyntaxNode {
24925        &self.syntax
24926    }
24927}
24928impl AstNode for Join {
24929    #[inline]
24930    fn can_cast(kind: SyntaxKind) -> bool {
24931        kind == SyntaxKind::JOIN
24932    }
24933    #[inline]
24934    fn cast(syntax: SyntaxNode) -> Option<Self> {
24935        if Self::can_cast(syntax.kind()) {
24936            Some(Self { syntax })
24937        } else {
24938            None
24939        }
24940    }
24941    #[inline]
24942    fn syntax(&self) -> &SyntaxNode {
24943        &self.syntax
24944    }
24945}
24946impl AstNode for JoinCross {
24947    #[inline]
24948    fn can_cast(kind: SyntaxKind) -> bool {
24949        kind == SyntaxKind::JOIN_CROSS
24950    }
24951    #[inline]
24952    fn cast(syntax: SyntaxNode) -> Option<Self> {
24953        if Self::can_cast(syntax.kind()) {
24954            Some(Self { syntax })
24955        } else {
24956            None
24957        }
24958    }
24959    #[inline]
24960    fn syntax(&self) -> &SyntaxNode {
24961        &self.syntax
24962    }
24963}
24964impl AstNode for JoinExpr {
24965    #[inline]
24966    fn can_cast(kind: SyntaxKind) -> bool {
24967        kind == SyntaxKind::JOIN_EXPR
24968    }
24969    #[inline]
24970    fn cast(syntax: SyntaxNode) -> Option<Self> {
24971        if Self::can_cast(syntax.kind()) {
24972            Some(Self { syntax })
24973        } else {
24974            None
24975        }
24976    }
24977    #[inline]
24978    fn syntax(&self) -> &SyntaxNode {
24979        &self.syntax
24980    }
24981}
24982impl AstNode for JoinFull {
24983    #[inline]
24984    fn can_cast(kind: SyntaxKind) -> bool {
24985        kind == SyntaxKind::JOIN_FULL
24986    }
24987    #[inline]
24988    fn cast(syntax: SyntaxNode) -> Option<Self> {
24989        if Self::can_cast(syntax.kind()) {
24990            Some(Self { syntax })
24991        } else {
24992            None
24993        }
24994    }
24995    #[inline]
24996    fn syntax(&self) -> &SyntaxNode {
24997        &self.syntax
24998    }
24999}
25000impl AstNode for JoinInner {
25001    #[inline]
25002    fn can_cast(kind: SyntaxKind) -> bool {
25003        kind == SyntaxKind::JOIN_INNER
25004    }
25005    #[inline]
25006    fn cast(syntax: SyntaxNode) -> Option<Self> {
25007        if Self::can_cast(syntax.kind()) {
25008            Some(Self { syntax })
25009        } else {
25010            None
25011        }
25012    }
25013    #[inline]
25014    fn syntax(&self) -> &SyntaxNode {
25015        &self.syntax
25016    }
25017}
25018impl AstNode for JoinLeft {
25019    #[inline]
25020    fn can_cast(kind: SyntaxKind) -> bool {
25021        kind == SyntaxKind::JOIN_LEFT
25022    }
25023    #[inline]
25024    fn cast(syntax: SyntaxNode) -> Option<Self> {
25025        if Self::can_cast(syntax.kind()) {
25026            Some(Self { syntax })
25027        } else {
25028            None
25029        }
25030    }
25031    #[inline]
25032    fn syntax(&self) -> &SyntaxNode {
25033        &self.syntax
25034    }
25035}
25036impl AstNode for JoinRight {
25037    #[inline]
25038    fn can_cast(kind: SyntaxKind) -> bool {
25039        kind == SyntaxKind::JOIN_RIGHT
25040    }
25041    #[inline]
25042    fn cast(syntax: SyntaxNode) -> Option<Self> {
25043        if Self::can_cast(syntax.kind()) {
25044            Some(Self { syntax })
25045        } else {
25046            None
25047        }
25048    }
25049    #[inline]
25050    fn syntax(&self) -> &SyntaxNode {
25051        &self.syntax
25052    }
25053}
25054impl AstNode for JoinUsingClause {
25055    #[inline]
25056    fn can_cast(kind: SyntaxKind) -> bool {
25057        kind == SyntaxKind::JOIN_USING_CLAUSE
25058    }
25059    #[inline]
25060    fn cast(syntax: SyntaxNode) -> Option<Self> {
25061        if Self::can_cast(syntax.kind()) {
25062            Some(Self { syntax })
25063        } else {
25064            None
25065        }
25066    }
25067    #[inline]
25068    fn syntax(&self) -> &SyntaxNode {
25069        &self.syntax
25070    }
25071}
25072impl AstNode for JsonArrayAggFn {
25073    #[inline]
25074    fn can_cast(kind: SyntaxKind) -> bool {
25075        kind == SyntaxKind::JSON_ARRAY_AGG_FN
25076    }
25077    #[inline]
25078    fn cast(syntax: SyntaxNode) -> Option<Self> {
25079        if Self::can_cast(syntax.kind()) {
25080            Some(Self { syntax })
25081        } else {
25082            None
25083        }
25084    }
25085    #[inline]
25086    fn syntax(&self) -> &SyntaxNode {
25087        &self.syntax
25088    }
25089}
25090impl AstNode for JsonArrayFn {
25091    #[inline]
25092    fn can_cast(kind: SyntaxKind) -> bool {
25093        kind == SyntaxKind::JSON_ARRAY_FN
25094    }
25095    #[inline]
25096    fn cast(syntax: SyntaxNode) -> Option<Self> {
25097        if Self::can_cast(syntax.kind()) {
25098            Some(Self { syntax })
25099        } else {
25100            None
25101        }
25102    }
25103    #[inline]
25104    fn syntax(&self) -> &SyntaxNode {
25105        &self.syntax
25106    }
25107}
25108impl AstNode for JsonBehaviorClause {
25109    #[inline]
25110    fn can_cast(kind: SyntaxKind) -> bool {
25111        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
25112    }
25113    #[inline]
25114    fn cast(syntax: SyntaxNode) -> Option<Self> {
25115        if Self::can_cast(syntax.kind()) {
25116            Some(Self { syntax })
25117        } else {
25118            None
25119        }
25120    }
25121    #[inline]
25122    fn syntax(&self) -> &SyntaxNode {
25123        &self.syntax
25124    }
25125}
25126impl AstNode for JsonBehaviorDefault {
25127    #[inline]
25128    fn can_cast(kind: SyntaxKind) -> bool {
25129        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
25130    }
25131    #[inline]
25132    fn cast(syntax: SyntaxNode) -> Option<Self> {
25133        if Self::can_cast(syntax.kind()) {
25134            Some(Self { syntax })
25135        } else {
25136            None
25137        }
25138    }
25139    #[inline]
25140    fn syntax(&self) -> &SyntaxNode {
25141        &self.syntax
25142    }
25143}
25144impl AstNode for JsonBehaviorEmptyArray {
25145    #[inline]
25146    fn can_cast(kind: SyntaxKind) -> bool {
25147        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
25148    }
25149    #[inline]
25150    fn cast(syntax: SyntaxNode) -> Option<Self> {
25151        if Self::can_cast(syntax.kind()) {
25152            Some(Self { syntax })
25153        } else {
25154            None
25155        }
25156    }
25157    #[inline]
25158    fn syntax(&self) -> &SyntaxNode {
25159        &self.syntax
25160    }
25161}
25162impl AstNode for JsonBehaviorEmptyObject {
25163    #[inline]
25164    fn can_cast(kind: SyntaxKind) -> bool {
25165        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
25166    }
25167    #[inline]
25168    fn cast(syntax: SyntaxNode) -> Option<Self> {
25169        if Self::can_cast(syntax.kind()) {
25170            Some(Self { syntax })
25171        } else {
25172            None
25173        }
25174    }
25175    #[inline]
25176    fn syntax(&self) -> &SyntaxNode {
25177        &self.syntax
25178    }
25179}
25180impl AstNode for JsonBehaviorError {
25181    #[inline]
25182    fn can_cast(kind: SyntaxKind) -> bool {
25183        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
25184    }
25185    #[inline]
25186    fn cast(syntax: SyntaxNode) -> Option<Self> {
25187        if Self::can_cast(syntax.kind()) {
25188            Some(Self { syntax })
25189        } else {
25190            None
25191        }
25192    }
25193    #[inline]
25194    fn syntax(&self) -> &SyntaxNode {
25195        &self.syntax
25196    }
25197}
25198impl AstNode for JsonBehaviorFalse {
25199    #[inline]
25200    fn can_cast(kind: SyntaxKind) -> bool {
25201        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
25202    }
25203    #[inline]
25204    fn cast(syntax: SyntaxNode) -> Option<Self> {
25205        if Self::can_cast(syntax.kind()) {
25206            Some(Self { syntax })
25207        } else {
25208            None
25209        }
25210    }
25211    #[inline]
25212    fn syntax(&self) -> &SyntaxNode {
25213        &self.syntax
25214    }
25215}
25216impl AstNode for JsonBehaviorNull {
25217    #[inline]
25218    fn can_cast(kind: SyntaxKind) -> bool {
25219        kind == SyntaxKind::JSON_BEHAVIOR_NULL
25220    }
25221    #[inline]
25222    fn cast(syntax: SyntaxNode) -> Option<Self> {
25223        if Self::can_cast(syntax.kind()) {
25224            Some(Self { syntax })
25225        } else {
25226            None
25227        }
25228    }
25229    #[inline]
25230    fn syntax(&self) -> &SyntaxNode {
25231        &self.syntax
25232    }
25233}
25234impl AstNode for JsonBehaviorTrue {
25235    #[inline]
25236    fn can_cast(kind: SyntaxKind) -> bool {
25237        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
25238    }
25239    #[inline]
25240    fn cast(syntax: SyntaxNode) -> Option<Self> {
25241        if Self::can_cast(syntax.kind()) {
25242            Some(Self { syntax })
25243        } else {
25244            None
25245        }
25246    }
25247    #[inline]
25248    fn syntax(&self) -> &SyntaxNode {
25249        &self.syntax
25250    }
25251}
25252impl AstNode for JsonBehaviorUnknown {
25253    #[inline]
25254    fn can_cast(kind: SyntaxKind) -> bool {
25255        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
25256    }
25257    #[inline]
25258    fn cast(syntax: SyntaxNode) -> Option<Self> {
25259        if Self::can_cast(syntax.kind()) {
25260            Some(Self { syntax })
25261        } else {
25262            None
25263        }
25264    }
25265    #[inline]
25266    fn syntax(&self) -> &SyntaxNode {
25267        &self.syntax
25268    }
25269}
25270impl AstNode for JsonEncodingClause {
25271    #[inline]
25272    fn can_cast(kind: SyntaxKind) -> bool {
25273        kind == SyntaxKind::JSON_ENCODING_CLAUSE
25274    }
25275    #[inline]
25276    fn cast(syntax: SyntaxNode) -> Option<Self> {
25277        if Self::can_cast(syntax.kind()) {
25278            Some(Self { syntax })
25279        } else {
25280            None
25281        }
25282    }
25283    #[inline]
25284    fn syntax(&self) -> &SyntaxNode {
25285        &self.syntax
25286    }
25287}
25288impl AstNode for JsonExistsFn {
25289    #[inline]
25290    fn can_cast(kind: SyntaxKind) -> bool {
25291        kind == SyntaxKind::JSON_EXISTS_FN
25292    }
25293    #[inline]
25294    fn cast(syntax: SyntaxNode) -> Option<Self> {
25295        if Self::can_cast(syntax.kind()) {
25296            Some(Self { syntax })
25297        } else {
25298            None
25299        }
25300    }
25301    #[inline]
25302    fn syntax(&self) -> &SyntaxNode {
25303        &self.syntax
25304    }
25305}
25306impl AstNode for JsonExprFormat {
25307    #[inline]
25308    fn can_cast(kind: SyntaxKind) -> bool {
25309        kind == SyntaxKind::JSON_EXPR_FORMAT
25310    }
25311    #[inline]
25312    fn cast(syntax: SyntaxNode) -> Option<Self> {
25313        if Self::can_cast(syntax.kind()) {
25314            Some(Self { syntax })
25315        } else {
25316            None
25317        }
25318    }
25319    #[inline]
25320    fn syntax(&self) -> &SyntaxNode {
25321        &self.syntax
25322    }
25323}
25324impl AstNode for JsonFn {
25325    #[inline]
25326    fn can_cast(kind: SyntaxKind) -> bool {
25327        kind == SyntaxKind::JSON_FN
25328    }
25329    #[inline]
25330    fn cast(syntax: SyntaxNode) -> Option<Self> {
25331        if Self::can_cast(syntax.kind()) {
25332            Some(Self { syntax })
25333        } else {
25334            None
25335        }
25336    }
25337    #[inline]
25338    fn syntax(&self) -> &SyntaxNode {
25339        &self.syntax
25340    }
25341}
25342impl AstNode for JsonFormatClause {
25343    #[inline]
25344    fn can_cast(kind: SyntaxKind) -> bool {
25345        kind == SyntaxKind::JSON_FORMAT_CLAUSE
25346    }
25347    #[inline]
25348    fn cast(syntax: SyntaxNode) -> Option<Self> {
25349        if Self::can_cast(syntax.kind()) {
25350            Some(Self { syntax })
25351        } else {
25352            None
25353        }
25354    }
25355    #[inline]
25356    fn syntax(&self) -> &SyntaxNode {
25357        &self.syntax
25358    }
25359}
25360impl AstNode for JsonKeyValue {
25361    #[inline]
25362    fn can_cast(kind: SyntaxKind) -> bool {
25363        kind == SyntaxKind::JSON_KEY_VALUE
25364    }
25365    #[inline]
25366    fn cast(syntax: SyntaxNode) -> Option<Self> {
25367        if Self::can_cast(syntax.kind()) {
25368            Some(Self { syntax })
25369        } else {
25370            None
25371        }
25372    }
25373    #[inline]
25374    fn syntax(&self) -> &SyntaxNode {
25375        &self.syntax
25376    }
25377}
25378impl AstNode for JsonKeysUniqueClause {
25379    #[inline]
25380    fn can_cast(kind: SyntaxKind) -> bool {
25381        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
25382    }
25383    #[inline]
25384    fn cast(syntax: SyntaxNode) -> Option<Self> {
25385        if Self::can_cast(syntax.kind()) {
25386            Some(Self { syntax })
25387        } else {
25388            None
25389        }
25390    }
25391    #[inline]
25392    fn syntax(&self) -> &SyntaxNode {
25393        &self.syntax
25394    }
25395}
25396impl AstNode for JsonNullClause {
25397    #[inline]
25398    fn can_cast(kind: SyntaxKind) -> bool {
25399        kind == SyntaxKind::JSON_NULL_CLAUSE
25400    }
25401    #[inline]
25402    fn cast(syntax: SyntaxNode) -> Option<Self> {
25403        if Self::can_cast(syntax.kind()) {
25404            Some(Self { syntax })
25405        } else {
25406            None
25407        }
25408    }
25409    #[inline]
25410    fn syntax(&self) -> &SyntaxNode {
25411        &self.syntax
25412    }
25413}
25414impl AstNode for JsonObjectAggFn {
25415    #[inline]
25416    fn can_cast(kind: SyntaxKind) -> bool {
25417        kind == SyntaxKind::JSON_OBJECT_AGG_FN
25418    }
25419    #[inline]
25420    fn cast(syntax: SyntaxNode) -> Option<Self> {
25421        if Self::can_cast(syntax.kind()) {
25422            Some(Self { syntax })
25423        } else {
25424            None
25425        }
25426    }
25427    #[inline]
25428    fn syntax(&self) -> &SyntaxNode {
25429        &self.syntax
25430    }
25431}
25432impl AstNode for JsonObjectFn {
25433    #[inline]
25434    fn can_cast(kind: SyntaxKind) -> bool {
25435        kind == SyntaxKind::JSON_OBJECT_FN
25436    }
25437    #[inline]
25438    fn cast(syntax: SyntaxNode) -> Option<Self> {
25439        if Self::can_cast(syntax.kind()) {
25440            Some(Self { syntax })
25441        } else {
25442            None
25443        }
25444    }
25445    #[inline]
25446    fn syntax(&self) -> &SyntaxNode {
25447        &self.syntax
25448    }
25449}
25450impl AstNode for JsonOnEmptyClause {
25451    #[inline]
25452    fn can_cast(kind: SyntaxKind) -> bool {
25453        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
25454    }
25455    #[inline]
25456    fn cast(syntax: SyntaxNode) -> Option<Self> {
25457        if Self::can_cast(syntax.kind()) {
25458            Some(Self { syntax })
25459        } else {
25460            None
25461        }
25462    }
25463    #[inline]
25464    fn syntax(&self) -> &SyntaxNode {
25465        &self.syntax
25466    }
25467}
25468impl AstNode for JsonOnErrorClause {
25469    #[inline]
25470    fn can_cast(kind: SyntaxKind) -> bool {
25471        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
25472    }
25473    #[inline]
25474    fn cast(syntax: SyntaxNode) -> Option<Self> {
25475        if Self::can_cast(syntax.kind()) {
25476            Some(Self { syntax })
25477        } else {
25478            None
25479        }
25480    }
25481    #[inline]
25482    fn syntax(&self) -> &SyntaxNode {
25483        &self.syntax
25484    }
25485}
25486impl AstNode for JsonPassingArg {
25487    #[inline]
25488    fn can_cast(kind: SyntaxKind) -> bool {
25489        kind == SyntaxKind::JSON_PASSING_ARG
25490    }
25491    #[inline]
25492    fn cast(syntax: SyntaxNode) -> Option<Self> {
25493        if Self::can_cast(syntax.kind()) {
25494            Some(Self { syntax })
25495        } else {
25496            None
25497        }
25498    }
25499    #[inline]
25500    fn syntax(&self) -> &SyntaxNode {
25501        &self.syntax
25502    }
25503}
25504impl AstNode for JsonPassingClause {
25505    #[inline]
25506    fn can_cast(kind: SyntaxKind) -> bool {
25507        kind == SyntaxKind::JSON_PASSING_CLAUSE
25508    }
25509    #[inline]
25510    fn cast(syntax: SyntaxNode) -> Option<Self> {
25511        if Self::can_cast(syntax.kind()) {
25512            Some(Self { syntax })
25513        } else {
25514            None
25515        }
25516    }
25517    #[inline]
25518    fn syntax(&self) -> &SyntaxNode {
25519        &self.syntax
25520    }
25521}
25522impl AstNode for JsonPathClause {
25523    #[inline]
25524    fn can_cast(kind: SyntaxKind) -> bool {
25525        kind == SyntaxKind::JSON_PATH_CLAUSE
25526    }
25527    #[inline]
25528    fn cast(syntax: SyntaxNode) -> Option<Self> {
25529        if Self::can_cast(syntax.kind()) {
25530            Some(Self { syntax })
25531        } else {
25532            None
25533        }
25534    }
25535    #[inline]
25536    fn syntax(&self) -> &SyntaxNode {
25537        &self.syntax
25538    }
25539}
25540impl AstNode for JsonQueryFn {
25541    #[inline]
25542    fn can_cast(kind: SyntaxKind) -> bool {
25543        kind == SyntaxKind::JSON_QUERY_FN
25544    }
25545    #[inline]
25546    fn cast(syntax: SyntaxNode) -> Option<Self> {
25547        if Self::can_cast(syntax.kind()) {
25548            Some(Self { syntax })
25549        } else {
25550            None
25551        }
25552    }
25553    #[inline]
25554    fn syntax(&self) -> &SyntaxNode {
25555        &self.syntax
25556    }
25557}
25558impl AstNode for JsonQuotesClause {
25559    #[inline]
25560    fn can_cast(kind: SyntaxKind) -> bool {
25561        kind == SyntaxKind::JSON_QUOTES_CLAUSE
25562    }
25563    #[inline]
25564    fn cast(syntax: SyntaxNode) -> Option<Self> {
25565        if Self::can_cast(syntax.kind()) {
25566            Some(Self { syntax })
25567        } else {
25568            None
25569        }
25570    }
25571    #[inline]
25572    fn syntax(&self) -> &SyntaxNode {
25573        &self.syntax
25574    }
25575}
25576impl AstNode for JsonReturningClause {
25577    #[inline]
25578    fn can_cast(kind: SyntaxKind) -> bool {
25579        kind == SyntaxKind::JSON_RETURNING_CLAUSE
25580    }
25581    #[inline]
25582    fn cast(syntax: SyntaxNode) -> Option<Self> {
25583        if Self::can_cast(syntax.kind()) {
25584            Some(Self { syntax })
25585        } else {
25586            None
25587        }
25588    }
25589    #[inline]
25590    fn syntax(&self) -> &SyntaxNode {
25591        &self.syntax
25592    }
25593}
25594impl AstNode for JsonScalarFn {
25595    #[inline]
25596    fn can_cast(kind: SyntaxKind) -> bool {
25597        kind == SyntaxKind::JSON_SCALAR_FN
25598    }
25599    #[inline]
25600    fn cast(syntax: SyntaxNode) -> Option<Self> {
25601        if Self::can_cast(syntax.kind()) {
25602            Some(Self { syntax })
25603        } else {
25604            None
25605        }
25606    }
25607    #[inline]
25608    fn syntax(&self) -> &SyntaxNode {
25609        &self.syntax
25610    }
25611}
25612impl AstNode for JsonSelectFormat {
25613    #[inline]
25614    fn can_cast(kind: SyntaxKind) -> bool {
25615        kind == SyntaxKind::JSON_SELECT_FORMAT
25616    }
25617    #[inline]
25618    fn cast(syntax: SyntaxNode) -> Option<Self> {
25619        if Self::can_cast(syntax.kind()) {
25620            Some(Self { syntax })
25621        } else {
25622            None
25623        }
25624    }
25625    #[inline]
25626    fn syntax(&self) -> &SyntaxNode {
25627        &self.syntax
25628    }
25629}
25630impl AstNode for JsonSerializeFn {
25631    #[inline]
25632    fn can_cast(kind: SyntaxKind) -> bool {
25633        kind == SyntaxKind::JSON_SERIALIZE_FN
25634    }
25635    #[inline]
25636    fn cast(syntax: SyntaxNode) -> Option<Self> {
25637        if Self::can_cast(syntax.kind()) {
25638            Some(Self { syntax })
25639        } else {
25640            None
25641        }
25642    }
25643    #[inline]
25644    fn syntax(&self) -> &SyntaxNode {
25645        &self.syntax
25646    }
25647}
25648impl AstNode for JsonTable {
25649    #[inline]
25650    fn can_cast(kind: SyntaxKind) -> bool {
25651        kind == SyntaxKind::JSON_TABLE
25652    }
25653    #[inline]
25654    fn cast(syntax: SyntaxNode) -> Option<Self> {
25655        if Self::can_cast(syntax.kind()) {
25656            Some(Self { syntax })
25657        } else {
25658            None
25659        }
25660    }
25661    #[inline]
25662    fn syntax(&self) -> &SyntaxNode {
25663        &self.syntax
25664    }
25665}
25666impl AstNode for JsonTableColumn {
25667    #[inline]
25668    fn can_cast(kind: SyntaxKind) -> bool {
25669        kind == SyntaxKind::JSON_TABLE_COLUMN
25670    }
25671    #[inline]
25672    fn cast(syntax: SyntaxNode) -> Option<Self> {
25673        if Self::can_cast(syntax.kind()) {
25674            Some(Self { syntax })
25675        } else {
25676            None
25677        }
25678    }
25679    #[inline]
25680    fn syntax(&self) -> &SyntaxNode {
25681        &self.syntax
25682    }
25683}
25684impl AstNode for JsonTableColumnList {
25685    #[inline]
25686    fn can_cast(kind: SyntaxKind) -> bool {
25687        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
25688    }
25689    #[inline]
25690    fn cast(syntax: SyntaxNode) -> Option<Self> {
25691        if Self::can_cast(syntax.kind()) {
25692            Some(Self { syntax })
25693        } else {
25694            None
25695        }
25696    }
25697    #[inline]
25698    fn syntax(&self) -> &SyntaxNode {
25699        &self.syntax
25700    }
25701}
25702impl AstNode for JsonValueExpr {
25703    #[inline]
25704    fn can_cast(kind: SyntaxKind) -> bool {
25705        kind == SyntaxKind::JSON_VALUE_EXPR
25706    }
25707    #[inline]
25708    fn cast(syntax: SyntaxNode) -> Option<Self> {
25709        if Self::can_cast(syntax.kind()) {
25710            Some(Self { syntax })
25711        } else {
25712            None
25713        }
25714    }
25715    #[inline]
25716    fn syntax(&self) -> &SyntaxNode {
25717        &self.syntax
25718    }
25719}
25720impl AstNode for JsonValueFn {
25721    #[inline]
25722    fn can_cast(kind: SyntaxKind) -> bool {
25723        kind == SyntaxKind::JSON_VALUE_FN
25724    }
25725    #[inline]
25726    fn cast(syntax: SyntaxNode) -> Option<Self> {
25727        if Self::can_cast(syntax.kind()) {
25728            Some(Self { syntax })
25729        } else {
25730            None
25731        }
25732    }
25733    #[inline]
25734    fn syntax(&self) -> &SyntaxNode {
25735        &self.syntax
25736    }
25737}
25738impl AstNode for JsonWrapperBehaviorClause {
25739    #[inline]
25740    fn can_cast(kind: SyntaxKind) -> bool {
25741        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
25742    }
25743    #[inline]
25744    fn cast(syntax: SyntaxNode) -> Option<Self> {
25745        if Self::can_cast(syntax.kind()) {
25746            Some(Self { syntax })
25747        } else {
25748            None
25749        }
25750    }
25751    #[inline]
25752    fn syntax(&self) -> &SyntaxNode {
25753        &self.syntax
25754    }
25755}
25756impl AstNode for LabelAndProperties {
25757    #[inline]
25758    fn can_cast(kind: SyntaxKind) -> bool {
25759        kind == SyntaxKind::LABEL_AND_PROPERTIES
25760    }
25761    #[inline]
25762    fn cast(syntax: SyntaxNode) -> Option<Self> {
25763        if Self::can_cast(syntax.kind()) {
25764            Some(Self { syntax })
25765        } else {
25766            None
25767        }
25768    }
25769    #[inline]
25770    fn syntax(&self) -> &SyntaxNode {
25771        &self.syntax
25772    }
25773}
25774impl AstNode for LabelAndPropertiesList {
25775    #[inline]
25776    fn can_cast(kind: SyntaxKind) -> bool {
25777        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
25778    }
25779    #[inline]
25780    fn cast(syntax: SyntaxNode) -> Option<Self> {
25781        if Self::can_cast(syntax.kind()) {
25782            Some(Self { syntax })
25783        } else {
25784            None
25785        }
25786    }
25787    #[inline]
25788    fn syntax(&self) -> &SyntaxNode {
25789        &self.syntax
25790    }
25791}
25792impl AstNode for LanguageFuncOption {
25793    #[inline]
25794    fn can_cast(kind: SyntaxKind) -> bool {
25795        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
25796    }
25797    #[inline]
25798    fn cast(syntax: SyntaxNode) -> Option<Self> {
25799        if Self::can_cast(syntax.kind()) {
25800            Some(Self { syntax })
25801        } else {
25802            None
25803        }
25804    }
25805    #[inline]
25806    fn syntax(&self) -> &SyntaxNode {
25807        &self.syntax
25808    }
25809}
25810impl AstNode for LeakproofFuncOption {
25811    #[inline]
25812    fn can_cast(kind: SyntaxKind) -> bool {
25813        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
25814    }
25815    #[inline]
25816    fn cast(syntax: SyntaxNode) -> Option<Self> {
25817        if Self::can_cast(syntax.kind()) {
25818            Some(Self { syntax })
25819        } else {
25820            None
25821        }
25822    }
25823    #[inline]
25824    fn syntax(&self) -> &SyntaxNode {
25825        &self.syntax
25826    }
25827}
25828impl AstNode for LikeClause {
25829    #[inline]
25830    fn can_cast(kind: SyntaxKind) -> bool {
25831        kind == SyntaxKind::LIKE_CLAUSE
25832    }
25833    #[inline]
25834    fn cast(syntax: SyntaxNode) -> Option<Self> {
25835        if Self::can_cast(syntax.kind()) {
25836            Some(Self { syntax })
25837        } else {
25838            None
25839        }
25840    }
25841    #[inline]
25842    fn syntax(&self) -> &SyntaxNode {
25843        &self.syntax
25844    }
25845}
25846impl AstNode for LikeOption {
25847    #[inline]
25848    fn can_cast(kind: SyntaxKind) -> bool {
25849        kind == SyntaxKind::LIKE_OPTION
25850    }
25851    #[inline]
25852    fn cast(syntax: SyntaxNode) -> Option<Self> {
25853        if Self::can_cast(syntax.kind()) {
25854            Some(Self { syntax })
25855        } else {
25856            None
25857        }
25858    }
25859    #[inline]
25860    fn syntax(&self) -> &SyntaxNode {
25861        &self.syntax
25862    }
25863}
25864impl AstNode for LimitClause {
25865    #[inline]
25866    fn can_cast(kind: SyntaxKind) -> bool {
25867        kind == SyntaxKind::LIMIT_CLAUSE
25868    }
25869    #[inline]
25870    fn cast(syntax: SyntaxNode) -> Option<Self> {
25871        if Self::can_cast(syntax.kind()) {
25872            Some(Self { syntax })
25873        } else {
25874            None
25875        }
25876    }
25877    #[inline]
25878    fn syntax(&self) -> &SyntaxNode {
25879        &self.syntax
25880    }
25881}
25882impl AstNode for LimitToTables {
25883    #[inline]
25884    fn can_cast(kind: SyntaxKind) -> bool {
25885        kind == SyntaxKind::LIMIT_TO_TABLES
25886    }
25887    #[inline]
25888    fn cast(syntax: SyntaxNode) -> Option<Self> {
25889        if Self::can_cast(syntax.kind()) {
25890            Some(Self { syntax })
25891        } else {
25892            None
25893        }
25894    }
25895    #[inline]
25896    fn syntax(&self) -> &SyntaxNode {
25897        &self.syntax
25898    }
25899}
25900impl AstNode for Listen {
25901    #[inline]
25902    fn can_cast(kind: SyntaxKind) -> bool {
25903        kind == SyntaxKind::LISTEN
25904    }
25905    #[inline]
25906    fn cast(syntax: SyntaxNode) -> Option<Self> {
25907        if Self::can_cast(syntax.kind()) {
25908            Some(Self { syntax })
25909        } else {
25910            None
25911        }
25912    }
25913    #[inline]
25914    fn syntax(&self) -> &SyntaxNode {
25915        &self.syntax
25916    }
25917}
25918impl AstNode for Literal {
25919    #[inline]
25920    fn can_cast(kind: SyntaxKind) -> bool {
25921        kind == SyntaxKind::LITERAL
25922    }
25923    #[inline]
25924    fn cast(syntax: SyntaxNode) -> Option<Self> {
25925        if Self::can_cast(syntax.kind()) {
25926            Some(Self { syntax })
25927        } else {
25928            None
25929        }
25930    }
25931    #[inline]
25932    fn syntax(&self) -> &SyntaxNode {
25933        &self.syntax
25934    }
25935}
25936impl AstNode for Load {
25937    #[inline]
25938    fn can_cast(kind: SyntaxKind) -> bool {
25939        kind == SyntaxKind::LOAD
25940    }
25941    #[inline]
25942    fn cast(syntax: SyntaxNode) -> Option<Self> {
25943        if Self::can_cast(syntax.kind()) {
25944            Some(Self { syntax })
25945        } else {
25946            None
25947        }
25948    }
25949    #[inline]
25950    fn syntax(&self) -> &SyntaxNode {
25951        &self.syntax
25952    }
25953}
25954impl AstNode for Lock {
25955    #[inline]
25956    fn can_cast(kind: SyntaxKind) -> bool {
25957        kind == SyntaxKind::LOCK
25958    }
25959    #[inline]
25960    fn cast(syntax: SyntaxNode) -> Option<Self> {
25961        if Self::can_cast(syntax.kind()) {
25962            Some(Self { syntax })
25963        } else {
25964            None
25965        }
25966    }
25967    #[inline]
25968    fn syntax(&self) -> &SyntaxNode {
25969        &self.syntax
25970    }
25971}
25972impl AstNode for LockingClause {
25973    #[inline]
25974    fn can_cast(kind: SyntaxKind) -> bool {
25975        kind == SyntaxKind::LOCKING_CLAUSE
25976    }
25977    #[inline]
25978    fn cast(syntax: SyntaxNode) -> Option<Self> {
25979        if Self::can_cast(syntax.kind()) {
25980            Some(Self { syntax })
25981        } else {
25982            None
25983        }
25984    }
25985    #[inline]
25986    fn syntax(&self) -> &SyntaxNode {
25987        &self.syntax
25988    }
25989}
25990impl AstNode for Lteq {
25991    #[inline]
25992    fn can_cast(kind: SyntaxKind) -> bool {
25993        kind == SyntaxKind::LTEQ
25994    }
25995    #[inline]
25996    fn cast(syntax: SyntaxNode) -> Option<Self> {
25997        if Self::can_cast(syntax.kind()) {
25998            Some(Self { syntax })
25999        } else {
26000            None
26001        }
26002    }
26003    #[inline]
26004    fn syntax(&self) -> &SyntaxNode {
26005        &self.syntax
26006    }
26007}
26008impl AstNode for MatchFull {
26009    #[inline]
26010    fn can_cast(kind: SyntaxKind) -> bool {
26011        kind == SyntaxKind::MATCH_FULL
26012    }
26013    #[inline]
26014    fn cast(syntax: SyntaxNode) -> Option<Self> {
26015        if Self::can_cast(syntax.kind()) {
26016            Some(Self { syntax })
26017        } else {
26018            None
26019        }
26020    }
26021    #[inline]
26022    fn syntax(&self) -> &SyntaxNode {
26023        &self.syntax
26024    }
26025}
26026impl AstNode for MatchPartial {
26027    #[inline]
26028    fn can_cast(kind: SyntaxKind) -> bool {
26029        kind == SyntaxKind::MATCH_PARTIAL
26030    }
26031    #[inline]
26032    fn cast(syntax: SyntaxNode) -> Option<Self> {
26033        if Self::can_cast(syntax.kind()) {
26034            Some(Self { syntax })
26035        } else {
26036            None
26037        }
26038    }
26039    #[inline]
26040    fn syntax(&self) -> &SyntaxNode {
26041        &self.syntax
26042    }
26043}
26044impl AstNode for MatchSimple {
26045    #[inline]
26046    fn can_cast(kind: SyntaxKind) -> bool {
26047        kind == SyntaxKind::MATCH_SIMPLE
26048    }
26049    #[inline]
26050    fn cast(syntax: SyntaxNode) -> Option<Self> {
26051        if Self::can_cast(syntax.kind()) {
26052            Some(Self { syntax })
26053        } else {
26054            None
26055        }
26056    }
26057    #[inline]
26058    fn syntax(&self) -> &SyntaxNode {
26059        &self.syntax
26060    }
26061}
26062impl AstNode for Materialized {
26063    #[inline]
26064    fn can_cast(kind: SyntaxKind) -> bool {
26065        kind == SyntaxKind::MATERIALIZED
26066    }
26067    #[inline]
26068    fn cast(syntax: SyntaxNode) -> Option<Self> {
26069        if Self::can_cast(syntax.kind()) {
26070            Some(Self { syntax })
26071        } else {
26072            None
26073        }
26074    }
26075    #[inline]
26076    fn syntax(&self) -> &SyntaxNode {
26077        &self.syntax
26078    }
26079}
26080impl AstNode for Merge {
26081    #[inline]
26082    fn can_cast(kind: SyntaxKind) -> bool {
26083        kind == SyntaxKind::MERGE
26084    }
26085    #[inline]
26086    fn cast(syntax: SyntaxNode) -> Option<Self> {
26087        if Self::can_cast(syntax.kind()) {
26088            Some(Self { syntax })
26089        } else {
26090            None
26091        }
26092    }
26093    #[inline]
26094    fn syntax(&self) -> &SyntaxNode {
26095        &self.syntax
26096    }
26097}
26098impl AstNode for MergeDelete {
26099    #[inline]
26100    fn can_cast(kind: SyntaxKind) -> bool {
26101        kind == SyntaxKind::MERGE_DELETE
26102    }
26103    #[inline]
26104    fn cast(syntax: SyntaxNode) -> Option<Self> {
26105        if Self::can_cast(syntax.kind()) {
26106            Some(Self { syntax })
26107        } else {
26108            None
26109        }
26110    }
26111    #[inline]
26112    fn syntax(&self) -> &SyntaxNode {
26113        &self.syntax
26114    }
26115}
26116impl AstNode for MergeDoNothing {
26117    #[inline]
26118    fn can_cast(kind: SyntaxKind) -> bool {
26119        kind == SyntaxKind::MERGE_DO_NOTHING
26120    }
26121    #[inline]
26122    fn cast(syntax: SyntaxNode) -> Option<Self> {
26123        if Self::can_cast(syntax.kind()) {
26124            Some(Self { syntax })
26125        } else {
26126            None
26127        }
26128    }
26129    #[inline]
26130    fn syntax(&self) -> &SyntaxNode {
26131        &self.syntax
26132    }
26133}
26134impl AstNode for MergeInsert {
26135    #[inline]
26136    fn can_cast(kind: SyntaxKind) -> bool {
26137        kind == SyntaxKind::MERGE_INSERT
26138    }
26139    #[inline]
26140    fn cast(syntax: SyntaxNode) -> Option<Self> {
26141        if Self::can_cast(syntax.kind()) {
26142            Some(Self { syntax })
26143        } else {
26144            None
26145        }
26146    }
26147    #[inline]
26148    fn syntax(&self) -> &SyntaxNode {
26149        &self.syntax
26150    }
26151}
26152impl AstNode for MergePartitions {
26153    #[inline]
26154    fn can_cast(kind: SyntaxKind) -> bool {
26155        kind == SyntaxKind::MERGE_PARTITIONS
26156    }
26157    #[inline]
26158    fn cast(syntax: SyntaxNode) -> Option<Self> {
26159        if Self::can_cast(syntax.kind()) {
26160            Some(Self { syntax })
26161        } else {
26162            None
26163        }
26164    }
26165    #[inline]
26166    fn syntax(&self) -> &SyntaxNode {
26167        &self.syntax
26168    }
26169}
26170impl AstNode for MergeUpdate {
26171    #[inline]
26172    fn can_cast(kind: SyntaxKind) -> bool {
26173        kind == SyntaxKind::MERGE_UPDATE
26174    }
26175    #[inline]
26176    fn cast(syntax: SyntaxNode) -> Option<Self> {
26177        if Self::can_cast(syntax.kind()) {
26178            Some(Self { syntax })
26179        } else {
26180            None
26181        }
26182    }
26183    #[inline]
26184    fn syntax(&self) -> &SyntaxNode {
26185        &self.syntax
26186    }
26187}
26188impl AstNode for MergeWhenMatched {
26189    #[inline]
26190    fn can_cast(kind: SyntaxKind) -> bool {
26191        kind == SyntaxKind::MERGE_WHEN_MATCHED
26192    }
26193    #[inline]
26194    fn cast(syntax: SyntaxNode) -> Option<Self> {
26195        if Self::can_cast(syntax.kind()) {
26196            Some(Self { syntax })
26197        } else {
26198            None
26199        }
26200    }
26201    #[inline]
26202    fn syntax(&self) -> &SyntaxNode {
26203        &self.syntax
26204    }
26205}
26206impl AstNode for MergeWhenNotMatchedSource {
26207    #[inline]
26208    fn can_cast(kind: SyntaxKind) -> bool {
26209        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
26210    }
26211    #[inline]
26212    fn cast(syntax: SyntaxNode) -> Option<Self> {
26213        if Self::can_cast(syntax.kind()) {
26214            Some(Self { syntax })
26215        } else {
26216            None
26217        }
26218    }
26219    #[inline]
26220    fn syntax(&self) -> &SyntaxNode {
26221        &self.syntax
26222    }
26223}
26224impl AstNode for MergeWhenNotMatchedTarget {
26225    #[inline]
26226    fn can_cast(kind: SyntaxKind) -> bool {
26227        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
26228    }
26229    #[inline]
26230    fn cast(syntax: SyntaxNode) -> Option<Self> {
26231        if Self::can_cast(syntax.kind()) {
26232            Some(Self { syntax })
26233        } else {
26234            None
26235        }
26236    }
26237    #[inline]
26238    fn syntax(&self) -> &SyntaxNode {
26239        &self.syntax
26240    }
26241}
26242impl AstNode for Move {
26243    #[inline]
26244    fn can_cast(kind: SyntaxKind) -> bool {
26245        kind == SyntaxKind::MOVE
26246    }
26247    #[inline]
26248    fn cast(syntax: SyntaxNode) -> Option<Self> {
26249        if Self::can_cast(syntax.kind()) {
26250            Some(Self { syntax })
26251        } else {
26252            None
26253        }
26254    }
26255    #[inline]
26256    fn syntax(&self) -> &SyntaxNode {
26257        &self.syntax
26258    }
26259}
26260impl AstNode for Name {
26261    #[inline]
26262    fn can_cast(kind: SyntaxKind) -> bool {
26263        kind == SyntaxKind::NAME
26264    }
26265    #[inline]
26266    fn cast(syntax: SyntaxNode) -> Option<Self> {
26267        if Self::can_cast(syntax.kind()) {
26268            Some(Self { syntax })
26269        } else {
26270            None
26271        }
26272    }
26273    #[inline]
26274    fn syntax(&self) -> &SyntaxNode {
26275        &self.syntax
26276    }
26277}
26278impl AstNode for NameRef {
26279    #[inline]
26280    fn can_cast(kind: SyntaxKind) -> bool {
26281        kind == SyntaxKind::NAME_REF
26282    }
26283    #[inline]
26284    fn cast(syntax: SyntaxNode) -> Option<Self> {
26285        if Self::can_cast(syntax.kind()) {
26286            Some(Self { syntax })
26287        } else {
26288            None
26289        }
26290    }
26291    #[inline]
26292    fn syntax(&self) -> &SyntaxNode {
26293        &self.syntax
26294    }
26295}
26296impl AstNode for NamedArg {
26297    #[inline]
26298    fn can_cast(kind: SyntaxKind) -> bool {
26299        kind == SyntaxKind::NAMED_ARG
26300    }
26301    #[inline]
26302    fn cast(syntax: SyntaxNode) -> Option<Self> {
26303        if Self::can_cast(syntax.kind()) {
26304            Some(Self { syntax })
26305        } else {
26306            None
26307        }
26308    }
26309    #[inline]
26310    fn syntax(&self) -> &SyntaxNode {
26311        &self.syntax
26312    }
26313}
26314impl AstNode for Neq {
26315    #[inline]
26316    fn can_cast(kind: SyntaxKind) -> bool {
26317        kind == SyntaxKind::NEQ
26318    }
26319    #[inline]
26320    fn cast(syntax: SyntaxNode) -> Option<Self> {
26321        if Self::can_cast(syntax.kind()) {
26322            Some(Self { syntax })
26323        } else {
26324            None
26325        }
26326    }
26327    #[inline]
26328    fn syntax(&self) -> &SyntaxNode {
26329        &self.syntax
26330    }
26331}
26332impl AstNode for Neqb {
26333    #[inline]
26334    fn can_cast(kind: SyntaxKind) -> bool {
26335        kind == SyntaxKind::NEQB
26336    }
26337    #[inline]
26338    fn cast(syntax: SyntaxNode) -> Option<Self> {
26339        if Self::can_cast(syntax.kind()) {
26340            Some(Self { syntax })
26341        } else {
26342            None
26343        }
26344    }
26345    #[inline]
26346    fn syntax(&self) -> &SyntaxNode {
26347        &self.syntax
26348    }
26349}
26350impl AstNode for NoAction {
26351    #[inline]
26352    fn can_cast(kind: SyntaxKind) -> bool {
26353        kind == SyntaxKind::NO_ACTION
26354    }
26355    #[inline]
26356    fn cast(syntax: SyntaxNode) -> Option<Self> {
26357        if Self::can_cast(syntax.kind()) {
26358            Some(Self { syntax })
26359        } else {
26360            None
26361        }
26362    }
26363    #[inline]
26364    fn syntax(&self) -> &SyntaxNode {
26365        &self.syntax
26366    }
26367}
26368impl AstNode for NoDependsOnExtension {
26369    #[inline]
26370    fn can_cast(kind: SyntaxKind) -> bool {
26371        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
26372    }
26373    #[inline]
26374    fn cast(syntax: SyntaxNode) -> Option<Self> {
26375        if Self::can_cast(syntax.kind()) {
26376            Some(Self { syntax })
26377        } else {
26378            None
26379        }
26380    }
26381    #[inline]
26382    fn syntax(&self) -> &SyntaxNode {
26383        &self.syntax
26384    }
26385}
26386impl AstNode for NoForceRls {
26387    #[inline]
26388    fn can_cast(kind: SyntaxKind) -> bool {
26389        kind == SyntaxKind::NO_FORCE_RLS
26390    }
26391    #[inline]
26392    fn cast(syntax: SyntaxNode) -> Option<Self> {
26393        if Self::can_cast(syntax.kind()) {
26394            Some(Self { syntax })
26395        } else {
26396            None
26397        }
26398    }
26399    #[inline]
26400    fn syntax(&self) -> &SyntaxNode {
26401        &self.syntax
26402    }
26403}
26404impl AstNode for NoInherit {
26405    #[inline]
26406    fn can_cast(kind: SyntaxKind) -> bool {
26407        kind == SyntaxKind::NO_INHERIT
26408    }
26409    #[inline]
26410    fn cast(syntax: SyntaxNode) -> Option<Self> {
26411        if Self::can_cast(syntax.kind()) {
26412            Some(Self { syntax })
26413        } else {
26414            None
26415        }
26416    }
26417    #[inline]
26418    fn syntax(&self) -> &SyntaxNode {
26419        &self.syntax
26420    }
26421}
26422impl AstNode for NoInheritTable {
26423    #[inline]
26424    fn can_cast(kind: SyntaxKind) -> bool {
26425        kind == SyntaxKind::NO_INHERIT_TABLE
26426    }
26427    #[inline]
26428    fn cast(syntax: SyntaxNode) -> Option<Self> {
26429        if Self::can_cast(syntax.kind()) {
26430            Some(Self { syntax })
26431        } else {
26432            None
26433        }
26434    }
26435    #[inline]
26436    fn syntax(&self) -> &SyntaxNode {
26437        &self.syntax
26438    }
26439}
26440impl AstNode for NoProperties {
26441    #[inline]
26442    fn can_cast(kind: SyntaxKind) -> bool {
26443        kind == SyntaxKind::NO_PROPERTIES
26444    }
26445    #[inline]
26446    fn cast(syntax: SyntaxNode) -> Option<Self> {
26447        if Self::can_cast(syntax.kind()) {
26448            Some(Self { syntax })
26449        } else {
26450            None
26451        }
26452    }
26453    #[inline]
26454    fn syntax(&self) -> &SyntaxNode {
26455        &self.syntax
26456    }
26457}
26458impl AstNode for NonStandardParam {
26459    #[inline]
26460    fn can_cast(kind: SyntaxKind) -> bool {
26461        kind == SyntaxKind::NON_STANDARD_PARAM
26462    }
26463    #[inline]
26464    fn cast(syntax: SyntaxNode) -> Option<Self> {
26465        if Self::can_cast(syntax.kind()) {
26466            Some(Self { syntax })
26467        } else {
26468            None
26469        }
26470    }
26471    #[inline]
26472    fn syntax(&self) -> &SyntaxNode {
26473        &self.syntax
26474    }
26475}
26476impl AstNode for NotDeferrable {
26477    #[inline]
26478    fn can_cast(kind: SyntaxKind) -> bool {
26479        kind == SyntaxKind::NOT_DEFERRABLE
26480    }
26481    #[inline]
26482    fn cast(syntax: SyntaxNode) -> Option<Self> {
26483        if Self::can_cast(syntax.kind()) {
26484            Some(Self { syntax })
26485        } else {
26486            None
26487        }
26488    }
26489    #[inline]
26490    fn syntax(&self) -> &SyntaxNode {
26491        &self.syntax
26492    }
26493}
26494impl AstNode for NotDeferrableConstraintOption {
26495    #[inline]
26496    fn can_cast(kind: SyntaxKind) -> bool {
26497        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
26498    }
26499    #[inline]
26500    fn cast(syntax: SyntaxNode) -> Option<Self> {
26501        if Self::can_cast(syntax.kind()) {
26502            Some(Self { syntax })
26503        } else {
26504            None
26505        }
26506    }
26507    #[inline]
26508    fn syntax(&self) -> &SyntaxNode {
26509        &self.syntax
26510    }
26511}
26512impl AstNode for NotEnforced {
26513    #[inline]
26514    fn can_cast(kind: SyntaxKind) -> bool {
26515        kind == SyntaxKind::NOT_ENFORCED
26516    }
26517    #[inline]
26518    fn cast(syntax: SyntaxNode) -> Option<Self> {
26519        if Self::can_cast(syntax.kind()) {
26520            Some(Self { syntax })
26521        } else {
26522            None
26523        }
26524    }
26525    #[inline]
26526    fn syntax(&self) -> &SyntaxNode {
26527        &self.syntax
26528    }
26529}
26530impl AstNode for NotIlike {
26531    #[inline]
26532    fn can_cast(kind: SyntaxKind) -> bool {
26533        kind == SyntaxKind::NOT_ILIKE
26534    }
26535    #[inline]
26536    fn cast(syntax: SyntaxNode) -> Option<Self> {
26537        if Self::can_cast(syntax.kind()) {
26538            Some(Self { syntax })
26539        } else {
26540            None
26541        }
26542    }
26543    #[inline]
26544    fn syntax(&self) -> &SyntaxNode {
26545        &self.syntax
26546    }
26547}
26548impl AstNode for NotIn {
26549    #[inline]
26550    fn can_cast(kind: SyntaxKind) -> bool {
26551        kind == SyntaxKind::NOT_IN
26552    }
26553    #[inline]
26554    fn cast(syntax: SyntaxNode) -> Option<Self> {
26555        if Self::can_cast(syntax.kind()) {
26556            Some(Self { syntax })
26557        } else {
26558            None
26559        }
26560    }
26561    #[inline]
26562    fn syntax(&self) -> &SyntaxNode {
26563        &self.syntax
26564    }
26565}
26566impl AstNode for NotLike {
26567    #[inline]
26568    fn can_cast(kind: SyntaxKind) -> bool {
26569        kind == SyntaxKind::NOT_LIKE
26570    }
26571    #[inline]
26572    fn cast(syntax: SyntaxNode) -> Option<Self> {
26573        if Self::can_cast(syntax.kind()) {
26574            Some(Self { syntax })
26575        } else {
26576            None
26577        }
26578    }
26579    #[inline]
26580    fn syntax(&self) -> &SyntaxNode {
26581        &self.syntax
26582    }
26583}
26584impl AstNode for NotMaterialized {
26585    #[inline]
26586    fn can_cast(kind: SyntaxKind) -> bool {
26587        kind == SyntaxKind::NOT_MATERIALIZED
26588    }
26589    #[inline]
26590    fn cast(syntax: SyntaxNode) -> Option<Self> {
26591        if Self::can_cast(syntax.kind()) {
26592            Some(Self { syntax })
26593        } else {
26594            None
26595        }
26596    }
26597    #[inline]
26598    fn syntax(&self) -> &SyntaxNode {
26599        &self.syntax
26600    }
26601}
26602impl AstNode for NotNullConstraint {
26603    #[inline]
26604    fn can_cast(kind: SyntaxKind) -> bool {
26605        kind == SyntaxKind::NOT_NULL_CONSTRAINT
26606    }
26607    #[inline]
26608    fn cast(syntax: SyntaxNode) -> Option<Self> {
26609        if Self::can_cast(syntax.kind()) {
26610            Some(Self { syntax })
26611        } else {
26612            None
26613        }
26614    }
26615    #[inline]
26616    fn syntax(&self) -> &SyntaxNode {
26617        &self.syntax
26618    }
26619}
26620impl AstNode for NotOf {
26621    #[inline]
26622    fn can_cast(kind: SyntaxKind) -> bool {
26623        kind == SyntaxKind::NOT_OF
26624    }
26625    #[inline]
26626    fn cast(syntax: SyntaxNode) -> Option<Self> {
26627        if Self::can_cast(syntax.kind()) {
26628            Some(Self { syntax })
26629        } else {
26630            None
26631        }
26632    }
26633    #[inline]
26634    fn syntax(&self) -> &SyntaxNode {
26635        &self.syntax
26636    }
26637}
26638impl AstNode for NotSimilarTo {
26639    #[inline]
26640    fn can_cast(kind: SyntaxKind) -> bool {
26641        kind == SyntaxKind::NOT_SIMILAR_TO
26642    }
26643    #[inline]
26644    fn cast(syntax: SyntaxNode) -> Option<Self> {
26645        if Self::can_cast(syntax.kind()) {
26646            Some(Self { syntax })
26647        } else {
26648            None
26649        }
26650    }
26651    #[inline]
26652    fn syntax(&self) -> &SyntaxNode {
26653        &self.syntax
26654    }
26655}
26656impl AstNode for NotValid {
26657    #[inline]
26658    fn can_cast(kind: SyntaxKind) -> bool {
26659        kind == SyntaxKind::NOT_VALID
26660    }
26661    #[inline]
26662    fn cast(syntax: SyntaxNode) -> Option<Self> {
26663        if Self::can_cast(syntax.kind()) {
26664            Some(Self { syntax })
26665        } else {
26666            None
26667        }
26668    }
26669    #[inline]
26670    fn syntax(&self) -> &SyntaxNode {
26671        &self.syntax
26672    }
26673}
26674impl AstNode for Notify {
26675    #[inline]
26676    fn can_cast(kind: SyntaxKind) -> bool {
26677        kind == SyntaxKind::NOTIFY
26678    }
26679    #[inline]
26680    fn cast(syntax: SyntaxNode) -> Option<Self> {
26681        if Self::can_cast(syntax.kind()) {
26682            Some(Self { syntax })
26683        } else {
26684            None
26685        }
26686    }
26687    #[inline]
26688    fn syntax(&self) -> &SyntaxNode {
26689        &self.syntax
26690    }
26691}
26692impl AstNode for NullConstraint {
26693    #[inline]
26694    fn can_cast(kind: SyntaxKind) -> bool {
26695        kind == SyntaxKind::NULL_CONSTRAINT
26696    }
26697    #[inline]
26698    fn cast(syntax: SyntaxNode) -> Option<Self> {
26699        if Self::can_cast(syntax.kind()) {
26700            Some(Self { syntax })
26701        } else {
26702            None
26703        }
26704    }
26705    #[inline]
26706    fn syntax(&self) -> &SyntaxNode {
26707        &self.syntax
26708    }
26709}
26710impl AstNode for NullsDistinct {
26711    #[inline]
26712    fn can_cast(kind: SyntaxKind) -> bool {
26713        kind == SyntaxKind::NULLS_DISTINCT
26714    }
26715    #[inline]
26716    fn cast(syntax: SyntaxNode) -> Option<Self> {
26717        if Self::can_cast(syntax.kind()) {
26718            Some(Self { syntax })
26719        } else {
26720            None
26721        }
26722    }
26723    #[inline]
26724    fn syntax(&self) -> &SyntaxNode {
26725        &self.syntax
26726    }
26727}
26728impl AstNode for NullsFirst {
26729    #[inline]
26730    fn can_cast(kind: SyntaxKind) -> bool {
26731        kind == SyntaxKind::NULLS_FIRST
26732    }
26733    #[inline]
26734    fn cast(syntax: SyntaxNode) -> Option<Self> {
26735        if Self::can_cast(syntax.kind()) {
26736            Some(Self { syntax })
26737        } else {
26738            None
26739        }
26740    }
26741    #[inline]
26742    fn syntax(&self) -> &SyntaxNode {
26743        &self.syntax
26744    }
26745}
26746impl AstNode for NullsLast {
26747    #[inline]
26748    fn can_cast(kind: SyntaxKind) -> bool {
26749        kind == SyntaxKind::NULLS_LAST
26750    }
26751    #[inline]
26752    fn cast(syntax: SyntaxNode) -> Option<Self> {
26753        if Self::can_cast(syntax.kind()) {
26754            Some(Self { syntax })
26755        } else {
26756            None
26757        }
26758    }
26759    #[inline]
26760    fn syntax(&self) -> &SyntaxNode {
26761        &self.syntax
26762    }
26763}
26764impl AstNode for NullsNotDistinct {
26765    #[inline]
26766    fn can_cast(kind: SyntaxKind) -> bool {
26767        kind == SyntaxKind::NULLS_NOT_DISTINCT
26768    }
26769    #[inline]
26770    fn cast(syntax: SyntaxNode) -> Option<Self> {
26771        if Self::can_cast(syntax.kind()) {
26772            Some(Self { syntax })
26773        } else {
26774            None
26775        }
26776    }
26777    #[inline]
26778    fn syntax(&self) -> &SyntaxNode {
26779        &self.syntax
26780    }
26781}
26782impl AstNode for OfType {
26783    #[inline]
26784    fn can_cast(kind: SyntaxKind) -> bool {
26785        kind == SyntaxKind::OF_TYPE
26786    }
26787    #[inline]
26788    fn cast(syntax: SyntaxNode) -> Option<Self> {
26789        if Self::can_cast(syntax.kind()) {
26790            Some(Self { syntax })
26791        } else {
26792            None
26793        }
26794    }
26795    #[inline]
26796    fn syntax(&self) -> &SyntaxNode {
26797        &self.syntax
26798    }
26799}
26800impl AstNode for OffsetClause {
26801    #[inline]
26802    fn can_cast(kind: SyntaxKind) -> bool {
26803        kind == SyntaxKind::OFFSET_CLAUSE
26804    }
26805    #[inline]
26806    fn cast(syntax: SyntaxNode) -> Option<Self> {
26807        if Self::can_cast(syntax.kind()) {
26808            Some(Self { syntax })
26809        } else {
26810            None
26811        }
26812    }
26813    #[inline]
26814    fn syntax(&self) -> &SyntaxNode {
26815        &self.syntax
26816    }
26817}
26818impl AstNode for OnClause {
26819    #[inline]
26820    fn can_cast(kind: SyntaxKind) -> bool {
26821        kind == SyntaxKind::ON_CLAUSE
26822    }
26823    #[inline]
26824    fn cast(syntax: SyntaxNode) -> Option<Self> {
26825        if Self::can_cast(syntax.kind()) {
26826            Some(Self { syntax })
26827        } else {
26828            None
26829        }
26830    }
26831    #[inline]
26832    fn syntax(&self) -> &SyntaxNode {
26833        &self.syntax
26834    }
26835}
26836impl AstNode for OnCommit {
26837    #[inline]
26838    fn can_cast(kind: SyntaxKind) -> bool {
26839        kind == SyntaxKind::ON_COMMIT
26840    }
26841    #[inline]
26842    fn cast(syntax: SyntaxNode) -> Option<Self> {
26843        if Self::can_cast(syntax.kind()) {
26844            Some(Self { syntax })
26845        } else {
26846            None
26847        }
26848    }
26849    #[inline]
26850    fn syntax(&self) -> &SyntaxNode {
26851        &self.syntax
26852    }
26853}
26854impl AstNode for OnConflictClause {
26855    #[inline]
26856    fn can_cast(kind: SyntaxKind) -> bool {
26857        kind == SyntaxKind::ON_CONFLICT_CLAUSE
26858    }
26859    #[inline]
26860    fn cast(syntax: SyntaxNode) -> Option<Self> {
26861        if Self::can_cast(syntax.kind()) {
26862            Some(Self { syntax })
26863        } else {
26864            None
26865        }
26866    }
26867    #[inline]
26868    fn syntax(&self) -> &SyntaxNode {
26869        &self.syntax
26870    }
26871}
26872impl AstNode for OnDeleteAction {
26873    #[inline]
26874    fn can_cast(kind: SyntaxKind) -> bool {
26875        kind == SyntaxKind::ON_DELETE_ACTION
26876    }
26877    #[inline]
26878    fn cast(syntax: SyntaxNode) -> Option<Self> {
26879        if Self::can_cast(syntax.kind()) {
26880            Some(Self { syntax })
26881        } else {
26882            None
26883        }
26884    }
26885    #[inline]
26886    fn syntax(&self) -> &SyntaxNode {
26887        &self.syntax
26888    }
26889}
26890impl AstNode for OnTable {
26891    #[inline]
26892    fn can_cast(kind: SyntaxKind) -> bool {
26893        kind == SyntaxKind::ON_TABLE
26894    }
26895    #[inline]
26896    fn cast(syntax: SyntaxNode) -> Option<Self> {
26897        if Self::can_cast(syntax.kind()) {
26898            Some(Self { syntax })
26899        } else {
26900            None
26901        }
26902    }
26903    #[inline]
26904    fn syntax(&self) -> &SyntaxNode {
26905        &self.syntax
26906    }
26907}
26908impl AstNode for OnUpdateAction {
26909    #[inline]
26910    fn can_cast(kind: SyntaxKind) -> bool {
26911        kind == SyntaxKind::ON_UPDATE_ACTION
26912    }
26913    #[inline]
26914    fn cast(syntax: SyntaxNode) -> Option<Self> {
26915        if Self::can_cast(syntax.kind()) {
26916            Some(Self { syntax })
26917        } else {
26918            None
26919        }
26920    }
26921    #[inline]
26922    fn syntax(&self) -> &SyntaxNode {
26923        &self.syntax
26924    }
26925}
26926impl AstNode for Op {
26927    #[inline]
26928    fn can_cast(kind: SyntaxKind) -> bool {
26929        kind == SyntaxKind::OP
26930    }
26931    #[inline]
26932    fn cast(syntax: SyntaxNode) -> Option<Self> {
26933        if Self::can_cast(syntax.kind()) {
26934            Some(Self { syntax })
26935        } else {
26936            None
26937        }
26938    }
26939    #[inline]
26940    fn syntax(&self) -> &SyntaxNode {
26941        &self.syntax
26942    }
26943}
26944impl AstNode for OpClassOption {
26945    #[inline]
26946    fn can_cast(kind: SyntaxKind) -> bool {
26947        kind == SyntaxKind::OP_CLASS_OPTION
26948    }
26949    #[inline]
26950    fn cast(syntax: SyntaxNode) -> Option<Self> {
26951        if Self::can_cast(syntax.kind()) {
26952            Some(Self { syntax })
26953        } else {
26954            None
26955        }
26956    }
26957    #[inline]
26958    fn syntax(&self) -> &SyntaxNode {
26959        &self.syntax
26960    }
26961}
26962impl AstNode for OpSig {
26963    #[inline]
26964    fn can_cast(kind: SyntaxKind) -> bool {
26965        kind == SyntaxKind::OP_SIG
26966    }
26967    #[inline]
26968    fn cast(syntax: SyntaxNode) -> Option<Self> {
26969        if Self::can_cast(syntax.kind()) {
26970            Some(Self { syntax })
26971        } else {
26972            None
26973        }
26974    }
26975    #[inline]
26976    fn syntax(&self) -> &SyntaxNode {
26977        &self.syntax
26978    }
26979}
26980impl AstNode for OpSigList {
26981    #[inline]
26982    fn can_cast(kind: SyntaxKind) -> bool {
26983        kind == SyntaxKind::OP_SIG_LIST
26984    }
26985    #[inline]
26986    fn cast(syntax: SyntaxNode) -> Option<Self> {
26987        if Self::can_cast(syntax.kind()) {
26988            Some(Self { syntax })
26989        } else {
26990            None
26991        }
26992    }
26993    #[inline]
26994    fn syntax(&self) -> &SyntaxNode {
26995        &self.syntax
26996    }
26997}
26998impl AstNode for OperatorCall {
26999    #[inline]
27000    fn can_cast(kind: SyntaxKind) -> bool {
27001        kind == SyntaxKind::OPERATOR_CALL
27002    }
27003    #[inline]
27004    fn cast(syntax: SyntaxNode) -> Option<Self> {
27005        if Self::can_cast(syntax.kind()) {
27006            Some(Self { syntax })
27007        } else {
27008            None
27009        }
27010    }
27011    #[inline]
27012    fn syntax(&self) -> &SyntaxNode {
27013        &self.syntax
27014    }
27015}
27016impl AstNode for OperatorClassOptionList {
27017    #[inline]
27018    fn can_cast(kind: SyntaxKind) -> bool {
27019        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27020    }
27021    #[inline]
27022    fn cast(syntax: SyntaxNode) -> Option<Self> {
27023        if Self::can_cast(syntax.kind()) {
27024            Some(Self { syntax })
27025        } else {
27026            None
27027        }
27028    }
27029    #[inline]
27030    fn syntax(&self) -> &SyntaxNode {
27031        &self.syntax
27032    }
27033}
27034impl AstNode for OptionItem {
27035    #[inline]
27036    fn can_cast(kind: SyntaxKind) -> bool {
27037        kind == SyntaxKind::OPTION_ITEM
27038    }
27039    #[inline]
27040    fn cast(syntax: SyntaxNode) -> Option<Self> {
27041        if Self::can_cast(syntax.kind()) {
27042            Some(Self { syntax })
27043        } else {
27044            None
27045        }
27046    }
27047    #[inline]
27048    fn syntax(&self) -> &SyntaxNode {
27049        &self.syntax
27050    }
27051}
27052impl AstNode for OptionItemList {
27053    #[inline]
27054    fn can_cast(kind: SyntaxKind) -> bool {
27055        kind == SyntaxKind::OPTION_ITEM_LIST
27056    }
27057    #[inline]
27058    fn cast(syntax: SyntaxNode) -> Option<Self> {
27059        if Self::can_cast(syntax.kind()) {
27060            Some(Self { syntax })
27061        } else {
27062            None
27063        }
27064    }
27065    #[inline]
27066    fn syntax(&self) -> &SyntaxNode {
27067        &self.syntax
27068    }
27069}
27070impl AstNode for OrReplace {
27071    #[inline]
27072    fn can_cast(kind: SyntaxKind) -> bool {
27073        kind == SyntaxKind::OR_REPLACE
27074    }
27075    #[inline]
27076    fn cast(syntax: SyntaxNode) -> Option<Self> {
27077        if Self::can_cast(syntax.kind()) {
27078            Some(Self { syntax })
27079        } else {
27080            None
27081        }
27082    }
27083    #[inline]
27084    fn syntax(&self) -> &SyntaxNode {
27085        &self.syntax
27086    }
27087}
27088impl AstNode for OrderByClause {
27089    #[inline]
27090    fn can_cast(kind: SyntaxKind) -> bool {
27091        kind == SyntaxKind::ORDER_BY_CLAUSE
27092    }
27093    #[inline]
27094    fn cast(syntax: SyntaxNode) -> Option<Self> {
27095        if Self::can_cast(syntax.kind()) {
27096            Some(Self { syntax })
27097        } else {
27098            None
27099        }
27100    }
27101    #[inline]
27102    fn syntax(&self) -> &SyntaxNode {
27103        &self.syntax
27104    }
27105}
27106impl AstNode for OverClause {
27107    #[inline]
27108    fn can_cast(kind: SyntaxKind) -> bool {
27109        kind == SyntaxKind::OVER_CLAUSE
27110    }
27111    #[inline]
27112    fn cast(syntax: SyntaxNode) -> Option<Self> {
27113        if Self::can_cast(syntax.kind()) {
27114            Some(Self { syntax })
27115        } else {
27116            None
27117        }
27118    }
27119    #[inline]
27120    fn syntax(&self) -> &SyntaxNode {
27121        &self.syntax
27122    }
27123}
27124impl AstNode for OverlayFn {
27125    #[inline]
27126    fn can_cast(kind: SyntaxKind) -> bool {
27127        kind == SyntaxKind::OVERLAY_FN
27128    }
27129    #[inline]
27130    fn cast(syntax: SyntaxNode) -> Option<Self> {
27131        if Self::can_cast(syntax.kind()) {
27132            Some(Self { syntax })
27133        } else {
27134            None
27135        }
27136    }
27137    #[inline]
27138    fn syntax(&self) -> &SyntaxNode {
27139        &self.syntax
27140    }
27141}
27142impl AstNode for OwnedByRoles {
27143    #[inline]
27144    fn can_cast(kind: SyntaxKind) -> bool {
27145        kind == SyntaxKind::OWNED_BY_ROLES
27146    }
27147    #[inline]
27148    fn cast(syntax: SyntaxNode) -> Option<Self> {
27149        if Self::can_cast(syntax.kind()) {
27150            Some(Self { syntax })
27151        } else {
27152            None
27153        }
27154    }
27155    #[inline]
27156    fn syntax(&self) -> &SyntaxNode {
27157        &self.syntax
27158    }
27159}
27160impl AstNode for OwnerTo {
27161    #[inline]
27162    fn can_cast(kind: SyntaxKind) -> bool {
27163        kind == SyntaxKind::OWNER_TO
27164    }
27165    #[inline]
27166    fn cast(syntax: SyntaxNode) -> Option<Self> {
27167        if Self::can_cast(syntax.kind()) {
27168            Some(Self { syntax })
27169        } else {
27170            None
27171        }
27172    }
27173    #[inline]
27174    fn syntax(&self) -> &SyntaxNode {
27175        &self.syntax
27176    }
27177}
27178impl AstNode for ParallelFuncOption {
27179    #[inline]
27180    fn can_cast(kind: SyntaxKind) -> bool {
27181        kind == SyntaxKind::PARALLEL_FUNC_OPTION
27182    }
27183    #[inline]
27184    fn cast(syntax: SyntaxNode) -> Option<Self> {
27185        if Self::can_cast(syntax.kind()) {
27186            Some(Self { syntax })
27187        } else {
27188            None
27189        }
27190    }
27191    #[inline]
27192    fn syntax(&self) -> &SyntaxNode {
27193        &self.syntax
27194    }
27195}
27196impl AstNode for Param {
27197    #[inline]
27198    fn can_cast(kind: SyntaxKind) -> bool {
27199        kind == SyntaxKind::PARAM
27200    }
27201    #[inline]
27202    fn cast(syntax: SyntaxNode) -> Option<Self> {
27203        if Self::can_cast(syntax.kind()) {
27204            Some(Self { syntax })
27205        } else {
27206            None
27207        }
27208    }
27209    #[inline]
27210    fn syntax(&self) -> &SyntaxNode {
27211        &self.syntax
27212    }
27213}
27214impl AstNode for ParamDefault {
27215    #[inline]
27216    fn can_cast(kind: SyntaxKind) -> bool {
27217        kind == SyntaxKind::PARAM_DEFAULT
27218    }
27219    #[inline]
27220    fn cast(syntax: SyntaxNode) -> Option<Self> {
27221        if Self::can_cast(syntax.kind()) {
27222            Some(Self { syntax })
27223        } else {
27224            None
27225        }
27226    }
27227    #[inline]
27228    fn syntax(&self) -> &SyntaxNode {
27229        &self.syntax
27230    }
27231}
27232impl AstNode for ParamIn {
27233    #[inline]
27234    fn can_cast(kind: SyntaxKind) -> bool {
27235        kind == SyntaxKind::PARAM_IN
27236    }
27237    #[inline]
27238    fn cast(syntax: SyntaxNode) -> Option<Self> {
27239        if Self::can_cast(syntax.kind()) {
27240            Some(Self { syntax })
27241        } else {
27242            None
27243        }
27244    }
27245    #[inline]
27246    fn syntax(&self) -> &SyntaxNode {
27247        &self.syntax
27248    }
27249}
27250impl AstNode for ParamInOut {
27251    #[inline]
27252    fn can_cast(kind: SyntaxKind) -> bool {
27253        kind == SyntaxKind::PARAM_IN_OUT
27254    }
27255    #[inline]
27256    fn cast(syntax: SyntaxNode) -> Option<Self> {
27257        if Self::can_cast(syntax.kind()) {
27258            Some(Self { syntax })
27259        } else {
27260            None
27261        }
27262    }
27263    #[inline]
27264    fn syntax(&self) -> &SyntaxNode {
27265        &self.syntax
27266    }
27267}
27268impl AstNode for ParamList {
27269    #[inline]
27270    fn can_cast(kind: SyntaxKind) -> bool {
27271        kind == SyntaxKind::PARAM_LIST
27272    }
27273    #[inline]
27274    fn cast(syntax: SyntaxNode) -> Option<Self> {
27275        if Self::can_cast(syntax.kind()) {
27276            Some(Self { syntax })
27277        } else {
27278            None
27279        }
27280    }
27281    #[inline]
27282    fn syntax(&self) -> &SyntaxNode {
27283        &self.syntax
27284    }
27285}
27286impl AstNode for ParamOut {
27287    #[inline]
27288    fn can_cast(kind: SyntaxKind) -> bool {
27289        kind == SyntaxKind::PARAM_OUT
27290    }
27291    #[inline]
27292    fn cast(syntax: SyntaxNode) -> Option<Self> {
27293        if Self::can_cast(syntax.kind()) {
27294            Some(Self { syntax })
27295        } else {
27296            None
27297        }
27298    }
27299    #[inline]
27300    fn syntax(&self) -> &SyntaxNode {
27301        &self.syntax
27302    }
27303}
27304impl AstNode for ParamVariadic {
27305    #[inline]
27306    fn can_cast(kind: SyntaxKind) -> bool {
27307        kind == SyntaxKind::PARAM_VARIADIC
27308    }
27309    #[inline]
27310    fn cast(syntax: SyntaxNode) -> Option<Self> {
27311        if Self::can_cast(syntax.kind()) {
27312            Some(Self { syntax })
27313        } else {
27314            None
27315        }
27316    }
27317    #[inline]
27318    fn syntax(&self) -> &SyntaxNode {
27319        &self.syntax
27320    }
27321}
27322impl AstNode for ParenExpr {
27323    #[inline]
27324    fn can_cast(kind: SyntaxKind) -> bool {
27325        kind == SyntaxKind::PAREN_EXPR
27326    }
27327    #[inline]
27328    fn cast(syntax: SyntaxNode) -> Option<Self> {
27329        if Self::can_cast(syntax.kind()) {
27330            Some(Self { syntax })
27331        } else {
27332            None
27333        }
27334    }
27335    #[inline]
27336    fn syntax(&self) -> &SyntaxNode {
27337        &self.syntax
27338    }
27339}
27340impl AstNode for ParenGraphPattern {
27341    #[inline]
27342    fn can_cast(kind: SyntaxKind) -> bool {
27343        kind == SyntaxKind::PAREN_GRAPH_PATTERN
27344    }
27345    #[inline]
27346    fn cast(syntax: SyntaxNode) -> Option<Self> {
27347        if Self::can_cast(syntax.kind()) {
27348            Some(Self { syntax })
27349        } else {
27350            None
27351        }
27352    }
27353    #[inline]
27354    fn syntax(&self) -> &SyntaxNode {
27355        &self.syntax
27356    }
27357}
27358impl AstNode for ParenSelect {
27359    #[inline]
27360    fn can_cast(kind: SyntaxKind) -> bool {
27361        kind == SyntaxKind::PAREN_SELECT
27362    }
27363    #[inline]
27364    fn cast(syntax: SyntaxNode) -> Option<Self> {
27365        if Self::can_cast(syntax.kind()) {
27366            Some(Self { syntax })
27367        } else {
27368            None
27369        }
27370    }
27371    #[inline]
27372    fn syntax(&self) -> &SyntaxNode {
27373        &self.syntax
27374    }
27375}
27376impl AstNode for Partition {
27377    #[inline]
27378    fn can_cast(kind: SyntaxKind) -> bool {
27379        kind == SyntaxKind::PARTITION
27380    }
27381    #[inline]
27382    fn cast(syntax: SyntaxNode) -> Option<Self> {
27383        if Self::can_cast(syntax.kind()) {
27384            Some(Self { syntax })
27385        } else {
27386            None
27387        }
27388    }
27389    #[inline]
27390    fn syntax(&self) -> &SyntaxNode {
27391        &self.syntax
27392    }
27393}
27394impl AstNode for PartitionBy {
27395    #[inline]
27396    fn can_cast(kind: SyntaxKind) -> bool {
27397        kind == SyntaxKind::PARTITION_BY
27398    }
27399    #[inline]
27400    fn cast(syntax: SyntaxNode) -> Option<Self> {
27401        if Self::can_cast(syntax.kind()) {
27402            Some(Self { syntax })
27403        } else {
27404            None
27405        }
27406    }
27407    #[inline]
27408    fn syntax(&self) -> &SyntaxNode {
27409        &self.syntax
27410    }
27411}
27412impl AstNode for PartitionDefault {
27413    #[inline]
27414    fn can_cast(kind: SyntaxKind) -> bool {
27415        kind == SyntaxKind::PARTITION_DEFAULT
27416    }
27417    #[inline]
27418    fn cast(syntax: SyntaxNode) -> Option<Self> {
27419        if Self::can_cast(syntax.kind()) {
27420            Some(Self { syntax })
27421        } else {
27422            None
27423        }
27424    }
27425    #[inline]
27426    fn syntax(&self) -> &SyntaxNode {
27427        &self.syntax
27428    }
27429}
27430impl AstNode for PartitionForValuesFrom {
27431    #[inline]
27432    fn can_cast(kind: SyntaxKind) -> bool {
27433        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
27434    }
27435    #[inline]
27436    fn cast(syntax: SyntaxNode) -> Option<Self> {
27437        if Self::can_cast(syntax.kind()) {
27438            Some(Self { syntax })
27439        } else {
27440            None
27441        }
27442    }
27443    #[inline]
27444    fn syntax(&self) -> &SyntaxNode {
27445        &self.syntax
27446    }
27447}
27448impl AstNode for PartitionForValuesIn {
27449    #[inline]
27450    fn can_cast(kind: SyntaxKind) -> bool {
27451        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
27452    }
27453    #[inline]
27454    fn cast(syntax: SyntaxNode) -> Option<Self> {
27455        if Self::can_cast(syntax.kind()) {
27456            Some(Self { syntax })
27457        } else {
27458            None
27459        }
27460    }
27461    #[inline]
27462    fn syntax(&self) -> &SyntaxNode {
27463        &self.syntax
27464    }
27465}
27466impl AstNode for PartitionForValuesWith {
27467    #[inline]
27468    fn can_cast(kind: SyntaxKind) -> bool {
27469        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
27470    }
27471    #[inline]
27472    fn cast(syntax: SyntaxNode) -> Option<Self> {
27473        if Self::can_cast(syntax.kind()) {
27474            Some(Self { syntax })
27475        } else {
27476            None
27477        }
27478    }
27479    #[inline]
27480    fn syntax(&self) -> &SyntaxNode {
27481        &self.syntax
27482    }
27483}
27484impl AstNode for PartitionItem {
27485    #[inline]
27486    fn can_cast(kind: SyntaxKind) -> bool {
27487        kind == SyntaxKind::PARTITION_ITEM
27488    }
27489    #[inline]
27490    fn cast(syntax: SyntaxNode) -> Option<Self> {
27491        if Self::can_cast(syntax.kind()) {
27492            Some(Self { syntax })
27493        } else {
27494            None
27495        }
27496    }
27497    #[inline]
27498    fn syntax(&self) -> &SyntaxNode {
27499        &self.syntax
27500    }
27501}
27502impl AstNode for PartitionItemList {
27503    #[inline]
27504    fn can_cast(kind: SyntaxKind) -> bool {
27505        kind == SyntaxKind::PARTITION_ITEM_LIST
27506    }
27507    #[inline]
27508    fn cast(syntax: SyntaxNode) -> Option<Self> {
27509        if Self::can_cast(syntax.kind()) {
27510            Some(Self { syntax })
27511        } else {
27512            None
27513        }
27514    }
27515    #[inline]
27516    fn syntax(&self) -> &SyntaxNode {
27517        &self.syntax
27518    }
27519}
27520impl AstNode for PartitionList {
27521    #[inline]
27522    fn can_cast(kind: SyntaxKind) -> bool {
27523        kind == SyntaxKind::PARTITION_LIST
27524    }
27525    #[inline]
27526    fn cast(syntax: SyntaxNode) -> Option<Self> {
27527        if Self::can_cast(syntax.kind()) {
27528            Some(Self { syntax })
27529        } else {
27530            None
27531        }
27532    }
27533    #[inline]
27534    fn syntax(&self) -> &SyntaxNode {
27535        &self.syntax
27536    }
27537}
27538impl AstNode for PartitionOf {
27539    #[inline]
27540    fn can_cast(kind: SyntaxKind) -> bool {
27541        kind == SyntaxKind::PARTITION_OF
27542    }
27543    #[inline]
27544    fn cast(syntax: SyntaxNode) -> Option<Self> {
27545        if Self::can_cast(syntax.kind()) {
27546            Some(Self { syntax })
27547        } else {
27548            None
27549        }
27550    }
27551    #[inline]
27552    fn syntax(&self) -> &SyntaxNode {
27553        &self.syntax
27554    }
27555}
27556impl AstNode for Path {
27557    #[inline]
27558    fn can_cast(kind: SyntaxKind) -> bool {
27559        kind == SyntaxKind::PATH
27560    }
27561    #[inline]
27562    fn cast(syntax: SyntaxNode) -> Option<Self> {
27563        if Self::can_cast(syntax.kind()) {
27564            Some(Self { syntax })
27565        } else {
27566            None
27567        }
27568    }
27569    #[inline]
27570    fn syntax(&self) -> &SyntaxNode {
27571        &self.syntax
27572    }
27573}
27574impl AstNode for PathFactor {
27575    #[inline]
27576    fn can_cast(kind: SyntaxKind) -> bool {
27577        kind == SyntaxKind::PATH_FACTOR
27578    }
27579    #[inline]
27580    fn cast(syntax: SyntaxNode) -> Option<Self> {
27581        if Self::can_cast(syntax.kind()) {
27582            Some(Self { syntax })
27583        } else {
27584            None
27585        }
27586    }
27587    #[inline]
27588    fn syntax(&self) -> &SyntaxNode {
27589        &self.syntax
27590    }
27591}
27592impl AstNode for PathPattern {
27593    #[inline]
27594    fn can_cast(kind: SyntaxKind) -> bool {
27595        kind == SyntaxKind::PATH_PATTERN
27596    }
27597    #[inline]
27598    fn cast(syntax: SyntaxNode) -> Option<Self> {
27599        if Self::can_cast(syntax.kind()) {
27600            Some(Self { syntax })
27601        } else {
27602            None
27603        }
27604    }
27605    #[inline]
27606    fn syntax(&self) -> &SyntaxNode {
27607        &self.syntax
27608    }
27609}
27610impl AstNode for PathPatternList {
27611    #[inline]
27612    fn can_cast(kind: SyntaxKind) -> bool {
27613        kind == SyntaxKind::PATH_PATTERN_LIST
27614    }
27615    #[inline]
27616    fn cast(syntax: SyntaxNode) -> Option<Self> {
27617        if Self::can_cast(syntax.kind()) {
27618            Some(Self { syntax })
27619        } else {
27620            None
27621        }
27622    }
27623    #[inline]
27624    fn syntax(&self) -> &SyntaxNode {
27625        &self.syntax
27626    }
27627}
27628impl AstNode for PathSegment {
27629    #[inline]
27630    fn can_cast(kind: SyntaxKind) -> bool {
27631        kind == SyntaxKind::PATH_SEGMENT
27632    }
27633    #[inline]
27634    fn cast(syntax: SyntaxNode) -> Option<Self> {
27635        if Self::can_cast(syntax.kind()) {
27636            Some(Self { syntax })
27637        } else {
27638            None
27639        }
27640    }
27641    #[inline]
27642    fn syntax(&self) -> &SyntaxNode {
27643        &self.syntax
27644    }
27645}
27646impl AstNode for PathType {
27647    #[inline]
27648    fn can_cast(kind: SyntaxKind) -> bool {
27649        kind == SyntaxKind::PATH_TYPE
27650    }
27651    #[inline]
27652    fn cast(syntax: SyntaxNode) -> Option<Self> {
27653        if Self::can_cast(syntax.kind()) {
27654            Some(Self { syntax })
27655        } else {
27656            None
27657        }
27658    }
27659    #[inline]
27660    fn syntax(&self) -> &SyntaxNode {
27661        &self.syntax
27662    }
27663}
27664impl AstNode for PercentType {
27665    #[inline]
27666    fn can_cast(kind: SyntaxKind) -> bool {
27667        kind == SyntaxKind::PERCENT_TYPE
27668    }
27669    #[inline]
27670    fn cast(syntax: SyntaxNode) -> Option<Self> {
27671        if Self::can_cast(syntax.kind()) {
27672            Some(Self { syntax })
27673        } else {
27674            None
27675        }
27676    }
27677    #[inline]
27678    fn syntax(&self) -> &SyntaxNode {
27679        &self.syntax
27680    }
27681}
27682impl AstNode for PercentTypeClause {
27683    #[inline]
27684    fn can_cast(kind: SyntaxKind) -> bool {
27685        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
27686    }
27687    #[inline]
27688    fn cast(syntax: SyntaxNode) -> Option<Self> {
27689        if Self::can_cast(syntax.kind()) {
27690            Some(Self { syntax })
27691        } else {
27692            None
27693        }
27694    }
27695    #[inline]
27696    fn syntax(&self) -> &SyntaxNode {
27697        &self.syntax
27698    }
27699}
27700impl AstNode for PositionFn {
27701    #[inline]
27702    fn can_cast(kind: SyntaxKind) -> bool {
27703        kind == SyntaxKind::POSITION_FN
27704    }
27705    #[inline]
27706    fn cast(syntax: SyntaxNode) -> Option<Self> {
27707        if Self::can_cast(syntax.kind()) {
27708            Some(Self { syntax })
27709        } else {
27710            None
27711        }
27712    }
27713    #[inline]
27714    fn syntax(&self) -> &SyntaxNode {
27715        &self.syntax
27716    }
27717}
27718impl AstNode for PostfixExpr {
27719    #[inline]
27720    fn can_cast(kind: SyntaxKind) -> bool {
27721        kind == SyntaxKind::POSTFIX_EXPR
27722    }
27723    #[inline]
27724    fn cast(syntax: SyntaxNode) -> Option<Self> {
27725        if Self::can_cast(syntax.kind()) {
27726            Some(Self { syntax })
27727        } else {
27728            None
27729        }
27730    }
27731    #[inline]
27732    fn syntax(&self) -> &SyntaxNode {
27733        &self.syntax
27734    }
27735}
27736impl AstNode for PrefixExpr {
27737    #[inline]
27738    fn can_cast(kind: SyntaxKind) -> bool {
27739        kind == SyntaxKind::PREFIX_EXPR
27740    }
27741    #[inline]
27742    fn cast(syntax: SyntaxNode) -> Option<Self> {
27743        if Self::can_cast(syntax.kind()) {
27744            Some(Self { syntax })
27745        } else {
27746            None
27747        }
27748    }
27749    #[inline]
27750    fn syntax(&self) -> &SyntaxNode {
27751        &self.syntax
27752    }
27753}
27754impl AstNode for Prepare {
27755    #[inline]
27756    fn can_cast(kind: SyntaxKind) -> bool {
27757        kind == SyntaxKind::PREPARE
27758    }
27759    #[inline]
27760    fn cast(syntax: SyntaxNode) -> Option<Self> {
27761        if Self::can_cast(syntax.kind()) {
27762            Some(Self { syntax })
27763        } else {
27764            None
27765        }
27766    }
27767    #[inline]
27768    fn syntax(&self) -> &SyntaxNode {
27769        &self.syntax
27770    }
27771}
27772impl AstNode for PrepareTransaction {
27773    #[inline]
27774    fn can_cast(kind: SyntaxKind) -> bool {
27775        kind == SyntaxKind::PREPARE_TRANSACTION
27776    }
27777    #[inline]
27778    fn cast(syntax: SyntaxNode) -> Option<Self> {
27779        if Self::can_cast(syntax.kind()) {
27780            Some(Self { syntax })
27781        } else {
27782            None
27783        }
27784    }
27785    #[inline]
27786    fn syntax(&self) -> &SyntaxNode {
27787        &self.syntax
27788    }
27789}
27790impl AstNode for PreserveRows {
27791    #[inline]
27792    fn can_cast(kind: SyntaxKind) -> bool {
27793        kind == SyntaxKind::PRESERVE_ROWS
27794    }
27795    #[inline]
27796    fn cast(syntax: SyntaxNode) -> Option<Self> {
27797        if Self::can_cast(syntax.kind()) {
27798            Some(Self { syntax })
27799        } else {
27800            None
27801        }
27802    }
27803    #[inline]
27804    fn syntax(&self) -> &SyntaxNode {
27805        &self.syntax
27806    }
27807}
27808impl AstNode for PrimaryKeyConstraint {
27809    #[inline]
27810    fn can_cast(kind: SyntaxKind) -> bool {
27811        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
27812    }
27813    #[inline]
27814    fn cast(syntax: SyntaxNode) -> Option<Self> {
27815        if Self::can_cast(syntax.kind()) {
27816            Some(Self { syntax })
27817        } else {
27818            None
27819        }
27820    }
27821    #[inline]
27822    fn syntax(&self) -> &SyntaxNode {
27823        &self.syntax
27824    }
27825}
27826impl AstNode for PrivilegeTarget {
27827    #[inline]
27828    fn can_cast(kind: SyntaxKind) -> bool {
27829        kind == SyntaxKind::PRIVILEGE_TARGET
27830    }
27831    #[inline]
27832    fn cast(syntax: SyntaxNode) -> Option<Self> {
27833        if Self::can_cast(syntax.kind()) {
27834            Some(Self { syntax })
27835        } else {
27836            None
27837        }
27838    }
27839    #[inline]
27840    fn syntax(&self) -> &SyntaxNode {
27841        &self.syntax
27842    }
27843}
27844impl AstNode for Privileges {
27845    #[inline]
27846    fn can_cast(kind: SyntaxKind) -> bool {
27847        kind == SyntaxKind::PRIVILEGES
27848    }
27849    #[inline]
27850    fn cast(syntax: SyntaxNode) -> Option<Self> {
27851        if Self::can_cast(syntax.kind()) {
27852            Some(Self { syntax })
27853        } else {
27854            None
27855        }
27856    }
27857    #[inline]
27858    fn syntax(&self) -> &SyntaxNode {
27859        &self.syntax
27860    }
27861}
27862impl AstNode for PropertiesList {
27863    #[inline]
27864    fn can_cast(kind: SyntaxKind) -> bool {
27865        kind == SyntaxKind::PROPERTIES_LIST
27866    }
27867    #[inline]
27868    fn cast(syntax: SyntaxNode) -> Option<Self> {
27869        if Self::can_cast(syntax.kind()) {
27870            Some(Self { syntax })
27871        } else {
27872            None
27873        }
27874    }
27875    #[inline]
27876    fn syntax(&self) -> &SyntaxNode {
27877        &self.syntax
27878    }
27879}
27880impl AstNode for PublicationObject {
27881    #[inline]
27882    fn can_cast(kind: SyntaxKind) -> bool {
27883        kind == SyntaxKind::PUBLICATION_OBJECT
27884    }
27885    #[inline]
27886    fn cast(syntax: SyntaxNode) -> Option<Self> {
27887        if Self::can_cast(syntax.kind()) {
27888            Some(Self { syntax })
27889        } else {
27890            None
27891        }
27892    }
27893    #[inline]
27894    fn syntax(&self) -> &SyntaxNode {
27895        &self.syntax
27896    }
27897}
27898impl AstNode for ReadCommitted {
27899    #[inline]
27900    fn can_cast(kind: SyntaxKind) -> bool {
27901        kind == SyntaxKind::READ_COMMITTED
27902    }
27903    #[inline]
27904    fn cast(syntax: SyntaxNode) -> Option<Self> {
27905        if Self::can_cast(syntax.kind()) {
27906            Some(Self { syntax })
27907        } else {
27908            None
27909        }
27910    }
27911    #[inline]
27912    fn syntax(&self) -> &SyntaxNode {
27913        &self.syntax
27914    }
27915}
27916impl AstNode for ReadOnly {
27917    #[inline]
27918    fn can_cast(kind: SyntaxKind) -> bool {
27919        kind == SyntaxKind::READ_ONLY
27920    }
27921    #[inline]
27922    fn cast(syntax: SyntaxNode) -> Option<Self> {
27923        if Self::can_cast(syntax.kind()) {
27924            Some(Self { syntax })
27925        } else {
27926            None
27927        }
27928    }
27929    #[inline]
27930    fn syntax(&self) -> &SyntaxNode {
27931        &self.syntax
27932    }
27933}
27934impl AstNode for ReadUncommitted {
27935    #[inline]
27936    fn can_cast(kind: SyntaxKind) -> bool {
27937        kind == SyntaxKind::READ_UNCOMMITTED
27938    }
27939    #[inline]
27940    fn cast(syntax: SyntaxNode) -> Option<Self> {
27941        if Self::can_cast(syntax.kind()) {
27942            Some(Self { syntax })
27943        } else {
27944            None
27945        }
27946    }
27947    #[inline]
27948    fn syntax(&self) -> &SyntaxNode {
27949        &self.syntax
27950    }
27951}
27952impl AstNode for ReadWrite {
27953    #[inline]
27954    fn can_cast(kind: SyntaxKind) -> bool {
27955        kind == SyntaxKind::READ_WRITE
27956    }
27957    #[inline]
27958    fn cast(syntax: SyntaxNode) -> Option<Self> {
27959        if Self::can_cast(syntax.kind()) {
27960            Some(Self { syntax })
27961        } else {
27962            None
27963        }
27964    }
27965    #[inline]
27966    fn syntax(&self) -> &SyntaxNode {
27967        &self.syntax
27968    }
27969}
27970impl AstNode for Reassign {
27971    #[inline]
27972    fn can_cast(kind: SyntaxKind) -> bool {
27973        kind == SyntaxKind::REASSIGN
27974    }
27975    #[inline]
27976    fn cast(syntax: SyntaxNode) -> Option<Self> {
27977        if Self::can_cast(syntax.kind()) {
27978            Some(Self { syntax })
27979        } else {
27980            None
27981        }
27982    }
27983    #[inline]
27984    fn syntax(&self) -> &SyntaxNode {
27985        &self.syntax
27986    }
27987}
27988impl AstNode for ReferencesConstraint {
27989    #[inline]
27990    fn can_cast(kind: SyntaxKind) -> bool {
27991        kind == SyntaxKind::REFERENCES_CONSTRAINT
27992    }
27993    #[inline]
27994    fn cast(syntax: SyntaxNode) -> Option<Self> {
27995        if Self::can_cast(syntax.kind()) {
27996            Some(Self { syntax })
27997        } else {
27998            None
27999        }
28000    }
28001    #[inline]
28002    fn syntax(&self) -> &SyntaxNode {
28003        &self.syntax
28004    }
28005}
28006impl AstNode for Referencing {
28007    #[inline]
28008    fn can_cast(kind: SyntaxKind) -> bool {
28009        kind == SyntaxKind::REFERENCING
28010    }
28011    #[inline]
28012    fn cast(syntax: SyntaxNode) -> Option<Self> {
28013        if Self::can_cast(syntax.kind()) {
28014            Some(Self { syntax })
28015        } else {
28016            None
28017        }
28018    }
28019    #[inline]
28020    fn syntax(&self) -> &SyntaxNode {
28021        &self.syntax
28022    }
28023}
28024impl AstNode for ReferencingTable {
28025    #[inline]
28026    fn can_cast(kind: SyntaxKind) -> bool {
28027        kind == SyntaxKind::REFERENCING_TABLE
28028    }
28029    #[inline]
28030    fn cast(syntax: SyntaxNode) -> Option<Self> {
28031        if Self::can_cast(syntax.kind()) {
28032            Some(Self { syntax })
28033        } else {
28034            None
28035        }
28036    }
28037    #[inline]
28038    fn syntax(&self) -> &SyntaxNode {
28039        &self.syntax
28040    }
28041}
28042impl AstNode for Refresh {
28043    #[inline]
28044    fn can_cast(kind: SyntaxKind) -> bool {
28045        kind == SyntaxKind::REFRESH
28046    }
28047    #[inline]
28048    fn cast(syntax: SyntaxNode) -> Option<Self> {
28049        if Self::can_cast(syntax.kind()) {
28050            Some(Self { syntax })
28051        } else {
28052            None
28053        }
28054    }
28055    #[inline]
28056    fn syntax(&self) -> &SyntaxNode {
28057        &self.syntax
28058    }
28059}
28060impl AstNode for RefreshCollationVersion {
28061    #[inline]
28062    fn can_cast(kind: SyntaxKind) -> bool {
28063        kind == SyntaxKind::REFRESH_COLLATION_VERSION
28064    }
28065    #[inline]
28066    fn cast(syntax: SyntaxNode) -> Option<Self> {
28067        if Self::can_cast(syntax.kind()) {
28068            Some(Self { syntax })
28069        } else {
28070            None
28071        }
28072    }
28073    #[inline]
28074    fn syntax(&self) -> &SyntaxNode {
28075        &self.syntax
28076    }
28077}
28078impl AstNode for RefreshVersion {
28079    #[inline]
28080    fn can_cast(kind: SyntaxKind) -> bool {
28081        kind == SyntaxKind::REFRESH_VERSION
28082    }
28083    #[inline]
28084    fn cast(syntax: SyntaxNode) -> Option<Self> {
28085        if Self::can_cast(syntax.kind()) {
28086            Some(Self { syntax })
28087        } else {
28088            None
28089        }
28090    }
28091    #[inline]
28092    fn syntax(&self) -> &SyntaxNode {
28093        &self.syntax
28094    }
28095}
28096impl AstNode for Reindex {
28097    #[inline]
28098    fn can_cast(kind: SyntaxKind) -> bool {
28099        kind == SyntaxKind::REINDEX
28100    }
28101    #[inline]
28102    fn cast(syntax: SyntaxNode) -> Option<Self> {
28103        if Self::can_cast(syntax.kind()) {
28104            Some(Self { syntax })
28105        } else {
28106            None
28107        }
28108    }
28109    #[inline]
28110    fn syntax(&self) -> &SyntaxNode {
28111        &self.syntax
28112    }
28113}
28114impl AstNode for RelationName {
28115    #[inline]
28116    fn can_cast(kind: SyntaxKind) -> bool {
28117        kind == SyntaxKind::RELATION_NAME
28118    }
28119    #[inline]
28120    fn cast(syntax: SyntaxNode) -> Option<Self> {
28121        if Self::can_cast(syntax.kind()) {
28122            Some(Self { syntax })
28123        } else {
28124            None
28125        }
28126    }
28127    #[inline]
28128    fn syntax(&self) -> &SyntaxNode {
28129        &self.syntax
28130    }
28131}
28132impl AstNode for ReleaseSavepoint {
28133    #[inline]
28134    fn can_cast(kind: SyntaxKind) -> bool {
28135        kind == SyntaxKind::RELEASE_SAVEPOINT
28136    }
28137    #[inline]
28138    fn cast(syntax: SyntaxNode) -> Option<Self> {
28139        if Self::can_cast(syntax.kind()) {
28140            Some(Self { syntax })
28141        } else {
28142            None
28143        }
28144    }
28145    #[inline]
28146    fn syntax(&self) -> &SyntaxNode {
28147        &self.syntax
28148    }
28149}
28150impl AstNode for RenameAttribute {
28151    #[inline]
28152    fn can_cast(kind: SyntaxKind) -> bool {
28153        kind == SyntaxKind::RENAME_ATTRIBUTE
28154    }
28155    #[inline]
28156    fn cast(syntax: SyntaxNode) -> Option<Self> {
28157        if Self::can_cast(syntax.kind()) {
28158            Some(Self { syntax })
28159        } else {
28160            None
28161        }
28162    }
28163    #[inline]
28164    fn syntax(&self) -> &SyntaxNode {
28165        &self.syntax
28166    }
28167}
28168impl AstNode for RenameColumn {
28169    #[inline]
28170    fn can_cast(kind: SyntaxKind) -> bool {
28171        kind == SyntaxKind::RENAME_COLUMN
28172    }
28173    #[inline]
28174    fn cast(syntax: SyntaxNode) -> Option<Self> {
28175        if Self::can_cast(syntax.kind()) {
28176            Some(Self { syntax })
28177        } else {
28178            None
28179        }
28180    }
28181    #[inline]
28182    fn syntax(&self) -> &SyntaxNode {
28183        &self.syntax
28184    }
28185}
28186impl AstNode for RenameConstraint {
28187    #[inline]
28188    fn can_cast(kind: SyntaxKind) -> bool {
28189        kind == SyntaxKind::RENAME_CONSTRAINT
28190    }
28191    #[inline]
28192    fn cast(syntax: SyntaxNode) -> Option<Self> {
28193        if Self::can_cast(syntax.kind()) {
28194            Some(Self { syntax })
28195        } else {
28196            None
28197        }
28198    }
28199    #[inline]
28200    fn syntax(&self) -> &SyntaxNode {
28201        &self.syntax
28202    }
28203}
28204impl AstNode for RenameTo {
28205    #[inline]
28206    fn can_cast(kind: SyntaxKind) -> bool {
28207        kind == SyntaxKind::RENAME_TO
28208    }
28209    #[inline]
28210    fn cast(syntax: SyntaxNode) -> Option<Self> {
28211        if Self::can_cast(syntax.kind()) {
28212            Some(Self { syntax })
28213        } else {
28214            None
28215        }
28216    }
28217    #[inline]
28218    fn syntax(&self) -> &SyntaxNode {
28219        &self.syntax
28220    }
28221}
28222impl AstNode for RenameValue {
28223    #[inline]
28224    fn can_cast(kind: SyntaxKind) -> bool {
28225        kind == SyntaxKind::RENAME_VALUE
28226    }
28227    #[inline]
28228    fn cast(syntax: SyntaxNode) -> Option<Self> {
28229        if Self::can_cast(syntax.kind()) {
28230            Some(Self { syntax })
28231        } else {
28232            None
28233        }
28234    }
28235    #[inline]
28236    fn syntax(&self) -> &SyntaxNode {
28237        &self.syntax
28238    }
28239}
28240impl AstNode for Repack {
28241    #[inline]
28242    fn can_cast(kind: SyntaxKind) -> bool {
28243        kind == SyntaxKind::REPACK
28244    }
28245    #[inline]
28246    fn cast(syntax: SyntaxNode) -> Option<Self> {
28247        if Self::can_cast(syntax.kind()) {
28248            Some(Self { syntax })
28249        } else {
28250            None
28251        }
28252    }
28253    #[inline]
28254    fn syntax(&self) -> &SyntaxNode {
28255        &self.syntax
28256    }
28257}
28258impl AstNode for RepeatableClause {
28259    #[inline]
28260    fn can_cast(kind: SyntaxKind) -> bool {
28261        kind == SyntaxKind::REPEATABLE_CLAUSE
28262    }
28263    #[inline]
28264    fn cast(syntax: SyntaxNode) -> Option<Self> {
28265        if Self::can_cast(syntax.kind()) {
28266            Some(Self { syntax })
28267        } else {
28268            None
28269        }
28270    }
28271    #[inline]
28272    fn syntax(&self) -> &SyntaxNode {
28273        &self.syntax
28274    }
28275}
28276impl AstNode for RepeatableRead {
28277    #[inline]
28278    fn can_cast(kind: SyntaxKind) -> bool {
28279        kind == SyntaxKind::REPEATABLE_READ
28280    }
28281    #[inline]
28282    fn cast(syntax: SyntaxNode) -> Option<Self> {
28283        if Self::can_cast(syntax.kind()) {
28284            Some(Self { syntax })
28285        } else {
28286            None
28287        }
28288    }
28289    #[inline]
28290    fn syntax(&self) -> &SyntaxNode {
28291        &self.syntax
28292    }
28293}
28294impl AstNode for ReplicaIdentity {
28295    #[inline]
28296    fn can_cast(kind: SyntaxKind) -> bool {
28297        kind == SyntaxKind::REPLICA_IDENTITY
28298    }
28299    #[inline]
28300    fn cast(syntax: SyntaxNode) -> Option<Self> {
28301        if Self::can_cast(syntax.kind()) {
28302            Some(Self { syntax })
28303        } else {
28304            None
28305        }
28306    }
28307    #[inline]
28308    fn syntax(&self) -> &SyntaxNode {
28309        &self.syntax
28310    }
28311}
28312impl AstNode for Reset {
28313    #[inline]
28314    fn can_cast(kind: SyntaxKind) -> bool {
28315        kind == SyntaxKind::RESET
28316    }
28317    #[inline]
28318    fn cast(syntax: SyntaxNode) -> Option<Self> {
28319        if Self::can_cast(syntax.kind()) {
28320            Some(Self { syntax })
28321        } else {
28322            None
28323        }
28324    }
28325    #[inline]
28326    fn syntax(&self) -> &SyntaxNode {
28327        &self.syntax
28328    }
28329}
28330impl AstNode for ResetConfigParam {
28331    #[inline]
28332    fn can_cast(kind: SyntaxKind) -> bool {
28333        kind == SyntaxKind::RESET_CONFIG_PARAM
28334    }
28335    #[inline]
28336    fn cast(syntax: SyntaxNode) -> Option<Self> {
28337        if Self::can_cast(syntax.kind()) {
28338            Some(Self { syntax })
28339        } else {
28340            None
28341        }
28342    }
28343    #[inline]
28344    fn syntax(&self) -> &SyntaxNode {
28345        &self.syntax
28346    }
28347}
28348impl AstNode for ResetFuncOption {
28349    #[inline]
28350    fn can_cast(kind: SyntaxKind) -> bool {
28351        kind == SyntaxKind::RESET_FUNC_OPTION
28352    }
28353    #[inline]
28354    fn cast(syntax: SyntaxNode) -> Option<Self> {
28355        if Self::can_cast(syntax.kind()) {
28356            Some(Self { syntax })
28357        } else {
28358            None
28359        }
28360    }
28361    #[inline]
28362    fn syntax(&self) -> &SyntaxNode {
28363        &self.syntax
28364    }
28365}
28366impl AstNode for ResetOptions {
28367    #[inline]
28368    fn can_cast(kind: SyntaxKind) -> bool {
28369        kind == SyntaxKind::RESET_OPTIONS
28370    }
28371    #[inline]
28372    fn cast(syntax: SyntaxNode) -> Option<Self> {
28373        if Self::can_cast(syntax.kind()) {
28374            Some(Self { syntax })
28375        } else {
28376            None
28377        }
28378    }
28379    #[inline]
28380    fn syntax(&self) -> &SyntaxNode {
28381        &self.syntax
28382    }
28383}
28384impl AstNode for ResetSessionAuth {
28385    #[inline]
28386    fn can_cast(kind: SyntaxKind) -> bool {
28387        kind == SyntaxKind::RESET_SESSION_AUTH
28388    }
28389    #[inline]
28390    fn cast(syntax: SyntaxNode) -> Option<Self> {
28391        if Self::can_cast(syntax.kind()) {
28392            Some(Self { syntax })
28393        } else {
28394            None
28395        }
28396    }
28397    #[inline]
28398    fn syntax(&self) -> &SyntaxNode {
28399        &self.syntax
28400    }
28401}
28402impl AstNode for Restart {
28403    #[inline]
28404    fn can_cast(kind: SyntaxKind) -> bool {
28405        kind == SyntaxKind::RESTART
28406    }
28407    #[inline]
28408    fn cast(syntax: SyntaxNode) -> Option<Self> {
28409        if Self::can_cast(syntax.kind()) {
28410            Some(Self { syntax })
28411        } else {
28412            None
28413        }
28414    }
28415    #[inline]
28416    fn syntax(&self) -> &SyntaxNode {
28417        &self.syntax
28418    }
28419}
28420impl AstNode for Restrict {
28421    #[inline]
28422    fn can_cast(kind: SyntaxKind) -> bool {
28423        kind == SyntaxKind::RESTRICT
28424    }
28425    #[inline]
28426    fn cast(syntax: SyntaxNode) -> Option<Self> {
28427        if Self::can_cast(syntax.kind()) {
28428            Some(Self { syntax })
28429        } else {
28430            None
28431        }
28432    }
28433    #[inline]
28434    fn syntax(&self) -> &SyntaxNode {
28435        &self.syntax
28436    }
28437}
28438impl AstNode for RetType {
28439    #[inline]
28440    fn can_cast(kind: SyntaxKind) -> bool {
28441        kind == SyntaxKind::RET_TYPE
28442    }
28443    #[inline]
28444    fn cast(syntax: SyntaxNode) -> Option<Self> {
28445        if Self::can_cast(syntax.kind()) {
28446            Some(Self { syntax })
28447        } else {
28448            None
28449        }
28450    }
28451    #[inline]
28452    fn syntax(&self) -> &SyntaxNode {
28453        &self.syntax
28454    }
28455}
28456impl AstNode for ReturnFuncOption {
28457    #[inline]
28458    fn can_cast(kind: SyntaxKind) -> bool {
28459        kind == SyntaxKind::RETURN_FUNC_OPTION
28460    }
28461    #[inline]
28462    fn cast(syntax: SyntaxNode) -> Option<Self> {
28463        if Self::can_cast(syntax.kind()) {
28464            Some(Self { syntax })
28465        } else {
28466            None
28467        }
28468    }
28469    #[inline]
28470    fn syntax(&self) -> &SyntaxNode {
28471        &self.syntax
28472    }
28473}
28474impl AstNode for ReturningClause {
28475    #[inline]
28476    fn can_cast(kind: SyntaxKind) -> bool {
28477        kind == SyntaxKind::RETURNING_CLAUSE
28478    }
28479    #[inline]
28480    fn cast(syntax: SyntaxNode) -> Option<Self> {
28481        if Self::can_cast(syntax.kind()) {
28482            Some(Self { syntax })
28483        } else {
28484            None
28485        }
28486    }
28487    #[inline]
28488    fn syntax(&self) -> &SyntaxNode {
28489        &self.syntax
28490    }
28491}
28492impl AstNode for ReturningOption {
28493    #[inline]
28494    fn can_cast(kind: SyntaxKind) -> bool {
28495        kind == SyntaxKind::RETURNING_OPTION
28496    }
28497    #[inline]
28498    fn cast(syntax: SyntaxNode) -> Option<Self> {
28499        if Self::can_cast(syntax.kind()) {
28500            Some(Self { syntax })
28501        } else {
28502            None
28503        }
28504    }
28505    #[inline]
28506    fn syntax(&self) -> &SyntaxNode {
28507        &self.syntax
28508    }
28509}
28510impl AstNode for ReturningOptionList {
28511    #[inline]
28512    fn can_cast(kind: SyntaxKind) -> bool {
28513        kind == SyntaxKind::RETURNING_OPTION_LIST
28514    }
28515    #[inline]
28516    fn cast(syntax: SyntaxNode) -> Option<Self> {
28517        if Self::can_cast(syntax.kind()) {
28518            Some(Self { syntax })
28519        } else {
28520            None
28521        }
28522    }
28523    #[inline]
28524    fn syntax(&self) -> &SyntaxNode {
28525        &self.syntax
28526    }
28527}
28528impl AstNode for Revoke {
28529    #[inline]
28530    fn can_cast(kind: SyntaxKind) -> bool {
28531        kind == SyntaxKind::REVOKE
28532    }
28533    #[inline]
28534    fn cast(syntax: SyntaxNode) -> Option<Self> {
28535        if Self::can_cast(syntax.kind()) {
28536            Some(Self { syntax })
28537        } else {
28538            None
28539        }
28540    }
28541    #[inline]
28542    fn syntax(&self) -> &SyntaxNode {
28543        &self.syntax
28544    }
28545}
28546impl AstNode for RevokeCommand {
28547    #[inline]
28548    fn can_cast(kind: SyntaxKind) -> bool {
28549        kind == SyntaxKind::REVOKE_COMMAND
28550    }
28551    #[inline]
28552    fn cast(syntax: SyntaxNode) -> Option<Self> {
28553        if Self::can_cast(syntax.kind()) {
28554            Some(Self { syntax })
28555        } else {
28556            None
28557        }
28558    }
28559    #[inline]
28560    fn syntax(&self) -> &SyntaxNode {
28561        &self.syntax
28562    }
28563}
28564impl AstNode for RevokeCommandList {
28565    #[inline]
28566    fn can_cast(kind: SyntaxKind) -> bool {
28567        kind == SyntaxKind::REVOKE_COMMAND_LIST
28568    }
28569    #[inline]
28570    fn cast(syntax: SyntaxNode) -> Option<Self> {
28571        if Self::can_cast(syntax.kind()) {
28572            Some(Self { syntax })
28573        } else {
28574            None
28575        }
28576    }
28577    #[inline]
28578    fn syntax(&self) -> &SyntaxNode {
28579        &self.syntax
28580    }
28581}
28582impl AstNode for RevokeDefaultPrivileges {
28583    #[inline]
28584    fn can_cast(kind: SyntaxKind) -> bool {
28585        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
28586    }
28587    #[inline]
28588    fn cast(syntax: SyntaxNode) -> Option<Self> {
28589        if Self::can_cast(syntax.kind()) {
28590            Some(Self { syntax })
28591        } else {
28592            None
28593        }
28594    }
28595    #[inline]
28596    fn syntax(&self) -> &SyntaxNode {
28597        &self.syntax
28598    }
28599}
28600impl AstNode for Role {
28601    #[inline]
28602    fn can_cast(kind: SyntaxKind) -> bool {
28603        kind == SyntaxKind::ROLE
28604    }
28605    #[inline]
28606    fn cast(syntax: SyntaxNode) -> Option<Self> {
28607        if Self::can_cast(syntax.kind()) {
28608            Some(Self { syntax })
28609        } else {
28610            None
28611        }
28612    }
28613    #[inline]
28614    fn syntax(&self) -> &SyntaxNode {
28615        &self.syntax
28616    }
28617}
28618impl AstNode for RoleOption {
28619    #[inline]
28620    fn can_cast(kind: SyntaxKind) -> bool {
28621        kind == SyntaxKind::ROLE_OPTION
28622    }
28623    #[inline]
28624    fn cast(syntax: SyntaxNode) -> Option<Self> {
28625        if Self::can_cast(syntax.kind()) {
28626            Some(Self { syntax })
28627        } else {
28628            None
28629        }
28630    }
28631    #[inline]
28632    fn syntax(&self) -> &SyntaxNode {
28633        &self.syntax
28634    }
28635}
28636impl AstNode for RoleOptionList {
28637    #[inline]
28638    fn can_cast(kind: SyntaxKind) -> bool {
28639        kind == SyntaxKind::ROLE_OPTION_LIST
28640    }
28641    #[inline]
28642    fn cast(syntax: SyntaxNode) -> Option<Self> {
28643        if Self::can_cast(syntax.kind()) {
28644            Some(Self { syntax })
28645        } else {
28646            None
28647        }
28648    }
28649    #[inline]
28650    fn syntax(&self) -> &SyntaxNode {
28651        &self.syntax
28652    }
28653}
28654impl AstNode for RoleRef {
28655    #[inline]
28656    fn can_cast(kind: SyntaxKind) -> bool {
28657        kind == SyntaxKind::ROLE_REF
28658    }
28659    #[inline]
28660    fn cast(syntax: SyntaxNode) -> Option<Self> {
28661        if Self::can_cast(syntax.kind()) {
28662            Some(Self { syntax })
28663        } else {
28664            None
28665        }
28666    }
28667    #[inline]
28668    fn syntax(&self) -> &SyntaxNode {
28669        &self.syntax
28670    }
28671}
28672impl AstNode for RoleRefList {
28673    #[inline]
28674    fn can_cast(kind: SyntaxKind) -> bool {
28675        kind == SyntaxKind::ROLE_REF_LIST
28676    }
28677    #[inline]
28678    fn cast(syntax: SyntaxNode) -> Option<Self> {
28679        if Self::can_cast(syntax.kind()) {
28680            Some(Self { syntax })
28681        } else {
28682            None
28683        }
28684    }
28685    #[inline]
28686    fn syntax(&self) -> &SyntaxNode {
28687        &self.syntax
28688    }
28689}
28690impl AstNode for Rollback {
28691    #[inline]
28692    fn can_cast(kind: SyntaxKind) -> bool {
28693        kind == SyntaxKind::ROLLBACK
28694    }
28695    #[inline]
28696    fn cast(syntax: SyntaxNode) -> Option<Self> {
28697        if Self::can_cast(syntax.kind()) {
28698            Some(Self { syntax })
28699        } else {
28700            None
28701        }
28702    }
28703    #[inline]
28704    fn syntax(&self) -> &SyntaxNode {
28705        &self.syntax
28706    }
28707}
28708impl AstNode for Row {
28709    #[inline]
28710    fn can_cast(kind: SyntaxKind) -> bool {
28711        kind == SyntaxKind::ROW
28712    }
28713    #[inline]
28714    fn cast(syntax: SyntaxNode) -> Option<Self> {
28715        if Self::can_cast(syntax.kind()) {
28716            Some(Self { syntax })
28717        } else {
28718            None
28719        }
28720    }
28721    #[inline]
28722    fn syntax(&self) -> &SyntaxNode {
28723        &self.syntax
28724    }
28725}
28726impl AstNode for RowList {
28727    #[inline]
28728    fn can_cast(kind: SyntaxKind) -> bool {
28729        kind == SyntaxKind::ROW_LIST
28730    }
28731    #[inline]
28732    fn cast(syntax: SyntaxNode) -> Option<Self> {
28733        if Self::can_cast(syntax.kind()) {
28734            Some(Self { syntax })
28735        } else {
28736            None
28737        }
28738    }
28739    #[inline]
28740    fn syntax(&self) -> &SyntaxNode {
28741        &self.syntax
28742    }
28743}
28744impl AstNode for RowsFuncOption {
28745    #[inline]
28746    fn can_cast(kind: SyntaxKind) -> bool {
28747        kind == SyntaxKind::ROWS_FUNC_OPTION
28748    }
28749    #[inline]
28750    fn cast(syntax: SyntaxNode) -> Option<Self> {
28751        if Self::can_cast(syntax.kind()) {
28752            Some(Self { syntax })
28753        } else {
28754            None
28755        }
28756    }
28757    #[inline]
28758    fn syntax(&self) -> &SyntaxNode {
28759        &self.syntax
28760    }
28761}
28762impl AstNode for Savepoint {
28763    #[inline]
28764    fn can_cast(kind: SyntaxKind) -> bool {
28765        kind == SyntaxKind::SAVEPOINT
28766    }
28767    #[inline]
28768    fn cast(syntax: SyntaxNode) -> Option<Self> {
28769        if Self::can_cast(syntax.kind()) {
28770            Some(Self { syntax })
28771        } else {
28772            None
28773        }
28774    }
28775    #[inline]
28776    fn syntax(&self) -> &SyntaxNode {
28777        &self.syntax
28778    }
28779}
28780impl AstNode for SecurityFuncOption {
28781    #[inline]
28782    fn can_cast(kind: SyntaxKind) -> bool {
28783        kind == SyntaxKind::SECURITY_FUNC_OPTION
28784    }
28785    #[inline]
28786    fn cast(syntax: SyntaxNode) -> Option<Self> {
28787        if Self::can_cast(syntax.kind()) {
28788            Some(Self { syntax })
28789        } else {
28790            None
28791        }
28792    }
28793    #[inline]
28794    fn syntax(&self) -> &SyntaxNode {
28795        &self.syntax
28796    }
28797}
28798impl AstNode for SecurityLabel {
28799    #[inline]
28800    fn can_cast(kind: SyntaxKind) -> bool {
28801        kind == SyntaxKind::SECURITY_LABEL
28802    }
28803    #[inline]
28804    fn cast(syntax: SyntaxNode) -> Option<Self> {
28805        if Self::can_cast(syntax.kind()) {
28806            Some(Self { syntax })
28807        } else {
28808            None
28809        }
28810    }
28811    #[inline]
28812    fn syntax(&self) -> &SyntaxNode {
28813        &self.syntax
28814    }
28815}
28816impl AstNode for Select {
28817    #[inline]
28818    fn can_cast(kind: SyntaxKind) -> bool {
28819        kind == SyntaxKind::SELECT
28820    }
28821    #[inline]
28822    fn cast(syntax: SyntaxNode) -> Option<Self> {
28823        if Self::can_cast(syntax.kind()) {
28824            Some(Self { syntax })
28825        } else {
28826            None
28827        }
28828    }
28829    #[inline]
28830    fn syntax(&self) -> &SyntaxNode {
28831        &self.syntax
28832    }
28833}
28834impl AstNode for SelectClause {
28835    #[inline]
28836    fn can_cast(kind: SyntaxKind) -> bool {
28837        kind == SyntaxKind::SELECT_CLAUSE
28838    }
28839    #[inline]
28840    fn cast(syntax: SyntaxNode) -> Option<Self> {
28841        if Self::can_cast(syntax.kind()) {
28842            Some(Self { syntax })
28843        } else {
28844            None
28845        }
28846    }
28847    #[inline]
28848    fn syntax(&self) -> &SyntaxNode {
28849        &self.syntax
28850    }
28851}
28852impl AstNode for SelectInto {
28853    #[inline]
28854    fn can_cast(kind: SyntaxKind) -> bool {
28855        kind == SyntaxKind::SELECT_INTO
28856    }
28857    #[inline]
28858    fn cast(syntax: SyntaxNode) -> Option<Self> {
28859        if Self::can_cast(syntax.kind()) {
28860            Some(Self { syntax })
28861        } else {
28862            None
28863        }
28864    }
28865    #[inline]
28866    fn syntax(&self) -> &SyntaxNode {
28867        &self.syntax
28868    }
28869}
28870impl AstNode for SequenceOption {
28871    #[inline]
28872    fn can_cast(kind: SyntaxKind) -> bool {
28873        kind == SyntaxKind::SEQUENCE_OPTION
28874    }
28875    #[inline]
28876    fn cast(syntax: SyntaxNode) -> Option<Self> {
28877        if Self::can_cast(syntax.kind()) {
28878            Some(Self { syntax })
28879        } else {
28880            None
28881        }
28882    }
28883    #[inline]
28884    fn syntax(&self) -> &SyntaxNode {
28885        &self.syntax
28886    }
28887}
28888impl AstNode for SequenceOptionList {
28889    #[inline]
28890    fn can_cast(kind: SyntaxKind) -> bool {
28891        kind == SyntaxKind::SEQUENCE_OPTION_LIST
28892    }
28893    #[inline]
28894    fn cast(syntax: SyntaxNode) -> Option<Self> {
28895        if Self::can_cast(syntax.kind()) {
28896            Some(Self { syntax })
28897        } else {
28898            None
28899        }
28900    }
28901    #[inline]
28902    fn syntax(&self) -> &SyntaxNode {
28903        &self.syntax
28904    }
28905}
28906impl AstNode for Serializable {
28907    #[inline]
28908    fn can_cast(kind: SyntaxKind) -> bool {
28909        kind == SyntaxKind::SERIALIZABLE
28910    }
28911    #[inline]
28912    fn cast(syntax: SyntaxNode) -> Option<Self> {
28913        if Self::can_cast(syntax.kind()) {
28914            Some(Self { syntax })
28915        } else {
28916            None
28917        }
28918    }
28919    #[inline]
28920    fn syntax(&self) -> &SyntaxNode {
28921        &self.syntax
28922    }
28923}
28924impl AstNode for ServerName {
28925    #[inline]
28926    fn can_cast(kind: SyntaxKind) -> bool {
28927        kind == SyntaxKind::SERVER_NAME
28928    }
28929    #[inline]
28930    fn cast(syntax: SyntaxNode) -> Option<Self> {
28931        if Self::can_cast(syntax.kind()) {
28932            Some(Self { syntax })
28933        } else {
28934            None
28935        }
28936    }
28937    #[inline]
28938    fn syntax(&self) -> &SyntaxNode {
28939        &self.syntax
28940    }
28941}
28942impl AstNode for Set {
28943    #[inline]
28944    fn can_cast(kind: SyntaxKind) -> bool {
28945        kind == SyntaxKind::SET
28946    }
28947    #[inline]
28948    fn cast(syntax: SyntaxNode) -> Option<Self> {
28949        if Self::can_cast(syntax.kind()) {
28950            Some(Self { syntax })
28951        } else {
28952            None
28953        }
28954    }
28955    #[inline]
28956    fn syntax(&self) -> &SyntaxNode {
28957        &self.syntax
28958    }
28959}
28960impl AstNode for SetAccessMethod {
28961    #[inline]
28962    fn can_cast(kind: SyntaxKind) -> bool {
28963        kind == SyntaxKind::SET_ACCESS_METHOD
28964    }
28965    #[inline]
28966    fn cast(syntax: SyntaxNode) -> Option<Self> {
28967        if Self::can_cast(syntax.kind()) {
28968            Some(Self { syntax })
28969        } else {
28970            None
28971        }
28972    }
28973    #[inline]
28974    fn syntax(&self) -> &SyntaxNode {
28975        &self.syntax
28976    }
28977}
28978impl AstNode for SetClause {
28979    #[inline]
28980    fn can_cast(kind: SyntaxKind) -> bool {
28981        kind == SyntaxKind::SET_CLAUSE
28982    }
28983    #[inline]
28984    fn cast(syntax: SyntaxNode) -> Option<Self> {
28985        if Self::can_cast(syntax.kind()) {
28986            Some(Self { syntax })
28987        } else {
28988            None
28989        }
28990    }
28991    #[inline]
28992    fn syntax(&self) -> &SyntaxNode {
28993        &self.syntax
28994    }
28995}
28996impl AstNode for SetColumnList {
28997    #[inline]
28998    fn can_cast(kind: SyntaxKind) -> bool {
28999        kind == SyntaxKind::SET_COLUMN_LIST
29000    }
29001    #[inline]
29002    fn cast(syntax: SyntaxNode) -> Option<Self> {
29003        if Self::can_cast(syntax.kind()) {
29004            Some(Self { syntax })
29005        } else {
29006            None
29007        }
29008    }
29009    #[inline]
29010    fn syntax(&self) -> &SyntaxNode {
29011        &self.syntax
29012    }
29013}
29014impl AstNode for SetCompression {
29015    #[inline]
29016    fn can_cast(kind: SyntaxKind) -> bool {
29017        kind == SyntaxKind::SET_COMPRESSION
29018    }
29019    #[inline]
29020    fn cast(syntax: SyntaxNode) -> Option<Self> {
29021        if Self::can_cast(syntax.kind()) {
29022            Some(Self { syntax })
29023        } else {
29024            None
29025        }
29026    }
29027    #[inline]
29028    fn syntax(&self) -> &SyntaxNode {
29029        &self.syntax
29030    }
29031}
29032impl AstNode for SetConfigParam {
29033    #[inline]
29034    fn can_cast(kind: SyntaxKind) -> bool {
29035        kind == SyntaxKind::SET_CONFIG_PARAM
29036    }
29037    #[inline]
29038    fn cast(syntax: SyntaxNode) -> Option<Self> {
29039        if Self::can_cast(syntax.kind()) {
29040            Some(Self { syntax })
29041        } else {
29042            None
29043        }
29044    }
29045    #[inline]
29046    fn syntax(&self) -> &SyntaxNode {
29047        &self.syntax
29048    }
29049}
29050impl AstNode for SetConstraints {
29051    #[inline]
29052    fn can_cast(kind: SyntaxKind) -> bool {
29053        kind == SyntaxKind::SET_CONSTRAINTS
29054    }
29055    #[inline]
29056    fn cast(syntax: SyntaxNode) -> Option<Self> {
29057        if Self::can_cast(syntax.kind()) {
29058            Some(Self { syntax })
29059        } else {
29060            None
29061        }
29062    }
29063    #[inline]
29064    fn syntax(&self) -> &SyntaxNode {
29065        &self.syntax
29066    }
29067}
29068impl AstNode for SetDefault {
29069    #[inline]
29070    fn can_cast(kind: SyntaxKind) -> bool {
29071        kind == SyntaxKind::SET_DEFAULT
29072    }
29073    #[inline]
29074    fn cast(syntax: SyntaxNode) -> Option<Self> {
29075        if Self::can_cast(syntax.kind()) {
29076            Some(Self { syntax })
29077        } else {
29078            None
29079        }
29080    }
29081    #[inline]
29082    fn syntax(&self) -> &SyntaxNode {
29083        &self.syntax
29084    }
29085}
29086impl AstNode for SetDefaultColumns {
29087    #[inline]
29088    fn can_cast(kind: SyntaxKind) -> bool {
29089        kind == SyntaxKind::SET_DEFAULT_COLUMNS
29090    }
29091    #[inline]
29092    fn cast(syntax: SyntaxNode) -> Option<Self> {
29093        if Self::can_cast(syntax.kind()) {
29094            Some(Self { syntax })
29095        } else {
29096            None
29097        }
29098    }
29099    #[inline]
29100    fn syntax(&self) -> &SyntaxNode {
29101        &self.syntax
29102    }
29103}
29104impl AstNode for SetExpr {
29105    #[inline]
29106    fn can_cast(kind: SyntaxKind) -> bool {
29107        kind == SyntaxKind::SET_EXPR
29108    }
29109    #[inline]
29110    fn cast(syntax: SyntaxNode) -> Option<Self> {
29111        if Self::can_cast(syntax.kind()) {
29112            Some(Self { syntax })
29113        } else {
29114            None
29115        }
29116    }
29117    #[inline]
29118    fn syntax(&self) -> &SyntaxNode {
29119        &self.syntax
29120    }
29121}
29122impl AstNode for SetExprList {
29123    #[inline]
29124    fn can_cast(kind: SyntaxKind) -> bool {
29125        kind == SyntaxKind::SET_EXPR_LIST
29126    }
29127    #[inline]
29128    fn cast(syntax: SyntaxNode) -> Option<Self> {
29129        if Self::can_cast(syntax.kind()) {
29130            Some(Self { syntax })
29131        } else {
29132            None
29133        }
29134    }
29135    #[inline]
29136    fn syntax(&self) -> &SyntaxNode {
29137        &self.syntax
29138    }
29139}
29140impl AstNode for SetExpression {
29141    #[inline]
29142    fn can_cast(kind: SyntaxKind) -> bool {
29143        kind == SyntaxKind::SET_EXPRESSION
29144    }
29145    #[inline]
29146    fn cast(syntax: SyntaxNode) -> Option<Self> {
29147        if Self::can_cast(syntax.kind()) {
29148            Some(Self { syntax })
29149        } else {
29150            None
29151        }
29152    }
29153    #[inline]
29154    fn syntax(&self) -> &SyntaxNode {
29155        &self.syntax
29156    }
29157}
29158impl AstNode for SetFuncOption {
29159    #[inline]
29160    fn can_cast(kind: SyntaxKind) -> bool {
29161        kind == SyntaxKind::SET_FUNC_OPTION
29162    }
29163    #[inline]
29164    fn cast(syntax: SyntaxNode) -> Option<Self> {
29165        if Self::can_cast(syntax.kind()) {
29166            Some(Self { syntax })
29167        } else {
29168            None
29169        }
29170    }
29171    #[inline]
29172    fn syntax(&self) -> &SyntaxNode {
29173        &self.syntax
29174    }
29175}
29176impl AstNode for SetGenerated {
29177    #[inline]
29178    fn can_cast(kind: SyntaxKind) -> bool {
29179        kind == SyntaxKind::SET_GENERATED
29180    }
29181    #[inline]
29182    fn cast(syntax: SyntaxNode) -> Option<Self> {
29183        if Self::can_cast(syntax.kind()) {
29184            Some(Self { syntax })
29185        } else {
29186            None
29187        }
29188    }
29189    #[inline]
29190    fn syntax(&self) -> &SyntaxNode {
29191        &self.syntax
29192    }
29193}
29194impl AstNode for SetGeneratedOptions {
29195    #[inline]
29196    fn can_cast(kind: SyntaxKind) -> bool {
29197        kind == SyntaxKind::SET_GENERATED_OPTIONS
29198    }
29199    #[inline]
29200    fn cast(syntax: SyntaxNode) -> Option<Self> {
29201        if Self::can_cast(syntax.kind()) {
29202            Some(Self { syntax })
29203        } else {
29204            None
29205        }
29206    }
29207    #[inline]
29208    fn syntax(&self) -> &SyntaxNode {
29209        &self.syntax
29210    }
29211}
29212impl AstNode for SetLogged {
29213    #[inline]
29214    fn can_cast(kind: SyntaxKind) -> bool {
29215        kind == SyntaxKind::SET_LOGGED
29216    }
29217    #[inline]
29218    fn cast(syntax: SyntaxNode) -> Option<Self> {
29219        if Self::can_cast(syntax.kind()) {
29220            Some(Self { syntax })
29221        } else {
29222            None
29223        }
29224    }
29225    #[inline]
29226    fn syntax(&self) -> &SyntaxNode {
29227        &self.syntax
29228    }
29229}
29230impl AstNode for SetMultipleColumns {
29231    #[inline]
29232    fn can_cast(kind: SyntaxKind) -> bool {
29233        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
29234    }
29235    #[inline]
29236    fn cast(syntax: SyntaxNode) -> Option<Self> {
29237        if Self::can_cast(syntax.kind()) {
29238            Some(Self { syntax })
29239        } else {
29240            None
29241        }
29242    }
29243    #[inline]
29244    fn syntax(&self) -> &SyntaxNode {
29245        &self.syntax
29246    }
29247}
29248impl AstNode for SetNotNull {
29249    #[inline]
29250    fn can_cast(kind: SyntaxKind) -> bool {
29251        kind == SyntaxKind::SET_NOT_NULL
29252    }
29253    #[inline]
29254    fn cast(syntax: SyntaxNode) -> Option<Self> {
29255        if Self::can_cast(syntax.kind()) {
29256            Some(Self { syntax })
29257        } else {
29258            None
29259        }
29260    }
29261    #[inline]
29262    fn syntax(&self) -> &SyntaxNode {
29263        &self.syntax
29264    }
29265}
29266impl AstNode for SetNullColumns {
29267    #[inline]
29268    fn can_cast(kind: SyntaxKind) -> bool {
29269        kind == SyntaxKind::SET_NULL_COLUMNS
29270    }
29271    #[inline]
29272    fn cast(syntax: SyntaxNode) -> Option<Self> {
29273        if Self::can_cast(syntax.kind()) {
29274            Some(Self { syntax })
29275        } else {
29276            None
29277        }
29278    }
29279    #[inline]
29280    fn syntax(&self) -> &SyntaxNode {
29281        &self.syntax
29282    }
29283}
29284impl AstNode for SetOptions {
29285    #[inline]
29286    fn can_cast(kind: SyntaxKind) -> bool {
29287        kind == SyntaxKind::SET_OPTIONS
29288    }
29289    #[inline]
29290    fn cast(syntax: SyntaxNode) -> Option<Self> {
29291        if Self::can_cast(syntax.kind()) {
29292            Some(Self { syntax })
29293        } else {
29294            None
29295        }
29296    }
29297    #[inline]
29298    fn syntax(&self) -> &SyntaxNode {
29299        &self.syntax
29300    }
29301}
29302impl AstNode for SetOptionsList {
29303    #[inline]
29304    fn can_cast(kind: SyntaxKind) -> bool {
29305        kind == SyntaxKind::SET_OPTIONS_LIST
29306    }
29307    #[inline]
29308    fn cast(syntax: SyntaxNode) -> Option<Self> {
29309        if Self::can_cast(syntax.kind()) {
29310            Some(Self { syntax })
29311        } else {
29312            None
29313        }
29314    }
29315    #[inline]
29316    fn syntax(&self) -> &SyntaxNode {
29317        &self.syntax
29318    }
29319}
29320impl AstNode for SetRole {
29321    #[inline]
29322    fn can_cast(kind: SyntaxKind) -> bool {
29323        kind == SyntaxKind::SET_ROLE
29324    }
29325    #[inline]
29326    fn cast(syntax: SyntaxNode) -> Option<Self> {
29327        if Self::can_cast(syntax.kind()) {
29328            Some(Self { syntax })
29329        } else {
29330            None
29331        }
29332    }
29333    #[inline]
29334    fn syntax(&self) -> &SyntaxNode {
29335        &self.syntax
29336    }
29337}
29338impl AstNode for SetSchema {
29339    #[inline]
29340    fn can_cast(kind: SyntaxKind) -> bool {
29341        kind == SyntaxKind::SET_SCHEMA
29342    }
29343    #[inline]
29344    fn cast(syntax: SyntaxNode) -> Option<Self> {
29345        if Self::can_cast(syntax.kind()) {
29346            Some(Self { syntax })
29347        } else {
29348            None
29349        }
29350    }
29351    #[inline]
29352    fn syntax(&self) -> &SyntaxNode {
29353        &self.syntax
29354    }
29355}
29356impl AstNode for SetSequenceOption {
29357    #[inline]
29358    fn can_cast(kind: SyntaxKind) -> bool {
29359        kind == SyntaxKind::SET_SEQUENCE_OPTION
29360    }
29361    #[inline]
29362    fn cast(syntax: SyntaxNode) -> Option<Self> {
29363        if Self::can_cast(syntax.kind()) {
29364            Some(Self { syntax })
29365        } else {
29366            None
29367        }
29368    }
29369    #[inline]
29370    fn syntax(&self) -> &SyntaxNode {
29371        &self.syntax
29372    }
29373}
29374impl AstNode for SetSessionAuth {
29375    #[inline]
29376    fn can_cast(kind: SyntaxKind) -> bool {
29377        kind == SyntaxKind::SET_SESSION_AUTH
29378    }
29379    #[inline]
29380    fn cast(syntax: SyntaxNode) -> Option<Self> {
29381        if Self::can_cast(syntax.kind()) {
29382            Some(Self { syntax })
29383        } else {
29384            None
29385        }
29386    }
29387    #[inline]
29388    fn syntax(&self) -> &SyntaxNode {
29389        &self.syntax
29390    }
29391}
29392impl AstNode for SetSingleColumn {
29393    #[inline]
29394    fn can_cast(kind: SyntaxKind) -> bool {
29395        kind == SyntaxKind::SET_SINGLE_COLUMN
29396    }
29397    #[inline]
29398    fn cast(syntax: SyntaxNode) -> Option<Self> {
29399        if Self::can_cast(syntax.kind()) {
29400            Some(Self { syntax })
29401        } else {
29402            None
29403        }
29404    }
29405    #[inline]
29406    fn syntax(&self) -> &SyntaxNode {
29407        &self.syntax
29408    }
29409}
29410impl AstNode for SetStatistics {
29411    #[inline]
29412    fn can_cast(kind: SyntaxKind) -> bool {
29413        kind == SyntaxKind::SET_STATISTICS
29414    }
29415    #[inline]
29416    fn cast(syntax: SyntaxNode) -> Option<Self> {
29417        if Self::can_cast(syntax.kind()) {
29418            Some(Self { syntax })
29419        } else {
29420            None
29421        }
29422    }
29423    #[inline]
29424    fn syntax(&self) -> &SyntaxNode {
29425        &self.syntax
29426    }
29427}
29428impl AstNode for SetStorage {
29429    #[inline]
29430    fn can_cast(kind: SyntaxKind) -> bool {
29431        kind == SyntaxKind::SET_STORAGE
29432    }
29433    #[inline]
29434    fn cast(syntax: SyntaxNode) -> Option<Self> {
29435        if Self::can_cast(syntax.kind()) {
29436            Some(Self { syntax })
29437        } else {
29438            None
29439        }
29440    }
29441    #[inline]
29442    fn syntax(&self) -> &SyntaxNode {
29443        &self.syntax
29444    }
29445}
29446impl AstNode for SetTablespace {
29447    #[inline]
29448    fn can_cast(kind: SyntaxKind) -> bool {
29449        kind == SyntaxKind::SET_TABLESPACE
29450    }
29451    #[inline]
29452    fn cast(syntax: SyntaxNode) -> Option<Self> {
29453        if Self::can_cast(syntax.kind()) {
29454            Some(Self { syntax })
29455        } else {
29456            None
29457        }
29458    }
29459    #[inline]
29460    fn syntax(&self) -> &SyntaxNode {
29461        &self.syntax
29462    }
29463}
29464impl AstNode for SetTransaction {
29465    #[inline]
29466    fn can_cast(kind: SyntaxKind) -> bool {
29467        kind == SyntaxKind::SET_TRANSACTION
29468    }
29469    #[inline]
29470    fn cast(syntax: SyntaxNode) -> Option<Self> {
29471        if Self::can_cast(syntax.kind()) {
29472            Some(Self { syntax })
29473        } else {
29474            None
29475        }
29476    }
29477    #[inline]
29478    fn syntax(&self) -> &SyntaxNode {
29479        &self.syntax
29480    }
29481}
29482impl AstNode for SetType {
29483    #[inline]
29484    fn can_cast(kind: SyntaxKind) -> bool {
29485        kind == SyntaxKind::SET_TYPE
29486    }
29487    #[inline]
29488    fn cast(syntax: SyntaxNode) -> Option<Self> {
29489        if Self::can_cast(syntax.kind()) {
29490            Some(Self { syntax })
29491        } else {
29492            None
29493        }
29494    }
29495    #[inline]
29496    fn syntax(&self) -> &SyntaxNode {
29497        &self.syntax
29498    }
29499}
29500impl AstNode for SetUnlogged {
29501    #[inline]
29502    fn can_cast(kind: SyntaxKind) -> bool {
29503        kind == SyntaxKind::SET_UNLOGGED
29504    }
29505    #[inline]
29506    fn cast(syntax: SyntaxNode) -> Option<Self> {
29507        if Self::can_cast(syntax.kind()) {
29508            Some(Self { syntax })
29509        } else {
29510            None
29511        }
29512    }
29513    #[inline]
29514    fn syntax(&self) -> &SyntaxNode {
29515        &self.syntax
29516    }
29517}
29518impl AstNode for SetWithoutCluster {
29519    #[inline]
29520    fn can_cast(kind: SyntaxKind) -> bool {
29521        kind == SyntaxKind::SET_WITHOUT_CLUSTER
29522    }
29523    #[inline]
29524    fn cast(syntax: SyntaxNode) -> Option<Self> {
29525        if Self::can_cast(syntax.kind()) {
29526            Some(Self { syntax })
29527        } else {
29528            None
29529        }
29530    }
29531    #[inline]
29532    fn syntax(&self) -> &SyntaxNode {
29533        &self.syntax
29534    }
29535}
29536impl AstNode for SetWithoutOids {
29537    #[inline]
29538    fn can_cast(kind: SyntaxKind) -> bool {
29539        kind == SyntaxKind::SET_WITHOUT_OIDS
29540    }
29541    #[inline]
29542    fn cast(syntax: SyntaxNode) -> Option<Self> {
29543        if Self::can_cast(syntax.kind()) {
29544            Some(Self { syntax })
29545        } else {
29546            None
29547        }
29548    }
29549    #[inline]
29550    fn syntax(&self) -> &SyntaxNode {
29551        &self.syntax
29552    }
29553}
29554impl AstNode for Show {
29555    #[inline]
29556    fn can_cast(kind: SyntaxKind) -> bool {
29557        kind == SyntaxKind::SHOW
29558    }
29559    #[inline]
29560    fn cast(syntax: SyntaxNode) -> Option<Self> {
29561        if Self::can_cast(syntax.kind()) {
29562            Some(Self { syntax })
29563        } else {
29564            None
29565        }
29566    }
29567    #[inline]
29568    fn syntax(&self) -> &SyntaxNode {
29569        &self.syntax
29570    }
29571}
29572impl AstNode for SimilarTo {
29573    #[inline]
29574    fn can_cast(kind: SyntaxKind) -> bool {
29575        kind == SyntaxKind::SIMILAR_TO
29576    }
29577    #[inline]
29578    fn cast(syntax: SyntaxNode) -> Option<Self> {
29579        if Self::can_cast(syntax.kind()) {
29580            Some(Self { syntax })
29581        } else {
29582            None
29583        }
29584    }
29585    #[inline]
29586    fn syntax(&self) -> &SyntaxNode {
29587        &self.syntax
29588    }
29589}
29590impl AstNode for SliceExpr {
29591    #[inline]
29592    fn can_cast(kind: SyntaxKind) -> bool {
29593        kind == SyntaxKind::SLICE_EXPR
29594    }
29595    #[inline]
29596    fn cast(syntax: SyntaxNode) -> Option<Self> {
29597        if Self::can_cast(syntax.kind()) {
29598            Some(Self { syntax })
29599        } else {
29600            None
29601        }
29602    }
29603    #[inline]
29604    fn syntax(&self) -> &SyntaxNode {
29605        &self.syntax
29606    }
29607}
29608impl AstNode for SomeFn {
29609    #[inline]
29610    fn can_cast(kind: SyntaxKind) -> bool {
29611        kind == SyntaxKind::SOME_FN
29612    }
29613    #[inline]
29614    fn cast(syntax: SyntaxNode) -> Option<Self> {
29615        if Self::can_cast(syntax.kind()) {
29616            Some(Self { syntax })
29617        } else {
29618            None
29619        }
29620    }
29621    #[inline]
29622    fn syntax(&self) -> &SyntaxNode {
29623        &self.syntax
29624    }
29625}
29626impl AstNode for SortAsc {
29627    #[inline]
29628    fn can_cast(kind: SyntaxKind) -> bool {
29629        kind == SyntaxKind::SORT_ASC
29630    }
29631    #[inline]
29632    fn cast(syntax: SyntaxNode) -> Option<Self> {
29633        if Self::can_cast(syntax.kind()) {
29634            Some(Self { syntax })
29635        } else {
29636            None
29637        }
29638    }
29639    #[inline]
29640    fn syntax(&self) -> &SyntaxNode {
29641        &self.syntax
29642    }
29643}
29644impl AstNode for SortBy {
29645    #[inline]
29646    fn can_cast(kind: SyntaxKind) -> bool {
29647        kind == SyntaxKind::SORT_BY
29648    }
29649    #[inline]
29650    fn cast(syntax: SyntaxNode) -> Option<Self> {
29651        if Self::can_cast(syntax.kind()) {
29652            Some(Self { syntax })
29653        } else {
29654            None
29655        }
29656    }
29657    #[inline]
29658    fn syntax(&self) -> &SyntaxNode {
29659        &self.syntax
29660    }
29661}
29662impl AstNode for SortByList {
29663    #[inline]
29664    fn can_cast(kind: SyntaxKind) -> bool {
29665        kind == SyntaxKind::SORT_BY_LIST
29666    }
29667    #[inline]
29668    fn cast(syntax: SyntaxNode) -> Option<Self> {
29669        if Self::can_cast(syntax.kind()) {
29670            Some(Self { syntax })
29671        } else {
29672            None
29673        }
29674    }
29675    #[inline]
29676    fn syntax(&self) -> &SyntaxNode {
29677        &self.syntax
29678    }
29679}
29680impl AstNode for SortDesc {
29681    #[inline]
29682    fn can_cast(kind: SyntaxKind) -> bool {
29683        kind == SyntaxKind::SORT_DESC
29684    }
29685    #[inline]
29686    fn cast(syntax: SyntaxNode) -> Option<Self> {
29687        if Self::can_cast(syntax.kind()) {
29688            Some(Self { syntax })
29689        } else {
29690            None
29691        }
29692    }
29693    #[inline]
29694    fn syntax(&self) -> &SyntaxNode {
29695        &self.syntax
29696    }
29697}
29698impl AstNode for SortUsing {
29699    #[inline]
29700    fn can_cast(kind: SyntaxKind) -> bool {
29701        kind == SyntaxKind::SORT_USING
29702    }
29703    #[inline]
29704    fn cast(syntax: SyntaxNode) -> Option<Self> {
29705        if Self::can_cast(syntax.kind()) {
29706            Some(Self { syntax })
29707        } else {
29708            None
29709        }
29710    }
29711    #[inline]
29712    fn syntax(&self) -> &SyntaxNode {
29713        &self.syntax
29714    }
29715}
29716impl AstNode for SourceFile {
29717    #[inline]
29718    fn can_cast(kind: SyntaxKind) -> bool {
29719        kind == SyntaxKind::SOURCE_FILE
29720    }
29721    #[inline]
29722    fn cast(syntax: SyntaxNode) -> Option<Self> {
29723        if Self::can_cast(syntax.kind()) {
29724            Some(Self { syntax })
29725        } else {
29726            None
29727        }
29728    }
29729    #[inline]
29730    fn syntax(&self) -> &SyntaxNode {
29731        &self.syntax
29732    }
29733}
29734impl AstNode for SourceVertexTable {
29735    #[inline]
29736    fn can_cast(kind: SyntaxKind) -> bool {
29737        kind == SyntaxKind::SOURCE_VERTEX_TABLE
29738    }
29739    #[inline]
29740    fn cast(syntax: SyntaxNode) -> Option<Self> {
29741        if Self::can_cast(syntax.kind()) {
29742            Some(Self { syntax })
29743        } else {
29744            None
29745        }
29746    }
29747    #[inline]
29748    fn syntax(&self) -> &SyntaxNode {
29749        &self.syntax
29750    }
29751}
29752impl AstNode for SplitPartition {
29753    #[inline]
29754    fn can_cast(kind: SyntaxKind) -> bool {
29755        kind == SyntaxKind::SPLIT_PARTITION
29756    }
29757    #[inline]
29758    fn cast(syntax: SyntaxNode) -> Option<Self> {
29759        if Self::can_cast(syntax.kind()) {
29760            Some(Self { syntax })
29761        } else {
29762            None
29763        }
29764    }
29765    #[inline]
29766    fn syntax(&self) -> &SyntaxNode {
29767        &self.syntax
29768    }
29769}
29770impl AstNode for Storage {
29771    #[inline]
29772    fn can_cast(kind: SyntaxKind) -> bool {
29773        kind == SyntaxKind::STORAGE
29774    }
29775    #[inline]
29776    fn cast(syntax: SyntaxNode) -> Option<Self> {
29777        if Self::can_cast(syntax.kind()) {
29778            Some(Self { syntax })
29779        } else {
29780            None
29781        }
29782    }
29783    #[inline]
29784    fn syntax(&self) -> &SyntaxNode {
29785        &self.syntax
29786    }
29787}
29788impl AstNode for StrictFuncOption {
29789    #[inline]
29790    fn can_cast(kind: SyntaxKind) -> bool {
29791        kind == SyntaxKind::STRICT_FUNC_OPTION
29792    }
29793    #[inline]
29794    fn cast(syntax: SyntaxNode) -> Option<Self> {
29795        if Self::can_cast(syntax.kind()) {
29796            Some(Self { syntax })
29797        } else {
29798            None
29799        }
29800    }
29801    #[inline]
29802    fn syntax(&self) -> &SyntaxNode {
29803        &self.syntax
29804    }
29805}
29806impl AstNode for SubstringFn {
29807    #[inline]
29808    fn can_cast(kind: SyntaxKind) -> bool {
29809        kind == SyntaxKind::SUBSTRING_FN
29810    }
29811    #[inline]
29812    fn cast(syntax: SyntaxNode) -> Option<Self> {
29813        if Self::can_cast(syntax.kind()) {
29814            Some(Self { syntax })
29815        } else {
29816            None
29817        }
29818    }
29819    #[inline]
29820    fn syntax(&self) -> &SyntaxNode {
29821        &self.syntax
29822    }
29823}
29824impl AstNode for SupportFuncOption {
29825    #[inline]
29826    fn can_cast(kind: SyntaxKind) -> bool {
29827        kind == SyntaxKind::SUPPORT_FUNC_OPTION
29828    }
29829    #[inline]
29830    fn cast(syntax: SyntaxNode) -> Option<Self> {
29831        if Self::can_cast(syntax.kind()) {
29832            Some(Self { syntax })
29833        } else {
29834            None
29835        }
29836    }
29837    #[inline]
29838    fn syntax(&self) -> &SyntaxNode {
29839        &self.syntax
29840    }
29841}
29842impl AstNode for Table {
29843    #[inline]
29844    fn can_cast(kind: SyntaxKind) -> bool {
29845        kind == SyntaxKind::TABLE
29846    }
29847    #[inline]
29848    fn cast(syntax: SyntaxNode) -> Option<Self> {
29849        if Self::can_cast(syntax.kind()) {
29850            Some(Self { syntax })
29851        } else {
29852            None
29853        }
29854    }
29855    #[inline]
29856    fn syntax(&self) -> &SyntaxNode {
29857        &self.syntax
29858    }
29859}
29860impl AstNode for TableAndColumns {
29861    #[inline]
29862    fn can_cast(kind: SyntaxKind) -> bool {
29863        kind == SyntaxKind::TABLE_AND_COLUMNS
29864    }
29865    #[inline]
29866    fn cast(syntax: SyntaxNode) -> Option<Self> {
29867        if Self::can_cast(syntax.kind()) {
29868            Some(Self { syntax })
29869        } else {
29870            None
29871        }
29872    }
29873    #[inline]
29874    fn syntax(&self) -> &SyntaxNode {
29875        &self.syntax
29876    }
29877}
29878impl AstNode for TableAndColumnsList {
29879    #[inline]
29880    fn can_cast(kind: SyntaxKind) -> bool {
29881        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
29882    }
29883    #[inline]
29884    fn cast(syntax: SyntaxNode) -> Option<Self> {
29885        if Self::can_cast(syntax.kind()) {
29886            Some(Self { syntax })
29887        } else {
29888            None
29889        }
29890    }
29891    #[inline]
29892    fn syntax(&self) -> &SyntaxNode {
29893        &self.syntax
29894    }
29895}
29896impl AstNode for TableArgList {
29897    #[inline]
29898    fn can_cast(kind: SyntaxKind) -> bool {
29899        kind == SyntaxKind::TABLE_ARG_LIST
29900    }
29901    #[inline]
29902    fn cast(syntax: SyntaxNode) -> Option<Self> {
29903        if Self::can_cast(syntax.kind()) {
29904            Some(Self { syntax })
29905        } else {
29906            None
29907        }
29908    }
29909    #[inline]
29910    fn syntax(&self) -> &SyntaxNode {
29911        &self.syntax
29912    }
29913}
29914impl AstNode for TableList {
29915    #[inline]
29916    fn can_cast(kind: SyntaxKind) -> bool {
29917        kind == SyntaxKind::TABLE_LIST
29918    }
29919    #[inline]
29920    fn cast(syntax: SyntaxNode) -> Option<Self> {
29921        if Self::can_cast(syntax.kind()) {
29922            Some(Self { syntax })
29923        } else {
29924            None
29925        }
29926    }
29927    #[inline]
29928    fn syntax(&self) -> &SyntaxNode {
29929        &self.syntax
29930    }
29931}
29932impl AstNode for TablesampleClause {
29933    #[inline]
29934    fn can_cast(kind: SyntaxKind) -> bool {
29935        kind == SyntaxKind::TABLESAMPLE_CLAUSE
29936    }
29937    #[inline]
29938    fn cast(syntax: SyntaxNode) -> Option<Self> {
29939        if Self::can_cast(syntax.kind()) {
29940            Some(Self { syntax })
29941        } else {
29942            None
29943        }
29944    }
29945    #[inline]
29946    fn syntax(&self) -> &SyntaxNode {
29947        &self.syntax
29948    }
29949}
29950impl AstNode for Tablespace {
29951    #[inline]
29952    fn can_cast(kind: SyntaxKind) -> bool {
29953        kind == SyntaxKind::TABLESPACE
29954    }
29955    #[inline]
29956    fn cast(syntax: SyntaxNode) -> Option<Self> {
29957        if Self::can_cast(syntax.kind()) {
29958            Some(Self { syntax })
29959        } else {
29960            None
29961        }
29962    }
29963    #[inline]
29964    fn syntax(&self) -> &SyntaxNode {
29965        &self.syntax
29966    }
29967}
29968impl AstNode for Target {
29969    #[inline]
29970    fn can_cast(kind: SyntaxKind) -> bool {
29971        kind == SyntaxKind::TARGET
29972    }
29973    #[inline]
29974    fn cast(syntax: SyntaxNode) -> Option<Self> {
29975        if Self::can_cast(syntax.kind()) {
29976            Some(Self { syntax })
29977        } else {
29978            None
29979        }
29980    }
29981    #[inline]
29982    fn syntax(&self) -> &SyntaxNode {
29983        &self.syntax
29984    }
29985}
29986impl AstNode for TargetList {
29987    #[inline]
29988    fn can_cast(kind: SyntaxKind) -> bool {
29989        kind == SyntaxKind::TARGET_LIST
29990    }
29991    #[inline]
29992    fn cast(syntax: SyntaxNode) -> Option<Self> {
29993        if Self::can_cast(syntax.kind()) {
29994            Some(Self { syntax })
29995        } else {
29996            None
29997        }
29998    }
29999    #[inline]
30000    fn syntax(&self) -> &SyntaxNode {
30001        &self.syntax
30002    }
30003}
30004impl AstNode for Temp {
30005    #[inline]
30006    fn can_cast(kind: SyntaxKind) -> bool {
30007        kind == SyntaxKind::TEMP
30008    }
30009    #[inline]
30010    fn cast(syntax: SyntaxNode) -> Option<Self> {
30011        if Self::can_cast(syntax.kind()) {
30012            Some(Self { syntax })
30013        } else {
30014            None
30015        }
30016    }
30017    #[inline]
30018    fn syntax(&self) -> &SyntaxNode {
30019        &self.syntax
30020    }
30021}
30022impl AstNode for TimeType {
30023    #[inline]
30024    fn can_cast(kind: SyntaxKind) -> bool {
30025        kind == SyntaxKind::TIME_TYPE
30026    }
30027    #[inline]
30028    fn cast(syntax: SyntaxNode) -> Option<Self> {
30029        if Self::can_cast(syntax.kind()) {
30030            Some(Self { syntax })
30031        } else {
30032            None
30033        }
30034    }
30035    #[inline]
30036    fn syntax(&self) -> &SyntaxNode {
30037        &self.syntax
30038    }
30039}
30040impl AstNode for Timing {
30041    #[inline]
30042    fn can_cast(kind: SyntaxKind) -> bool {
30043        kind == SyntaxKind::TIMING
30044    }
30045    #[inline]
30046    fn cast(syntax: SyntaxNode) -> Option<Self> {
30047        if Self::can_cast(syntax.kind()) {
30048            Some(Self { syntax })
30049        } else {
30050            None
30051        }
30052    }
30053    #[inline]
30054    fn syntax(&self) -> &SyntaxNode {
30055        &self.syntax
30056    }
30057}
30058impl AstNode for TransactionModeList {
30059    #[inline]
30060    fn can_cast(kind: SyntaxKind) -> bool {
30061        kind == SyntaxKind::TRANSACTION_MODE_LIST
30062    }
30063    #[inline]
30064    fn cast(syntax: SyntaxNode) -> Option<Self> {
30065        if Self::can_cast(syntax.kind()) {
30066            Some(Self { syntax })
30067        } else {
30068            None
30069        }
30070    }
30071    #[inline]
30072    fn syntax(&self) -> &SyntaxNode {
30073        &self.syntax
30074    }
30075}
30076impl AstNode for TransformFromFunc {
30077    #[inline]
30078    fn can_cast(kind: SyntaxKind) -> bool {
30079        kind == SyntaxKind::TRANSFORM_FROM_FUNC
30080    }
30081    #[inline]
30082    fn cast(syntax: SyntaxNode) -> Option<Self> {
30083        if Self::can_cast(syntax.kind()) {
30084            Some(Self { syntax })
30085        } else {
30086            None
30087        }
30088    }
30089    #[inline]
30090    fn syntax(&self) -> &SyntaxNode {
30091        &self.syntax
30092    }
30093}
30094impl AstNode for TransformFuncOption {
30095    #[inline]
30096    fn can_cast(kind: SyntaxKind) -> bool {
30097        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
30098    }
30099    #[inline]
30100    fn cast(syntax: SyntaxNode) -> Option<Self> {
30101        if Self::can_cast(syntax.kind()) {
30102            Some(Self { syntax })
30103        } else {
30104            None
30105        }
30106    }
30107    #[inline]
30108    fn syntax(&self) -> &SyntaxNode {
30109        &self.syntax
30110    }
30111}
30112impl AstNode for TransformToFunc {
30113    #[inline]
30114    fn can_cast(kind: SyntaxKind) -> bool {
30115        kind == SyntaxKind::TRANSFORM_TO_FUNC
30116    }
30117    #[inline]
30118    fn cast(syntax: SyntaxNode) -> Option<Self> {
30119        if Self::can_cast(syntax.kind()) {
30120            Some(Self { syntax })
30121        } else {
30122            None
30123        }
30124    }
30125    #[inline]
30126    fn syntax(&self) -> &SyntaxNode {
30127        &self.syntax
30128    }
30129}
30130impl AstNode for TriggerEvent {
30131    #[inline]
30132    fn can_cast(kind: SyntaxKind) -> bool {
30133        kind == SyntaxKind::TRIGGER_EVENT
30134    }
30135    #[inline]
30136    fn cast(syntax: SyntaxNode) -> Option<Self> {
30137        if Self::can_cast(syntax.kind()) {
30138            Some(Self { syntax })
30139        } else {
30140            None
30141        }
30142    }
30143    #[inline]
30144    fn syntax(&self) -> &SyntaxNode {
30145        &self.syntax
30146    }
30147}
30148impl AstNode for TriggerEventList {
30149    #[inline]
30150    fn can_cast(kind: SyntaxKind) -> bool {
30151        kind == SyntaxKind::TRIGGER_EVENT_LIST
30152    }
30153    #[inline]
30154    fn cast(syntax: SyntaxNode) -> Option<Self> {
30155        if Self::can_cast(syntax.kind()) {
30156            Some(Self { syntax })
30157        } else {
30158            None
30159        }
30160    }
30161    #[inline]
30162    fn syntax(&self) -> &SyntaxNode {
30163        &self.syntax
30164    }
30165}
30166impl AstNode for TriggerEventUpdate {
30167    #[inline]
30168    fn can_cast(kind: SyntaxKind) -> bool {
30169        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
30170    }
30171    #[inline]
30172    fn cast(syntax: SyntaxNode) -> Option<Self> {
30173        if Self::can_cast(syntax.kind()) {
30174            Some(Self { syntax })
30175        } else {
30176            None
30177        }
30178    }
30179    #[inline]
30180    fn syntax(&self) -> &SyntaxNode {
30181        &self.syntax
30182    }
30183}
30184impl AstNode for TrimFn {
30185    #[inline]
30186    fn can_cast(kind: SyntaxKind) -> bool {
30187        kind == SyntaxKind::TRIM_FN
30188    }
30189    #[inline]
30190    fn cast(syntax: SyntaxNode) -> Option<Self> {
30191        if Self::can_cast(syntax.kind()) {
30192            Some(Self { syntax })
30193        } else {
30194            None
30195        }
30196    }
30197    #[inline]
30198    fn syntax(&self) -> &SyntaxNode {
30199        &self.syntax
30200    }
30201}
30202impl AstNode for Truncate {
30203    #[inline]
30204    fn can_cast(kind: SyntaxKind) -> bool {
30205        kind == SyntaxKind::TRUNCATE
30206    }
30207    #[inline]
30208    fn cast(syntax: SyntaxNode) -> Option<Self> {
30209        if Self::can_cast(syntax.kind()) {
30210            Some(Self { syntax })
30211        } else {
30212            None
30213        }
30214    }
30215    #[inline]
30216    fn syntax(&self) -> &SyntaxNode {
30217        &self.syntax
30218    }
30219}
30220impl AstNode for TupleExpr {
30221    #[inline]
30222    fn can_cast(kind: SyntaxKind) -> bool {
30223        kind == SyntaxKind::TUPLE_EXPR
30224    }
30225    #[inline]
30226    fn cast(syntax: SyntaxNode) -> Option<Self> {
30227        if Self::can_cast(syntax.kind()) {
30228            Some(Self { syntax })
30229        } else {
30230            None
30231        }
30232    }
30233    #[inline]
30234    fn syntax(&self) -> &SyntaxNode {
30235        &self.syntax
30236    }
30237}
30238impl AstNode for UnicodeNormalForm {
30239    #[inline]
30240    fn can_cast(kind: SyntaxKind) -> bool {
30241        kind == SyntaxKind::UNICODE_NORMAL_FORM
30242    }
30243    #[inline]
30244    fn cast(syntax: SyntaxNode) -> Option<Self> {
30245        if Self::can_cast(syntax.kind()) {
30246            Some(Self { syntax })
30247        } else {
30248            None
30249        }
30250    }
30251    #[inline]
30252    fn syntax(&self) -> &SyntaxNode {
30253        &self.syntax
30254    }
30255}
30256impl AstNode for UniqueConstraint {
30257    #[inline]
30258    fn can_cast(kind: SyntaxKind) -> bool {
30259        kind == SyntaxKind::UNIQUE_CONSTRAINT
30260    }
30261    #[inline]
30262    fn cast(syntax: SyntaxNode) -> Option<Self> {
30263        if Self::can_cast(syntax.kind()) {
30264            Some(Self { syntax })
30265        } else {
30266            None
30267        }
30268    }
30269    #[inline]
30270    fn syntax(&self) -> &SyntaxNode {
30271        &self.syntax
30272    }
30273}
30274impl AstNode for Unlisten {
30275    #[inline]
30276    fn can_cast(kind: SyntaxKind) -> bool {
30277        kind == SyntaxKind::UNLISTEN
30278    }
30279    #[inline]
30280    fn cast(syntax: SyntaxNode) -> Option<Self> {
30281        if Self::can_cast(syntax.kind()) {
30282            Some(Self { syntax })
30283        } else {
30284            None
30285        }
30286    }
30287    #[inline]
30288    fn syntax(&self) -> &SyntaxNode {
30289        &self.syntax
30290    }
30291}
30292impl AstNode for Unlogged {
30293    #[inline]
30294    fn can_cast(kind: SyntaxKind) -> bool {
30295        kind == SyntaxKind::UNLOGGED
30296    }
30297    #[inline]
30298    fn cast(syntax: SyntaxNode) -> Option<Self> {
30299        if Self::can_cast(syntax.kind()) {
30300            Some(Self { syntax })
30301        } else {
30302            None
30303        }
30304    }
30305    #[inline]
30306    fn syntax(&self) -> &SyntaxNode {
30307        &self.syntax
30308    }
30309}
30310impl AstNode for Update {
30311    #[inline]
30312    fn can_cast(kind: SyntaxKind) -> bool {
30313        kind == SyntaxKind::UPDATE
30314    }
30315    #[inline]
30316    fn cast(syntax: SyntaxNode) -> Option<Self> {
30317        if Self::can_cast(syntax.kind()) {
30318            Some(Self { syntax })
30319        } else {
30320            None
30321        }
30322    }
30323    #[inline]
30324    fn syntax(&self) -> &SyntaxNode {
30325        &self.syntax
30326    }
30327}
30328impl AstNode for UsingClause {
30329    #[inline]
30330    fn can_cast(kind: SyntaxKind) -> bool {
30331        kind == SyntaxKind::USING_CLAUSE
30332    }
30333    #[inline]
30334    fn cast(syntax: SyntaxNode) -> Option<Self> {
30335        if Self::can_cast(syntax.kind()) {
30336            Some(Self { syntax })
30337        } else {
30338            None
30339        }
30340    }
30341    #[inline]
30342    fn syntax(&self) -> &SyntaxNode {
30343        &self.syntax
30344    }
30345}
30346impl AstNode for UsingExprClause {
30347    #[inline]
30348    fn can_cast(kind: SyntaxKind) -> bool {
30349        kind == SyntaxKind::USING_EXPR_CLAUSE
30350    }
30351    #[inline]
30352    fn cast(syntax: SyntaxNode) -> Option<Self> {
30353        if Self::can_cast(syntax.kind()) {
30354            Some(Self { syntax })
30355        } else {
30356            None
30357        }
30358    }
30359    #[inline]
30360    fn syntax(&self) -> &SyntaxNode {
30361        &self.syntax
30362    }
30363}
30364impl AstNode for UsingIndex {
30365    #[inline]
30366    fn can_cast(kind: SyntaxKind) -> bool {
30367        kind == SyntaxKind::USING_INDEX
30368    }
30369    #[inline]
30370    fn cast(syntax: SyntaxNode) -> Option<Self> {
30371        if Self::can_cast(syntax.kind()) {
30372            Some(Self { syntax })
30373        } else {
30374            None
30375        }
30376    }
30377    #[inline]
30378    fn syntax(&self) -> &SyntaxNode {
30379        &self.syntax
30380    }
30381}
30382impl AstNode for UsingMethod {
30383    #[inline]
30384    fn can_cast(kind: SyntaxKind) -> bool {
30385        kind == SyntaxKind::USING_METHOD
30386    }
30387    #[inline]
30388    fn cast(syntax: SyntaxNode) -> Option<Self> {
30389        if Self::can_cast(syntax.kind()) {
30390            Some(Self { syntax })
30391        } else {
30392            None
30393        }
30394    }
30395    #[inline]
30396    fn syntax(&self) -> &SyntaxNode {
30397        &self.syntax
30398    }
30399}
30400impl AstNode for UsingOnClause {
30401    #[inline]
30402    fn can_cast(kind: SyntaxKind) -> bool {
30403        kind == SyntaxKind::USING_ON_CLAUSE
30404    }
30405    #[inline]
30406    fn cast(syntax: SyntaxNode) -> Option<Self> {
30407        if Self::can_cast(syntax.kind()) {
30408            Some(Self { syntax })
30409        } else {
30410            None
30411        }
30412    }
30413    #[inline]
30414    fn syntax(&self) -> &SyntaxNode {
30415        &self.syntax
30416    }
30417}
30418impl AstNode for Vacuum {
30419    #[inline]
30420    fn can_cast(kind: SyntaxKind) -> bool {
30421        kind == SyntaxKind::VACUUM
30422    }
30423    #[inline]
30424    fn cast(syntax: SyntaxNode) -> Option<Self> {
30425        if Self::can_cast(syntax.kind()) {
30426            Some(Self { syntax })
30427        } else {
30428            None
30429        }
30430    }
30431    #[inline]
30432    fn syntax(&self) -> &SyntaxNode {
30433        &self.syntax
30434    }
30435}
30436impl AstNode for VacuumOption {
30437    #[inline]
30438    fn can_cast(kind: SyntaxKind) -> bool {
30439        kind == SyntaxKind::VACUUM_OPTION
30440    }
30441    #[inline]
30442    fn cast(syntax: SyntaxNode) -> Option<Self> {
30443        if Self::can_cast(syntax.kind()) {
30444            Some(Self { syntax })
30445        } else {
30446            None
30447        }
30448    }
30449    #[inline]
30450    fn syntax(&self) -> &SyntaxNode {
30451        &self.syntax
30452    }
30453}
30454impl AstNode for VacuumOptionList {
30455    #[inline]
30456    fn can_cast(kind: SyntaxKind) -> bool {
30457        kind == SyntaxKind::VACUUM_OPTION_LIST
30458    }
30459    #[inline]
30460    fn cast(syntax: SyntaxNode) -> Option<Self> {
30461        if Self::can_cast(syntax.kind()) {
30462            Some(Self { syntax })
30463        } else {
30464            None
30465        }
30466    }
30467    #[inline]
30468    fn syntax(&self) -> &SyntaxNode {
30469        &self.syntax
30470    }
30471}
30472impl AstNode for ValidateConstraint {
30473    #[inline]
30474    fn can_cast(kind: SyntaxKind) -> bool {
30475        kind == SyntaxKind::VALIDATE_CONSTRAINT
30476    }
30477    #[inline]
30478    fn cast(syntax: SyntaxNode) -> Option<Self> {
30479        if Self::can_cast(syntax.kind()) {
30480            Some(Self { syntax })
30481        } else {
30482            None
30483        }
30484    }
30485    #[inline]
30486    fn syntax(&self) -> &SyntaxNode {
30487        &self.syntax
30488    }
30489}
30490impl AstNode for Values {
30491    #[inline]
30492    fn can_cast(kind: SyntaxKind) -> bool {
30493        kind == SyntaxKind::VALUES
30494    }
30495    #[inline]
30496    fn cast(syntax: SyntaxNode) -> Option<Self> {
30497        if Self::can_cast(syntax.kind()) {
30498            Some(Self { syntax })
30499        } else {
30500            None
30501        }
30502    }
30503    #[inline]
30504    fn syntax(&self) -> &SyntaxNode {
30505        &self.syntax
30506    }
30507}
30508impl AstNode for Variant {
30509    #[inline]
30510    fn can_cast(kind: SyntaxKind) -> bool {
30511        kind == SyntaxKind::VARIANT
30512    }
30513    #[inline]
30514    fn cast(syntax: SyntaxNode) -> Option<Self> {
30515        if Self::can_cast(syntax.kind()) {
30516            Some(Self { syntax })
30517        } else {
30518            None
30519        }
30520    }
30521    #[inline]
30522    fn syntax(&self) -> &SyntaxNode {
30523        &self.syntax
30524    }
30525}
30526impl AstNode for VariantList {
30527    #[inline]
30528    fn can_cast(kind: SyntaxKind) -> bool {
30529        kind == SyntaxKind::VARIANT_LIST
30530    }
30531    #[inline]
30532    fn cast(syntax: SyntaxNode) -> Option<Self> {
30533        if Self::can_cast(syntax.kind()) {
30534            Some(Self { syntax })
30535        } else {
30536            None
30537        }
30538    }
30539    #[inline]
30540    fn syntax(&self) -> &SyntaxNode {
30541        &self.syntax
30542    }
30543}
30544impl AstNode for VertexPattern {
30545    #[inline]
30546    fn can_cast(kind: SyntaxKind) -> bool {
30547        kind == SyntaxKind::VERTEX_PATTERN
30548    }
30549    #[inline]
30550    fn cast(syntax: SyntaxNode) -> Option<Self> {
30551        if Self::can_cast(syntax.kind()) {
30552            Some(Self { syntax })
30553        } else {
30554            None
30555        }
30556    }
30557    #[inline]
30558    fn syntax(&self) -> &SyntaxNode {
30559        &self.syntax
30560    }
30561}
30562impl AstNode for VertexTableDef {
30563    #[inline]
30564    fn can_cast(kind: SyntaxKind) -> bool {
30565        kind == SyntaxKind::VERTEX_TABLE_DEF
30566    }
30567    #[inline]
30568    fn cast(syntax: SyntaxNode) -> Option<Self> {
30569        if Self::can_cast(syntax.kind()) {
30570            Some(Self { syntax })
30571        } else {
30572            None
30573        }
30574    }
30575    #[inline]
30576    fn syntax(&self) -> &SyntaxNode {
30577        &self.syntax
30578    }
30579}
30580impl AstNode for VertexTables {
30581    #[inline]
30582    fn can_cast(kind: SyntaxKind) -> bool {
30583        kind == SyntaxKind::VERTEX_TABLES
30584    }
30585    #[inline]
30586    fn cast(syntax: SyntaxNode) -> Option<Self> {
30587        if Self::can_cast(syntax.kind()) {
30588            Some(Self { syntax })
30589        } else {
30590            None
30591        }
30592    }
30593    #[inline]
30594    fn syntax(&self) -> &SyntaxNode {
30595        &self.syntax
30596    }
30597}
30598impl AstNode for VolatilityFuncOption {
30599    #[inline]
30600    fn can_cast(kind: SyntaxKind) -> bool {
30601        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
30602    }
30603    #[inline]
30604    fn cast(syntax: SyntaxNode) -> Option<Self> {
30605        if Self::can_cast(syntax.kind()) {
30606            Some(Self { syntax })
30607        } else {
30608            None
30609        }
30610    }
30611    #[inline]
30612    fn syntax(&self) -> &SyntaxNode {
30613        &self.syntax
30614    }
30615}
30616impl AstNode for WhenClause {
30617    #[inline]
30618    fn can_cast(kind: SyntaxKind) -> bool {
30619        kind == SyntaxKind::WHEN_CLAUSE
30620    }
30621    #[inline]
30622    fn cast(syntax: SyntaxNode) -> Option<Self> {
30623        if Self::can_cast(syntax.kind()) {
30624            Some(Self { syntax })
30625        } else {
30626            None
30627        }
30628    }
30629    #[inline]
30630    fn syntax(&self) -> &SyntaxNode {
30631        &self.syntax
30632    }
30633}
30634impl AstNode for WhenClauseList {
30635    #[inline]
30636    fn can_cast(kind: SyntaxKind) -> bool {
30637        kind == SyntaxKind::WHEN_CLAUSE_LIST
30638    }
30639    #[inline]
30640    fn cast(syntax: SyntaxNode) -> Option<Self> {
30641        if Self::can_cast(syntax.kind()) {
30642            Some(Self { syntax })
30643        } else {
30644            None
30645        }
30646    }
30647    #[inline]
30648    fn syntax(&self) -> &SyntaxNode {
30649        &self.syntax
30650    }
30651}
30652impl AstNode for WhenCondition {
30653    #[inline]
30654    fn can_cast(kind: SyntaxKind) -> bool {
30655        kind == SyntaxKind::WHEN_CONDITION
30656    }
30657    #[inline]
30658    fn cast(syntax: SyntaxNode) -> Option<Self> {
30659        if Self::can_cast(syntax.kind()) {
30660            Some(Self { syntax })
30661        } else {
30662            None
30663        }
30664    }
30665    #[inline]
30666    fn syntax(&self) -> &SyntaxNode {
30667        &self.syntax
30668    }
30669}
30670impl AstNode for WhereClause {
30671    #[inline]
30672    fn can_cast(kind: SyntaxKind) -> bool {
30673        kind == SyntaxKind::WHERE_CLAUSE
30674    }
30675    #[inline]
30676    fn cast(syntax: SyntaxNode) -> Option<Self> {
30677        if Self::can_cast(syntax.kind()) {
30678            Some(Self { syntax })
30679        } else {
30680            None
30681        }
30682    }
30683    #[inline]
30684    fn syntax(&self) -> &SyntaxNode {
30685        &self.syntax
30686    }
30687}
30688impl AstNode for WhereConditionClause {
30689    #[inline]
30690    fn can_cast(kind: SyntaxKind) -> bool {
30691        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
30692    }
30693    #[inline]
30694    fn cast(syntax: SyntaxNode) -> Option<Self> {
30695        if Self::can_cast(syntax.kind()) {
30696            Some(Self { syntax })
30697        } else {
30698            None
30699        }
30700    }
30701    #[inline]
30702    fn syntax(&self) -> &SyntaxNode {
30703        &self.syntax
30704    }
30705}
30706impl AstNode for WhereCurrentOf {
30707    #[inline]
30708    fn can_cast(kind: SyntaxKind) -> bool {
30709        kind == SyntaxKind::WHERE_CURRENT_OF
30710    }
30711    #[inline]
30712    fn cast(syntax: SyntaxNode) -> Option<Self> {
30713        if Self::can_cast(syntax.kind()) {
30714            Some(Self { syntax })
30715        } else {
30716            None
30717        }
30718    }
30719    #[inline]
30720    fn syntax(&self) -> &SyntaxNode {
30721        &self.syntax
30722    }
30723}
30724impl AstNode for WindowClause {
30725    #[inline]
30726    fn can_cast(kind: SyntaxKind) -> bool {
30727        kind == SyntaxKind::WINDOW_CLAUSE
30728    }
30729    #[inline]
30730    fn cast(syntax: SyntaxNode) -> Option<Self> {
30731        if Self::can_cast(syntax.kind()) {
30732            Some(Self { syntax })
30733        } else {
30734            None
30735        }
30736    }
30737    #[inline]
30738    fn syntax(&self) -> &SyntaxNode {
30739        &self.syntax
30740    }
30741}
30742impl AstNode for WindowDef {
30743    #[inline]
30744    fn can_cast(kind: SyntaxKind) -> bool {
30745        kind == SyntaxKind::WINDOW_DEF
30746    }
30747    #[inline]
30748    fn cast(syntax: SyntaxNode) -> Option<Self> {
30749        if Self::can_cast(syntax.kind()) {
30750            Some(Self { syntax })
30751        } else {
30752            None
30753        }
30754    }
30755    #[inline]
30756    fn syntax(&self) -> &SyntaxNode {
30757        &self.syntax
30758    }
30759}
30760impl AstNode for WindowFuncOption {
30761    #[inline]
30762    fn can_cast(kind: SyntaxKind) -> bool {
30763        kind == SyntaxKind::WINDOW_FUNC_OPTION
30764    }
30765    #[inline]
30766    fn cast(syntax: SyntaxNode) -> Option<Self> {
30767        if Self::can_cast(syntax.kind()) {
30768            Some(Self { syntax })
30769        } else {
30770            None
30771        }
30772    }
30773    #[inline]
30774    fn syntax(&self) -> &SyntaxNode {
30775        &self.syntax
30776    }
30777}
30778impl AstNode for WindowSpec {
30779    #[inline]
30780    fn can_cast(kind: SyntaxKind) -> bool {
30781        kind == SyntaxKind::WINDOW_SPEC
30782    }
30783    #[inline]
30784    fn cast(syntax: SyntaxNode) -> Option<Self> {
30785        if Self::can_cast(syntax.kind()) {
30786            Some(Self { syntax })
30787        } else {
30788            None
30789        }
30790    }
30791    #[inline]
30792    fn syntax(&self) -> &SyntaxNode {
30793        &self.syntax
30794    }
30795}
30796impl AstNode for WithCheckExprClause {
30797    #[inline]
30798    fn can_cast(kind: SyntaxKind) -> bool {
30799        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
30800    }
30801    #[inline]
30802    fn cast(syntax: SyntaxNode) -> Option<Self> {
30803        if Self::can_cast(syntax.kind()) {
30804            Some(Self { syntax })
30805        } else {
30806            None
30807        }
30808    }
30809    #[inline]
30810    fn syntax(&self) -> &SyntaxNode {
30811        &self.syntax
30812    }
30813}
30814impl AstNode for WithClause {
30815    #[inline]
30816    fn can_cast(kind: SyntaxKind) -> bool {
30817        kind == SyntaxKind::WITH_CLAUSE
30818    }
30819    #[inline]
30820    fn cast(syntax: SyntaxNode) -> Option<Self> {
30821        if Self::can_cast(syntax.kind()) {
30822            Some(Self { syntax })
30823        } else {
30824            None
30825        }
30826    }
30827    #[inline]
30828    fn syntax(&self) -> &SyntaxNode {
30829        &self.syntax
30830    }
30831}
30832impl AstNode for WithData {
30833    #[inline]
30834    fn can_cast(kind: SyntaxKind) -> bool {
30835        kind == SyntaxKind::WITH_DATA
30836    }
30837    #[inline]
30838    fn cast(syntax: SyntaxNode) -> Option<Self> {
30839        if Self::can_cast(syntax.kind()) {
30840            Some(Self { syntax })
30841        } else {
30842            None
30843        }
30844    }
30845    #[inline]
30846    fn syntax(&self) -> &SyntaxNode {
30847        &self.syntax
30848    }
30849}
30850impl AstNode for WithNoData {
30851    #[inline]
30852    fn can_cast(kind: SyntaxKind) -> bool {
30853        kind == SyntaxKind::WITH_NO_DATA
30854    }
30855    #[inline]
30856    fn cast(syntax: SyntaxNode) -> Option<Self> {
30857        if Self::can_cast(syntax.kind()) {
30858            Some(Self { syntax })
30859        } else {
30860            None
30861        }
30862    }
30863    #[inline]
30864    fn syntax(&self) -> &SyntaxNode {
30865        &self.syntax
30866    }
30867}
30868impl AstNode for WithOptions {
30869    #[inline]
30870    fn can_cast(kind: SyntaxKind) -> bool {
30871        kind == SyntaxKind::WITH_OPTIONS
30872    }
30873    #[inline]
30874    fn cast(syntax: SyntaxNode) -> Option<Self> {
30875        if Self::can_cast(syntax.kind()) {
30876            Some(Self { syntax })
30877        } else {
30878            None
30879        }
30880    }
30881    #[inline]
30882    fn syntax(&self) -> &SyntaxNode {
30883        &self.syntax
30884    }
30885}
30886impl AstNode for WithParams {
30887    #[inline]
30888    fn can_cast(kind: SyntaxKind) -> bool {
30889        kind == SyntaxKind::WITH_PARAMS
30890    }
30891    #[inline]
30892    fn cast(syntax: SyntaxNode) -> Option<Self> {
30893        if Self::can_cast(syntax.kind()) {
30894            Some(Self { syntax })
30895        } else {
30896            None
30897        }
30898    }
30899    #[inline]
30900    fn syntax(&self) -> &SyntaxNode {
30901        &self.syntax
30902    }
30903}
30904impl AstNode for WithTable {
30905    #[inline]
30906    fn can_cast(kind: SyntaxKind) -> bool {
30907        kind == SyntaxKind::WITH_TABLE
30908    }
30909    #[inline]
30910    fn cast(syntax: SyntaxNode) -> Option<Self> {
30911        if Self::can_cast(syntax.kind()) {
30912            Some(Self { syntax })
30913        } else {
30914            None
30915        }
30916    }
30917    #[inline]
30918    fn syntax(&self) -> &SyntaxNode {
30919        &self.syntax
30920    }
30921}
30922impl AstNode for WithTimezone {
30923    #[inline]
30924    fn can_cast(kind: SyntaxKind) -> bool {
30925        kind == SyntaxKind::WITH_TIMEZONE
30926    }
30927    #[inline]
30928    fn cast(syntax: SyntaxNode) -> Option<Self> {
30929        if Self::can_cast(syntax.kind()) {
30930            Some(Self { syntax })
30931        } else {
30932            None
30933        }
30934    }
30935    #[inline]
30936    fn syntax(&self) -> &SyntaxNode {
30937        &self.syntax
30938    }
30939}
30940impl AstNode for WithinClause {
30941    #[inline]
30942    fn can_cast(kind: SyntaxKind) -> bool {
30943        kind == SyntaxKind::WITHIN_CLAUSE
30944    }
30945    #[inline]
30946    fn cast(syntax: SyntaxNode) -> Option<Self> {
30947        if Self::can_cast(syntax.kind()) {
30948            Some(Self { syntax })
30949        } else {
30950            None
30951        }
30952    }
30953    #[inline]
30954    fn syntax(&self) -> &SyntaxNode {
30955        &self.syntax
30956    }
30957}
30958impl AstNode for WithoutOids {
30959    #[inline]
30960    fn can_cast(kind: SyntaxKind) -> bool {
30961        kind == SyntaxKind::WITHOUT_OIDS
30962    }
30963    #[inline]
30964    fn cast(syntax: SyntaxNode) -> Option<Self> {
30965        if Self::can_cast(syntax.kind()) {
30966            Some(Self { syntax })
30967        } else {
30968            None
30969        }
30970    }
30971    #[inline]
30972    fn syntax(&self) -> &SyntaxNode {
30973        &self.syntax
30974    }
30975}
30976impl AstNode for WithoutTimezone {
30977    #[inline]
30978    fn can_cast(kind: SyntaxKind) -> bool {
30979        kind == SyntaxKind::WITHOUT_TIMEZONE
30980    }
30981    #[inline]
30982    fn cast(syntax: SyntaxNode) -> Option<Self> {
30983        if Self::can_cast(syntax.kind()) {
30984            Some(Self { syntax })
30985        } else {
30986            None
30987        }
30988    }
30989    #[inline]
30990    fn syntax(&self) -> &SyntaxNode {
30991        &self.syntax
30992    }
30993}
30994impl AstNode for XmlColumnOption {
30995    #[inline]
30996    fn can_cast(kind: SyntaxKind) -> bool {
30997        kind == SyntaxKind::XML_COLUMN_OPTION
30998    }
30999    #[inline]
31000    fn cast(syntax: SyntaxNode) -> Option<Self> {
31001        if Self::can_cast(syntax.kind()) {
31002            Some(Self { syntax })
31003        } else {
31004            None
31005        }
31006    }
31007    #[inline]
31008    fn syntax(&self) -> &SyntaxNode {
31009        &self.syntax
31010    }
31011}
31012impl AstNode for XmlColumnOptionList {
31013    #[inline]
31014    fn can_cast(kind: SyntaxKind) -> bool {
31015        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
31016    }
31017    #[inline]
31018    fn cast(syntax: SyntaxNode) -> Option<Self> {
31019        if Self::can_cast(syntax.kind()) {
31020            Some(Self { syntax })
31021        } else {
31022            None
31023        }
31024    }
31025    #[inline]
31026    fn syntax(&self) -> &SyntaxNode {
31027        &self.syntax
31028    }
31029}
31030impl AstNode for XmlElementFn {
31031    #[inline]
31032    fn can_cast(kind: SyntaxKind) -> bool {
31033        kind == SyntaxKind::XML_ELEMENT_FN
31034    }
31035    #[inline]
31036    fn cast(syntax: SyntaxNode) -> Option<Self> {
31037        if Self::can_cast(syntax.kind()) {
31038            Some(Self { syntax })
31039        } else {
31040            None
31041        }
31042    }
31043    #[inline]
31044    fn syntax(&self) -> &SyntaxNode {
31045        &self.syntax
31046    }
31047}
31048impl AstNode for XmlExistsFn {
31049    #[inline]
31050    fn can_cast(kind: SyntaxKind) -> bool {
31051        kind == SyntaxKind::XML_EXISTS_FN
31052    }
31053    #[inline]
31054    fn cast(syntax: SyntaxNode) -> Option<Self> {
31055        if Self::can_cast(syntax.kind()) {
31056            Some(Self { syntax })
31057        } else {
31058            None
31059        }
31060    }
31061    #[inline]
31062    fn syntax(&self) -> &SyntaxNode {
31063        &self.syntax
31064    }
31065}
31066impl AstNode for XmlForestFn {
31067    #[inline]
31068    fn can_cast(kind: SyntaxKind) -> bool {
31069        kind == SyntaxKind::XML_FOREST_FN
31070    }
31071    #[inline]
31072    fn cast(syntax: SyntaxNode) -> Option<Self> {
31073        if Self::can_cast(syntax.kind()) {
31074            Some(Self { syntax })
31075        } else {
31076            None
31077        }
31078    }
31079    #[inline]
31080    fn syntax(&self) -> &SyntaxNode {
31081        &self.syntax
31082    }
31083}
31084impl AstNode for XmlNamespace {
31085    #[inline]
31086    fn can_cast(kind: SyntaxKind) -> bool {
31087        kind == SyntaxKind::XML_NAMESPACE
31088    }
31089    #[inline]
31090    fn cast(syntax: SyntaxNode) -> Option<Self> {
31091        if Self::can_cast(syntax.kind()) {
31092            Some(Self { syntax })
31093        } else {
31094            None
31095        }
31096    }
31097    #[inline]
31098    fn syntax(&self) -> &SyntaxNode {
31099        &self.syntax
31100    }
31101}
31102impl AstNode for XmlNamespaceList {
31103    #[inline]
31104    fn can_cast(kind: SyntaxKind) -> bool {
31105        kind == SyntaxKind::XML_NAMESPACE_LIST
31106    }
31107    #[inline]
31108    fn cast(syntax: SyntaxNode) -> Option<Self> {
31109        if Self::can_cast(syntax.kind()) {
31110            Some(Self { syntax })
31111        } else {
31112            None
31113        }
31114    }
31115    #[inline]
31116    fn syntax(&self) -> &SyntaxNode {
31117        &self.syntax
31118    }
31119}
31120impl AstNode for XmlParseFn {
31121    #[inline]
31122    fn can_cast(kind: SyntaxKind) -> bool {
31123        kind == SyntaxKind::XML_PARSE_FN
31124    }
31125    #[inline]
31126    fn cast(syntax: SyntaxNode) -> Option<Self> {
31127        if Self::can_cast(syntax.kind()) {
31128            Some(Self { syntax })
31129        } else {
31130            None
31131        }
31132    }
31133    #[inline]
31134    fn syntax(&self) -> &SyntaxNode {
31135        &self.syntax
31136    }
31137}
31138impl AstNode for XmlPassingMech {
31139    #[inline]
31140    fn can_cast(kind: SyntaxKind) -> bool {
31141        kind == SyntaxKind::XML_PASSING_MECH
31142    }
31143    #[inline]
31144    fn cast(syntax: SyntaxNode) -> Option<Self> {
31145        if Self::can_cast(syntax.kind()) {
31146            Some(Self { syntax })
31147        } else {
31148            None
31149        }
31150    }
31151    #[inline]
31152    fn syntax(&self) -> &SyntaxNode {
31153        &self.syntax
31154    }
31155}
31156impl AstNode for XmlPiFn {
31157    #[inline]
31158    fn can_cast(kind: SyntaxKind) -> bool {
31159        kind == SyntaxKind::XML_PI_FN
31160    }
31161    #[inline]
31162    fn cast(syntax: SyntaxNode) -> Option<Self> {
31163        if Self::can_cast(syntax.kind()) {
31164            Some(Self { syntax })
31165        } else {
31166            None
31167        }
31168    }
31169    #[inline]
31170    fn syntax(&self) -> &SyntaxNode {
31171        &self.syntax
31172    }
31173}
31174impl AstNode for XmlRootFn {
31175    #[inline]
31176    fn can_cast(kind: SyntaxKind) -> bool {
31177        kind == SyntaxKind::XML_ROOT_FN
31178    }
31179    #[inline]
31180    fn cast(syntax: SyntaxNode) -> Option<Self> {
31181        if Self::can_cast(syntax.kind()) {
31182            Some(Self { syntax })
31183        } else {
31184            None
31185        }
31186    }
31187    #[inline]
31188    fn syntax(&self) -> &SyntaxNode {
31189        &self.syntax
31190    }
31191}
31192impl AstNode for XmlRowPassingClause {
31193    #[inline]
31194    fn can_cast(kind: SyntaxKind) -> bool {
31195        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
31196    }
31197    #[inline]
31198    fn cast(syntax: SyntaxNode) -> Option<Self> {
31199        if Self::can_cast(syntax.kind()) {
31200            Some(Self { syntax })
31201        } else {
31202            None
31203        }
31204    }
31205    #[inline]
31206    fn syntax(&self) -> &SyntaxNode {
31207        &self.syntax
31208    }
31209}
31210impl AstNode for XmlSerializeFn {
31211    #[inline]
31212    fn can_cast(kind: SyntaxKind) -> bool {
31213        kind == SyntaxKind::XML_SERIALIZE_FN
31214    }
31215    #[inline]
31216    fn cast(syntax: SyntaxNode) -> Option<Self> {
31217        if Self::can_cast(syntax.kind()) {
31218            Some(Self { syntax })
31219        } else {
31220            None
31221        }
31222    }
31223    #[inline]
31224    fn syntax(&self) -> &SyntaxNode {
31225        &self.syntax
31226    }
31227}
31228impl AstNode for XmlTable {
31229    #[inline]
31230    fn can_cast(kind: SyntaxKind) -> bool {
31231        kind == SyntaxKind::XML_TABLE
31232    }
31233    #[inline]
31234    fn cast(syntax: SyntaxNode) -> Option<Self> {
31235        if Self::can_cast(syntax.kind()) {
31236            Some(Self { syntax })
31237        } else {
31238            None
31239        }
31240    }
31241    #[inline]
31242    fn syntax(&self) -> &SyntaxNode {
31243        &self.syntax
31244    }
31245}
31246impl AstNode for XmlTableColumn {
31247    #[inline]
31248    fn can_cast(kind: SyntaxKind) -> bool {
31249        kind == SyntaxKind::XML_TABLE_COLUMN
31250    }
31251    #[inline]
31252    fn cast(syntax: SyntaxNode) -> Option<Self> {
31253        if Self::can_cast(syntax.kind()) {
31254            Some(Self { syntax })
31255        } else {
31256            None
31257        }
31258    }
31259    #[inline]
31260    fn syntax(&self) -> &SyntaxNode {
31261        &self.syntax
31262    }
31263}
31264impl AstNode for XmlTableColumnList {
31265    #[inline]
31266    fn can_cast(kind: SyntaxKind) -> bool {
31267        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
31268    }
31269    #[inline]
31270    fn cast(syntax: SyntaxNode) -> Option<Self> {
31271        if Self::can_cast(syntax.kind()) {
31272            Some(Self { syntax })
31273        } else {
31274            None
31275        }
31276    }
31277    #[inline]
31278    fn syntax(&self) -> &SyntaxNode {
31279        &self.syntax
31280    }
31281}
31282impl AstNode for AlterColumnOption {
31283    #[inline]
31284    fn can_cast(kind: SyntaxKind) -> bool {
31285        matches!(
31286            kind,
31287            SyntaxKind::ADD_GENERATED
31288                | SyntaxKind::DROP_DEFAULT
31289                | SyntaxKind::DROP_EXPRESSION
31290                | SyntaxKind::DROP_IDENTITY
31291                | SyntaxKind::DROP_NOT_NULL
31292                | SyntaxKind::INHERIT
31293                | SyntaxKind::NO_INHERIT
31294                | SyntaxKind::RESET_OPTIONS
31295                | SyntaxKind::RESTART
31296                | SyntaxKind::SET_COMPRESSION
31297                | SyntaxKind::SET_DEFAULT
31298                | SyntaxKind::SET_EXPRESSION
31299                | SyntaxKind::SET_GENERATED
31300                | SyntaxKind::SET_GENERATED_OPTIONS
31301                | SyntaxKind::SET_NOT_NULL
31302                | SyntaxKind::SET_OPTIONS
31303                | SyntaxKind::SET_OPTIONS_LIST
31304                | SyntaxKind::SET_SEQUENCE_OPTION
31305                | SyntaxKind::SET_STATISTICS
31306                | SyntaxKind::SET_STORAGE
31307                | SyntaxKind::SET_TYPE
31308        )
31309    }
31310    #[inline]
31311    fn cast(syntax: SyntaxNode) -> Option<Self> {
31312        let res = match syntax.kind() {
31313            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
31314            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
31315            SyntaxKind::DROP_EXPRESSION => {
31316                AlterColumnOption::DropExpression(DropExpression { syntax })
31317            }
31318            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
31319            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
31320            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
31321            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
31322            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
31323            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
31324            SyntaxKind::SET_COMPRESSION => {
31325                AlterColumnOption::SetCompression(SetCompression { syntax })
31326            }
31327            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
31328            SyntaxKind::SET_EXPRESSION => {
31329                AlterColumnOption::SetExpression(SetExpression { syntax })
31330            }
31331            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
31332            SyntaxKind::SET_GENERATED_OPTIONS => {
31333                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
31334            }
31335            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
31336            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
31337            SyntaxKind::SET_OPTIONS_LIST => {
31338                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
31339            }
31340            SyntaxKind::SET_SEQUENCE_OPTION => {
31341                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
31342            }
31343            SyntaxKind::SET_STATISTICS => {
31344                AlterColumnOption::SetStatistics(SetStatistics { syntax })
31345            }
31346            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
31347            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
31348            _ => {
31349                return None;
31350            }
31351        };
31352        Some(res)
31353    }
31354    #[inline]
31355    fn syntax(&self) -> &SyntaxNode {
31356        match self {
31357            AlterColumnOption::AddGenerated(it) => &it.syntax,
31358            AlterColumnOption::DropDefault(it) => &it.syntax,
31359            AlterColumnOption::DropExpression(it) => &it.syntax,
31360            AlterColumnOption::DropIdentity(it) => &it.syntax,
31361            AlterColumnOption::DropNotNull(it) => &it.syntax,
31362            AlterColumnOption::Inherit(it) => &it.syntax,
31363            AlterColumnOption::NoInherit(it) => &it.syntax,
31364            AlterColumnOption::ResetOptions(it) => &it.syntax,
31365            AlterColumnOption::Restart(it) => &it.syntax,
31366            AlterColumnOption::SetCompression(it) => &it.syntax,
31367            AlterColumnOption::SetDefault(it) => &it.syntax,
31368            AlterColumnOption::SetExpression(it) => &it.syntax,
31369            AlterColumnOption::SetGenerated(it) => &it.syntax,
31370            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
31371            AlterColumnOption::SetNotNull(it) => &it.syntax,
31372            AlterColumnOption::SetOptions(it) => &it.syntax,
31373            AlterColumnOption::SetOptionsList(it) => &it.syntax,
31374            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
31375            AlterColumnOption::SetStatistics(it) => &it.syntax,
31376            AlterColumnOption::SetStorage(it) => &it.syntax,
31377            AlterColumnOption::SetType(it) => &it.syntax,
31378        }
31379    }
31380}
31381impl From<AddGenerated> for AlterColumnOption {
31382    #[inline]
31383    fn from(node: AddGenerated) -> AlterColumnOption {
31384        AlterColumnOption::AddGenerated(node)
31385    }
31386}
31387impl From<DropDefault> for AlterColumnOption {
31388    #[inline]
31389    fn from(node: DropDefault) -> AlterColumnOption {
31390        AlterColumnOption::DropDefault(node)
31391    }
31392}
31393impl From<DropExpression> for AlterColumnOption {
31394    #[inline]
31395    fn from(node: DropExpression) -> AlterColumnOption {
31396        AlterColumnOption::DropExpression(node)
31397    }
31398}
31399impl From<DropIdentity> for AlterColumnOption {
31400    #[inline]
31401    fn from(node: DropIdentity) -> AlterColumnOption {
31402        AlterColumnOption::DropIdentity(node)
31403    }
31404}
31405impl From<DropNotNull> for AlterColumnOption {
31406    #[inline]
31407    fn from(node: DropNotNull) -> AlterColumnOption {
31408        AlterColumnOption::DropNotNull(node)
31409    }
31410}
31411impl From<Inherit> for AlterColumnOption {
31412    #[inline]
31413    fn from(node: Inherit) -> AlterColumnOption {
31414        AlterColumnOption::Inherit(node)
31415    }
31416}
31417impl From<NoInherit> for AlterColumnOption {
31418    #[inline]
31419    fn from(node: NoInherit) -> AlterColumnOption {
31420        AlterColumnOption::NoInherit(node)
31421    }
31422}
31423impl From<ResetOptions> for AlterColumnOption {
31424    #[inline]
31425    fn from(node: ResetOptions) -> AlterColumnOption {
31426        AlterColumnOption::ResetOptions(node)
31427    }
31428}
31429impl From<Restart> for AlterColumnOption {
31430    #[inline]
31431    fn from(node: Restart) -> AlterColumnOption {
31432        AlterColumnOption::Restart(node)
31433    }
31434}
31435impl From<SetCompression> for AlterColumnOption {
31436    #[inline]
31437    fn from(node: SetCompression) -> AlterColumnOption {
31438        AlterColumnOption::SetCompression(node)
31439    }
31440}
31441impl From<SetDefault> for AlterColumnOption {
31442    #[inline]
31443    fn from(node: SetDefault) -> AlterColumnOption {
31444        AlterColumnOption::SetDefault(node)
31445    }
31446}
31447impl From<SetExpression> for AlterColumnOption {
31448    #[inline]
31449    fn from(node: SetExpression) -> AlterColumnOption {
31450        AlterColumnOption::SetExpression(node)
31451    }
31452}
31453impl From<SetGenerated> for AlterColumnOption {
31454    #[inline]
31455    fn from(node: SetGenerated) -> AlterColumnOption {
31456        AlterColumnOption::SetGenerated(node)
31457    }
31458}
31459impl From<SetGeneratedOptions> for AlterColumnOption {
31460    #[inline]
31461    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
31462        AlterColumnOption::SetGeneratedOptions(node)
31463    }
31464}
31465impl From<SetNotNull> for AlterColumnOption {
31466    #[inline]
31467    fn from(node: SetNotNull) -> AlterColumnOption {
31468        AlterColumnOption::SetNotNull(node)
31469    }
31470}
31471impl From<SetOptions> for AlterColumnOption {
31472    #[inline]
31473    fn from(node: SetOptions) -> AlterColumnOption {
31474        AlterColumnOption::SetOptions(node)
31475    }
31476}
31477impl From<SetOptionsList> for AlterColumnOption {
31478    #[inline]
31479    fn from(node: SetOptionsList) -> AlterColumnOption {
31480        AlterColumnOption::SetOptionsList(node)
31481    }
31482}
31483impl From<SetSequenceOption> for AlterColumnOption {
31484    #[inline]
31485    fn from(node: SetSequenceOption) -> AlterColumnOption {
31486        AlterColumnOption::SetSequenceOption(node)
31487    }
31488}
31489impl From<SetStatistics> for AlterColumnOption {
31490    #[inline]
31491    fn from(node: SetStatistics) -> AlterColumnOption {
31492        AlterColumnOption::SetStatistics(node)
31493    }
31494}
31495impl From<SetStorage> for AlterColumnOption {
31496    #[inline]
31497    fn from(node: SetStorage) -> AlterColumnOption {
31498        AlterColumnOption::SetStorage(node)
31499    }
31500}
31501impl From<SetType> for AlterColumnOption {
31502    #[inline]
31503    fn from(node: SetType) -> AlterColumnOption {
31504        AlterColumnOption::SetType(node)
31505    }
31506}
31507impl AstNode for AlterDomainAction {
31508    #[inline]
31509    fn can_cast(kind: SyntaxKind) -> bool {
31510        matches!(
31511            kind,
31512            SyntaxKind::ADD_CONSTRAINT
31513                | SyntaxKind::DROP_CONSTRAINT
31514                | SyntaxKind::DROP_DEFAULT
31515                | SyntaxKind::DROP_NOT_NULL
31516                | SyntaxKind::OWNER_TO
31517                | SyntaxKind::RENAME_CONSTRAINT
31518                | SyntaxKind::RENAME_TO
31519                | SyntaxKind::SET_DEFAULT
31520                | SyntaxKind::SET_NOT_NULL
31521                | SyntaxKind::SET_SCHEMA
31522                | SyntaxKind::VALIDATE_CONSTRAINT
31523        )
31524    }
31525    #[inline]
31526    fn cast(syntax: SyntaxNode) -> Option<Self> {
31527        let res = match syntax.kind() {
31528            SyntaxKind::ADD_CONSTRAINT => {
31529                AlterDomainAction::AddConstraint(AddConstraint { syntax })
31530            }
31531            SyntaxKind::DROP_CONSTRAINT => {
31532                AlterDomainAction::DropConstraint(DropConstraint { syntax })
31533            }
31534            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
31535            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
31536            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
31537            SyntaxKind::RENAME_CONSTRAINT => {
31538                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
31539            }
31540            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
31541            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
31542            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
31543            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
31544            SyntaxKind::VALIDATE_CONSTRAINT => {
31545                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
31546            }
31547            _ => {
31548                return None;
31549            }
31550        };
31551        Some(res)
31552    }
31553    #[inline]
31554    fn syntax(&self) -> &SyntaxNode {
31555        match self {
31556            AlterDomainAction::AddConstraint(it) => &it.syntax,
31557            AlterDomainAction::DropConstraint(it) => &it.syntax,
31558            AlterDomainAction::DropDefault(it) => &it.syntax,
31559            AlterDomainAction::DropNotNull(it) => &it.syntax,
31560            AlterDomainAction::OwnerTo(it) => &it.syntax,
31561            AlterDomainAction::RenameConstraint(it) => &it.syntax,
31562            AlterDomainAction::RenameTo(it) => &it.syntax,
31563            AlterDomainAction::SetDefault(it) => &it.syntax,
31564            AlterDomainAction::SetNotNull(it) => &it.syntax,
31565            AlterDomainAction::SetSchema(it) => &it.syntax,
31566            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
31567        }
31568    }
31569}
31570impl From<AddConstraint> for AlterDomainAction {
31571    #[inline]
31572    fn from(node: AddConstraint) -> AlterDomainAction {
31573        AlterDomainAction::AddConstraint(node)
31574    }
31575}
31576impl From<DropConstraint> for AlterDomainAction {
31577    #[inline]
31578    fn from(node: DropConstraint) -> AlterDomainAction {
31579        AlterDomainAction::DropConstraint(node)
31580    }
31581}
31582impl From<DropDefault> for AlterDomainAction {
31583    #[inline]
31584    fn from(node: DropDefault) -> AlterDomainAction {
31585        AlterDomainAction::DropDefault(node)
31586    }
31587}
31588impl From<DropNotNull> for AlterDomainAction {
31589    #[inline]
31590    fn from(node: DropNotNull) -> AlterDomainAction {
31591        AlterDomainAction::DropNotNull(node)
31592    }
31593}
31594impl From<OwnerTo> for AlterDomainAction {
31595    #[inline]
31596    fn from(node: OwnerTo) -> AlterDomainAction {
31597        AlterDomainAction::OwnerTo(node)
31598    }
31599}
31600impl From<RenameConstraint> for AlterDomainAction {
31601    #[inline]
31602    fn from(node: RenameConstraint) -> AlterDomainAction {
31603        AlterDomainAction::RenameConstraint(node)
31604    }
31605}
31606impl From<RenameTo> for AlterDomainAction {
31607    #[inline]
31608    fn from(node: RenameTo) -> AlterDomainAction {
31609        AlterDomainAction::RenameTo(node)
31610    }
31611}
31612impl From<SetDefault> for AlterDomainAction {
31613    #[inline]
31614    fn from(node: SetDefault) -> AlterDomainAction {
31615        AlterDomainAction::SetDefault(node)
31616    }
31617}
31618impl From<SetNotNull> for AlterDomainAction {
31619    #[inline]
31620    fn from(node: SetNotNull) -> AlterDomainAction {
31621        AlterDomainAction::SetNotNull(node)
31622    }
31623}
31624impl From<SetSchema> for AlterDomainAction {
31625    #[inline]
31626    fn from(node: SetSchema) -> AlterDomainAction {
31627        AlterDomainAction::SetSchema(node)
31628    }
31629}
31630impl From<ValidateConstraint> for AlterDomainAction {
31631    #[inline]
31632    fn from(node: ValidateConstraint) -> AlterDomainAction {
31633        AlterDomainAction::ValidateConstraint(node)
31634    }
31635}
31636impl AstNode for AlterIndexAction {
31637    #[inline]
31638    fn can_cast(kind: SyntaxKind) -> bool {
31639        matches!(
31640            kind,
31641            SyntaxKind::ALTER_SET_STATISTICS
31642                | SyntaxKind::ATTACH_PARTITION
31643                | SyntaxKind::DEPENDS_ON_EXTENSION
31644                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31645                | SyntaxKind::RENAME_TO
31646                | SyntaxKind::RESET_OPTIONS
31647                | SyntaxKind::SET_OPTIONS
31648                | SyntaxKind::SET_TABLESPACE
31649        )
31650    }
31651    #[inline]
31652    fn cast(syntax: SyntaxNode) -> Option<Self> {
31653        let res = match syntax.kind() {
31654            SyntaxKind::ALTER_SET_STATISTICS => {
31655                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
31656            }
31657            SyntaxKind::ATTACH_PARTITION => {
31658                AlterIndexAction::AttachPartition(AttachPartition { syntax })
31659            }
31660            SyntaxKind::DEPENDS_ON_EXTENSION => {
31661                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
31662            }
31663            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31664                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31665            }
31666            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
31667            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
31668            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
31669            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
31670            _ => {
31671                return None;
31672            }
31673        };
31674        Some(res)
31675    }
31676    #[inline]
31677    fn syntax(&self) -> &SyntaxNode {
31678        match self {
31679            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
31680            AlterIndexAction::AttachPartition(it) => &it.syntax,
31681            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
31682            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
31683            AlterIndexAction::RenameTo(it) => &it.syntax,
31684            AlterIndexAction::ResetOptions(it) => &it.syntax,
31685            AlterIndexAction::SetOptions(it) => &it.syntax,
31686            AlterIndexAction::SetTablespace(it) => &it.syntax,
31687        }
31688    }
31689}
31690impl From<AlterSetStatistics> for AlterIndexAction {
31691    #[inline]
31692    fn from(node: AlterSetStatistics) -> AlterIndexAction {
31693        AlterIndexAction::AlterSetStatistics(node)
31694    }
31695}
31696impl From<AttachPartition> for AlterIndexAction {
31697    #[inline]
31698    fn from(node: AttachPartition) -> AlterIndexAction {
31699        AlterIndexAction::AttachPartition(node)
31700    }
31701}
31702impl From<DependsOnExtension> for AlterIndexAction {
31703    #[inline]
31704    fn from(node: DependsOnExtension) -> AlterIndexAction {
31705        AlterIndexAction::DependsOnExtension(node)
31706    }
31707}
31708impl From<NoDependsOnExtension> for AlterIndexAction {
31709    #[inline]
31710    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
31711        AlterIndexAction::NoDependsOnExtension(node)
31712    }
31713}
31714impl From<RenameTo> for AlterIndexAction {
31715    #[inline]
31716    fn from(node: RenameTo) -> AlterIndexAction {
31717        AlterIndexAction::RenameTo(node)
31718    }
31719}
31720impl From<ResetOptions> for AlterIndexAction {
31721    #[inline]
31722    fn from(node: ResetOptions) -> AlterIndexAction {
31723        AlterIndexAction::ResetOptions(node)
31724    }
31725}
31726impl From<SetOptions> for AlterIndexAction {
31727    #[inline]
31728    fn from(node: SetOptions) -> AlterIndexAction {
31729        AlterIndexAction::SetOptions(node)
31730    }
31731}
31732impl From<SetTablespace> for AlterIndexAction {
31733    #[inline]
31734    fn from(node: SetTablespace) -> AlterIndexAction {
31735        AlterIndexAction::SetTablespace(node)
31736    }
31737}
31738impl AstNode for AlterMaterializedViewAction {
31739    #[inline]
31740    fn can_cast(kind: SyntaxKind) -> bool {
31741        matches!(
31742            kind,
31743            SyntaxKind::DEPENDS_ON_EXTENSION
31744                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31745                | SyntaxKind::RENAME_COLUMN
31746                | SyntaxKind::RENAME_TO
31747                | SyntaxKind::SET_SCHEMA
31748        )
31749    }
31750    #[inline]
31751    fn cast(syntax: SyntaxNode) -> Option<Self> {
31752        let res = match syntax.kind() {
31753            SyntaxKind::DEPENDS_ON_EXTENSION => {
31754                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
31755            }
31756            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31757                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31758            }
31759            SyntaxKind::RENAME_COLUMN => {
31760                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
31761            }
31762            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
31763            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
31764            _ => {
31765                if let Some(result) = AlterTableAction::cast(syntax) {
31766                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
31767                }
31768                return None;
31769            }
31770        };
31771        Some(res)
31772    }
31773    #[inline]
31774    fn syntax(&self) -> &SyntaxNode {
31775        match self {
31776            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
31777            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
31778            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
31779            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
31780            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
31781            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
31782        }
31783    }
31784}
31785impl From<DependsOnExtension> for AlterMaterializedViewAction {
31786    #[inline]
31787    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
31788        AlterMaterializedViewAction::DependsOnExtension(node)
31789    }
31790}
31791impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
31792    #[inline]
31793    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
31794        AlterMaterializedViewAction::NoDependsOnExtension(node)
31795    }
31796}
31797impl From<RenameColumn> for AlterMaterializedViewAction {
31798    #[inline]
31799    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
31800        AlterMaterializedViewAction::RenameColumn(node)
31801    }
31802}
31803impl From<RenameTo> for AlterMaterializedViewAction {
31804    #[inline]
31805    fn from(node: RenameTo) -> AlterMaterializedViewAction {
31806        AlterMaterializedViewAction::RenameTo(node)
31807    }
31808}
31809impl From<SetSchema> for AlterMaterializedViewAction {
31810    #[inline]
31811    fn from(node: SetSchema) -> AlterMaterializedViewAction {
31812        AlterMaterializedViewAction::SetSchema(node)
31813    }
31814}
31815impl AstNode for AlterPropertyGraphAction {
31816    #[inline]
31817    fn can_cast(kind: SyntaxKind) -> bool {
31818        matches!(
31819            kind,
31820            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
31821                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
31822                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
31823                | SyntaxKind::DROP_EDGE_TABLES
31824                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
31825                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
31826                | SyntaxKind::DROP_VERTEX_TABLES
31827                | SyntaxKind::OWNER_TO
31828                | SyntaxKind::RENAME_TO
31829                | SyntaxKind::SET_SCHEMA
31830        )
31831    }
31832    #[inline]
31833    fn cast(syntax: SyntaxNode) -> Option<Self> {
31834        let res = match syntax.kind() {
31835            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
31836                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
31837                    AddVertexEdgeLabelProperties { syntax },
31838                )
31839            }
31840            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
31841                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
31842            }
31843            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
31844                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
31845            }
31846            SyntaxKind::DROP_EDGE_TABLES => {
31847                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
31848            }
31849            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
31850                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
31851            }
31852            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
31853                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
31854                    DropVertexEdgeLabelProperties { syntax },
31855                )
31856            }
31857            SyntaxKind::DROP_VERTEX_TABLES => {
31858                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
31859            }
31860            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
31861            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
31862            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
31863            _ => {
31864                return None;
31865            }
31866        };
31867        Some(res)
31868    }
31869    #[inline]
31870    fn syntax(&self) -> &SyntaxNode {
31871        match self {
31872            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
31873            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
31874            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
31875            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
31876            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
31877            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
31878            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
31879            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
31880            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
31881            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
31882        }
31883    }
31884}
31885impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31886    #[inline]
31887    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31888        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
31889    }
31890}
31891impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
31892    #[inline]
31893    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
31894        AlterPropertyGraphAction::AddVertexEdgeTables(node)
31895    }
31896}
31897impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
31898    #[inline]
31899    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
31900        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
31901    }
31902}
31903impl From<DropEdgeTables> for AlterPropertyGraphAction {
31904    #[inline]
31905    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
31906        AlterPropertyGraphAction::DropEdgeTables(node)
31907    }
31908}
31909impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
31910    #[inline]
31911    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
31912        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
31913    }
31914}
31915impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31916    #[inline]
31917    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31918        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
31919    }
31920}
31921impl From<DropVertexTables> for AlterPropertyGraphAction {
31922    #[inline]
31923    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
31924        AlterPropertyGraphAction::DropVertexTables(node)
31925    }
31926}
31927impl From<OwnerTo> for AlterPropertyGraphAction {
31928    #[inline]
31929    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
31930        AlterPropertyGraphAction::OwnerTo(node)
31931    }
31932}
31933impl From<RenameTo> for AlterPropertyGraphAction {
31934    #[inline]
31935    fn from(node: RenameTo) -> AlterPropertyGraphAction {
31936        AlterPropertyGraphAction::RenameTo(node)
31937    }
31938}
31939impl From<SetSchema> for AlterPropertyGraphAction {
31940    #[inline]
31941    fn from(node: SetSchema) -> AlterPropertyGraphAction {
31942        AlterPropertyGraphAction::SetSchema(node)
31943    }
31944}
31945impl AstNode for AlterTableAction {
31946    #[inline]
31947    fn can_cast(kind: SyntaxKind) -> bool {
31948        matches!(
31949            kind,
31950            SyntaxKind::ADD_COLUMN
31951                | SyntaxKind::ADD_CONSTRAINT
31952                | SyntaxKind::ALTER_COLUMN
31953                | SyntaxKind::ALTER_CONSTRAINT
31954                | SyntaxKind::ATTACH_PARTITION
31955                | SyntaxKind::CLUSTER_ON
31956                | SyntaxKind::DETACH_PARTITION
31957                | SyntaxKind::DISABLE_RLS
31958                | SyntaxKind::DISABLE_RULE
31959                | SyntaxKind::DISABLE_TRIGGER
31960                | SyntaxKind::DROP_COLUMN
31961                | SyntaxKind::DROP_CONSTRAINT
31962                | SyntaxKind::ENABLE_ALWAYS_RULE
31963                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
31964                | SyntaxKind::ENABLE_REPLICA_RULE
31965                | SyntaxKind::ENABLE_REPLICA_TRIGGER
31966                | SyntaxKind::ENABLE_RLS
31967                | SyntaxKind::ENABLE_RULE
31968                | SyntaxKind::ENABLE_TRIGGER
31969                | SyntaxKind::FORCE_RLS
31970                | SyntaxKind::INHERIT_TABLE
31971                | SyntaxKind::MERGE_PARTITIONS
31972                | SyntaxKind::NO_FORCE_RLS
31973                | SyntaxKind::NO_INHERIT_TABLE
31974                | SyntaxKind::NOT_OF
31975                | SyntaxKind::OF_TYPE
31976                | SyntaxKind::OPTION_ITEM_LIST
31977                | SyntaxKind::OWNER_TO
31978                | SyntaxKind::RENAME_COLUMN
31979                | SyntaxKind::RENAME_CONSTRAINT
31980                | SyntaxKind::RENAME_TO
31981                | SyntaxKind::REPLICA_IDENTITY
31982                | SyntaxKind::RESET_OPTIONS
31983                | SyntaxKind::SET_ACCESS_METHOD
31984                | SyntaxKind::SET_LOGGED
31985                | SyntaxKind::SET_OPTIONS
31986                | SyntaxKind::SET_SCHEMA
31987                | SyntaxKind::SET_TABLESPACE
31988                | SyntaxKind::SET_UNLOGGED
31989                | SyntaxKind::SET_WITHOUT_CLUSTER
31990                | SyntaxKind::SET_WITHOUT_OIDS
31991                | SyntaxKind::SPLIT_PARTITION
31992                | SyntaxKind::VALIDATE_CONSTRAINT
31993        )
31994    }
31995    #[inline]
31996    fn cast(syntax: SyntaxNode) -> Option<Self> {
31997        let res = match syntax.kind() {
31998            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
31999            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
32000            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
32001            SyntaxKind::ALTER_CONSTRAINT => {
32002                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
32003            }
32004            SyntaxKind::ATTACH_PARTITION => {
32005                AlterTableAction::AttachPartition(AttachPartition { syntax })
32006            }
32007            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
32008            SyntaxKind::DETACH_PARTITION => {
32009                AlterTableAction::DetachPartition(DetachPartition { syntax })
32010            }
32011            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
32012            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
32013            SyntaxKind::DISABLE_TRIGGER => {
32014                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
32015            }
32016            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
32017            SyntaxKind::DROP_CONSTRAINT => {
32018                AlterTableAction::DropConstraint(DropConstraint { syntax })
32019            }
32020            SyntaxKind::ENABLE_ALWAYS_RULE => {
32021                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
32022            }
32023            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
32024                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
32025            }
32026            SyntaxKind::ENABLE_REPLICA_RULE => {
32027                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
32028            }
32029            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
32030                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
32031            }
32032            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
32033            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
32034            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
32035            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
32036            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
32037            SyntaxKind::MERGE_PARTITIONS => {
32038                AlterTableAction::MergePartitions(MergePartitions { syntax })
32039            }
32040            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
32041            SyntaxKind::NO_INHERIT_TABLE => {
32042                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
32043            }
32044            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
32045            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
32046            SyntaxKind::OPTION_ITEM_LIST => {
32047                AlterTableAction::OptionItemList(OptionItemList { syntax })
32048            }
32049            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
32050            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
32051            SyntaxKind::RENAME_CONSTRAINT => {
32052                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
32053            }
32054            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
32055            SyntaxKind::REPLICA_IDENTITY => {
32056                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
32057            }
32058            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
32059            SyntaxKind::SET_ACCESS_METHOD => {
32060                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
32061            }
32062            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
32063            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
32064            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
32065            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
32066            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
32067            SyntaxKind::SET_WITHOUT_CLUSTER => {
32068                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
32069            }
32070            SyntaxKind::SET_WITHOUT_OIDS => {
32071                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
32072            }
32073            SyntaxKind::SPLIT_PARTITION => {
32074                AlterTableAction::SplitPartition(SplitPartition { syntax })
32075            }
32076            SyntaxKind::VALIDATE_CONSTRAINT => {
32077                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
32078            }
32079            _ => {
32080                return None;
32081            }
32082        };
32083        Some(res)
32084    }
32085    #[inline]
32086    fn syntax(&self) -> &SyntaxNode {
32087        match self {
32088            AlterTableAction::AddColumn(it) => &it.syntax,
32089            AlterTableAction::AddConstraint(it) => &it.syntax,
32090            AlterTableAction::AlterColumn(it) => &it.syntax,
32091            AlterTableAction::AlterConstraint(it) => &it.syntax,
32092            AlterTableAction::AttachPartition(it) => &it.syntax,
32093            AlterTableAction::ClusterOn(it) => &it.syntax,
32094            AlterTableAction::DetachPartition(it) => &it.syntax,
32095            AlterTableAction::DisableRls(it) => &it.syntax,
32096            AlterTableAction::DisableRule(it) => &it.syntax,
32097            AlterTableAction::DisableTrigger(it) => &it.syntax,
32098            AlterTableAction::DropColumn(it) => &it.syntax,
32099            AlterTableAction::DropConstraint(it) => &it.syntax,
32100            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
32101            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
32102            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
32103            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
32104            AlterTableAction::EnableRls(it) => &it.syntax,
32105            AlterTableAction::EnableRule(it) => &it.syntax,
32106            AlterTableAction::EnableTrigger(it) => &it.syntax,
32107            AlterTableAction::ForceRls(it) => &it.syntax,
32108            AlterTableAction::InheritTable(it) => &it.syntax,
32109            AlterTableAction::MergePartitions(it) => &it.syntax,
32110            AlterTableAction::NoForceRls(it) => &it.syntax,
32111            AlterTableAction::NoInheritTable(it) => &it.syntax,
32112            AlterTableAction::NotOf(it) => &it.syntax,
32113            AlterTableAction::OfType(it) => &it.syntax,
32114            AlterTableAction::OptionItemList(it) => &it.syntax,
32115            AlterTableAction::OwnerTo(it) => &it.syntax,
32116            AlterTableAction::RenameColumn(it) => &it.syntax,
32117            AlterTableAction::RenameConstraint(it) => &it.syntax,
32118            AlterTableAction::RenameTo(it) => &it.syntax,
32119            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
32120            AlterTableAction::ResetOptions(it) => &it.syntax,
32121            AlterTableAction::SetAccessMethod(it) => &it.syntax,
32122            AlterTableAction::SetLogged(it) => &it.syntax,
32123            AlterTableAction::SetOptions(it) => &it.syntax,
32124            AlterTableAction::SetSchema(it) => &it.syntax,
32125            AlterTableAction::SetTablespace(it) => &it.syntax,
32126            AlterTableAction::SetUnlogged(it) => &it.syntax,
32127            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
32128            AlterTableAction::SetWithoutOids(it) => &it.syntax,
32129            AlterTableAction::SplitPartition(it) => &it.syntax,
32130            AlterTableAction::ValidateConstraint(it) => &it.syntax,
32131        }
32132    }
32133}
32134impl From<AddColumn> for AlterTableAction {
32135    #[inline]
32136    fn from(node: AddColumn) -> AlterTableAction {
32137        AlterTableAction::AddColumn(node)
32138    }
32139}
32140impl From<AddConstraint> for AlterTableAction {
32141    #[inline]
32142    fn from(node: AddConstraint) -> AlterTableAction {
32143        AlterTableAction::AddConstraint(node)
32144    }
32145}
32146impl From<AlterColumn> for AlterTableAction {
32147    #[inline]
32148    fn from(node: AlterColumn) -> AlterTableAction {
32149        AlterTableAction::AlterColumn(node)
32150    }
32151}
32152impl From<AlterConstraint> for AlterTableAction {
32153    #[inline]
32154    fn from(node: AlterConstraint) -> AlterTableAction {
32155        AlterTableAction::AlterConstraint(node)
32156    }
32157}
32158impl From<AttachPartition> for AlterTableAction {
32159    #[inline]
32160    fn from(node: AttachPartition) -> AlterTableAction {
32161        AlterTableAction::AttachPartition(node)
32162    }
32163}
32164impl From<ClusterOn> for AlterTableAction {
32165    #[inline]
32166    fn from(node: ClusterOn) -> AlterTableAction {
32167        AlterTableAction::ClusterOn(node)
32168    }
32169}
32170impl From<DetachPartition> for AlterTableAction {
32171    #[inline]
32172    fn from(node: DetachPartition) -> AlterTableAction {
32173        AlterTableAction::DetachPartition(node)
32174    }
32175}
32176impl From<DisableRls> for AlterTableAction {
32177    #[inline]
32178    fn from(node: DisableRls) -> AlterTableAction {
32179        AlterTableAction::DisableRls(node)
32180    }
32181}
32182impl From<DisableRule> for AlterTableAction {
32183    #[inline]
32184    fn from(node: DisableRule) -> AlterTableAction {
32185        AlterTableAction::DisableRule(node)
32186    }
32187}
32188impl From<DisableTrigger> for AlterTableAction {
32189    #[inline]
32190    fn from(node: DisableTrigger) -> AlterTableAction {
32191        AlterTableAction::DisableTrigger(node)
32192    }
32193}
32194impl From<DropColumn> for AlterTableAction {
32195    #[inline]
32196    fn from(node: DropColumn) -> AlterTableAction {
32197        AlterTableAction::DropColumn(node)
32198    }
32199}
32200impl From<DropConstraint> for AlterTableAction {
32201    #[inline]
32202    fn from(node: DropConstraint) -> AlterTableAction {
32203        AlterTableAction::DropConstraint(node)
32204    }
32205}
32206impl From<EnableAlwaysRule> for AlterTableAction {
32207    #[inline]
32208    fn from(node: EnableAlwaysRule) -> AlterTableAction {
32209        AlterTableAction::EnableAlwaysRule(node)
32210    }
32211}
32212impl From<EnableAlwaysTrigger> for AlterTableAction {
32213    #[inline]
32214    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
32215        AlterTableAction::EnableAlwaysTrigger(node)
32216    }
32217}
32218impl From<EnableReplicaRule> for AlterTableAction {
32219    #[inline]
32220    fn from(node: EnableReplicaRule) -> AlterTableAction {
32221        AlterTableAction::EnableReplicaRule(node)
32222    }
32223}
32224impl From<EnableReplicaTrigger> for AlterTableAction {
32225    #[inline]
32226    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
32227        AlterTableAction::EnableReplicaTrigger(node)
32228    }
32229}
32230impl From<EnableRls> for AlterTableAction {
32231    #[inline]
32232    fn from(node: EnableRls) -> AlterTableAction {
32233        AlterTableAction::EnableRls(node)
32234    }
32235}
32236impl From<EnableRule> for AlterTableAction {
32237    #[inline]
32238    fn from(node: EnableRule) -> AlterTableAction {
32239        AlterTableAction::EnableRule(node)
32240    }
32241}
32242impl From<EnableTrigger> for AlterTableAction {
32243    #[inline]
32244    fn from(node: EnableTrigger) -> AlterTableAction {
32245        AlterTableAction::EnableTrigger(node)
32246    }
32247}
32248impl From<ForceRls> for AlterTableAction {
32249    #[inline]
32250    fn from(node: ForceRls) -> AlterTableAction {
32251        AlterTableAction::ForceRls(node)
32252    }
32253}
32254impl From<InheritTable> for AlterTableAction {
32255    #[inline]
32256    fn from(node: InheritTable) -> AlterTableAction {
32257        AlterTableAction::InheritTable(node)
32258    }
32259}
32260impl From<MergePartitions> for AlterTableAction {
32261    #[inline]
32262    fn from(node: MergePartitions) -> AlterTableAction {
32263        AlterTableAction::MergePartitions(node)
32264    }
32265}
32266impl From<NoForceRls> for AlterTableAction {
32267    #[inline]
32268    fn from(node: NoForceRls) -> AlterTableAction {
32269        AlterTableAction::NoForceRls(node)
32270    }
32271}
32272impl From<NoInheritTable> for AlterTableAction {
32273    #[inline]
32274    fn from(node: NoInheritTable) -> AlterTableAction {
32275        AlterTableAction::NoInheritTable(node)
32276    }
32277}
32278impl From<NotOf> for AlterTableAction {
32279    #[inline]
32280    fn from(node: NotOf) -> AlterTableAction {
32281        AlterTableAction::NotOf(node)
32282    }
32283}
32284impl From<OfType> for AlterTableAction {
32285    #[inline]
32286    fn from(node: OfType) -> AlterTableAction {
32287        AlterTableAction::OfType(node)
32288    }
32289}
32290impl From<OptionItemList> for AlterTableAction {
32291    #[inline]
32292    fn from(node: OptionItemList) -> AlterTableAction {
32293        AlterTableAction::OptionItemList(node)
32294    }
32295}
32296impl From<OwnerTo> for AlterTableAction {
32297    #[inline]
32298    fn from(node: OwnerTo) -> AlterTableAction {
32299        AlterTableAction::OwnerTo(node)
32300    }
32301}
32302impl From<RenameColumn> for AlterTableAction {
32303    #[inline]
32304    fn from(node: RenameColumn) -> AlterTableAction {
32305        AlterTableAction::RenameColumn(node)
32306    }
32307}
32308impl From<RenameConstraint> for AlterTableAction {
32309    #[inline]
32310    fn from(node: RenameConstraint) -> AlterTableAction {
32311        AlterTableAction::RenameConstraint(node)
32312    }
32313}
32314impl From<RenameTo> for AlterTableAction {
32315    #[inline]
32316    fn from(node: RenameTo) -> AlterTableAction {
32317        AlterTableAction::RenameTo(node)
32318    }
32319}
32320impl From<ReplicaIdentity> for AlterTableAction {
32321    #[inline]
32322    fn from(node: ReplicaIdentity) -> AlterTableAction {
32323        AlterTableAction::ReplicaIdentity(node)
32324    }
32325}
32326impl From<ResetOptions> for AlterTableAction {
32327    #[inline]
32328    fn from(node: ResetOptions) -> AlterTableAction {
32329        AlterTableAction::ResetOptions(node)
32330    }
32331}
32332impl From<SetAccessMethod> for AlterTableAction {
32333    #[inline]
32334    fn from(node: SetAccessMethod) -> AlterTableAction {
32335        AlterTableAction::SetAccessMethod(node)
32336    }
32337}
32338impl From<SetLogged> for AlterTableAction {
32339    #[inline]
32340    fn from(node: SetLogged) -> AlterTableAction {
32341        AlterTableAction::SetLogged(node)
32342    }
32343}
32344impl From<SetOptions> for AlterTableAction {
32345    #[inline]
32346    fn from(node: SetOptions) -> AlterTableAction {
32347        AlterTableAction::SetOptions(node)
32348    }
32349}
32350impl From<SetSchema> for AlterTableAction {
32351    #[inline]
32352    fn from(node: SetSchema) -> AlterTableAction {
32353        AlterTableAction::SetSchema(node)
32354    }
32355}
32356impl From<SetTablespace> for AlterTableAction {
32357    #[inline]
32358    fn from(node: SetTablespace) -> AlterTableAction {
32359        AlterTableAction::SetTablespace(node)
32360    }
32361}
32362impl From<SetUnlogged> for AlterTableAction {
32363    #[inline]
32364    fn from(node: SetUnlogged) -> AlterTableAction {
32365        AlterTableAction::SetUnlogged(node)
32366    }
32367}
32368impl From<SetWithoutCluster> for AlterTableAction {
32369    #[inline]
32370    fn from(node: SetWithoutCluster) -> AlterTableAction {
32371        AlterTableAction::SetWithoutCluster(node)
32372    }
32373}
32374impl From<SetWithoutOids> for AlterTableAction {
32375    #[inline]
32376    fn from(node: SetWithoutOids) -> AlterTableAction {
32377        AlterTableAction::SetWithoutOids(node)
32378    }
32379}
32380impl From<SplitPartition> for AlterTableAction {
32381    #[inline]
32382    fn from(node: SplitPartition) -> AlterTableAction {
32383        AlterTableAction::SplitPartition(node)
32384    }
32385}
32386impl From<ValidateConstraint> for AlterTableAction {
32387    #[inline]
32388    fn from(node: ValidateConstraint) -> AlterTableAction {
32389        AlterTableAction::ValidateConstraint(node)
32390    }
32391}
32392impl AstNode for AlterTypeAction {
32393    #[inline]
32394    fn can_cast(kind: SyntaxKind) -> bool {
32395        matches!(
32396            kind,
32397            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
32398        )
32399    }
32400    #[inline]
32401    fn cast(syntax: SyntaxNode) -> Option<Self> {
32402        let res = match syntax.kind() {
32403            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
32404            SyntaxKind::ALTER_ATTRIBUTE => {
32405                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
32406            }
32407            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
32408            _ => {
32409                return None;
32410            }
32411        };
32412        Some(res)
32413    }
32414    #[inline]
32415    fn syntax(&self) -> &SyntaxNode {
32416        match self {
32417            AlterTypeAction::AddAttribute(it) => &it.syntax,
32418            AlterTypeAction::AlterAttribute(it) => &it.syntax,
32419            AlterTypeAction::DropAttribute(it) => &it.syntax,
32420        }
32421    }
32422}
32423impl From<AddAttribute> for AlterTypeAction {
32424    #[inline]
32425    fn from(node: AddAttribute) -> AlterTypeAction {
32426        AlterTypeAction::AddAttribute(node)
32427    }
32428}
32429impl From<AlterAttribute> for AlterTypeAction {
32430    #[inline]
32431    fn from(node: AlterAttribute) -> AlterTypeAction {
32432        AlterTypeAction::AlterAttribute(node)
32433    }
32434}
32435impl From<DropAttribute> for AlterTypeAction {
32436    #[inline]
32437    fn from(node: DropAttribute) -> AlterTypeAction {
32438        AlterTypeAction::DropAttribute(node)
32439    }
32440}
32441impl AstNode for ColumnConstraint {
32442    #[inline]
32443    fn can_cast(kind: SyntaxKind) -> bool {
32444        matches!(
32445            kind,
32446            SyntaxKind::CHECK_CONSTRAINT
32447                | SyntaxKind::DEFAULT_CONSTRAINT
32448                | SyntaxKind::EXCLUDE_CONSTRAINT
32449                | SyntaxKind::NOT_NULL_CONSTRAINT
32450                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32451                | SyntaxKind::REFERENCES_CONSTRAINT
32452                | SyntaxKind::UNIQUE_CONSTRAINT
32453        )
32454    }
32455    #[inline]
32456    fn cast(syntax: SyntaxNode) -> Option<Self> {
32457        let res = match syntax.kind() {
32458            SyntaxKind::CHECK_CONSTRAINT => {
32459                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
32460            }
32461            SyntaxKind::DEFAULT_CONSTRAINT => {
32462                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
32463            }
32464            SyntaxKind::EXCLUDE_CONSTRAINT => {
32465                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32466            }
32467            SyntaxKind::NOT_NULL_CONSTRAINT => {
32468                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
32469            }
32470            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32471                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32472            }
32473            SyntaxKind::REFERENCES_CONSTRAINT => {
32474                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
32475            }
32476            SyntaxKind::UNIQUE_CONSTRAINT => {
32477                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
32478            }
32479            _ => {
32480                return None;
32481            }
32482        };
32483        Some(res)
32484    }
32485    #[inline]
32486    fn syntax(&self) -> &SyntaxNode {
32487        match self {
32488            ColumnConstraint::CheckConstraint(it) => &it.syntax,
32489            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
32490            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
32491            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
32492            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32493            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
32494            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
32495        }
32496    }
32497}
32498impl From<CheckConstraint> for ColumnConstraint {
32499    #[inline]
32500    fn from(node: CheckConstraint) -> ColumnConstraint {
32501        ColumnConstraint::CheckConstraint(node)
32502    }
32503}
32504impl From<DefaultConstraint> for ColumnConstraint {
32505    #[inline]
32506    fn from(node: DefaultConstraint) -> ColumnConstraint {
32507        ColumnConstraint::DefaultConstraint(node)
32508    }
32509}
32510impl From<ExcludeConstraint> for ColumnConstraint {
32511    #[inline]
32512    fn from(node: ExcludeConstraint) -> ColumnConstraint {
32513        ColumnConstraint::ExcludeConstraint(node)
32514    }
32515}
32516impl From<NotNullConstraint> for ColumnConstraint {
32517    #[inline]
32518    fn from(node: NotNullConstraint) -> ColumnConstraint {
32519        ColumnConstraint::NotNullConstraint(node)
32520    }
32521}
32522impl From<PrimaryKeyConstraint> for ColumnConstraint {
32523    #[inline]
32524    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
32525        ColumnConstraint::PrimaryKeyConstraint(node)
32526    }
32527}
32528impl From<ReferencesConstraint> for ColumnConstraint {
32529    #[inline]
32530    fn from(node: ReferencesConstraint) -> ColumnConstraint {
32531        ColumnConstraint::ReferencesConstraint(node)
32532    }
32533}
32534impl From<UniqueConstraint> for ColumnConstraint {
32535    #[inline]
32536    fn from(node: UniqueConstraint) -> ColumnConstraint {
32537        ColumnConstraint::UniqueConstraint(node)
32538    }
32539}
32540impl AstNode for ConfigValue {
32541    #[inline]
32542    fn can_cast(kind: SyntaxKind) -> bool {
32543        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
32544    }
32545    #[inline]
32546    fn cast(syntax: SyntaxNode) -> Option<Self> {
32547        let res = match syntax.kind() {
32548            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
32549            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
32550            _ => {
32551                return None;
32552            }
32553        };
32554        Some(res)
32555    }
32556    #[inline]
32557    fn syntax(&self) -> &SyntaxNode {
32558        match self {
32559            ConfigValue::Literal(it) => &it.syntax,
32560            ConfigValue::NameRef(it) => &it.syntax,
32561        }
32562    }
32563}
32564impl From<Literal> for ConfigValue {
32565    #[inline]
32566    fn from(node: Literal) -> ConfigValue {
32567        ConfigValue::Literal(node)
32568    }
32569}
32570impl From<NameRef> for ConfigValue {
32571    #[inline]
32572    fn from(node: NameRef) -> ConfigValue {
32573        ConfigValue::NameRef(node)
32574    }
32575}
32576impl AstNode for ConflictAction {
32577    #[inline]
32578    fn can_cast(kind: SyntaxKind) -> bool {
32579        matches!(
32580            kind,
32581            SyntaxKind::CONFLICT_DO_NOTHING
32582                | SyntaxKind::CONFLICT_DO_SELECT
32583                | SyntaxKind::CONFLICT_DO_UPDATE_SET
32584        )
32585    }
32586    #[inline]
32587    fn cast(syntax: SyntaxNode) -> Option<Self> {
32588        let res = match syntax.kind() {
32589            SyntaxKind::CONFLICT_DO_NOTHING => {
32590                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
32591            }
32592            SyntaxKind::CONFLICT_DO_SELECT => {
32593                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
32594            }
32595            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
32596                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
32597            }
32598            _ => {
32599                return None;
32600            }
32601        };
32602        Some(res)
32603    }
32604    #[inline]
32605    fn syntax(&self) -> &SyntaxNode {
32606        match self {
32607            ConflictAction::ConflictDoNothing(it) => &it.syntax,
32608            ConflictAction::ConflictDoSelect(it) => &it.syntax,
32609            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
32610        }
32611    }
32612}
32613impl From<ConflictDoNothing> for ConflictAction {
32614    #[inline]
32615    fn from(node: ConflictDoNothing) -> ConflictAction {
32616        ConflictAction::ConflictDoNothing(node)
32617    }
32618}
32619impl From<ConflictDoSelect> for ConflictAction {
32620    #[inline]
32621    fn from(node: ConflictDoSelect) -> ConflictAction {
32622        ConflictAction::ConflictDoSelect(node)
32623    }
32624}
32625impl From<ConflictDoUpdateSet> for ConflictAction {
32626    #[inline]
32627    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
32628        ConflictAction::ConflictDoUpdateSet(node)
32629    }
32630}
32631impl AstNode for ConflictTarget {
32632    #[inline]
32633    fn can_cast(kind: SyntaxKind) -> bool {
32634        matches!(
32635            kind,
32636            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
32637        )
32638    }
32639    #[inline]
32640    fn cast(syntax: SyntaxNode) -> Option<Self> {
32641        let res = match syntax.kind() {
32642            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
32643                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
32644            }
32645            SyntaxKind::CONFLICT_ON_INDEX => {
32646                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
32647            }
32648            _ => {
32649                return None;
32650            }
32651        };
32652        Some(res)
32653    }
32654    #[inline]
32655    fn syntax(&self) -> &SyntaxNode {
32656        match self {
32657            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
32658            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
32659        }
32660    }
32661}
32662impl From<ConflictOnConstraint> for ConflictTarget {
32663    #[inline]
32664    fn from(node: ConflictOnConstraint) -> ConflictTarget {
32665        ConflictTarget::ConflictOnConstraint(node)
32666    }
32667}
32668impl From<ConflictOnIndex> for ConflictTarget {
32669    #[inline]
32670    fn from(node: ConflictOnIndex) -> ConflictTarget {
32671        ConflictTarget::ConflictOnIndex(node)
32672    }
32673}
32674impl AstNode for Constraint {
32675    #[inline]
32676    fn can_cast(kind: SyntaxKind) -> bool {
32677        matches!(
32678            kind,
32679            SyntaxKind::CHECK_CONSTRAINT
32680                | SyntaxKind::DEFAULT_CONSTRAINT
32681                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32682                | SyntaxKind::GENERATED_CONSTRAINT
32683                | SyntaxKind::NOT_NULL_CONSTRAINT
32684                | SyntaxKind::NULL_CONSTRAINT
32685                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32686                | SyntaxKind::REFERENCES_CONSTRAINT
32687                | SyntaxKind::UNIQUE_CONSTRAINT
32688        )
32689    }
32690    #[inline]
32691    fn cast(syntax: SyntaxNode) -> Option<Self> {
32692        let res = match syntax.kind() {
32693            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
32694            SyntaxKind::DEFAULT_CONSTRAINT => {
32695                Constraint::DefaultConstraint(DefaultConstraint { syntax })
32696            }
32697            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32698                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32699            }
32700            SyntaxKind::GENERATED_CONSTRAINT => {
32701                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
32702            }
32703            SyntaxKind::NOT_NULL_CONSTRAINT => {
32704                Constraint::NotNullConstraint(NotNullConstraint { syntax })
32705            }
32706            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
32707            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32708                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32709            }
32710            SyntaxKind::REFERENCES_CONSTRAINT => {
32711                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
32712            }
32713            SyntaxKind::UNIQUE_CONSTRAINT => {
32714                Constraint::UniqueConstraint(UniqueConstraint { syntax })
32715            }
32716            _ => {
32717                return None;
32718            }
32719        };
32720        Some(res)
32721    }
32722    #[inline]
32723    fn syntax(&self) -> &SyntaxNode {
32724        match self {
32725            Constraint::CheckConstraint(it) => &it.syntax,
32726            Constraint::DefaultConstraint(it) => &it.syntax,
32727            Constraint::ForeignKeyConstraint(it) => &it.syntax,
32728            Constraint::GeneratedConstraint(it) => &it.syntax,
32729            Constraint::NotNullConstraint(it) => &it.syntax,
32730            Constraint::NullConstraint(it) => &it.syntax,
32731            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
32732            Constraint::ReferencesConstraint(it) => &it.syntax,
32733            Constraint::UniqueConstraint(it) => &it.syntax,
32734        }
32735    }
32736}
32737impl From<CheckConstraint> for Constraint {
32738    #[inline]
32739    fn from(node: CheckConstraint) -> Constraint {
32740        Constraint::CheckConstraint(node)
32741    }
32742}
32743impl From<DefaultConstraint> for Constraint {
32744    #[inline]
32745    fn from(node: DefaultConstraint) -> Constraint {
32746        Constraint::DefaultConstraint(node)
32747    }
32748}
32749impl From<ForeignKeyConstraint> for Constraint {
32750    #[inline]
32751    fn from(node: ForeignKeyConstraint) -> Constraint {
32752        Constraint::ForeignKeyConstraint(node)
32753    }
32754}
32755impl From<GeneratedConstraint> for Constraint {
32756    #[inline]
32757    fn from(node: GeneratedConstraint) -> Constraint {
32758        Constraint::GeneratedConstraint(node)
32759    }
32760}
32761impl From<NotNullConstraint> for Constraint {
32762    #[inline]
32763    fn from(node: NotNullConstraint) -> Constraint {
32764        Constraint::NotNullConstraint(node)
32765    }
32766}
32767impl From<NullConstraint> for Constraint {
32768    #[inline]
32769    fn from(node: NullConstraint) -> Constraint {
32770        Constraint::NullConstraint(node)
32771    }
32772}
32773impl From<PrimaryKeyConstraint> for Constraint {
32774    #[inline]
32775    fn from(node: PrimaryKeyConstraint) -> Constraint {
32776        Constraint::PrimaryKeyConstraint(node)
32777    }
32778}
32779impl From<ReferencesConstraint> for Constraint {
32780    #[inline]
32781    fn from(node: ReferencesConstraint) -> Constraint {
32782        Constraint::ReferencesConstraint(node)
32783    }
32784}
32785impl From<UniqueConstraint> for Constraint {
32786    #[inline]
32787    fn from(node: UniqueConstraint) -> Constraint {
32788        Constraint::UniqueConstraint(node)
32789    }
32790}
32791impl AstNode for ElementTableLabelAndProperties {
32792    #[inline]
32793    fn can_cast(kind: SyntaxKind) -> bool {
32794        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
32795    }
32796    #[inline]
32797    fn cast(syntax: SyntaxNode) -> Option<Self> {
32798        let res = match syntax.kind() {
32799            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
32800                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
32801                    syntax,
32802                })
32803            }
32804            _ => {
32805                if let Some(result) = ElementTableProperties::cast(syntax) {
32806                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
32807                        result,
32808                    ));
32809                }
32810                return None;
32811            }
32812        };
32813        Some(res)
32814    }
32815    #[inline]
32816    fn syntax(&self) -> &SyntaxNode {
32817        match self {
32818            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
32819            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
32820        }
32821    }
32822}
32823impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
32824    #[inline]
32825    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
32826        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
32827    }
32828}
32829impl AstNode for ElementTableProperties {
32830    #[inline]
32831    fn can_cast(kind: SyntaxKind) -> bool {
32832        matches!(
32833            kind,
32834            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES_LIST
32835        )
32836    }
32837    #[inline]
32838    fn cast(syntax: SyntaxNode) -> Option<Self> {
32839        let res = match syntax.kind() {
32840            SyntaxKind::ALL_PROPERTIES => {
32841                ElementTableProperties::AllProperties(AllProperties { syntax })
32842            }
32843            SyntaxKind::NO_PROPERTIES => {
32844                ElementTableProperties::NoProperties(NoProperties { syntax })
32845            }
32846            SyntaxKind::PROPERTIES_LIST => {
32847                ElementTableProperties::PropertiesList(PropertiesList { syntax })
32848            }
32849            _ => {
32850                return None;
32851            }
32852        };
32853        Some(res)
32854    }
32855    #[inline]
32856    fn syntax(&self) -> &SyntaxNode {
32857        match self {
32858            ElementTableProperties::AllProperties(it) => &it.syntax,
32859            ElementTableProperties::NoProperties(it) => &it.syntax,
32860            ElementTableProperties::PropertiesList(it) => &it.syntax,
32861        }
32862    }
32863}
32864impl From<AllProperties> for ElementTableProperties {
32865    #[inline]
32866    fn from(node: AllProperties) -> ElementTableProperties {
32867        ElementTableProperties::AllProperties(node)
32868    }
32869}
32870impl From<NoProperties> for ElementTableProperties {
32871    #[inline]
32872    fn from(node: NoProperties) -> ElementTableProperties {
32873        ElementTableProperties::NoProperties(node)
32874    }
32875}
32876impl From<PropertiesList> for ElementTableProperties {
32877    #[inline]
32878    fn from(node: PropertiesList) -> ElementTableProperties {
32879        ElementTableProperties::PropertiesList(node)
32880    }
32881}
32882impl AstNode for ExplainStmt {
32883    #[inline]
32884    fn can_cast(kind: SyntaxKind) -> bool {
32885        matches!(
32886            kind,
32887            SyntaxKind::COMPOUND_SELECT
32888                | SyntaxKind::CREATE_MATERIALIZED_VIEW
32889                | SyntaxKind::CREATE_TABLE_AS
32890                | SyntaxKind::DECLARE
32891                | SyntaxKind::DELETE
32892                | SyntaxKind::EXECUTE
32893                | SyntaxKind::INSERT
32894                | SyntaxKind::MERGE
32895                | SyntaxKind::PAREN_SELECT
32896                | SyntaxKind::SELECT
32897                | SyntaxKind::SELECT_INTO
32898                | SyntaxKind::TABLE
32899                | SyntaxKind::UPDATE
32900                | SyntaxKind::VALUES
32901        )
32902    }
32903    #[inline]
32904    fn cast(syntax: SyntaxNode) -> Option<Self> {
32905        let res = match syntax.kind() {
32906            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
32907            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
32908                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
32909            }
32910            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
32911            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
32912            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
32913            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
32914            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
32915            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
32916            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
32917            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
32918            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
32919            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
32920            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
32921            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
32922            _ => {
32923                return None;
32924            }
32925        };
32926        Some(res)
32927    }
32928    #[inline]
32929    fn syntax(&self) -> &SyntaxNode {
32930        match self {
32931            ExplainStmt::CompoundSelect(it) => &it.syntax,
32932            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
32933            ExplainStmt::CreateTableAs(it) => &it.syntax,
32934            ExplainStmt::Declare(it) => &it.syntax,
32935            ExplainStmt::Delete(it) => &it.syntax,
32936            ExplainStmt::Execute(it) => &it.syntax,
32937            ExplainStmt::Insert(it) => &it.syntax,
32938            ExplainStmt::Merge(it) => &it.syntax,
32939            ExplainStmt::ParenSelect(it) => &it.syntax,
32940            ExplainStmt::Select(it) => &it.syntax,
32941            ExplainStmt::SelectInto(it) => &it.syntax,
32942            ExplainStmt::Table(it) => &it.syntax,
32943            ExplainStmt::Update(it) => &it.syntax,
32944            ExplainStmt::Values(it) => &it.syntax,
32945        }
32946    }
32947}
32948impl From<CompoundSelect> for ExplainStmt {
32949    #[inline]
32950    fn from(node: CompoundSelect) -> ExplainStmt {
32951        ExplainStmt::CompoundSelect(node)
32952    }
32953}
32954impl From<CreateMaterializedView> for ExplainStmt {
32955    #[inline]
32956    fn from(node: CreateMaterializedView) -> ExplainStmt {
32957        ExplainStmt::CreateMaterializedView(node)
32958    }
32959}
32960impl From<CreateTableAs> for ExplainStmt {
32961    #[inline]
32962    fn from(node: CreateTableAs) -> ExplainStmt {
32963        ExplainStmt::CreateTableAs(node)
32964    }
32965}
32966impl From<Declare> for ExplainStmt {
32967    #[inline]
32968    fn from(node: Declare) -> ExplainStmt {
32969        ExplainStmt::Declare(node)
32970    }
32971}
32972impl From<Delete> for ExplainStmt {
32973    #[inline]
32974    fn from(node: Delete) -> ExplainStmt {
32975        ExplainStmt::Delete(node)
32976    }
32977}
32978impl From<Execute> for ExplainStmt {
32979    #[inline]
32980    fn from(node: Execute) -> ExplainStmt {
32981        ExplainStmt::Execute(node)
32982    }
32983}
32984impl From<Insert> for ExplainStmt {
32985    #[inline]
32986    fn from(node: Insert) -> ExplainStmt {
32987        ExplainStmt::Insert(node)
32988    }
32989}
32990impl From<Merge> for ExplainStmt {
32991    #[inline]
32992    fn from(node: Merge) -> ExplainStmt {
32993        ExplainStmt::Merge(node)
32994    }
32995}
32996impl From<ParenSelect> for ExplainStmt {
32997    #[inline]
32998    fn from(node: ParenSelect) -> ExplainStmt {
32999        ExplainStmt::ParenSelect(node)
33000    }
33001}
33002impl From<Select> for ExplainStmt {
33003    #[inline]
33004    fn from(node: Select) -> ExplainStmt {
33005        ExplainStmt::Select(node)
33006    }
33007}
33008impl From<SelectInto> for ExplainStmt {
33009    #[inline]
33010    fn from(node: SelectInto) -> ExplainStmt {
33011        ExplainStmt::SelectInto(node)
33012    }
33013}
33014impl From<Table> for ExplainStmt {
33015    #[inline]
33016    fn from(node: Table) -> ExplainStmt {
33017        ExplainStmt::Table(node)
33018    }
33019}
33020impl From<Update> for ExplainStmt {
33021    #[inline]
33022    fn from(node: Update) -> ExplainStmt {
33023        ExplainStmt::Update(node)
33024    }
33025}
33026impl From<Values> for ExplainStmt {
33027    #[inline]
33028    fn from(node: Values) -> ExplainStmt {
33029        ExplainStmt::Values(node)
33030    }
33031}
33032impl AstNode for Expr {
33033    #[inline]
33034    fn can_cast(kind: SyntaxKind) -> bool {
33035        matches!(
33036            kind,
33037            SyntaxKind::ARRAY_EXPR
33038                | SyntaxKind::BETWEEN_EXPR
33039                | SyntaxKind::BIN_EXPR
33040                | SyntaxKind::CALL_EXPR
33041                | SyntaxKind::CASE_EXPR
33042                | SyntaxKind::CAST_EXPR
33043                | SyntaxKind::FIELD_EXPR
33044                | SyntaxKind::INDEX_EXPR
33045                | SyntaxKind::LITERAL
33046                | SyntaxKind::NAME_REF
33047                | SyntaxKind::PAREN_EXPR
33048                | SyntaxKind::POSTFIX_EXPR
33049                | SyntaxKind::PREFIX_EXPR
33050                | SyntaxKind::SLICE_EXPR
33051                | SyntaxKind::TUPLE_EXPR
33052        )
33053    }
33054    #[inline]
33055    fn cast(syntax: SyntaxNode) -> Option<Self> {
33056        let res = match syntax.kind() {
33057            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
33058            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
33059            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
33060            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
33061            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
33062            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
33063            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
33064            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
33065            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
33066            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
33067            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
33068            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
33069            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
33070            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
33071            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
33072            _ => {
33073                return None;
33074            }
33075        };
33076        Some(res)
33077    }
33078    #[inline]
33079    fn syntax(&self) -> &SyntaxNode {
33080        match self {
33081            Expr::ArrayExpr(it) => &it.syntax,
33082            Expr::BetweenExpr(it) => &it.syntax,
33083            Expr::BinExpr(it) => &it.syntax,
33084            Expr::CallExpr(it) => &it.syntax,
33085            Expr::CaseExpr(it) => &it.syntax,
33086            Expr::CastExpr(it) => &it.syntax,
33087            Expr::FieldExpr(it) => &it.syntax,
33088            Expr::IndexExpr(it) => &it.syntax,
33089            Expr::Literal(it) => &it.syntax,
33090            Expr::NameRef(it) => &it.syntax,
33091            Expr::ParenExpr(it) => &it.syntax,
33092            Expr::PostfixExpr(it) => &it.syntax,
33093            Expr::PrefixExpr(it) => &it.syntax,
33094            Expr::SliceExpr(it) => &it.syntax,
33095            Expr::TupleExpr(it) => &it.syntax,
33096        }
33097    }
33098}
33099impl From<ArrayExpr> for Expr {
33100    #[inline]
33101    fn from(node: ArrayExpr) -> Expr {
33102        Expr::ArrayExpr(node)
33103    }
33104}
33105impl From<BetweenExpr> for Expr {
33106    #[inline]
33107    fn from(node: BetweenExpr) -> Expr {
33108        Expr::BetweenExpr(node)
33109    }
33110}
33111impl From<BinExpr> for Expr {
33112    #[inline]
33113    fn from(node: BinExpr) -> Expr {
33114        Expr::BinExpr(node)
33115    }
33116}
33117impl From<CallExpr> for Expr {
33118    #[inline]
33119    fn from(node: CallExpr) -> Expr {
33120        Expr::CallExpr(node)
33121    }
33122}
33123impl From<CaseExpr> for Expr {
33124    #[inline]
33125    fn from(node: CaseExpr) -> Expr {
33126        Expr::CaseExpr(node)
33127    }
33128}
33129impl From<CastExpr> for Expr {
33130    #[inline]
33131    fn from(node: CastExpr) -> Expr {
33132        Expr::CastExpr(node)
33133    }
33134}
33135impl From<FieldExpr> for Expr {
33136    #[inline]
33137    fn from(node: FieldExpr) -> Expr {
33138        Expr::FieldExpr(node)
33139    }
33140}
33141impl From<IndexExpr> for Expr {
33142    #[inline]
33143    fn from(node: IndexExpr) -> Expr {
33144        Expr::IndexExpr(node)
33145    }
33146}
33147impl From<Literal> for Expr {
33148    #[inline]
33149    fn from(node: Literal) -> Expr {
33150        Expr::Literal(node)
33151    }
33152}
33153impl From<NameRef> for Expr {
33154    #[inline]
33155    fn from(node: NameRef) -> Expr {
33156        Expr::NameRef(node)
33157    }
33158}
33159impl From<ParenExpr> for Expr {
33160    #[inline]
33161    fn from(node: ParenExpr) -> Expr {
33162        Expr::ParenExpr(node)
33163    }
33164}
33165impl From<PostfixExpr> for Expr {
33166    #[inline]
33167    fn from(node: PostfixExpr) -> Expr {
33168        Expr::PostfixExpr(node)
33169    }
33170}
33171impl From<PrefixExpr> for Expr {
33172    #[inline]
33173    fn from(node: PrefixExpr) -> Expr {
33174        Expr::PrefixExpr(node)
33175    }
33176}
33177impl From<SliceExpr> for Expr {
33178    #[inline]
33179    fn from(node: SliceExpr) -> Expr {
33180        Expr::SliceExpr(node)
33181    }
33182}
33183impl From<TupleExpr> for Expr {
33184    #[inline]
33185    fn from(node: TupleExpr) -> Expr {
33186        Expr::TupleExpr(node)
33187    }
33188}
33189impl AstNode for FuncOption {
33190    #[inline]
33191    fn can_cast(kind: SyntaxKind) -> bool {
33192        matches!(
33193            kind,
33194            SyntaxKind::AS_FUNC_OPTION
33195                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
33196                | SyntaxKind::COST_FUNC_OPTION
33197                | SyntaxKind::LANGUAGE_FUNC_OPTION
33198                | SyntaxKind::LEAKPROOF_FUNC_OPTION
33199                | SyntaxKind::PARALLEL_FUNC_OPTION
33200                | SyntaxKind::RESET_FUNC_OPTION
33201                | SyntaxKind::RETURN_FUNC_OPTION
33202                | SyntaxKind::ROWS_FUNC_OPTION
33203                | SyntaxKind::SECURITY_FUNC_OPTION
33204                | SyntaxKind::SET_FUNC_OPTION
33205                | SyntaxKind::STRICT_FUNC_OPTION
33206                | SyntaxKind::SUPPORT_FUNC_OPTION
33207                | SyntaxKind::TRANSFORM_FUNC_OPTION
33208                | SyntaxKind::VOLATILITY_FUNC_OPTION
33209                | SyntaxKind::WINDOW_FUNC_OPTION
33210        )
33211    }
33212    #[inline]
33213    fn cast(syntax: SyntaxNode) -> Option<Self> {
33214        let res = match syntax.kind() {
33215            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
33216            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
33217                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
33218            }
33219            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
33220            SyntaxKind::LANGUAGE_FUNC_OPTION => {
33221                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
33222            }
33223            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
33224                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
33225            }
33226            SyntaxKind::PARALLEL_FUNC_OPTION => {
33227                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
33228            }
33229            SyntaxKind::RESET_FUNC_OPTION => {
33230                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
33231            }
33232            SyntaxKind::RETURN_FUNC_OPTION => {
33233                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33234            }
33235            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
33236            SyntaxKind::SECURITY_FUNC_OPTION => {
33237                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
33238            }
33239            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
33240            SyntaxKind::STRICT_FUNC_OPTION => {
33241                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
33242            }
33243            SyntaxKind::SUPPORT_FUNC_OPTION => {
33244                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
33245            }
33246            SyntaxKind::TRANSFORM_FUNC_OPTION => {
33247                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
33248            }
33249            SyntaxKind::VOLATILITY_FUNC_OPTION => {
33250                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
33251            }
33252            SyntaxKind::WINDOW_FUNC_OPTION => {
33253                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
33254            }
33255            _ => {
33256                return None;
33257            }
33258        };
33259        Some(res)
33260    }
33261    #[inline]
33262    fn syntax(&self) -> &SyntaxNode {
33263        match self {
33264            FuncOption::AsFuncOption(it) => &it.syntax,
33265            FuncOption::BeginFuncOptionList(it) => &it.syntax,
33266            FuncOption::CostFuncOption(it) => &it.syntax,
33267            FuncOption::LanguageFuncOption(it) => &it.syntax,
33268            FuncOption::LeakproofFuncOption(it) => &it.syntax,
33269            FuncOption::ParallelFuncOption(it) => &it.syntax,
33270            FuncOption::ResetFuncOption(it) => &it.syntax,
33271            FuncOption::ReturnFuncOption(it) => &it.syntax,
33272            FuncOption::RowsFuncOption(it) => &it.syntax,
33273            FuncOption::SecurityFuncOption(it) => &it.syntax,
33274            FuncOption::SetFuncOption(it) => &it.syntax,
33275            FuncOption::StrictFuncOption(it) => &it.syntax,
33276            FuncOption::SupportFuncOption(it) => &it.syntax,
33277            FuncOption::TransformFuncOption(it) => &it.syntax,
33278            FuncOption::VolatilityFuncOption(it) => &it.syntax,
33279            FuncOption::WindowFuncOption(it) => &it.syntax,
33280        }
33281    }
33282}
33283impl From<AsFuncOption> for FuncOption {
33284    #[inline]
33285    fn from(node: AsFuncOption) -> FuncOption {
33286        FuncOption::AsFuncOption(node)
33287    }
33288}
33289impl From<BeginFuncOptionList> for FuncOption {
33290    #[inline]
33291    fn from(node: BeginFuncOptionList) -> FuncOption {
33292        FuncOption::BeginFuncOptionList(node)
33293    }
33294}
33295impl From<CostFuncOption> for FuncOption {
33296    #[inline]
33297    fn from(node: CostFuncOption) -> FuncOption {
33298        FuncOption::CostFuncOption(node)
33299    }
33300}
33301impl From<LanguageFuncOption> for FuncOption {
33302    #[inline]
33303    fn from(node: LanguageFuncOption) -> FuncOption {
33304        FuncOption::LanguageFuncOption(node)
33305    }
33306}
33307impl From<LeakproofFuncOption> for FuncOption {
33308    #[inline]
33309    fn from(node: LeakproofFuncOption) -> FuncOption {
33310        FuncOption::LeakproofFuncOption(node)
33311    }
33312}
33313impl From<ParallelFuncOption> for FuncOption {
33314    #[inline]
33315    fn from(node: ParallelFuncOption) -> FuncOption {
33316        FuncOption::ParallelFuncOption(node)
33317    }
33318}
33319impl From<ResetFuncOption> for FuncOption {
33320    #[inline]
33321    fn from(node: ResetFuncOption) -> FuncOption {
33322        FuncOption::ResetFuncOption(node)
33323    }
33324}
33325impl From<ReturnFuncOption> for FuncOption {
33326    #[inline]
33327    fn from(node: ReturnFuncOption) -> FuncOption {
33328        FuncOption::ReturnFuncOption(node)
33329    }
33330}
33331impl From<RowsFuncOption> for FuncOption {
33332    #[inline]
33333    fn from(node: RowsFuncOption) -> FuncOption {
33334        FuncOption::RowsFuncOption(node)
33335    }
33336}
33337impl From<SecurityFuncOption> for FuncOption {
33338    #[inline]
33339    fn from(node: SecurityFuncOption) -> FuncOption {
33340        FuncOption::SecurityFuncOption(node)
33341    }
33342}
33343impl From<SetFuncOption> for FuncOption {
33344    #[inline]
33345    fn from(node: SetFuncOption) -> FuncOption {
33346        FuncOption::SetFuncOption(node)
33347    }
33348}
33349impl From<StrictFuncOption> for FuncOption {
33350    #[inline]
33351    fn from(node: StrictFuncOption) -> FuncOption {
33352        FuncOption::StrictFuncOption(node)
33353    }
33354}
33355impl From<SupportFuncOption> for FuncOption {
33356    #[inline]
33357    fn from(node: SupportFuncOption) -> FuncOption {
33358        FuncOption::SupportFuncOption(node)
33359    }
33360}
33361impl From<TransformFuncOption> for FuncOption {
33362    #[inline]
33363    fn from(node: TransformFuncOption) -> FuncOption {
33364        FuncOption::TransformFuncOption(node)
33365    }
33366}
33367impl From<VolatilityFuncOption> for FuncOption {
33368    #[inline]
33369    fn from(node: VolatilityFuncOption) -> FuncOption {
33370        FuncOption::VolatilityFuncOption(node)
33371    }
33372}
33373impl From<WindowFuncOption> for FuncOption {
33374    #[inline]
33375    fn from(node: WindowFuncOption) -> FuncOption {
33376        FuncOption::WindowFuncOption(node)
33377    }
33378}
33379impl AstNode for GroupBy {
33380    #[inline]
33381    fn can_cast(kind: SyntaxKind) -> bool {
33382        matches!(
33383            kind,
33384            SyntaxKind::GROUPING_CUBE
33385                | SyntaxKind::GROUPING_EXPR
33386                | SyntaxKind::GROUPING_ROLLUP
33387                | SyntaxKind::GROUPING_SETS
33388        )
33389    }
33390    #[inline]
33391    fn cast(syntax: SyntaxNode) -> Option<Self> {
33392        let res = match syntax.kind() {
33393            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
33394            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
33395            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
33396            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
33397            _ => {
33398                return None;
33399            }
33400        };
33401        Some(res)
33402    }
33403    #[inline]
33404    fn syntax(&self) -> &SyntaxNode {
33405        match self {
33406            GroupBy::GroupingCube(it) => &it.syntax,
33407            GroupBy::GroupingExpr(it) => &it.syntax,
33408            GroupBy::GroupingRollup(it) => &it.syntax,
33409            GroupBy::GroupingSets(it) => &it.syntax,
33410        }
33411    }
33412}
33413impl From<GroupingCube> for GroupBy {
33414    #[inline]
33415    fn from(node: GroupingCube) -> GroupBy {
33416        GroupBy::GroupingCube(node)
33417    }
33418}
33419impl From<GroupingExpr> for GroupBy {
33420    #[inline]
33421    fn from(node: GroupingExpr) -> GroupBy {
33422        GroupBy::GroupingExpr(node)
33423    }
33424}
33425impl From<GroupingRollup> for GroupBy {
33426    #[inline]
33427    fn from(node: GroupingRollup) -> GroupBy {
33428        GroupBy::GroupingRollup(node)
33429    }
33430}
33431impl From<GroupingSets> for GroupBy {
33432    #[inline]
33433    fn from(node: GroupingSets) -> GroupBy {
33434        GroupBy::GroupingSets(node)
33435    }
33436}
33437impl AstNode for JoinType {
33438    #[inline]
33439    fn can_cast(kind: SyntaxKind) -> bool {
33440        matches!(
33441            kind,
33442            SyntaxKind::JOIN_CROSS
33443                | SyntaxKind::JOIN_FULL
33444                | SyntaxKind::JOIN_INNER
33445                | SyntaxKind::JOIN_LEFT
33446                | SyntaxKind::JOIN_RIGHT
33447        )
33448    }
33449    #[inline]
33450    fn cast(syntax: SyntaxNode) -> Option<Self> {
33451        let res = match syntax.kind() {
33452            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
33453            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
33454            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
33455            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
33456            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
33457            _ => {
33458                return None;
33459            }
33460        };
33461        Some(res)
33462    }
33463    #[inline]
33464    fn syntax(&self) -> &SyntaxNode {
33465        match self {
33466            JoinType::JoinCross(it) => &it.syntax,
33467            JoinType::JoinFull(it) => &it.syntax,
33468            JoinType::JoinInner(it) => &it.syntax,
33469            JoinType::JoinLeft(it) => &it.syntax,
33470            JoinType::JoinRight(it) => &it.syntax,
33471        }
33472    }
33473}
33474impl From<JoinCross> for JoinType {
33475    #[inline]
33476    fn from(node: JoinCross) -> JoinType {
33477        JoinType::JoinCross(node)
33478    }
33479}
33480impl From<JoinFull> for JoinType {
33481    #[inline]
33482    fn from(node: JoinFull) -> JoinType {
33483        JoinType::JoinFull(node)
33484    }
33485}
33486impl From<JoinInner> for JoinType {
33487    #[inline]
33488    fn from(node: JoinInner) -> JoinType {
33489        JoinType::JoinInner(node)
33490    }
33491}
33492impl From<JoinLeft> for JoinType {
33493    #[inline]
33494    fn from(node: JoinLeft) -> JoinType {
33495        JoinType::JoinLeft(node)
33496    }
33497}
33498impl From<JoinRight> for JoinType {
33499    #[inline]
33500    fn from(node: JoinRight) -> JoinType {
33501        JoinType::JoinRight(node)
33502    }
33503}
33504impl AstNode for JsonBehavior {
33505    #[inline]
33506    fn can_cast(kind: SyntaxKind) -> bool {
33507        matches!(
33508            kind,
33509            SyntaxKind::JSON_BEHAVIOR_DEFAULT
33510                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
33511                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
33512                | SyntaxKind::JSON_BEHAVIOR_ERROR
33513                | SyntaxKind::JSON_BEHAVIOR_FALSE
33514                | SyntaxKind::JSON_BEHAVIOR_NULL
33515                | SyntaxKind::JSON_BEHAVIOR_TRUE
33516                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
33517        )
33518    }
33519    #[inline]
33520    fn cast(syntax: SyntaxNode) -> Option<Self> {
33521        let res = match syntax.kind() {
33522            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
33523                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
33524            }
33525            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
33526                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
33527            }
33528            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
33529                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
33530            }
33531            SyntaxKind::JSON_BEHAVIOR_ERROR => {
33532                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
33533            }
33534            SyntaxKind::JSON_BEHAVIOR_FALSE => {
33535                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
33536            }
33537            SyntaxKind::JSON_BEHAVIOR_NULL => {
33538                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
33539            }
33540            SyntaxKind::JSON_BEHAVIOR_TRUE => {
33541                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
33542            }
33543            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
33544                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
33545            }
33546            _ => {
33547                return None;
33548            }
33549        };
33550        Some(res)
33551    }
33552    #[inline]
33553    fn syntax(&self) -> &SyntaxNode {
33554        match self {
33555            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
33556            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
33557            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
33558            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
33559            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
33560            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
33561            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
33562            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
33563        }
33564    }
33565}
33566impl From<JsonBehaviorDefault> for JsonBehavior {
33567    #[inline]
33568    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
33569        JsonBehavior::JsonBehaviorDefault(node)
33570    }
33571}
33572impl From<JsonBehaviorEmptyArray> for JsonBehavior {
33573    #[inline]
33574    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
33575        JsonBehavior::JsonBehaviorEmptyArray(node)
33576    }
33577}
33578impl From<JsonBehaviorEmptyObject> for JsonBehavior {
33579    #[inline]
33580    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
33581        JsonBehavior::JsonBehaviorEmptyObject(node)
33582    }
33583}
33584impl From<JsonBehaviorError> for JsonBehavior {
33585    #[inline]
33586    fn from(node: JsonBehaviorError) -> JsonBehavior {
33587        JsonBehavior::JsonBehaviorError(node)
33588    }
33589}
33590impl From<JsonBehaviorFalse> for JsonBehavior {
33591    #[inline]
33592    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
33593        JsonBehavior::JsonBehaviorFalse(node)
33594    }
33595}
33596impl From<JsonBehaviorNull> for JsonBehavior {
33597    #[inline]
33598    fn from(node: JsonBehaviorNull) -> JsonBehavior {
33599        JsonBehavior::JsonBehaviorNull(node)
33600    }
33601}
33602impl From<JsonBehaviorTrue> for JsonBehavior {
33603    #[inline]
33604    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
33605        JsonBehavior::JsonBehaviorTrue(node)
33606    }
33607}
33608impl From<JsonBehaviorUnknown> for JsonBehavior {
33609    #[inline]
33610    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
33611        JsonBehavior::JsonBehaviorUnknown(node)
33612    }
33613}
33614impl AstNode for MatchType {
33615    #[inline]
33616    fn can_cast(kind: SyntaxKind) -> bool {
33617        matches!(
33618            kind,
33619            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
33620        )
33621    }
33622    #[inline]
33623    fn cast(syntax: SyntaxNode) -> Option<Self> {
33624        let res = match syntax.kind() {
33625            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
33626            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
33627            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
33628            _ => {
33629                return None;
33630            }
33631        };
33632        Some(res)
33633    }
33634    #[inline]
33635    fn syntax(&self) -> &SyntaxNode {
33636        match self {
33637            MatchType::MatchFull(it) => &it.syntax,
33638            MatchType::MatchPartial(it) => &it.syntax,
33639            MatchType::MatchSimple(it) => &it.syntax,
33640        }
33641    }
33642}
33643impl From<MatchFull> for MatchType {
33644    #[inline]
33645    fn from(node: MatchFull) -> MatchType {
33646        MatchType::MatchFull(node)
33647    }
33648}
33649impl From<MatchPartial> for MatchType {
33650    #[inline]
33651    fn from(node: MatchPartial) -> MatchType {
33652        MatchType::MatchPartial(node)
33653    }
33654}
33655impl From<MatchSimple> for MatchType {
33656    #[inline]
33657    fn from(node: MatchSimple) -> MatchType {
33658        MatchType::MatchSimple(node)
33659    }
33660}
33661impl AstNode for MergeAction {
33662    #[inline]
33663    fn can_cast(kind: SyntaxKind) -> bool {
33664        matches!(
33665            kind,
33666            SyntaxKind::MERGE_DELETE
33667                | SyntaxKind::MERGE_DO_NOTHING
33668                | SyntaxKind::MERGE_INSERT
33669                | SyntaxKind::MERGE_UPDATE
33670        )
33671    }
33672    #[inline]
33673    fn cast(syntax: SyntaxNode) -> Option<Self> {
33674        let res = match syntax.kind() {
33675            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
33676            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
33677            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
33678            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
33679            _ => {
33680                return None;
33681            }
33682        };
33683        Some(res)
33684    }
33685    #[inline]
33686    fn syntax(&self) -> &SyntaxNode {
33687        match self {
33688            MergeAction::MergeDelete(it) => &it.syntax,
33689            MergeAction::MergeDoNothing(it) => &it.syntax,
33690            MergeAction::MergeInsert(it) => &it.syntax,
33691            MergeAction::MergeUpdate(it) => &it.syntax,
33692        }
33693    }
33694}
33695impl From<MergeDelete> for MergeAction {
33696    #[inline]
33697    fn from(node: MergeDelete) -> MergeAction {
33698        MergeAction::MergeDelete(node)
33699    }
33700}
33701impl From<MergeDoNothing> for MergeAction {
33702    #[inline]
33703    fn from(node: MergeDoNothing) -> MergeAction {
33704        MergeAction::MergeDoNothing(node)
33705    }
33706}
33707impl From<MergeInsert> for MergeAction {
33708    #[inline]
33709    fn from(node: MergeInsert) -> MergeAction {
33710        MergeAction::MergeInsert(node)
33711    }
33712}
33713impl From<MergeUpdate> for MergeAction {
33714    #[inline]
33715    fn from(node: MergeUpdate) -> MergeAction {
33716        MergeAction::MergeUpdate(node)
33717    }
33718}
33719impl AstNode for MergeWhenClause {
33720    #[inline]
33721    fn can_cast(kind: SyntaxKind) -> bool {
33722        matches!(
33723            kind,
33724            SyntaxKind::MERGE_WHEN_MATCHED
33725                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
33726                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
33727        )
33728    }
33729    #[inline]
33730    fn cast(syntax: SyntaxNode) -> Option<Self> {
33731        let res = match syntax.kind() {
33732            SyntaxKind::MERGE_WHEN_MATCHED => {
33733                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
33734            }
33735            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
33736                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
33737            }
33738            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
33739                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
33740            }
33741            _ => {
33742                return None;
33743            }
33744        };
33745        Some(res)
33746    }
33747    #[inline]
33748    fn syntax(&self) -> &SyntaxNode {
33749        match self {
33750            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
33751            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
33752            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
33753        }
33754    }
33755}
33756impl From<MergeWhenMatched> for MergeWhenClause {
33757    #[inline]
33758    fn from(node: MergeWhenMatched) -> MergeWhenClause {
33759        MergeWhenClause::MergeWhenMatched(node)
33760    }
33761}
33762impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
33763    #[inline]
33764    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
33765        MergeWhenClause::MergeWhenNotMatchedSource(node)
33766    }
33767}
33768impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
33769    #[inline]
33770    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
33771        MergeWhenClause::MergeWhenNotMatchedTarget(node)
33772    }
33773}
33774impl AstNode for OnCommitAction {
33775    #[inline]
33776    fn can_cast(kind: SyntaxKind) -> bool {
33777        matches!(
33778            kind,
33779            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
33780        )
33781    }
33782    #[inline]
33783    fn cast(syntax: SyntaxNode) -> Option<Self> {
33784        let res = match syntax.kind() {
33785            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
33786            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
33787            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
33788            _ => {
33789                return None;
33790            }
33791        };
33792        Some(res)
33793    }
33794    #[inline]
33795    fn syntax(&self) -> &SyntaxNode {
33796        match self {
33797            OnCommitAction::DeleteRows(it) => &it.syntax,
33798            OnCommitAction::Drop(it) => &it.syntax,
33799            OnCommitAction::PreserveRows(it) => &it.syntax,
33800        }
33801    }
33802}
33803impl From<DeleteRows> for OnCommitAction {
33804    #[inline]
33805    fn from(node: DeleteRows) -> OnCommitAction {
33806        OnCommitAction::DeleteRows(node)
33807    }
33808}
33809impl From<Drop> for OnCommitAction {
33810    #[inline]
33811    fn from(node: Drop) -> OnCommitAction {
33812        OnCommitAction::Drop(node)
33813    }
33814}
33815impl From<PreserveRows> for OnCommitAction {
33816    #[inline]
33817    fn from(node: PreserveRows) -> OnCommitAction {
33818        OnCommitAction::PreserveRows(node)
33819    }
33820}
33821impl AstNode for ParamMode {
33822    #[inline]
33823    fn can_cast(kind: SyntaxKind) -> bool {
33824        matches!(
33825            kind,
33826            SyntaxKind::PARAM_IN
33827                | SyntaxKind::PARAM_IN_OUT
33828                | SyntaxKind::PARAM_OUT
33829                | SyntaxKind::PARAM_VARIADIC
33830        )
33831    }
33832    #[inline]
33833    fn cast(syntax: SyntaxNode) -> Option<Self> {
33834        let res = match syntax.kind() {
33835            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
33836            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
33837            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
33838            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
33839            _ => {
33840                return None;
33841            }
33842        };
33843        Some(res)
33844    }
33845    #[inline]
33846    fn syntax(&self) -> &SyntaxNode {
33847        match self {
33848            ParamMode::ParamIn(it) => &it.syntax,
33849            ParamMode::ParamInOut(it) => &it.syntax,
33850            ParamMode::ParamOut(it) => &it.syntax,
33851            ParamMode::ParamVariadic(it) => &it.syntax,
33852        }
33853    }
33854}
33855impl From<ParamIn> for ParamMode {
33856    #[inline]
33857    fn from(node: ParamIn) -> ParamMode {
33858        ParamMode::ParamIn(node)
33859    }
33860}
33861impl From<ParamInOut> for ParamMode {
33862    #[inline]
33863    fn from(node: ParamInOut) -> ParamMode {
33864        ParamMode::ParamInOut(node)
33865    }
33866}
33867impl From<ParamOut> for ParamMode {
33868    #[inline]
33869    fn from(node: ParamOut) -> ParamMode {
33870        ParamMode::ParamOut(node)
33871    }
33872}
33873impl From<ParamVariadic> for ParamMode {
33874    #[inline]
33875    fn from(node: ParamVariadic) -> ParamMode {
33876        ParamMode::ParamVariadic(node)
33877    }
33878}
33879impl AstNode for PartitionType {
33880    #[inline]
33881    fn can_cast(kind: SyntaxKind) -> bool {
33882        matches!(
33883            kind,
33884            SyntaxKind::PARTITION_DEFAULT
33885                | SyntaxKind::PARTITION_FOR_VALUES_FROM
33886                | SyntaxKind::PARTITION_FOR_VALUES_IN
33887                | SyntaxKind::PARTITION_FOR_VALUES_WITH
33888        )
33889    }
33890    #[inline]
33891    fn cast(syntax: SyntaxNode) -> Option<Self> {
33892        let res = match syntax.kind() {
33893            SyntaxKind::PARTITION_DEFAULT => {
33894                PartitionType::PartitionDefault(PartitionDefault { syntax })
33895            }
33896            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
33897                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
33898            }
33899            SyntaxKind::PARTITION_FOR_VALUES_IN => {
33900                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
33901            }
33902            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
33903                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
33904            }
33905            _ => {
33906                return None;
33907            }
33908        };
33909        Some(res)
33910    }
33911    #[inline]
33912    fn syntax(&self) -> &SyntaxNode {
33913        match self {
33914            PartitionType::PartitionDefault(it) => &it.syntax,
33915            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
33916            PartitionType::PartitionForValuesIn(it) => &it.syntax,
33917            PartitionType::PartitionForValuesWith(it) => &it.syntax,
33918        }
33919    }
33920}
33921impl From<PartitionDefault> for PartitionType {
33922    #[inline]
33923    fn from(node: PartitionDefault) -> PartitionType {
33924        PartitionType::PartitionDefault(node)
33925    }
33926}
33927impl From<PartitionForValuesFrom> for PartitionType {
33928    #[inline]
33929    fn from(node: PartitionForValuesFrom) -> PartitionType {
33930        PartitionType::PartitionForValuesFrom(node)
33931    }
33932}
33933impl From<PartitionForValuesIn> for PartitionType {
33934    #[inline]
33935    fn from(node: PartitionForValuesIn) -> PartitionType {
33936        PartitionType::PartitionForValuesIn(node)
33937    }
33938}
33939impl From<PartitionForValuesWith> for PartitionType {
33940    #[inline]
33941    fn from(node: PartitionForValuesWith) -> PartitionType {
33942        PartitionType::PartitionForValuesWith(node)
33943    }
33944}
33945impl AstNode for PathPrimary {
33946    #[inline]
33947    fn can_cast(kind: SyntaxKind) -> bool {
33948        matches!(
33949            kind,
33950            SyntaxKind::EDGE_ANY
33951                | SyntaxKind::EDGE_LEFT
33952                | SyntaxKind::EDGE_RIGHT
33953                | SyntaxKind::PAREN_GRAPH_PATTERN
33954                | SyntaxKind::VERTEX_PATTERN
33955        )
33956    }
33957    #[inline]
33958    fn cast(syntax: SyntaxNode) -> Option<Self> {
33959        let res = match syntax.kind() {
33960            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
33961            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
33962            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
33963            SyntaxKind::PAREN_GRAPH_PATTERN => {
33964                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
33965            }
33966            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
33967            _ => {
33968                return None;
33969            }
33970        };
33971        Some(res)
33972    }
33973    #[inline]
33974    fn syntax(&self) -> &SyntaxNode {
33975        match self {
33976            PathPrimary::EdgeAny(it) => &it.syntax,
33977            PathPrimary::EdgeLeft(it) => &it.syntax,
33978            PathPrimary::EdgeRight(it) => &it.syntax,
33979            PathPrimary::ParenGraphPattern(it) => &it.syntax,
33980            PathPrimary::VertexPattern(it) => &it.syntax,
33981        }
33982    }
33983}
33984impl From<EdgeAny> for PathPrimary {
33985    #[inline]
33986    fn from(node: EdgeAny) -> PathPrimary {
33987        PathPrimary::EdgeAny(node)
33988    }
33989}
33990impl From<EdgeLeft> for PathPrimary {
33991    #[inline]
33992    fn from(node: EdgeLeft) -> PathPrimary {
33993        PathPrimary::EdgeLeft(node)
33994    }
33995}
33996impl From<EdgeRight> for PathPrimary {
33997    #[inline]
33998    fn from(node: EdgeRight) -> PathPrimary {
33999        PathPrimary::EdgeRight(node)
34000    }
34001}
34002impl From<ParenGraphPattern> for PathPrimary {
34003    #[inline]
34004    fn from(node: ParenGraphPattern) -> PathPrimary {
34005        PathPrimary::ParenGraphPattern(node)
34006    }
34007}
34008impl From<VertexPattern> for PathPrimary {
34009    #[inline]
34010    fn from(node: VertexPattern) -> PathPrimary {
34011        PathPrimary::VertexPattern(node)
34012    }
34013}
34014impl AstNode for Persistence {
34015    #[inline]
34016    fn can_cast(kind: SyntaxKind) -> bool {
34017        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
34018    }
34019    #[inline]
34020    fn cast(syntax: SyntaxNode) -> Option<Self> {
34021        let res = match syntax.kind() {
34022            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
34023            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
34024            _ => {
34025                return None;
34026            }
34027        };
34028        Some(res)
34029    }
34030    #[inline]
34031    fn syntax(&self) -> &SyntaxNode {
34032        match self {
34033            Persistence::Temp(it) => &it.syntax,
34034            Persistence::Unlogged(it) => &it.syntax,
34035        }
34036    }
34037}
34038impl From<Temp> for Persistence {
34039    #[inline]
34040    fn from(node: Temp) -> Persistence {
34041        Persistence::Temp(node)
34042    }
34043}
34044impl From<Unlogged> for Persistence {
34045    #[inline]
34046    fn from(node: Unlogged) -> Persistence {
34047        Persistence::Unlogged(node)
34048    }
34049}
34050impl AstNode for PreparableStmt {
34051    #[inline]
34052    fn can_cast(kind: SyntaxKind) -> bool {
34053        matches!(
34054            kind,
34055            SyntaxKind::COMPOUND_SELECT
34056                | SyntaxKind::DELETE
34057                | SyntaxKind::INSERT
34058                | SyntaxKind::MERGE
34059                | SyntaxKind::SELECT
34060                | SyntaxKind::SELECT_INTO
34061                | SyntaxKind::TABLE
34062                | SyntaxKind::UPDATE
34063                | SyntaxKind::VALUES
34064        )
34065    }
34066    #[inline]
34067    fn cast(syntax: SyntaxNode) -> Option<Self> {
34068        let res = match syntax.kind() {
34069            SyntaxKind::COMPOUND_SELECT => {
34070                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
34071            }
34072            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
34073            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
34074            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
34075            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
34076            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
34077            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
34078            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
34079            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
34080            _ => {
34081                return None;
34082            }
34083        };
34084        Some(res)
34085    }
34086    #[inline]
34087    fn syntax(&self) -> &SyntaxNode {
34088        match self {
34089            PreparableStmt::CompoundSelect(it) => &it.syntax,
34090            PreparableStmt::Delete(it) => &it.syntax,
34091            PreparableStmt::Insert(it) => &it.syntax,
34092            PreparableStmt::Merge(it) => &it.syntax,
34093            PreparableStmt::Select(it) => &it.syntax,
34094            PreparableStmt::SelectInto(it) => &it.syntax,
34095            PreparableStmt::Table(it) => &it.syntax,
34096            PreparableStmt::Update(it) => &it.syntax,
34097            PreparableStmt::Values(it) => &it.syntax,
34098        }
34099    }
34100}
34101impl From<CompoundSelect> for PreparableStmt {
34102    #[inline]
34103    fn from(node: CompoundSelect) -> PreparableStmt {
34104        PreparableStmt::CompoundSelect(node)
34105    }
34106}
34107impl From<Delete> for PreparableStmt {
34108    #[inline]
34109    fn from(node: Delete) -> PreparableStmt {
34110        PreparableStmt::Delete(node)
34111    }
34112}
34113impl From<Insert> for PreparableStmt {
34114    #[inline]
34115    fn from(node: Insert) -> PreparableStmt {
34116        PreparableStmt::Insert(node)
34117    }
34118}
34119impl From<Merge> for PreparableStmt {
34120    #[inline]
34121    fn from(node: Merge) -> PreparableStmt {
34122        PreparableStmt::Merge(node)
34123    }
34124}
34125impl From<Select> for PreparableStmt {
34126    #[inline]
34127    fn from(node: Select) -> PreparableStmt {
34128        PreparableStmt::Select(node)
34129    }
34130}
34131impl From<SelectInto> for PreparableStmt {
34132    #[inline]
34133    fn from(node: SelectInto) -> PreparableStmt {
34134        PreparableStmt::SelectInto(node)
34135    }
34136}
34137impl From<Table> for PreparableStmt {
34138    #[inline]
34139    fn from(node: Table) -> PreparableStmt {
34140        PreparableStmt::Table(node)
34141    }
34142}
34143impl From<Update> for PreparableStmt {
34144    #[inline]
34145    fn from(node: Update) -> PreparableStmt {
34146        PreparableStmt::Update(node)
34147    }
34148}
34149impl From<Values> for PreparableStmt {
34150    #[inline]
34151    fn from(node: Values) -> PreparableStmt {
34152        PreparableStmt::Values(node)
34153    }
34154}
34155impl AstNode for RefAction {
34156    #[inline]
34157    fn can_cast(kind: SyntaxKind) -> bool {
34158        matches!(
34159            kind,
34160            SyntaxKind::CASCADE
34161                | SyntaxKind::NO_ACTION
34162                | SyntaxKind::RESTRICT
34163                | SyntaxKind::SET_DEFAULT_COLUMNS
34164                | SyntaxKind::SET_NULL_COLUMNS
34165        )
34166    }
34167    #[inline]
34168    fn cast(syntax: SyntaxNode) -> Option<Self> {
34169        let res = match syntax.kind() {
34170            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
34171            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
34172            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
34173            SyntaxKind::SET_DEFAULT_COLUMNS => {
34174                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
34175            }
34176            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
34177            _ => {
34178                return None;
34179            }
34180        };
34181        Some(res)
34182    }
34183    #[inline]
34184    fn syntax(&self) -> &SyntaxNode {
34185        match self {
34186            RefAction::Cascade(it) => &it.syntax,
34187            RefAction::NoAction(it) => &it.syntax,
34188            RefAction::Restrict(it) => &it.syntax,
34189            RefAction::SetDefaultColumns(it) => &it.syntax,
34190            RefAction::SetNullColumns(it) => &it.syntax,
34191        }
34192    }
34193}
34194impl From<Cascade> for RefAction {
34195    #[inline]
34196    fn from(node: Cascade) -> RefAction {
34197        RefAction::Cascade(node)
34198    }
34199}
34200impl From<NoAction> for RefAction {
34201    #[inline]
34202    fn from(node: NoAction) -> RefAction {
34203        RefAction::NoAction(node)
34204    }
34205}
34206impl From<Restrict> for RefAction {
34207    #[inline]
34208    fn from(node: Restrict) -> RefAction {
34209        RefAction::Restrict(node)
34210    }
34211}
34212impl From<SetDefaultColumns> for RefAction {
34213    #[inline]
34214    fn from(node: SetDefaultColumns) -> RefAction {
34215        RefAction::SetDefaultColumns(node)
34216    }
34217}
34218impl From<SetNullColumns> for RefAction {
34219    #[inline]
34220    fn from(node: SetNullColumns) -> RefAction {
34221        RefAction::SetNullColumns(node)
34222    }
34223}
34224impl AstNode for SchemaElement {
34225    #[inline]
34226    fn can_cast(kind: SyntaxKind) -> bool {
34227        matches!(
34228            kind,
34229            SyntaxKind::CREATE_INDEX
34230                | SyntaxKind::CREATE_SEQUENCE
34231                | SyntaxKind::CREATE_TABLE
34232                | SyntaxKind::CREATE_TRIGGER
34233                | SyntaxKind::CREATE_VIEW
34234                | SyntaxKind::GRANT
34235        )
34236    }
34237    #[inline]
34238    fn cast(syntax: SyntaxNode) -> Option<Self> {
34239        let res = match syntax.kind() {
34240            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
34241            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
34242            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
34243            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
34244            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
34245            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
34246            _ => {
34247                return None;
34248            }
34249        };
34250        Some(res)
34251    }
34252    #[inline]
34253    fn syntax(&self) -> &SyntaxNode {
34254        match self {
34255            SchemaElement::CreateIndex(it) => &it.syntax,
34256            SchemaElement::CreateSequence(it) => &it.syntax,
34257            SchemaElement::CreateTable(it) => &it.syntax,
34258            SchemaElement::CreateTrigger(it) => &it.syntax,
34259            SchemaElement::CreateView(it) => &it.syntax,
34260            SchemaElement::Grant(it) => &it.syntax,
34261        }
34262    }
34263}
34264impl From<CreateIndex> for SchemaElement {
34265    #[inline]
34266    fn from(node: CreateIndex) -> SchemaElement {
34267        SchemaElement::CreateIndex(node)
34268    }
34269}
34270impl From<CreateSequence> for SchemaElement {
34271    #[inline]
34272    fn from(node: CreateSequence) -> SchemaElement {
34273        SchemaElement::CreateSequence(node)
34274    }
34275}
34276impl From<CreateTable> for SchemaElement {
34277    #[inline]
34278    fn from(node: CreateTable) -> SchemaElement {
34279        SchemaElement::CreateTable(node)
34280    }
34281}
34282impl From<CreateTrigger> for SchemaElement {
34283    #[inline]
34284    fn from(node: CreateTrigger) -> SchemaElement {
34285        SchemaElement::CreateTrigger(node)
34286    }
34287}
34288impl From<CreateView> for SchemaElement {
34289    #[inline]
34290    fn from(node: CreateView) -> SchemaElement {
34291        SchemaElement::CreateView(node)
34292    }
34293}
34294impl From<Grant> for SchemaElement {
34295    #[inline]
34296    fn from(node: Grant) -> SchemaElement {
34297        SchemaElement::Grant(node)
34298    }
34299}
34300impl AstNode for SelectVariant {
34301    #[inline]
34302    fn can_cast(kind: SyntaxKind) -> bool {
34303        matches!(
34304            kind,
34305            SyntaxKind::COMPOUND_SELECT
34306                | SyntaxKind::PAREN_SELECT
34307                | SyntaxKind::SELECT
34308                | SyntaxKind::SELECT_INTO
34309                | SyntaxKind::TABLE
34310                | SyntaxKind::VALUES
34311        )
34312    }
34313    #[inline]
34314    fn cast(syntax: SyntaxNode) -> Option<Self> {
34315        let res = match syntax.kind() {
34316            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
34317            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
34318            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
34319            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
34320            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
34321            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
34322            _ => {
34323                return None;
34324            }
34325        };
34326        Some(res)
34327    }
34328    #[inline]
34329    fn syntax(&self) -> &SyntaxNode {
34330        match self {
34331            SelectVariant::CompoundSelect(it) => &it.syntax,
34332            SelectVariant::ParenSelect(it) => &it.syntax,
34333            SelectVariant::Select(it) => &it.syntax,
34334            SelectVariant::SelectInto(it) => &it.syntax,
34335            SelectVariant::Table(it) => &it.syntax,
34336            SelectVariant::Values(it) => &it.syntax,
34337        }
34338    }
34339}
34340impl From<CompoundSelect> for SelectVariant {
34341    #[inline]
34342    fn from(node: CompoundSelect) -> SelectVariant {
34343        SelectVariant::CompoundSelect(node)
34344    }
34345}
34346impl From<ParenSelect> for SelectVariant {
34347    #[inline]
34348    fn from(node: ParenSelect) -> SelectVariant {
34349        SelectVariant::ParenSelect(node)
34350    }
34351}
34352impl From<Select> for SelectVariant {
34353    #[inline]
34354    fn from(node: Select) -> SelectVariant {
34355        SelectVariant::Select(node)
34356    }
34357}
34358impl From<SelectInto> for SelectVariant {
34359    #[inline]
34360    fn from(node: SelectInto) -> SelectVariant {
34361        SelectVariant::SelectInto(node)
34362    }
34363}
34364impl From<Table> for SelectVariant {
34365    #[inline]
34366    fn from(node: Table) -> SelectVariant {
34367        SelectVariant::Table(node)
34368    }
34369}
34370impl From<Values> for SelectVariant {
34371    #[inline]
34372    fn from(node: Values) -> SelectVariant {
34373        SelectVariant::Values(node)
34374    }
34375}
34376impl AstNode for SetColumn {
34377    #[inline]
34378    fn can_cast(kind: SyntaxKind) -> bool {
34379        matches!(
34380            kind,
34381            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
34382        )
34383    }
34384    #[inline]
34385    fn cast(syntax: SyntaxNode) -> Option<Self> {
34386        let res = match syntax.kind() {
34387            SyntaxKind::SET_MULTIPLE_COLUMNS => {
34388                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
34389            }
34390            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
34391            _ => {
34392                return None;
34393            }
34394        };
34395        Some(res)
34396    }
34397    #[inline]
34398    fn syntax(&self) -> &SyntaxNode {
34399        match self {
34400            SetColumn::SetMultipleColumns(it) => &it.syntax,
34401            SetColumn::SetSingleColumn(it) => &it.syntax,
34402        }
34403    }
34404}
34405impl From<SetMultipleColumns> for SetColumn {
34406    #[inline]
34407    fn from(node: SetMultipleColumns) -> SetColumn {
34408        SetColumn::SetMultipleColumns(node)
34409    }
34410}
34411impl From<SetSingleColumn> for SetColumn {
34412    #[inline]
34413    fn from(node: SetSingleColumn) -> SetColumn {
34414        SetColumn::SetSingleColumn(node)
34415    }
34416}
34417impl AstNode for Stmt {
34418    #[inline]
34419    fn can_cast(kind: SyntaxKind) -> bool {
34420        matches!(
34421            kind,
34422            SyntaxKind::ALTER_AGGREGATE
34423                | SyntaxKind::ALTER_COLLATION
34424                | SyntaxKind::ALTER_CONVERSION
34425                | SyntaxKind::ALTER_DATABASE
34426                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
34427                | SyntaxKind::ALTER_DOMAIN
34428                | SyntaxKind::ALTER_EVENT_TRIGGER
34429                | SyntaxKind::ALTER_EXTENSION
34430                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
34431                | SyntaxKind::ALTER_FOREIGN_TABLE
34432                | SyntaxKind::ALTER_FUNCTION
34433                | SyntaxKind::ALTER_GROUP
34434                | SyntaxKind::ALTER_INDEX
34435                | SyntaxKind::ALTER_LANGUAGE
34436                | SyntaxKind::ALTER_LARGE_OBJECT
34437                | SyntaxKind::ALTER_MATERIALIZED_VIEW
34438                | SyntaxKind::ALTER_OPERATOR
34439                | SyntaxKind::ALTER_OPERATOR_CLASS
34440                | SyntaxKind::ALTER_OPERATOR_FAMILY
34441                | SyntaxKind::ALTER_POLICY
34442                | SyntaxKind::ALTER_PROCEDURE
34443                | SyntaxKind::ALTER_PROPERTY_GRAPH
34444                | SyntaxKind::ALTER_PUBLICATION
34445                | SyntaxKind::ALTER_ROLE
34446                | SyntaxKind::ALTER_ROUTINE
34447                | SyntaxKind::ALTER_RULE
34448                | SyntaxKind::ALTER_SCHEMA
34449                | SyntaxKind::ALTER_SEQUENCE
34450                | SyntaxKind::ALTER_SERVER
34451                | SyntaxKind::ALTER_STATISTICS
34452                | SyntaxKind::ALTER_SUBSCRIPTION
34453                | SyntaxKind::ALTER_SYSTEM
34454                | SyntaxKind::ALTER_TABLE
34455                | SyntaxKind::ALTER_TABLESPACE
34456                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
34457                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
34458                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
34459                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
34460                | SyntaxKind::ALTER_TRIGGER
34461                | SyntaxKind::ALTER_TYPE
34462                | SyntaxKind::ALTER_USER
34463                | SyntaxKind::ALTER_USER_MAPPING
34464                | SyntaxKind::ALTER_VIEW
34465                | SyntaxKind::ANALYZE
34466                | SyntaxKind::BEGIN
34467                | SyntaxKind::CALL
34468                | SyntaxKind::CHECKPOINT
34469                | SyntaxKind::CLOSE
34470                | SyntaxKind::CLUSTER
34471                | SyntaxKind::COMMENT_ON
34472                | SyntaxKind::COMMIT
34473                | SyntaxKind::COPY
34474                | SyntaxKind::CREATE_ACCESS_METHOD
34475                | SyntaxKind::CREATE_AGGREGATE
34476                | SyntaxKind::CREATE_CAST
34477                | SyntaxKind::CREATE_COLLATION
34478                | SyntaxKind::CREATE_CONVERSION
34479                | SyntaxKind::CREATE_DATABASE
34480                | SyntaxKind::CREATE_DOMAIN
34481                | SyntaxKind::CREATE_EVENT_TRIGGER
34482                | SyntaxKind::CREATE_EXTENSION
34483                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
34484                | SyntaxKind::CREATE_FOREIGN_TABLE
34485                | SyntaxKind::CREATE_FUNCTION
34486                | SyntaxKind::CREATE_GROUP
34487                | SyntaxKind::CREATE_INDEX
34488                | SyntaxKind::CREATE_LANGUAGE
34489                | SyntaxKind::CREATE_MATERIALIZED_VIEW
34490                | SyntaxKind::CREATE_OPERATOR
34491                | SyntaxKind::CREATE_OPERATOR_CLASS
34492                | SyntaxKind::CREATE_OPERATOR_FAMILY
34493                | SyntaxKind::CREATE_POLICY
34494                | SyntaxKind::CREATE_PROCEDURE
34495                | SyntaxKind::CREATE_PROPERTY_GRAPH
34496                | SyntaxKind::CREATE_PUBLICATION
34497                | SyntaxKind::CREATE_ROLE
34498                | SyntaxKind::CREATE_RULE
34499                | SyntaxKind::CREATE_SCHEMA
34500                | SyntaxKind::CREATE_SEQUENCE
34501                | SyntaxKind::CREATE_SERVER
34502                | SyntaxKind::CREATE_STATISTICS
34503                | SyntaxKind::CREATE_SUBSCRIPTION
34504                | SyntaxKind::CREATE_TABLE
34505                | SyntaxKind::CREATE_TABLE_AS
34506                | SyntaxKind::CREATE_TABLESPACE
34507                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
34508                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
34509                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
34510                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
34511                | SyntaxKind::CREATE_TRANSFORM
34512                | SyntaxKind::CREATE_TRIGGER
34513                | SyntaxKind::CREATE_TYPE
34514                | SyntaxKind::CREATE_USER
34515                | SyntaxKind::CREATE_USER_MAPPING
34516                | SyntaxKind::CREATE_VIEW
34517                | SyntaxKind::DEALLOCATE
34518                | SyntaxKind::DECLARE
34519                | SyntaxKind::DELETE
34520                | SyntaxKind::DISCARD
34521                | SyntaxKind::DO
34522                | SyntaxKind::DROP_ACCESS_METHOD
34523                | SyntaxKind::DROP_AGGREGATE
34524                | SyntaxKind::DROP_CAST
34525                | SyntaxKind::DROP_COLLATION
34526                | SyntaxKind::DROP_CONVERSION
34527                | SyntaxKind::DROP_DATABASE
34528                | SyntaxKind::DROP_DOMAIN
34529                | SyntaxKind::DROP_EVENT_TRIGGER
34530                | SyntaxKind::DROP_EXTENSION
34531                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
34532                | SyntaxKind::DROP_FOREIGN_TABLE
34533                | SyntaxKind::DROP_FUNCTION
34534                | SyntaxKind::DROP_GROUP
34535                | SyntaxKind::DROP_INDEX
34536                | SyntaxKind::DROP_LANGUAGE
34537                | SyntaxKind::DROP_MATERIALIZED_VIEW
34538                | SyntaxKind::DROP_OPERATOR
34539                | SyntaxKind::DROP_OPERATOR_CLASS
34540                | SyntaxKind::DROP_OPERATOR_FAMILY
34541                | SyntaxKind::DROP_OWNED
34542                | SyntaxKind::DROP_POLICY
34543                | SyntaxKind::DROP_PROCEDURE
34544                | SyntaxKind::DROP_PROPERTY_GRAPH
34545                | SyntaxKind::DROP_PUBLICATION
34546                | SyntaxKind::DROP_ROLE
34547                | SyntaxKind::DROP_ROUTINE
34548                | SyntaxKind::DROP_RULE
34549                | SyntaxKind::DROP_SCHEMA
34550                | SyntaxKind::DROP_SEQUENCE
34551                | SyntaxKind::DROP_SERVER
34552                | SyntaxKind::DROP_STATISTICS
34553                | SyntaxKind::DROP_SUBSCRIPTION
34554                | SyntaxKind::DROP_TABLE
34555                | SyntaxKind::DROP_TABLESPACE
34556                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
34557                | SyntaxKind::DROP_TEXT_SEARCH_DICT
34558                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
34559                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
34560                | SyntaxKind::DROP_TRANSFORM
34561                | SyntaxKind::DROP_TRIGGER
34562                | SyntaxKind::DROP_TYPE
34563                | SyntaxKind::DROP_USER
34564                | SyntaxKind::DROP_USER_MAPPING
34565                | SyntaxKind::DROP_VIEW
34566                | SyntaxKind::EXECUTE
34567                | SyntaxKind::EXPLAIN
34568                | SyntaxKind::FETCH
34569                | SyntaxKind::GRANT
34570                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
34571                | SyntaxKind::INSERT
34572                | SyntaxKind::LISTEN
34573                | SyntaxKind::LOAD
34574                | SyntaxKind::LOCK
34575                | SyntaxKind::MERGE
34576                | SyntaxKind::MOVE
34577                | SyntaxKind::NOTIFY
34578                | SyntaxKind::PAREN_SELECT
34579                | SyntaxKind::PREPARE
34580                | SyntaxKind::PREPARE_TRANSACTION
34581                | SyntaxKind::REASSIGN
34582                | SyntaxKind::REFRESH
34583                | SyntaxKind::REINDEX
34584                | SyntaxKind::RELEASE_SAVEPOINT
34585                | SyntaxKind::REPACK
34586                | SyntaxKind::RESET
34587                | SyntaxKind::RESET_SESSION_AUTH
34588                | SyntaxKind::REVOKE
34589                | SyntaxKind::ROLLBACK
34590                | SyntaxKind::SAVEPOINT
34591                | SyntaxKind::SECURITY_LABEL
34592                | SyntaxKind::SELECT
34593                | SyntaxKind::SELECT_INTO
34594                | SyntaxKind::SET
34595                | SyntaxKind::SET_CONSTRAINTS
34596                | SyntaxKind::SET_ROLE
34597                | SyntaxKind::SET_SESSION_AUTH
34598                | SyntaxKind::SET_TRANSACTION
34599                | SyntaxKind::SHOW
34600                | SyntaxKind::TABLE
34601                | SyntaxKind::TRUNCATE
34602                | SyntaxKind::UNLISTEN
34603                | SyntaxKind::UPDATE
34604                | SyntaxKind::VACUUM
34605                | SyntaxKind::VALUES
34606        )
34607    }
34608    #[inline]
34609    fn cast(syntax: SyntaxNode) -> Option<Self> {
34610        let res = match syntax.kind() {
34611            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
34612            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
34613            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
34614            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
34615            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
34616                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
34617            }
34618            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
34619            SyntaxKind::ALTER_EVENT_TRIGGER => {
34620                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
34621            }
34622            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
34623            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
34624                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
34625            }
34626            SyntaxKind::ALTER_FOREIGN_TABLE => {
34627                Stmt::AlterForeignTable(AlterForeignTable { syntax })
34628            }
34629            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
34630            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
34631            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
34632            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
34633            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
34634            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
34635                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
34636            }
34637            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
34638            SyntaxKind::ALTER_OPERATOR_CLASS => {
34639                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
34640            }
34641            SyntaxKind::ALTER_OPERATOR_FAMILY => {
34642                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
34643            }
34644            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
34645            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
34646            SyntaxKind::ALTER_PROPERTY_GRAPH => {
34647                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
34648            }
34649            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
34650            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
34651            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
34652            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
34653            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
34654            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
34655            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
34656            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
34657            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
34658            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
34659            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
34660            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
34661            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
34662                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
34663            }
34664            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
34665                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
34666            }
34667            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
34668                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
34669            }
34670            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
34671                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
34672            }
34673            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
34674            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
34675            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
34676            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
34677            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
34678            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
34679            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
34680            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
34681            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
34682            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
34683            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
34684            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
34685            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
34686            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
34687            SyntaxKind::CREATE_ACCESS_METHOD => {
34688                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
34689            }
34690            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
34691            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
34692            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
34693            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
34694            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
34695            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
34696            SyntaxKind::CREATE_EVENT_TRIGGER => {
34697                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
34698            }
34699            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
34700            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
34701                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
34702            }
34703            SyntaxKind::CREATE_FOREIGN_TABLE => {
34704                Stmt::CreateForeignTable(CreateForeignTable { syntax })
34705            }
34706            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
34707            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
34708            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
34709            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
34710            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
34711                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
34712            }
34713            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
34714            SyntaxKind::CREATE_OPERATOR_CLASS => {
34715                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
34716            }
34717            SyntaxKind::CREATE_OPERATOR_FAMILY => {
34718                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
34719            }
34720            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
34721            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
34722            SyntaxKind::CREATE_PROPERTY_GRAPH => {
34723                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
34724            }
34725            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
34726            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
34727            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
34728            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
34729            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
34730            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
34731            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
34732            SyntaxKind::CREATE_SUBSCRIPTION => {
34733                Stmt::CreateSubscription(CreateSubscription { syntax })
34734            }
34735            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
34736            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
34737            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
34738            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
34739                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
34740            }
34741            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
34742                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
34743            }
34744            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
34745                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
34746            }
34747            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
34748                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
34749            }
34750            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
34751            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
34752            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
34753            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
34754            SyntaxKind::CREATE_USER_MAPPING => {
34755                Stmt::CreateUserMapping(CreateUserMapping { syntax })
34756            }
34757            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
34758            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
34759            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
34760            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
34761            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
34762            SyntaxKind::DO => Stmt::Do(Do { syntax }),
34763            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
34764            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
34765            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
34766            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
34767            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
34768            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
34769            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
34770            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
34771            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
34772            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
34773                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
34774            }
34775            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
34776            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
34777            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
34778            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
34779            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
34780            SyntaxKind::DROP_MATERIALIZED_VIEW => {
34781                Stmt::DropMaterializedView(DropMaterializedView { syntax })
34782            }
34783            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
34784            SyntaxKind::DROP_OPERATOR_CLASS => {
34785                Stmt::DropOperatorClass(DropOperatorClass { syntax })
34786            }
34787            SyntaxKind::DROP_OPERATOR_FAMILY => {
34788                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
34789            }
34790            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
34791            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
34792            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
34793            SyntaxKind::DROP_PROPERTY_GRAPH => {
34794                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
34795            }
34796            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
34797            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
34798            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
34799            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
34800            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
34801            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
34802            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
34803            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
34804            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
34805            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
34806            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
34807            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
34808                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
34809            }
34810            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
34811                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
34812            }
34813            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
34814                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
34815            }
34816            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
34817                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
34818            }
34819            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
34820            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
34821            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
34822            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
34823            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
34824            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
34825            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
34826            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
34827            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
34828            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
34829            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
34830                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
34831            }
34832            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
34833            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
34834            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
34835            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
34836            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
34837            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
34838            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
34839            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
34840            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
34841            SyntaxKind::PREPARE_TRANSACTION => {
34842                Stmt::PrepareTransaction(PrepareTransaction { syntax })
34843            }
34844            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
34845            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
34846            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
34847            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
34848            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
34849            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
34850            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
34851            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
34852            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
34853            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
34854            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
34855            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
34856            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
34857            SyntaxKind::SET => Stmt::Set(Set { syntax }),
34858            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
34859            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
34860            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
34861            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
34862            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
34863            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
34864            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
34865            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
34866            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
34867            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
34868            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
34869            _ => {
34870                return None;
34871            }
34872        };
34873        Some(res)
34874    }
34875    #[inline]
34876    fn syntax(&self) -> &SyntaxNode {
34877        match self {
34878            Stmt::AlterAggregate(it) => &it.syntax,
34879            Stmt::AlterCollation(it) => &it.syntax,
34880            Stmt::AlterConversion(it) => &it.syntax,
34881            Stmt::AlterDatabase(it) => &it.syntax,
34882            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
34883            Stmt::AlterDomain(it) => &it.syntax,
34884            Stmt::AlterEventTrigger(it) => &it.syntax,
34885            Stmt::AlterExtension(it) => &it.syntax,
34886            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
34887            Stmt::AlterForeignTable(it) => &it.syntax,
34888            Stmt::AlterFunction(it) => &it.syntax,
34889            Stmt::AlterGroup(it) => &it.syntax,
34890            Stmt::AlterIndex(it) => &it.syntax,
34891            Stmt::AlterLanguage(it) => &it.syntax,
34892            Stmt::AlterLargeObject(it) => &it.syntax,
34893            Stmt::AlterMaterializedView(it) => &it.syntax,
34894            Stmt::AlterOperator(it) => &it.syntax,
34895            Stmt::AlterOperatorClass(it) => &it.syntax,
34896            Stmt::AlterOperatorFamily(it) => &it.syntax,
34897            Stmt::AlterPolicy(it) => &it.syntax,
34898            Stmt::AlterProcedure(it) => &it.syntax,
34899            Stmt::AlterPropertyGraph(it) => &it.syntax,
34900            Stmt::AlterPublication(it) => &it.syntax,
34901            Stmt::AlterRole(it) => &it.syntax,
34902            Stmt::AlterRoutine(it) => &it.syntax,
34903            Stmt::AlterRule(it) => &it.syntax,
34904            Stmt::AlterSchema(it) => &it.syntax,
34905            Stmt::AlterSequence(it) => &it.syntax,
34906            Stmt::AlterServer(it) => &it.syntax,
34907            Stmt::AlterStatistics(it) => &it.syntax,
34908            Stmt::AlterSubscription(it) => &it.syntax,
34909            Stmt::AlterSystem(it) => &it.syntax,
34910            Stmt::AlterTable(it) => &it.syntax,
34911            Stmt::AlterTablespace(it) => &it.syntax,
34912            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
34913            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
34914            Stmt::AlterTextSearchParser(it) => &it.syntax,
34915            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
34916            Stmt::AlterTrigger(it) => &it.syntax,
34917            Stmt::AlterType(it) => &it.syntax,
34918            Stmt::AlterUser(it) => &it.syntax,
34919            Stmt::AlterUserMapping(it) => &it.syntax,
34920            Stmt::AlterView(it) => &it.syntax,
34921            Stmt::Analyze(it) => &it.syntax,
34922            Stmt::Begin(it) => &it.syntax,
34923            Stmt::Call(it) => &it.syntax,
34924            Stmt::Checkpoint(it) => &it.syntax,
34925            Stmt::Close(it) => &it.syntax,
34926            Stmt::Cluster(it) => &it.syntax,
34927            Stmt::CommentOn(it) => &it.syntax,
34928            Stmt::Commit(it) => &it.syntax,
34929            Stmt::Copy(it) => &it.syntax,
34930            Stmt::CreateAccessMethod(it) => &it.syntax,
34931            Stmt::CreateAggregate(it) => &it.syntax,
34932            Stmt::CreateCast(it) => &it.syntax,
34933            Stmt::CreateCollation(it) => &it.syntax,
34934            Stmt::CreateConversion(it) => &it.syntax,
34935            Stmt::CreateDatabase(it) => &it.syntax,
34936            Stmt::CreateDomain(it) => &it.syntax,
34937            Stmt::CreateEventTrigger(it) => &it.syntax,
34938            Stmt::CreateExtension(it) => &it.syntax,
34939            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
34940            Stmt::CreateForeignTable(it) => &it.syntax,
34941            Stmt::CreateFunction(it) => &it.syntax,
34942            Stmt::CreateGroup(it) => &it.syntax,
34943            Stmt::CreateIndex(it) => &it.syntax,
34944            Stmt::CreateLanguage(it) => &it.syntax,
34945            Stmt::CreateMaterializedView(it) => &it.syntax,
34946            Stmt::CreateOperator(it) => &it.syntax,
34947            Stmt::CreateOperatorClass(it) => &it.syntax,
34948            Stmt::CreateOperatorFamily(it) => &it.syntax,
34949            Stmt::CreatePolicy(it) => &it.syntax,
34950            Stmt::CreateProcedure(it) => &it.syntax,
34951            Stmt::CreatePropertyGraph(it) => &it.syntax,
34952            Stmt::CreatePublication(it) => &it.syntax,
34953            Stmt::CreateRole(it) => &it.syntax,
34954            Stmt::CreateRule(it) => &it.syntax,
34955            Stmt::CreateSchema(it) => &it.syntax,
34956            Stmt::CreateSequence(it) => &it.syntax,
34957            Stmt::CreateServer(it) => &it.syntax,
34958            Stmt::CreateStatistics(it) => &it.syntax,
34959            Stmt::CreateSubscription(it) => &it.syntax,
34960            Stmt::CreateTable(it) => &it.syntax,
34961            Stmt::CreateTableAs(it) => &it.syntax,
34962            Stmt::CreateTablespace(it) => &it.syntax,
34963            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
34964            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
34965            Stmt::CreateTextSearchParser(it) => &it.syntax,
34966            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
34967            Stmt::CreateTransform(it) => &it.syntax,
34968            Stmt::CreateTrigger(it) => &it.syntax,
34969            Stmt::CreateType(it) => &it.syntax,
34970            Stmt::CreateUser(it) => &it.syntax,
34971            Stmt::CreateUserMapping(it) => &it.syntax,
34972            Stmt::CreateView(it) => &it.syntax,
34973            Stmt::Deallocate(it) => &it.syntax,
34974            Stmt::Declare(it) => &it.syntax,
34975            Stmt::Delete(it) => &it.syntax,
34976            Stmt::Discard(it) => &it.syntax,
34977            Stmt::Do(it) => &it.syntax,
34978            Stmt::DropAccessMethod(it) => &it.syntax,
34979            Stmt::DropAggregate(it) => &it.syntax,
34980            Stmt::DropCast(it) => &it.syntax,
34981            Stmt::DropCollation(it) => &it.syntax,
34982            Stmt::DropConversion(it) => &it.syntax,
34983            Stmt::DropDatabase(it) => &it.syntax,
34984            Stmt::DropDomain(it) => &it.syntax,
34985            Stmt::DropEventTrigger(it) => &it.syntax,
34986            Stmt::DropExtension(it) => &it.syntax,
34987            Stmt::DropForeignDataWrapper(it) => &it.syntax,
34988            Stmt::DropForeignTable(it) => &it.syntax,
34989            Stmt::DropFunction(it) => &it.syntax,
34990            Stmt::DropGroup(it) => &it.syntax,
34991            Stmt::DropIndex(it) => &it.syntax,
34992            Stmt::DropLanguage(it) => &it.syntax,
34993            Stmt::DropMaterializedView(it) => &it.syntax,
34994            Stmt::DropOperator(it) => &it.syntax,
34995            Stmt::DropOperatorClass(it) => &it.syntax,
34996            Stmt::DropOperatorFamily(it) => &it.syntax,
34997            Stmt::DropOwned(it) => &it.syntax,
34998            Stmt::DropPolicy(it) => &it.syntax,
34999            Stmt::DropProcedure(it) => &it.syntax,
35000            Stmt::DropPropertyGraph(it) => &it.syntax,
35001            Stmt::DropPublication(it) => &it.syntax,
35002            Stmt::DropRole(it) => &it.syntax,
35003            Stmt::DropRoutine(it) => &it.syntax,
35004            Stmt::DropRule(it) => &it.syntax,
35005            Stmt::DropSchema(it) => &it.syntax,
35006            Stmt::DropSequence(it) => &it.syntax,
35007            Stmt::DropServer(it) => &it.syntax,
35008            Stmt::DropStatistics(it) => &it.syntax,
35009            Stmt::DropSubscription(it) => &it.syntax,
35010            Stmt::DropTable(it) => &it.syntax,
35011            Stmt::DropTablespace(it) => &it.syntax,
35012            Stmt::DropTextSearchConfig(it) => &it.syntax,
35013            Stmt::DropTextSearchDict(it) => &it.syntax,
35014            Stmt::DropTextSearchParser(it) => &it.syntax,
35015            Stmt::DropTextSearchTemplate(it) => &it.syntax,
35016            Stmt::DropTransform(it) => &it.syntax,
35017            Stmt::DropTrigger(it) => &it.syntax,
35018            Stmt::DropType(it) => &it.syntax,
35019            Stmt::DropUser(it) => &it.syntax,
35020            Stmt::DropUserMapping(it) => &it.syntax,
35021            Stmt::DropView(it) => &it.syntax,
35022            Stmt::Execute(it) => &it.syntax,
35023            Stmt::Explain(it) => &it.syntax,
35024            Stmt::Fetch(it) => &it.syntax,
35025            Stmt::Grant(it) => &it.syntax,
35026            Stmt::ImportForeignSchema(it) => &it.syntax,
35027            Stmt::Insert(it) => &it.syntax,
35028            Stmt::Listen(it) => &it.syntax,
35029            Stmt::Load(it) => &it.syntax,
35030            Stmt::Lock(it) => &it.syntax,
35031            Stmt::Merge(it) => &it.syntax,
35032            Stmt::Move(it) => &it.syntax,
35033            Stmt::Notify(it) => &it.syntax,
35034            Stmt::ParenSelect(it) => &it.syntax,
35035            Stmt::Prepare(it) => &it.syntax,
35036            Stmt::PrepareTransaction(it) => &it.syntax,
35037            Stmt::Reassign(it) => &it.syntax,
35038            Stmt::Refresh(it) => &it.syntax,
35039            Stmt::Reindex(it) => &it.syntax,
35040            Stmt::ReleaseSavepoint(it) => &it.syntax,
35041            Stmt::Repack(it) => &it.syntax,
35042            Stmt::Reset(it) => &it.syntax,
35043            Stmt::ResetSessionAuth(it) => &it.syntax,
35044            Stmt::Revoke(it) => &it.syntax,
35045            Stmt::Rollback(it) => &it.syntax,
35046            Stmt::Savepoint(it) => &it.syntax,
35047            Stmt::SecurityLabel(it) => &it.syntax,
35048            Stmt::Select(it) => &it.syntax,
35049            Stmt::SelectInto(it) => &it.syntax,
35050            Stmt::Set(it) => &it.syntax,
35051            Stmt::SetConstraints(it) => &it.syntax,
35052            Stmt::SetRole(it) => &it.syntax,
35053            Stmt::SetSessionAuth(it) => &it.syntax,
35054            Stmt::SetTransaction(it) => &it.syntax,
35055            Stmt::Show(it) => &it.syntax,
35056            Stmt::Table(it) => &it.syntax,
35057            Stmt::Truncate(it) => &it.syntax,
35058            Stmt::Unlisten(it) => &it.syntax,
35059            Stmt::Update(it) => &it.syntax,
35060            Stmt::Vacuum(it) => &it.syntax,
35061            Stmt::Values(it) => &it.syntax,
35062        }
35063    }
35064}
35065impl From<AlterAggregate> for Stmt {
35066    #[inline]
35067    fn from(node: AlterAggregate) -> Stmt {
35068        Stmt::AlterAggregate(node)
35069    }
35070}
35071impl From<AlterCollation> for Stmt {
35072    #[inline]
35073    fn from(node: AlterCollation) -> Stmt {
35074        Stmt::AlterCollation(node)
35075    }
35076}
35077impl From<AlterConversion> for Stmt {
35078    #[inline]
35079    fn from(node: AlterConversion) -> Stmt {
35080        Stmt::AlterConversion(node)
35081    }
35082}
35083impl From<AlterDatabase> for Stmt {
35084    #[inline]
35085    fn from(node: AlterDatabase) -> Stmt {
35086        Stmt::AlterDatabase(node)
35087    }
35088}
35089impl From<AlterDefaultPrivileges> for Stmt {
35090    #[inline]
35091    fn from(node: AlterDefaultPrivileges) -> Stmt {
35092        Stmt::AlterDefaultPrivileges(node)
35093    }
35094}
35095impl From<AlterDomain> for Stmt {
35096    #[inline]
35097    fn from(node: AlterDomain) -> Stmt {
35098        Stmt::AlterDomain(node)
35099    }
35100}
35101impl From<AlterEventTrigger> for Stmt {
35102    #[inline]
35103    fn from(node: AlterEventTrigger) -> Stmt {
35104        Stmt::AlterEventTrigger(node)
35105    }
35106}
35107impl From<AlterExtension> for Stmt {
35108    #[inline]
35109    fn from(node: AlterExtension) -> Stmt {
35110        Stmt::AlterExtension(node)
35111    }
35112}
35113impl From<AlterForeignDataWrapper> for Stmt {
35114    #[inline]
35115    fn from(node: AlterForeignDataWrapper) -> Stmt {
35116        Stmt::AlterForeignDataWrapper(node)
35117    }
35118}
35119impl From<AlterForeignTable> for Stmt {
35120    #[inline]
35121    fn from(node: AlterForeignTable) -> Stmt {
35122        Stmt::AlterForeignTable(node)
35123    }
35124}
35125impl From<AlterFunction> for Stmt {
35126    #[inline]
35127    fn from(node: AlterFunction) -> Stmt {
35128        Stmt::AlterFunction(node)
35129    }
35130}
35131impl From<AlterGroup> for Stmt {
35132    #[inline]
35133    fn from(node: AlterGroup) -> Stmt {
35134        Stmt::AlterGroup(node)
35135    }
35136}
35137impl From<AlterIndex> for Stmt {
35138    #[inline]
35139    fn from(node: AlterIndex) -> Stmt {
35140        Stmt::AlterIndex(node)
35141    }
35142}
35143impl From<AlterLanguage> for Stmt {
35144    #[inline]
35145    fn from(node: AlterLanguage) -> Stmt {
35146        Stmt::AlterLanguage(node)
35147    }
35148}
35149impl From<AlterLargeObject> for Stmt {
35150    #[inline]
35151    fn from(node: AlterLargeObject) -> Stmt {
35152        Stmt::AlterLargeObject(node)
35153    }
35154}
35155impl From<AlterMaterializedView> for Stmt {
35156    #[inline]
35157    fn from(node: AlterMaterializedView) -> Stmt {
35158        Stmt::AlterMaterializedView(node)
35159    }
35160}
35161impl From<AlterOperator> for Stmt {
35162    #[inline]
35163    fn from(node: AlterOperator) -> Stmt {
35164        Stmt::AlterOperator(node)
35165    }
35166}
35167impl From<AlterOperatorClass> for Stmt {
35168    #[inline]
35169    fn from(node: AlterOperatorClass) -> Stmt {
35170        Stmt::AlterOperatorClass(node)
35171    }
35172}
35173impl From<AlterOperatorFamily> for Stmt {
35174    #[inline]
35175    fn from(node: AlterOperatorFamily) -> Stmt {
35176        Stmt::AlterOperatorFamily(node)
35177    }
35178}
35179impl From<AlterPolicy> for Stmt {
35180    #[inline]
35181    fn from(node: AlterPolicy) -> Stmt {
35182        Stmt::AlterPolicy(node)
35183    }
35184}
35185impl From<AlterProcedure> for Stmt {
35186    #[inline]
35187    fn from(node: AlterProcedure) -> Stmt {
35188        Stmt::AlterProcedure(node)
35189    }
35190}
35191impl From<AlterPropertyGraph> for Stmt {
35192    #[inline]
35193    fn from(node: AlterPropertyGraph) -> Stmt {
35194        Stmt::AlterPropertyGraph(node)
35195    }
35196}
35197impl From<AlterPublication> for Stmt {
35198    #[inline]
35199    fn from(node: AlterPublication) -> Stmt {
35200        Stmt::AlterPublication(node)
35201    }
35202}
35203impl From<AlterRole> for Stmt {
35204    #[inline]
35205    fn from(node: AlterRole) -> Stmt {
35206        Stmt::AlterRole(node)
35207    }
35208}
35209impl From<AlterRoutine> for Stmt {
35210    #[inline]
35211    fn from(node: AlterRoutine) -> Stmt {
35212        Stmt::AlterRoutine(node)
35213    }
35214}
35215impl From<AlterRule> for Stmt {
35216    #[inline]
35217    fn from(node: AlterRule) -> Stmt {
35218        Stmt::AlterRule(node)
35219    }
35220}
35221impl From<AlterSchema> for Stmt {
35222    #[inline]
35223    fn from(node: AlterSchema) -> Stmt {
35224        Stmt::AlterSchema(node)
35225    }
35226}
35227impl From<AlterSequence> for Stmt {
35228    #[inline]
35229    fn from(node: AlterSequence) -> Stmt {
35230        Stmt::AlterSequence(node)
35231    }
35232}
35233impl From<AlterServer> for Stmt {
35234    #[inline]
35235    fn from(node: AlterServer) -> Stmt {
35236        Stmt::AlterServer(node)
35237    }
35238}
35239impl From<AlterStatistics> for Stmt {
35240    #[inline]
35241    fn from(node: AlterStatistics) -> Stmt {
35242        Stmt::AlterStatistics(node)
35243    }
35244}
35245impl From<AlterSubscription> for Stmt {
35246    #[inline]
35247    fn from(node: AlterSubscription) -> Stmt {
35248        Stmt::AlterSubscription(node)
35249    }
35250}
35251impl From<AlterSystem> for Stmt {
35252    #[inline]
35253    fn from(node: AlterSystem) -> Stmt {
35254        Stmt::AlterSystem(node)
35255    }
35256}
35257impl From<AlterTable> for Stmt {
35258    #[inline]
35259    fn from(node: AlterTable) -> Stmt {
35260        Stmt::AlterTable(node)
35261    }
35262}
35263impl From<AlterTablespace> for Stmt {
35264    #[inline]
35265    fn from(node: AlterTablespace) -> Stmt {
35266        Stmt::AlterTablespace(node)
35267    }
35268}
35269impl From<AlterTextSearchConfiguration> for Stmt {
35270    #[inline]
35271    fn from(node: AlterTextSearchConfiguration) -> Stmt {
35272        Stmt::AlterTextSearchConfiguration(node)
35273    }
35274}
35275impl From<AlterTextSearchDictionary> for Stmt {
35276    #[inline]
35277    fn from(node: AlterTextSearchDictionary) -> Stmt {
35278        Stmt::AlterTextSearchDictionary(node)
35279    }
35280}
35281impl From<AlterTextSearchParser> for Stmt {
35282    #[inline]
35283    fn from(node: AlterTextSearchParser) -> Stmt {
35284        Stmt::AlterTextSearchParser(node)
35285    }
35286}
35287impl From<AlterTextSearchTemplate> for Stmt {
35288    #[inline]
35289    fn from(node: AlterTextSearchTemplate) -> Stmt {
35290        Stmt::AlterTextSearchTemplate(node)
35291    }
35292}
35293impl From<AlterTrigger> for Stmt {
35294    #[inline]
35295    fn from(node: AlterTrigger) -> Stmt {
35296        Stmt::AlterTrigger(node)
35297    }
35298}
35299impl From<AlterType> for Stmt {
35300    #[inline]
35301    fn from(node: AlterType) -> Stmt {
35302        Stmt::AlterType(node)
35303    }
35304}
35305impl From<AlterUser> for Stmt {
35306    #[inline]
35307    fn from(node: AlterUser) -> Stmt {
35308        Stmt::AlterUser(node)
35309    }
35310}
35311impl From<AlterUserMapping> for Stmt {
35312    #[inline]
35313    fn from(node: AlterUserMapping) -> Stmt {
35314        Stmt::AlterUserMapping(node)
35315    }
35316}
35317impl From<AlterView> for Stmt {
35318    #[inline]
35319    fn from(node: AlterView) -> Stmt {
35320        Stmt::AlterView(node)
35321    }
35322}
35323impl From<Analyze> for Stmt {
35324    #[inline]
35325    fn from(node: Analyze) -> Stmt {
35326        Stmt::Analyze(node)
35327    }
35328}
35329impl From<Begin> for Stmt {
35330    #[inline]
35331    fn from(node: Begin) -> Stmt {
35332        Stmt::Begin(node)
35333    }
35334}
35335impl From<Call> for Stmt {
35336    #[inline]
35337    fn from(node: Call) -> Stmt {
35338        Stmt::Call(node)
35339    }
35340}
35341impl From<Checkpoint> for Stmt {
35342    #[inline]
35343    fn from(node: Checkpoint) -> Stmt {
35344        Stmt::Checkpoint(node)
35345    }
35346}
35347impl From<Close> for Stmt {
35348    #[inline]
35349    fn from(node: Close) -> Stmt {
35350        Stmt::Close(node)
35351    }
35352}
35353impl From<Cluster> for Stmt {
35354    #[inline]
35355    fn from(node: Cluster) -> Stmt {
35356        Stmt::Cluster(node)
35357    }
35358}
35359impl From<CommentOn> for Stmt {
35360    #[inline]
35361    fn from(node: CommentOn) -> Stmt {
35362        Stmt::CommentOn(node)
35363    }
35364}
35365impl From<Commit> for Stmt {
35366    #[inline]
35367    fn from(node: Commit) -> Stmt {
35368        Stmt::Commit(node)
35369    }
35370}
35371impl From<Copy> for Stmt {
35372    #[inline]
35373    fn from(node: Copy) -> Stmt {
35374        Stmt::Copy(node)
35375    }
35376}
35377impl From<CreateAccessMethod> for Stmt {
35378    #[inline]
35379    fn from(node: CreateAccessMethod) -> Stmt {
35380        Stmt::CreateAccessMethod(node)
35381    }
35382}
35383impl From<CreateAggregate> for Stmt {
35384    #[inline]
35385    fn from(node: CreateAggregate) -> Stmt {
35386        Stmt::CreateAggregate(node)
35387    }
35388}
35389impl From<CreateCast> for Stmt {
35390    #[inline]
35391    fn from(node: CreateCast) -> Stmt {
35392        Stmt::CreateCast(node)
35393    }
35394}
35395impl From<CreateCollation> for Stmt {
35396    #[inline]
35397    fn from(node: CreateCollation) -> Stmt {
35398        Stmt::CreateCollation(node)
35399    }
35400}
35401impl From<CreateConversion> for Stmt {
35402    #[inline]
35403    fn from(node: CreateConversion) -> Stmt {
35404        Stmt::CreateConversion(node)
35405    }
35406}
35407impl From<CreateDatabase> for Stmt {
35408    #[inline]
35409    fn from(node: CreateDatabase) -> Stmt {
35410        Stmt::CreateDatabase(node)
35411    }
35412}
35413impl From<CreateDomain> for Stmt {
35414    #[inline]
35415    fn from(node: CreateDomain) -> Stmt {
35416        Stmt::CreateDomain(node)
35417    }
35418}
35419impl From<CreateEventTrigger> for Stmt {
35420    #[inline]
35421    fn from(node: CreateEventTrigger) -> Stmt {
35422        Stmt::CreateEventTrigger(node)
35423    }
35424}
35425impl From<CreateExtension> for Stmt {
35426    #[inline]
35427    fn from(node: CreateExtension) -> Stmt {
35428        Stmt::CreateExtension(node)
35429    }
35430}
35431impl From<CreateForeignDataWrapper> for Stmt {
35432    #[inline]
35433    fn from(node: CreateForeignDataWrapper) -> Stmt {
35434        Stmt::CreateForeignDataWrapper(node)
35435    }
35436}
35437impl From<CreateForeignTable> for Stmt {
35438    #[inline]
35439    fn from(node: CreateForeignTable) -> Stmt {
35440        Stmt::CreateForeignTable(node)
35441    }
35442}
35443impl From<CreateFunction> for Stmt {
35444    #[inline]
35445    fn from(node: CreateFunction) -> Stmt {
35446        Stmt::CreateFunction(node)
35447    }
35448}
35449impl From<CreateGroup> for Stmt {
35450    #[inline]
35451    fn from(node: CreateGroup) -> Stmt {
35452        Stmt::CreateGroup(node)
35453    }
35454}
35455impl From<CreateIndex> for Stmt {
35456    #[inline]
35457    fn from(node: CreateIndex) -> Stmt {
35458        Stmt::CreateIndex(node)
35459    }
35460}
35461impl From<CreateLanguage> for Stmt {
35462    #[inline]
35463    fn from(node: CreateLanguage) -> Stmt {
35464        Stmt::CreateLanguage(node)
35465    }
35466}
35467impl From<CreateMaterializedView> for Stmt {
35468    #[inline]
35469    fn from(node: CreateMaterializedView) -> Stmt {
35470        Stmt::CreateMaterializedView(node)
35471    }
35472}
35473impl From<CreateOperator> for Stmt {
35474    #[inline]
35475    fn from(node: CreateOperator) -> Stmt {
35476        Stmt::CreateOperator(node)
35477    }
35478}
35479impl From<CreateOperatorClass> for Stmt {
35480    #[inline]
35481    fn from(node: CreateOperatorClass) -> Stmt {
35482        Stmt::CreateOperatorClass(node)
35483    }
35484}
35485impl From<CreateOperatorFamily> for Stmt {
35486    #[inline]
35487    fn from(node: CreateOperatorFamily) -> Stmt {
35488        Stmt::CreateOperatorFamily(node)
35489    }
35490}
35491impl From<CreatePolicy> for Stmt {
35492    #[inline]
35493    fn from(node: CreatePolicy) -> Stmt {
35494        Stmt::CreatePolicy(node)
35495    }
35496}
35497impl From<CreateProcedure> for Stmt {
35498    #[inline]
35499    fn from(node: CreateProcedure) -> Stmt {
35500        Stmt::CreateProcedure(node)
35501    }
35502}
35503impl From<CreatePropertyGraph> for Stmt {
35504    #[inline]
35505    fn from(node: CreatePropertyGraph) -> Stmt {
35506        Stmt::CreatePropertyGraph(node)
35507    }
35508}
35509impl From<CreatePublication> for Stmt {
35510    #[inline]
35511    fn from(node: CreatePublication) -> Stmt {
35512        Stmt::CreatePublication(node)
35513    }
35514}
35515impl From<CreateRole> for Stmt {
35516    #[inline]
35517    fn from(node: CreateRole) -> Stmt {
35518        Stmt::CreateRole(node)
35519    }
35520}
35521impl From<CreateRule> for Stmt {
35522    #[inline]
35523    fn from(node: CreateRule) -> Stmt {
35524        Stmt::CreateRule(node)
35525    }
35526}
35527impl From<CreateSchema> for Stmt {
35528    #[inline]
35529    fn from(node: CreateSchema) -> Stmt {
35530        Stmt::CreateSchema(node)
35531    }
35532}
35533impl From<CreateSequence> for Stmt {
35534    #[inline]
35535    fn from(node: CreateSequence) -> Stmt {
35536        Stmt::CreateSequence(node)
35537    }
35538}
35539impl From<CreateServer> for Stmt {
35540    #[inline]
35541    fn from(node: CreateServer) -> Stmt {
35542        Stmt::CreateServer(node)
35543    }
35544}
35545impl From<CreateStatistics> for Stmt {
35546    #[inline]
35547    fn from(node: CreateStatistics) -> Stmt {
35548        Stmt::CreateStatistics(node)
35549    }
35550}
35551impl From<CreateSubscription> for Stmt {
35552    #[inline]
35553    fn from(node: CreateSubscription) -> Stmt {
35554        Stmt::CreateSubscription(node)
35555    }
35556}
35557impl From<CreateTable> for Stmt {
35558    #[inline]
35559    fn from(node: CreateTable) -> Stmt {
35560        Stmt::CreateTable(node)
35561    }
35562}
35563impl From<CreateTableAs> for Stmt {
35564    #[inline]
35565    fn from(node: CreateTableAs) -> Stmt {
35566        Stmt::CreateTableAs(node)
35567    }
35568}
35569impl From<CreateTablespace> for Stmt {
35570    #[inline]
35571    fn from(node: CreateTablespace) -> Stmt {
35572        Stmt::CreateTablespace(node)
35573    }
35574}
35575impl From<CreateTextSearchConfiguration> for Stmt {
35576    #[inline]
35577    fn from(node: CreateTextSearchConfiguration) -> Stmt {
35578        Stmt::CreateTextSearchConfiguration(node)
35579    }
35580}
35581impl From<CreateTextSearchDictionary> for Stmt {
35582    #[inline]
35583    fn from(node: CreateTextSearchDictionary) -> Stmt {
35584        Stmt::CreateTextSearchDictionary(node)
35585    }
35586}
35587impl From<CreateTextSearchParser> for Stmt {
35588    #[inline]
35589    fn from(node: CreateTextSearchParser) -> Stmt {
35590        Stmt::CreateTextSearchParser(node)
35591    }
35592}
35593impl From<CreateTextSearchTemplate> for Stmt {
35594    #[inline]
35595    fn from(node: CreateTextSearchTemplate) -> Stmt {
35596        Stmt::CreateTextSearchTemplate(node)
35597    }
35598}
35599impl From<CreateTransform> for Stmt {
35600    #[inline]
35601    fn from(node: CreateTransform) -> Stmt {
35602        Stmt::CreateTransform(node)
35603    }
35604}
35605impl From<CreateTrigger> for Stmt {
35606    #[inline]
35607    fn from(node: CreateTrigger) -> Stmt {
35608        Stmt::CreateTrigger(node)
35609    }
35610}
35611impl From<CreateType> for Stmt {
35612    #[inline]
35613    fn from(node: CreateType) -> Stmt {
35614        Stmt::CreateType(node)
35615    }
35616}
35617impl From<CreateUser> for Stmt {
35618    #[inline]
35619    fn from(node: CreateUser) -> Stmt {
35620        Stmt::CreateUser(node)
35621    }
35622}
35623impl From<CreateUserMapping> for Stmt {
35624    #[inline]
35625    fn from(node: CreateUserMapping) -> Stmt {
35626        Stmt::CreateUserMapping(node)
35627    }
35628}
35629impl From<CreateView> for Stmt {
35630    #[inline]
35631    fn from(node: CreateView) -> Stmt {
35632        Stmt::CreateView(node)
35633    }
35634}
35635impl From<Deallocate> for Stmt {
35636    #[inline]
35637    fn from(node: Deallocate) -> Stmt {
35638        Stmt::Deallocate(node)
35639    }
35640}
35641impl From<Declare> for Stmt {
35642    #[inline]
35643    fn from(node: Declare) -> Stmt {
35644        Stmt::Declare(node)
35645    }
35646}
35647impl From<Delete> for Stmt {
35648    #[inline]
35649    fn from(node: Delete) -> Stmt {
35650        Stmt::Delete(node)
35651    }
35652}
35653impl From<Discard> for Stmt {
35654    #[inline]
35655    fn from(node: Discard) -> Stmt {
35656        Stmt::Discard(node)
35657    }
35658}
35659impl From<Do> for Stmt {
35660    #[inline]
35661    fn from(node: Do) -> Stmt {
35662        Stmt::Do(node)
35663    }
35664}
35665impl From<DropAccessMethod> for Stmt {
35666    #[inline]
35667    fn from(node: DropAccessMethod) -> Stmt {
35668        Stmt::DropAccessMethod(node)
35669    }
35670}
35671impl From<DropAggregate> for Stmt {
35672    #[inline]
35673    fn from(node: DropAggregate) -> Stmt {
35674        Stmt::DropAggregate(node)
35675    }
35676}
35677impl From<DropCast> for Stmt {
35678    #[inline]
35679    fn from(node: DropCast) -> Stmt {
35680        Stmt::DropCast(node)
35681    }
35682}
35683impl From<DropCollation> for Stmt {
35684    #[inline]
35685    fn from(node: DropCollation) -> Stmt {
35686        Stmt::DropCollation(node)
35687    }
35688}
35689impl From<DropConversion> for Stmt {
35690    #[inline]
35691    fn from(node: DropConversion) -> Stmt {
35692        Stmt::DropConversion(node)
35693    }
35694}
35695impl From<DropDatabase> for Stmt {
35696    #[inline]
35697    fn from(node: DropDatabase) -> Stmt {
35698        Stmt::DropDatabase(node)
35699    }
35700}
35701impl From<DropDomain> for Stmt {
35702    #[inline]
35703    fn from(node: DropDomain) -> Stmt {
35704        Stmt::DropDomain(node)
35705    }
35706}
35707impl From<DropEventTrigger> for Stmt {
35708    #[inline]
35709    fn from(node: DropEventTrigger) -> Stmt {
35710        Stmt::DropEventTrigger(node)
35711    }
35712}
35713impl From<DropExtension> for Stmt {
35714    #[inline]
35715    fn from(node: DropExtension) -> Stmt {
35716        Stmt::DropExtension(node)
35717    }
35718}
35719impl From<DropForeignDataWrapper> for Stmt {
35720    #[inline]
35721    fn from(node: DropForeignDataWrapper) -> Stmt {
35722        Stmt::DropForeignDataWrapper(node)
35723    }
35724}
35725impl From<DropForeignTable> for Stmt {
35726    #[inline]
35727    fn from(node: DropForeignTable) -> Stmt {
35728        Stmt::DropForeignTable(node)
35729    }
35730}
35731impl From<DropFunction> for Stmt {
35732    #[inline]
35733    fn from(node: DropFunction) -> Stmt {
35734        Stmt::DropFunction(node)
35735    }
35736}
35737impl From<DropGroup> for Stmt {
35738    #[inline]
35739    fn from(node: DropGroup) -> Stmt {
35740        Stmt::DropGroup(node)
35741    }
35742}
35743impl From<DropIndex> for Stmt {
35744    #[inline]
35745    fn from(node: DropIndex) -> Stmt {
35746        Stmt::DropIndex(node)
35747    }
35748}
35749impl From<DropLanguage> for Stmt {
35750    #[inline]
35751    fn from(node: DropLanguage) -> Stmt {
35752        Stmt::DropLanguage(node)
35753    }
35754}
35755impl From<DropMaterializedView> for Stmt {
35756    #[inline]
35757    fn from(node: DropMaterializedView) -> Stmt {
35758        Stmt::DropMaterializedView(node)
35759    }
35760}
35761impl From<DropOperator> for Stmt {
35762    #[inline]
35763    fn from(node: DropOperator) -> Stmt {
35764        Stmt::DropOperator(node)
35765    }
35766}
35767impl From<DropOperatorClass> for Stmt {
35768    #[inline]
35769    fn from(node: DropOperatorClass) -> Stmt {
35770        Stmt::DropOperatorClass(node)
35771    }
35772}
35773impl From<DropOperatorFamily> for Stmt {
35774    #[inline]
35775    fn from(node: DropOperatorFamily) -> Stmt {
35776        Stmt::DropOperatorFamily(node)
35777    }
35778}
35779impl From<DropOwned> for Stmt {
35780    #[inline]
35781    fn from(node: DropOwned) -> Stmt {
35782        Stmt::DropOwned(node)
35783    }
35784}
35785impl From<DropPolicy> for Stmt {
35786    #[inline]
35787    fn from(node: DropPolicy) -> Stmt {
35788        Stmt::DropPolicy(node)
35789    }
35790}
35791impl From<DropProcedure> for Stmt {
35792    #[inline]
35793    fn from(node: DropProcedure) -> Stmt {
35794        Stmt::DropProcedure(node)
35795    }
35796}
35797impl From<DropPropertyGraph> for Stmt {
35798    #[inline]
35799    fn from(node: DropPropertyGraph) -> Stmt {
35800        Stmt::DropPropertyGraph(node)
35801    }
35802}
35803impl From<DropPublication> for Stmt {
35804    #[inline]
35805    fn from(node: DropPublication) -> Stmt {
35806        Stmt::DropPublication(node)
35807    }
35808}
35809impl From<DropRole> for Stmt {
35810    #[inline]
35811    fn from(node: DropRole) -> Stmt {
35812        Stmt::DropRole(node)
35813    }
35814}
35815impl From<DropRoutine> for Stmt {
35816    #[inline]
35817    fn from(node: DropRoutine) -> Stmt {
35818        Stmt::DropRoutine(node)
35819    }
35820}
35821impl From<DropRule> for Stmt {
35822    #[inline]
35823    fn from(node: DropRule) -> Stmt {
35824        Stmt::DropRule(node)
35825    }
35826}
35827impl From<DropSchema> for Stmt {
35828    #[inline]
35829    fn from(node: DropSchema) -> Stmt {
35830        Stmt::DropSchema(node)
35831    }
35832}
35833impl From<DropSequence> for Stmt {
35834    #[inline]
35835    fn from(node: DropSequence) -> Stmt {
35836        Stmt::DropSequence(node)
35837    }
35838}
35839impl From<DropServer> for Stmt {
35840    #[inline]
35841    fn from(node: DropServer) -> Stmt {
35842        Stmt::DropServer(node)
35843    }
35844}
35845impl From<DropStatistics> for Stmt {
35846    #[inline]
35847    fn from(node: DropStatistics) -> Stmt {
35848        Stmt::DropStatistics(node)
35849    }
35850}
35851impl From<DropSubscription> for Stmt {
35852    #[inline]
35853    fn from(node: DropSubscription) -> Stmt {
35854        Stmt::DropSubscription(node)
35855    }
35856}
35857impl From<DropTable> for Stmt {
35858    #[inline]
35859    fn from(node: DropTable) -> Stmt {
35860        Stmt::DropTable(node)
35861    }
35862}
35863impl From<DropTablespace> for Stmt {
35864    #[inline]
35865    fn from(node: DropTablespace) -> Stmt {
35866        Stmt::DropTablespace(node)
35867    }
35868}
35869impl From<DropTextSearchConfig> for Stmt {
35870    #[inline]
35871    fn from(node: DropTextSearchConfig) -> Stmt {
35872        Stmt::DropTextSearchConfig(node)
35873    }
35874}
35875impl From<DropTextSearchDict> for Stmt {
35876    #[inline]
35877    fn from(node: DropTextSearchDict) -> Stmt {
35878        Stmt::DropTextSearchDict(node)
35879    }
35880}
35881impl From<DropTextSearchParser> for Stmt {
35882    #[inline]
35883    fn from(node: DropTextSearchParser) -> Stmt {
35884        Stmt::DropTextSearchParser(node)
35885    }
35886}
35887impl From<DropTextSearchTemplate> for Stmt {
35888    #[inline]
35889    fn from(node: DropTextSearchTemplate) -> Stmt {
35890        Stmt::DropTextSearchTemplate(node)
35891    }
35892}
35893impl From<DropTransform> for Stmt {
35894    #[inline]
35895    fn from(node: DropTransform) -> Stmt {
35896        Stmt::DropTransform(node)
35897    }
35898}
35899impl From<DropTrigger> for Stmt {
35900    #[inline]
35901    fn from(node: DropTrigger) -> Stmt {
35902        Stmt::DropTrigger(node)
35903    }
35904}
35905impl From<DropType> for Stmt {
35906    #[inline]
35907    fn from(node: DropType) -> Stmt {
35908        Stmt::DropType(node)
35909    }
35910}
35911impl From<DropUser> for Stmt {
35912    #[inline]
35913    fn from(node: DropUser) -> Stmt {
35914        Stmt::DropUser(node)
35915    }
35916}
35917impl From<DropUserMapping> for Stmt {
35918    #[inline]
35919    fn from(node: DropUserMapping) -> Stmt {
35920        Stmt::DropUserMapping(node)
35921    }
35922}
35923impl From<DropView> for Stmt {
35924    #[inline]
35925    fn from(node: DropView) -> Stmt {
35926        Stmt::DropView(node)
35927    }
35928}
35929impl From<Execute> for Stmt {
35930    #[inline]
35931    fn from(node: Execute) -> Stmt {
35932        Stmt::Execute(node)
35933    }
35934}
35935impl From<Explain> for Stmt {
35936    #[inline]
35937    fn from(node: Explain) -> Stmt {
35938        Stmt::Explain(node)
35939    }
35940}
35941impl From<Fetch> for Stmt {
35942    #[inline]
35943    fn from(node: Fetch) -> Stmt {
35944        Stmt::Fetch(node)
35945    }
35946}
35947impl From<Grant> for Stmt {
35948    #[inline]
35949    fn from(node: Grant) -> Stmt {
35950        Stmt::Grant(node)
35951    }
35952}
35953impl From<ImportForeignSchema> for Stmt {
35954    #[inline]
35955    fn from(node: ImportForeignSchema) -> Stmt {
35956        Stmt::ImportForeignSchema(node)
35957    }
35958}
35959impl From<Insert> for Stmt {
35960    #[inline]
35961    fn from(node: Insert) -> Stmt {
35962        Stmt::Insert(node)
35963    }
35964}
35965impl From<Listen> for Stmt {
35966    #[inline]
35967    fn from(node: Listen) -> Stmt {
35968        Stmt::Listen(node)
35969    }
35970}
35971impl From<Load> for Stmt {
35972    #[inline]
35973    fn from(node: Load) -> Stmt {
35974        Stmt::Load(node)
35975    }
35976}
35977impl From<Lock> for Stmt {
35978    #[inline]
35979    fn from(node: Lock) -> Stmt {
35980        Stmt::Lock(node)
35981    }
35982}
35983impl From<Merge> for Stmt {
35984    #[inline]
35985    fn from(node: Merge) -> Stmt {
35986        Stmt::Merge(node)
35987    }
35988}
35989impl From<Move> for Stmt {
35990    #[inline]
35991    fn from(node: Move) -> Stmt {
35992        Stmt::Move(node)
35993    }
35994}
35995impl From<Notify> for Stmt {
35996    #[inline]
35997    fn from(node: Notify) -> Stmt {
35998        Stmt::Notify(node)
35999    }
36000}
36001impl From<ParenSelect> for Stmt {
36002    #[inline]
36003    fn from(node: ParenSelect) -> Stmt {
36004        Stmt::ParenSelect(node)
36005    }
36006}
36007impl From<Prepare> for Stmt {
36008    #[inline]
36009    fn from(node: Prepare) -> Stmt {
36010        Stmt::Prepare(node)
36011    }
36012}
36013impl From<PrepareTransaction> for Stmt {
36014    #[inline]
36015    fn from(node: PrepareTransaction) -> Stmt {
36016        Stmt::PrepareTransaction(node)
36017    }
36018}
36019impl From<Reassign> for Stmt {
36020    #[inline]
36021    fn from(node: Reassign) -> Stmt {
36022        Stmt::Reassign(node)
36023    }
36024}
36025impl From<Refresh> for Stmt {
36026    #[inline]
36027    fn from(node: Refresh) -> Stmt {
36028        Stmt::Refresh(node)
36029    }
36030}
36031impl From<Reindex> for Stmt {
36032    #[inline]
36033    fn from(node: Reindex) -> Stmt {
36034        Stmt::Reindex(node)
36035    }
36036}
36037impl From<ReleaseSavepoint> for Stmt {
36038    #[inline]
36039    fn from(node: ReleaseSavepoint) -> Stmt {
36040        Stmt::ReleaseSavepoint(node)
36041    }
36042}
36043impl From<Repack> for Stmt {
36044    #[inline]
36045    fn from(node: Repack) -> Stmt {
36046        Stmt::Repack(node)
36047    }
36048}
36049impl From<Reset> for Stmt {
36050    #[inline]
36051    fn from(node: Reset) -> Stmt {
36052        Stmt::Reset(node)
36053    }
36054}
36055impl From<ResetSessionAuth> for Stmt {
36056    #[inline]
36057    fn from(node: ResetSessionAuth) -> Stmt {
36058        Stmt::ResetSessionAuth(node)
36059    }
36060}
36061impl From<Revoke> for Stmt {
36062    #[inline]
36063    fn from(node: Revoke) -> Stmt {
36064        Stmt::Revoke(node)
36065    }
36066}
36067impl From<Rollback> for Stmt {
36068    #[inline]
36069    fn from(node: Rollback) -> Stmt {
36070        Stmt::Rollback(node)
36071    }
36072}
36073impl From<Savepoint> for Stmt {
36074    #[inline]
36075    fn from(node: Savepoint) -> Stmt {
36076        Stmt::Savepoint(node)
36077    }
36078}
36079impl From<SecurityLabel> for Stmt {
36080    #[inline]
36081    fn from(node: SecurityLabel) -> Stmt {
36082        Stmt::SecurityLabel(node)
36083    }
36084}
36085impl From<Select> for Stmt {
36086    #[inline]
36087    fn from(node: Select) -> Stmt {
36088        Stmt::Select(node)
36089    }
36090}
36091impl From<SelectInto> for Stmt {
36092    #[inline]
36093    fn from(node: SelectInto) -> Stmt {
36094        Stmt::SelectInto(node)
36095    }
36096}
36097impl From<Set> for Stmt {
36098    #[inline]
36099    fn from(node: Set) -> Stmt {
36100        Stmt::Set(node)
36101    }
36102}
36103impl From<SetConstraints> for Stmt {
36104    #[inline]
36105    fn from(node: SetConstraints) -> Stmt {
36106        Stmt::SetConstraints(node)
36107    }
36108}
36109impl From<SetRole> for Stmt {
36110    #[inline]
36111    fn from(node: SetRole) -> Stmt {
36112        Stmt::SetRole(node)
36113    }
36114}
36115impl From<SetSessionAuth> for Stmt {
36116    #[inline]
36117    fn from(node: SetSessionAuth) -> Stmt {
36118        Stmt::SetSessionAuth(node)
36119    }
36120}
36121impl From<SetTransaction> for Stmt {
36122    #[inline]
36123    fn from(node: SetTransaction) -> Stmt {
36124        Stmt::SetTransaction(node)
36125    }
36126}
36127impl From<Show> for Stmt {
36128    #[inline]
36129    fn from(node: Show) -> Stmt {
36130        Stmt::Show(node)
36131    }
36132}
36133impl From<Table> for Stmt {
36134    #[inline]
36135    fn from(node: Table) -> Stmt {
36136        Stmt::Table(node)
36137    }
36138}
36139impl From<Truncate> for Stmt {
36140    #[inline]
36141    fn from(node: Truncate) -> Stmt {
36142        Stmt::Truncate(node)
36143    }
36144}
36145impl From<Unlisten> for Stmt {
36146    #[inline]
36147    fn from(node: Unlisten) -> Stmt {
36148        Stmt::Unlisten(node)
36149    }
36150}
36151impl From<Update> for Stmt {
36152    #[inline]
36153    fn from(node: Update) -> Stmt {
36154        Stmt::Update(node)
36155    }
36156}
36157impl From<Vacuum> for Stmt {
36158    #[inline]
36159    fn from(node: Vacuum) -> Stmt {
36160        Stmt::Vacuum(node)
36161    }
36162}
36163impl From<Values> for Stmt {
36164    #[inline]
36165    fn from(node: Values) -> Stmt {
36166        Stmt::Values(node)
36167    }
36168}
36169impl AstNode for TableArg {
36170    #[inline]
36171    fn can_cast(kind: SyntaxKind) -> bool {
36172        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
36173    }
36174    #[inline]
36175    fn cast(syntax: SyntaxNode) -> Option<Self> {
36176        let res = match syntax.kind() {
36177            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
36178            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
36179            _ => {
36180                if let Some(result) = TableConstraint::cast(syntax) {
36181                    return Some(TableArg::TableConstraint(result));
36182                }
36183                return None;
36184            }
36185        };
36186        Some(res)
36187    }
36188    #[inline]
36189    fn syntax(&self) -> &SyntaxNode {
36190        match self {
36191            TableArg::Column(it) => &it.syntax,
36192            TableArg::LikeClause(it) => &it.syntax,
36193            TableArg::TableConstraint(it) => it.syntax(),
36194        }
36195    }
36196}
36197impl From<Column> for TableArg {
36198    #[inline]
36199    fn from(node: Column) -> TableArg {
36200        TableArg::Column(node)
36201    }
36202}
36203impl From<LikeClause> for TableArg {
36204    #[inline]
36205    fn from(node: LikeClause) -> TableArg {
36206        TableArg::LikeClause(node)
36207    }
36208}
36209impl AstNode for TableConstraint {
36210    #[inline]
36211    fn can_cast(kind: SyntaxKind) -> bool {
36212        matches!(
36213            kind,
36214            SyntaxKind::CHECK_CONSTRAINT
36215                | SyntaxKind::EXCLUDE_CONSTRAINT
36216                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
36217                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
36218                | SyntaxKind::UNIQUE_CONSTRAINT
36219        )
36220    }
36221    #[inline]
36222    fn cast(syntax: SyntaxNode) -> Option<Self> {
36223        let res = match syntax.kind() {
36224            SyntaxKind::CHECK_CONSTRAINT => {
36225                TableConstraint::CheckConstraint(CheckConstraint { syntax })
36226            }
36227            SyntaxKind::EXCLUDE_CONSTRAINT => {
36228                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
36229            }
36230            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
36231                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
36232            }
36233            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
36234                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
36235            }
36236            SyntaxKind::UNIQUE_CONSTRAINT => {
36237                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
36238            }
36239            _ => {
36240                return None;
36241            }
36242        };
36243        Some(res)
36244    }
36245    #[inline]
36246    fn syntax(&self) -> &SyntaxNode {
36247        match self {
36248            TableConstraint::CheckConstraint(it) => &it.syntax,
36249            TableConstraint::ExcludeConstraint(it) => &it.syntax,
36250            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
36251            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
36252            TableConstraint::UniqueConstraint(it) => &it.syntax,
36253        }
36254    }
36255}
36256impl From<CheckConstraint> for TableConstraint {
36257    #[inline]
36258    fn from(node: CheckConstraint) -> TableConstraint {
36259        TableConstraint::CheckConstraint(node)
36260    }
36261}
36262impl From<ExcludeConstraint> for TableConstraint {
36263    #[inline]
36264    fn from(node: ExcludeConstraint) -> TableConstraint {
36265        TableConstraint::ExcludeConstraint(node)
36266    }
36267}
36268impl From<ForeignKeyConstraint> for TableConstraint {
36269    #[inline]
36270    fn from(node: ForeignKeyConstraint) -> TableConstraint {
36271        TableConstraint::ForeignKeyConstraint(node)
36272    }
36273}
36274impl From<PrimaryKeyConstraint> for TableConstraint {
36275    #[inline]
36276    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
36277        TableConstraint::PrimaryKeyConstraint(node)
36278    }
36279}
36280impl From<UniqueConstraint> for TableConstraint {
36281    #[inline]
36282    fn from(node: UniqueConstraint) -> TableConstraint {
36283        TableConstraint::UniqueConstraint(node)
36284    }
36285}
36286impl AstNode for Timezone {
36287    #[inline]
36288    fn can_cast(kind: SyntaxKind) -> bool {
36289        matches!(
36290            kind,
36291            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
36292        )
36293    }
36294    #[inline]
36295    fn cast(syntax: SyntaxNode) -> Option<Self> {
36296        let res = match syntax.kind() {
36297            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
36298            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
36299            _ => {
36300                return None;
36301            }
36302        };
36303        Some(res)
36304    }
36305    #[inline]
36306    fn syntax(&self) -> &SyntaxNode {
36307        match self {
36308            Timezone::WithTimezone(it) => &it.syntax,
36309            Timezone::WithoutTimezone(it) => &it.syntax,
36310        }
36311    }
36312}
36313impl From<WithTimezone> for Timezone {
36314    #[inline]
36315    fn from(node: WithTimezone) -> Timezone {
36316        Timezone::WithTimezone(node)
36317    }
36318}
36319impl From<WithoutTimezone> for Timezone {
36320    #[inline]
36321    fn from(node: WithoutTimezone) -> Timezone {
36322        Timezone::WithoutTimezone(node)
36323    }
36324}
36325impl AstNode for TransactionMode {
36326    #[inline]
36327    fn can_cast(kind: SyntaxKind) -> bool {
36328        matches!(
36329            kind,
36330            SyntaxKind::DEFERRABLE
36331                | SyntaxKind::NOT_DEFERRABLE
36332                | SyntaxKind::READ_COMMITTED
36333                | SyntaxKind::READ_ONLY
36334                | SyntaxKind::READ_UNCOMMITTED
36335                | SyntaxKind::READ_WRITE
36336                | SyntaxKind::REPEATABLE_READ
36337                | SyntaxKind::SERIALIZABLE
36338        )
36339    }
36340    #[inline]
36341    fn cast(syntax: SyntaxNode) -> Option<Self> {
36342        let res = match syntax.kind() {
36343            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
36344            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
36345            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
36346            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
36347            SyntaxKind::READ_UNCOMMITTED => {
36348                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
36349            }
36350            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
36351            SyntaxKind::REPEATABLE_READ => {
36352                TransactionMode::RepeatableRead(RepeatableRead { syntax })
36353            }
36354            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
36355            _ => {
36356                return None;
36357            }
36358        };
36359        Some(res)
36360    }
36361    #[inline]
36362    fn syntax(&self) -> &SyntaxNode {
36363        match self {
36364            TransactionMode::Deferrable(it) => &it.syntax,
36365            TransactionMode::NotDeferrable(it) => &it.syntax,
36366            TransactionMode::ReadCommitted(it) => &it.syntax,
36367            TransactionMode::ReadOnly(it) => &it.syntax,
36368            TransactionMode::ReadUncommitted(it) => &it.syntax,
36369            TransactionMode::ReadWrite(it) => &it.syntax,
36370            TransactionMode::RepeatableRead(it) => &it.syntax,
36371            TransactionMode::Serializable(it) => &it.syntax,
36372        }
36373    }
36374}
36375impl From<Deferrable> for TransactionMode {
36376    #[inline]
36377    fn from(node: Deferrable) -> TransactionMode {
36378        TransactionMode::Deferrable(node)
36379    }
36380}
36381impl From<NotDeferrable> for TransactionMode {
36382    #[inline]
36383    fn from(node: NotDeferrable) -> TransactionMode {
36384        TransactionMode::NotDeferrable(node)
36385    }
36386}
36387impl From<ReadCommitted> for TransactionMode {
36388    #[inline]
36389    fn from(node: ReadCommitted) -> TransactionMode {
36390        TransactionMode::ReadCommitted(node)
36391    }
36392}
36393impl From<ReadOnly> for TransactionMode {
36394    #[inline]
36395    fn from(node: ReadOnly) -> TransactionMode {
36396        TransactionMode::ReadOnly(node)
36397    }
36398}
36399impl From<ReadUncommitted> for TransactionMode {
36400    #[inline]
36401    fn from(node: ReadUncommitted) -> TransactionMode {
36402        TransactionMode::ReadUncommitted(node)
36403    }
36404}
36405impl From<ReadWrite> for TransactionMode {
36406    #[inline]
36407    fn from(node: ReadWrite) -> TransactionMode {
36408        TransactionMode::ReadWrite(node)
36409    }
36410}
36411impl From<RepeatableRead> for TransactionMode {
36412    #[inline]
36413    fn from(node: RepeatableRead) -> TransactionMode {
36414        TransactionMode::RepeatableRead(node)
36415    }
36416}
36417impl From<Serializable> for TransactionMode {
36418    #[inline]
36419    fn from(node: Serializable) -> TransactionMode {
36420        TransactionMode::Serializable(node)
36421    }
36422}
36423impl AstNode for Type {
36424    #[inline]
36425    fn can_cast(kind: SyntaxKind) -> bool {
36426        matches!(
36427            kind,
36428            SyntaxKind::ARRAY_TYPE
36429                | SyntaxKind::BIT_TYPE
36430                | SyntaxKind::CHAR_TYPE
36431                | SyntaxKind::DOUBLE_TYPE
36432                | SyntaxKind::EXPR_TYPE
36433                | SyntaxKind::INTERVAL_TYPE
36434                | SyntaxKind::PATH_TYPE
36435                | SyntaxKind::PERCENT_TYPE
36436                | SyntaxKind::TIME_TYPE
36437        )
36438    }
36439    #[inline]
36440    fn cast(syntax: SyntaxNode) -> Option<Self> {
36441        let res = match syntax.kind() {
36442            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
36443            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
36444            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
36445            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
36446            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
36447            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
36448            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
36449            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
36450            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
36451            _ => {
36452                return None;
36453            }
36454        };
36455        Some(res)
36456    }
36457    #[inline]
36458    fn syntax(&self) -> &SyntaxNode {
36459        match self {
36460            Type::ArrayType(it) => &it.syntax,
36461            Type::BitType(it) => &it.syntax,
36462            Type::CharType(it) => &it.syntax,
36463            Type::DoubleType(it) => &it.syntax,
36464            Type::ExprType(it) => &it.syntax,
36465            Type::IntervalType(it) => &it.syntax,
36466            Type::PathType(it) => &it.syntax,
36467            Type::PercentType(it) => &it.syntax,
36468            Type::TimeType(it) => &it.syntax,
36469        }
36470    }
36471}
36472impl From<ArrayType> for Type {
36473    #[inline]
36474    fn from(node: ArrayType) -> Type {
36475        Type::ArrayType(node)
36476    }
36477}
36478impl From<BitType> for Type {
36479    #[inline]
36480    fn from(node: BitType) -> Type {
36481        Type::BitType(node)
36482    }
36483}
36484impl From<CharType> for Type {
36485    #[inline]
36486    fn from(node: CharType) -> Type {
36487        Type::CharType(node)
36488    }
36489}
36490impl From<DoubleType> for Type {
36491    #[inline]
36492    fn from(node: DoubleType) -> Type {
36493        Type::DoubleType(node)
36494    }
36495}
36496impl From<ExprType> for Type {
36497    #[inline]
36498    fn from(node: ExprType) -> Type {
36499        Type::ExprType(node)
36500    }
36501}
36502impl From<IntervalType> for Type {
36503    #[inline]
36504    fn from(node: IntervalType) -> Type {
36505        Type::IntervalType(node)
36506    }
36507}
36508impl From<PathType> for Type {
36509    #[inline]
36510    fn from(node: PathType) -> Type {
36511        Type::PathType(node)
36512    }
36513}
36514impl From<PercentType> for Type {
36515    #[inline]
36516    fn from(node: PercentType) -> Type {
36517        Type::PercentType(node)
36518    }
36519}
36520impl From<TimeType> for Type {
36521    #[inline]
36522    fn from(node: TimeType) -> Type {
36523        Type::TimeType(node)
36524    }
36525}
36526impl AstNode for ValuePosition {
36527    #[inline]
36528    fn can_cast(kind: SyntaxKind) -> bool {
36529        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
36530    }
36531    #[inline]
36532    fn cast(syntax: SyntaxNode) -> Option<Self> {
36533        let res = match syntax.kind() {
36534            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
36535            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
36536            _ => {
36537                return None;
36538            }
36539        };
36540        Some(res)
36541    }
36542    #[inline]
36543    fn syntax(&self) -> &SyntaxNode {
36544        match self {
36545            ValuePosition::AfterValue(it) => &it.syntax,
36546            ValuePosition::BeforeValue(it) => &it.syntax,
36547        }
36548    }
36549}
36550impl From<AfterValue> for ValuePosition {
36551    #[inline]
36552    fn from(node: AfterValue) -> ValuePosition {
36553        ValuePosition::AfterValue(node)
36554    }
36555}
36556impl From<BeforeValue> for ValuePosition {
36557    #[inline]
36558    fn from(node: BeforeValue) -> ValuePosition {
36559        ValuePosition::BeforeValue(node)
36560    }
36561}
36562impl AstNode for WithQuery {
36563    #[inline]
36564    fn can_cast(kind: SyntaxKind) -> bool {
36565        matches!(
36566            kind,
36567            SyntaxKind::COMPOUND_SELECT
36568                | SyntaxKind::DELETE
36569                | SyntaxKind::INSERT
36570                | SyntaxKind::MERGE
36571                | SyntaxKind::PAREN_SELECT
36572                | SyntaxKind::SELECT
36573                | SyntaxKind::TABLE
36574                | SyntaxKind::UPDATE
36575                | SyntaxKind::VALUES
36576        )
36577    }
36578    #[inline]
36579    fn cast(syntax: SyntaxNode) -> Option<Self> {
36580        let res = match syntax.kind() {
36581            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
36582            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
36583            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
36584            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
36585            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
36586            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
36587            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
36588            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
36589            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
36590            _ => {
36591                return None;
36592            }
36593        };
36594        Some(res)
36595    }
36596    #[inline]
36597    fn syntax(&self) -> &SyntaxNode {
36598        match self {
36599            WithQuery::CompoundSelect(it) => &it.syntax,
36600            WithQuery::Delete(it) => &it.syntax,
36601            WithQuery::Insert(it) => &it.syntax,
36602            WithQuery::Merge(it) => &it.syntax,
36603            WithQuery::ParenSelect(it) => &it.syntax,
36604            WithQuery::Select(it) => &it.syntax,
36605            WithQuery::Table(it) => &it.syntax,
36606            WithQuery::Update(it) => &it.syntax,
36607            WithQuery::Values(it) => &it.syntax,
36608        }
36609    }
36610}
36611impl From<CompoundSelect> for WithQuery {
36612    #[inline]
36613    fn from(node: CompoundSelect) -> WithQuery {
36614        WithQuery::CompoundSelect(node)
36615    }
36616}
36617impl From<Delete> for WithQuery {
36618    #[inline]
36619    fn from(node: Delete) -> WithQuery {
36620        WithQuery::Delete(node)
36621    }
36622}
36623impl From<Insert> for WithQuery {
36624    #[inline]
36625    fn from(node: Insert) -> WithQuery {
36626        WithQuery::Insert(node)
36627    }
36628}
36629impl From<Merge> for WithQuery {
36630    #[inline]
36631    fn from(node: Merge) -> WithQuery {
36632        WithQuery::Merge(node)
36633    }
36634}
36635impl From<ParenSelect> for WithQuery {
36636    #[inline]
36637    fn from(node: ParenSelect) -> WithQuery {
36638        WithQuery::ParenSelect(node)
36639    }
36640}
36641impl From<Select> for WithQuery {
36642    #[inline]
36643    fn from(node: Select) -> WithQuery {
36644        WithQuery::Select(node)
36645    }
36646}
36647impl From<Table> for WithQuery {
36648    #[inline]
36649    fn from(node: Table) -> WithQuery {
36650        WithQuery::Table(node)
36651    }
36652}
36653impl From<Update> for WithQuery {
36654    #[inline]
36655    fn from(node: Update) -> WithQuery {
36656        WithQuery::Update(node)
36657    }
36658}
36659impl From<Values> for WithQuery {
36660    #[inline]
36661    fn from(node: Values) -> WithQuery {
36662        WithQuery::Values(node)
36663    }
36664}