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 varying_token(&self) -> Option<SyntaxToken> {
2496        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2497    }
2498}
2499
2500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2501pub struct Call {
2502    pub(crate) syntax: SyntaxNode,
2503}
2504impl Call {
2505    #[inline]
2506    pub fn arg_list(&self) -> Option<ArgList> {
2507        support::child(&self.syntax)
2508    }
2509    #[inline]
2510    pub fn path(&self) -> Option<Path> {
2511        support::child(&self.syntax)
2512    }
2513    #[inline]
2514    pub fn call_token(&self) -> Option<SyntaxToken> {
2515        support::token(&self.syntax, SyntaxKind::CALL_KW)
2516    }
2517}
2518
2519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2520pub struct CallExpr {
2521    pub(crate) syntax: SyntaxNode,
2522}
2523impl CallExpr {
2524    #[inline]
2525    pub fn all_fn(&self) -> Option<AllFn> {
2526        support::child(&self.syntax)
2527    }
2528    #[inline]
2529    pub fn any_fn(&self) -> Option<AnyFn> {
2530        support::child(&self.syntax)
2531    }
2532    #[inline]
2533    pub fn arg_list(&self) -> Option<ArgList> {
2534        support::child(&self.syntax)
2535    }
2536    #[inline]
2537    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2538        support::child(&self.syntax)
2539    }
2540    #[inline]
2541    pub fn exists_fn(&self) -> Option<ExistsFn> {
2542        support::child(&self.syntax)
2543    }
2544    #[inline]
2545    pub fn expr(&self) -> Option<Expr> {
2546        support::child(&self.syntax)
2547    }
2548    #[inline]
2549    pub fn extract_fn(&self) -> Option<ExtractFn> {
2550        support::child(&self.syntax)
2551    }
2552    #[inline]
2553    pub fn filter_clause(&self) -> Option<FilterClause> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn json_fn(&self) -> Option<JsonFn> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn over_clause(&self) -> Option<OverClause> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn position_fn(&self) -> Option<PositionFn> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn some_fn(&self) -> Option<SomeFn> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn substring_fn(&self) -> Option<SubstringFn> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn trim_fn(&self) -> Option<TrimFn> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn within_clause(&self) -> Option<WithinClause> {
2626        support::child(&self.syntax)
2627    }
2628    #[inline]
2629    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2630        support::child(&self.syntax)
2631    }
2632    #[inline]
2633    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2634        support::child(&self.syntax)
2635    }
2636    #[inline]
2637    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2638        support::child(&self.syntax)
2639    }
2640    #[inline]
2641    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2642        support::child(&self.syntax)
2643    }
2644    #[inline]
2645    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2646        support::child(&self.syntax)
2647    }
2648    #[inline]
2649    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2650        support::child(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2654        support::child(&self.syntax)
2655    }
2656}
2657
2658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2659pub struct Cascade {
2660    pub(crate) syntax: SyntaxNode,
2661}
2662impl Cascade {
2663    #[inline]
2664    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2665        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2666    }
2667}
2668
2669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2670pub struct CaseExpr {
2671    pub(crate) syntax: SyntaxNode,
2672}
2673impl CaseExpr {
2674    #[inline]
2675    pub fn else_clause(&self) -> Option<ElseClause> {
2676        support::child(&self.syntax)
2677    }
2678    #[inline]
2679    pub fn expr(&self) -> Option<Expr> {
2680        support::child(&self.syntax)
2681    }
2682    #[inline]
2683    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2684        support::child(&self.syntax)
2685    }
2686    #[inline]
2687    pub fn case_token(&self) -> Option<SyntaxToken> {
2688        support::token(&self.syntax, SyntaxKind::CASE_KW)
2689    }
2690}
2691
2692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2693pub struct CastExpr {
2694    pub(crate) syntax: SyntaxNode,
2695}
2696impl CastExpr {
2697    #[inline]
2698    pub fn colon_colon(&self) -> Option<ColonColon> {
2699        support::child(&self.syntax)
2700    }
2701    #[inline]
2702    pub fn expr(&self) -> Option<Expr> {
2703        support::child(&self.syntax)
2704    }
2705    #[inline]
2706    pub fn literal(&self) -> Option<Literal> {
2707        support::child(&self.syntax)
2708    }
2709    #[inline]
2710    pub fn ty(&self) -> Option<Type> {
2711        support::child(&self.syntax)
2712    }
2713    #[inline]
2714    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2715        support::token(&self.syntax, SyntaxKind::L_PAREN)
2716    }
2717    #[inline]
2718    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::R_PAREN)
2720    }
2721    #[inline]
2722    pub fn as_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::AS_KW)
2724    }
2725    #[inline]
2726    pub fn cast_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::CAST_KW)
2728    }
2729    #[inline]
2730    pub fn treat_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2732    }
2733}
2734
2735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2736pub struct CastSig {
2737    pub(crate) syntax: SyntaxNode,
2738}
2739impl CastSig {
2740    #[inline]
2741    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::L_PAREN)
2743    }
2744    #[inline]
2745    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::R_PAREN)
2747    }
2748    #[inline]
2749    pub fn as_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::AS_KW)
2751    }
2752}
2753
2754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2755pub struct CharType {
2756    pub(crate) syntax: SyntaxNode,
2757}
2758impl CharType {
2759    #[inline]
2760    pub fn arg_list(&self) -> Option<ArgList> {
2761        support::child(&self.syntax)
2762    }
2763    #[inline]
2764    pub fn char_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2766    }
2767    #[inline]
2768    pub fn character_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2770    }
2771    #[inline]
2772    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2774    }
2775    #[inline]
2776    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2777        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2778    }
2779    #[inline]
2780    pub fn varying_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2782    }
2783}
2784
2785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2786pub struct CheckConstraint {
2787    pub(crate) syntax: SyntaxNode,
2788}
2789impl CheckConstraint {
2790    #[inline]
2791    pub fn constraint_name(&self) -> Option<ConstraintName> {
2792        support::child(&self.syntax)
2793    }
2794    #[inline]
2795    pub fn expr(&self) -> Option<Expr> {
2796        support::child(&self.syntax)
2797    }
2798    #[inline]
2799    pub fn no_inherit(&self) -> Option<NoInherit> {
2800        support::child(&self.syntax)
2801    }
2802    #[inline]
2803    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2804        support::token(&self.syntax, SyntaxKind::L_PAREN)
2805    }
2806    #[inline]
2807    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2808        support::token(&self.syntax, SyntaxKind::R_PAREN)
2809    }
2810    #[inline]
2811    pub fn check_token(&self) -> Option<SyntaxToken> {
2812        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2813    }
2814}
2815
2816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2817pub struct Checkpoint {
2818    pub(crate) syntax: SyntaxNode,
2819}
2820impl Checkpoint {
2821    #[inline]
2822    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2823        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2824    }
2825}
2826
2827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2828pub struct Close {
2829    pub(crate) syntax: SyntaxNode,
2830}
2831impl Close {
2832    #[inline]
2833    pub fn name_ref(&self) -> Option<NameRef> {
2834        support::child(&self.syntax)
2835    }
2836    #[inline]
2837    pub fn close_token(&self) -> Option<SyntaxToken> {
2838        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2839    }
2840}
2841
2842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2843pub struct Cluster {
2844    pub(crate) syntax: SyntaxNode,
2845}
2846impl Cluster {
2847    #[inline]
2848    pub fn option_item_list(&self) -> Option<OptionItemList> {
2849        support::child(&self.syntax)
2850    }
2851    #[inline]
2852    pub fn path(&self) -> Option<Path> {
2853        support::child(&self.syntax)
2854    }
2855    #[inline]
2856    pub fn using_method(&self) -> Option<UsingMethod> {
2857        support::child(&self.syntax)
2858    }
2859    #[inline]
2860    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2861        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2862    }
2863    #[inline]
2864    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2865        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2866    }
2867}
2868
2869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2870pub struct ClusterOn {
2871    pub(crate) syntax: SyntaxNode,
2872}
2873impl ClusterOn {
2874    #[inline]
2875    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2876        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2877    }
2878    #[inline]
2879    pub fn on_token(&self) -> Option<SyntaxToken> {
2880        support::token(&self.syntax, SyntaxKind::ON_KW)
2881    }
2882}
2883
2884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2885pub struct Collate {
2886    pub(crate) syntax: SyntaxNode,
2887}
2888impl Collate {
2889    #[inline]
2890    pub fn path(&self) -> Option<Path> {
2891        support::child(&self.syntax)
2892    }
2893    #[inline]
2894    pub fn collate_token(&self) -> Option<SyntaxToken> {
2895        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2896    }
2897}
2898
2899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2900pub struct CollationForFn {
2901    pub(crate) syntax: SyntaxNode,
2902}
2903impl CollationForFn {
2904    #[inline]
2905    pub fn expr(&self) -> Option<Expr> {
2906        support::child(&self.syntax)
2907    }
2908    #[inline]
2909    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2910        support::token(&self.syntax, SyntaxKind::L_PAREN)
2911    }
2912    #[inline]
2913    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2914        support::token(&self.syntax, SyntaxKind::R_PAREN)
2915    }
2916    #[inline]
2917    pub fn collation_token(&self) -> Option<SyntaxToken> {
2918        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2919    }
2920    #[inline]
2921    pub fn for_token(&self) -> Option<SyntaxToken> {
2922        support::token(&self.syntax, SyntaxKind::FOR_KW)
2923    }
2924}
2925
2926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2927pub struct ColonColon {
2928    pub(crate) syntax: SyntaxNode,
2929}
2930impl ColonColon {
2931    #[inline]
2932    pub fn colon_token(&self) -> Option<SyntaxToken> {
2933        support::token(&self.syntax, SyntaxKind::COLON)
2934    }
2935}
2936
2937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2938pub struct ColonEq {
2939    pub(crate) syntax: SyntaxNode,
2940}
2941impl ColonEq {
2942    #[inline]
2943    pub fn colon_token(&self) -> Option<SyntaxToken> {
2944        support::token(&self.syntax, SyntaxKind::COLON)
2945    }
2946    #[inline]
2947    pub fn eq_token(&self) -> Option<SyntaxToken> {
2948        support::token(&self.syntax, SyntaxKind::EQ)
2949    }
2950}
2951
2952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2953pub struct Column {
2954    pub(crate) syntax: SyntaxNode,
2955}
2956impl Column {
2957    #[inline]
2958    pub fn collate(&self) -> Option<Collate> {
2959        support::child(&self.syntax)
2960    }
2961    #[inline]
2962    pub fn compression_method(&self) -> Option<CompressionMethod> {
2963        support::child(&self.syntax)
2964    }
2965    #[inline]
2966    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2967        support::children(&self.syntax)
2968    }
2969    #[inline]
2970    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2971        support::child(&self.syntax)
2972    }
2973    #[inline]
2974    pub fn enforced(&self) -> Option<Enforced> {
2975        support::child(&self.syntax)
2976    }
2977    #[inline]
2978    pub fn index_expr(&self) -> Option<IndexExpr> {
2979        support::child(&self.syntax)
2980    }
2981    #[inline]
2982    pub fn initially_deferred_constraint_option(
2983        &self,
2984    ) -> Option<InitiallyDeferredConstraintOption> {
2985        support::child(&self.syntax)
2986    }
2987    #[inline]
2988    pub fn initially_immediate_constraint_option(
2989        &self,
2990    ) -> Option<InitiallyImmediateConstraintOption> {
2991        support::child(&self.syntax)
2992    }
2993    #[inline]
2994    pub fn name(&self) -> Option<Name> {
2995        support::child(&self.syntax)
2996    }
2997    #[inline]
2998    pub fn name_ref(&self) -> Option<NameRef> {
2999        support::child(&self.syntax)
3000    }
3001    #[inline]
3002    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3003        support::child(&self.syntax)
3004    }
3005    #[inline]
3006    pub fn not_enforced(&self) -> Option<NotEnforced> {
3007        support::child(&self.syntax)
3008    }
3009    #[inline]
3010    pub fn storage(&self) -> Option<Storage> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn ty(&self) -> Option<Type> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn with_options(&self) -> Option<WithOptions> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn period_token(&self) -> Option<SyntaxToken> {
3023        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3024    }
3025}
3026
3027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3028pub struct ColumnList {
3029    pub(crate) syntax: SyntaxNode,
3030}
3031impl ColumnList {
3032    #[inline]
3033    pub fn columns(&self) -> AstChildren<Column> {
3034        support::children(&self.syntax)
3035    }
3036    #[inline]
3037    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3038        support::token(&self.syntax, SyntaxKind::L_PAREN)
3039    }
3040    #[inline]
3041    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3042        support::token(&self.syntax, SyntaxKind::R_PAREN)
3043    }
3044}
3045
3046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3047pub struct CommentOn {
3048    pub(crate) syntax: SyntaxNode,
3049}
3050impl CommentOn {
3051    #[inline]
3052    pub fn aggregate(&self) -> Option<Aggregate> {
3053        support::child(&self.syntax)
3054    }
3055    #[inline]
3056    pub fn cast_sig(&self) -> Option<CastSig> {
3057        support::child(&self.syntax)
3058    }
3059    #[inline]
3060    pub fn function_sig(&self) -> Option<FunctionSig> {
3061        support::child(&self.syntax)
3062    }
3063    #[inline]
3064    pub fn literal(&self) -> Option<Literal> {
3065        support::child(&self.syntax)
3066    }
3067    #[inline]
3068    pub fn name_ref(&self) -> Option<NameRef> {
3069        support::child(&self.syntax)
3070    }
3071    #[inline]
3072    pub fn op(&self) -> Option<Op> {
3073        support::child(&self.syntax)
3074    }
3075    #[inline]
3076    pub fn path(&self) -> Option<Path> {
3077        support::child(&self.syntax)
3078    }
3079    #[inline]
3080    pub fn ty(&self) -> Option<Type> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn using_method(&self) -> Option<UsingMethod> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3089        support::token(&self.syntax, SyntaxKind::L_PAREN)
3090    }
3091    #[inline]
3092    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3093        support::token(&self.syntax, SyntaxKind::R_PAREN)
3094    }
3095    #[inline]
3096    pub fn comma_token(&self) -> Option<SyntaxToken> {
3097        support::token(&self.syntax, SyntaxKind::COMMA)
3098    }
3099    #[inline]
3100    pub fn access_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3102    }
3103    #[inline]
3104    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3106    }
3107    #[inline]
3108    pub fn cast_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::CAST_KW)
3110    }
3111    #[inline]
3112    pub fn class_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3114    }
3115    #[inline]
3116    pub fn collation_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3118    }
3119    #[inline]
3120    pub fn column_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3122    }
3123    #[inline]
3124    pub fn comment_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3126    }
3127    #[inline]
3128    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3130    }
3131    #[inline]
3132    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3134    }
3135    #[inline]
3136    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3138    }
3139    #[inline]
3140    pub fn data_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::DATA_KW)
3142    }
3143    #[inline]
3144    pub fn database_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3146    }
3147    #[inline]
3148    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3150    }
3151    #[inline]
3152    pub fn domain_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3154    }
3155    #[inline]
3156    pub fn event_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3158    }
3159    #[inline]
3160    pub fn extension_token(&self) -> Option<SyntaxToken> {
3161        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3162    }
3163    #[inline]
3164    pub fn family_token(&self) -> Option<SyntaxToken> {
3165        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3166    }
3167    #[inline]
3168    pub fn for_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::FOR_KW)
3170    }
3171    #[inline]
3172    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3174    }
3175    #[inline]
3176    pub fn function_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3178    }
3179    #[inline]
3180    pub fn graph_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3182    }
3183    #[inline]
3184    pub fn index_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3186    }
3187    #[inline]
3188    pub fn is_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::IS_KW)
3190    }
3191    #[inline]
3192    pub fn language_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3194    }
3195    #[inline]
3196    pub fn large_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3198    }
3199    #[inline]
3200    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3202    }
3203    #[inline]
3204    pub fn method_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3206    }
3207    #[inline]
3208    pub fn null_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::NULL_KW)
3210    }
3211    #[inline]
3212    pub fn object_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3214    }
3215    #[inline]
3216    pub fn on_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::ON_KW)
3218    }
3219    #[inline]
3220    pub fn operator_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3222    }
3223    #[inline]
3224    pub fn parser_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3226    }
3227    #[inline]
3228    pub fn policy_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3230    }
3231    #[inline]
3232    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3234    }
3235    #[inline]
3236    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3238    }
3239    #[inline]
3240    pub fn property_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3242    }
3243    #[inline]
3244    pub fn publication_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3246    }
3247    #[inline]
3248    pub fn role_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3250    }
3251    #[inline]
3252    pub fn routine_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3254    }
3255    #[inline]
3256    pub fn rule_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::RULE_KW)
3258    }
3259    #[inline]
3260    pub fn schema_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3262    }
3263    #[inline]
3264    pub fn search_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3266    }
3267    #[inline]
3268    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3270    }
3271    #[inline]
3272    pub fn server_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3274    }
3275    #[inline]
3276    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3278    }
3279    #[inline]
3280    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3282    }
3283    #[inline]
3284    pub fn table_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3286    }
3287    #[inline]
3288    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3289        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3290    }
3291    #[inline]
3292    pub fn template_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3294    }
3295    #[inline]
3296    pub fn text_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3298    }
3299    #[inline]
3300    pub fn transform_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3302    }
3303    #[inline]
3304    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3306    }
3307    #[inline]
3308    pub fn type_token(&self) -> Option<SyntaxToken> {
3309        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3310    }
3311    #[inline]
3312    pub fn view_token(&self) -> Option<SyntaxToken> {
3313        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3314    }
3315    #[inline]
3316    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3318    }
3319}
3320
3321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3322pub struct Commit {
3323    pub(crate) syntax: SyntaxNode,
3324}
3325impl Commit {
3326    #[inline]
3327    pub fn literal(&self) -> Option<Literal> {
3328        support::child(&self.syntax)
3329    }
3330    #[inline]
3331    pub fn and_token(&self) -> Option<SyntaxToken> {
3332        support::token(&self.syntax, SyntaxKind::AND_KW)
3333    }
3334    #[inline]
3335    pub fn chain_token(&self) -> Option<SyntaxToken> {
3336        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3337    }
3338    #[inline]
3339    pub fn commit_token(&self) -> Option<SyntaxToken> {
3340        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3341    }
3342    #[inline]
3343    pub fn no_token(&self) -> Option<SyntaxToken> {
3344        support::token(&self.syntax, SyntaxKind::NO_KW)
3345    }
3346    #[inline]
3347    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3348        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3349    }
3350    #[inline]
3351    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3353    }
3354    #[inline]
3355    pub fn work_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::WORK_KW)
3357    }
3358}
3359
3360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3361pub struct CompoundSelect {
3362    pub(crate) syntax: SyntaxNode,
3363}
3364impl CompoundSelect {
3365    #[inline]
3366    pub fn all_token(&self) -> Option<SyntaxToken> {
3367        support::token(&self.syntax, SyntaxKind::ALL_KW)
3368    }
3369    #[inline]
3370    pub fn except_token(&self) -> Option<SyntaxToken> {
3371        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3372    }
3373    #[inline]
3374    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3375        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3376    }
3377    #[inline]
3378    pub fn union_token(&self) -> Option<SyntaxToken> {
3379        support::token(&self.syntax, SyntaxKind::UNION_KW)
3380    }
3381}
3382
3383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3384pub struct CompressionMethod {
3385    pub(crate) syntax: SyntaxNode,
3386}
3387impl CompressionMethod {
3388    #[inline]
3389    pub fn compression_token(&self) -> Option<SyntaxToken> {
3390        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3391    }
3392    #[inline]
3393    pub fn default_token(&self) -> Option<SyntaxToken> {
3394        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3395    }
3396    #[inline]
3397    pub fn ident_token(&self) -> Option<SyntaxToken> {
3398        support::token(&self.syntax, SyntaxKind::IDENT)
3399    }
3400}
3401
3402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3403pub struct ConflictDoNothing {
3404    pub(crate) syntax: SyntaxNode,
3405}
3406impl ConflictDoNothing {
3407    #[inline]
3408    pub fn do_token(&self) -> Option<SyntaxToken> {
3409        support::token(&self.syntax, SyntaxKind::DO_KW)
3410    }
3411    #[inline]
3412    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3413        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3414    }
3415}
3416
3417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3418pub struct ConflictDoSelect {
3419    pub(crate) syntax: SyntaxNode,
3420}
3421impl ConflictDoSelect {
3422    #[inline]
3423    pub fn locking_clause(&self) -> Option<LockingClause> {
3424        support::child(&self.syntax)
3425    }
3426    #[inline]
3427    pub fn where_clause(&self) -> Option<WhereClause> {
3428        support::child(&self.syntax)
3429    }
3430    #[inline]
3431    pub fn do_token(&self) -> Option<SyntaxToken> {
3432        support::token(&self.syntax, SyntaxKind::DO_KW)
3433    }
3434    #[inline]
3435    pub fn select_token(&self) -> Option<SyntaxToken> {
3436        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3437    }
3438}
3439
3440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3441pub struct ConflictDoUpdateSet {
3442    pub(crate) syntax: SyntaxNode,
3443}
3444impl ConflictDoUpdateSet {
3445    #[inline]
3446    pub fn set_clause(&self) -> Option<SetClause> {
3447        support::child(&self.syntax)
3448    }
3449    #[inline]
3450    pub fn where_clause(&self) -> Option<WhereClause> {
3451        support::child(&self.syntax)
3452    }
3453    #[inline]
3454    pub fn do_token(&self) -> Option<SyntaxToken> {
3455        support::token(&self.syntax, SyntaxKind::DO_KW)
3456    }
3457    #[inline]
3458    pub fn update_token(&self) -> Option<SyntaxToken> {
3459        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3460    }
3461}
3462
3463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3464pub struct ConflictIndexItem {
3465    pub(crate) syntax: SyntaxNode,
3466}
3467impl ConflictIndexItem {
3468    #[inline]
3469    pub fn collate(&self) -> Option<Collate> {
3470        support::child(&self.syntax)
3471    }
3472    #[inline]
3473    pub fn expr(&self) -> Option<Expr> {
3474        support::child(&self.syntax)
3475    }
3476    #[inline]
3477    pub fn ident_token(&self) -> Option<SyntaxToken> {
3478        support::token(&self.syntax, SyntaxKind::IDENT)
3479    }
3480}
3481
3482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3483pub struct ConflictIndexItemList {
3484    pub(crate) syntax: SyntaxNode,
3485}
3486impl ConflictIndexItemList {
3487    #[inline]
3488    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3489        support::children(&self.syntax)
3490    }
3491    #[inline]
3492    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3493        support::token(&self.syntax, SyntaxKind::L_PAREN)
3494    }
3495    #[inline]
3496    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3497        support::token(&self.syntax, SyntaxKind::R_PAREN)
3498    }
3499}
3500
3501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3502pub struct ConflictOnConstraint {
3503    pub(crate) syntax: SyntaxNode,
3504}
3505impl ConflictOnConstraint {
3506    #[inline]
3507    pub fn name_ref(&self) -> Option<NameRef> {
3508        support::child(&self.syntax)
3509    }
3510    #[inline]
3511    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3512        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3513    }
3514    #[inline]
3515    pub fn on_token(&self) -> Option<SyntaxToken> {
3516        support::token(&self.syntax, SyntaxKind::ON_KW)
3517    }
3518}
3519
3520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3521pub struct ConflictOnIndex {
3522    pub(crate) syntax: SyntaxNode,
3523}
3524impl ConflictOnIndex {
3525    #[inline]
3526    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3527        support::child(&self.syntax)
3528    }
3529    #[inline]
3530    pub fn where_clause(&self) -> Option<WhereClause> {
3531        support::child(&self.syntax)
3532    }
3533}
3534
3535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3536pub struct ConstraintExclusion {
3537    pub(crate) syntax: SyntaxNode,
3538}
3539impl ConstraintExclusion {
3540    #[inline]
3541    pub fn expr(&self) -> Option<Expr> {
3542        support::child(&self.syntax)
3543    }
3544    #[inline]
3545    pub fn op(&self) -> Option<Op> {
3546        support::child(&self.syntax)
3547    }
3548    #[inline]
3549    pub fn with_token(&self) -> Option<SyntaxToken> {
3550        support::token(&self.syntax, SyntaxKind::WITH_KW)
3551    }
3552}
3553
3554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3555pub struct ConstraintExclusionList {
3556    pub(crate) syntax: SyntaxNode,
3557}
3558impl ConstraintExclusionList {
3559    #[inline]
3560    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3561        support::children(&self.syntax)
3562    }
3563    #[inline]
3564    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3565        support::token(&self.syntax, SyntaxKind::L_PAREN)
3566    }
3567    #[inline]
3568    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3569        support::token(&self.syntax, SyntaxKind::R_PAREN)
3570    }
3571}
3572
3573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3574pub struct ConstraintIncludeClause {
3575    pub(crate) syntax: SyntaxNode,
3576}
3577impl ConstraintIncludeClause {
3578    #[inline]
3579    pub fn include_token(&self) -> Option<SyntaxToken> {
3580        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3581    }
3582}
3583
3584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3585pub struct ConstraintIndexMethod {
3586    pub(crate) syntax: SyntaxNode,
3587}
3588impl ConstraintIndexMethod {
3589    #[inline]
3590    pub fn using_token(&self) -> Option<SyntaxToken> {
3591        support::token(&self.syntax, SyntaxKind::USING_KW)
3592    }
3593}
3594
3595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3596pub struct ConstraintIndexTablespace {
3597    pub(crate) syntax: SyntaxNode,
3598}
3599impl ConstraintIndexTablespace {
3600    #[inline]
3601    pub fn name_ref(&self) -> Option<NameRef> {
3602        support::child(&self.syntax)
3603    }
3604    #[inline]
3605    pub fn index_token(&self) -> Option<SyntaxToken> {
3606        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3607    }
3608    #[inline]
3609    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3610        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3611    }
3612    #[inline]
3613    pub fn using_token(&self) -> Option<SyntaxToken> {
3614        support::token(&self.syntax, SyntaxKind::USING_KW)
3615    }
3616}
3617
3618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3619pub struct ConstraintName {
3620    pub(crate) syntax: SyntaxNode,
3621}
3622impl ConstraintName {
3623    #[inline]
3624    pub fn name(&self) -> Option<Name> {
3625        support::child(&self.syntax)
3626    }
3627    #[inline]
3628    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3629        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3630    }
3631}
3632
3633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3634pub struct Copy {
3635    pub(crate) syntax: SyntaxNode,
3636}
3637impl Copy {
3638    #[inline]
3639    pub fn column_list(&self) -> Option<ColumnList> {
3640        support::child(&self.syntax)
3641    }
3642    #[inline]
3643    pub fn literal(&self) -> Option<Literal> {
3644        support::child(&self.syntax)
3645    }
3646    #[inline]
3647    pub fn path(&self) -> Option<Path> {
3648        support::child(&self.syntax)
3649    }
3650    #[inline]
3651    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3652        support::child(&self.syntax)
3653    }
3654    #[inline]
3655    pub fn where_clause(&self) -> Option<WhereClause> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3660        support::token(&self.syntax, SyntaxKind::L_PAREN)
3661    }
3662    #[inline]
3663    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3664        support::token(&self.syntax, SyntaxKind::R_PAREN)
3665    }
3666    #[inline]
3667    pub fn binary_token(&self) -> Option<SyntaxToken> {
3668        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3669    }
3670    #[inline]
3671    pub fn copy_token(&self) -> Option<SyntaxToken> {
3672        support::token(&self.syntax, SyntaxKind::COPY_KW)
3673    }
3674    #[inline]
3675    pub fn from_token(&self) -> Option<SyntaxToken> {
3676        support::token(&self.syntax, SyntaxKind::FROM_KW)
3677    }
3678    #[inline]
3679    pub fn program_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3681    }
3682    #[inline]
3683    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3685    }
3686    #[inline]
3687    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3689    }
3690    #[inline]
3691    pub fn to_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::TO_KW)
3693    }
3694    #[inline]
3695    pub fn with_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::WITH_KW)
3697    }
3698}
3699
3700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3701pub struct CopyOption {
3702    pub(crate) syntax: SyntaxNode,
3703}
3704impl CopyOption {
3705    #[inline]
3706    pub fn name(&self) -> Option<Name> {
3707        support::child(&self.syntax)
3708    }
3709}
3710
3711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3712pub struct CopyOptionList {
3713    pub(crate) syntax: SyntaxNode,
3714}
3715impl CopyOptionList {
3716    #[inline]
3717    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3718        support::children(&self.syntax)
3719    }
3720    #[inline]
3721    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3722        support::token(&self.syntax, SyntaxKind::L_PAREN)
3723    }
3724    #[inline]
3725    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3726        support::token(&self.syntax, SyntaxKind::R_PAREN)
3727    }
3728}
3729
3730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3731pub struct CostFuncOption {
3732    pub(crate) syntax: SyntaxNode,
3733}
3734impl CostFuncOption {
3735    #[inline]
3736    pub fn cost_token(&self) -> Option<SyntaxToken> {
3737        support::token(&self.syntax, SyntaxKind::COST_KW)
3738    }
3739}
3740
3741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3742pub struct CreateAccessMethod {
3743    pub(crate) syntax: SyntaxNode,
3744}
3745impl CreateAccessMethod {
3746    #[inline]
3747    pub fn handler_clause(&self) -> Option<HandlerClause> {
3748        support::child(&self.syntax)
3749    }
3750    #[inline]
3751    pub fn name(&self) -> Option<Path> {
3752        support::child(&self.syntax)
3753    }
3754    #[inline]
3755    pub fn access_token(&self) -> Option<SyntaxToken> {
3756        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3757    }
3758    #[inline]
3759    pub fn create_token(&self) -> Option<SyntaxToken> {
3760        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3761    }
3762    #[inline]
3763    pub fn index_token(&self) -> Option<SyntaxToken> {
3764        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3765    }
3766    #[inline]
3767    pub fn method_token(&self) -> Option<SyntaxToken> {
3768        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3769    }
3770    #[inline]
3771    pub fn table_token(&self) -> Option<SyntaxToken> {
3772        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3773    }
3774    #[inline]
3775    pub fn type_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3777    }
3778}
3779
3780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3781pub struct CreateAggregate {
3782    pub(crate) syntax: SyntaxNode,
3783}
3784impl CreateAggregate {
3785    #[inline]
3786    pub fn or_replace(&self) -> Option<OrReplace> {
3787        support::child(&self.syntax)
3788    }
3789    #[inline]
3790    pub fn param_list(&self) -> Option<ParamList> {
3791        support::child(&self.syntax)
3792    }
3793    #[inline]
3794    pub fn path(&self) -> Option<Path> {
3795        support::child(&self.syntax)
3796    }
3797    #[inline]
3798    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3799        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3800    }
3801    #[inline]
3802    pub fn create_token(&self) -> Option<SyntaxToken> {
3803        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3804    }
3805}
3806
3807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3808pub struct CreateCast {
3809    pub(crate) syntax: SyntaxNode,
3810}
3811impl CreateCast {
3812    #[inline]
3813    pub fn cast_sig(&self) -> Option<CastSig> {
3814        support::child(&self.syntax)
3815    }
3816    #[inline]
3817    pub fn function_sig(&self) -> Option<FunctionSig> {
3818        support::child(&self.syntax)
3819    }
3820    #[inline]
3821    pub fn as_token(&self) -> Option<SyntaxToken> {
3822        support::token(&self.syntax, SyntaxKind::AS_KW)
3823    }
3824    #[inline]
3825    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3826        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3827    }
3828    #[inline]
3829    pub fn cast_token(&self) -> Option<SyntaxToken> {
3830        support::token(&self.syntax, SyntaxKind::CAST_KW)
3831    }
3832    #[inline]
3833    pub fn create_token(&self) -> Option<SyntaxToken> {
3834        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3835    }
3836    #[inline]
3837    pub fn function_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3839    }
3840    #[inline]
3841    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3843    }
3844    #[inline]
3845    pub fn inout_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3847    }
3848    #[inline]
3849    pub fn with_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::WITH_KW)
3851    }
3852    #[inline]
3853    pub fn without_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3855    }
3856}
3857
3858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3859pub struct CreateCollation {
3860    pub(crate) syntax: SyntaxNode,
3861}
3862impl CreateCollation {
3863    #[inline]
3864    pub fn path(&self) -> Option<Path> {
3865        support::child(&self.syntax)
3866    }
3867    #[inline]
3868    pub fn collation_token(&self) -> Option<SyntaxToken> {
3869        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3870    }
3871    #[inline]
3872    pub fn create_token(&self) -> Option<SyntaxToken> {
3873        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3874    }
3875}
3876
3877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3878pub struct CreateConversion {
3879    pub(crate) syntax: SyntaxNode,
3880}
3881impl CreateConversion {
3882    #[inline]
3883    pub fn literal(&self) -> Option<Literal> {
3884        support::child(&self.syntax)
3885    }
3886    #[inline]
3887    pub fn path(&self) -> Option<Path> {
3888        support::child(&self.syntax)
3889    }
3890    #[inline]
3891    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3892        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3893    }
3894    #[inline]
3895    pub fn create_token(&self) -> Option<SyntaxToken> {
3896        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3897    }
3898    #[inline]
3899    pub fn default_token(&self) -> Option<SyntaxToken> {
3900        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3901    }
3902    #[inline]
3903    pub fn for_token(&self) -> Option<SyntaxToken> {
3904        support::token(&self.syntax, SyntaxKind::FOR_KW)
3905    }
3906    #[inline]
3907    pub fn from_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::FROM_KW)
3909    }
3910    #[inline]
3911    pub fn to_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::TO_KW)
3913    }
3914}
3915
3916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3917pub struct CreateDatabase {
3918    pub(crate) syntax: SyntaxNode,
3919}
3920impl CreateDatabase {
3921    #[inline]
3922    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3923        support::child(&self.syntax)
3924    }
3925    #[inline]
3926    pub fn name(&self) -> Option<Name> {
3927        support::child(&self.syntax)
3928    }
3929    #[inline]
3930    pub fn create_token(&self) -> Option<SyntaxToken> {
3931        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3932    }
3933    #[inline]
3934    pub fn database_token(&self) -> Option<SyntaxToken> {
3935        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3936    }
3937}
3938
3939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3940pub struct CreateDatabaseOption {
3941    pub(crate) syntax: SyntaxNode,
3942}
3943impl CreateDatabaseOption {
3944    #[inline]
3945    pub fn literal(&self) -> Option<Literal> {
3946        support::child(&self.syntax)
3947    }
3948    #[inline]
3949    pub fn eq_token(&self) -> Option<SyntaxToken> {
3950        support::token(&self.syntax, SyntaxKind::EQ)
3951    }
3952    #[inline]
3953    pub fn connection_token(&self) -> Option<SyntaxToken> {
3954        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3955    }
3956    #[inline]
3957    pub fn default_token(&self) -> Option<SyntaxToken> {
3958        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3959    }
3960    #[inline]
3961    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3962        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3963    }
3964    #[inline]
3965    pub fn ident_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::IDENT)
3967    }
3968    #[inline]
3969    pub fn limit_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3971    }
3972    #[inline]
3973    pub fn owner_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3975    }
3976    #[inline]
3977    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3979    }
3980    #[inline]
3981    pub fn template_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3983    }
3984}
3985
3986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3987pub struct CreateDatabaseOptionList {
3988    pub(crate) syntax: SyntaxNode,
3989}
3990impl CreateDatabaseOptionList {
3991    #[inline]
3992    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3993        support::children(&self.syntax)
3994    }
3995    #[inline]
3996    pub fn with_token(&self) -> Option<SyntaxToken> {
3997        support::token(&self.syntax, SyntaxKind::WITH_KW)
3998    }
3999}
4000
4001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4002pub struct CreateDomain {
4003    pub(crate) syntax: SyntaxNode,
4004}
4005impl CreateDomain {
4006    #[inline]
4007    pub fn collate(&self) -> Option<Collate> {
4008        support::child(&self.syntax)
4009    }
4010    #[inline]
4011    pub fn constraints(&self) -> AstChildren<Constraint> {
4012        support::children(&self.syntax)
4013    }
4014    #[inline]
4015    pub fn path(&self) -> Option<Path> {
4016        support::child(&self.syntax)
4017    }
4018    #[inline]
4019    pub fn ty(&self) -> Option<Type> {
4020        support::child(&self.syntax)
4021    }
4022    #[inline]
4023    pub fn as_token(&self) -> Option<SyntaxToken> {
4024        support::token(&self.syntax, SyntaxKind::AS_KW)
4025    }
4026    #[inline]
4027    pub fn create_token(&self) -> Option<SyntaxToken> {
4028        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4029    }
4030    #[inline]
4031    pub fn domain_token(&self) -> Option<SyntaxToken> {
4032        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4033    }
4034}
4035
4036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4037pub struct CreateEventTrigger {
4038    pub(crate) syntax: SyntaxNode,
4039}
4040impl CreateEventTrigger {
4041    #[inline]
4042    pub fn call_expr(&self) -> Option<CallExpr> {
4043        support::child(&self.syntax)
4044    }
4045    #[inline]
4046    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4047        support::child(&self.syntax)
4048    }
4049    #[inline]
4050    pub fn name(&self) -> Option<Name> {
4051        support::child(&self.syntax)
4052    }
4053    #[inline]
4054    pub fn name_ref(&self) -> Option<NameRef> {
4055        support::child(&self.syntax)
4056    }
4057    #[inline]
4058    pub fn create_token(&self) -> Option<SyntaxToken> {
4059        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4060    }
4061    #[inline]
4062    pub fn event_token(&self) -> Option<SyntaxToken> {
4063        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4064    }
4065    #[inline]
4066    pub fn execute_token(&self) -> Option<SyntaxToken> {
4067        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4068    }
4069    #[inline]
4070    pub fn function_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4072    }
4073    #[inline]
4074    pub fn on_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::ON_KW)
4076    }
4077    #[inline]
4078    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4080    }
4081    #[inline]
4082    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4084    }
4085}
4086
4087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4088pub struct CreateExtension {
4089    pub(crate) syntax: SyntaxNode,
4090}
4091impl CreateExtension {
4092    #[inline]
4093    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4094        support::child(&self.syntax)
4095    }
4096    #[inline]
4097    pub fn name(&self) -> Option<Name> {
4098        support::child(&self.syntax)
4099    }
4100    #[inline]
4101    pub fn create_token(&self) -> Option<SyntaxToken> {
4102        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4103    }
4104    #[inline]
4105    pub fn extension_token(&self) -> Option<SyntaxToken> {
4106        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4107    }
4108}
4109
4110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4111pub struct CreateForeignDataWrapper {
4112    pub(crate) syntax: SyntaxNode,
4113}
4114impl CreateForeignDataWrapper {
4115    #[inline]
4116    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4117        support::child(&self.syntax)
4118    }
4119    #[inline]
4120    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4121        support::child(&self.syntax)
4122    }
4123    #[inline]
4124    pub fn name(&self) -> Option<Name> {
4125        support::child(&self.syntax)
4126    }
4127    #[inline]
4128    pub fn create_token(&self) -> Option<SyntaxToken> {
4129        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4130    }
4131    #[inline]
4132    pub fn data_token(&self) -> Option<SyntaxToken> {
4133        support::token(&self.syntax, SyntaxKind::DATA_KW)
4134    }
4135    #[inline]
4136    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4137        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4138    }
4139    #[inline]
4140    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4142    }
4143}
4144
4145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4146pub struct CreateForeignTable {
4147    pub(crate) syntax: SyntaxNode,
4148}
4149impl CreateForeignTable {
4150    #[inline]
4151    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4152        support::child(&self.syntax)
4153    }
4154    #[inline]
4155    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4156        support::child(&self.syntax)
4157    }
4158    #[inline]
4159    pub fn inherits(&self) -> Option<Inherits> {
4160        support::child(&self.syntax)
4161    }
4162    #[inline]
4163    pub fn partition_of(&self) -> Option<PartitionOf> {
4164        support::child(&self.syntax)
4165    }
4166    #[inline]
4167    pub fn partition_type(&self) -> Option<PartitionType> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn path(&self) -> Option<Path> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn server_name(&self) -> Option<ServerName> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn table_arg_list(&self) -> Option<TableArgList> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn create_token(&self) -> Option<SyntaxToken> {
4184        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4185    }
4186    #[inline]
4187    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4188        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4189    }
4190    #[inline]
4191    pub fn table_token(&self) -> Option<SyntaxToken> {
4192        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4193    }
4194}
4195
4196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4197pub struct CreateFunction {
4198    pub(crate) syntax: SyntaxNode,
4199}
4200impl CreateFunction {
4201    #[inline]
4202    pub fn option_list(&self) -> Option<FuncOptionList> {
4203        support::child(&self.syntax)
4204    }
4205    #[inline]
4206    pub fn or_replace(&self) -> Option<OrReplace> {
4207        support::child(&self.syntax)
4208    }
4209    #[inline]
4210    pub fn param_list(&self) -> Option<ParamList> {
4211        support::child(&self.syntax)
4212    }
4213    #[inline]
4214    pub fn path(&self) -> Option<Path> {
4215        support::child(&self.syntax)
4216    }
4217    #[inline]
4218    pub fn ret_type(&self) -> Option<RetType> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn create_token(&self) -> Option<SyntaxToken> {
4223        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4224    }
4225    #[inline]
4226    pub fn function_token(&self) -> Option<SyntaxToken> {
4227        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4228    }
4229}
4230
4231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4232pub struct CreateGroup {
4233    pub(crate) syntax: SyntaxNode,
4234}
4235impl CreateGroup {
4236    #[inline]
4237    pub fn name(&self) -> Option<Name> {
4238        support::child(&self.syntax)
4239    }
4240    #[inline]
4241    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4242        support::child(&self.syntax)
4243    }
4244    #[inline]
4245    pub fn create_token(&self) -> Option<SyntaxToken> {
4246        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4247    }
4248    #[inline]
4249    pub fn group_token(&self) -> Option<SyntaxToken> {
4250        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4251    }
4252}
4253
4254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4255pub struct CreateIndex {
4256    pub(crate) syntax: SyntaxNode,
4257}
4258impl CreateIndex {
4259    #[inline]
4260    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4261        support::child(&self.syntax)
4262    }
4263    #[inline]
4264    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4265        support::child(&self.syntax)
4266    }
4267    #[inline]
4268    pub fn name(&self) -> Option<Name> {
4269        support::child(&self.syntax)
4270    }
4271    #[inline]
4272    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4273        support::child(&self.syntax)
4274    }
4275    #[inline]
4276    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4277        support::child(&self.syntax)
4278    }
4279    #[inline]
4280    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn relation_name(&self) -> Option<RelationName> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn tablespace(&self) -> Option<Tablespace> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn using_method(&self) -> Option<UsingMethod> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn where_clause(&self) -> Option<WhereClause> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn with_params(&self) -> Option<WithParams> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4305        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4306    }
4307    #[inline]
4308    pub fn create_token(&self) -> Option<SyntaxToken> {
4309        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4310    }
4311    #[inline]
4312    pub fn index_token(&self) -> Option<SyntaxToken> {
4313        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4314    }
4315    #[inline]
4316    pub fn on_token(&self) -> Option<SyntaxToken> {
4317        support::token(&self.syntax, SyntaxKind::ON_KW)
4318    }
4319    #[inline]
4320    pub fn unique_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4322    }
4323}
4324
4325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4326pub struct CreateLanguage {
4327    pub(crate) syntax: SyntaxNode,
4328}
4329impl CreateLanguage {
4330    #[inline]
4331    pub fn name(&self) -> Option<Name> {
4332        support::child(&self.syntax)
4333    }
4334    #[inline]
4335    pub fn or_replace(&self) -> Option<OrReplace> {
4336        support::child(&self.syntax)
4337    }
4338    #[inline]
4339    pub fn path(&self) -> Option<Path> {
4340        support::child(&self.syntax)
4341    }
4342    #[inline]
4343    pub fn create_token(&self) -> Option<SyntaxToken> {
4344        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4345    }
4346    #[inline]
4347    pub fn handler_token(&self) -> Option<SyntaxToken> {
4348        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4349    }
4350    #[inline]
4351    pub fn inline_token(&self) -> Option<SyntaxToken> {
4352        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4353    }
4354    #[inline]
4355    pub fn language_token(&self) -> Option<SyntaxToken> {
4356        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4357    }
4358    #[inline]
4359    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4360        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4361    }
4362    #[inline]
4363    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4365    }
4366    #[inline]
4367    pub fn validator_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4369    }
4370}
4371
4372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4373pub struct CreateMaterializedView {
4374    pub(crate) syntax: SyntaxNode,
4375}
4376impl CreateMaterializedView {
4377    #[inline]
4378    pub fn column_list(&self) -> Option<ColumnList> {
4379        support::child(&self.syntax)
4380    }
4381    #[inline]
4382    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4383        support::child(&self.syntax)
4384    }
4385    #[inline]
4386    pub fn path(&self) -> Option<Path> {
4387        support::child(&self.syntax)
4388    }
4389    #[inline]
4390    pub fn query(&self) -> Option<SelectVariant> {
4391        support::child(&self.syntax)
4392    }
4393    #[inline]
4394    pub fn tablespace(&self) -> Option<Tablespace> {
4395        support::child(&self.syntax)
4396    }
4397    #[inline]
4398    pub fn using_method(&self) -> Option<UsingMethod> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn with_data(&self) -> Option<WithData> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn with_no_data(&self) -> Option<WithNoData> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn with_params(&self) -> Option<WithParams> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn as_token(&self) -> Option<SyntaxToken> {
4415        support::token(&self.syntax, SyntaxKind::AS_KW)
4416    }
4417    #[inline]
4418    pub fn create_token(&self) -> Option<SyntaxToken> {
4419        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4420    }
4421    #[inline]
4422    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4423        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4424    }
4425    #[inline]
4426    pub fn view_token(&self) -> Option<SyntaxToken> {
4427        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4428    }
4429}
4430
4431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4432pub struct CreateOperator {
4433    pub(crate) syntax: SyntaxNode,
4434}
4435impl CreateOperator {
4436    #[inline]
4437    pub fn attribute_list(&self) -> Option<AttributeList> {
4438        support::child(&self.syntax)
4439    }
4440    #[inline]
4441    pub fn op(&self) -> Option<Op> {
4442        support::child(&self.syntax)
4443    }
4444    #[inline]
4445    pub fn path(&self) -> Option<Path> {
4446        support::child(&self.syntax)
4447    }
4448    #[inline]
4449    pub fn create_token(&self) -> Option<SyntaxToken> {
4450        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4451    }
4452    #[inline]
4453    pub fn operator_token(&self) -> Option<SyntaxToken> {
4454        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4455    }
4456}
4457
4458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4459pub struct CreateOperatorClass {
4460    pub(crate) syntax: SyntaxNode,
4461}
4462impl CreateOperatorClass {
4463    #[inline]
4464    pub fn name_ref(&self) -> Option<NameRef> {
4465        support::child(&self.syntax)
4466    }
4467    #[inline]
4468    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4469        support::child(&self.syntax)
4470    }
4471    #[inline]
4472    pub fn path(&self) -> Option<Path> {
4473        support::child(&self.syntax)
4474    }
4475    #[inline]
4476    pub fn ty(&self) -> Option<Type> {
4477        support::child(&self.syntax)
4478    }
4479    #[inline]
4480    pub fn as_token(&self) -> Option<SyntaxToken> {
4481        support::token(&self.syntax, SyntaxKind::AS_KW)
4482    }
4483    #[inline]
4484    pub fn class_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4486    }
4487    #[inline]
4488    pub fn create_token(&self) -> Option<SyntaxToken> {
4489        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4490    }
4491    #[inline]
4492    pub fn default_token(&self) -> Option<SyntaxToken> {
4493        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4494    }
4495    #[inline]
4496    pub fn family_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4498    }
4499    #[inline]
4500    pub fn for_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::FOR_KW)
4502    }
4503    #[inline]
4504    pub fn operator_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4506    }
4507    #[inline]
4508    pub fn type_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4510    }
4511    #[inline]
4512    pub fn using_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::USING_KW)
4514    }
4515}
4516
4517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4518pub struct CreateOperatorFamily {
4519    pub(crate) syntax: SyntaxNode,
4520}
4521impl CreateOperatorFamily {
4522    #[inline]
4523    pub fn name_ref(&self) -> Option<NameRef> {
4524        support::child(&self.syntax)
4525    }
4526    #[inline]
4527    pub fn path(&self) -> Option<Path> {
4528        support::child(&self.syntax)
4529    }
4530    #[inline]
4531    pub fn create_token(&self) -> Option<SyntaxToken> {
4532        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4533    }
4534    #[inline]
4535    pub fn family_token(&self) -> Option<SyntaxToken> {
4536        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4537    }
4538    #[inline]
4539    pub fn operator_token(&self) -> Option<SyntaxToken> {
4540        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4541    }
4542    #[inline]
4543    pub fn using_token(&self) -> Option<SyntaxToken> {
4544        support::token(&self.syntax, SyntaxKind::USING_KW)
4545    }
4546}
4547
4548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4549pub struct CreatePolicy {
4550    pub(crate) syntax: SyntaxNode,
4551}
4552impl CreatePolicy {
4553    #[inline]
4554    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4555        support::child(&self.syntax)
4556    }
4557    #[inline]
4558    pub fn name(&self) -> Option<Name> {
4559        support::child(&self.syntax)
4560    }
4561    #[inline]
4562    pub fn on_table(&self) -> Option<OnTable> {
4563        support::child(&self.syntax)
4564    }
4565    #[inline]
4566    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4567        support::child(&self.syntax)
4568    }
4569    #[inline]
4570    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4571        support::child(&self.syntax)
4572    }
4573    #[inline]
4574    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4575        support::child(&self.syntax)
4576    }
4577    #[inline]
4578    pub fn all_token(&self) -> Option<SyntaxToken> {
4579        support::token(&self.syntax, SyntaxKind::ALL_KW)
4580    }
4581    #[inline]
4582    pub fn create_token(&self) -> Option<SyntaxToken> {
4583        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4584    }
4585    #[inline]
4586    pub fn delete_token(&self) -> Option<SyntaxToken> {
4587        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4588    }
4589    #[inline]
4590    pub fn for_token(&self) -> Option<SyntaxToken> {
4591        support::token(&self.syntax, SyntaxKind::FOR_KW)
4592    }
4593    #[inline]
4594    pub fn insert_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4596    }
4597    #[inline]
4598    pub fn policy_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4600    }
4601    #[inline]
4602    pub fn select_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4604    }
4605    #[inline]
4606    pub fn to_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::TO_KW)
4608    }
4609    #[inline]
4610    pub fn update_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4612    }
4613}
4614
4615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4616pub struct CreateProcedure {
4617    pub(crate) syntax: SyntaxNode,
4618}
4619impl CreateProcedure {
4620    #[inline]
4621    pub fn option_list(&self) -> Option<FuncOptionList> {
4622        support::child(&self.syntax)
4623    }
4624    #[inline]
4625    pub fn or_replace(&self) -> Option<OrReplace> {
4626        support::child(&self.syntax)
4627    }
4628    #[inline]
4629    pub fn param_list(&self) -> Option<ParamList> {
4630        support::child(&self.syntax)
4631    }
4632    #[inline]
4633    pub fn path(&self) -> Option<Path> {
4634        support::child(&self.syntax)
4635    }
4636    #[inline]
4637    pub fn create_token(&self) -> Option<SyntaxToken> {
4638        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4639    }
4640    #[inline]
4641    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4642        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4643    }
4644}
4645
4646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4647pub struct CreatePropertyGraph {
4648    pub(crate) syntax: SyntaxNode,
4649}
4650impl CreatePropertyGraph {
4651    #[inline]
4652    pub fn edge_tables(&self) -> Option<EdgeTables> {
4653        support::child(&self.syntax)
4654    }
4655    #[inline]
4656    pub fn path(&self) -> Option<Path> {
4657        support::child(&self.syntax)
4658    }
4659    #[inline]
4660    pub fn temp(&self) -> Option<Temp> {
4661        support::child(&self.syntax)
4662    }
4663    #[inline]
4664    pub fn vertex_tables(&self) -> Option<VertexTables> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn create_token(&self) -> Option<SyntaxToken> {
4669        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4670    }
4671    #[inline]
4672    pub fn graph_token(&self) -> Option<SyntaxToken> {
4673        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4674    }
4675    #[inline]
4676    pub fn property_token(&self) -> Option<SyntaxToken> {
4677        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4678    }
4679}
4680
4681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4682pub struct CreatePublication {
4683    pub(crate) syntax: SyntaxNode,
4684}
4685impl CreatePublication {
4686    #[inline]
4687    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4688        support::child(&self.syntax)
4689    }
4690    #[inline]
4691    pub fn name(&self) -> Option<Name> {
4692        support::child(&self.syntax)
4693    }
4694    #[inline]
4695    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4696        support::children(&self.syntax)
4697    }
4698    #[inline]
4699    pub fn with_params(&self) -> Option<WithParams> {
4700        support::child(&self.syntax)
4701    }
4702    #[inline]
4703    pub fn all_token(&self) -> Option<SyntaxToken> {
4704        support::token(&self.syntax, SyntaxKind::ALL_KW)
4705    }
4706    #[inline]
4707    pub fn create_token(&self) -> Option<SyntaxToken> {
4708        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4709    }
4710    #[inline]
4711    pub fn for_token(&self) -> Option<SyntaxToken> {
4712        support::token(&self.syntax, SyntaxKind::FOR_KW)
4713    }
4714    #[inline]
4715    pub fn publication_token(&self) -> Option<SyntaxToken> {
4716        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4717    }
4718    #[inline]
4719    pub fn tables_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4721    }
4722}
4723
4724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4725pub struct CreateRole {
4726    pub(crate) syntax: SyntaxNode,
4727}
4728impl CreateRole {
4729    #[inline]
4730    pub fn name(&self) -> Option<Name> {
4731        support::child(&self.syntax)
4732    }
4733    #[inline]
4734    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4735        support::child(&self.syntax)
4736    }
4737    #[inline]
4738    pub fn create_token(&self) -> Option<SyntaxToken> {
4739        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4740    }
4741    #[inline]
4742    pub fn role_token(&self) -> Option<SyntaxToken> {
4743        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4744    }
4745}
4746
4747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4748pub struct CreateRule {
4749    pub(crate) syntax: SyntaxNode,
4750}
4751impl CreateRule {
4752    #[inline]
4753    pub fn name(&self) -> Option<Name> {
4754        support::child(&self.syntax)
4755    }
4756    #[inline]
4757    pub fn or_replace(&self) -> Option<OrReplace> {
4758        support::child(&self.syntax)
4759    }
4760    #[inline]
4761    pub fn path(&self) -> Option<Path> {
4762        support::child(&self.syntax)
4763    }
4764    #[inline]
4765    pub fn stmt(&self) -> Option<Stmt> {
4766        support::child(&self.syntax)
4767    }
4768    #[inline]
4769    pub fn stmts(&self) -> AstChildren<Stmt> {
4770        support::children(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn where_clause(&self) -> Option<WhereClause> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4778        support::token(&self.syntax, SyntaxKind::L_PAREN)
4779    }
4780    #[inline]
4781    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4782        support::token(&self.syntax, SyntaxKind::R_PAREN)
4783    }
4784    #[inline]
4785    pub fn also_token(&self) -> Option<SyntaxToken> {
4786        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4787    }
4788    #[inline]
4789    pub fn as_token(&self) -> Option<SyntaxToken> {
4790        support::token(&self.syntax, SyntaxKind::AS_KW)
4791    }
4792    #[inline]
4793    pub fn create_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4795    }
4796    #[inline]
4797    pub fn delete_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4799    }
4800    #[inline]
4801    pub fn do_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::DO_KW)
4803    }
4804    #[inline]
4805    pub fn ident_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::IDENT)
4807    }
4808    #[inline]
4809    pub fn insert_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4811    }
4812    #[inline]
4813    pub fn instead_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4815    }
4816    #[inline]
4817    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4819    }
4820    #[inline]
4821    pub fn on_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::ON_KW)
4823    }
4824    #[inline]
4825    pub fn rule_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::RULE_KW)
4827    }
4828    #[inline]
4829    pub fn select_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4831    }
4832    #[inline]
4833    pub fn to_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::TO_KW)
4835    }
4836    #[inline]
4837    pub fn update_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4839    }
4840}
4841
4842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4843pub struct CreateSchema {
4844    pub(crate) syntax: SyntaxNode,
4845}
4846impl CreateSchema {
4847    #[inline]
4848    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4849        support::child(&self.syntax)
4850    }
4851    #[inline]
4852    pub fn name(&self) -> Option<Name> {
4853        support::child(&self.syntax)
4854    }
4855    #[inline]
4856    pub fn role(&self) -> Option<Role> {
4857        support::child(&self.syntax)
4858    }
4859    #[inline]
4860    pub fn role_ref(&self) -> Option<RoleRef> {
4861        support::child(&self.syntax)
4862    }
4863    #[inline]
4864    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4865        support::children(&self.syntax)
4866    }
4867    #[inline]
4868    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4869        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4870    }
4871    #[inline]
4872    pub fn create_token(&self) -> Option<SyntaxToken> {
4873        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4874    }
4875    #[inline]
4876    pub fn schema_token(&self) -> Option<SyntaxToken> {
4877        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4878    }
4879}
4880
4881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4882pub struct CreateSequence {
4883    pub(crate) syntax: SyntaxNode,
4884}
4885impl CreateSequence {
4886    #[inline]
4887    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4888        support::child(&self.syntax)
4889    }
4890    #[inline]
4891    pub fn path(&self) -> Option<Path> {
4892        support::child(&self.syntax)
4893    }
4894    #[inline]
4895    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4896        support::children(&self.syntax)
4897    }
4898    #[inline]
4899    pub fn create_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4901    }
4902    #[inline]
4903    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4904        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4905    }
4906    #[inline]
4907    pub fn temp_token(&self) -> Option<SyntaxToken> {
4908        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4909    }
4910    #[inline]
4911    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4912        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4913    }
4914    #[inline]
4915    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4916        support::token(&self.syntax, SyntaxKind::UNLOGGED_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 table_arg_list(&self) -> Option<TableArgList> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn tablespace(&self) -> Option<Tablespace> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn using_method(&self) -> Option<UsingMethod> {
5096        support::child(&self.syntax)
5097    }
5098    #[inline]
5099    pub fn with_params(&self) -> Option<WithParams> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn without_oids(&self) -> Option<WithoutOids> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn create_token(&self) -> Option<SyntaxToken> {
5108        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5109    }
5110    #[inline]
5111    pub fn global_token(&self) -> Option<SyntaxToken> {
5112        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
5113    }
5114    #[inline]
5115    pub fn local_token(&self) -> Option<SyntaxToken> {
5116        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5117    }
5118    #[inline]
5119    pub fn table_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5121    }
5122    #[inline]
5123    pub fn temp_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5125    }
5126    #[inline]
5127    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5128        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5129    }
5130    #[inline]
5131    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
5132        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
5133    }
5134}
5135
5136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5137pub struct CreateTableAs {
5138    pub(crate) syntax: SyntaxNode,
5139}
5140impl CreateTableAs {
5141    #[inline]
5142    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn on_commit(&self) -> Option<OnCommit> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn path(&self) -> Option<Path> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn query(&self) -> Option<SelectVariant> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn tablespace(&self) -> Option<Tablespace> {
5159        support::child(&self.syntax)
5160    }
5161    #[inline]
5162    pub fn using_method(&self) -> Option<UsingMethod> {
5163        support::child(&self.syntax)
5164    }
5165    #[inline]
5166    pub fn with_data(&self) -> Option<WithData> {
5167        support::child(&self.syntax)
5168    }
5169    #[inline]
5170    pub fn with_no_data(&self) -> Option<WithNoData> {
5171        support::child(&self.syntax)
5172    }
5173    #[inline]
5174    pub fn with_params(&self) -> Option<WithParams> {
5175        support::child(&self.syntax)
5176    }
5177    #[inline]
5178    pub fn without_oids(&self) -> Option<WithoutOids> {
5179        support::child(&self.syntax)
5180    }
5181    #[inline]
5182    pub fn as_token(&self) -> Option<SyntaxToken> {
5183        support::token(&self.syntax, SyntaxKind::AS_KW)
5184    }
5185    #[inline]
5186    pub fn create_token(&self) -> Option<SyntaxToken> {
5187        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5188    }
5189    #[inline]
5190    pub fn global_token(&self) -> Option<SyntaxToken> {
5191        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
5192    }
5193    #[inline]
5194    pub fn local_token(&self) -> Option<SyntaxToken> {
5195        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5196    }
5197    #[inline]
5198    pub fn table_token(&self) -> Option<SyntaxToken> {
5199        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5200    }
5201    #[inline]
5202    pub fn temp_token(&self) -> Option<SyntaxToken> {
5203        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5204    }
5205    #[inline]
5206    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5207        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5208    }
5209    #[inline]
5210    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
5211        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
5212    }
5213}
5214
5215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5216pub struct CreateTablespace {
5217    pub(crate) syntax: SyntaxNode,
5218}
5219impl CreateTablespace {
5220    #[inline]
5221    pub fn literal(&self) -> Option<Literal> {
5222        support::child(&self.syntax)
5223    }
5224    #[inline]
5225    pub fn name(&self) -> Option<Name> {
5226        support::child(&self.syntax)
5227    }
5228    #[inline]
5229    pub fn role_ref(&self) -> Option<RoleRef> {
5230        support::child(&self.syntax)
5231    }
5232    #[inline]
5233    pub fn with_params(&self) -> Option<WithParams> {
5234        support::child(&self.syntax)
5235    }
5236    #[inline]
5237    pub fn create_token(&self) -> Option<SyntaxToken> {
5238        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5239    }
5240    #[inline]
5241    pub fn location_token(&self) -> Option<SyntaxToken> {
5242        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5243    }
5244    #[inline]
5245    pub fn owner_token(&self) -> Option<SyntaxToken> {
5246        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5247    }
5248    #[inline]
5249    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5250        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5251    }
5252}
5253
5254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5255pub struct CreateTextSearchConfiguration {
5256    pub(crate) syntax: SyntaxNode,
5257}
5258impl CreateTextSearchConfiguration {
5259    #[inline]
5260    pub fn attribute_list(&self) -> Option<AttributeList> {
5261        support::child(&self.syntax)
5262    }
5263    #[inline]
5264    pub fn path(&self) -> Option<Path> {
5265        support::child(&self.syntax)
5266    }
5267    #[inline]
5268    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5269        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5270    }
5271    #[inline]
5272    pub fn create_token(&self) -> Option<SyntaxToken> {
5273        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5274    }
5275    #[inline]
5276    pub fn search_token(&self) -> Option<SyntaxToken> {
5277        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5278    }
5279    #[inline]
5280    pub fn text_token(&self) -> Option<SyntaxToken> {
5281        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5282    }
5283}
5284
5285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5286pub struct CreateTextSearchDictionary {
5287    pub(crate) syntax: SyntaxNode,
5288}
5289impl CreateTextSearchDictionary {
5290    #[inline]
5291    pub fn attribute_list(&self) -> Option<AttributeList> {
5292        support::child(&self.syntax)
5293    }
5294    #[inline]
5295    pub fn path(&self) -> Option<Path> {
5296        support::child(&self.syntax)
5297    }
5298    #[inline]
5299    pub fn create_token(&self) -> Option<SyntaxToken> {
5300        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5301    }
5302    #[inline]
5303    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5304        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5305    }
5306    #[inline]
5307    pub fn search_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5309    }
5310    #[inline]
5311    pub fn text_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5313    }
5314}
5315
5316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5317pub struct CreateTextSearchParser {
5318    pub(crate) syntax: SyntaxNode,
5319}
5320impl CreateTextSearchParser {
5321    #[inline]
5322    pub fn attribute_list(&self) -> Option<AttributeList> {
5323        support::child(&self.syntax)
5324    }
5325    #[inline]
5326    pub fn path(&self) -> Option<Path> {
5327        support::child(&self.syntax)
5328    }
5329    #[inline]
5330    pub fn create_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5332    }
5333    #[inline]
5334    pub fn parser_token(&self) -> Option<SyntaxToken> {
5335        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5336    }
5337    #[inline]
5338    pub fn search_token(&self) -> Option<SyntaxToken> {
5339        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5340    }
5341    #[inline]
5342    pub fn text_token(&self) -> Option<SyntaxToken> {
5343        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5344    }
5345}
5346
5347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5348pub struct CreateTextSearchTemplate {
5349    pub(crate) syntax: SyntaxNode,
5350}
5351impl CreateTextSearchTemplate {
5352    #[inline]
5353    pub fn attribute_list(&self) -> Option<AttributeList> {
5354        support::child(&self.syntax)
5355    }
5356    #[inline]
5357    pub fn path(&self) -> Option<Path> {
5358        support::child(&self.syntax)
5359    }
5360    #[inline]
5361    pub fn create_token(&self) -> Option<SyntaxToken> {
5362        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5363    }
5364    #[inline]
5365    pub fn search_token(&self) -> Option<SyntaxToken> {
5366        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5367    }
5368    #[inline]
5369    pub fn template_token(&self) -> Option<SyntaxToken> {
5370        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5371    }
5372    #[inline]
5373    pub fn text_token(&self) -> Option<SyntaxToken> {
5374        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5375    }
5376}
5377
5378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5379pub struct CreateTransform {
5380    pub(crate) syntax: SyntaxNode,
5381}
5382impl CreateTransform {
5383    #[inline]
5384    pub fn from_func(&self) -> Option<TransformFromFunc> {
5385        support::child(&self.syntax)
5386    }
5387    #[inline]
5388    pub fn language(&self) -> Option<NameRef> {
5389        support::child(&self.syntax)
5390    }
5391    #[inline]
5392    pub fn or_replace(&self) -> Option<OrReplace> {
5393        support::child(&self.syntax)
5394    }
5395    #[inline]
5396    pub fn to_func(&self) -> Option<TransformToFunc> {
5397        support::child(&self.syntax)
5398    }
5399    #[inline]
5400    pub fn ty(&self) -> Option<Type> {
5401        support::child(&self.syntax)
5402    }
5403    #[inline]
5404    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5405        support::token(&self.syntax, SyntaxKind::L_PAREN)
5406    }
5407    #[inline]
5408    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5409        support::token(&self.syntax, SyntaxKind::R_PAREN)
5410    }
5411    #[inline]
5412    pub fn comma_token(&self) -> Option<SyntaxToken> {
5413        support::token(&self.syntax, SyntaxKind::COMMA)
5414    }
5415    #[inline]
5416    pub fn create_token(&self) -> Option<SyntaxToken> {
5417        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5418    }
5419    #[inline]
5420    pub fn for_token(&self) -> Option<SyntaxToken> {
5421        support::token(&self.syntax, SyntaxKind::FOR_KW)
5422    }
5423    #[inline]
5424    pub fn language_token(&self) -> Option<SyntaxToken> {
5425        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5426    }
5427    #[inline]
5428    pub fn transform_token(&self) -> Option<SyntaxToken> {
5429        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5430    }
5431}
5432
5433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5434pub struct CreateTrigger {
5435    pub(crate) syntax: SyntaxNode,
5436}
5437impl CreateTrigger {
5438    #[inline]
5439    pub fn call_expr(&self) -> Option<CallExpr> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn from_table(&self) -> Option<FromTable> {
5448        support::child(&self.syntax)
5449    }
5450    #[inline]
5451    pub fn initially_deferred_constraint_option(
5452        &self,
5453    ) -> Option<InitiallyDeferredConstraintOption> {
5454        support::child(&self.syntax)
5455    }
5456    #[inline]
5457    pub fn initially_immediate_constraint_option(
5458        &self,
5459    ) -> Option<InitiallyImmediateConstraintOption> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn name(&self) -> Option<Name> {
5464        support::child(&self.syntax)
5465    }
5466    #[inline]
5467    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5468        support::child(&self.syntax)
5469    }
5470    #[inline]
5471    pub fn on_table(&self) -> Option<OnTable> {
5472        support::child(&self.syntax)
5473    }
5474    #[inline]
5475    pub fn or_replace(&self) -> Option<OrReplace> {
5476        support::child(&self.syntax)
5477    }
5478    #[inline]
5479    pub fn referencing(&self) -> Option<Referencing> {
5480        support::child(&self.syntax)
5481    }
5482    #[inline]
5483    pub fn timing(&self) -> Option<Timing> {
5484        support::child(&self.syntax)
5485    }
5486    #[inline]
5487    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5488        support::child(&self.syntax)
5489    }
5490    #[inline]
5491    pub fn when_condition(&self) -> Option<WhenCondition> {
5492        support::child(&self.syntax)
5493    }
5494    #[inline]
5495    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5497    }
5498    #[inline]
5499    pub fn create_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5501    }
5502    #[inline]
5503    pub fn each_token(&self) -> Option<SyntaxToken> {
5504        support::token(&self.syntax, SyntaxKind::EACH_KW)
5505    }
5506    #[inline]
5507    pub fn execute_token(&self) -> Option<SyntaxToken> {
5508        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5509    }
5510    #[inline]
5511    pub fn for_token(&self) -> Option<SyntaxToken> {
5512        support::token(&self.syntax, SyntaxKind::FOR_KW)
5513    }
5514    #[inline]
5515    pub fn function_token(&self) -> Option<SyntaxToken> {
5516        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5517    }
5518    #[inline]
5519    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5520        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5521    }
5522    #[inline]
5523    pub fn row_token(&self) -> Option<SyntaxToken> {
5524        support::token(&self.syntax, SyntaxKind::ROW_KW)
5525    }
5526    #[inline]
5527    pub fn statement_token(&self) -> Option<SyntaxToken> {
5528        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5529    }
5530    #[inline]
5531    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5532        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5533    }
5534}
5535
5536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5537pub struct CreateType {
5538    pub(crate) syntax: SyntaxNode,
5539}
5540impl CreateType {
5541    #[inline]
5542    pub fn attribute_list(&self) -> Option<AttributeList> {
5543        support::child(&self.syntax)
5544    }
5545    #[inline]
5546    pub fn column_list(&self) -> Option<ColumnList> {
5547        support::child(&self.syntax)
5548    }
5549    #[inline]
5550    pub fn path(&self) -> Option<Path> {
5551        support::child(&self.syntax)
5552    }
5553    #[inline]
5554    pub fn variant_list(&self) -> Option<VariantList> {
5555        support::child(&self.syntax)
5556    }
5557    #[inline]
5558    pub fn as_token(&self) -> Option<SyntaxToken> {
5559        support::token(&self.syntax, SyntaxKind::AS_KW)
5560    }
5561    #[inline]
5562    pub fn create_token(&self) -> Option<SyntaxToken> {
5563        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5564    }
5565    #[inline]
5566    pub fn enum_token(&self) -> Option<SyntaxToken> {
5567        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5568    }
5569    #[inline]
5570    pub fn range_token(&self) -> Option<SyntaxToken> {
5571        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5572    }
5573    #[inline]
5574    pub fn type_token(&self) -> Option<SyntaxToken> {
5575        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5576    }
5577}
5578
5579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5580pub struct CreateUser {
5581    pub(crate) syntax: SyntaxNode,
5582}
5583impl CreateUser {
5584    #[inline]
5585    pub fn name(&self) -> Option<Name> {
5586        support::child(&self.syntax)
5587    }
5588    #[inline]
5589    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5590        support::child(&self.syntax)
5591    }
5592    #[inline]
5593    pub fn create_token(&self) -> Option<SyntaxToken> {
5594        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5595    }
5596    #[inline]
5597    pub fn user_token(&self) -> Option<SyntaxToken> {
5598        support::token(&self.syntax, SyntaxKind::USER_KW)
5599    }
5600}
5601
5602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5603pub struct CreateUserMapping {
5604    pub(crate) syntax: SyntaxNode,
5605}
5606impl CreateUserMapping {
5607    #[inline]
5608    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5609        support::child(&self.syntax)
5610    }
5611    #[inline]
5612    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5613        support::child(&self.syntax)
5614    }
5615    #[inline]
5616    pub fn role_ref(&self) -> Option<RoleRef> {
5617        support::child(&self.syntax)
5618    }
5619    #[inline]
5620    pub fn server_name(&self) -> Option<ServerName> {
5621        support::child(&self.syntax)
5622    }
5623    #[inline]
5624    pub fn create_token(&self) -> Option<SyntaxToken> {
5625        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5626    }
5627    #[inline]
5628    pub fn for_token(&self) -> Option<SyntaxToken> {
5629        support::token(&self.syntax, SyntaxKind::FOR_KW)
5630    }
5631    #[inline]
5632    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5633        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5634    }
5635    #[inline]
5636    pub fn user_token(&self) -> Option<SyntaxToken> {
5637        support::token(&self.syntax, SyntaxKind::USER_KW)
5638    }
5639}
5640
5641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5642pub struct CreateView {
5643    pub(crate) syntax: SyntaxNode,
5644}
5645impl CreateView {
5646    #[inline]
5647    pub fn column_list(&self) -> Option<ColumnList> {
5648        support::child(&self.syntax)
5649    }
5650    #[inline]
5651    pub fn or_replace(&self) -> Option<OrReplace> {
5652        support::child(&self.syntax)
5653    }
5654    #[inline]
5655    pub fn path(&self) -> Option<Path> {
5656        support::child(&self.syntax)
5657    }
5658    #[inline]
5659    pub fn query(&self) -> Option<SelectVariant> {
5660        support::child(&self.syntax)
5661    }
5662    #[inline]
5663    pub fn with_params(&self) -> Option<WithParams> {
5664        support::child(&self.syntax)
5665    }
5666    #[inline]
5667    pub fn as_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::AS_KW)
5669    }
5670    #[inline]
5671    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5673    }
5674    #[inline]
5675    pub fn check_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5677    }
5678    #[inline]
5679    pub fn create_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5681    }
5682    #[inline]
5683    pub fn local_token(&self) -> Option<SyntaxToken> {
5684        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5685    }
5686    #[inline]
5687    pub fn option_token(&self) -> Option<SyntaxToken> {
5688        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5689    }
5690    #[inline]
5691    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5692        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5693    }
5694    #[inline]
5695    pub fn temp_token(&self) -> Option<SyntaxToken> {
5696        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5697    }
5698    #[inline]
5699    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5700        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5701    }
5702    #[inline]
5703    pub fn view_token(&self) -> Option<SyntaxToken> {
5704        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5705    }
5706    #[inline]
5707    pub fn with_token(&self) -> Option<SyntaxToken> {
5708        support::token(&self.syntax, SyntaxKind::WITH_KW)
5709    }
5710}
5711
5712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5713pub struct CustomOp {
5714    pub(crate) syntax: SyntaxNode,
5715}
5716impl CustomOp {
5717    #[inline]
5718    pub fn bang_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::BANG)
5720    }
5721    #[inline]
5722    pub fn pound_token(&self) -> Option<SyntaxToken> {
5723        support::token(&self.syntax, SyntaxKind::POUND)
5724    }
5725    #[inline]
5726    pub fn percent_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::PERCENT)
5728    }
5729    #[inline]
5730    pub fn amp_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::AMP)
5732    }
5733    #[inline]
5734    pub fn star_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::STAR)
5736    }
5737    #[inline]
5738    pub fn plus_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::PLUS)
5740    }
5741    #[inline]
5742    pub fn minus_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::MINUS)
5744    }
5745    #[inline]
5746    pub fn slash_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::SLASH)
5748    }
5749    #[inline]
5750    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5752    }
5753    #[inline]
5754    pub fn eq_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::EQ)
5756    }
5757    #[inline]
5758    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5760    }
5761    #[inline]
5762    pub fn question_token(&self) -> Option<SyntaxToken> {
5763        support::token(&self.syntax, SyntaxKind::QUESTION)
5764    }
5765    #[inline]
5766    pub fn at_token(&self) -> Option<SyntaxToken> {
5767        support::token(&self.syntax, SyntaxKind::AT)
5768    }
5769    #[inline]
5770    pub fn caret_token(&self) -> Option<SyntaxToken> {
5771        support::token(&self.syntax, SyntaxKind::CARET)
5772    }
5773    #[inline]
5774    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5775        support::token(&self.syntax, SyntaxKind::BACKTICK)
5776    }
5777    #[inline]
5778    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5779        support::token(&self.syntax, SyntaxKind::PIPE)
5780    }
5781    #[inline]
5782    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5783        support::token(&self.syntax, SyntaxKind::TILDE)
5784    }
5785}
5786
5787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5788pub struct Deallocate {
5789    pub(crate) syntax: SyntaxNode,
5790}
5791impl Deallocate {
5792    #[inline]
5793    pub fn name_ref(&self) -> Option<NameRef> {
5794        support::child(&self.syntax)
5795    }
5796    #[inline]
5797    pub fn all_token(&self) -> Option<SyntaxToken> {
5798        support::token(&self.syntax, SyntaxKind::ALL_KW)
5799    }
5800    #[inline]
5801    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5802        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5803    }
5804    #[inline]
5805    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5806        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5807    }
5808}
5809
5810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5811pub struct Declare {
5812    pub(crate) syntax: SyntaxNode,
5813}
5814impl Declare {
5815    #[inline]
5816    pub fn name(&self) -> Option<Name> {
5817        support::child(&self.syntax)
5818    }
5819    #[inline]
5820    pub fn query(&self) -> Option<SelectVariant> {
5821        support::child(&self.syntax)
5822    }
5823    #[inline]
5824    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5826    }
5827    #[inline]
5828    pub fn binary_token(&self) -> Option<SyntaxToken> {
5829        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5830    }
5831    #[inline]
5832    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5833        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5834    }
5835    #[inline]
5836    pub fn declare_token(&self) -> Option<SyntaxToken> {
5837        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5838    }
5839    #[inline]
5840    pub fn for_token(&self) -> Option<SyntaxToken> {
5841        support::token(&self.syntax, SyntaxKind::FOR_KW)
5842    }
5843    #[inline]
5844    pub fn hold_token(&self) -> Option<SyntaxToken> {
5845        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5846    }
5847    #[inline]
5848    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5849        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5850    }
5851    #[inline]
5852    pub fn no_token(&self) -> Option<SyntaxToken> {
5853        support::token(&self.syntax, SyntaxKind::NO_KW)
5854    }
5855    #[inline]
5856    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5857        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5858    }
5859    #[inline]
5860    pub fn with_token(&self) -> Option<SyntaxToken> {
5861        support::token(&self.syntax, SyntaxKind::WITH_KW)
5862    }
5863    #[inline]
5864    pub fn without_token(&self) -> Option<SyntaxToken> {
5865        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5866    }
5867}
5868
5869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5870pub struct DefaultConstraint {
5871    pub(crate) syntax: SyntaxNode,
5872}
5873impl DefaultConstraint {
5874    #[inline]
5875    pub fn expr(&self) -> Option<Expr> {
5876        support::child(&self.syntax)
5877    }
5878    #[inline]
5879    pub fn name_ref(&self) -> Option<NameRef> {
5880        support::child(&self.syntax)
5881    }
5882    #[inline]
5883    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5884        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5885    }
5886    #[inline]
5887    pub fn default_token(&self) -> Option<SyntaxToken> {
5888        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5889    }
5890}
5891
5892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5893pub struct Deferrable {
5894    pub(crate) syntax: SyntaxNode,
5895}
5896impl Deferrable {
5897    #[inline]
5898    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5899        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5900    }
5901}
5902
5903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5904pub struct DeferrableConstraintOption {
5905    pub(crate) syntax: SyntaxNode,
5906}
5907impl DeferrableConstraintOption {
5908    #[inline]
5909    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5910        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5911    }
5912}
5913
5914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5915pub struct Delete {
5916    pub(crate) syntax: SyntaxNode,
5917}
5918impl Delete {
5919    #[inline]
5920    pub fn alias(&self) -> Option<Alias> {
5921        support::child(&self.syntax)
5922    }
5923    #[inline]
5924    pub fn relation_name(&self) -> Option<RelationName> {
5925        support::child(&self.syntax)
5926    }
5927    #[inline]
5928    pub fn returning_clause(&self) -> Option<ReturningClause> {
5929        support::child(&self.syntax)
5930    }
5931    #[inline]
5932    pub fn using_clause(&self) -> Option<UsingClause> {
5933        support::child(&self.syntax)
5934    }
5935    #[inline]
5936    pub fn where_clause(&self) -> Option<WhereClause> {
5937        support::child(&self.syntax)
5938    }
5939    #[inline]
5940    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5941        support::child(&self.syntax)
5942    }
5943    #[inline]
5944    pub fn with_clause(&self) -> Option<WithClause> {
5945        support::child(&self.syntax)
5946    }
5947    #[inline]
5948    pub fn delete_token(&self) -> Option<SyntaxToken> {
5949        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5950    }
5951    #[inline]
5952    pub fn from_token(&self) -> Option<SyntaxToken> {
5953        support::token(&self.syntax, SyntaxKind::FROM_KW)
5954    }
5955}
5956
5957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5958pub struct DeleteRows {
5959    pub(crate) syntax: SyntaxNode,
5960}
5961impl DeleteRows {
5962    #[inline]
5963    pub fn delete_token(&self) -> Option<SyntaxToken> {
5964        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5965    }
5966    #[inline]
5967    pub fn rows_token(&self) -> Option<SyntaxToken> {
5968        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5969    }
5970}
5971
5972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5973pub struct DependsOnExtension {
5974    pub(crate) syntax: SyntaxNode,
5975}
5976impl DependsOnExtension {
5977    #[inline]
5978    pub fn name_ref(&self) -> Option<NameRef> {
5979        support::child(&self.syntax)
5980    }
5981    #[inline]
5982    pub fn depends_token(&self) -> Option<SyntaxToken> {
5983        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5984    }
5985    #[inline]
5986    pub fn extension_token(&self) -> Option<SyntaxToken> {
5987        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5988    }
5989    #[inline]
5990    pub fn on_token(&self) -> Option<SyntaxToken> {
5991        support::token(&self.syntax, SyntaxKind::ON_KW)
5992    }
5993}
5994
5995#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5996pub struct DestVertexTable {
5997    pub(crate) syntax: SyntaxNode,
5998}
5999impl DestVertexTable {
6000    #[inline]
6001    pub fn column_list(&self) -> Option<ColumnList> {
6002        support::child(&self.syntax)
6003    }
6004    #[inline]
6005    pub fn name(&self) -> Option<Name> {
6006        support::child(&self.syntax)
6007    }
6008    #[inline]
6009    pub fn name_ref(&self) -> Option<NameRef> {
6010        support::child(&self.syntax)
6011    }
6012    #[inline]
6013    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6014        support::token(&self.syntax, SyntaxKind::L_PAREN)
6015    }
6016    #[inline]
6017    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6018        support::token(&self.syntax, SyntaxKind::R_PAREN)
6019    }
6020    #[inline]
6021    pub fn destination_token(&self) -> Option<SyntaxToken> {
6022        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
6023    }
6024    #[inline]
6025    pub fn key_token(&self) -> Option<SyntaxToken> {
6026        support::token(&self.syntax, SyntaxKind::KEY_KW)
6027    }
6028    #[inline]
6029    pub fn references_token(&self) -> Option<SyntaxToken> {
6030        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
6031    }
6032}
6033
6034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6035pub struct DetachPartition {
6036    pub(crate) syntax: SyntaxNode,
6037}
6038impl DetachPartition {
6039    #[inline]
6040    pub fn path(&self) -> Option<Path> {
6041        support::child(&self.syntax)
6042    }
6043    #[inline]
6044    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6045        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6046    }
6047    #[inline]
6048    pub fn detach_token(&self) -> Option<SyntaxToken> {
6049        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6050    }
6051    #[inline]
6052    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6053        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6054    }
6055    #[inline]
6056    pub fn partition_token(&self) -> Option<SyntaxToken> {
6057        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6058    }
6059}
6060
6061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6062pub struct DisableRls {
6063    pub(crate) syntax: SyntaxNode,
6064}
6065impl DisableRls {
6066    #[inline]
6067    pub fn disable_token(&self) -> Option<SyntaxToken> {
6068        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6069    }
6070    #[inline]
6071    pub fn level_token(&self) -> Option<SyntaxToken> {
6072        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6073    }
6074    #[inline]
6075    pub fn row_token(&self) -> Option<SyntaxToken> {
6076        support::token(&self.syntax, SyntaxKind::ROW_KW)
6077    }
6078    #[inline]
6079    pub fn security_token(&self) -> Option<SyntaxToken> {
6080        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6081    }
6082}
6083
6084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6085pub struct DisableRule {
6086    pub(crate) syntax: SyntaxNode,
6087}
6088impl DisableRule {
6089    #[inline]
6090    pub fn disable_token(&self) -> Option<SyntaxToken> {
6091        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6092    }
6093    #[inline]
6094    pub fn rule_token(&self) -> Option<SyntaxToken> {
6095        support::token(&self.syntax, SyntaxKind::RULE_KW)
6096    }
6097}
6098
6099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6100pub struct DisableTrigger {
6101    pub(crate) syntax: SyntaxNode,
6102}
6103impl DisableTrigger {
6104    #[inline]
6105    pub fn disable_token(&self) -> Option<SyntaxToken> {
6106        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6107    }
6108    #[inline]
6109    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6110        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6111    }
6112}
6113
6114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6115pub struct Discard {
6116    pub(crate) syntax: SyntaxNode,
6117}
6118impl Discard {
6119    #[inline]
6120    pub fn all_token(&self) -> Option<SyntaxToken> {
6121        support::token(&self.syntax, SyntaxKind::ALL_KW)
6122    }
6123    #[inline]
6124    pub fn discard_token(&self) -> Option<SyntaxToken> {
6125        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6126    }
6127    #[inline]
6128    pub fn plans_token(&self) -> Option<SyntaxToken> {
6129        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6130    }
6131    #[inline]
6132    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6133        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6134    }
6135    #[inline]
6136    pub fn temp_token(&self) -> Option<SyntaxToken> {
6137        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6138    }
6139    #[inline]
6140    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6141        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6142    }
6143}
6144
6145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6146pub struct DistinctClause {
6147    pub(crate) syntax: SyntaxNode,
6148}
6149impl DistinctClause {
6150    #[inline]
6151    pub fn exprs(&self) -> AstChildren<Expr> {
6152        support::children(&self.syntax)
6153    }
6154    #[inline]
6155    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6156        support::token(&self.syntax, SyntaxKind::L_PAREN)
6157    }
6158    #[inline]
6159    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6160        support::token(&self.syntax, SyntaxKind::R_PAREN)
6161    }
6162    #[inline]
6163    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6164        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6165    }
6166    #[inline]
6167    pub fn on_token(&self) -> Option<SyntaxToken> {
6168        support::token(&self.syntax, SyntaxKind::ON_KW)
6169    }
6170}
6171
6172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6173pub struct Do {
6174    pub(crate) syntax: SyntaxNode,
6175}
6176impl Do {
6177    #[inline]
6178    pub fn do_token(&self) -> Option<SyntaxToken> {
6179        support::token(&self.syntax, SyntaxKind::DO_KW)
6180    }
6181}
6182
6183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6184pub struct DoubleType {
6185    pub(crate) syntax: SyntaxNode,
6186}
6187impl DoubleType {
6188    #[inline]
6189    pub fn double_token(&self) -> Option<SyntaxToken> {
6190        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6191    }
6192    #[inline]
6193    pub fn precision_token(&self) -> Option<SyntaxToken> {
6194        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6195    }
6196}
6197
6198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6199pub struct Drop {
6200    pub(crate) syntax: SyntaxNode,
6201}
6202impl Drop {
6203    #[inline]
6204    pub fn drop_token(&self) -> Option<SyntaxToken> {
6205        support::token(&self.syntax, SyntaxKind::DROP_KW)
6206    }
6207}
6208
6209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6210pub struct DropAccessMethod {
6211    pub(crate) syntax: SyntaxNode,
6212}
6213impl DropAccessMethod {
6214    #[inline]
6215    pub fn if_exists(&self) -> Option<IfExists> {
6216        support::child(&self.syntax)
6217    }
6218    #[inline]
6219    pub fn name_ref(&self) -> Option<NameRef> {
6220        support::child(&self.syntax)
6221    }
6222    #[inline]
6223    pub fn access_token(&self) -> Option<SyntaxToken> {
6224        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6225    }
6226    #[inline]
6227    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6228        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6229    }
6230    #[inline]
6231    pub fn drop_token(&self) -> Option<SyntaxToken> {
6232        support::token(&self.syntax, SyntaxKind::DROP_KW)
6233    }
6234    #[inline]
6235    pub fn method_token(&self) -> Option<SyntaxToken> {
6236        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6237    }
6238    #[inline]
6239    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6240        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6241    }
6242}
6243
6244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6245pub struct DropAggregate {
6246    pub(crate) syntax: SyntaxNode,
6247}
6248impl DropAggregate {
6249    #[inline]
6250    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6251        support::children(&self.syntax)
6252    }
6253    #[inline]
6254    pub fn if_exists(&self) -> Option<IfExists> {
6255        support::child(&self.syntax)
6256    }
6257    #[inline]
6258    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6259        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6260    }
6261    #[inline]
6262    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6263        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6264    }
6265    #[inline]
6266    pub fn drop_token(&self) -> Option<SyntaxToken> {
6267        support::token(&self.syntax, SyntaxKind::DROP_KW)
6268    }
6269    #[inline]
6270    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6271        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6272    }
6273}
6274
6275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6276pub struct DropAttribute {
6277    pub(crate) syntax: SyntaxNode,
6278}
6279impl DropAttribute {
6280    #[inline]
6281    pub fn cascade(&self) -> Option<Cascade> {
6282        support::child(&self.syntax)
6283    }
6284    #[inline]
6285    pub fn if_exists(&self) -> Option<IfExists> {
6286        support::child(&self.syntax)
6287    }
6288    #[inline]
6289    pub fn restrict(&self) -> Option<Restrict> {
6290        support::child(&self.syntax)
6291    }
6292    #[inline]
6293    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6294        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6295    }
6296    #[inline]
6297    pub fn drop_token(&self) -> Option<SyntaxToken> {
6298        support::token(&self.syntax, SyntaxKind::DROP_KW)
6299    }
6300}
6301
6302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6303pub struct DropCast {
6304    pub(crate) syntax: SyntaxNode,
6305}
6306impl DropCast {
6307    #[inline]
6308    pub fn cast_sig(&self) -> Option<CastSig> {
6309        support::child(&self.syntax)
6310    }
6311    #[inline]
6312    pub fn if_exists(&self) -> Option<IfExists> {
6313        support::child(&self.syntax)
6314    }
6315    #[inline]
6316    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6317        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6318    }
6319    #[inline]
6320    pub fn cast_token(&self) -> Option<SyntaxToken> {
6321        support::token(&self.syntax, SyntaxKind::CAST_KW)
6322    }
6323    #[inline]
6324    pub fn drop_token(&self) -> Option<SyntaxToken> {
6325        support::token(&self.syntax, SyntaxKind::DROP_KW)
6326    }
6327    #[inline]
6328    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6329        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6330    }
6331}
6332
6333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6334pub struct DropCollation {
6335    pub(crate) syntax: SyntaxNode,
6336}
6337impl DropCollation {
6338    #[inline]
6339    pub fn if_exists(&self) -> Option<IfExists> {
6340        support::child(&self.syntax)
6341    }
6342    #[inline]
6343    pub fn paths(&self) -> AstChildren<Path> {
6344        support::children(&self.syntax)
6345    }
6346    #[inline]
6347    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6348        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6349    }
6350    #[inline]
6351    pub fn collation_token(&self) -> Option<SyntaxToken> {
6352        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6353    }
6354    #[inline]
6355    pub fn drop_token(&self) -> Option<SyntaxToken> {
6356        support::token(&self.syntax, SyntaxKind::DROP_KW)
6357    }
6358    #[inline]
6359    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6360        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6361    }
6362}
6363
6364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6365pub struct DropColumn {
6366    pub(crate) syntax: SyntaxNode,
6367}
6368impl DropColumn {
6369    #[inline]
6370    pub fn if_exists(&self) -> Option<IfExists> {
6371        support::child(&self.syntax)
6372    }
6373    #[inline]
6374    pub fn name_ref(&self) -> Option<NameRef> {
6375        support::child(&self.syntax)
6376    }
6377    #[inline]
6378    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6379        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6380    }
6381    #[inline]
6382    pub fn column_token(&self) -> Option<SyntaxToken> {
6383        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6384    }
6385    #[inline]
6386    pub fn drop_token(&self) -> Option<SyntaxToken> {
6387        support::token(&self.syntax, SyntaxKind::DROP_KW)
6388    }
6389    #[inline]
6390    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6391        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6392    }
6393}
6394
6395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6396pub struct DropConstraint {
6397    pub(crate) syntax: SyntaxNode,
6398}
6399impl DropConstraint {
6400    #[inline]
6401    pub fn if_exists(&self) -> Option<IfExists> {
6402        support::child(&self.syntax)
6403    }
6404    #[inline]
6405    pub fn name_ref(&self) -> Option<NameRef> {
6406        support::child(&self.syntax)
6407    }
6408    #[inline]
6409    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6410        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6411    }
6412    #[inline]
6413    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6414        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6415    }
6416    #[inline]
6417    pub fn drop_token(&self) -> Option<SyntaxToken> {
6418        support::token(&self.syntax, SyntaxKind::DROP_KW)
6419    }
6420    #[inline]
6421    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6422        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6423    }
6424}
6425
6426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6427pub struct DropConversion {
6428    pub(crate) syntax: SyntaxNode,
6429}
6430impl DropConversion {
6431    #[inline]
6432    pub fn if_exists(&self) -> Option<IfExists> {
6433        support::child(&self.syntax)
6434    }
6435    #[inline]
6436    pub fn path(&self) -> Option<Path> {
6437        support::child(&self.syntax)
6438    }
6439    #[inline]
6440    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6441        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6442    }
6443    #[inline]
6444    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6445        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6446    }
6447    #[inline]
6448    pub fn drop_token(&self) -> Option<SyntaxToken> {
6449        support::token(&self.syntax, SyntaxKind::DROP_KW)
6450    }
6451    #[inline]
6452    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6453        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6454    }
6455}
6456
6457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6458pub struct DropDatabase {
6459    pub(crate) syntax: SyntaxNode,
6460}
6461impl DropDatabase {
6462    #[inline]
6463    pub fn if_exists(&self) -> Option<IfExists> {
6464        support::child(&self.syntax)
6465    }
6466    #[inline]
6467    pub fn name_ref(&self) -> Option<NameRef> {
6468        support::child(&self.syntax)
6469    }
6470    #[inline]
6471    pub fn database_token(&self) -> Option<SyntaxToken> {
6472        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6473    }
6474    #[inline]
6475    pub fn drop_token(&self) -> Option<SyntaxToken> {
6476        support::token(&self.syntax, SyntaxKind::DROP_KW)
6477    }
6478}
6479
6480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6481pub struct DropDefault {
6482    pub(crate) syntax: SyntaxNode,
6483}
6484impl DropDefault {
6485    #[inline]
6486    pub fn default_token(&self) -> Option<SyntaxToken> {
6487        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6488    }
6489    #[inline]
6490    pub fn drop_token(&self) -> Option<SyntaxToken> {
6491        support::token(&self.syntax, SyntaxKind::DROP_KW)
6492    }
6493}
6494
6495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6496pub struct DropDomain {
6497    pub(crate) syntax: SyntaxNode,
6498}
6499impl DropDomain {
6500    #[inline]
6501    pub fn if_exists(&self) -> Option<IfExists> {
6502        support::child(&self.syntax)
6503    }
6504    #[inline]
6505    pub fn paths(&self) -> AstChildren<Path> {
6506        support::children(&self.syntax)
6507    }
6508    #[inline]
6509    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6510        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6511    }
6512    #[inline]
6513    pub fn domain_token(&self) -> Option<SyntaxToken> {
6514        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6515    }
6516    #[inline]
6517    pub fn drop_token(&self) -> Option<SyntaxToken> {
6518        support::token(&self.syntax, SyntaxKind::DROP_KW)
6519    }
6520    #[inline]
6521    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6522        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6523    }
6524}
6525
6526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6527pub struct DropEdgeTables {
6528    pub(crate) syntax: SyntaxNode,
6529}
6530impl DropEdgeTables {
6531    #[inline]
6532    pub fn names(&self) -> AstChildren<Name> {
6533        support::children(&self.syntax)
6534    }
6535    #[inline]
6536    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::L_PAREN)
6538    }
6539    #[inline]
6540    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6541        support::token(&self.syntax, SyntaxKind::R_PAREN)
6542    }
6543    #[inline]
6544    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6545        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6546    }
6547    #[inline]
6548    pub fn drop_token(&self) -> Option<SyntaxToken> {
6549        support::token(&self.syntax, SyntaxKind::DROP_KW)
6550    }
6551    #[inline]
6552    pub fn edge_token(&self) -> Option<SyntaxToken> {
6553        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6554    }
6555    #[inline]
6556    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6557        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6558    }
6559    #[inline]
6560    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6561        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6562    }
6563    #[inline]
6564    pub fn tables_token(&self) -> Option<SyntaxToken> {
6565        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6566    }
6567}
6568
6569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6570pub struct DropEventTrigger {
6571    pub(crate) syntax: SyntaxNode,
6572}
6573impl DropEventTrigger {
6574    #[inline]
6575    pub fn if_exists(&self) -> Option<IfExists> {
6576        support::child(&self.syntax)
6577    }
6578    #[inline]
6579    pub fn name_ref(&self) -> Option<NameRef> {
6580        support::child(&self.syntax)
6581    }
6582    #[inline]
6583    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6584        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6585    }
6586    #[inline]
6587    pub fn drop_token(&self) -> Option<SyntaxToken> {
6588        support::token(&self.syntax, SyntaxKind::DROP_KW)
6589    }
6590    #[inline]
6591    pub fn event_token(&self) -> Option<SyntaxToken> {
6592        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6593    }
6594    #[inline]
6595    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6596        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6597    }
6598    #[inline]
6599    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6600        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6601    }
6602}
6603
6604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6605pub struct DropExpression {
6606    pub(crate) syntax: SyntaxNode,
6607}
6608impl DropExpression {
6609    #[inline]
6610    pub fn if_exists(&self) -> Option<IfExists> {
6611        support::child(&self.syntax)
6612    }
6613    #[inline]
6614    pub fn drop_token(&self) -> Option<SyntaxToken> {
6615        support::token(&self.syntax, SyntaxKind::DROP_KW)
6616    }
6617    #[inline]
6618    pub fn expression_token(&self) -> Option<SyntaxToken> {
6619        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6620    }
6621}
6622
6623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6624pub struct DropExtension {
6625    pub(crate) syntax: SyntaxNode,
6626}
6627impl DropExtension {
6628    #[inline]
6629    pub fn if_exists(&self) -> Option<IfExists> {
6630        support::child(&self.syntax)
6631    }
6632    #[inline]
6633    pub fn name_refs(&self) -> AstChildren<NameRef> {
6634        support::children(&self.syntax)
6635    }
6636    #[inline]
6637    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6638        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6639    }
6640    #[inline]
6641    pub fn drop_token(&self) -> Option<SyntaxToken> {
6642        support::token(&self.syntax, SyntaxKind::DROP_KW)
6643    }
6644    #[inline]
6645    pub fn extension_token(&self) -> Option<SyntaxToken> {
6646        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6647    }
6648    #[inline]
6649    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6650        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6651    }
6652}
6653
6654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6655pub struct DropForeignDataWrapper {
6656    pub(crate) syntax: SyntaxNode,
6657}
6658impl DropForeignDataWrapper {
6659    #[inline]
6660    pub fn if_exists(&self) -> Option<IfExists> {
6661        support::child(&self.syntax)
6662    }
6663    #[inline]
6664    pub fn name_refs(&self) -> AstChildren<NameRef> {
6665        support::children(&self.syntax)
6666    }
6667    #[inline]
6668    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6669        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6670    }
6671    #[inline]
6672    pub fn data_token(&self) -> Option<SyntaxToken> {
6673        support::token(&self.syntax, SyntaxKind::DATA_KW)
6674    }
6675    #[inline]
6676    pub fn drop_token(&self) -> Option<SyntaxToken> {
6677        support::token(&self.syntax, SyntaxKind::DROP_KW)
6678    }
6679    #[inline]
6680    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6681        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6682    }
6683    #[inline]
6684    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6685        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6686    }
6687    #[inline]
6688    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6689        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6690    }
6691}
6692
6693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6694pub struct DropForeignTable {
6695    pub(crate) syntax: SyntaxNode,
6696}
6697impl DropForeignTable {
6698    #[inline]
6699    pub fn if_exists(&self) -> Option<IfExists> {
6700        support::child(&self.syntax)
6701    }
6702    #[inline]
6703    pub fn path(&self) -> Option<Path> {
6704        support::child(&self.syntax)
6705    }
6706    #[inline]
6707    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6708        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6709    }
6710    #[inline]
6711    pub fn drop_token(&self) -> Option<SyntaxToken> {
6712        support::token(&self.syntax, SyntaxKind::DROP_KW)
6713    }
6714    #[inline]
6715    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6716        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6717    }
6718    #[inline]
6719    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6720        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6721    }
6722    #[inline]
6723    pub fn table_token(&self) -> Option<SyntaxToken> {
6724        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6725    }
6726}
6727
6728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6729pub struct DropFunction {
6730    pub(crate) syntax: SyntaxNode,
6731}
6732impl DropFunction {
6733    #[inline]
6734    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6735        support::child(&self.syntax)
6736    }
6737    #[inline]
6738    pub fn if_exists(&self) -> Option<IfExists> {
6739        support::child(&self.syntax)
6740    }
6741    #[inline]
6742    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6743        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6744    }
6745    #[inline]
6746    pub fn drop_token(&self) -> Option<SyntaxToken> {
6747        support::token(&self.syntax, SyntaxKind::DROP_KW)
6748    }
6749    #[inline]
6750    pub fn function_token(&self) -> Option<SyntaxToken> {
6751        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6752    }
6753    #[inline]
6754    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6755        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6756    }
6757}
6758
6759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6760pub struct DropGroup {
6761    pub(crate) syntax: SyntaxNode,
6762}
6763impl DropGroup {
6764    #[inline]
6765    pub fn if_exists(&self) -> Option<IfExists> {
6766        support::child(&self.syntax)
6767    }
6768    #[inline]
6769    pub fn name_refs(&self) -> AstChildren<NameRef> {
6770        support::children(&self.syntax)
6771    }
6772    #[inline]
6773    pub fn drop_token(&self) -> Option<SyntaxToken> {
6774        support::token(&self.syntax, SyntaxKind::DROP_KW)
6775    }
6776    #[inline]
6777    pub fn group_token(&self) -> Option<SyntaxToken> {
6778        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6779    }
6780}
6781
6782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6783pub struct DropIdentity {
6784    pub(crate) syntax: SyntaxNode,
6785}
6786impl DropIdentity {
6787    #[inline]
6788    pub fn if_exists(&self) -> Option<IfExists> {
6789        support::child(&self.syntax)
6790    }
6791    #[inline]
6792    pub fn drop_token(&self) -> Option<SyntaxToken> {
6793        support::token(&self.syntax, SyntaxKind::DROP_KW)
6794    }
6795    #[inline]
6796    pub fn identity_token(&self) -> Option<SyntaxToken> {
6797        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6798    }
6799}
6800
6801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6802pub struct DropIndex {
6803    pub(crate) syntax: SyntaxNode,
6804}
6805impl DropIndex {
6806    #[inline]
6807    pub fn if_exists(&self) -> Option<IfExists> {
6808        support::child(&self.syntax)
6809    }
6810    #[inline]
6811    pub fn paths(&self) -> AstChildren<Path> {
6812        support::children(&self.syntax)
6813    }
6814    #[inline]
6815    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6816        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6817    }
6818    #[inline]
6819    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6820        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6821    }
6822    #[inline]
6823    pub fn drop_token(&self) -> Option<SyntaxToken> {
6824        support::token(&self.syntax, SyntaxKind::DROP_KW)
6825    }
6826    #[inline]
6827    pub fn index_token(&self) -> Option<SyntaxToken> {
6828        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6829    }
6830    #[inline]
6831    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6832        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6833    }
6834}
6835
6836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6837pub struct DropLanguage {
6838    pub(crate) syntax: SyntaxNode,
6839}
6840impl DropLanguage {
6841    #[inline]
6842    pub fn if_exists(&self) -> Option<IfExists> {
6843        support::child(&self.syntax)
6844    }
6845    #[inline]
6846    pub fn name_ref(&self) -> Option<NameRef> {
6847        support::child(&self.syntax)
6848    }
6849    #[inline]
6850    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6851        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6852    }
6853    #[inline]
6854    pub fn drop_token(&self) -> Option<SyntaxToken> {
6855        support::token(&self.syntax, SyntaxKind::DROP_KW)
6856    }
6857    #[inline]
6858    pub fn language_token(&self) -> Option<SyntaxToken> {
6859        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6860    }
6861    #[inline]
6862    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6863        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6864    }
6865    #[inline]
6866    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6867        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6868    }
6869}
6870
6871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6872pub struct DropMaterializedView {
6873    pub(crate) syntax: SyntaxNode,
6874}
6875impl DropMaterializedView {
6876    #[inline]
6877    pub fn if_exists(&self) -> Option<IfExists> {
6878        support::child(&self.syntax)
6879    }
6880    #[inline]
6881    pub fn paths(&self) -> AstChildren<Path> {
6882        support::children(&self.syntax)
6883    }
6884    #[inline]
6885    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6886        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6887    }
6888    #[inline]
6889    pub fn drop_token(&self) -> Option<SyntaxToken> {
6890        support::token(&self.syntax, SyntaxKind::DROP_KW)
6891    }
6892    #[inline]
6893    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6894        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6895    }
6896    #[inline]
6897    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6898        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6899    }
6900    #[inline]
6901    pub fn view_token(&self) -> Option<SyntaxToken> {
6902        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6903    }
6904}
6905
6906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6907pub struct DropNotNull {
6908    pub(crate) syntax: SyntaxNode,
6909}
6910impl DropNotNull {
6911    #[inline]
6912    pub fn drop_token(&self) -> Option<SyntaxToken> {
6913        support::token(&self.syntax, SyntaxKind::DROP_KW)
6914    }
6915    #[inline]
6916    pub fn not_token(&self) -> Option<SyntaxToken> {
6917        support::token(&self.syntax, SyntaxKind::NOT_KW)
6918    }
6919    #[inline]
6920    pub fn null_token(&self) -> Option<SyntaxToken> {
6921        support::token(&self.syntax, SyntaxKind::NULL_KW)
6922    }
6923}
6924
6925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6926pub struct DropOpClassOption {
6927    pub(crate) syntax: SyntaxNode,
6928}
6929impl DropOpClassOption {
6930    #[inline]
6931    pub fn literal(&self) -> Option<Literal> {
6932        support::child(&self.syntax)
6933    }
6934    #[inline]
6935    pub fn param_list(&self) -> Option<ParamList> {
6936        support::child(&self.syntax)
6937    }
6938    #[inline]
6939    pub fn function_token(&self) -> Option<SyntaxToken> {
6940        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6941    }
6942    #[inline]
6943    pub fn operator_token(&self) -> Option<SyntaxToken> {
6944        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6945    }
6946}
6947
6948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6949pub struct DropOpClassOptionList {
6950    pub(crate) syntax: SyntaxNode,
6951}
6952impl DropOpClassOptionList {
6953    #[inline]
6954    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6955        support::children(&self.syntax)
6956    }
6957}
6958
6959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6960pub struct DropOpClassOptions {
6961    pub(crate) syntax: SyntaxNode,
6962}
6963impl DropOpClassOptions {
6964    #[inline]
6965    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6966        support::child(&self.syntax)
6967    }
6968    #[inline]
6969    pub fn drop_token(&self) -> Option<SyntaxToken> {
6970        support::token(&self.syntax, SyntaxKind::DROP_KW)
6971    }
6972}
6973
6974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6975pub struct DropOperator {
6976    pub(crate) syntax: SyntaxNode,
6977}
6978impl DropOperator {
6979    #[inline]
6980    pub fn if_exists(&self) -> Option<IfExists> {
6981        support::child(&self.syntax)
6982    }
6983    #[inline]
6984    pub fn op_sig_list(&self) -> Option<OpSigList> {
6985        support::child(&self.syntax)
6986    }
6987    #[inline]
6988    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6989        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6990    }
6991    #[inline]
6992    pub fn drop_token(&self) -> Option<SyntaxToken> {
6993        support::token(&self.syntax, SyntaxKind::DROP_KW)
6994    }
6995    #[inline]
6996    pub fn operator_token(&self) -> Option<SyntaxToken> {
6997        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6998    }
6999    #[inline]
7000    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7001        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7002    }
7003}
7004
7005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7006pub struct DropOperatorClass {
7007    pub(crate) syntax: SyntaxNode,
7008}
7009impl DropOperatorClass {
7010    #[inline]
7011    pub fn if_exists(&self) -> Option<IfExists> {
7012        support::child(&self.syntax)
7013    }
7014    #[inline]
7015    pub fn name_ref(&self) -> Option<NameRef> {
7016        support::child(&self.syntax)
7017    }
7018    #[inline]
7019    pub fn path(&self) -> Option<Path> {
7020        support::child(&self.syntax)
7021    }
7022    #[inline]
7023    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7024        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7025    }
7026    #[inline]
7027    pub fn class_token(&self) -> Option<SyntaxToken> {
7028        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7029    }
7030    #[inline]
7031    pub fn drop_token(&self) -> Option<SyntaxToken> {
7032        support::token(&self.syntax, SyntaxKind::DROP_KW)
7033    }
7034    #[inline]
7035    pub fn operator_token(&self) -> Option<SyntaxToken> {
7036        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7037    }
7038    #[inline]
7039    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7040        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7041    }
7042    #[inline]
7043    pub fn using_token(&self) -> Option<SyntaxToken> {
7044        support::token(&self.syntax, SyntaxKind::USING_KW)
7045    }
7046}
7047
7048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7049pub struct DropOperatorFamily {
7050    pub(crate) syntax: SyntaxNode,
7051}
7052impl DropOperatorFamily {
7053    #[inline]
7054    pub fn if_exists(&self) -> Option<IfExists> {
7055        support::child(&self.syntax)
7056    }
7057    #[inline]
7058    pub fn name_ref(&self) -> Option<NameRef> {
7059        support::child(&self.syntax)
7060    }
7061    #[inline]
7062    pub fn path(&self) -> Option<Path> {
7063        support::child(&self.syntax)
7064    }
7065    #[inline]
7066    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7067        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7068    }
7069    #[inline]
7070    pub fn drop_token(&self) -> Option<SyntaxToken> {
7071        support::token(&self.syntax, SyntaxKind::DROP_KW)
7072    }
7073    #[inline]
7074    pub fn family_token(&self) -> Option<SyntaxToken> {
7075        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7076    }
7077    #[inline]
7078    pub fn operator_token(&self) -> Option<SyntaxToken> {
7079        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7080    }
7081    #[inline]
7082    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7083        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7084    }
7085    #[inline]
7086    pub fn using_token(&self) -> Option<SyntaxToken> {
7087        support::token(&self.syntax, SyntaxKind::USING_KW)
7088    }
7089}
7090
7091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7092pub struct DropOwned {
7093    pub(crate) syntax: SyntaxNode,
7094}
7095impl DropOwned {
7096    #[inline]
7097    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7098        support::child(&self.syntax)
7099    }
7100    #[inline]
7101    pub fn by_token(&self) -> Option<SyntaxToken> {
7102        support::token(&self.syntax, SyntaxKind::BY_KW)
7103    }
7104    #[inline]
7105    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7106        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7107    }
7108    #[inline]
7109    pub fn drop_token(&self) -> Option<SyntaxToken> {
7110        support::token(&self.syntax, SyntaxKind::DROP_KW)
7111    }
7112    #[inline]
7113    pub fn owned_token(&self) -> Option<SyntaxToken> {
7114        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7115    }
7116    #[inline]
7117    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7118        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7119    }
7120}
7121
7122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7123pub struct DropPolicy {
7124    pub(crate) syntax: SyntaxNode,
7125}
7126impl DropPolicy {
7127    #[inline]
7128    pub fn if_exists(&self) -> Option<IfExists> {
7129        support::child(&self.syntax)
7130    }
7131    #[inline]
7132    pub fn name_ref(&self) -> Option<NameRef> {
7133        support::child(&self.syntax)
7134    }
7135    #[inline]
7136    pub fn on_table(&self) -> Option<OnTable> {
7137        support::child(&self.syntax)
7138    }
7139    #[inline]
7140    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7141        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7142    }
7143    #[inline]
7144    pub fn drop_token(&self) -> Option<SyntaxToken> {
7145        support::token(&self.syntax, SyntaxKind::DROP_KW)
7146    }
7147    #[inline]
7148    pub fn policy_token(&self) -> Option<SyntaxToken> {
7149        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7150    }
7151    #[inline]
7152    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7153        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7154    }
7155}
7156
7157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7158pub struct DropProcedure {
7159    pub(crate) syntax: SyntaxNode,
7160}
7161impl DropProcedure {
7162    #[inline]
7163    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7164        support::child(&self.syntax)
7165    }
7166    #[inline]
7167    pub fn if_exists(&self) -> Option<IfExists> {
7168        support::child(&self.syntax)
7169    }
7170    #[inline]
7171    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7172        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7173    }
7174    #[inline]
7175    pub fn drop_token(&self) -> Option<SyntaxToken> {
7176        support::token(&self.syntax, SyntaxKind::DROP_KW)
7177    }
7178    #[inline]
7179    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7180        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7181    }
7182    #[inline]
7183    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7184        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7185    }
7186}
7187
7188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7189pub struct DropPropertyGraph {
7190    pub(crate) syntax: SyntaxNode,
7191}
7192impl DropPropertyGraph {
7193    #[inline]
7194    pub fn if_exists(&self) -> Option<IfExists> {
7195        support::child(&self.syntax)
7196    }
7197    #[inline]
7198    pub fn path(&self) -> Option<Path> {
7199        support::child(&self.syntax)
7200    }
7201    #[inline]
7202    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7203        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7204    }
7205    #[inline]
7206    pub fn drop_token(&self) -> Option<SyntaxToken> {
7207        support::token(&self.syntax, SyntaxKind::DROP_KW)
7208    }
7209    #[inline]
7210    pub fn graph_token(&self) -> Option<SyntaxToken> {
7211        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7212    }
7213    #[inline]
7214    pub fn property_token(&self) -> Option<SyntaxToken> {
7215        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7216    }
7217    #[inline]
7218    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7219        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7220    }
7221}
7222
7223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7224pub struct DropPublication {
7225    pub(crate) syntax: SyntaxNode,
7226}
7227impl DropPublication {
7228    #[inline]
7229    pub fn if_exists(&self) -> Option<IfExists> {
7230        support::child(&self.syntax)
7231    }
7232    #[inline]
7233    pub fn name_refs(&self) -> AstChildren<NameRef> {
7234        support::children(&self.syntax)
7235    }
7236    #[inline]
7237    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7238        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7239    }
7240    #[inline]
7241    pub fn drop_token(&self) -> Option<SyntaxToken> {
7242        support::token(&self.syntax, SyntaxKind::DROP_KW)
7243    }
7244    #[inline]
7245    pub fn publication_token(&self) -> Option<SyntaxToken> {
7246        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7247    }
7248    #[inline]
7249    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7250        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7251    }
7252}
7253
7254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7255pub struct DropRole {
7256    pub(crate) syntax: SyntaxNode,
7257}
7258impl DropRole {
7259    #[inline]
7260    pub fn if_exists(&self) -> Option<IfExists> {
7261        support::child(&self.syntax)
7262    }
7263    #[inline]
7264    pub fn name_refs(&self) -> AstChildren<NameRef> {
7265        support::children(&self.syntax)
7266    }
7267    #[inline]
7268    pub fn drop_token(&self) -> Option<SyntaxToken> {
7269        support::token(&self.syntax, SyntaxKind::DROP_KW)
7270    }
7271    #[inline]
7272    pub fn role_token(&self) -> Option<SyntaxToken> {
7273        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7274    }
7275}
7276
7277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7278pub struct DropRoutine {
7279    pub(crate) syntax: SyntaxNode,
7280}
7281impl DropRoutine {
7282    #[inline]
7283    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7284        support::child(&self.syntax)
7285    }
7286    #[inline]
7287    pub fn if_exists(&self) -> Option<IfExists> {
7288        support::child(&self.syntax)
7289    }
7290    #[inline]
7291    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7292        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7293    }
7294    #[inline]
7295    pub fn drop_token(&self) -> Option<SyntaxToken> {
7296        support::token(&self.syntax, SyntaxKind::DROP_KW)
7297    }
7298    #[inline]
7299    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7300        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7301    }
7302    #[inline]
7303    pub fn routine_token(&self) -> Option<SyntaxToken> {
7304        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7305    }
7306}
7307
7308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7309pub struct DropRule {
7310    pub(crate) syntax: SyntaxNode,
7311}
7312impl DropRule {
7313    #[inline]
7314    pub fn if_exists(&self) -> Option<IfExists> {
7315        support::child(&self.syntax)
7316    }
7317    #[inline]
7318    pub fn name_ref(&self) -> Option<NameRef> {
7319        support::child(&self.syntax)
7320    }
7321    #[inline]
7322    pub fn on_table(&self) -> Option<OnTable> {
7323        support::child(&self.syntax)
7324    }
7325    #[inline]
7326    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7327        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7328    }
7329    #[inline]
7330    pub fn drop_token(&self) -> Option<SyntaxToken> {
7331        support::token(&self.syntax, SyntaxKind::DROP_KW)
7332    }
7333    #[inline]
7334    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7335        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7336    }
7337    #[inline]
7338    pub fn rule_token(&self) -> Option<SyntaxToken> {
7339        support::token(&self.syntax, SyntaxKind::RULE_KW)
7340    }
7341}
7342
7343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7344pub struct DropSchema {
7345    pub(crate) syntax: SyntaxNode,
7346}
7347impl DropSchema {
7348    #[inline]
7349    pub fn if_exists(&self) -> Option<IfExists> {
7350        support::child(&self.syntax)
7351    }
7352    #[inline]
7353    pub fn name_refs(&self) -> AstChildren<NameRef> {
7354        support::children(&self.syntax)
7355    }
7356    #[inline]
7357    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7358        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7359    }
7360    #[inline]
7361    pub fn drop_token(&self) -> Option<SyntaxToken> {
7362        support::token(&self.syntax, SyntaxKind::DROP_KW)
7363    }
7364    #[inline]
7365    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7366        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7367    }
7368    #[inline]
7369    pub fn schema_token(&self) -> Option<SyntaxToken> {
7370        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7371    }
7372}
7373
7374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7375pub struct DropSequence {
7376    pub(crate) syntax: SyntaxNode,
7377}
7378impl DropSequence {
7379    #[inline]
7380    pub fn if_exists(&self) -> Option<IfExists> {
7381        support::child(&self.syntax)
7382    }
7383    #[inline]
7384    pub fn paths(&self) -> AstChildren<Path> {
7385        support::children(&self.syntax)
7386    }
7387    #[inline]
7388    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7389        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7390    }
7391    #[inline]
7392    pub fn drop_token(&self) -> Option<SyntaxToken> {
7393        support::token(&self.syntax, SyntaxKind::DROP_KW)
7394    }
7395    #[inline]
7396    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7397        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7398    }
7399    #[inline]
7400    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7401        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7402    }
7403}
7404
7405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7406pub struct DropServer {
7407    pub(crate) syntax: SyntaxNode,
7408}
7409impl DropServer {
7410    #[inline]
7411    pub fn if_exists(&self) -> Option<IfExists> {
7412        support::child(&self.syntax)
7413    }
7414    #[inline]
7415    pub fn name_ref(&self) -> Option<NameRef> {
7416        support::child(&self.syntax)
7417    }
7418    #[inline]
7419    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7420        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7421    }
7422    #[inline]
7423    pub fn drop_token(&self) -> Option<SyntaxToken> {
7424        support::token(&self.syntax, SyntaxKind::DROP_KW)
7425    }
7426    #[inline]
7427    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7428        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7429    }
7430    #[inline]
7431    pub fn server_token(&self) -> Option<SyntaxToken> {
7432        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7433    }
7434}
7435
7436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7437pub struct DropStatistics {
7438    pub(crate) syntax: SyntaxNode,
7439}
7440impl DropStatistics {
7441    #[inline]
7442    pub fn if_exists(&self) -> Option<IfExists> {
7443        support::child(&self.syntax)
7444    }
7445    #[inline]
7446    pub fn paths(&self) -> AstChildren<Path> {
7447        support::children(&self.syntax)
7448    }
7449    #[inline]
7450    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7451        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7452    }
7453    #[inline]
7454    pub fn drop_token(&self) -> Option<SyntaxToken> {
7455        support::token(&self.syntax, SyntaxKind::DROP_KW)
7456    }
7457    #[inline]
7458    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7459        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7460    }
7461    #[inline]
7462    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7463        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7464    }
7465}
7466
7467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7468pub struct DropSubscription {
7469    pub(crate) syntax: SyntaxNode,
7470}
7471impl DropSubscription {
7472    #[inline]
7473    pub fn if_exists(&self) -> Option<IfExists> {
7474        support::child(&self.syntax)
7475    }
7476    #[inline]
7477    pub fn name_ref(&self) -> Option<NameRef> {
7478        support::child(&self.syntax)
7479    }
7480    #[inline]
7481    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7482        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7483    }
7484    #[inline]
7485    pub fn drop_token(&self) -> Option<SyntaxToken> {
7486        support::token(&self.syntax, SyntaxKind::DROP_KW)
7487    }
7488    #[inline]
7489    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7490        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7491    }
7492    #[inline]
7493    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7494        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7495    }
7496}
7497
7498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7499pub struct DropTable {
7500    pub(crate) syntax: SyntaxNode,
7501}
7502impl DropTable {
7503    #[inline]
7504    pub fn if_exists(&self) -> Option<IfExists> {
7505        support::child(&self.syntax)
7506    }
7507    #[inline]
7508    pub fn path(&self) -> Option<Path> {
7509        support::child(&self.syntax)
7510    }
7511    #[inline]
7512    pub fn comma_token(&self) -> Option<SyntaxToken> {
7513        support::token(&self.syntax, SyntaxKind::COMMA)
7514    }
7515    #[inline]
7516    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7517        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7518    }
7519    #[inline]
7520    pub fn drop_token(&self) -> Option<SyntaxToken> {
7521        support::token(&self.syntax, SyntaxKind::DROP_KW)
7522    }
7523    #[inline]
7524    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7525        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7526    }
7527    #[inline]
7528    pub fn table_token(&self) -> Option<SyntaxToken> {
7529        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7530    }
7531}
7532
7533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7534pub struct DropTablespace {
7535    pub(crate) syntax: SyntaxNode,
7536}
7537impl DropTablespace {
7538    #[inline]
7539    pub fn if_exists(&self) -> Option<IfExists> {
7540        support::child(&self.syntax)
7541    }
7542    #[inline]
7543    pub fn name_ref(&self) -> Option<NameRef> {
7544        support::child(&self.syntax)
7545    }
7546    #[inline]
7547    pub fn drop_token(&self) -> Option<SyntaxToken> {
7548        support::token(&self.syntax, SyntaxKind::DROP_KW)
7549    }
7550    #[inline]
7551    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7552        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7553    }
7554}
7555
7556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7557pub struct DropTextSearchConfig {
7558    pub(crate) syntax: SyntaxNode,
7559}
7560impl DropTextSearchConfig {
7561    #[inline]
7562    pub fn if_exists(&self) -> Option<IfExists> {
7563        support::child(&self.syntax)
7564    }
7565    #[inline]
7566    pub fn path(&self) -> Option<Path> {
7567        support::child(&self.syntax)
7568    }
7569    #[inline]
7570    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7571        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7572    }
7573    #[inline]
7574    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7575        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7576    }
7577    #[inline]
7578    pub fn drop_token(&self) -> Option<SyntaxToken> {
7579        support::token(&self.syntax, SyntaxKind::DROP_KW)
7580    }
7581    #[inline]
7582    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7583        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7584    }
7585    #[inline]
7586    pub fn search_token(&self) -> Option<SyntaxToken> {
7587        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7588    }
7589    #[inline]
7590    pub fn text_token(&self) -> Option<SyntaxToken> {
7591        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7592    }
7593}
7594
7595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7596pub struct DropTextSearchDict {
7597    pub(crate) syntax: SyntaxNode,
7598}
7599impl DropTextSearchDict {
7600    #[inline]
7601    pub fn if_exists(&self) -> Option<IfExists> {
7602        support::child(&self.syntax)
7603    }
7604    #[inline]
7605    pub fn path(&self) -> Option<Path> {
7606        support::child(&self.syntax)
7607    }
7608    #[inline]
7609    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7610        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7611    }
7612    #[inline]
7613    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7614        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7615    }
7616    #[inline]
7617    pub fn drop_token(&self) -> Option<SyntaxToken> {
7618        support::token(&self.syntax, SyntaxKind::DROP_KW)
7619    }
7620    #[inline]
7621    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7622        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7623    }
7624    #[inline]
7625    pub fn search_token(&self) -> Option<SyntaxToken> {
7626        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7627    }
7628    #[inline]
7629    pub fn text_token(&self) -> Option<SyntaxToken> {
7630        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7631    }
7632}
7633
7634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7635pub struct DropTextSearchParser {
7636    pub(crate) syntax: SyntaxNode,
7637}
7638impl DropTextSearchParser {
7639    #[inline]
7640    pub fn if_exists(&self) -> Option<IfExists> {
7641        support::child(&self.syntax)
7642    }
7643    #[inline]
7644    pub fn path(&self) -> Option<Path> {
7645        support::child(&self.syntax)
7646    }
7647    #[inline]
7648    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7649        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7650    }
7651    #[inline]
7652    pub fn drop_token(&self) -> Option<SyntaxToken> {
7653        support::token(&self.syntax, SyntaxKind::DROP_KW)
7654    }
7655    #[inline]
7656    pub fn parser_token(&self) -> Option<SyntaxToken> {
7657        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7658    }
7659    #[inline]
7660    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7661        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7662    }
7663    #[inline]
7664    pub fn search_token(&self) -> Option<SyntaxToken> {
7665        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7666    }
7667    #[inline]
7668    pub fn text_token(&self) -> Option<SyntaxToken> {
7669        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7670    }
7671}
7672
7673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7674pub struct DropTextSearchTemplate {
7675    pub(crate) syntax: SyntaxNode,
7676}
7677impl DropTextSearchTemplate {
7678    #[inline]
7679    pub fn if_exists(&self) -> Option<IfExists> {
7680        support::child(&self.syntax)
7681    }
7682    #[inline]
7683    pub fn path(&self) -> Option<Path> {
7684        support::child(&self.syntax)
7685    }
7686    #[inline]
7687    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7688        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7689    }
7690    #[inline]
7691    pub fn drop_token(&self) -> Option<SyntaxToken> {
7692        support::token(&self.syntax, SyntaxKind::DROP_KW)
7693    }
7694    #[inline]
7695    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7696        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7697    }
7698    #[inline]
7699    pub fn search_token(&self) -> Option<SyntaxToken> {
7700        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7701    }
7702    #[inline]
7703    pub fn template_token(&self) -> Option<SyntaxToken> {
7704        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7705    }
7706    #[inline]
7707    pub fn text_token(&self) -> Option<SyntaxToken> {
7708        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7709    }
7710}
7711
7712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7713pub struct DropTransform {
7714    pub(crate) syntax: SyntaxNode,
7715}
7716impl DropTransform {
7717    #[inline]
7718    pub fn if_exists(&self) -> Option<IfExists> {
7719        support::child(&self.syntax)
7720    }
7721    #[inline]
7722    pub fn language(&self) -> Option<NameRef> {
7723        support::child(&self.syntax)
7724    }
7725    #[inline]
7726    pub fn ty(&self) -> Option<Type> {
7727        support::child(&self.syntax)
7728    }
7729    #[inline]
7730    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7731        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7732    }
7733    #[inline]
7734    pub fn drop_token(&self) -> Option<SyntaxToken> {
7735        support::token(&self.syntax, SyntaxKind::DROP_KW)
7736    }
7737    #[inline]
7738    pub fn for_token(&self) -> Option<SyntaxToken> {
7739        support::token(&self.syntax, SyntaxKind::FOR_KW)
7740    }
7741    #[inline]
7742    pub fn language_token(&self) -> Option<SyntaxToken> {
7743        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7744    }
7745    #[inline]
7746    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7747        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7748    }
7749    #[inline]
7750    pub fn transform_token(&self) -> Option<SyntaxToken> {
7751        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7752    }
7753}
7754
7755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7756pub struct DropTrigger {
7757    pub(crate) syntax: SyntaxNode,
7758}
7759impl DropTrigger {
7760    #[inline]
7761    pub fn if_exists(&self) -> Option<IfExists> {
7762        support::child(&self.syntax)
7763    }
7764    #[inline]
7765    pub fn on_table(&self) -> Option<OnTable> {
7766        support::child(&self.syntax)
7767    }
7768    #[inline]
7769    pub fn path(&self) -> Option<Path> {
7770        support::child(&self.syntax)
7771    }
7772    #[inline]
7773    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7774        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7775    }
7776    #[inline]
7777    pub fn drop_token(&self) -> Option<SyntaxToken> {
7778        support::token(&self.syntax, SyntaxKind::DROP_KW)
7779    }
7780    #[inline]
7781    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7782        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7783    }
7784    #[inline]
7785    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7786        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7787    }
7788}
7789
7790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7791pub struct DropType {
7792    pub(crate) syntax: SyntaxNode,
7793}
7794impl DropType {
7795    #[inline]
7796    pub fn if_exists(&self) -> Option<IfExists> {
7797        support::child(&self.syntax)
7798    }
7799    #[inline]
7800    pub fn paths(&self) -> AstChildren<Path> {
7801        support::children(&self.syntax)
7802    }
7803    #[inline]
7804    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7805        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7806    }
7807    #[inline]
7808    pub fn drop_token(&self) -> Option<SyntaxToken> {
7809        support::token(&self.syntax, SyntaxKind::DROP_KW)
7810    }
7811    #[inline]
7812    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7813        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7814    }
7815    #[inline]
7816    pub fn type_token(&self) -> Option<SyntaxToken> {
7817        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7818    }
7819}
7820
7821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7822pub struct DropUser {
7823    pub(crate) syntax: SyntaxNode,
7824}
7825impl DropUser {
7826    #[inline]
7827    pub fn if_exists(&self) -> Option<IfExists> {
7828        support::child(&self.syntax)
7829    }
7830    #[inline]
7831    pub fn name_refs(&self) -> AstChildren<NameRef> {
7832        support::children(&self.syntax)
7833    }
7834    #[inline]
7835    pub fn drop_token(&self) -> Option<SyntaxToken> {
7836        support::token(&self.syntax, SyntaxKind::DROP_KW)
7837    }
7838    #[inline]
7839    pub fn user_token(&self) -> Option<SyntaxToken> {
7840        support::token(&self.syntax, SyntaxKind::USER_KW)
7841    }
7842}
7843
7844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7845pub struct DropUserMapping {
7846    pub(crate) syntax: SyntaxNode,
7847}
7848impl DropUserMapping {
7849    #[inline]
7850    pub fn if_exists(&self) -> Option<IfExists> {
7851        support::child(&self.syntax)
7852    }
7853    #[inline]
7854    pub fn role_ref(&self) -> Option<RoleRef> {
7855        support::child(&self.syntax)
7856    }
7857    #[inline]
7858    pub fn server_name(&self) -> Option<ServerName> {
7859        support::child(&self.syntax)
7860    }
7861    #[inline]
7862    pub fn drop_token(&self) -> Option<SyntaxToken> {
7863        support::token(&self.syntax, SyntaxKind::DROP_KW)
7864    }
7865    #[inline]
7866    pub fn for_token(&self) -> Option<SyntaxToken> {
7867        support::token(&self.syntax, SyntaxKind::FOR_KW)
7868    }
7869    #[inline]
7870    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7871        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7872    }
7873    #[inline]
7874    pub fn user_token(&self) -> Option<SyntaxToken> {
7875        support::token(&self.syntax, SyntaxKind::USER_KW)
7876    }
7877}
7878
7879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7880pub struct DropVertexEdgeLabel {
7881    pub(crate) syntax: SyntaxNode,
7882}
7883impl DropVertexEdgeLabel {
7884    #[inline]
7885    pub fn name_ref(&self) -> Option<NameRef> {
7886        support::child(&self.syntax)
7887    }
7888    #[inline]
7889    pub fn alter_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7891    }
7892    #[inline]
7893    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7895    }
7896    #[inline]
7897    pub fn drop_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::DROP_KW)
7899    }
7900    #[inline]
7901    pub fn edge_token(&self) -> Option<SyntaxToken> {
7902        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7903    }
7904    #[inline]
7905    pub fn label_token(&self) -> Option<SyntaxToken> {
7906        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7907    }
7908    #[inline]
7909    pub fn node_token(&self) -> Option<SyntaxToken> {
7910        support::token(&self.syntax, SyntaxKind::NODE_KW)
7911    }
7912    #[inline]
7913    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7914        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7915    }
7916    #[inline]
7917    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7918        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7919    }
7920    #[inline]
7921    pub fn table_token(&self) -> Option<SyntaxToken> {
7922        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7923    }
7924    #[inline]
7925    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7926        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7927    }
7928}
7929
7930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7931pub struct DropVertexEdgeLabelProperties {
7932    pub(crate) syntax: SyntaxNode,
7933}
7934impl DropVertexEdgeLabelProperties {
7935    #[inline]
7936    pub fn name_ref(&self) -> Option<NameRef> {
7937        support::child(&self.syntax)
7938    }
7939    #[inline]
7940    pub fn names(&self) -> AstChildren<Name> {
7941        support::children(&self.syntax)
7942    }
7943    #[inline]
7944    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::L_PAREN)
7946    }
7947    #[inline]
7948    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::R_PAREN)
7950    }
7951    #[inline]
7952    pub fn alter_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7954    }
7955    #[inline]
7956    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7958    }
7959    #[inline]
7960    pub fn drop_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::DROP_KW)
7962    }
7963    #[inline]
7964    pub fn edge_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7966    }
7967    #[inline]
7968    pub fn label_token(&self) -> Option<SyntaxToken> {
7969        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7970    }
7971    #[inline]
7972    pub fn node_token(&self) -> Option<SyntaxToken> {
7973        support::token(&self.syntax, SyntaxKind::NODE_KW)
7974    }
7975    #[inline]
7976    pub fn properties_token(&self) -> Option<SyntaxToken> {
7977        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
7978    }
7979    #[inline]
7980    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7981        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7982    }
7983    #[inline]
7984    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7985        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7986    }
7987    #[inline]
7988    pub fn table_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7990    }
7991    #[inline]
7992    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7994    }
7995}
7996
7997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7998pub struct DropVertexTables {
7999    pub(crate) syntax: SyntaxNode,
8000}
8001impl DropVertexTables {
8002    #[inline]
8003    pub fn names(&self) -> AstChildren<Name> {
8004        support::children(&self.syntax)
8005    }
8006    #[inline]
8007    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8008        support::token(&self.syntax, SyntaxKind::L_PAREN)
8009    }
8010    #[inline]
8011    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8012        support::token(&self.syntax, SyntaxKind::R_PAREN)
8013    }
8014    #[inline]
8015    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8017    }
8018    #[inline]
8019    pub fn drop_token(&self) -> Option<SyntaxToken> {
8020        support::token(&self.syntax, SyntaxKind::DROP_KW)
8021    }
8022    #[inline]
8023    pub fn node_token(&self) -> Option<SyntaxToken> {
8024        support::token(&self.syntax, SyntaxKind::NODE_KW)
8025    }
8026    #[inline]
8027    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8028        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8029    }
8030    #[inline]
8031    pub fn tables_token(&self) -> Option<SyntaxToken> {
8032        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8033    }
8034    #[inline]
8035    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8036        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8037    }
8038}
8039
8040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8041pub struct DropView {
8042    pub(crate) syntax: SyntaxNode,
8043}
8044impl DropView {
8045    #[inline]
8046    pub fn if_exists(&self) -> Option<IfExists> {
8047        support::child(&self.syntax)
8048    }
8049    #[inline]
8050    pub fn path(&self) -> Option<Path> {
8051        support::child(&self.syntax)
8052    }
8053    #[inline]
8054    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8055        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8056    }
8057    #[inline]
8058    pub fn drop_token(&self) -> Option<SyntaxToken> {
8059        support::token(&self.syntax, SyntaxKind::DROP_KW)
8060    }
8061    #[inline]
8062    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8063        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8064    }
8065    #[inline]
8066    pub fn view_token(&self) -> Option<SyntaxToken> {
8067        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8068    }
8069}
8070
8071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8072pub struct EdgeAny {
8073    pub(crate) syntax: SyntaxNode,
8074}
8075impl EdgeAny {
8076    #[inline]
8077    pub fn is_label_expression(&self) -> Option<IsLabelExpression> {
8078        support::child(&self.syntax)
8079    }
8080    #[inline]
8081    pub fn name(&self) -> Option<Name> {
8082        support::child(&self.syntax)
8083    }
8084    #[inline]
8085    pub fn where_clause(&self) -> Option<WhereClause> {
8086        support::child(&self.syntax)
8087    }
8088    #[inline]
8089    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8090        support::token(&self.syntax, SyntaxKind::L_BRACK)
8091    }
8092    #[inline]
8093    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8094        support::token(&self.syntax, SyntaxKind::R_BRACK)
8095    }
8096    #[inline]
8097    pub fn minus_token(&self) -> Option<SyntaxToken> {
8098        support::token(&self.syntax, SyntaxKind::MINUS)
8099    }
8100}
8101
8102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8103pub struct EdgeLeft {
8104    pub(crate) syntax: SyntaxNode,
8105}
8106impl EdgeLeft {
8107    #[inline]
8108    pub fn is_label_expression(&self) -> Option<IsLabelExpression> {
8109        support::child(&self.syntax)
8110    }
8111    #[inline]
8112    pub fn name(&self) -> Option<Name> {
8113        support::child(&self.syntax)
8114    }
8115    #[inline]
8116    pub fn where_clause(&self) -> Option<WhereClause> {
8117        support::child(&self.syntax)
8118    }
8119    #[inline]
8120    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8121        support::token(&self.syntax, SyntaxKind::L_BRACK)
8122    }
8123    #[inline]
8124    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8125        support::token(&self.syntax, SyntaxKind::R_BRACK)
8126    }
8127    #[inline]
8128    pub fn minus_token(&self) -> Option<SyntaxToken> {
8129        support::token(&self.syntax, SyntaxKind::MINUS)
8130    }
8131    #[inline]
8132    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8133        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8134    }
8135}
8136
8137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8138pub struct EdgeRight {
8139    pub(crate) syntax: SyntaxNode,
8140}
8141impl EdgeRight {
8142    #[inline]
8143    pub fn is_label_expression(&self) -> Option<IsLabelExpression> {
8144        support::child(&self.syntax)
8145    }
8146    #[inline]
8147    pub fn name(&self) -> Option<Name> {
8148        support::child(&self.syntax)
8149    }
8150    #[inline]
8151    pub fn where_clause(&self) -> Option<WhereClause> {
8152        support::child(&self.syntax)
8153    }
8154    #[inline]
8155    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8156        support::token(&self.syntax, SyntaxKind::L_BRACK)
8157    }
8158    #[inline]
8159    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8160        support::token(&self.syntax, SyntaxKind::R_BRACK)
8161    }
8162    #[inline]
8163    pub fn minus_token(&self) -> Option<SyntaxToken> {
8164        support::token(&self.syntax, SyntaxKind::MINUS)
8165    }
8166    #[inline]
8167    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8168        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8169    }
8170}
8171
8172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8173pub struct EdgeTableDef {
8174    pub(crate) syntax: SyntaxNode,
8175}
8176impl EdgeTableDef {
8177    #[inline]
8178    pub fn column_list(&self) -> Option<ColumnList> {
8179        support::child(&self.syntax)
8180    }
8181    #[inline]
8182    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8183        support::child(&self.syntax)
8184    }
8185    #[inline]
8186    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8187        support::child(&self.syntax)
8188    }
8189    #[inline]
8190    pub fn name(&self) -> Option<Name> {
8191        support::child(&self.syntax)
8192    }
8193    #[inline]
8194    pub fn path(&self) -> Option<Path> {
8195        support::child(&self.syntax)
8196    }
8197    #[inline]
8198    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8199        support::child(&self.syntax)
8200    }
8201    #[inline]
8202    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8203        support::token(&self.syntax, SyntaxKind::L_PAREN)
8204    }
8205    #[inline]
8206    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8207        support::token(&self.syntax, SyntaxKind::R_PAREN)
8208    }
8209    #[inline]
8210    pub fn as_token(&self) -> Option<SyntaxToken> {
8211        support::token(&self.syntax, SyntaxKind::AS_KW)
8212    }
8213    #[inline]
8214    pub fn key_token(&self) -> Option<SyntaxToken> {
8215        support::token(&self.syntax, SyntaxKind::KEY_KW)
8216    }
8217}
8218
8219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8220pub struct EdgeTables {
8221    pub(crate) syntax: SyntaxNode,
8222}
8223impl EdgeTables {
8224    #[inline]
8225    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8226        support::children(&self.syntax)
8227    }
8228    #[inline]
8229    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8230        support::token(&self.syntax, SyntaxKind::L_PAREN)
8231    }
8232    #[inline]
8233    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8234        support::token(&self.syntax, SyntaxKind::R_PAREN)
8235    }
8236    #[inline]
8237    pub fn edge_token(&self) -> Option<SyntaxToken> {
8238        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8239    }
8240    #[inline]
8241    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8242        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8243    }
8244    #[inline]
8245    pub fn tables_token(&self) -> Option<SyntaxToken> {
8246        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8247    }
8248}
8249
8250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8251pub struct ElseClause {
8252    pub(crate) syntax: SyntaxNode,
8253}
8254impl ElseClause {
8255    #[inline]
8256    pub fn expr(&self) -> Option<Expr> {
8257        support::child(&self.syntax)
8258    }
8259    #[inline]
8260    pub fn else_token(&self) -> Option<SyntaxToken> {
8261        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8262    }
8263}
8264
8265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8266pub struct EnableAlwaysRule {
8267    pub(crate) syntax: SyntaxNode,
8268}
8269impl EnableAlwaysRule {
8270    #[inline]
8271    pub fn always_token(&self) -> Option<SyntaxToken> {
8272        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8273    }
8274    #[inline]
8275    pub fn enable_token(&self) -> Option<SyntaxToken> {
8276        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8277    }
8278    #[inline]
8279    pub fn rule_token(&self) -> Option<SyntaxToken> {
8280        support::token(&self.syntax, SyntaxKind::RULE_KW)
8281    }
8282}
8283
8284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8285pub struct EnableAlwaysTrigger {
8286    pub(crate) syntax: SyntaxNode,
8287}
8288impl EnableAlwaysTrigger {
8289    #[inline]
8290    pub fn always_token(&self) -> Option<SyntaxToken> {
8291        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8292    }
8293    #[inline]
8294    pub fn enable_token(&self) -> Option<SyntaxToken> {
8295        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8296    }
8297    #[inline]
8298    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8299        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8300    }
8301}
8302
8303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8304pub struct EnableReplicaRule {
8305    pub(crate) syntax: SyntaxNode,
8306}
8307impl EnableReplicaRule {
8308    #[inline]
8309    pub fn enable_token(&self) -> Option<SyntaxToken> {
8310        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8311    }
8312    #[inline]
8313    pub fn replica_token(&self) -> Option<SyntaxToken> {
8314        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8315    }
8316    #[inline]
8317    pub fn rule_token(&self) -> Option<SyntaxToken> {
8318        support::token(&self.syntax, SyntaxKind::RULE_KW)
8319    }
8320}
8321
8322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8323pub struct EnableReplicaTrigger {
8324    pub(crate) syntax: SyntaxNode,
8325}
8326impl EnableReplicaTrigger {
8327    #[inline]
8328    pub fn enable_token(&self) -> Option<SyntaxToken> {
8329        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8330    }
8331    #[inline]
8332    pub fn replica_token(&self) -> Option<SyntaxToken> {
8333        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8334    }
8335    #[inline]
8336    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8337        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8338    }
8339}
8340
8341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8342pub struct EnableRls {
8343    pub(crate) syntax: SyntaxNode,
8344}
8345impl EnableRls {
8346    #[inline]
8347    pub fn enable_token(&self) -> Option<SyntaxToken> {
8348        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8349    }
8350    #[inline]
8351    pub fn level_token(&self) -> Option<SyntaxToken> {
8352        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8353    }
8354    #[inline]
8355    pub fn row_token(&self) -> Option<SyntaxToken> {
8356        support::token(&self.syntax, SyntaxKind::ROW_KW)
8357    }
8358    #[inline]
8359    pub fn security_token(&self) -> Option<SyntaxToken> {
8360        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8361    }
8362}
8363
8364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8365pub struct EnableRule {
8366    pub(crate) syntax: SyntaxNode,
8367}
8368impl EnableRule {
8369    #[inline]
8370    pub fn enable_token(&self) -> Option<SyntaxToken> {
8371        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8372    }
8373    #[inline]
8374    pub fn rule_token(&self) -> Option<SyntaxToken> {
8375        support::token(&self.syntax, SyntaxKind::RULE_KW)
8376    }
8377}
8378
8379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8380pub struct EnableTrigger {
8381    pub(crate) syntax: SyntaxNode,
8382}
8383impl EnableTrigger {
8384    #[inline]
8385    pub fn enable_token(&self) -> Option<SyntaxToken> {
8386        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8387    }
8388    #[inline]
8389    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8390        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8391    }
8392}
8393
8394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8395pub struct Enforced {
8396    pub(crate) syntax: SyntaxNode,
8397}
8398impl Enforced {
8399    #[inline]
8400    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8401        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8402    }
8403}
8404
8405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8406pub struct EventTriggerWhen {
8407    pub(crate) syntax: SyntaxNode,
8408}
8409impl EventTriggerWhen {
8410    #[inline]
8411    pub fn literals(&self) -> AstChildren<Literal> {
8412        support::children(&self.syntax)
8413    }
8414    #[inline]
8415    pub fn name_ref(&self) -> Option<NameRef> {
8416        support::child(&self.syntax)
8417    }
8418    #[inline]
8419    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8420        support::token(&self.syntax, SyntaxKind::L_PAREN)
8421    }
8422    #[inline]
8423    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8424        support::token(&self.syntax, SyntaxKind::R_PAREN)
8425    }
8426    #[inline]
8427    pub fn in_token(&self) -> Option<SyntaxToken> {
8428        support::token(&self.syntax, SyntaxKind::IN_KW)
8429    }
8430}
8431
8432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8433pub struct EventTriggerWhenClause {
8434    pub(crate) syntax: SyntaxNode,
8435}
8436impl EventTriggerWhenClause {
8437    #[inline]
8438    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8439        support::children(&self.syntax)
8440    }
8441    #[inline]
8442    pub fn when_token(&self) -> Option<SyntaxToken> {
8443        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8444    }
8445}
8446
8447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8448pub struct ExceptTableClause {
8449    pub(crate) syntax: SyntaxNode,
8450}
8451impl ExceptTableClause {
8452    #[inline]
8453    pub fn relation_names(&self) -> AstChildren<RelationName> {
8454        support::children(&self.syntax)
8455    }
8456    #[inline]
8457    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8458        support::token(&self.syntax, SyntaxKind::L_PAREN)
8459    }
8460    #[inline]
8461    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8462        support::token(&self.syntax, SyntaxKind::R_PAREN)
8463    }
8464    #[inline]
8465    pub fn except_token(&self) -> Option<SyntaxToken> {
8466        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8467    }
8468    #[inline]
8469    pub fn table_token(&self) -> Option<SyntaxToken> {
8470        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8471    }
8472}
8473
8474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8475pub struct ExceptTables {
8476    pub(crate) syntax: SyntaxNode,
8477}
8478impl ExceptTables {
8479    #[inline]
8480    pub fn name_refs(&self) -> AstChildren<NameRef> {
8481        support::children(&self.syntax)
8482    }
8483    #[inline]
8484    pub fn except_token(&self) -> Option<SyntaxToken> {
8485        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8486    }
8487}
8488
8489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8490pub struct ExcludeConstraint {
8491    pub(crate) syntax: SyntaxNode,
8492}
8493impl ExcludeConstraint {
8494    #[inline]
8495    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8496        support::child(&self.syntax)
8497    }
8498    #[inline]
8499    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8500        support::child(&self.syntax)
8501    }
8502    #[inline]
8503    pub fn constraint_name(&self) -> Option<ConstraintName> {
8504        support::child(&self.syntax)
8505    }
8506    #[inline]
8507    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
8508        support::child(&self.syntax)
8509    }
8510    #[inline]
8511    pub fn exclude_token(&self) -> Option<SyntaxToken> {
8512        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
8513    }
8514}
8515
8516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8517pub struct Execute {
8518    pub(crate) syntax: SyntaxNode,
8519}
8520impl Execute {
8521    #[inline]
8522    pub fn arg_list(&self) -> Option<ArgList> {
8523        support::child(&self.syntax)
8524    }
8525    #[inline]
8526    pub fn name_ref(&self) -> Option<NameRef> {
8527        support::child(&self.syntax)
8528    }
8529    #[inline]
8530    pub fn execute_token(&self) -> Option<SyntaxToken> {
8531        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
8532    }
8533}
8534
8535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8536pub struct ExistsFn {
8537    pub(crate) syntax: SyntaxNode,
8538}
8539impl ExistsFn {
8540    #[inline]
8541    pub fn select_variant(&self) -> Option<SelectVariant> {
8542        support::child(&self.syntax)
8543    }
8544    #[inline]
8545    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8546        support::token(&self.syntax, SyntaxKind::L_PAREN)
8547    }
8548    #[inline]
8549    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8550        support::token(&self.syntax, SyntaxKind::R_PAREN)
8551    }
8552    #[inline]
8553    pub fn exists_token(&self) -> Option<SyntaxToken> {
8554        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8555    }
8556}
8557
8558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8559pub struct Explain {
8560    pub(crate) syntax: SyntaxNode,
8561}
8562impl Explain {
8563    #[inline]
8564    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
8565        support::child(&self.syntax)
8566    }
8567    #[inline]
8568    pub fn analyse_token(&self) -> Option<SyntaxToken> {
8569        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
8570    }
8571    #[inline]
8572    pub fn analyze_token(&self) -> Option<SyntaxToken> {
8573        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
8574    }
8575    #[inline]
8576    pub fn explain_token(&self) -> Option<SyntaxToken> {
8577        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
8578    }
8579    #[inline]
8580    pub fn verbose_token(&self) -> Option<SyntaxToken> {
8581        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
8582    }
8583}
8584
8585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8586pub struct ExprAsName {
8587    pub(crate) syntax: SyntaxNode,
8588}
8589impl ExprAsName {
8590    #[inline]
8591    pub fn as_name(&self) -> Option<AsName> {
8592        support::child(&self.syntax)
8593    }
8594    #[inline]
8595    pub fn expr(&self) -> Option<Expr> {
8596        support::child(&self.syntax)
8597    }
8598}
8599
8600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8601pub struct ExprAsNameList {
8602    pub(crate) syntax: SyntaxNode,
8603}
8604impl ExprAsNameList {
8605    #[inline]
8606    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
8607        support::children(&self.syntax)
8608    }
8609}
8610
8611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8612pub struct ExprType {
8613    pub(crate) syntax: SyntaxNode,
8614}
8615impl ExprType {
8616    #[inline]
8617    pub fn expr(&self) -> Option<Expr> {
8618        support::child(&self.syntax)
8619    }
8620}
8621
8622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8623pub struct ExtractFn {
8624    pub(crate) syntax: SyntaxNode,
8625}
8626impl ExtractFn {
8627    #[inline]
8628    pub fn expr(&self) -> Option<Expr> {
8629        support::child(&self.syntax)
8630    }
8631    #[inline]
8632    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::L_PAREN)
8634    }
8635    #[inline]
8636    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::R_PAREN)
8638    }
8639    #[inline]
8640    pub fn day_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::DAY_KW)
8642    }
8643    #[inline]
8644    pub fn extract_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
8646    }
8647    #[inline]
8648    pub fn from_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::FROM_KW)
8650    }
8651    #[inline]
8652    pub fn hour_token(&self) -> Option<SyntaxToken> {
8653        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8654    }
8655    #[inline]
8656    pub fn ident_token(&self) -> Option<SyntaxToken> {
8657        support::token(&self.syntax, SyntaxKind::IDENT)
8658    }
8659    #[inline]
8660    pub fn minute_token(&self) -> Option<SyntaxToken> {
8661        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8662    }
8663    #[inline]
8664    pub fn month_token(&self) -> Option<SyntaxToken> {
8665        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8666    }
8667    #[inline]
8668    pub fn second_token(&self) -> Option<SyntaxToken> {
8669        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8670    }
8671    #[inline]
8672    pub fn string_token(&self) -> Option<SyntaxToken> {
8673        support::token(&self.syntax, SyntaxKind::STRING_KW)
8674    }
8675    #[inline]
8676    pub fn year_token(&self) -> Option<SyntaxToken> {
8677        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8678    }
8679}
8680
8681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8682pub struct FatArrow {
8683    pub(crate) syntax: SyntaxNode,
8684}
8685impl FatArrow {
8686    #[inline]
8687    pub fn eq_token(&self) -> Option<SyntaxToken> {
8688        support::token(&self.syntax, SyntaxKind::EQ)
8689    }
8690    #[inline]
8691    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8692        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8693    }
8694}
8695
8696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8697pub struct FdwOption {
8698    pub(crate) syntax: SyntaxNode,
8699}
8700impl FdwOption {
8701    #[inline]
8702    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8703        support::child(&self.syntax)
8704    }
8705    #[inline]
8706    pub fn path(&self) -> Option<Path> {
8707        support::child(&self.syntax)
8708    }
8709    #[inline]
8710    pub fn connection_token(&self) -> Option<SyntaxToken> {
8711        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
8712    }
8713    #[inline]
8714    pub fn handler_token(&self) -> Option<SyntaxToken> {
8715        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8716    }
8717    #[inline]
8718    pub fn no_token(&self) -> Option<SyntaxToken> {
8719        support::token(&self.syntax, SyntaxKind::NO_KW)
8720    }
8721    #[inline]
8722    pub fn options_token(&self) -> Option<SyntaxToken> {
8723        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
8724    }
8725    #[inline]
8726    pub fn validator_token(&self) -> Option<SyntaxToken> {
8727        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
8728    }
8729}
8730
8731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8732pub struct FdwOptionList {
8733    pub(crate) syntax: SyntaxNode,
8734}
8735impl FdwOptionList {
8736    #[inline]
8737    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
8738        support::children(&self.syntax)
8739    }
8740}
8741
8742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8743pub struct Fetch {
8744    pub(crate) syntax: SyntaxNode,
8745}
8746impl Fetch {
8747    #[inline]
8748    pub fn name_ref(&self) -> Option<NameRef> {
8749        support::child(&self.syntax)
8750    }
8751    #[inline]
8752    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8753        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8754    }
8755    #[inline]
8756    pub fn from_token(&self) -> Option<SyntaxToken> {
8757        support::token(&self.syntax, SyntaxKind::FROM_KW)
8758    }
8759    #[inline]
8760    pub fn in_token(&self) -> Option<SyntaxToken> {
8761        support::token(&self.syntax, SyntaxKind::IN_KW)
8762    }
8763}
8764
8765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8766pub struct FetchClause {
8767    pub(crate) syntax: SyntaxNode,
8768}
8769impl FetchClause {
8770    #[inline]
8771    pub fn expr(&self) -> Option<Expr> {
8772        support::child(&self.syntax)
8773    }
8774    #[inline]
8775    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8777    }
8778    #[inline]
8779    pub fn first_token(&self) -> Option<SyntaxToken> {
8780        support::token(&self.syntax, SyntaxKind::FIRST_KW)
8781    }
8782    #[inline]
8783    pub fn next_token(&self) -> Option<SyntaxToken> {
8784        support::token(&self.syntax, SyntaxKind::NEXT_KW)
8785    }
8786    #[inline]
8787    pub fn only_token(&self) -> Option<SyntaxToken> {
8788        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8789    }
8790    #[inline]
8791    pub fn row_token(&self) -> Option<SyntaxToken> {
8792        support::token(&self.syntax, SyntaxKind::ROW_KW)
8793    }
8794    #[inline]
8795    pub fn rows_token(&self) -> Option<SyntaxToken> {
8796        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8797    }
8798    #[inline]
8799    pub fn ties_token(&self) -> Option<SyntaxToken> {
8800        support::token(&self.syntax, SyntaxKind::TIES_KW)
8801    }
8802    #[inline]
8803    pub fn with_token(&self) -> Option<SyntaxToken> {
8804        support::token(&self.syntax, SyntaxKind::WITH_KW)
8805    }
8806}
8807
8808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8809pub struct FieldExpr {
8810    pub(crate) syntax: SyntaxNode,
8811}
8812impl FieldExpr {
8813    #[inline]
8814    pub fn star_token(&self) -> Option<SyntaxToken> {
8815        support::token(&self.syntax, SyntaxKind::STAR)
8816    }
8817    #[inline]
8818    pub fn dot_token(&self) -> Option<SyntaxToken> {
8819        support::token(&self.syntax, SyntaxKind::DOT)
8820    }
8821}
8822
8823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8824pub struct FilterClause {
8825    pub(crate) syntax: SyntaxNode,
8826}
8827impl FilterClause {
8828    #[inline]
8829    pub fn expr(&self) -> Option<Expr> {
8830        support::child(&self.syntax)
8831    }
8832    #[inline]
8833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8834        support::token(&self.syntax, SyntaxKind::L_PAREN)
8835    }
8836    #[inline]
8837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8838        support::token(&self.syntax, SyntaxKind::R_PAREN)
8839    }
8840    #[inline]
8841    pub fn filter_token(&self) -> Option<SyntaxToken> {
8842        support::token(&self.syntax, SyntaxKind::FILTER_KW)
8843    }
8844    #[inline]
8845    pub fn where_token(&self) -> Option<SyntaxToken> {
8846        support::token(&self.syntax, SyntaxKind::WHERE_KW)
8847    }
8848}
8849
8850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8851pub struct ForProvider {
8852    pub(crate) syntax: SyntaxNode,
8853}
8854impl ForProvider {
8855    #[inline]
8856    pub fn literal(&self) -> Option<Literal> {
8857        support::child(&self.syntax)
8858    }
8859    #[inline]
8860    pub fn name_ref(&self) -> Option<NameRef> {
8861        support::child(&self.syntax)
8862    }
8863    #[inline]
8864    pub fn for_token(&self) -> Option<SyntaxToken> {
8865        support::token(&self.syntax, SyntaxKind::FOR_KW)
8866    }
8867}
8868
8869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8870pub struct ForceRls {
8871    pub(crate) syntax: SyntaxNode,
8872}
8873impl ForceRls {
8874    #[inline]
8875    pub fn force_token(&self) -> Option<SyntaxToken> {
8876        support::token(&self.syntax, SyntaxKind::FORCE_KW)
8877    }
8878    #[inline]
8879    pub fn level_token(&self) -> Option<SyntaxToken> {
8880        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8881    }
8882    #[inline]
8883    pub fn row_token(&self) -> Option<SyntaxToken> {
8884        support::token(&self.syntax, SyntaxKind::ROW_KW)
8885    }
8886    #[inline]
8887    pub fn security_token(&self) -> Option<SyntaxToken> {
8888        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8889    }
8890}
8891
8892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8893pub struct ForeignKeyConstraint {
8894    pub(crate) syntax: SyntaxNode,
8895}
8896impl ForeignKeyConstraint {
8897    #[inline]
8898    pub fn constraint_name(&self) -> Option<ConstraintName> {
8899        support::child(&self.syntax)
8900    }
8901    #[inline]
8902    pub fn match_type(&self) -> Option<MatchType> {
8903        support::child(&self.syntax)
8904    }
8905    #[inline]
8906    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8907        support::child(&self.syntax)
8908    }
8909    #[inline]
8910    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8911        support::child(&self.syntax)
8912    }
8913    #[inline]
8914    pub fn path(&self) -> Option<Path> {
8915        support::child(&self.syntax)
8916    }
8917    #[inline]
8918    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8919        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8920    }
8921    #[inline]
8922    pub fn key_token(&self) -> Option<SyntaxToken> {
8923        support::token(&self.syntax, SyntaxKind::KEY_KW)
8924    }
8925    #[inline]
8926    pub fn references_token(&self) -> Option<SyntaxToken> {
8927        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8928    }
8929}
8930
8931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8932pub struct FrameClause {
8933    pub(crate) syntax: SyntaxNode,
8934}
8935impl FrameClause {
8936    #[inline]
8937    pub fn groups_token(&self) -> Option<SyntaxToken> {
8938        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8939    }
8940    #[inline]
8941    pub fn range_token(&self) -> Option<SyntaxToken> {
8942        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8943    }
8944    #[inline]
8945    pub fn rows_token(&self) -> Option<SyntaxToken> {
8946        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8947    }
8948}
8949
8950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8951pub struct FromClause {
8952    pub(crate) syntax: SyntaxNode,
8953}
8954impl FromClause {
8955    #[inline]
8956    pub fn from_items(&self) -> AstChildren<FromItem> {
8957        support::children(&self.syntax)
8958    }
8959    #[inline]
8960    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8961        support::children(&self.syntax)
8962    }
8963    #[inline]
8964    pub fn from_token(&self) -> Option<SyntaxToken> {
8965        support::token(&self.syntax, SyntaxKind::FROM_KW)
8966    }
8967}
8968
8969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8970pub struct FromItem {
8971    pub(crate) syntax: SyntaxNode,
8972}
8973impl FromItem {
8974    #[inline]
8975    pub fn alias(&self) -> Option<Alias> {
8976        support::child(&self.syntax)
8977    }
8978    #[inline]
8979    pub fn call_expr(&self) -> Option<CallExpr> {
8980        support::child(&self.syntax)
8981    }
8982    #[inline]
8983    pub fn cast_expr(&self) -> Option<CastExpr> {
8984        support::child(&self.syntax)
8985    }
8986    #[inline]
8987    pub fn field_expr(&self) -> Option<FieldExpr> {
8988        support::child(&self.syntax)
8989    }
8990    #[inline]
8991    pub fn json_table(&self) -> Option<JsonTable> {
8992        support::child(&self.syntax)
8993    }
8994    #[inline]
8995    pub fn name_ref(&self) -> Option<NameRef> {
8996        support::child(&self.syntax)
8997    }
8998    #[inline]
8999    pub fn paren_expr(&self) -> Option<ParenExpr> {
9000        support::child(&self.syntax)
9001    }
9002    #[inline]
9003    pub fn paren_select(&self) -> Option<ParenSelect> {
9004        support::child(&self.syntax)
9005    }
9006    #[inline]
9007    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9008        support::child(&self.syntax)
9009    }
9010    #[inline]
9011    pub fn xml_table(&self) -> Option<XmlTable> {
9012        support::child(&self.syntax)
9013    }
9014    #[inline]
9015    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9016        support::token(&self.syntax, SyntaxKind::L_PAREN)
9017    }
9018    #[inline]
9019    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9020        support::token(&self.syntax, SyntaxKind::R_PAREN)
9021    }
9022    #[inline]
9023    pub fn star_token(&self) -> Option<SyntaxToken> {
9024        support::token(&self.syntax, SyntaxKind::STAR)
9025    }
9026    #[inline]
9027    pub fn from_token(&self) -> Option<SyntaxToken> {
9028        support::token(&self.syntax, SyntaxKind::FROM_KW)
9029    }
9030    #[inline]
9031    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9032        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9033    }
9034    #[inline]
9035    pub fn only_token(&self) -> Option<SyntaxToken> {
9036        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9037    }
9038    #[inline]
9039    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9040        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9041    }
9042    #[inline]
9043    pub fn rows_token(&self) -> Option<SyntaxToken> {
9044        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9045    }
9046    #[inline]
9047    pub fn with_token(&self) -> Option<SyntaxToken> {
9048        support::token(&self.syntax, SyntaxKind::WITH_KW)
9049    }
9050}
9051
9052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9053pub struct FromTable {
9054    pub(crate) syntax: SyntaxNode,
9055}
9056impl FromTable {
9057    #[inline]
9058    pub fn path(&self) -> Option<Path> {
9059        support::child(&self.syntax)
9060    }
9061    #[inline]
9062    pub fn from_token(&self) -> Option<SyntaxToken> {
9063        support::token(&self.syntax, SyntaxKind::FROM_KW)
9064    }
9065}
9066
9067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9068pub struct FuncOptionList {
9069    pub(crate) syntax: SyntaxNode,
9070}
9071impl FuncOptionList {
9072    #[inline]
9073    pub fn options(&self) -> AstChildren<FuncOption> {
9074        support::children(&self.syntax)
9075    }
9076}
9077
9078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9079pub struct FunctionSig {
9080    pub(crate) syntax: SyntaxNode,
9081}
9082impl FunctionSig {
9083    #[inline]
9084    pub fn param_list(&self) -> Option<ParamList> {
9085        support::child(&self.syntax)
9086    }
9087    #[inline]
9088    pub fn path(&self) -> Option<Path> {
9089        support::child(&self.syntax)
9090    }
9091}
9092
9093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9094pub struct FunctionSigList {
9095    pub(crate) syntax: SyntaxNode,
9096}
9097impl FunctionSigList {
9098    #[inline]
9099    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9100        support::children(&self.syntax)
9101    }
9102}
9103
9104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9105pub struct GeneratedConstraint {
9106    pub(crate) syntax: SyntaxNode,
9107}
9108impl GeneratedConstraint {
9109    #[inline]
9110    pub fn expr(&self) -> Option<Expr> {
9111        support::child(&self.syntax)
9112    }
9113    #[inline]
9114    pub fn name_ref(&self) -> Option<NameRef> {
9115        support::child(&self.syntax)
9116    }
9117    #[inline]
9118    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9119        support::child(&self.syntax)
9120    }
9121    #[inline]
9122    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9123        support::token(&self.syntax, SyntaxKind::L_PAREN)
9124    }
9125    #[inline]
9126    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9127        support::token(&self.syntax, SyntaxKind::R_PAREN)
9128    }
9129    #[inline]
9130    pub fn always_token(&self) -> Option<SyntaxToken> {
9131        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9132    }
9133    #[inline]
9134    pub fn as_token(&self) -> Option<SyntaxToken> {
9135        support::token(&self.syntax, SyntaxKind::AS_KW)
9136    }
9137    #[inline]
9138    pub fn by_token(&self) -> Option<SyntaxToken> {
9139        support::token(&self.syntax, SyntaxKind::BY_KW)
9140    }
9141    #[inline]
9142    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9143        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9144    }
9145    #[inline]
9146    pub fn default_token(&self) -> Option<SyntaxToken> {
9147        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9148    }
9149    #[inline]
9150    pub fn generated_token(&self) -> Option<SyntaxToken> {
9151        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9152    }
9153    #[inline]
9154    pub fn identity_token(&self) -> Option<SyntaxToken> {
9155        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9156    }
9157    #[inline]
9158    pub fn stored_token(&self) -> Option<SyntaxToken> {
9159        support::token(&self.syntax, SyntaxKind::STORED_KW)
9160    }
9161}
9162
9163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9164pub struct Grant {
9165    pub(crate) syntax: SyntaxNode,
9166}
9167impl Grant {
9168    #[inline]
9169    pub fn name_refs(&self) -> AstChildren<NameRef> {
9170        support::children(&self.syntax)
9171    }
9172    #[inline]
9173    pub fn paths(&self) -> AstChildren<Path> {
9174        support::children(&self.syntax)
9175    }
9176    #[inline]
9177    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9178        support::child(&self.syntax)
9179    }
9180    #[inline]
9181    pub fn role_ref(&self) -> Option<RoleRef> {
9182        support::child(&self.syntax)
9183    }
9184    #[inline]
9185    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9186        support::child(&self.syntax)
9187    }
9188    #[inline]
9189    pub fn all_token(&self) -> Option<SyntaxToken> {
9190        support::token(&self.syntax, SyntaxKind::ALL_KW)
9191    }
9192    #[inline]
9193    pub fn by_token(&self) -> Option<SyntaxToken> {
9194        support::token(&self.syntax, SyntaxKind::BY_KW)
9195    }
9196    #[inline]
9197    pub fn grant_token(&self) -> Option<SyntaxToken> {
9198        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9199    }
9200    #[inline]
9201    pub fn granted_token(&self) -> Option<SyntaxToken> {
9202        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9203    }
9204    #[inline]
9205    pub fn in_token(&self) -> Option<SyntaxToken> {
9206        support::token(&self.syntax, SyntaxKind::IN_KW)
9207    }
9208    #[inline]
9209    pub fn on_token(&self) -> Option<SyntaxToken> {
9210        support::token(&self.syntax, SyntaxKind::ON_KW)
9211    }
9212    #[inline]
9213    pub fn option_token(&self) -> Option<SyntaxToken> {
9214        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9215    }
9216    #[inline]
9217    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9218        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9219    }
9220    #[inline]
9221    pub fn schema_token(&self) -> Option<SyntaxToken> {
9222        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9223    }
9224    #[inline]
9225    pub fn table_token(&self) -> Option<SyntaxToken> {
9226        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9227    }
9228    #[inline]
9229    pub fn tables_token(&self) -> Option<SyntaxToken> {
9230        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9231    }
9232    #[inline]
9233    pub fn to_token(&self) -> Option<SyntaxToken> {
9234        support::token(&self.syntax, SyntaxKind::TO_KW)
9235    }
9236    #[inline]
9237    pub fn with_token(&self) -> Option<SyntaxToken> {
9238        support::token(&self.syntax, SyntaxKind::WITH_KW)
9239    }
9240}
9241
9242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9243pub struct GrantDefaultPrivileges {
9244    pub(crate) syntax: SyntaxNode,
9245}
9246impl GrantDefaultPrivileges {
9247    #[inline]
9248    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9249        support::child(&self.syntax)
9250    }
9251    #[inline]
9252    pub fn privileges(&self) -> Option<Privileges> {
9253        support::child(&self.syntax)
9254    }
9255    #[inline]
9256    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9257        support::child(&self.syntax)
9258    }
9259    #[inline]
9260    pub fn grant_token(&self) -> Option<SyntaxToken> {
9261        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9262    }
9263    #[inline]
9264    pub fn on_token(&self) -> Option<SyntaxToken> {
9265        support::token(&self.syntax, SyntaxKind::ON_KW)
9266    }
9267    #[inline]
9268    pub fn option_token(&self) -> Option<SyntaxToken> {
9269        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9270    }
9271    #[inline]
9272    pub fn to_token(&self) -> Option<SyntaxToken> {
9273        support::token(&self.syntax, SyntaxKind::TO_KW)
9274    }
9275    #[inline]
9276    pub fn with_token(&self) -> Option<SyntaxToken> {
9277        support::token(&self.syntax, SyntaxKind::WITH_KW)
9278    }
9279}
9280
9281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9282pub struct GraphPatternQualifier {
9283    pub(crate) syntax: SyntaxNode,
9284}
9285impl GraphPatternQualifier {
9286    #[inline]
9287    pub fn literal(&self) -> Option<Literal> {
9288        support::child(&self.syntax)
9289    }
9290    #[inline]
9291    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::L_CURLY)
9293    }
9294    #[inline]
9295    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9296        support::token(&self.syntax, SyntaxKind::R_CURLY)
9297    }
9298    #[inline]
9299    pub fn comma_token(&self) -> Option<SyntaxToken> {
9300        support::token(&self.syntax, SyntaxKind::COMMA)
9301    }
9302}
9303
9304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9305pub struct GraphTableFn {
9306    pub(crate) syntax: SyntaxNode,
9307}
9308impl GraphTableFn {
9309    #[inline]
9310    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9311        support::child(&self.syntax)
9312    }
9313    #[inline]
9314    pub fn path(&self) -> Option<Path> {
9315        support::child(&self.syntax)
9316    }
9317    #[inline]
9318    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9319        support::child(&self.syntax)
9320    }
9321    #[inline]
9322    pub fn where_clause(&self) -> Option<WhereClause> {
9323        support::child(&self.syntax)
9324    }
9325    #[inline]
9326    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9327        support::token(&self.syntax, SyntaxKind::L_PAREN)
9328    }
9329    #[inline]
9330    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9331        support::token(&self.syntax, SyntaxKind::R_PAREN)
9332    }
9333    #[inline]
9334    pub fn columns_token(&self) -> Option<SyntaxToken> {
9335        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9336    }
9337    #[inline]
9338    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9339        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9340    }
9341    #[inline]
9342    pub fn match_token(&self) -> Option<SyntaxToken> {
9343        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9344    }
9345}
9346
9347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9348pub struct GroupByClause {
9349    pub(crate) syntax: SyntaxNode,
9350}
9351impl GroupByClause {
9352    #[inline]
9353    pub fn group_by_list(&self) -> Option<GroupByList> {
9354        support::child(&self.syntax)
9355    }
9356    #[inline]
9357    pub fn all_token(&self) -> Option<SyntaxToken> {
9358        support::token(&self.syntax, SyntaxKind::ALL_KW)
9359    }
9360    #[inline]
9361    pub fn by_token(&self) -> Option<SyntaxToken> {
9362        support::token(&self.syntax, SyntaxKind::BY_KW)
9363    }
9364    #[inline]
9365    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9366        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9367    }
9368    #[inline]
9369    pub fn group_token(&self) -> Option<SyntaxToken> {
9370        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9371    }
9372}
9373
9374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9375pub struct GroupByList {
9376    pub(crate) syntax: SyntaxNode,
9377}
9378impl GroupByList {
9379    #[inline]
9380    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9381        support::children(&self.syntax)
9382    }
9383}
9384
9385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9386pub struct GroupingCube {
9387    pub(crate) syntax: SyntaxNode,
9388}
9389impl GroupingCube {
9390    #[inline]
9391    pub fn expr(&self) -> Option<Expr> {
9392        support::child(&self.syntax)
9393    }
9394    #[inline]
9395    pub fn cube_token(&self) -> Option<SyntaxToken> {
9396        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9397    }
9398}
9399
9400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9401pub struct GroupingExpr {
9402    pub(crate) syntax: SyntaxNode,
9403}
9404impl GroupingExpr {
9405    #[inline]
9406    pub fn expr(&self) -> Option<Expr> {
9407        support::child(&self.syntax)
9408    }
9409}
9410
9411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9412pub struct GroupingRollup {
9413    pub(crate) syntax: SyntaxNode,
9414}
9415impl GroupingRollup {
9416    #[inline]
9417    pub fn expr(&self) -> Option<Expr> {
9418        support::child(&self.syntax)
9419    }
9420    #[inline]
9421    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9422        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9423    }
9424}
9425
9426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9427pub struct GroupingSets {
9428    pub(crate) syntax: SyntaxNode,
9429}
9430impl GroupingSets {
9431    #[inline]
9432    pub fn expr(&self) -> Option<Expr> {
9433        support::child(&self.syntax)
9434    }
9435    #[inline]
9436    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9437        support::token(&self.syntax, SyntaxKind::L_PAREN)
9438    }
9439    #[inline]
9440    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9441        support::token(&self.syntax, SyntaxKind::R_PAREN)
9442    }
9443    #[inline]
9444    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9445        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9446    }
9447    #[inline]
9448    pub fn sets_token(&self) -> Option<SyntaxToken> {
9449        support::token(&self.syntax, SyntaxKind::SETS_KW)
9450    }
9451}
9452
9453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9454pub struct Gteq {
9455    pub(crate) syntax: SyntaxNode,
9456}
9457impl Gteq {
9458    #[inline]
9459    pub fn eq_token(&self) -> Option<SyntaxToken> {
9460        support::token(&self.syntax, SyntaxKind::EQ)
9461    }
9462    #[inline]
9463    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9464        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9465    }
9466}
9467
9468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9469pub struct HandlerClause {
9470    pub(crate) syntax: SyntaxNode,
9471}
9472impl HandlerClause {
9473    #[inline]
9474    pub fn path(&self) -> Option<Path> {
9475        support::child(&self.syntax)
9476    }
9477    #[inline]
9478    pub fn handler_token(&self) -> Option<SyntaxToken> {
9479        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9480    }
9481}
9482
9483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9484pub struct HavingClause {
9485    pub(crate) syntax: SyntaxNode,
9486}
9487impl HavingClause {
9488    #[inline]
9489    pub fn expr(&self) -> Option<Expr> {
9490        support::child(&self.syntax)
9491    }
9492    #[inline]
9493    pub fn having_token(&self) -> Option<SyntaxToken> {
9494        support::token(&self.syntax, SyntaxKind::HAVING_KW)
9495    }
9496}
9497
9498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9499pub struct IfExists {
9500    pub(crate) syntax: SyntaxNode,
9501}
9502impl IfExists {
9503    #[inline]
9504    pub fn exists_token(&self) -> Option<SyntaxToken> {
9505        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9506    }
9507    #[inline]
9508    pub fn if_token(&self) -> Option<SyntaxToken> {
9509        support::token(&self.syntax, SyntaxKind::IF_KW)
9510    }
9511}
9512
9513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9514pub struct IfNotExists {
9515    pub(crate) syntax: SyntaxNode,
9516}
9517impl IfNotExists {
9518    #[inline]
9519    pub fn exists_token(&self) -> Option<SyntaxToken> {
9520        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9521    }
9522    #[inline]
9523    pub fn if_token(&self) -> Option<SyntaxToken> {
9524        support::token(&self.syntax, SyntaxKind::IF_KW)
9525    }
9526    #[inline]
9527    pub fn not_token(&self) -> Option<SyntaxToken> {
9528        support::token(&self.syntax, SyntaxKind::NOT_KW)
9529    }
9530}
9531
9532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9533pub struct ImportForeignSchema {
9534    pub(crate) syntax: SyntaxNode,
9535}
9536impl ImportForeignSchema {
9537    #[inline]
9538    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9539        support::child(&self.syntax)
9540    }
9541    #[inline]
9542    pub fn except_tables(&self) -> Option<ExceptTables> {
9543        support::child(&self.syntax)
9544    }
9545    #[inline]
9546    pub fn into_schema(&self) -> Option<IntoSchema> {
9547        support::child(&self.syntax)
9548    }
9549    #[inline]
9550    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
9551        support::child(&self.syntax)
9552    }
9553    #[inline]
9554    pub fn name_ref(&self) -> Option<NameRef> {
9555        support::child(&self.syntax)
9556    }
9557    #[inline]
9558    pub fn server_name(&self) -> Option<ServerName> {
9559        support::child(&self.syntax)
9560    }
9561    #[inline]
9562    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9563        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9564    }
9565    #[inline]
9566    pub fn from_token(&self) -> Option<SyntaxToken> {
9567        support::token(&self.syntax, SyntaxKind::FROM_KW)
9568    }
9569    #[inline]
9570    pub fn import_token(&self) -> Option<SyntaxToken> {
9571        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
9572    }
9573    #[inline]
9574    pub fn schema_token(&self) -> Option<SyntaxToken> {
9575        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9576    }
9577}
9578
9579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9580pub struct IndexExpr {
9581    pub(crate) syntax: SyntaxNode,
9582}
9583impl IndexExpr {
9584    #[inline]
9585    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9586        support::token(&self.syntax, SyntaxKind::L_BRACK)
9587    }
9588    #[inline]
9589    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::R_BRACK)
9591    }
9592}
9593
9594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9595pub struct Inherit {
9596    pub(crate) syntax: SyntaxNode,
9597}
9598impl Inherit {
9599    #[inline]
9600    pub fn path(&self) -> Option<Path> {
9601        support::child(&self.syntax)
9602    }
9603    #[inline]
9604    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9606    }
9607}
9608
9609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9610pub struct InheritTable {
9611    pub(crate) syntax: SyntaxNode,
9612}
9613impl InheritTable {
9614    #[inline]
9615    pub fn path(&self) -> Option<Path> {
9616        support::child(&self.syntax)
9617    }
9618    #[inline]
9619    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9620        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9621    }
9622}
9623
9624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9625pub struct Inherits {
9626    pub(crate) syntax: SyntaxNode,
9627}
9628impl Inherits {
9629    #[inline]
9630    pub fn paths(&self) -> AstChildren<Path> {
9631        support::children(&self.syntax)
9632    }
9633    #[inline]
9634    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9635        support::token(&self.syntax, SyntaxKind::L_PAREN)
9636    }
9637    #[inline]
9638    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9639        support::token(&self.syntax, SyntaxKind::R_PAREN)
9640    }
9641    #[inline]
9642    pub fn inherits_token(&self) -> Option<SyntaxToken> {
9643        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
9644    }
9645}
9646
9647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9648pub struct InitiallyDeferredConstraintOption {
9649    pub(crate) syntax: SyntaxNode,
9650}
9651impl InitiallyDeferredConstraintOption {
9652    #[inline]
9653    pub fn deferred_token(&self) -> Option<SyntaxToken> {
9654        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
9655    }
9656    #[inline]
9657    pub fn initially_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9659    }
9660}
9661
9662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9663pub struct InitiallyImmediateConstraintOption {
9664    pub(crate) syntax: SyntaxNode,
9665}
9666impl InitiallyImmediateConstraintOption {
9667    #[inline]
9668    pub fn immediate_token(&self) -> Option<SyntaxToken> {
9669        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
9670    }
9671    #[inline]
9672    pub fn initially_token(&self) -> Option<SyntaxToken> {
9673        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9674    }
9675}
9676
9677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9678pub struct Insert {
9679    pub(crate) syntax: SyntaxNode,
9680}
9681impl Insert {
9682    #[inline]
9683    pub fn alias(&self) -> Option<Alias> {
9684        support::child(&self.syntax)
9685    }
9686    #[inline]
9687    pub fn column_list(&self) -> Option<ColumnList> {
9688        support::child(&self.syntax)
9689    }
9690    #[inline]
9691    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
9692        support::child(&self.syntax)
9693    }
9694    #[inline]
9695    pub fn path(&self) -> Option<Path> {
9696        support::child(&self.syntax)
9697    }
9698    #[inline]
9699    pub fn returning_clause(&self) -> Option<ReturningClause> {
9700        support::child(&self.syntax)
9701    }
9702    #[inline]
9703    pub fn stmt(&self) -> Option<Stmt> {
9704        support::child(&self.syntax)
9705    }
9706    #[inline]
9707    pub fn values(&self) -> Option<Values> {
9708        support::child(&self.syntax)
9709    }
9710    #[inline]
9711    pub fn with_clause(&self) -> Option<WithClause> {
9712        support::child(&self.syntax)
9713    }
9714    #[inline]
9715    pub fn default_token(&self) -> Option<SyntaxToken> {
9716        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9717    }
9718    #[inline]
9719    pub fn insert_token(&self) -> Option<SyntaxToken> {
9720        support::token(&self.syntax, SyntaxKind::INSERT_KW)
9721    }
9722    #[inline]
9723    pub fn into_token(&self) -> Option<SyntaxToken> {
9724        support::token(&self.syntax, SyntaxKind::INTO_KW)
9725    }
9726    #[inline]
9727    pub fn overriding_token(&self) -> Option<SyntaxToken> {
9728        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
9729    }
9730    #[inline]
9731    pub fn system_token(&self) -> Option<SyntaxToken> {
9732        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
9733    }
9734    #[inline]
9735    pub fn user_token(&self) -> Option<SyntaxToken> {
9736        support::token(&self.syntax, SyntaxKind::USER_KW)
9737    }
9738    #[inline]
9739    pub fn value_token(&self) -> Option<SyntaxToken> {
9740        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9741    }
9742    #[inline]
9743    pub fn values_token(&self) -> Option<SyntaxToken> {
9744        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9745    }
9746}
9747
9748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9749pub struct IntervalType {
9750    pub(crate) syntax: SyntaxNode,
9751}
9752impl IntervalType {
9753    #[inline]
9754    pub fn literal(&self) -> Option<Literal> {
9755        support::child(&self.syntax)
9756    }
9757    #[inline]
9758    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9759        support::token(&self.syntax, SyntaxKind::L_PAREN)
9760    }
9761    #[inline]
9762    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9763        support::token(&self.syntax, SyntaxKind::R_PAREN)
9764    }
9765    #[inline]
9766    pub fn day_token(&self) -> Option<SyntaxToken> {
9767        support::token(&self.syntax, SyntaxKind::DAY_KW)
9768    }
9769    #[inline]
9770    pub fn hour_token(&self) -> Option<SyntaxToken> {
9771        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9772    }
9773    #[inline]
9774    pub fn interval_token(&self) -> Option<SyntaxToken> {
9775        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
9776    }
9777    #[inline]
9778    pub fn minute_token(&self) -> Option<SyntaxToken> {
9779        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9780    }
9781    #[inline]
9782    pub fn month_token(&self) -> Option<SyntaxToken> {
9783        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9784    }
9785    #[inline]
9786    pub fn second_token(&self) -> Option<SyntaxToken> {
9787        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9788    }
9789    #[inline]
9790    pub fn to_token(&self) -> Option<SyntaxToken> {
9791        support::token(&self.syntax, SyntaxKind::TO_KW)
9792    }
9793    #[inline]
9794    pub fn year_token(&self) -> Option<SyntaxToken> {
9795        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9796    }
9797}
9798
9799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9800pub struct IntoClause {
9801    pub(crate) syntax: SyntaxNode,
9802}
9803impl IntoClause {
9804    #[inline]
9805    pub fn path(&self) -> Option<Path> {
9806        support::child(&self.syntax)
9807    }
9808    #[inline]
9809    pub fn into_token(&self) -> Option<SyntaxToken> {
9810        support::token(&self.syntax, SyntaxKind::INTO_KW)
9811    }
9812}
9813
9814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9815pub struct IntoSchema {
9816    pub(crate) syntax: SyntaxNode,
9817}
9818impl IntoSchema {
9819    #[inline]
9820    pub fn name_ref(&self) -> Option<NameRef> {
9821        support::child(&self.syntax)
9822    }
9823    #[inline]
9824    pub fn into_token(&self) -> Option<SyntaxToken> {
9825        support::token(&self.syntax, SyntaxKind::INTO_KW)
9826    }
9827}
9828
9829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9830pub struct IsDistinctFrom {
9831    pub(crate) syntax: SyntaxNode,
9832}
9833impl IsDistinctFrom {
9834    #[inline]
9835    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9836        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9837    }
9838    #[inline]
9839    pub fn from_token(&self) -> Option<SyntaxToken> {
9840        support::token(&self.syntax, SyntaxKind::FROM_KW)
9841    }
9842    #[inline]
9843    pub fn is_token(&self) -> Option<SyntaxToken> {
9844        support::token(&self.syntax, SyntaxKind::IS_KW)
9845    }
9846}
9847
9848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9849pub struct IsJson {
9850    pub(crate) syntax: SyntaxNode,
9851}
9852impl IsJson {
9853    #[inline]
9854    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9855        support::child(&self.syntax)
9856    }
9857    #[inline]
9858    pub fn is_token(&self) -> Option<SyntaxToken> {
9859        support::token(&self.syntax, SyntaxKind::IS_KW)
9860    }
9861    #[inline]
9862    pub fn json_token(&self) -> Option<SyntaxToken> {
9863        support::token(&self.syntax, SyntaxKind::JSON_KW)
9864    }
9865}
9866
9867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9868pub struct IsJsonArray {
9869    pub(crate) syntax: SyntaxNode,
9870}
9871impl IsJsonArray {
9872    #[inline]
9873    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9874        support::child(&self.syntax)
9875    }
9876    #[inline]
9877    pub fn array_token(&self) -> Option<SyntaxToken> {
9878        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9879    }
9880    #[inline]
9881    pub fn is_token(&self) -> Option<SyntaxToken> {
9882        support::token(&self.syntax, SyntaxKind::IS_KW)
9883    }
9884    #[inline]
9885    pub fn json_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::JSON_KW)
9887    }
9888}
9889
9890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9891pub struct IsJsonObject {
9892    pub(crate) syntax: SyntaxNode,
9893}
9894impl IsJsonObject {
9895    #[inline]
9896    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9897        support::child(&self.syntax)
9898    }
9899    #[inline]
9900    pub fn is_token(&self) -> Option<SyntaxToken> {
9901        support::token(&self.syntax, SyntaxKind::IS_KW)
9902    }
9903    #[inline]
9904    pub fn json_token(&self) -> Option<SyntaxToken> {
9905        support::token(&self.syntax, SyntaxKind::JSON_KW)
9906    }
9907    #[inline]
9908    pub fn object_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9910    }
9911}
9912
9913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9914pub struct IsJsonScalar {
9915    pub(crate) syntax: SyntaxNode,
9916}
9917impl IsJsonScalar {
9918    #[inline]
9919    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9920        support::child(&self.syntax)
9921    }
9922    #[inline]
9923    pub fn is_token(&self) -> Option<SyntaxToken> {
9924        support::token(&self.syntax, SyntaxKind::IS_KW)
9925    }
9926    #[inline]
9927    pub fn json_token(&self) -> Option<SyntaxToken> {
9928        support::token(&self.syntax, SyntaxKind::JSON_KW)
9929    }
9930    #[inline]
9931    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9932        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9933    }
9934}
9935
9936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9937pub struct IsJsonValue {
9938    pub(crate) syntax: SyntaxNode,
9939}
9940impl IsJsonValue {
9941    #[inline]
9942    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9943        support::child(&self.syntax)
9944    }
9945    #[inline]
9946    pub fn is_token(&self) -> Option<SyntaxToken> {
9947        support::token(&self.syntax, SyntaxKind::IS_KW)
9948    }
9949    #[inline]
9950    pub fn json_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::JSON_KW)
9952    }
9953    #[inline]
9954    pub fn value_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9956    }
9957}
9958
9959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9960pub struct IsLabelExpression {
9961    pub(crate) syntax: SyntaxNode,
9962}
9963impl IsLabelExpression {
9964    #[inline]
9965    pub fn expr(&self) -> Option<Expr> {
9966        support::child(&self.syntax)
9967    }
9968    #[inline]
9969    pub fn is_token(&self) -> Option<SyntaxToken> {
9970        support::token(&self.syntax, SyntaxKind::IS_KW)
9971    }
9972}
9973
9974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9975pub struct IsNormalized {
9976    pub(crate) syntax: SyntaxNode,
9977}
9978impl IsNormalized {
9979    #[inline]
9980    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
9981        support::child(&self.syntax)
9982    }
9983    #[inline]
9984    pub fn is_token(&self) -> Option<SyntaxToken> {
9985        support::token(&self.syntax, SyntaxKind::IS_KW)
9986    }
9987    #[inline]
9988    pub fn normalized_token(&self) -> Option<SyntaxToken> {
9989        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
9990    }
9991}
9992
9993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9994pub struct IsNot {
9995    pub(crate) syntax: SyntaxNode,
9996}
9997impl IsNot {
9998    #[inline]
9999    pub fn is_token(&self) -> Option<SyntaxToken> {
10000        support::token(&self.syntax, SyntaxKind::IS_KW)
10001    }
10002    #[inline]
10003    pub fn not_token(&self) -> Option<SyntaxToken> {
10004        support::token(&self.syntax, SyntaxKind::NOT_KW)
10005    }
10006}
10007
10008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10009pub struct IsNotDistinctFrom {
10010    pub(crate) syntax: SyntaxNode,
10011}
10012impl IsNotDistinctFrom {
10013    #[inline]
10014    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10015        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10016    }
10017    #[inline]
10018    pub fn from_token(&self) -> Option<SyntaxToken> {
10019        support::token(&self.syntax, SyntaxKind::FROM_KW)
10020    }
10021    #[inline]
10022    pub fn is_token(&self) -> Option<SyntaxToken> {
10023        support::token(&self.syntax, SyntaxKind::IS_KW)
10024    }
10025    #[inline]
10026    pub fn not_token(&self) -> Option<SyntaxToken> {
10027        support::token(&self.syntax, SyntaxKind::NOT_KW)
10028    }
10029}
10030
10031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10032pub struct IsNotJson {
10033    pub(crate) syntax: SyntaxNode,
10034}
10035impl IsNotJson {
10036    #[inline]
10037    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10038        support::child(&self.syntax)
10039    }
10040    #[inline]
10041    pub fn is_token(&self) -> Option<SyntaxToken> {
10042        support::token(&self.syntax, SyntaxKind::IS_KW)
10043    }
10044    #[inline]
10045    pub fn json_token(&self) -> Option<SyntaxToken> {
10046        support::token(&self.syntax, SyntaxKind::JSON_KW)
10047    }
10048    #[inline]
10049    pub fn not_token(&self) -> Option<SyntaxToken> {
10050        support::token(&self.syntax, SyntaxKind::NOT_KW)
10051    }
10052}
10053
10054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10055pub struct IsNotJsonArray {
10056    pub(crate) syntax: SyntaxNode,
10057}
10058impl IsNotJsonArray {
10059    #[inline]
10060    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10061        support::child(&self.syntax)
10062    }
10063    #[inline]
10064    pub fn array_token(&self) -> Option<SyntaxToken> {
10065        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10066    }
10067    #[inline]
10068    pub fn is_token(&self) -> Option<SyntaxToken> {
10069        support::token(&self.syntax, SyntaxKind::IS_KW)
10070    }
10071    #[inline]
10072    pub fn json_token(&self) -> Option<SyntaxToken> {
10073        support::token(&self.syntax, SyntaxKind::JSON_KW)
10074    }
10075    #[inline]
10076    pub fn not_token(&self) -> Option<SyntaxToken> {
10077        support::token(&self.syntax, SyntaxKind::NOT_KW)
10078    }
10079}
10080
10081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10082pub struct IsNotJsonObject {
10083    pub(crate) syntax: SyntaxNode,
10084}
10085impl IsNotJsonObject {
10086    #[inline]
10087    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10088        support::child(&self.syntax)
10089    }
10090    #[inline]
10091    pub fn is_token(&self) -> Option<SyntaxToken> {
10092        support::token(&self.syntax, SyntaxKind::IS_KW)
10093    }
10094    #[inline]
10095    pub fn json_token(&self) -> Option<SyntaxToken> {
10096        support::token(&self.syntax, SyntaxKind::JSON_KW)
10097    }
10098    #[inline]
10099    pub fn not_token(&self) -> Option<SyntaxToken> {
10100        support::token(&self.syntax, SyntaxKind::NOT_KW)
10101    }
10102    #[inline]
10103    pub fn object_token(&self) -> Option<SyntaxToken> {
10104        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10105    }
10106}
10107
10108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10109pub struct IsNotJsonScalar {
10110    pub(crate) syntax: SyntaxNode,
10111}
10112impl IsNotJsonScalar {
10113    #[inline]
10114    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10115        support::child(&self.syntax)
10116    }
10117    #[inline]
10118    pub fn is_token(&self) -> Option<SyntaxToken> {
10119        support::token(&self.syntax, SyntaxKind::IS_KW)
10120    }
10121    #[inline]
10122    pub fn json_token(&self) -> Option<SyntaxToken> {
10123        support::token(&self.syntax, SyntaxKind::JSON_KW)
10124    }
10125    #[inline]
10126    pub fn not_token(&self) -> Option<SyntaxToken> {
10127        support::token(&self.syntax, SyntaxKind::NOT_KW)
10128    }
10129    #[inline]
10130    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10131        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10132    }
10133}
10134
10135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10136pub struct IsNotJsonValue {
10137    pub(crate) syntax: SyntaxNode,
10138}
10139impl IsNotJsonValue {
10140    #[inline]
10141    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10142        support::child(&self.syntax)
10143    }
10144    #[inline]
10145    pub fn is_token(&self) -> Option<SyntaxToken> {
10146        support::token(&self.syntax, SyntaxKind::IS_KW)
10147    }
10148    #[inline]
10149    pub fn json_token(&self) -> Option<SyntaxToken> {
10150        support::token(&self.syntax, SyntaxKind::JSON_KW)
10151    }
10152    #[inline]
10153    pub fn not_token(&self) -> Option<SyntaxToken> {
10154        support::token(&self.syntax, SyntaxKind::NOT_KW)
10155    }
10156    #[inline]
10157    pub fn value_token(&self) -> Option<SyntaxToken> {
10158        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10159    }
10160}
10161
10162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10163pub struct IsNotNormalized {
10164    pub(crate) syntax: SyntaxNode,
10165}
10166impl IsNotNormalized {
10167    #[inline]
10168    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10169        support::child(&self.syntax)
10170    }
10171    #[inline]
10172    pub fn is_token(&self) -> Option<SyntaxToken> {
10173        support::token(&self.syntax, SyntaxKind::IS_KW)
10174    }
10175    #[inline]
10176    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10178    }
10179    #[inline]
10180    pub fn not_token(&self) -> Option<SyntaxToken> {
10181        support::token(&self.syntax, SyntaxKind::NOT_KW)
10182    }
10183}
10184
10185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10186pub struct Join {
10187    pub(crate) syntax: SyntaxNode,
10188}
10189impl Join {
10190    #[inline]
10191    pub fn from_item(&self) -> Option<FromItem> {
10192        support::child(&self.syntax)
10193    }
10194    #[inline]
10195    pub fn join_type(&self) -> Option<JoinType> {
10196        support::child(&self.syntax)
10197    }
10198    #[inline]
10199    pub fn on_clause(&self) -> Option<OnClause> {
10200        support::child(&self.syntax)
10201    }
10202    #[inline]
10203    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10204        support::child(&self.syntax)
10205    }
10206    #[inline]
10207    pub fn natural_token(&self) -> Option<SyntaxToken> {
10208        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10209    }
10210}
10211
10212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10213pub struct JoinCross {
10214    pub(crate) syntax: SyntaxNode,
10215}
10216impl JoinCross {
10217    #[inline]
10218    pub fn cross_token(&self) -> Option<SyntaxToken> {
10219        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10220    }
10221    #[inline]
10222    pub fn join_token(&self) -> Option<SyntaxToken> {
10223        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10224    }
10225}
10226
10227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10228pub struct JoinExpr {
10229    pub(crate) syntax: SyntaxNode,
10230}
10231impl JoinExpr {
10232    #[inline]
10233    pub fn from_item(&self) -> Option<FromItem> {
10234        support::child(&self.syntax)
10235    }
10236    #[inline]
10237    pub fn join(&self) -> Option<Join> {
10238        support::child(&self.syntax)
10239    }
10240    #[inline]
10241    pub fn join_expr(&self) -> Option<JoinExpr> {
10242        support::child(&self.syntax)
10243    }
10244}
10245
10246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10247pub struct JoinFull {
10248    pub(crate) syntax: SyntaxNode,
10249}
10250impl JoinFull {
10251    #[inline]
10252    pub fn full_token(&self) -> Option<SyntaxToken> {
10253        support::token(&self.syntax, SyntaxKind::FULL_KW)
10254    }
10255    #[inline]
10256    pub fn join_token(&self) -> Option<SyntaxToken> {
10257        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10258    }
10259    #[inline]
10260    pub fn outer_token(&self) -> Option<SyntaxToken> {
10261        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10262    }
10263}
10264
10265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10266pub struct JoinInner {
10267    pub(crate) syntax: SyntaxNode,
10268}
10269impl JoinInner {
10270    #[inline]
10271    pub fn inner_token(&self) -> Option<SyntaxToken> {
10272        support::token(&self.syntax, SyntaxKind::INNER_KW)
10273    }
10274    #[inline]
10275    pub fn join_token(&self) -> Option<SyntaxToken> {
10276        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10277    }
10278}
10279
10280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10281pub struct JoinLeft {
10282    pub(crate) syntax: SyntaxNode,
10283}
10284impl JoinLeft {
10285    #[inline]
10286    pub fn join_token(&self) -> Option<SyntaxToken> {
10287        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10288    }
10289    #[inline]
10290    pub fn left_token(&self) -> Option<SyntaxToken> {
10291        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10292    }
10293    #[inline]
10294    pub fn outer_token(&self) -> Option<SyntaxToken> {
10295        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10296    }
10297}
10298
10299#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10300pub struct JoinRight {
10301    pub(crate) syntax: SyntaxNode,
10302}
10303impl JoinRight {
10304    #[inline]
10305    pub fn join_token(&self) -> Option<SyntaxToken> {
10306        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10307    }
10308    #[inline]
10309    pub fn outer_token(&self) -> Option<SyntaxToken> {
10310        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10311    }
10312    #[inline]
10313    pub fn right_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10315    }
10316}
10317
10318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10319pub struct JoinUsingClause {
10320    pub(crate) syntax: SyntaxNode,
10321}
10322impl JoinUsingClause {
10323    #[inline]
10324    pub fn alias(&self) -> Option<Alias> {
10325        support::child(&self.syntax)
10326    }
10327    #[inline]
10328    pub fn column_list(&self) -> Option<ColumnList> {
10329        support::child(&self.syntax)
10330    }
10331    #[inline]
10332    pub fn using_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::USING_KW)
10334    }
10335}
10336
10337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10338pub struct JsonArrayAggFn {
10339    pub(crate) syntax: SyntaxNode,
10340}
10341impl JsonArrayAggFn {
10342    #[inline]
10343    pub fn expr(&self) -> Option<Expr> {
10344        support::child(&self.syntax)
10345    }
10346    #[inline]
10347    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10348        support::child(&self.syntax)
10349    }
10350    #[inline]
10351    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10352        support::child(&self.syntax)
10353    }
10354    #[inline]
10355    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10356        support::children(&self.syntax)
10357    }
10358    #[inline]
10359    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10360        support::token(&self.syntax, SyntaxKind::L_PAREN)
10361    }
10362    #[inline]
10363    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10364        support::token(&self.syntax, SyntaxKind::R_PAREN)
10365    }
10366    #[inline]
10367    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10368        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10369    }
10370}
10371
10372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10373pub struct JsonArrayFn {
10374    pub(crate) syntax: SyntaxNode,
10375}
10376impl JsonArrayFn {
10377    #[inline]
10378    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10379        support::children(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10383        support::child(&self.syntax)
10384    }
10385    #[inline]
10386    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10387        support::child(&self.syntax)
10388    }
10389    #[inline]
10390    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10391        support::children(&self.syntax)
10392    }
10393    #[inline]
10394    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::L_PAREN)
10396    }
10397    #[inline]
10398    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10399        support::token(&self.syntax, SyntaxKind::R_PAREN)
10400    }
10401    #[inline]
10402    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10403        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10404    }
10405}
10406
10407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10408pub struct JsonBehaviorClause {
10409    pub(crate) syntax: SyntaxNode,
10410}
10411impl JsonBehaviorClause {
10412    #[inline]
10413    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10414        support::child(&self.syntax)
10415    }
10416}
10417
10418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10419pub struct JsonBehaviorDefault {
10420    pub(crate) syntax: SyntaxNode,
10421}
10422impl JsonBehaviorDefault {
10423    #[inline]
10424    pub fn expr(&self) -> Option<Expr> {
10425        support::child(&self.syntax)
10426    }
10427    #[inline]
10428    pub fn default_token(&self) -> Option<SyntaxToken> {
10429        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10430    }
10431}
10432
10433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10434pub struct JsonBehaviorEmptyArray {
10435    pub(crate) syntax: SyntaxNode,
10436}
10437impl JsonBehaviorEmptyArray {
10438    #[inline]
10439    pub fn array_token(&self) -> Option<SyntaxToken> {
10440        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10441    }
10442    #[inline]
10443    pub fn empty_token(&self) -> Option<SyntaxToken> {
10444        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10445    }
10446}
10447
10448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10449pub struct JsonBehaviorEmptyObject {
10450    pub(crate) syntax: SyntaxNode,
10451}
10452impl JsonBehaviorEmptyObject {
10453    #[inline]
10454    pub fn empty_token(&self) -> Option<SyntaxToken> {
10455        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10456    }
10457    #[inline]
10458    pub fn object_token(&self) -> Option<SyntaxToken> {
10459        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10460    }
10461}
10462
10463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10464pub struct JsonBehaviorError {
10465    pub(crate) syntax: SyntaxNode,
10466}
10467impl JsonBehaviorError {
10468    #[inline]
10469    pub fn error_token(&self) -> Option<SyntaxToken> {
10470        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10471    }
10472}
10473
10474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10475pub struct JsonBehaviorFalse {
10476    pub(crate) syntax: SyntaxNode,
10477}
10478impl JsonBehaviorFalse {
10479    #[inline]
10480    pub fn false_token(&self) -> Option<SyntaxToken> {
10481        support::token(&self.syntax, SyntaxKind::FALSE_KW)
10482    }
10483}
10484
10485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10486pub struct JsonBehaviorNull {
10487    pub(crate) syntax: SyntaxNode,
10488}
10489impl JsonBehaviorNull {
10490    #[inline]
10491    pub fn null_token(&self) -> Option<SyntaxToken> {
10492        support::token(&self.syntax, SyntaxKind::NULL_KW)
10493    }
10494}
10495
10496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10497pub struct JsonBehaviorTrue {
10498    pub(crate) syntax: SyntaxNode,
10499}
10500impl JsonBehaviorTrue {
10501    #[inline]
10502    pub fn true_token(&self) -> Option<SyntaxToken> {
10503        support::token(&self.syntax, SyntaxKind::TRUE_KW)
10504    }
10505}
10506
10507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10508pub struct JsonBehaviorUnknown {
10509    pub(crate) syntax: SyntaxNode,
10510}
10511impl JsonBehaviorUnknown {
10512    #[inline]
10513    pub fn unknown_token(&self) -> Option<SyntaxToken> {
10514        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
10515    }
10516}
10517
10518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10519pub struct JsonEncodingClause {
10520    pub(crate) syntax: SyntaxNode,
10521}
10522impl JsonEncodingClause {
10523    #[inline]
10524    pub fn name_ref(&self) -> Option<NameRef> {
10525        support::child(&self.syntax)
10526    }
10527    #[inline]
10528    pub fn encoding_token(&self) -> Option<SyntaxToken> {
10529        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
10530    }
10531}
10532
10533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10534pub struct JsonExistsFn {
10535    pub(crate) syntax: SyntaxNode,
10536}
10537impl JsonExistsFn {
10538    #[inline]
10539    pub fn expr(&self) -> Option<Expr> {
10540        support::child(&self.syntax)
10541    }
10542    #[inline]
10543    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10544        support::child(&self.syntax)
10545    }
10546    #[inline]
10547    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10548        support::child(&self.syntax)
10549    }
10550    #[inline]
10551    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10552        support::child(&self.syntax)
10553    }
10554    #[inline]
10555    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::L_PAREN)
10557    }
10558    #[inline]
10559    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10560        support::token(&self.syntax, SyntaxKind::R_PAREN)
10561    }
10562    #[inline]
10563    pub fn comma_token(&self) -> Option<SyntaxToken> {
10564        support::token(&self.syntax, SyntaxKind::COMMA)
10565    }
10566    #[inline]
10567    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
10568        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
10569    }
10570}
10571
10572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10573pub struct JsonExprFormat {
10574    pub(crate) syntax: SyntaxNode,
10575}
10576impl JsonExprFormat {
10577    #[inline]
10578    pub fn expr(&self) -> Option<Expr> {
10579        support::child(&self.syntax)
10580    }
10581    #[inline]
10582    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10583        support::child(&self.syntax)
10584    }
10585}
10586
10587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10588pub struct JsonFn {
10589    pub(crate) syntax: SyntaxNode,
10590}
10591impl JsonFn {
10592    #[inline]
10593    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
10594        support::child(&self.syntax)
10595    }
10596    #[inline]
10597    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10598        support::child(&self.syntax)
10599    }
10600    #[inline]
10601    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10602        support::token(&self.syntax, SyntaxKind::L_PAREN)
10603    }
10604    #[inline]
10605    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10606        support::token(&self.syntax, SyntaxKind::R_PAREN)
10607    }
10608    #[inline]
10609    pub fn json_token(&self) -> Option<SyntaxToken> {
10610        support::token(&self.syntax, SyntaxKind::JSON_KW)
10611    }
10612}
10613
10614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10615pub struct JsonFormatClause {
10616    pub(crate) syntax: SyntaxNode,
10617}
10618impl JsonFormatClause {
10619    #[inline]
10620    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
10621        support::child(&self.syntax)
10622    }
10623    #[inline]
10624    pub fn format_token(&self) -> Option<SyntaxToken> {
10625        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
10626    }
10627    #[inline]
10628    pub fn json_token(&self) -> Option<SyntaxToken> {
10629        support::token(&self.syntax, SyntaxKind::JSON_KW)
10630    }
10631}
10632
10633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10634pub struct JsonKeyValue {
10635    pub(crate) syntax: SyntaxNode,
10636}
10637impl JsonKeyValue {
10638    #[inline]
10639    pub fn expr(&self) -> Option<Expr> {
10640        support::child(&self.syntax)
10641    }
10642    #[inline]
10643    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
10644        support::child(&self.syntax)
10645    }
10646    #[inline]
10647    pub fn colon_token(&self) -> Option<SyntaxToken> {
10648        support::token(&self.syntax, SyntaxKind::COLON)
10649    }
10650    #[inline]
10651    pub fn value_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10653    }
10654}
10655
10656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10657pub struct JsonKeysUniqueClause {
10658    pub(crate) syntax: SyntaxNode,
10659}
10660impl JsonKeysUniqueClause {
10661    #[inline]
10662    pub fn keys_token(&self) -> Option<SyntaxToken> {
10663        support::token(&self.syntax, SyntaxKind::KEYS_KW)
10664    }
10665    #[inline]
10666    pub fn unique_token(&self) -> Option<SyntaxToken> {
10667        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10668    }
10669    #[inline]
10670    pub fn with_token(&self) -> Option<SyntaxToken> {
10671        support::token(&self.syntax, SyntaxKind::WITH_KW)
10672    }
10673    #[inline]
10674    pub fn without_token(&self) -> Option<SyntaxToken> {
10675        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10676    }
10677}
10678
10679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10680pub struct JsonNullClause {
10681    pub(crate) syntax: SyntaxNode,
10682}
10683impl JsonNullClause {
10684    #[inline]
10685    pub fn absent_token(&self) -> Option<SyntaxToken> {
10686        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
10687    }
10688    #[inline]
10689    pub fn null_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::NULL_KW)
10691    }
10692    #[inline]
10693    pub fn on_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::ON_KW)
10695    }
10696}
10697
10698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10699pub struct JsonObjectAggFn {
10700    pub(crate) syntax: SyntaxNode,
10701}
10702impl JsonObjectAggFn {
10703    #[inline]
10704    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
10705        support::child(&self.syntax)
10706    }
10707    #[inline]
10708    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10709        support::child(&self.syntax)
10710    }
10711    #[inline]
10712    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10713        support::child(&self.syntax)
10714    }
10715    #[inline]
10716    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10717        support::child(&self.syntax)
10718    }
10719    #[inline]
10720    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10721        support::token(&self.syntax, SyntaxKind::L_PAREN)
10722    }
10723    #[inline]
10724    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10725        support::token(&self.syntax, SyntaxKind::R_PAREN)
10726    }
10727    #[inline]
10728    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
10729        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
10730    }
10731}
10732
10733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10734pub struct JsonObjectFn {
10735    pub(crate) syntax: SyntaxNode,
10736}
10737impl JsonObjectFn {
10738    #[inline]
10739    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
10740        support::children(&self.syntax)
10741    }
10742    #[inline]
10743    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10744        support::child(&self.syntax)
10745    }
10746    #[inline]
10747    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10748        support::child(&self.syntax)
10749    }
10750    #[inline]
10751    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10752        support::child(&self.syntax)
10753    }
10754    #[inline]
10755    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10756        support::token(&self.syntax, SyntaxKind::L_PAREN)
10757    }
10758    #[inline]
10759    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10760        support::token(&self.syntax, SyntaxKind::R_PAREN)
10761    }
10762    #[inline]
10763    pub fn json_object_token(&self) -> Option<SyntaxToken> {
10764        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
10765    }
10766}
10767
10768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10769pub struct JsonOnEmptyClause {
10770    pub(crate) syntax: SyntaxNode,
10771}
10772impl JsonOnEmptyClause {
10773    #[inline]
10774    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10775        support::child(&self.syntax)
10776    }
10777    #[inline]
10778    pub fn empty_token(&self) -> Option<SyntaxToken> {
10779        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10780    }
10781    #[inline]
10782    pub fn on_token(&self) -> Option<SyntaxToken> {
10783        support::token(&self.syntax, SyntaxKind::ON_KW)
10784    }
10785}
10786
10787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10788pub struct JsonOnErrorClause {
10789    pub(crate) syntax: SyntaxNode,
10790}
10791impl JsonOnErrorClause {
10792    #[inline]
10793    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10794        support::child(&self.syntax)
10795    }
10796    #[inline]
10797    pub fn error_token(&self) -> Option<SyntaxToken> {
10798        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10799    }
10800    #[inline]
10801    pub fn on_token(&self) -> Option<SyntaxToken> {
10802        support::token(&self.syntax, SyntaxKind::ON_KW)
10803    }
10804}
10805
10806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10807pub struct JsonPassingArg {
10808    pub(crate) syntax: SyntaxNode,
10809}
10810impl JsonPassingArg {
10811    #[inline]
10812    pub fn expr(&self) -> Option<Expr> {
10813        support::child(&self.syntax)
10814    }
10815    #[inline]
10816    pub fn name(&self) -> Option<Name> {
10817        support::child(&self.syntax)
10818    }
10819    #[inline]
10820    pub fn as_token(&self) -> Option<SyntaxToken> {
10821        support::token(&self.syntax, SyntaxKind::AS_KW)
10822    }
10823}
10824
10825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10826pub struct JsonPassingClause {
10827    pub(crate) syntax: SyntaxNode,
10828}
10829impl JsonPassingClause {
10830    #[inline]
10831    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
10832        support::children(&self.syntax)
10833    }
10834    #[inline]
10835    pub fn passing_token(&self) -> Option<SyntaxToken> {
10836        support::token(&self.syntax, SyntaxKind::PASSING_KW)
10837    }
10838}
10839
10840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10841pub struct JsonPathClause {
10842    pub(crate) syntax: SyntaxNode,
10843}
10844impl JsonPathClause {
10845    #[inline]
10846    pub fn expr(&self) -> Option<Expr> {
10847        support::child(&self.syntax)
10848    }
10849    #[inline]
10850    pub fn path_token(&self) -> Option<SyntaxToken> {
10851        support::token(&self.syntax, SyntaxKind::PATH_KW)
10852    }
10853}
10854
10855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10856pub struct JsonQueryFn {
10857    pub(crate) syntax: SyntaxNode,
10858}
10859impl JsonQueryFn {
10860    #[inline]
10861    pub fn expr(&self) -> Option<Expr> {
10862        support::child(&self.syntax)
10863    }
10864    #[inline]
10865    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10866        support::child(&self.syntax)
10867    }
10868    #[inline]
10869    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10870        support::child(&self.syntax)
10871    }
10872    #[inline]
10873    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10874        support::child(&self.syntax)
10875    }
10876    #[inline]
10877    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10878        support::child(&self.syntax)
10879    }
10880    #[inline]
10881    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10882        support::child(&self.syntax)
10883    }
10884    #[inline]
10885    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10886        support::child(&self.syntax)
10887    }
10888    #[inline]
10889    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10890        support::token(&self.syntax, SyntaxKind::L_PAREN)
10891    }
10892    #[inline]
10893    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10894        support::token(&self.syntax, SyntaxKind::R_PAREN)
10895    }
10896    #[inline]
10897    pub fn comma_token(&self) -> Option<SyntaxToken> {
10898        support::token(&self.syntax, SyntaxKind::COMMA)
10899    }
10900    #[inline]
10901    pub fn json_query_token(&self) -> Option<SyntaxToken> {
10902        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
10903    }
10904}
10905
10906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10907pub struct JsonQuotesClause {
10908    pub(crate) syntax: SyntaxNode,
10909}
10910impl JsonQuotesClause {
10911    #[inline]
10912    pub fn keep_token(&self) -> Option<SyntaxToken> {
10913        support::token(&self.syntax, SyntaxKind::KEEP_KW)
10914    }
10915    #[inline]
10916    pub fn omit_token(&self) -> Option<SyntaxToken> {
10917        support::token(&self.syntax, SyntaxKind::OMIT_KW)
10918    }
10919    #[inline]
10920    pub fn on_token(&self) -> Option<SyntaxToken> {
10921        support::token(&self.syntax, SyntaxKind::ON_KW)
10922    }
10923    #[inline]
10924    pub fn quotes_token(&self) -> Option<SyntaxToken> {
10925        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
10926    }
10927    #[inline]
10928    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10929        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10930    }
10931    #[inline]
10932    pub fn string_token(&self) -> Option<SyntaxToken> {
10933        support::token(&self.syntax, SyntaxKind::STRING_KW)
10934    }
10935}
10936
10937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10938pub struct JsonReturningClause {
10939    pub(crate) syntax: SyntaxNode,
10940}
10941impl JsonReturningClause {
10942    #[inline]
10943    pub fn ty(&self) -> Option<Type> {
10944        support::child(&self.syntax)
10945    }
10946    #[inline]
10947    pub fn returning_token(&self) -> Option<SyntaxToken> {
10948        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
10949    }
10950}
10951
10952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10953pub struct JsonScalarFn {
10954    pub(crate) syntax: SyntaxNode,
10955}
10956impl JsonScalarFn {
10957    #[inline]
10958    pub fn expr(&self) -> Option<Expr> {
10959        support::child(&self.syntax)
10960    }
10961    #[inline]
10962    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10963        support::token(&self.syntax, SyntaxKind::L_PAREN)
10964    }
10965    #[inline]
10966    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10967        support::token(&self.syntax, SyntaxKind::R_PAREN)
10968    }
10969    #[inline]
10970    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
10971        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
10972    }
10973}
10974
10975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10976pub struct JsonSelectFormat {
10977    pub(crate) syntax: SyntaxNode,
10978}
10979impl JsonSelectFormat {
10980    #[inline]
10981    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10982        support::child(&self.syntax)
10983    }
10984    #[inline]
10985    pub fn select_variant(&self) -> Option<SelectVariant> {
10986        support::child(&self.syntax)
10987    }
10988}
10989
10990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10991pub struct JsonSerializeFn {
10992    pub(crate) syntax: SyntaxNode,
10993}
10994impl JsonSerializeFn {
10995    #[inline]
10996    pub fn expr(&self) -> Option<Expr> {
10997        support::child(&self.syntax)
10998    }
10999    #[inline]
11000    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11001        support::child(&self.syntax)
11002    }
11003    #[inline]
11004    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11005        support::child(&self.syntax)
11006    }
11007    #[inline]
11008    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11009        support::token(&self.syntax, SyntaxKind::L_PAREN)
11010    }
11011    #[inline]
11012    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11013        support::token(&self.syntax, SyntaxKind::R_PAREN)
11014    }
11015    #[inline]
11016    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11017        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11018    }
11019}
11020
11021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11022pub struct JsonTable {
11023    pub(crate) syntax: SyntaxNode,
11024}
11025impl JsonTable {
11026    #[inline]
11027    pub fn expr(&self) -> Option<Expr> {
11028        support::child(&self.syntax)
11029    }
11030    #[inline]
11031    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11032        support::child(&self.syntax)
11033    }
11034    #[inline]
11035    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11036        support::child(&self.syntax)
11037    }
11038    #[inline]
11039    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11040        support::child(&self.syntax)
11041    }
11042    #[inline]
11043    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11044        support::child(&self.syntax)
11045    }
11046    #[inline]
11047    pub fn name(&self) -> Option<Name> {
11048        support::child(&self.syntax)
11049    }
11050    #[inline]
11051    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11052        support::token(&self.syntax, SyntaxKind::L_PAREN)
11053    }
11054    #[inline]
11055    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11056        support::token(&self.syntax, SyntaxKind::R_PAREN)
11057    }
11058    #[inline]
11059    pub fn comma_token(&self) -> Option<SyntaxToken> {
11060        support::token(&self.syntax, SyntaxKind::COMMA)
11061    }
11062    #[inline]
11063    pub fn as_token(&self) -> Option<SyntaxToken> {
11064        support::token(&self.syntax, SyntaxKind::AS_KW)
11065    }
11066    #[inline]
11067    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11068        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11069    }
11070}
11071
11072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11073pub struct JsonTableColumn {
11074    pub(crate) syntax: SyntaxNode,
11075}
11076impl JsonTableColumn {
11077    #[inline]
11078    pub fn expr(&self) -> Option<Expr> {
11079        support::child(&self.syntax)
11080    }
11081    #[inline]
11082    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11083        support::child(&self.syntax)
11084    }
11085    #[inline]
11086    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11087        support::child(&self.syntax)
11088    }
11089    #[inline]
11090    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11091        support::child(&self.syntax)
11092    }
11093    #[inline]
11094    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11095        support::child(&self.syntax)
11096    }
11097    #[inline]
11098    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11099        support::child(&self.syntax)
11100    }
11101    #[inline]
11102    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11103        support::child(&self.syntax)
11104    }
11105    #[inline]
11106    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11107        support::child(&self.syntax)
11108    }
11109    #[inline]
11110    pub fn name(&self) -> Option<Name> {
11111        support::child(&self.syntax)
11112    }
11113    #[inline]
11114    pub fn ty(&self) -> Option<Type> {
11115        support::child(&self.syntax)
11116    }
11117    #[inline]
11118    pub fn as_token(&self) -> Option<SyntaxToken> {
11119        support::token(&self.syntax, SyntaxKind::AS_KW)
11120    }
11121    #[inline]
11122    pub fn exists_token(&self) -> Option<SyntaxToken> {
11123        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11124    }
11125    #[inline]
11126    pub fn for_token(&self) -> Option<SyntaxToken> {
11127        support::token(&self.syntax, SyntaxKind::FOR_KW)
11128    }
11129    #[inline]
11130    pub fn nested_token(&self) -> Option<SyntaxToken> {
11131        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11132    }
11133    #[inline]
11134    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11135        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11136    }
11137    #[inline]
11138    pub fn path_token(&self) -> Option<SyntaxToken> {
11139        support::token(&self.syntax, SyntaxKind::PATH_KW)
11140    }
11141}
11142
11143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11144pub struct JsonTableColumnList {
11145    pub(crate) syntax: SyntaxNode,
11146}
11147impl JsonTableColumnList {
11148    #[inline]
11149    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11150        support::children(&self.syntax)
11151    }
11152    #[inline]
11153    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11154        support::token(&self.syntax, SyntaxKind::L_PAREN)
11155    }
11156    #[inline]
11157    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11158        support::token(&self.syntax, SyntaxKind::R_PAREN)
11159    }
11160    #[inline]
11161    pub fn columns_token(&self) -> Option<SyntaxToken> {
11162        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11163    }
11164}
11165
11166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11167pub struct JsonValueExpr {
11168    pub(crate) syntax: SyntaxNode,
11169}
11170impl JsonValueExpr {
11171    #[inline]
11172    pub fn expr(&self) -> Option<Expr> {
11173        support::child(&self.syntax)
11174    }
11175    #[inline]
11176    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11177        support::child(&self.syntax)
11178    }
11179}
11180
11181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11182pub struct JsonValueFn {
11183    pub(crate) syntax: SyntaxNode,
11184}
11185impl JsonValueFn {
11186    #[inline]
11187    pub fn expr(&self) -> Option<Expr> {
11188        support::child(&self.syntax)
11189    }
11190    #[inline]
11191    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11192        support::child(&self.syntax)
11193    }
11194    #[inline]
11195    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11196        support::child(&self.syntax)
11197    }
11198    #[inline]
11199    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11200        support::child(&self.syntax)
11201    }
11202    #[inline]
11203    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11204        support::child(&self.syntax)
11205    }
11206    #[inline]
11207    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11208        support::token(&self.syntax, SyntaxKind::L_PAREN)
11209    }
11210    #[inline]
11211    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11212        support::token(&self.syntax, SyntaxKind::R_PAREN)
11213    }
11214    #[inline]
11215    pub fn comma_token(&self) -> Option<SyntaxToken> {
11216        support::token(&self.syntax, SyntaxKind::COMMA)
11217    }
11218    #[inline]
11219    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11220        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11221    }
11222}
11223
11224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11225pub struct JsonWrapperBehaviorClause {
11226    pub(crate) syntax: SyntaxNode,
11227}
11228impl JsonWrapperBehaviorClause {
11229    #[inline]
11230    pub fn array_token(&self) -> Option<SyntaxToken> {
11231        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11232    }
11233    #[inline]
11234    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11235        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11236    }
11237    #[inline]
11238    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11239        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11240    }
11241    #[inline]
11242    pub fn with_token(&self) -> Option<SyntaxToken> {
11243        support::token(&self.syntax, SyntaxKind::WITH_KW)
11244    }
11245    #[inline]
11246    pub fn without_token(&self) -> Option<SyntaxToken> {
11247        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11248    }
11249    #[inline]
11250    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11251        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11252    }
11253}
11254
11255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11256pub struct LabelAndProperties {
11257    pub(crate) syntax: SyntaxNode,
11258}
11259impl LabelAndProperties {
11260    #[inline]
11261    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11262        support::child(&self.syntax)
11263    }
11264    #[inline]
11265    pub fn name(&self) -> Option<Name> {
11266        support::child(&self.syntax)
11267    }
11268    #[inline]
11269    pub fn default_token(&self) -> Option<SyntaxToken> {
11270        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11271    }
11272    #[inline]
11273    pub fn label_token(&self) -> Option<SyntaxToken> {
11274        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11275    }
11276}
11277
11278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11279pub struct LabelAndPropertiesList {
11280    pub(crate) syntax: SyntaxNode,
11281}
11282impl LabelAndPropertiesList {
11283    #[inline]
11284    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11285        support::children(&self.syntax)
11286    }
11287    #[inline]
11288    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11289        support::token(&self.syntax, SyntaxKind::L_PAREN)
11290    }
11291    #[inline]
11292    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11293        support::token(&self.syntax, SyntaxKind::R_PAREN)
11294    }
11295}
11296
11297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11298pub struct LanguageFuncOption {
11299    pub(crate) syntax: SyntaxNode,
11300}
11301impl LanguageFuncOption {
11302    #[inline]
11303    pub fn name_ref(&self) -> Option<NameRef> {
11304        support::child(&self.syntax)
11305    }
11306    #[inline]
11307    pub fn language_token(&self) -> Option<SyntaxToken> {
11308        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11309    }
11310}
11311
11312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11313pub struct LeakproofFuncOption {
11314    pub(crate) syntax: SyntaxNode,
11315}
11316impl LeakproofFuncOption {
11317    #[inline]
11318    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11319        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11320    }
11321    #[inline]
11322    pub fn not_token(&self) -> Option<SyntaxToken> {
11323        support::token(&self.syntax, SyntaxKind::NOT_KW)
11324    }
11325}
11326
11327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11328pub struct LikeClause {
11329    pub(crate) syntax: SyntaxNode,
11330}
11331impl LikeClause {
11332    #[inline]
11333    pub fn like_options(&self) -> AstChildren<LikeOption> {
11334        support::children(&self.syntax)
11335    }
11336    #[inline]
11337    pub fn path(&self) -> Option<Path> {
11338        support::child(&self.syntax)
11339    }
11340    #[inline]
11341    pub fn like_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11343    }
11344}
11345
11346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11347pub struct LikeOption {
11348    pub(crate) syntax: SyntaxNode,
11349}
11350impl LikeOption {
11351    #[inline]
11352    pub fn all_token(&self) -> Option<SyntaxToken> {
11353        support::token(&self.syntax, SyntaxKind::ALL_KW)
11354    }
11355    #[inline]
11356    pub fn comments_token(&self) -> Option<SyntaxToken> {
11357        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11358    }
11359    #[inline]
11360    pub fn compression_token(&self) -> Option<SyntaxToken> {
11361        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11362    }
11363    #[inline]
11364    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11365        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11366    }
11367    #[inline]
11368    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11369        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11370    }
11371    #[inline]
11372    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11373        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11374    }
11375    #[inline]
11376    pub fn generated_token(&self) -> Option<SyntaxToken> {
11377        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11378    }
11379    #[inline]
11380    pub fn identity_token(&self) -> Option<SyntaxToken> {
11381        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11382    }
11383    #[inline]
11384    pub fn including_token(&self) -> Option<SyntaxToken> {
11385        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11386    }
11387    #[inline]
11388    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11389        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11390    }
11391    #[inline]
11392    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11393        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11394    }
11395    #[inline]
11396    pub fn storage_token(&self) -> Option<SyntaxToken> {
11397        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11398    }
11399}
11400
11401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11402pub struct LimitClause {
11403    pub(crate) syntax: SyntaxNode,
11404}
11405impl LimitClause {
11406    #[inline]
11407    pub fn expr(&self) -> Option<Expr> {
11408        support::child(&self.syntax)
11409    }
11410    #[inline]
11411    pub fn all_token(&self) -> Option<SyntaxToken> {
11412        support::token(&self.syntax, SyntaxKind::ALL_KW)
11413    }
11414    #[inline]
11415    pub fn limit_token(&self) -> Option<SyntaxToken> {
11416        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11417    }
11418}
11419
11420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11421pub struct LimitToTables {
11422    pub(crate) syntax: SyntaxNode,
11423}
11424impl LimitToTables {
11425    #[inline]
11426    pub fn name_refs(&self) -> AstChildren<NameRef> {
11427        support::children(&self.syntax)
11428    }
11429    #[inline]
11430    pub fn limit_token(&self) -> Option<SyntaxToken> {
11431        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11432    }
11433    #[inline]
11434    pub fn to_token(&self) -> Option<SyntaxToken> {
11435        support::token(&self.syntax, SyntaxKind::TO_KW)
11436    }
11437}
11438
11439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11440pub struct Listen {
11441    pub(crate) syntax: SyntaxNode,
11442}
11443impl Listen {
11444    #[inline]
11445    pub fn name(&self) -> Option<Name> {
11446        support::child(&self.syntax)
11447    }
11448    #[inline]
11449    pub fn listen_token(&self) -> Option<SyntaxToken> {
11450        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
11451    }
11452}
11453
11454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11455pub struct Literal {
11456    pub(crate) syntax: SyntaxNode,
11457}
11458impl Literal {}
11459
11460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11461pub struct Load {
11462    pub(crate) syntax: SyntaxNode,
11463}
11464impl Load {
11465    #[inline]
11466    pub fn literal(&self) -> Option<Literal> {
11467        support::child(&self.syntax)
11468    }
11469    #[inline]
11470    pub fn load_token(&self) -> Option<SyntaxToken> {
11471        support::token(&self.syntax, SyntaxKind::LOAD_KW)
11472    }
11473}
11474
11475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11476pub struct Lock {
11477    pub(crate) syntax: SyntaxNode,
11478}
11479impl Lock {
11480    #[inline]
11481    pub fn table_list(&self) -> Option<TableList> {
11482        support::child(&self.syntax)
11483    }
11484    #[inline]
11485    pub fn lock_token(&self) -> Option<SyntaxToken> {
11486        support::token(&self.syntax, SyntaxKind::LOCK_KW)
11487    }
11488    #[inline]
11489    pub fn table_token(&self) -> Option<SyntaxToken> {
11490        support::token(&self.syntax, SyntaxKind::TABLE_KW)
11491    }
11492}
11493
11494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11495pub struct LockingClause {
11496    pub(crate) syntax: SyntaxNode,
11497}
11498impl LockingClause {
11499    #[inline]
11500    pub fn for_token(&self) -> Option<SyntaxToken> {
11501        support::token(&self.syntax, SyntaxKind::FOR_KW)
11502    }
11503}
11504
11505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11506pub struct Lteq {
11507    pub(crate) syntax: SyntaxNode,
11508}
11509impl Lteq {
11510    #[inline]
11511    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11512        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11513    }
11514    #[inline]
11515    pub fn eq_token(&self) -> Option<SyntaxToken> {
11516        support::token(&self.syntax, SyntaxKind::EQ)
11517    }
11518}
11519
11520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11521pub struct MatchFull {
11522    pub(crate) syntax: SyntaxNode,
11523}
11524impl MatchFull {
11525    #[inline]
11526    pub fn full_token(&self) -> Option<SyntaxToken> {
11527        support::token(&self.syntax, SyntaxKind::FULL_KW)
11528    }
11529    #[inline]
11530    pub fn match_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11532    }
11533}
11534
11535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11536pub struct MatchPartial {
11537    pub(crate) syntax: SyntaxNode,
11538}
11539impl MatchPartial {
11540    #[inline]
11541    pub fn match_token(&self) -> Option<SyntaxToken> {
11542        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11543    }
11544    #[inline]
11545    pub fn partial_token(&self) -> Option<SyntaxToken> {
11546        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
11547    }
11548}
11549
11550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11551pub struct MatchSimple {
11552    pub(crate) syntax: SyntaxNode,
11553}
11554impl MatchSimple {
11555    #[inline]
11556    pub fn match_token(&self) -> Option<SyntaxToken> {
11557        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11558    }
11559    #[inline]
11560    pub fn simple_token(&self) -> Option<SyntaxToken> {
11561        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
11562    }
11563}
11564
11565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11566pub struct Materialized {
11567    pub(crate) syntax: SyntaxNode,
11568}
11569impl Materialized {
11570    #[inline]
11571    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11572        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11573    }
11574}
11575
11576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11577pub struct Merge {
11578    pub(crate) syntax: SyntaxNode,
11579}
11580impl Merge {
11581    #[inline]
11582    pub fn alias(&self) -> Option<Alias> {
11583        support::child(&self.syntax)
11584    }
11585    #[inline]
11586    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
11587        support::children(&self.syntax)
11588    }
11589    #[inline]
11590    pub fn relation_name(&self) -> Option<RelationName> {
11591        support::child(&self.syntax)
11592    }
11593    #[inline]
11594    pub fn returning_clause(&self) -> Option<ReturningClause> {
11595        support::child(&self.syntax)
11596    }
11597    #[inline]
11598    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
11599        support::child(&self.syntax)
11600    }
11601    #[inline]
11602    pub fn with_clause(&self) -> Option<WithClause> {
11603        support::child(&self.syntax)
11604    }
11605    #[inline]
11606    pub fn into_token(&self) -> Option<SyntaxToken> {
11607        support::token(&self.syntax, SyntaxKind::INTO_KW)
11608    }
11609    #[inline]
11610    pub fn merge_token(&self) -> Option<SyntaxToken> {
11611        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11612    }
11613}
11614
11615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11616pub struct MergeDelete {
11617    pub(crate) syntax: SyntaxNode,
11618}
11619impl MergeDelete {
11620    #[inline]
11621    pub fn delete_token(&self) -> Option<SyntaxToken> {
11622        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11623    }
11624}
11625
11626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11627pub struct MergeDoNothing {
11628    pub(crate) syntax: SyntaxNode,
11629}
11630impl MergeDoNothing {
11631    #[inline]
11632    pub fn do_token(&self) -> Option<SyntaxToken> {
11633        support::token(&self.syntax, SyntaxKind::DO_KW)
11634    }
11635    #[inline]
11636    pub fn nothing_token(&self) -> Option<SyntaxToken> {
11637        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
11638    }
11639}
11640
11641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11642pub struct MergeInsert {
11643    pub(crate) syntax: SyntaxNode,
11644}
11645impl MergeInsert {
11646    #[inline]
11647    pub fn column_list(&self) -> Option<ColumnList> {
11648        support::child(&self.syntax)
11649    }
11650    #[inline]
11651    pub fn values(&self) -> Option<Values> {
11652        support::child(&self.syntax)
11653    }
11654    #[inline]
11655    pub fn default_token(&self) -> Option<SyntaxToken> {
11656        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11657    }
11658    #[inline]
11659    pub fn insert_token(&self) -> Option<SyntaxToken> {
11660        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11661    }
11662    #[inline]
11663    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11664        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11665    }
11666    #[inline]
11667    pub fn system_token(&self) -> Option<SyntaxToken> {
11668        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11669    }
11670    #[inline]
11671    pub fn user_token(&self) -> Option<SyntaxToken> {
11672        support::token(&self.syntax, SyntaxKind::USER_KW)
11673    }
11674    #[inline]
11675    pub fn values_token(&self) -> Option<SyntaxToken> {
11676        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11677    }
11678}
11679
11680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11681pub struct MergePartitions {
11682    pub(crate) syntax: SyntaxNode,
11683}
11684impl MergePartitions {
11685    #[inline]
11686    pub fn path(&self) -> Option<Path> {
11687        support::child(&self.syntax)
11688    }
11689    #[inline]
11690    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::L_PAREN)
11692    }
11693    #[inline]
11694    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11695        support::token(&self.syntax, SyntaxKind::R_PAREN)
11696    }
11697    #[inline]
11698    pub fn into_token(&self) -> Option<SyntaxToken> {
11699        support::token(&self.syntax, SyntaxKind::INTO_KW)
11700    }
11701    #[inline]
11702    pub fn merge_token(&self) -> Option<SyntaxToken> {
11703        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11704    }
11705    #[inline]
11706    pub fn partitions_token(&self) -> Option<SyntaxToken> {
11707        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
11708    }
11709}
11710
11711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11712pub struct MergeUpdate {
11713    pub(crate) syntax: SyntaxNode,
11714}
11715impl MergeUpdate {
11716    #[inline]
11717    pub fn set_clause(&self) -> Option<SetClause> {
11718        support::child(&self.syntax)
11719    }
11720    #[inline]
11721    pub fn set_token(&self) -> Option<SyntaxToken> {
11722        support::token(&self.syntax, SyntaxKind::SET_KW)
11723    }
11724    #[inline]
11725    pub fn update_token(&self) -> Option<SyntaxToken> {
11726        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11727    }
11728}
11729
11730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11731pub struct MergeWhenMatched {
11732    pub(crate) syntax: SyntaxNode,
11733}
11734impl MergeWhenMatched {
11735    #[inline]
11736    pub fn expr(&self) -> Option<Expr> {
11737        support::child(&self.syntax)
11738    }
11739    #[inline]
11740    pub fn merge_action(&self) -> Option<MergeAction> {
11741        support::child(&self.syntax)
11742    }
11743    #[inline]
11744    pub fn and_token(&self) -> Option<SyntaxToken> {
11745        support::token(&self.syntax, SyntaxKind::AND_KW)
11746    }
11747    #[inline]
11748    pub fn matched_token(&self) -> Option<SyntaxToken> {
11749        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11750    }
11751    #[inline]
11752    pub fn then_token(&self) -> Option<SyntaxToken> {
11753        support::token(&self.syntax, SyntaxKind::THEN_KW)
11754    }
11755    #[inline]
11756    pub fn when_token(&self) -> Option<SyntaxToken> {
11757        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11758    }
11759}
11760
11761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11762pub struct MergeWhenNotMatchedSource {
11763    pub(crate) syntax: SyntaxNode,
11764}
11765impl MergeWhenNotMatchedSource {
11766    #[inline]
11767    pub fn expr(&self) -> Option<Expr> {
11768        support::child(&self.syntax)
11769    }
11770    #[inline]
11771    pub fn merge_action(&self) -> Option<MergeAction> {
11772        support::child(&self.syntax)
11773    }
11774    #[inline]
11775    pub fn and_token(&self) -> Option<SyntaxToken> {
11776        support::token(&self.syntax, SyntaxKind::AND_KW)
11777    }
11778    #[inline]
11779    pub fn by_token(&self) -> Option<SyntaxToken> {
11780        support::token(&self.syntax, SyntaxKind::BY_KW)
11781    }
11782    #[inline]
11783    pub fn matched_token(&self) -> Option<SyntaxToken> {
11784        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11785    }
11786    #[inline]
11787    pub fn not_token(&self) -> Option<SyntaxToken> {
11788        support::token(&self.syntax, SyntaxKind::NOT_KW)
11789    }
11790    #[inline]
11791    pub fn source_token(&self) -> Option<SyntaxToken> {
11792        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
11793    }
11794    #[inline]
11795    pub fn then_token(&self) -> Option<SyntaxToken> {
11796        support::token(&self.syntax, SyntaxKind::THEN_KW)
11797    }
11798    #[inline]
11799    pub fn when_token(&self) -> Option<SyntaxToken> {
11800        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11801    }
11802}
11803
11804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11805pub struct MergeWhenNotMatchedTarget {
11806    pub(crate) syntax: SyntaxNode,
11807}
11808impl MergeWhenNotMatchedTarget {
11809    #[inline]
11810    pub fn expr(&self) -> Option<Expr> {
11811        support::child(&self.syntax)
11812    }
11813    #[inline]
11814    pub fn merge_action(&self) -> Option<MergeAction> {
11815        support::child(&self.syntax)
11816    }
11817    #[inline]
11818    pub fn and_token(&self) -> Option<SyntaxToken> {
11819        support::token(&self.syntax, SyntaxKind::AND_KW)
11820    }
11821    #[inline]
11822    pub fn by_token(&self) -> Option<SyntaxToken> {
11823        support::token(&self.syntax, SyntaxKind::BY_KW)
11824    }
11825    #[inline]
11826    pub fn matched_token(&self) -> Option<SyntaxToken> {
11827        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11828    }
11829    #[inline]
11830    pub fn not_token(&self) -> Option<SyntaxToken> {
11831        support::token(&self.syntax, SyntaxKind::NOT_KW)
11832    }
11833    #[inline]
11834    pub fn target_token(&self) -> Option<SyntaxToken> {
11835        support::token(&self.syntax, SyntaxKind::TARGET_KW)
11836    }
11837    #[inline]
11838    pub fn then_token(&self) -> Option<SyntaxToken> {
11839        support::token(&self.syntax, SyntaxKind::THEN_KW)
11840    }
11841    #[inline]
11842    pub fn when_token(&self) -> Option<SyntaxToken> {
11843        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11844    }
11845}
11846
11847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11848pub struct Move {
11849    pub(crate) syntax: SyntaxNode,
11850}
11851impl Move {
11852    #[inline]
11853    pub fn name_ref(&self) -> Option<NameRef> {
11854        support::child(&self.syntax)
11855    }
11856    #[inline]
11857    pub fn from_token(&self) -> Option<SyntaxToken> {
11858        support::token(&self.syntax, SyntaxKind::FROM_KW)
11859    }
11860    #[inline]
11861    pub fn in_token(&self) -> Option<SyntaxToken> {
11862        support::token(&self.syntax, SyntaxKind::IN_KW)
11863    }
11864    #[inline]
11865    pub fn move_token(&self) -> Option<SyntaxToken> {
11866        support::token(&self.syntax, SyntaxKind::MOVE_KW)
11867    }
11868}
11869
11870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11871pub struct Name {
11872    pub(crate) syntax: SyntaxNode,
11873}
11874impl Name {
11875    #[inline]
11876    pub fn ident_token(&self) -> Option<SyntaxToken> {
11877        support::token(&self.syntax, SyntaxKind::IDENT)
11878    }
11879}
11880
11881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11882pub struct NameRef {
11883    pub(crate) syntax: SyntaxNode,
11884}
11885impl NameRef {
11886    #[inline]
11887    pub fn ident_token(&self) -> Option<SyntaxToken> {
11888        support::token(&self.syntax, SyntaxKind::IDENT)
11889    }
11890}
11891
11892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11893pub struct NamedArg {
11894    pub(crate) syntax: SyntaxNode,
11895}
11896impl NamedArg {
11897    #[inline]
11898    pub fn expr(&self) -> Option<Expr> {
11899        support::child(&self.syntax)
11900    }
11901    #[inline]
11902    pub fn fat_arrow(&self) -> Option<FatArrow> {
11903        support::child(&self.syntax)
11904    }
11905    #[inline]
11906    pub fn name_ref(&self) -> Option<NameRef> {
11907        support::child(&self.syntax)
11908    }
11909}
11910
11911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11912pub struct Neq {
11913    pub(crate) syntax: SyntaxNode,
11914}
11915impl Neq {
11916    #[inline]
11917    pub fn bang_token(&self) -> Option<SyntaxToken> {
11918        support::token(&self.syntax, SyntaxKind::BANG)
11919    }
11920    #[inline]
11921    pub fn eq_token(&self) -> Option<SyntaxToken> {
11922        support::token(&self.syntax, SyntaxKind::EQ)
11923    }
11924}
11925
11926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11927pub struct Neqb {
11928    pub(crate) syntax: SyntaxNode,
11929}
11930impl Neqb {
11931    #[inline]
11932    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11933        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11934    }
11935    #[inline]
11936    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11937        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11938    }
11939}
11940
11941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11942pub struct NoAction {
11943    pub(crate) syntax: SyntaxNode,
11944}
11945impl NoAction {
11946    #[inline]
11947    pub fn action_token(&self) -> Option<SyntaxToken> {
11948        support::token(&self.syntax, SyntaxKind::ACTION_KW)
11949    }
11950    #[inline]
11951    pub fn no_token(&self) -> Option<SyntaxToken> {
11952        support::token(&self.syntax, SyntaxKind::NO_KW)
11953    }
11954}
11955
11956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11957pub struct NoDependsOnExtension {
11958    pub(crate) syntax: SyntaxNode,
11959}
11960impl NoDependsOnExtension {
11961    #[inline]
11962    pub fn name_ref(&self) -> Option<NameRef> {
11963        support::child(&self.syntax)
11964    }
11965    #[inline]
11966    pub fn depends_token(&self) -> Option<SyntaxToken> {
11967        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
11968    }
11969    #[inline]
11970    pub fn extension_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
11972    }
11973    #[inline]
11974    pub fn no_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::NO_KW)
11976    }
11977    #[inline]
11978    pub fn on_token(&self) -> Option<SyntaxToken> {
11979        support::token(&self.syntax, SyntaxKind::ON_KW)
11980    }
11981}
11982
11983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11984pub struct NoForceRls {
11985    pub(crate) syntax: SyntaxNode,
11986}
11987impl NoForceRls {
11988    #[inline]
11989    pub fn force_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::FORCE_KW)
11991    }
11992    #[inline]
11993    pub fn level_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
11995    }
11996    #[inline]
11997    pub fn no_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::NO_KW)
11999    }
12000    #[inline]
12001    pub fn row_token(&self) -> Option<SyntaxToken> {
12002        support::token(&self.syntax, SyntaxKind::ROW_KW)
12003    }
12004    #[inline]
12005    pub fn security_token(&self) -> Option<SyntaxToken> {
12006        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12007    }
12008}
12009
12010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12011pub struct NoInherit {
12012    pub(crate) syntax: SyntaxNode,
12013}
12014impl NoInherit {
12015    #[inline]
12016    pub fn path(&self) -> Option<Path> {
12017        support::child(&self.syntax)
12018    }
12019    #[inline]
12020    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12021        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12022    }
12023    #[inline]
12024    pub fn no_token(&self) -> Option<SyntaxToken> {
12025        support::token(&self.syntax, SyntaxKind::NO_KW)
12026    }
12027}
12028
12029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12030pub struct NoInheritTable {
12031    pub(crate) syntax: SyntaxNode,
12032}
12033impl NoInheritTable {
12034    #[inline]
12035    pub fn path(&self) -> Option<Path> {
12036        support::child(&self.syntax)
12037    }
12038    #[inline]
12039    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12040        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12041    }
12042    #[inline]
12043    pub fn no_token(&self) -> Option<SyntaxToken> {
12044        support::token(&self.syntax, SyntaxKind::NO_KW)
12045    }
12046}
12047
12048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12049pub struct NoProperties {
12050    pub(crate) syntax: SyntaxNode,
12051}
12052impl NoProperties {
12053    #[inline]
12054    pub fn no_token(&self) -> Option<SyntaxToken> {
12055        support::token(&self.syntax, SyntaxKind::NO_KW)
12056    }
12057    #[inline]
12058    pub fn properties_token(&self) -> Option<SyntaxToken> {
12059        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12060    }
12061}
12062
12063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12064pub struct NonStandardParam {
12065    pub(crate) syntax: SyntaxNode,
12066}
12067impl NonStandardParam {
12068    #[inline]
12069    pub fn name_ref(&self) -> Option<NameRef> {
12070        support::child(&self.syntax)
12071    }
12072    #[inline]
12073    pub fn colon_token(&self) -> Option<SyntaxToken> {
12074        support::token(&self.syntax, SyntaxKind::COLON)
12075    }
12076}
12077
12078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12079pub struct NotDeferrable {
12080    pub(crate) syntax: SyntaxNode,
12081}
12082impl NotDeferrable {
12083    #[inline]
12084    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12085        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12086    }
12087    #[inline]
12088    pub fn not_token(&self) -> Option<SyntaxToken> {
12089        support::token(&self.syntax, SyntaxKind::NOT_KW)
12090    }
12091}
12092
12093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12094pub struct NotDeferrableConstraintOption {
12095    pub(crate) syntax: SyntaxNode,
12096}
12097impl NotDeferrableConstraintOption {
12098    #[inline]
12099    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12100        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12101    }
12102    #[inline]
12103    pub fn not_token(&self) -> Option<SyntaxToken> {
12104        support::token(&self.syntax, SyntaxKind::NOT_KW)
12105    }
12106}
12107
12108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12109pub struct NotEnforced {
12110    pub(crate) syntax: SyntaxNode,
12111}
12112impl NotEnforced {
12113    #[inline]
12114    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12115        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12116    }
12117    #[inline]
12118    pub fn not_token(&self) -> Option<SyntaxToken> {
12119        support::token(&self.syntax, SyntaxKind::NOT_KW)
12120    }
12121}
12122
12123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12124pub struct NotIlike {
12125    pub(crate) syntax: SyntaxNode,
12126}
12127impl NotIlike {
12128    #[inline]
12129    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12130        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12131    }
12132    #[inline]
12133    pub fn not_token(&self) -> Option<SyntaxToken> {
12134        support::token(&self.syntax, SyntaxKind::NOT_KW)
12135    }
12136}
12137
12138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12139pub struct NotIn {
12140    pub(crate) syntax: SyntaxNode,
12141}
12142impl NotIn {
12143    #[inline]
12144    pub fn in_token(&self) -> Option<SyntaxToken> {
12145        support::token(&self.syntax, SyntaxKind::IN_KW)
12146    }
12147    #[inline]
12148    pub fn not_token(&self) -> Option<SyntaxToken> {
12149        support::token(&self.syntax, SyntaxKind::NOT_KW)
12150    }
12151}
12152
12153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12154pub struct NotLike {
12155    pub(crate) syntax: SyntaxNode,
12156}
12157impl NotLike {
12158    #[inline]
12159    pub fn like_token(&self) -> Option<SyntaxToken> {
12160        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12161    }
12162    #[inline]
12163    pub fn not_token(&self) -> Option<SyntaxToken> {
12164        support::token(&self.syntax, SyntaxKind::NOT_KW)
12165    }
12166}
12167
12168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12169pub struct NotMaterialized {
12170    pub(crate) syntax: SyntaxNode,
12171}
12172impl NotMaterialized {
12173    #[inline]
12174    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12175        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12176    }
12177    #[inline]
12178    pub fn not_token(&self) -> Option<SyntaxToken> {
12179        support::token(&self.syntax, SyntaxKind::NOT_KW)
12180    }
12181}
12182
12183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12184pub struct NotNullConstraint {
12185    pub(crate) syntax: SyntaxNode,
12186}
12187impl NotNullConstraint {
12188    #[inline]
12189    pub fn name_ref(&self) -> Option<NameRef> {
12190        support::child(&self.syntax)
12191    }
12192    #[inline]
12193    pub fn no_inherit(&self) -> Option<NoInherit> {
12194        support::child(&self.syntax)
12195    }
12196    #[inline]
12197    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12198        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12199    }
12200    #[inline]
12201    pub fn not_token(&self) -> Option<SyntaxToken> {
12202        support::token(&self.syntax, SyntaxKind::NOT_KW)
12203    }
12204    #[inline]
12205    pub fn null_token(&self) -> Option<SyntaxToken> {
12206        support::token(&self.syntax, SyntaxKind::NULL_KW)
12207    }
12208}
12209
12210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12211pub struct NotOf {
12212    pub(crate) syntax: SyntaxNode,
12213}
12214impl NotOf {
12215    #[inline]
12216    pub fn not_token(&self) -> Option<SyntaxToken> {
12217        support::token(&self.syntax, SyntaxKind::NOT_KW)
12218    }
12219    #[inline]
12220    pub fn of_token(&self) -> Option<SyntaxToken> {
12221        support::token(&self.syntax, SyntaxKind::OF_KW)
12222    }
12223}
12224
12225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12226pub struct NotSimilarTo {
12227    pub(crate) syntax: SyntaxNode,
12228}
12229impl NotSimilarTo {
12230    #[inline]
12231    pub fn not_token(&self) -> Option<SyntaxToken> {
12232        support::token(&self.syntax, SyntaxKind::NOT_KW)
12233    }
12234    #[inline]
12235    pub fn similar_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12237    }
12238    #[inline]
12239    pub fn to_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::TO_KW)
12241    }
12242}
12243
12244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12245pub struct NotValid {
12246    pub(crate) syntax: SyntaxNode,
12247}
12248impl NotValid {
12249    #[inline]
12250    pub fn not_token(&self) -> Option<SyntaxToken> {
12251        support::token(&self.syntax, SyntaxKind::NOT_KW)
12252    }
12253    #[inline]
12254    pub fn valid_token(&self) -> Option<SyntaxToken> {
12255        support::token(&self.syntax, SyntaxKind::VALID_KW)
12256    }
12257}
12258
12259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12260pub struct Notify {
12261    pub(crate) syntax: SyntaxNode,
12262}
12263impl Notify {
12264    #[inline]
12265    pub fn literal(&self) -> Option<Literal> {
12266        support::child(&self.syntax)
12267    }
12268    #[inline]
12269    pub fn name_ref(&self) -> Option<NameRef> {
12270        support::child(&self.syntax)
12271    }
12272    #[inline]
12273    pub fn comma_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::COMMA)
12275    }
12276    #[inline]
12277    pub fn notify_token(&self) -> Option<SyntaxToken> {
12278        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12279    }
12280}
12281
12282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12283pub struct NullConstraint {
12284    pub(crate) syntax: SyntaxNode,
12285}
12286impl NullConstraint {
12287    #[inline]
12288    pub fn name_ref(&self) -> Option<NameRef> {
12289        support::child(&self.syntax)
12290    }
12291    #[inline]
12292    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12293        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12294    }
12295    #[inline]
12296    pub fn null_token(&self) -> Option<SyntaxToken> {
12297        support::token(&self.syntax, SyntaxKind::NULL_KW)
12298    }
12299}
12300
12301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12302pub struct NullsDistinct {
12303    pub(crate) syntax: SyntaxNode,
12304}
12305impl NullsDistinct {
12306    #[inline]
12307    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12308        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12309    }
12310    #[inline]
12311    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12312        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12313    }
12314}
12315
12316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12317pub struct NullsFirst {
12318    pub(crate) syntax: SyntaxNode,
12319}
12320impl NullsFirst {
12321    #[inline]
12322    pub fn first_token(&self) -> Option<SyntaxToken> {
12323        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12324    }
12325    #[inline]
12326    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12327        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12328    }
12329}
12330
12331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12332pub struct NullsLast {
12333    pub(crate) syntax: SyntaxNode,
12334}
12335impl NullsLast {
12336    #[inline]
12337    pub fn last_token(&self) -> Option<SyntaxToken> {
12338        support::token(&self.syntax, SyntaxKind::LAST_KW)
12339    }
12340    #[inline]
12341    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12342        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12343    }
12344}
12345
12346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12347pub struct NullsNotDistinct {
12348    pub(crate) syntax: SyntaxNode,
12349}
12350impl NullsNotDistinct {
12351    #[inline]
12352    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12353        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12354    }
12355    #[inline]
12356    pub fn not_token(&self) -> Option<SyntaxToken> {
12357        support::token(&self.syntax, SyntaxKind::NOT_KW)
12358    }
12359    #[inline]
12360    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12361        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12362    }
12363}
12364
12365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12366pub struct OfType {
12367    pub(crate) syntax: SyntaxNode,
12368}
12369impl OfType {
12370    #[inline]
12371    pub fn ty(&self) -> Option<Type> {
12372        support::child(&self.syntax)
12373    }
12374    #[inline]
12375    pub fn of_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::OF_KW)
12377    }
12378}
12379
12380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12381pub struct OffsetClause {
12382    pub(crate) syntax: SyntaxNode,
12383}
12384impl OffsetClause {
12385    #[inline]
12386    pub fn expr(&self) -> Option<Expr> {
12387        support::child(&self.syntax)
12388    }
12389    #[inline]
12390    pub fn offset_token(&self) -> Option<SyntaxToken> {
12391        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12392    }
12393    #[inline]
12394    pub fn row_token(&self) -> Option<SyntaxToken> {
12395        support::token(&self.syntax, SyntaxKind::ROW_KW)
12396    }
12397    #[inline]
12398    pub fn rows_token(&self) -> Option<SyntaxToken> {
12399        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12400    }
12401}
12402
12403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12404pub struct OnClause {
12405    pub(crate) syntax: SyntaxNode,
12406}
12407impl OnClause {
12408    #[inline]
12409    pub fn expr(&self) -> Option<Expr> {
12410        support::child(&self.syntax)
12411    }
12412    #[inline]
12413    pub fn on_token(&self) -> Option<SyntaxToken> {
12414        support::token(&self.syntax, SyntaxKind::ON_KW)
12415    }
12416}
12417
12418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12419pub struct OnCommit {
12420    pub(crate) syntax: SyntaxNode,
12421}
12422impl OnCommit {
12423    #[inline]
12424    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
12425        support::child(&self.syntax)
12426    }
12427    #[inline]
12428    pub fn commit_token(&self) -> Option<SyntaxToken> {
12429        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
12430    }
12431    #[inline]
12432    pub fn on_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::ON_KW)
12434    }
12435}
12436
12437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12438pub struct OnConflictClause {
12439    pub(crate) syntax: SyntaxNode,
12440}
12441impl OnConflictClause {
12442    #[inline]
12443    pub fn conflict_action(&self) -> Option<ConflictAction> {
12444        support::child(&self.syntax)
12445    }
12446    #[inline]
12447    pub fn conflict_target(&self) -> Option<ConflictTarget> {
12448        support::child(&self.syntax)
12449    }
12450    #[inline]
12451    pub fn conflict_token(&self) -> Option<SyntaxToken> {
12452        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
12453    }
12454    #[inline]
12455    pub fn on_token(&self) -> Option<SyntaxToken> {
12456        support::token(&self.syntax, SyntaxKind::ON_KW)
12457    }
12458}
12459
12460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12461pub struct OnDeleteAction {
12462    pub(crate) syntax: SyntaxNode,
12463}
12464impl OnDeleteAction {
12465    #[inline]
12466    pub fn ref_action(&self) -> Option<RefAction> {
12467        support::child(&self.syntax)
12468    }
12469    #[inline]
12470    pub fn delete_token(&self) -> Option<SyntaxToken> {
12471        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12472    }
12473    #[inline]
12474    pub fn on_token(&self) -> Option<SyntaxToken> {
12475        support::token(&self.syntax, SyntaxKind::ON_KW)
12476    }
12477}
12478
12479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12480pub struct OnTable {
12481    pub(crate) syntax: SyntaxNode,
12482}
12483impl OnTable {
12484    #[inline]
12485    pub fn path(&self) -> Option<Path> {
12486        support::child(&self.syntax)
12487    }
12488    #[inline]
12489    pub fn on_token(&self) -> Option<SyntaxToken> {
12490        support::token(&self.syntax, SyntaxKind::ON_KW)
12491    }
12492}
12493
12494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12495pub struct OnUpdateAction {
12496    pub(crate) syntax: SyntaxNode,
12497}
12498impl OnUpdateAction {
12499    #[inline]
12500    pub fn ref_action(&self) -> Option<RefAction> {
12501        support::child(&self.syntax)
12502    }
12503    #[inline]
12504    pub fn on_token(&self) -> Option<SyntaxToken> {
12505        support::token(&self.syntax, SyntaxKind::ON_KW)
12506    }
12507    #[inline]
12508    pub fn update_token(&self) -> Option<SyntaxToken> {
12509        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12510    }
12511}
12512
12513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12514pub struct Op {
12515    pub(crate) syntax: SyntaxNode,
12516}
12517impl Op {
12518    #[inline]
12519    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
12520        support::child(&self.syntax)
12521    }
12522    #[inline]
12523    pub fn colon_colon(&self) -> Option<ColonColon> {
12524        support::child(&self.syntax)
12525    }
12526    #[inline]
12527    pub fn colon_eq(&self) -> Option<ColonEq> {
12528        support::child(&self.syntax)
12529    }
12530    #[inline]
12531    pub fn custom_op(&self) -> Option<CustomOp> {
12532        support::child(&self.syntax)
12533    }
12534    #[inline]
12535    pub fn fat_arrow(&self) -> Option<FatArrow> {
12536        support::child(&self.syntax)
12537    }
12538    #[inline]
12539    pub fn gteq(&self) -> Option<Gteq> {
12540        support::child(&self.syntax)
12541    }
12542    #[inline]
12543    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
12544        support::child(&self.syntax)
12545    }
12546    #[inline]
12547    pub fn is_json(&self) -> Option<IsJson> {
12548        support::child(&self.syntax)
12549    }
12550    #[inline]
12551    pub fn is_json_array(&self) -> Option<IsJsonArray> {
12552        support::child(&self.syntax)
12553    }
12554    #[inline]
12555    pub fn is_json_object(&self) -> Option<IsJsonObject> {
12556        support::child(&self.syntax)
12557    }
12558    #[inline]
12559    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
12560        support::child(&self.syntax)
12561    }
12562    #[inline]
12563    pub fn is_json_value(&self) -> Option<IsJsonValue> {
12564        support::child(&self.syntax)
12565    }
12566    #[inline]
12567    pub fn is_not(&self) -> Option<IsNot> {
12568        support::child(&self.syntax)
12569    }
12570    #[inline]
12571    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
12572        support::child(&self.syntax)
12573    }
12574    #[inline]
12575    pub fn is_not_json(&self) -> Option<IsNotJson> {
12576        support::child(&self.syntax)
12577    }
12578    #[inline]
12579    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
12580        support::child(&self.syntax)
12581    }
12582    #[inline]
12583    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
12584        support::child(&self.syntax)
12585    }
12586    #[inline]
12587    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
12588        support::child(&self.syntax)
12589    }
12590    #[inline]
12591    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
12592        support::child(&self.syntax)
12593    }
12594    #[inline]
12595    pub fn lteq(&self) -> Option<Lteq> {
12596        support::child(&self.syntax)
12597    }
12598    #[inline]
12599    pub fn neq(&self) -> Option<Neq> {
12600        support::child(&self.syntax)
12601    }
12602    #[inline]
12603    pub fn neqb(&self) -> Option<Neqb> {
12604        support::child(&self.syntax)
12605    }
12606    #[inline]
12607    pub fn not_ilike(&self) -> Option<NotIlike> {
12608        support::child(&self.syntax)
12609    }
12610    #[inline]
12611    pub fn not_in(&self) -> Option<NotIn> {
12612        support::child(&self.syntax)
12613    }
12614    #[inline]
12615    pub fn not_like(&self) -> Option<NotLike> {
12616        support::child(&self.syntax)
12617    }
12618    #[inline]
12619    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
12620        support::child(&self.syntax)
12621    }
12622    #[inline]
12623    pub fn operator_call(&self) -> Option<OperatorCall> {
12624        support::child(&self.syntax)
12625    }
12626    #[inline]
12627    pub fn similar_to(&self) -> Option<SimilarTo> {
12628        support::child(&self.syntax)
12629    }
12630    #[inline]
12631    pub fn percent_token(&self) -> Option<SyntaxToken> {
12632        support::token(&self.syntax, SyntaxKind::PERCENT)
12633    }
12634    #[inline]
12635    pub fn plus_token(&self) -> Option<SyntaxToken> {
12636        support::token(&self.syntax, SyntaxKind::PLUS)
12637    }
12638    #[inline]
12639    pub fn minus_token(&self) -> Option<SyntaxToken> {
12640        support::token(&self.syntax, SyntaxKind::MINUS)
12641    }
12642    #[inline]
12643    pub fn slash_token(&self) -> Option<SyntaxToken> {
12644        support::token(&self.syntax, SyntaxKind::SLASH)
12645    }
12646    #[inline]
12647    pub fn colon_token(&self) -> Option<SyntaxToken> {
12648        support::token(&self.syntax, SyntaxKind::COLON)
12649    }
12650    #[inline]
12651    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12652        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12653    }
12654    #[inline]
12655    pub fn eq_token(&self) -> Option<SyntaxToken> {
12656        support::token(&self.syntax, SyntaxKind::EQ)
12657    }
12658    #[inline]
12659    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12660        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12661    }
12662    #[inline]
12663    pub fn caret_token(&self) -> Option<SyntaxToken> {
12664        support::token(&self.syntax, SyntaxKind::CARET)
12665    }
12666    #[inline]
12667    pub fn and_token(&self) -> Option<SyntaxToken> {
12668        support::token(&self.syntax, SyntaxKind::AND_KW)
12669    }
12670    #[inline]
12671    pub fn collate_token(&self) -> Option<SyntaxToken> {
12672        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
12673    }
12674    #[inline]
12675    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12676        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12677    }
12678    #[inline]
12679    pub fn in_token(&self) -> Option<SyntaxToken> {
12680        support::token(&self.syntax, SyntaxKind::IN_KW)
12681    }
12682    #[inline]
12683    pub fn is_token(&self) -> Option<SyntaxToken> {
12684        support::token(&self.syntax, SyntaxKind::IS_KW)
12685    }
12686    #[inline]
12687    pub fn like_token(&self) -> Option<SyntaxToken> {
12688        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12689    }
12690    #[inline]
12691    pub fn or_token(&self) -> Option<SyntaxToken> {
12692        support::token(&self.syntax, SyntaxKind::OR_KW)
12693    }
12694    #[inline]
12695    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
12696        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
12697    }
12698    #[inline]
12699    pub fn value_token(&self) -> Option<SyntaxToken> {
12700        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12701    }
12702}
12703
12704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12705pub struct OpClassOption {
12706    pub(crate) syntax: SyntaxNode,
12707}
12708impl OpClassOption {
12709    #[inline]
12710    pub fn function_sig(&self) -> Option<FunctionSig> {
12711        support::child(&self.syntax)
12712    }
12713    #[inline]
12714    pub fn literal(&self) -> Option<Literal> {
12715        support::child(&self.syntax)
12716    }
12717    #[inline]
12718    pub fn op(&self) -> Option<Op> {
12719        support::child(&self.syntax)
12720    }
12721    #[inline]
12722    pub fn param_list(&self) -> Option<ParamList> {
12723        support::child(&self.syntax)
12724    }
12725    #[inline]
12726    pub fn path(&self) -> Option<Path> {
12727        support::child(&self.syntax)
12728    }
12729    #[inline]
12730    pub fn ty(&self) -> Option<Type> {
12731        support::child(&self.syntax)
12732    }
12733    #[inline]
12734    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12735        support::token(&self.syntax, SyntaxKind::L_PAREN)
12736    }
12737    #[inline]
12738    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12739        support::token(&self.syntax, SyntaxKind::R_PAREN)
12740    }
12741    #[inline]
12742    pub fn comma_token(&self) -> Option<SyntaxToken> {
12743        support::token(&self.syntax, SyntaxKind::COMMA)
12744    }
12745    #[inline]
12746    pub fn by_token(&self) -> Option<SyntaxToken> {
12747        support::token(&self.syntax, SyntaxKind::BY_KW)
12748    }
12749    #[inline]
12750    pub fn for_token(&self) -> Option<SyntaxToken> {
12751        support::token(&self.syntax, SyntaxKind::FOR_KW)
12752    }
12753    #[inline]
12754    pub fn function_token(&self) -> Option<SyntaxToken> {
12755        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
12756    }
12757    #[inline]
12758    pub fn operator_token(&self) -> Option<SyntaxToken> {
12759        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12760    }
12761    #[inline]
12762    pub fn order_token(&self) -> Option<SyntaxToken> {
12763        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12764    }
12765    #[inline]
12766    pub fn search_token(&self) -> Option<SyntaxToken> {
12767        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
12768    }
12769    #[inline]
12770    pub fn storage_token(&self) -> Option<SyntaxToken> {
12771        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
12772    }
12773}
12774
12775#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12776pub struct OpSig {
12777    pub(crate) syntax: SyntaxNode,
12778}
12779impl OpSig {
12780    #[inline]
12781    pub fn op(&self) -> Option<Op> {
12782        support::child(&self.syntax)
12783    }
12784    #[inline]
12785    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12786        support::token(&self.syntax, SyntaxKind::L_PAREN)
12787    }
12788    #[inline]
12789    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12790        support::token(&self.syntax, SyntaxKind::R_PAREN)
12791    }
12792    #[inline]
12793    pub fn comma_token(&self) -> Option<SyntaxToken> {
12794        support::token(&self.syntax, SyntaxKind::COMMA)
12795    }
12796    #[inline]
12797    pub fn none_token(&self) -> Option<SyntaxToken> {
12798        support::token(&self.syntax, SyntaxKind::NONE_KW)
12799    }
12800}
12801
12802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12803pub struct OpSigList {
12804    pub(crate) syntax: SyntaxNode,
12805}
12806impl OpSigList {
12807    #[inline]
12808    pub fn op_sigs(&self) -> AstChildren<OpSig> {
12809        support::children(&self.syntax)
12810    }
12811}
12812
12813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12814pub struct OperatorCall {
12815    pub(crate) syntax: SyntaxNode,
12816}
12817impl OperatorCall {
12818    #[inline]
12819    pub fn op(&self) -> Option<Op> {
12820        support::child(&self.syntax)
12821    }
12822    #[inline]
12823    pub fn path(&self) -> Option<Path> {
12824        support::child(&self.syntax)
12825    }
12826    #[inline]
12827    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12828        support::token(&self.syntax, SyntaxKind::L_PAREN)
12829    }
12830    #[inline]
12831    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12832        support::token(&self.syntax, SyntaxKind::R_PAREN)
12833    }
12834    #[inline]
12835    pub fn dot_token(&self) -> Option<SyntaxToken> {
12836        support::token(&self.syntax, SyntaxKind::DOT)
12837    }
12838    #[inline]
12839    pub fn operator_token(&self) -> Option<SyntaxToken> {
12840        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12841    }
12842}
12843
12844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12845pub struct OperatorClassOptionList {
12846    pub(crate) syntax: SyntaxNode,
12847}
12848impl OperatorClassOptionList {
12849    #[inline]
12850    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
12851        support::children(&self.syntax)
12852    }
12853}
12854
12855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12856pub struct OptionItem {
12857    pub(crate) syntax: SyntaxNode,
12858}
12859impl OptionItem {
12860    #[inline]
12861    pub fn expr(&self) -> Option<Expr> {
12862        support::child(&self.syntax)
12863    }
12864    #[inline]
12865    pub fn default_token(&self) -> Option<SyntaxToken> {
12866        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12867    }
12868}
12869
12870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12871pub struct OptionItemList {
12872    pub(crate) syntax: SyntaxNode,
12873}
12874impl OptionItemList {
12875    #[inline]
12876    pub fn option_items(&self) -> AstChildren<OptionItem> {
12877        support::children(&self.syntax)
12878    }
12879    #[inline]
12880    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12881        support::token(&self.syntax, SyntaxKind::L_PAREN)
12882    }
12883    #[inline]
12884    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12885        support::token(&self.syntax, SyntaxKind::R_PAREN)
12886    }
12887}
12888
12889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12890pub struct OrReplace {
12891    pub(crate) syntax: SyntaxNode,
12892}
12893impl OrReplace {
12894    #[inline]
12895    pub fn or_token(&self) -> Option<SyntaxToken> {
12896        support::token(&self.syntax, SyntaxKind::OR_KW)
12897    }
12898    #[inline]
12899    pub fn replace_token(&self) -> Option<SyntaxToken> {
12900        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
12901    }
12902}
12903
12904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12905pub struct OrderByClause {
12906    pub(crate) syntax: SyntaxNode,
12907}
12908impl OrderByClause {
12909    #[inline]
12910    pub fn sort_by_list(&self) -> Option<SortByList> {
12911        support::child(&self.syntax)
12912    }
12913    #[inline]
12914    pub fn by_token(&self) -> Option<SyntaxToken> {
12915        support::token(&self.syntax, SyntaxKind::BY_KW)
12916    }
12917    #[inline]
12918    pub fn order_token(&self) -> Option<SyntaxToken> {
12919        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12920    }
12921}
12922
12923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12924pub struct OverClause {
12925    pub(crate) syntax: SyntaxNode,
12926}
12927impl OverClause {
12928    #[inline]
12929    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12930        support::token(&self.syntax, SyntaxKind::L_PAREN)
12931    }
12932    #[inline]
12933    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12934        support::token(&self.syntax, SyntaxKind::R_PAREN)
12935    }
12936    #[inline]
12937    pub fn over_token(&self) -> Option<SyntaxToken> {
12938        support::token(&self.syntax, SyntaxKind::OVER_KW)
12939    }
12940}
12941
12942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12943pub struct OverlayFn {
12944    pub(crate) syntax: SyntaxNode,
12945}
12946impl OverlayFn {
12947    #[inline]
12948    pub fn expr(&self) -> Option<Expr> {
12949        support::child(&self.syntax)
12950    }
12951    #[inline]
12952    pub fn exprs(&self) -> AstChildren<Expr> {
12953        support::children(&self.syntax)
12954    }
12955    #[inline]
12956    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12957        support::token(&self.syntax, SyntaxKind::L_PAREN)
12958    }
12959    #[inline]
12960    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12961        support::token(&self.syntax, SyntaxKind::R_PAREN)
12962    }
12963    #[inline]
12964    pub fn for_token(&self) -> Option<SyntaxToken> {
12965        support::token(&self.syntax, SyntaxKind::FOR_KW)
12966    }
12967    #[inline]
12968    pub fn from_token(&self) -> Option<SyntaxToken> {
12969        support::token(&self.syntax, SyntaxKind::FROM_KW)
12970    }
12971    #[inline]
12972    pub fn overlay_token(&self) -> Option<SyntaxToken> {
12973        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
12974    }
12975    #[inline]
12976    pub fn placing_token(&self) -> Option<SyntaxToken> {
12977        support::token(&self.syntax, SyntaxKind::PLACING_KW)
12978    }
12979}
12980
12981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12982pub struct OwnedByRoles {
12983    pub(crate) syntax: SyntaxNode,
12984}
12985impl OwnedByRoles {
12986    #[inline]
12987    pub fn role_ref_list(&self) -> Option<RoleRefList> {
12988        support::child(&self.syntax)
12989    }
12990    #[inline]
12991    pub fn by_token(&self) -> Option<SyntaxToken> {
12992        support::token(&self.syntax, SyntaxKind::BY_KW)
12993    }
12994    #[inline]
12995    pub fn owned_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12997    }
12998}
12999
13000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13001pub struct OwnerTo {
13002    pub(crate) syntax: SyntaxNode,
13003}
13004impl OwnerTo {
13005    #[inline]
13006    pub fn role_ref(&self) -> Option<RoleRef> {
13007        support::child(&self.syntax)
13008    }
13009    #[inline]
13010    pub fn owner_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13012    }
13013    #[inline]
13014    pub fn to_token(&self) -> Option<SyntaxToken> {
13015        support::token(&self.syntax, SyntaxKind::TO_KW)
13016    }
13017}
13018
13019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13020pub struct ParallelFuncOption {
13021    pub(crate) syntax: SyntaxNode,
13022}
13023impl ParallelFuncOption {
13024    #[inline]
13025    pub fn ident_token(&self) -> Option<SyntaxToken> {
13026        support::token(&self.syntax, SyntaxKind::IDENT)
13027    }
13028    #[inline]
13029    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13030        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13031    }
13032}
13033
13034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13035pub struct Param {
13036    pub(crate) syntax: SyntaxNode,
13037}
13038impl Param {
13039    #[inline]
13040    pub fn mode(&self) -> Option<ParamMode> {
13041        support::child(&self.syntax)
13042    }
13043    #[inline]
13044    pub fn name(&self) -> Option<Name> {
13045        support::child(&self.syntax)
13046    }
13047    #[inline]
13048    pub fn param_default(&self) -> Option<ParamDefault> {
13049        support::child(&self.syntax)
13050    }
13051    #[inline]
13052    pub fn ty(&self) -> Option<Type> {
13053        support::child(&self.syntax)
13054    }
13055}
13056
13057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13058pub struct ParamDefault {
13059    pub(crate) syntax: SyntaxNode,
13060}
13061impl ParamDefault {
13062    #[inline]
13063    pub fn expr(&self) -> Option<Expr> {
13064        support::child(&self.syntax)
13065    }
13066    #[inline]
13067    pub fn eq_token(&self) -> Option<SyntaxToken> {
13068        support::token(&self.syntax, SyntaxKind::EQ)
13069    }
13070    #[inline]
13071    pub fn default_token(&self) -> Option<SyntaxToken> {
13072        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13073    }
13074}
13075
13076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13077pub struct ParamIn {
13078    pub(crate) syntax: SyntaxNode,
13079}
13080impl ParamIn {
13081    #[inline]
13082    pub fn in_token(&self) -> Option<SyntaxToken> {
13083        support::token(&self.syntax, SyntaxKind::IN_KW)
13084    }
13085}
13086
13087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13088pub struct ParamInOut {
13089    pub(crate) syntax: SyntaxNode,
13090}
13091impl ParamInOut {
13092    #[inline]
13093    pub fn in_token(&self) -> Option<SyntaxToken> {
13094        support::token(&self.syntax, SyntaxKind::IN_KW)
13095    }
13096    #[inline]
13097    pub fn inout_token(&self) -> Option<SyntaxToken> {
13098        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13099    }
13100    #[inline]
13101    pub fn out_token(&self) -> Option<SyntaxToken> {
13102        support::token(&self.syntax, SyntaxKind::OUT_KW)
13103    }
13104}
13105
13106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13107pub struct ParamList {
13108    pub(crate) syntax: SyntaxNode,
13109}
13110impl ParamList {
13111    #[inline]
13112    pub fn params(&self) -> AstChildren<Param> {
13113        support::children(&self.syntax)
13114    }
13115}
13116
13117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13118pub struct ParamOut {
13119    pub(crate) syntax: SyntaxNode,
13120}
13121impl ParamOut {
13122    #[inline]
13123    pub fn out_token(&self) -> Option<SyntaxToken> {
13124        support::token(&self.syntax, SyntaxKind::OUT_KW)
13125    }
13126}
13127
13128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13129pub struct ParamVariadic {
13130    pub(crate) syntax: SyntaxNode,
13131}
13132impl ParamVariadic {
13133    #[inline]
13134    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13135        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13136    }
13137}
13138
13139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13140pub struct ParenExpr {
13141    pub(crate) syntax: SyntaxNode,
13142}
13143impl ParenExpr {
13144    #[inline]
13145    pub fn expr(&self) -> Option<Expr> {
13146        support::child(&self.syntax)
13147    }
13148    #[inline]
13149    pub fn from_item(&self) -> Option<FromItem> {
13150        support::child(&self.syntax)
13151    }
13152    #[inline]
13153    pub fn select(&self) -> Option<Select> {
13154        support::child(&self.syntax)
13155    }
13156    #[inline]
13157    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13158        support::token(&self.syntax, SyntaxKind::L_PAREN)
13159    }
13160    #[inline]
13161    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13162        support::token(&self.syntax, SyntaxKind::R_PAREN)
13163    }
13164}
13165
13166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13167pub struct ParenGraphPattern {
13168    pub(crate) syntax: SyntaxNode,
13169}
13170impl ParenGraphPattern {
13171    #[inline]
13172    pub fn path_pattern(&self) -> Option<PathPattern> {
13173        support::child(&self.syntax)
13174    }
13175    #[inline]
13176    pub fn where_clause(&self) -> Option<WhereClause> {
13177        support::child(&self.syntax)
13178    }
13179    #[inline]
13180    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13181        support::token(&self.syntax, SyntaxKind::L_PAREN)
13182    }
13183    #[inline]
13184    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13185        support::token(&self.syntax, SyntaxKind::R_PAREN)
13186    }
13187}
13188
13189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13190pub struct ParenSelect {
13191    pub(crate) syntax: SyntaxNode,
13192}
13193impl ParenSelect {
13194    #[inline]
13195    pub fn select(&self) -> Option<SelectVariant> {
13196        support::child(&self.syntax)
13197    }
13198    #[inline]
13199    pub fn with_clause(&self) -> Option<WithClause> {
13200        support::child(&self.syntax)
13201    }
13202    #[inline]
13203    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13204        support::token(&self.syntax, SyntaxKind::L_PAREN)
13205    }
13206    #[inline]
13207    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13208        support::token(&self.syntax, SyntaxKind::R_PAREN)
13209    }
13210}
13211
13212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13213pub struct Partition {
13214    pub(crate) syntax: SyntaxNode,
13215}
13216impl Partition {
13217    #[inline]
13218    pub fn partition_type(&self) -> Option<PartitionType> {
13219        support::child(&self.syntax)
13220    }
13221    #[inline]
13222    pub fn path(&self) -> Option<Path> {
13223        support::child(&self.syntax)
13224    }
13225    #[inline]
13226    pub fn partition_token(&self) -> Option<SyntaxToken> {
13227        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13228    }
13229}
13230
13231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13232pub struct PartitionBy {
13233    pub(crate) syntax: SyntaxNode,
13234}
13235impl PartitionBy {
13236    #[inline]
13237    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13238        support::child(&self.syntax)
13239    }
13240    #[inline]
13241    pub fn by_token(&self) -> Option<SyntaxToken> {
13242        support::token(&self.syntax, SyntaxKind::BY_KW)
13243    }
13244    #[inline]
13245    pub fn ident_token(&self) -> Option<SyntaxToken> {
13246        support::token(&self.syntax, SyntaxKind::IDENT)
13247    }
13248    #[inline]
13249    pub fn partition_token(&self) -> Option<SyntaxToken> {
13250        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13251    }
13252    #[inline]
13253    pub fn range_token(&self) -> Option<SyntaxToken> {
13254        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13255    }
13256}
13257
13258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13259pub struct PartitionDefault {
13260    pub(crate) syntax: SyntaxNode,
13261}
13262impl PartitionDefault {
13263    #[inline]
13264    pub fn default_token(&self) -> Option<SyntaxToken> {
13265        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13266    }
13267}
13268
13269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13270pub struct PartitionForValuesFrom {
13271    pub(crate) syntax: SyntaxNode,
13272}
13273impl PartitionForValuesFrom {
13274    #[inline]
13275    pub fn exprs(&self) -> AstChildren<Expr> {
13276        support::children(&self.syntax)
13277    }
13278    #[inline]
13279    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13280        support::token(&self.syntax, SyntaxKind::L_PAREN)
13281    }
13282    #[inline]
13283    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13284        support::token(&self.syntax, SyntaxKind::R_PAREN)
13285    }
13286    #[inline]
13287    pub fn for_token(&self) -> Option<SyntaxToken> {
13288        support::token(&self.syntax, SyntaxKind::FOR_KW)
13289    }
13290    #[inline]
13291    pub fn from_token(&self) -> Option<SyntaxToken> {
13292        support::token(&self.syntax, SyntaxKind::FROM_KW)
13293    }
13294    #[inline]
13295    pub fn to_token(&self) -> Option<SyntaxToken> {
13296        support::token(&self.syntax, SyntaxKind::TO_KW)
13297    }
13298    #[inline]
13299    pub fn values_token(&self) -> Option<SyntaxToken> {
13300        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13301    }
13302}
13303
13304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13305pub struct PartitionForValuesIn {
13306    pub(crate) syntax: SyntaxNode,
13307}
13308impl PartitionForValuesIn {
13309    #[inline]
13310    pub fn exprs(&self) -> AstChildren<Expr> {
13311        support::children(&self.syntax)
13312    }
13313    #[inline]
13314    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::L_PAREN)
13316    }
13317    #[inline]
13318    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13319        support::token(&self.syntax, SyntaxKind::R_PAREN)
13320    }
13321    #[inline]
13322    pub fn for_token(&self) -> Option<SyntaxToken> {
13323        support::token(&self.syntax, SyntaxKind::FOR_KW)
13324    }
13325    #[inline]
13326    pub fn in_token(&self) -> Option<SyntaxToken> {
13327        support::token(&self.syntax, SyntaxKind::IN_KW)
13328    }
13329    #[inline]
13330    pub fn values_token(&self) -> Option<SyntaxToken> {
13331        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13332    }
13333}
13334
13335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13336pub struct PartitionForValuesWith {
13337    pub(crate) syntax: SyntaxNode,
13338}
13339impl PartitionForValuesWith {
13340    #[inline]
13341    pub fn literal(&self) -> Option<Literal> {
13342        support::child(&self.syntax)
13343    }
13344    #[inline]
13345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13346        support::token(&self.syntax, SyntaxKind::L_PAREN)
13347    }
13348    #[inline]
13349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13350        support::token(&self.syntax, SyntaxKind::R_PAREN)
13351    }
13352    #[inline]
13353    pub fn comma_token(&self) -> Option<SyntaxToken> {
13354        support::token(&self.syntax, SyntaxKind::COMMA)
13355    }
13356    #[inline]
13357    pub fn for_token(&self) -> Option<SyntaxToken> {
13358        support::token(&self.syntax, SyntaxKind::FOR_KW)
13359    }
13360    #[inline]
13361    pub fn ident_token(&self) -> Option<SyntaxToken> {
13362        support::token(&self.syntax, SyntaxKind::IDENT)
13363    }
13364    #[inline]
13365    pub fn values_token(&self) -> Option<SyntaxToken> {
13366        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13367    }
13368    #[inline]
13369    pub fn with_token(&self) -> Option<SyntaxToken> {
13370        support::token(&self.syntax, SyntaxKind::WITH_KW)
13371    }
13372}
13373
13374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13375pub struct PartitionItem {
13376    pub(crate) syntax: SyntaxNode,
13377}
13378impl PartitionItem {
13379    #[inline]
13380    pub fn collate(&self) -> Option<Collate> {
13381        support::child(&self.syntax)
13382    }
13383    #[inline]
13384    pub fn expr(&self) -> Option<Expr> {
13385        support::child(&self.syntax)
13386    }
13387}
13388
13389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13390pub struct PartitionItemList {
13391    pub(crate) syntax: SyntaxNode,
13392}
13393impl PartitionItemList {
13394    #[inline]
13395    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
13396        support::children(&self.syntax)
13397    }
13398    #[inline]
13399    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13400        support::token(&self.syntax, SyntaxKind::L_PAREN)
13401    }
13402    #[inline]
13403    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13404        support::token(&self.syntax, SyntaxKind::R_PAREN)
13405    }
13406}
13407
13408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13409pub struct PartitionList {
13410    pub(crate) syntax: SyntaxNode,
13411}
13412impl PartitionList {
13413    #[inline]
13414    pub fn partitions(&self) -> AstChildren<Partition> {
13415        support::children(&self.syntax)
13416    }
13417    #[inline]
13418    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::L_PAREN)
13420    }
13421    #[inline]
13422    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13423        support::token(&self.syntax, SyntaxKind::R_PAREN)
13424    }
13425}
13426
13427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13428pub struct PartitionOf {
13429    pub(crate) syntax: SyntaxNode,
13430}
13431impl PartitionOf {
13432    #[inline]
13433    pub fn path(&self) -> Option<Path> {
13434        support::child(&self.syntax)
13435    }
13436    #[inline]
13437    pub fn of_token(&self) -> Option<SyntaxToken> {
13438        support::token(&self.syntax, SyntaxKind::OF_KW)
13439    }
13440    #[inline]
13441    pub fn partition_token(&self) -> Option<SyntaxToken> {
13442        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13443    }
13444}
13445
13446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13447pub struct Path {
13448    pub(crate) syntax: SyntaxNode,
13449}
13450impl Path {
13451    #[inline]
13452    pub fn qualifier(&self) -> Option<Path> {
13453        support::child(&self.syntax)
13454    }
13455    #[inline]
13456    pub fn segment(&self) -> Option<PathSegment> {
13457        support::child(&self.syntax)
13458    }
13459    #[inline]
13460    pub fn dot_token(&self) -> Option<SyntaxToken> {
13461        support::token(&self.syntax, SyntaxKind::DOT)
13462    }
13463}
13464
13465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13466pub struct PathFactor {
13467    pub(crate) syntax: SyntaxNode,
13468}
13469impl PathFactor {
13470    #[inline]
13471    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
13472        support::child(&self.syntax)
13473    }
13474    #[inline]
13475    pub fn path_primary(&self) -> Option<PathPrimary> {
13476        support::child(&self.syntax)
13477    }
13478}
13479
13480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13481pub struct PathPattern {
13482    pub(crate) syntax: SyntaxNode,
13483}
13484impl PathPattern {
13485    #[inline]
13486    pub fn path_factor(&self) -> Option<PathFactor> {
13487        support::child(&self.syntax)
13488    }
13489    #[inline]
13490    pub fn path_factors(&self) -> AstChildren<PathFactor> {
13491        support::children(&self.syntax)
13492    }
13493}
13494
13495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13496pub struct PathPatternList {
13497    pub(crate) syntax: SyntaxNode,
13498}
13499impl PathPatternList {
13500    #[inline]
13501    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
13502        support::children(&self.syntax)
13503    }
13504}
13505
13506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13507pub struct PathSegment {
13508    pub(crate) syntax: SyntaxNode,
13509}
13510impl PathSegment {
13511    #[inline]
13512    pub fn name(&self) -> Option<Name> {
13513        support::child(&self.syntax)
13514    }
13515    #[inline]
13516    pub fn name_ref(&self) -> Option<NameRef> {
13517        support::child(&self.syntax)
13518    }
13519}
13520
13521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13522pub struct PathType {
13523    pub(crate) syntax: SyntaxNode,
13524}
13525impl PathType {
13526    #[inline]
13527    pub fn arg_list(&self) -> Option<ArgList> {
13528        support::child(&self.syntax)
13529    }
13530    #[inline]
13531    pub fn path(&self) -> Option<Path> {
13532        support::child(&self.syntax)
13533    }
13534}
13535
13536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13537pub struct PercentType {
13538    pub(crate) syntax: SyntaxNode,
13539}
13540impl PercentType {
13541    #[inline]
13542    pub fn percent_token(&self) -> Option<SyntaxToken> {
13543        support::token(&self.syntax, SyntaxKind::PERCENT)
13544    }
13545    #[inline]
13546    pub fn type_token(&self) -> Option<SyntaxToken> {
13547        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13548    }
13549}
13550
13551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13552pub struct PercentTypeClause {
13553    pub(crate) syntax: SyntaxNode,
13554}
13555impl PercentTypeClause {
13556    #[inline]
13557    pub fn path(&self) -> Option<Path> {
13558        support::child(&self.syntax)
13559    }
13560    #[inline]
13561    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
13562        support::child(&self.syntax)
13563    }
13564}
13565
13566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13567pub struct PositionFn {
13568    pub(crate) syntax: SyntaxNode,
13569}
13570impl PositionFn {
13571    #[inline]
13572    pub fn expr(&self) -> Option<Expr> {
13573        support::child(&self.syntax)
13574    }
13575    #[inline]
13576    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13577        support::token(&self.syntax, SyntaxKind::L_PAREN)
13578    }
13579    #[inline]
13580    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13581        support::token(&self.syntax, SyntaxKind::R_PAREN)
13582    }
13583    #[inline]
13584    pub fn in_token(&self) -> Option<SyntaxToken> {
13585        support::token(&self.syntax, SyntaxKind::IN_KW)
13586    }
13587    #[inline]
13588    pub fn position_token(&self) -> Option<SyntaxToken> {
13589        support::token(&self.syntax, SyntaxKind::POSITION_KW)
13590    }
13591}
13592
13593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13594pub struct PostfixExpr {
13595    pub(crate) syntax: SyntaxNode,
13596}
13597impl PostfixExpr {
13598    #[inline]
13599    pub fn expr(&self) -> Option<Expr> {
13600        support::child(&self.syntax)
13601    }
13602}
13603
13604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13605pub struct PrefixExpr {
13606    pub(crate) syntax: SyntaxNode,
13607}
13608impl PrefixExpr {
13609    #[inline]
13610    pub fn expr(&self) -> Option<Expr> {
13611        support::child(&self.syntax)
13612    }
13613}
13614
13615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13616pub struct Prepare {
13617    pub(crate) syntax: SyntaxNode,
13618}
13619impl Prepare {
13620    #[inline]
13621    pub fn name(&self) -> Option<Name> {
13622        support::child(&self.syntax)
13623    }
13624    #[inline]
13625    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
13626        support::child(&self.syntax)
13627    }
13628    #[inline]
13629    pub fn as_token(&self) -> Option<SyntaxToken> {
13630        support::token(&self.syntax, SyntaxKind::AS_KW)
13631    }
13632    #[inline]
13633    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13634        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13635    }
13636}
13637
13638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13639pub struct PrepareTransaction {
13640    pub(crate) syntax: SyntaxNode,
13641}
13642impl PrepareTransaction {
13643    #[inline]
13644    pub fn literal(&self) -> Option<Literal> {
13645        support::child(&self.syntax)
13646    }
13647    #[inline]
13648    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13649        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13650    }
13651    #[inline]
13652    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13653        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13654    }
13655}
13656
13657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13658pub struct PreserveRows {
13659    pub(crate) syntax: SyntaxNode,
13660}
13661impl PreserveRows {
13662    #[inline]
13663    pub fn preserve_token(&self) -> Option<SyntaxToken> {
13664        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
13665    }
13666    #[inline]
13667    pub fn rows_token(&self) -> Option<SyntaxToken> {
13668        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13669    }
13670}
13671
13672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13673pub struct PrimaryKeyConstraint {
13674    pub(crate) syntax: SyntaxNode,
13675}
13676impl PrimaryKeyConstraint {
13677    #[inline]
13678    pub fn column_list(&self) -> Option<ColumnList> {
13679        support::child(&self.syntax)
13680    }
13681    #[inline]
13682    pub fn constraint_name(&self) -> Option<ConstraintName> {
13683        support::child(&self.syntax)
13684    }
13685    #[inline]
13686    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13687        support::child(&self.syntax)
13688    }
13689    #[inline]
13690    pub fn using_index(&self) -> Option<UsingIndex> {
13691        support::child(&self.syntax)
13692    }
13693    #[inline]
13694    pub fn key_token(&self) -> Option<SyntaxToken> {
13695        support::token(&self.syntax, SyntaxKind::KEY_KW)
13696    }
13697    #[inline]
13698    pub fn primary_token(&self) -> Option<SyntaxToken> {
13699        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
13700    }
13701}
13702
13703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13704pub struct PrivilegeTarget {
13705    pub(crate) syntax: SyntaxNode,
13706}
13707impl PrivilegeTarget {
13708    #[inline]
13709    pub fn functions_token(&self) -> Option<SyntaxToken> {
13710        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
13711    }
13712    #[inline]
13713    pub fn large_token(&self) -> Option<SyntaxToken> {
13714        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13715    }
13716    #[inline]
13717    pub fn objects_token(&self) -> Option<SyntaxToken> {
13718        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
13719    }
13720    #[inline]
13721    pub fn routines_token(&self) -> Option<SyntaxToken> {
13722        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
13723    }
13724    #[inline]
13725    pub fn schemas_token(&self) -> Option<SyntaxToken> {
13726        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
13727    }
13728    #[inline]
13729    pub fn sequences_token(&self) -> Option<SyntaxToken> {
13730        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
13731    }
13732    #[inline]
13733    pub fn tables_token(&self) -> Option<SyntaxToken> {
13734        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13735    }
13736    #[inline]
13737    pub fn types_token(&self) -> Option<SyntaxToken> {
13738        support::token(&self.syntax, SyntaxKind::TYPES_KW)
13739    }
13740}
13741
13742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13743pub struct Privileges {
13744    pub(crate) syntax: SyntaxNode,
13745}
13746impl Privileges {
13747    #[inline]
13748    pub fn column_list(&self) -> Option<ColumnList> {
13749        support::child(&self.syntax)
13750    }
13751    #[inline]
13752    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13753        support::child(&self.syntax)
13754    }
13755    #[inline]
13756    pub fn all_token(&self) -> Option<SyntaxToken> {
13757        support::token(&self.syntax, SyntaxKind::ALL_KW)
13758    }
13759    #[inline]
13760    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13761        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13762    }
13763}
13764
13765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13766pub struct PropertiesList {
13767    pub(crate) syntax: SyntaxNode,
13768}
13769impl PropertiesList {
13770    #[inline]
13771    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
13772        support::child(&self.syntax)
13773    }
13774    #[inline]
13775    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13776        support::token(&self.syntax, SyntaxKind::L_PAREN)
13777    }
13778    #[inline]
13779    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13780        support::token(&self.syntax, SyntaxKind::R_PAREN)
13781    }
13782    #[inline]
13783    pub fn properties_token(&self) -> Option<SyntaxToken> {
13784        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
13785    }
13786}
13787
13788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13789pub struct PublicationObject {
13790    pub(crate) syntax: SyntaxNode,
13791}
13792impl PublicationObject {
13793    #[inline]
13794    pub fn column_list(&self) -> Option<ColumnList> {
13795        support::child(&self.syntax)
13796    }
13797    #[inline]
13798    pub fn name_ref(&self) -> Option<NameRef> {
13799        support::child(&self.syntax)
13800    }
13801    #[inline]
13802    pub fn path(&self) -> Option<Path> {
13803        support::child(&self.syntax)
13804    }
13805    #[inline]
13806    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
13807        support::child(&self.syntax)
13808    }
13809    #[inline]
13810    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13811        support::token(&self.syntax, SyntaxKind::L_PAREN)
13812    }
13813    #[inline]
13814    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13815        support::token(&self.syntax, SyntaxKind::R_PAREN)
13816    }
13817    #[inline]
13818    pub fn star_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::STAR)
13820    }
13821    #[inline]
13822    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
13824    }
13825    #[inline]
13826    pub fn in_token(&self) -> Option<SyntaxToken> {
13827        support::token(&self.syntax, SyntaxKind::IN_KW)
13828    }
13829    #[inline]
13830    pub fn only_token(&self) -> Option<SyntaxToken> {
13831        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13832    }
13833    #[inline]
13834    pub fn schema_token(&self) -> Option<SyntaxToken> {
13835        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13836    }
13837    #[inline]
13838    pub fn table_token(&self) -> Option<SyntaxToken> {
13839        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13840    }
13841    #[inline]
13842    pub fn tables_token(&self) -> Option<SyntaxToken> {
13843        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13844    }
13845}
13846
13847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13848pub struct ReadCommitted {
13849    pub(crate) syntax: SyntaxNode,
13850}
13851impl ReadCommitted {
13852    #[inline]
13853    pub fn committed_token(&self) -> Option<SyntaxToken> {
13854        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
13855    }
13856    #[inline]
13857    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13858        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13859    }
13860    #[inline]
13861    pub fn level_token(&self) -> Option<SyntaxToken> {
13862        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13863    }
13864    #[inline]
13865    pub fn read_token(&self) -> Option<SyntaxToken> {
13866        support::token(&self.syntax, SyntaxKind::READ_KW)
13867    }
13868}
13869
13870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13871pub struct ReadOnly {
13872    pub(crate) syntax: SyntaxNode,
13873}
13874impl ReadOnly {
13875    #[inline]
13876    pub fn only_token(&self) -> Option<SyntaxToken> {
13877        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13878    }
13879    #[inline]
13880    pub fn read_token(&self) -> Option<SyntaxToken> {
13881        support::token(&self.syntax, SyntaxKind::READ_KW)
13882    }
13883}
13884
13885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13886pub struct ReadUncommitted {
13887    pub(crate) syntax: SyntaxNode,
13888}
13889impl ReadUncommitted {
13890    #[inline]
13891    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13892        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13893    }
13894    #[inline]
13895    pub fn level_token(&self) -> Option<SyntaxToken> {
13896        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13897    }
13898    #[inline]
13899    pub fn read_token(&self) -> Option<SyntaxToken> {
13900        support::token(&self.syntax, SyntaxKind::READ_KW)
13901    }
13902    #[inline]
13903    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
13904        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
13905    }
13906}
13907
13908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13909pub struct ReadWrite {
13910    pub(crate) syntax: SyntaxNode,
13911}
13912impl ReadWrite {
13913    #[inline]
13914    pub fn read_token(&self) -> Option<SyntaxToken> {
13915        support::token(&self.syntax, SyntaxKind::READ_KW)
13916    }
13917    #[inline]
13918    pub fn write_token(&self) -> Option<SyntaxToken> {
13919        support::token(&self.syntax, SyntaxKind::WRITE_KW)
13920    }
13921}
13922
13923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13924pub struct Reassign {
13925    pub(crate) syntax: SyntaxNode,
13926}
13927impl Reassign {
13928    #[inline]
13929    pub fn new_roles(&self) -> Option<RoleRefList> {
13930        support::child(&self.syntax)
13931    }
13932    #[inline]
13933    pub fn old_roles(&self) -> Option<RoleRefList> {
13934        support::child(&self.syntax)
13935    }
13936    #[inline]
13937    pub fn by_token(&self) -> Option<SyntaxToken> {
13938        support::token(&self.syntax, SyntaxKind::BY_KW)
13939    }
13940    #[inline]
13941    pub fn owned_token(&self) -> Option<SyntaxToken> {
13942        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13943    }
13944    #[inline]
13945    pub fn reassign_token(&self) -> Option<SyntaxToken> {
13946        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
13947    }
13948    #[inline]
13949    pub fn to_token(&self) -> Option<SyntaxToken> {
13950        support::token(&self.syntax, SyntaxKind::TO_KW)
13951    }
13952}
13953
13954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13955pub struct ReferencesConstraint {
13956    pub(crate) syntax: SyntaxNode,
13957}
13958impl ReferencesConstraint {
13959    #[inline]
13960    pub fn column(&self) -> Option<NameRef> {
13961        support::child(&self.syntax)
13962    }
13963    #[inline]
13964    pub fn constraint_name(&self) -> Option<ConstraintName> {
13965        support::child(&self.syntax)
13966    }
13967    #[inline]
13968    pub fn match_type(&self) -> Option<MatchType> {
13969        support::child(&self.syntax)
13970    }
13971    #[inline]
13972    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
13973        support::child(&self.syntax)
13974    }
13975    #[inline]
13976    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
13977        support::child(&self.syntax)
13978    }
13979    #[inline]
13980    pub fn table(&self) -> Option<Path> {
13981        support::child(&self.syntax)
13982    }
13983    #[inline]
13984    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13985        support::token(&self.syntax, SyntaxKind::L_PAREN)
13986    }
13987    #[inline]
13988    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13989        support::token(&self.syntax, SyntaxKind::R_PAREN)
13990    }
13991    #[inline]
13992    pub fn references_token(&self) -> Option<SyntaxToken> {
13993        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13994    }
13995}
13996
13997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13998pub struct Referencing {
13999    pub(crate) syntax: SyntaxNode,
14000}
14001impl Referencing {
14002    #[inline]
14003    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14004        support::children(&self.syntax)
14005    }
14006    #[inline]
14007    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14008        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14009    }
14010}
14011
14012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14013pub struct ReferencingTable {
14014    pub(crate) syntax: SyntaxNode,
14015}
14016impl ReferencingTable {
14017    #[inline]
14018    pub fn name_ref(&self) -> Option<NameRef> {
14019        support::child(&self.syntax)
14020    }
14021    #[inline]
14022    pub fn as_token(&self) -> Option<SyntaxToken> {
14023        support::token(&self.syntax, SyntaxKind::AS_KW)
14024    }
14025    #[inline]
14026    pub fn new_token(&self) -> Option<SyntaxToken> {
14027        support::token(&self.syntax, SyntaxKind::NEW_KW)
14028    }
14029    #[inline]
14030    pub fn old_token(&self) -> Option<SyntaxToken> {
14031        support::token(&self.syntax, SyntaxKind::OLD_KW)
14032    }
14033    #[inline]
14034    pub fn table_token(&self) -> Option<SyntaxToken> {
14035        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14036    }
14037}
14038
14039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14040pub struct Refresh {
14041    pub(crate) syntax: SyntaxNode,
14042}
14043impl Refresh {
14044    #[inline]
14045    pub fn path(&self) -> Option<Path> {
14046        support::child(&self.syntax)
14047    }
14048    #[inline]
14049    pub fn with_data(&self) -> Option<WithData> {
14050        support::child(&self.syntax)
14051    }
14052    #[inline]
14053    pub fn with_no_data(&self) -> Option<WithNoData> {
14054        support::child(&self.syntax)
14055    }
14056    #[inline]
14057    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14058        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14059    }
14060    #[inline]
14061    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14062        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14063    }
14064    #[inline]
14065    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14066        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14067    }
14068    #[inline]
14069    pub fn view_token(&self) -> Option<SyntaxToken> {
14070        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14071    }
14072}
14073
14074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14075pub struct RefreshCollationVersion {
14076    pub(crate) syntax: SyntaxNode,
14077}
14078impl RefreshCollationVersion {
14079    #[inline]
14080    pub fn collation_token(&self) -> Option<SyntaxToken> {
14081        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14082    }
14083    #[inline]
14084    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14085        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14086    }
14087    #[inline]
14088    pub fn version_token(&self) -> Option<SyntaxToken> {
14089        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14090    }
14091}
14092
14093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14094pub struct RefreshVersion {
14095    pub(crate) syntax: SyntaxNode,
14096}
14097impl RefreshVersion {
14098    #[inline]
14099    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14100        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14101    }
14102    #[inline]
14103    pub fn version_token(&self) -> Option<SyntaxToken> {
14104        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14105    }
14106}
14107
14108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14109pub struct Reindex {
14110    pub(crate) syntax: SyntaxNode,
14111}
14112impl Reindex {
14113    #[inline]
14114    pub fn path(&self) -> Option<Path> {
14115        support::child(&self.syntax)
14116    }
14117    #[inline]
14118    pub fn database_token(&self) -> Option<SyntaxToken> {
14119        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14120    }
14121    #[inline]
14122    pub fn index_token(&self) -> Option<SyntaxToken> {
14123        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14124    }
14125    #[inline]
14126    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14127        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14128    }
14129    #[inline]
14130    pub fn schema_token(&self) -> Option<SyntaxToken> {
14131        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14132    }
14133    #[inline]
14134    pub fn system_token(&self) -> Option<SyntaxToken> {
14135        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14136    }
14137    #[inline]
14138    pub fn table_token(&self) -> Option<SyntaxToken> {
14139        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14140    }
14141}
14142
14143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14144pub struct RelationName {
14145    pub(crate) syntax: SyntaxNode,
14146}
14147impl RelationName {
14148    #[inline]
14149    pub fn path(&self) -> Option<Path> {
14150        support::child(&self.syntax)
14151    }
14152    #[inline]
14153    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14154        support::token(&self.syntax, SyntaxKind::L_PAREN)
14155    }
14156    #[inline]
14157    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14158        support::token(&self.syntax, SyntaxKind::R_PAREN)
14159    }
14160    #[inline]
14161    pub fn star_token(&self) -> Option<SyntaxToken> {
14162        support::token(&self.syntax, SyntaxKind::STAR)
14163    }
14164    #[inline]
14165    pub fn only_token(&self) -> Option<SyntaxToken> {
14166        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14167    }
14168}
14169
14170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14171pub struct ReleaseSavepoint {
14172    pub(crate) syntax: SyntaxNode,
14173}
14174impl ReleaseSavepoint {
14175    #[inline]
14176    pub fn name_ref(&self) -> Option<NameRef> {
14177        support::child(&self.syntax)
14178    }
14179    #[inline]
14180    pub fn release_token(&self) -> Option<SyntaxToken> {
14181        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14182    }
14183    #[inline]
14184    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14185        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14186    }
14187}
14188
14189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14190pub struct RenameAttribute {
14191    pub(crate) syntax: SyntaxNode,
14192}
14193impl RenameAttribute {
14194    #[inline]
14195    pub fn name(&self) -> Option<Name> {
14196        support::child(&self.syntax)
14197    }
14198    #[inline]
14199    pub fn name_ref(&self) -> Option<NameRef> {
14200        support::child(&self.syntax)
14201    }
14202    #[inline]
14203    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14204        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14205    }
14206    #[inline]
14207    pub fn rename_token(&self) -> Option<SyntaxToken> {
14208        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14209    }
14210    #[inline]
14211    pub fn to_token(&self) -> Option<SyntaxToken> {
14212        support::token(&self.syntax, SyntaxKind::TO_KW)
14213    }
14214}
14215
14216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14217pub struct RenameColumn {
14218    pub(crate) syntax: SyntaxNode,
14219}
14220impl RenameColumn {
14221    #[inline]
14222    pub fn column_token(&self) -> Option<SyntaxToken> {
14223        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14224    }
14225    #[inline]
14226    pub fn rename_token(&self) -> Option<SyntaxToken> {
14227        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14228    }
14229    #[inline]
14230    pub fn to_token(&self) -> Option<SyntaxToken> {
14231        support::token(&self.syntax, SyntaxKind::TO_KW)
14232    }
14233}
14234
14235#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14236pub struct RenameConstraint {
14237    pub(crate) syntax: SyntaxNode,
14238}
14239impl RenameConstraint {
14240    #[inline]
14241    pub fn name(&self) -> Option<Name> {
14242        support::child(&self.syntax)
14243    }
14244    #[inline]
14245    pub fn name_ref(&self) -> Option<NameRef> {
14246        support::child(&self.syntax)
14247    }
14248    #[inline]
14249    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14250        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14251    }
14252    #[inline]
14253    pub fn rename_token(&self) -> Option<SyntaxToken> {
14254        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14255    }
14256    #[inline]
14257    pub fn to_token(&self) -> Option<SyntaxToken> {
14258        support::token(&self.syntax, SyntaxKind::TO_KW)
14259    }
14260}
14261
14262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14263pub struct RenameTo {
14264    pub(crate) syntax: SyntaxNode,
14265}
14266impl RenameTo {
14267    #[inline]
14268    pub fn name(&self) -> Option<Name> {
14269        support::child(&self.syntax)
14270    }
14271    #[inline]
14272    pub fn rename_token(&self) -> Option<SyntaxToken> {
14273        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14274    }
14275    #[inline]
14276    pub fn to_token(&self) -> Option<SyntaxToken> {
14277        support::token(&self.syntax, SyntaxKind::TO_KW)
14278    }
14279}
14280
14281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14282pub struct RenameValue {
14283    pub(crate) syntax: SyntaxNode,
14284}
14285impl RenameValue {
14286    #[inline]
14287    pub fn literal(&self) -> Option<Literal> {
14288        support::child(&self.syntax)
14289    }
14290    #[inline]
14291    pub fn rename_token(&self) -> Option<SyntaxToken> {
14292        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14293    }
14294    #[inline]
14295    pub fn to_token(&self) -> Option<SyntaxToken> {
14296        support::token(&self.syntax, SyntaxKind::TO_KW)
14297    }
14298    #[inline]
14299    pub fn value_token(&self) -> Option<SyntaxToken> {
14300        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14301    }
14302}
14303
14304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14305pub struct Repack {
14306    pub(crate) syntax: SyntaxNode,
14307}
14308impl Repack {
14309    #[inline]
14310    pub fn name_ref(&self) -> Option<NameRef> {
14311        support::child(&self.syntax)
14312    }
14313    #[inline]
14314    pub fn option_item_list(&self) -> Option<OptionItemList> {
14315        support::child(&self.syntax)
14316    }
14317    #[inline]
14318    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
14319        support::child(&self.syntax)
14320    }
14321    #[inline]
14322    pub fn index_token(&self) -> Option<SyntaxToken> {
14323        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14324    }
14325    #[inline]
14326    pub fn repack_token(&self) -> Option<SyntaxToken> {
14327        support::token(&self.syntax, SyntaxKind::REPACK_KW)
14328    }
14329    #[inline]
14330    pub fn using_token(&self) -> Option<SyntaxToken> {
14331        support::token(&self.syntax, SyntaxKind::USING_KW)
14332    }
14333}
14334
14335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14336pub struct RepeatableClause {
14337    pub(crate) syntax: SyntaxNode,
14338}
14339impl RepeatableClause {
14340    #[inline]
14341    pub fn expr(&self) -> Option<Expr> {
14342        support::child(&self.syntax)
14343    }
14344    #[inline]
14345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14346        support::token(&self.syntax, SyntaxKind::L_PAREN)
14347    }
14348    #[inline]
14349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14350        support::token(&self.syntax, SyntaxKind::R_PAREN)
14351    }
14352    #[inline]
14353    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14354        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14355    }
14356}
14357
14358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14359pub struct RepeatableRead {
14360    pub(crate) syntax: SyntaxNode,
14361}
14362impl RepeatableRead {
14363    #[inline]
14364    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14365        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14366    }
14367    #[inline]
14368    pub fn level_token(&self) -> Option<SyntaxToken> {
14369        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14370    }
14371    #[inline]
14372    pub fn read_token(&self) -> Option<SyntaxToken> {
14373        support::token(&self.syntax, SyntaxKind::READ_KW)
14374    }
14375    #[inline]
14376    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14377        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14378    }
14379}
14380
14381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14382pub struct ReplicaIdentity {
14383    pub(crate) syntax: SyntaxNode,
14384}
14385impl ReplicaIdentity {
14386    #[inline]
14387    pub fn identity_token(&self) -> Option<SyntaxToken> {
14388        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14389    }
14390    #[inline]
14391    pub fn replica_token(&self) -> Option<SyntaxToken> {
14392        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
14393    }
14394}
14395
14396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14397pub struct Reset {
14398    pub(crate) syntax: SyntaxNode,
14399}
14400impl Reset {
14401    #[inline]
14402    pub fn name_ref(&self) -> Option<NameRef> {
14403        support::child(&self.syntax)
14404    }
14405    #[inline]
14406    pub fn all_token(&self) -> Option<SyntaxToken> {
14407        support::token(&self.syntax, SyntaxKind::ALL_KW)
14408    }
14409    #[inline]
14410    pub fn reset_token(&self) -> Option<SyntaxToken> {
14411        support::token(&self.syntax, SyntaxKind::RESET_KW)
14412    }
14413}
14414
14415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14416pub struct ResetConfigParam {
14417    pub(crate) syntax: SyntaxNode,
14418}
14419impl ResetConfigParam {
14420    #[inline]
14421    pub fn path(&self) -> Option<Path> {
14422        support::child(&self.syntax)
14423    }
14424    #[inline]
14425    pub fn all_token(&self) -> Option<SyntaxToken> {
14426        support::token(&self.syntax, SyntaxKind::ALL_KW)
14427    }
14428    #[inline]
14429    pub fn reset_token(&self) -> Option<SyntaxToken> {
14430        support::token(&self.syntax, SyntaxKind::RESET_KW)
14431    }
14432}
14433
14434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14435pub struct ResetFuncOption {
14436    pub(crate) syntax: SyntaxNode,
14437}
14438impl ResetFuncOption {
14439    #[inline]
14440    pub fn name_ref(&self) -> Option<NameRef> {
14441        support::child(&self.syntax)
14442    }
14443    #[inline]
14444    pub fn reset_token(&self) -> Option<SyntaxToken> {
14445        support::token(&self.syntax, SyntaxKind::RESET_KW)
14446    }
14447}
14448
14449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14450pub struct ResetOptions {
14451    pub(crate) syntax: SyntaxNode,
14452}
14453impl ResetOptions {
14454    #[inline]
14455    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14456        support::token(&self.syntax, SyntaxKind::L_PAREN)
14457    }
14458    #[inline]
14459    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14460        support::token(&self.syntax, SyntaxKind::R_PAREN)
14461    }
14462    #[inline]
14463    pub fn reset_token(&self) -> Option<SyntaxToken> {
14464        support::token(&self.syntax, SyntaxKind::RESET_KW)
14465    }
14466}
14467
14468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14469pub struct ResetSessionAuth {
14470    pub(crate) syntax: SyntaxNode,
14471}
14472impl ResetSessionAuth {
14473    #[inline]
14474    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14475        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14476    }
14477    #[inline]
14478    pub fn reset_token(&self) -> Option<SyntaxToken> {
14479        support::token(&self.syntax, SyntaxKind::RESET_KW)
14480    }
14481    #[inline]
14482    pub fn session_token(&self) -> Option<SyntaxToken> {
14483        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14484    }
14485}
14486
14487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14488pub struct Restart {
14489    pub(crate) syntax: SyntaxNode,
14490}
14491impl Restart {
14492    #[inline]
14493    pub fn restart_token(&self) -> Option<SyntaxToken> {
14494        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14495    }
14496    #[inline]
14497    pub fn with_token(&self) -> Option<SyntaxToken> {
14498        support::token(&self.syntax, SyntaxKind::WITH_KW)
14499    }
14500}
14501
14502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14503pub struct Restrict {
14504    pub(crate) syntax: SyntaxNode,
14505}
14506impl Restrict {
14507    #[inline]
14508    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14509        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14510    }
14511}
14512
14513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14514pub struct RetType {
14515    pub(crate) syntax: SyntaxNode,
14516}
14517impl RetType {
14518    #[inline]
14519    pub fn table_arg_list(&self) -> Option<TableArgList> {
14520        support::child(&self.syntax)
14521    }
14522    #[inline]
14523    pub fn ty(&self) -> Option<Type> {
14524        support::child(&self.syntax)
14525    }
14526    #[inline]
14527    pub fn returns_token(&self) -> Option<SyntaxToken> {
14528        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14529    }
14530    #[inline]
14531    pub fn table_token(&self) -> Option<SyntaxToken> {
14532        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14533    }
14534}
14535
14536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14537pub struct ReturnFuncOption {
14538    pub(crate) syntax: SyntaxNode,
14539}
14540impl ReturnFuncOption {
14541    #[inline]
14542    pub fn expr(&self) -> Option<Expr> {
14543        support::child(&self.syntax)
14544    }
14545    #[inline]
14546    pub fn return_token(&self) -> Option<SyntaxToken> {
14547        support::token(&self.syntax, SyntaxKind::RETURN_KW)
14548    }
14549}
14550
14551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14552pub struct ReturningClause {
14553    pub(crate) syntax: SyntaxNode,
14554}
14555impl ReturningClause {
14556    #[inline]
14557    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
14558        support::child(&self.syntax)
14559    }
14560    #[inline]
14561    pub fn target_list(&self) -> Option<TargetList> {
14562        support::child(&self.syntax)
14563    }
14564    #[inline]
14565    pub fn returning_token(&self) -> Option<SyntaxToken> {
14566        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
14567    }
14568}
14569
14570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14571pub struct ReturningOption {
14572    pub(crate) syntax: SyntaxNode,
14573}
14574impl ReturningOption {
14575    #[inline]
14576    pub fn name(&self) -> Option<Name> {
14577        support::child(&self.syntax)
14578    }
14579    #[inline]
14580    pub fn as_token(&self) -> Option<SyntaxToken> {
14581        support::token(&self.syntax, SyntaxKind::AS_KW)
14582    }
14583    #[inline]
14584    pub fn new_token(&self) -> Option<SyntaxToken> {
14585        support::token(&self.syntax, SyntaxKind::NEW_KW)
14586    }
14587    #[inline]
14588    pub fn old_token(&self) -> Option<SyntaxToken> {
14589        support::token(&self.syntax, SyntaxKind::OLD_KW)
14590    }
14591}
14592
14593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14594pub struct ReturningOptionList {
14595    pub(crate) syntax: SyntaxNode,
14596}
14597impl ReturningOptionList {
14598    #[inline]
14599    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
14600        support::children(&self.syntax)
14601    }
14602    #[inline]
14603    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14604        support::token(&self.syntax, SyntaxKind::L_PAREN)
14605    }
14606    #[inline]
14607    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14608        support::token(&self.syntax, SyntaxKind::R_PAREN)
14609    }
14610    #[inline]
14611    pub fn with_token(&self) -> Option<SyntaxToken> {
14612        support::token(&self.syntax, SyntaxKind::WITH_KW)
14613    }
14614}
14615
14616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14617pub struct Revoke {
14618    pub(crate) syntax: SyntaxNode,
14619}
14620impl Revoke {
14621    #[inline]
14622    pub fn name_refs(&self) -> AstChildren<NameRef> {
14623        support::children(&self.syntax)
14624    }
14625    #[inline]
14626    pub fn paths(&self) -> AstChildren<Path> {
14627        support::children(&self.syntax)
14628    }
14629    #[inline]
14630    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14631        support::child(&self.syntax)
14632    }
14633    #[inline]
14634    pub fn role_ref(&self) -> Option<RoleRef> {
14635        support::child(&self.syntax)
14636    }
14637    #[inline]
14638    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14639        support::child(&self.syntax)
14640    }
14641    #[inline]
14642    pub fn all_token(&self) -> Option<SyntaxToken> {
14643        support::token(&self.syntax, SyntaxKind::ALL_KW)
14644    }
14645    #[inline]
14646    pub fn by_token(&self) -> Option<SyntaxToken> {
14647        support::token(&self.syntax, SyntaxKind::BY_KW)
14648    }
14649    #[inline]
14650    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14651        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14652    }
14653    #[inline]
14654    pub fn for_token(&self) -> Option<SyntaxToken> {
14655        support::token(&self.syntax, SyntaxKind::FOR_KW)
14656    }
14657    #[inline]
14658    pub fn from_token(&self) -> Option<SyntaxToken> {
14659        support::token(&self.syntax, SyntaxKind::FROM_KW)
14660    }
14661    #[inline]
14662    pub fn grant_token(&self) -> Option<SyntaxToken> {
14663        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14664    }
14665    #[inline]
14666    pub fn granted_token(&self) -> Option<SyntaxToken> {
14667        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
14668    }
14669    #[inline]
14670    pub fn in_token(&self) -> Option<SyntaxToken> {
14671        support::token(&self.syntax, SyntaxKind::IN_KW)
14672    }
14673    #[inline]
14674    pub fn on_token(&self) -> Option<SyntaxToken> {
14675        support::token(&self.syntax, SyntaxKind::ON_KW)
14676    }
14677    #[inline]
14678    pub fn option_token(&self) -> Option<SyntaxToken> {
14679        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14680    }
14681    #[inline]
14682    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14683        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14684    }
14685    #[inline]
14686    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14687        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14688    }
14689    #[inline]
14690    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14691        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14692    }
14693    #[inline]
14694    pub fn schema_token(&self) -> Option<SyntaxToken> {
14695        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14696    }
14697    #[inline]
14698    pub fn table_token(&self) -> Option<SyntaxToken> {
14699        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14700    }
14701    #[inline]
14702    pub fn tables_token(&self) -> Option<SyntaxToken> {
14703        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14704    }
14705}
14706
14707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14708pub struct RevokeCommand {
14709    pub(crate) syntax: SyntaxNode,
14710}
14711impl RevokeCommand {
14712    #[inline]
14713    pub fn role_ref(&self) -> Option<RoleRef> {
14714        support::child(&self.syntax)
14715    }
14716    #[inline]
14717    pub fn all_token(&self) -> Option<SyntaxToken> {
14718        support::token(&self.syntax, SyntaxKind::ALL_KW)
14719    }
14720    #[inline]
14721    pub fn alter_token(&self) -> Option<SyntaxToken> {
14722        support::token(&self.syntax, SyntaxKind::ALTER_KW)
14723    }
14724    #[inline]
14725    pub fn create_token(&self) -> Option<SyntaxToken> {
14726        support::token(&self.syntax, SyntaxKind::CREATE_KW)
14727    }
14728    #[inline]
14729    pub fn delete_token(&self) -> Option<SyntaxToken> {
14730        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14731    }
14732    #[inline]
14733    pub fn execute_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
14735    }
14736    #[inline]
14737    pub fn ident_token(&self) -> Option<SyntaxToken> {
14738        support::token(&self.syntax, SyntaxKind::IDENT)
14739    }
14740    #[inline]
14741    pub fn insert_token(&self) -> Option<SyntaxToken> {
14742        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14743    }
14744    #[inline]
14745    pub fn references_token(&self) -> Option<SyntaxToken> {
14746        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14747    }
14748    #[inline]
14749    pub fn select_token(&self) -> Option<SyntaxToken> {
14750        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14751    }
14752    #[inline]
14753    pub fn system_token(&self) -> Option<SyntaxToken> {
14754        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14755    }
14756    #[inline]
14757    pub fn temp_token(&self) -> Option<SyntaxToken> {
14758        support::token(&self.syntax, SyntaxKind::TEMP_KW)
14759    }
14760    #[inline]
14761    pub fn temporary_token(&self) -> Option<SyntaxToken> {
14762        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
14763    }
14764    #[inline]
14765    pub fn trigger_token(&self) -> Option<SyntaxToken> {
14766        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
14767    }
14768    #[inline]
14769    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14770        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14771    }
14772    #[inline]
14773    pub fn update_token(&self) -> Option<SyntaxToken> {
14774        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14775    }
14776}
14777
14778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14779pub struct RevokeCommandList {
14780    pub(crate) syntax: SyntaxNode,
14781}
14782impl RevokeCommandList {
14783    #[inline]
14784    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
14785        support::children(&self.syntax)
14786    }
14787}
14788
14789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14790pub struct RevokeDefaultPrivileges {
14791    pub(crate) syntax: SyntaxNode,
14792}
14793impl RevokeDefaultPrivileges {
14794    #[inline]
14795    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
14796        support::child(&self.syntax)
14797    }
14798    #[inline]
14799    pub fn privileges(&self) -> Option<Privileges> {
14800        support::child(&self.syntax)
14801    }
14802    #[inline]
14803    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14804        support::child(&self.syntax)
14805    }
14806    #[inline]
14807    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14808        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14809    }
14810    #[inline]
14811    pub fn for_token(&self) -> Option<SyntaxToken> {
14812        support::token(&self.syntax, SyntaxKind::FOR_KW)
14813    }
14814    #[inline]
14815    pub fn from_token(&self) -> Option<SyntaxToken> {
14816        support::token(&self.syntax, SyntaxKind::FROM_KW)
14817    }
14818    #[inline]
14819    pub fn grant_token(&self) -> Option<SyntaxToken> {
14820        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14821    }
14822    #[inline]
14823    pub fn on_token(&self) -> Option<SyntaxToken> {
14824        support::token(&self.syntax, SyntaxKind::ON_KW)
14825    }
14826    #[inline]
14827    pub fn option_token(&self) -> Option<SyntaxToken> {
14828        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14829    }
14830    #[inline]
14831    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14832        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14833    }
14834    #[inline]
14835    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14836        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14837    }
14838}
14839
14840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14841pub struct Role {
14842    pub(crate) syntax: SyntaxNode,
14843}
14844impl Role {
14845    #[inline]
14846    pub fn name(&self) -> Option<Name> {
14847        support::child(&self.syntax)
14848    }
14849    #[inline]
14850    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14851        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14852    }
14853    #[inline]
14854    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14855        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14856    }
14857    #[inline]
14858    pub fn group_token(&self) -> Option<SyntaxToken> {
14859        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14860    }
14861    #[inline]
14862    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14863        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14864    }
14865}
14866
14867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14868pub struct RoleOption {
14869    pub(crate) syntax: SyntaxNode,
14870}
14871impl RoleOption {
14872    #[inline]
14873    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14874        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14875    }
14876}
14877
14878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14879pub struct RoleOptionList {
14880    pub(crate) syntax: SyntaxNode,
14881}
14882impl RoleOptionList {
14883    #[inline]
14884    pub fn role_options(&self) -> AstChildren<RoleOption> {
14885        support::children(&self.syntax)
14886    }
14887    #[inline]
14888    pub fn with_token(&self) -> Option<SyntaxToken> {
14889        support::token(&self.syntax, SyntaxKind::WITH_KW)
14890    }
14891}
14892
14893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14894pub struct RoleRef {
14895    pub(crate) syntax: SyntaxNode,
14896}
14897impl RoleRef {
14898    #[inline]
14899    pub fn name_ref(&self) -> Option<NameRef> {
14900        support::child(&self.syntax)
14901    }
14902    #[inline]
14903    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14904        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14905    }
14906    #[inline]
14907    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14908        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14909    }
14910    #[inline]
14911    pub fn group_token(&self) -> Option<SyntaxToken> {
14912        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14913    }
14914    #[inline]
14915    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14916        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14917    }
14918}
14919
14920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14921pub struct RoleRefList {
14922    pub(crate) syntax: SyntaxNode,
14923}
14924impl RoleRefList {
14925    #[inline]
14926    pub fn role_refs(&self) -> AstChildren<RoleRef> {
14927        support::children(&self.syntax)
14928    }
14929}
14930
14931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14932pub struct Rollback {
14933    pub(crate) syntax: SyntaxNode,
14934}
14935impl Rollback {
14936    #[inline]
14937    pub fn literal(&self) -> Option<Literal> {
14938        support::child(&self.syntax)
14939    }
14940    #[inline]
14941    pub fn name_ref(&self) -> Option<NameRef> {
14942        support::child(&self.syntax)
14943    }
14944    #[inline]
14945    pub fn abort_token(&self) -> Option<SyntaxToken> {
14946        support::token(&self.syntax, SyntaxKind::ABORT_KW)
14947    }
14948    #[inline]
14949    pub fn and_token(&self) -> Option<SyntaxToken> {
14950        support::token(&self.syntax, SyntaxKind::AND_KW)
14951    }
14952    #[inline]
14953    pub fn chain_token(&self) -> Option<SyntaxToken> {
14954        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
14955    }
14956    #[inline]
14957    pub fn no_token(&self) -> Option<SyntaxToken> {
14958        support::token(&self.syntax, SyntaxKind::NO_KW)
14959    }
14960    #[inline]
14961    pub fn prepared_token(&self) -> Option<SyntaxToken> {
14962        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
14963    }
14964    #[inline]
14965    pub fn rollback_token(&self) -> Option<SyntaxToken> {
14966        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
14967    }
14968    #[inline]
14969    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14970        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14971    }
14972    #[inline]
14973    pub fn to_token(&self) -> Option<SyntaxToken> {
14974        support::token(&self.syntax, SyntaxKind::TO_KW)
14975    }
14976    #[inline]
14977    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14978        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14979    }
14980    #[inline]
14981    pub fn work_token(&self) -> Option<SyntaxToken> {
14982        support::token(&self.syntax, SyntaxKind::WORK_KW)
14983    }
14984}
14985
14986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14987pub struct Row {
14988    pub(crate) syntax: SyntaxNode,
14989}
14990impl Row {
14991    #[inline]
14992    pub fn exprs(&self) -> AstChildren<Expr> {
14993        support::children(&self.syntax)
14994    }
14995}
14996
14997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14998pub struct RowList {
14999    pub(crate) syntax: SyntaxNode,
15000}
15001impl RowList {
15002    #[inline]
15003    pub fn rows(&self) -> AstChildren<Row> {
15004        support::children(&self.syntax)
15005    }
15006}
15007
15008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15009pub struct RowsFuncOption {
15010    pub(crate) syntax: SyntaxNode,
15011}
15012impl RowsFuncOption {
15013    #[inline]
15014    pub fn rows_token(&self) -> Option<SyntaxToken> {
15015        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15016    }
15017}
15018
15019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15020pub struct Savepoint {
15021    pub(crate) syntax: SyntaxNode,
15022}
15023impl Savepoint {
15024    #[inline]
15025    pub fn name(&self) -> Option<Name> {
15026        support::child(&self.syntax)
15027    }
15028    #[inline]
15029    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15030        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15031    }
15032}
15033
15034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15035pub struct SecurityFuncOption {
15036    pub(crate) syntax: SyntaxNode,
15037}
15038impl SecurityFuncOption {
15039    #[inline]
15040    pub fn definer_token(&self) -> Option<SyntaxToken> {
15041        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15042    }
15043    #[inline]
15044    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15045        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15046    }
15047    #[inline]
15048    pub fn security_token(&self) -> Option<SyntaxToken> {
15049        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15050    }
15051}
15052
15053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15054pub struct SecurityLabel {
15055    pub(crate) syntax: SyntaxNode,
15056}
15057impl SecurityLabel {
15058    #[inline]
15059    pub fn aggregate(&self) -> Option<Aggregate> {
15060        support::child(&self.syntax)
15061    }
15062    #[inline]
15063    pub fn for_provider(&self) -> Option<ForProvider> {
15064        support::child(&self.syntax)
15065    }
15066    #[inline]
15067    pub fn function_sig(&self) -> Option<FunctionSig> {
15068        support::child(&self.syntax)
15069    }
15070    #[inline]
15071    pub fn literal(&self) -> Option<Literal> {
15072        support::child(&self.syntax)
15073    }
15074    #[inline]
15075    pub fn path(&self) -> Option<Path> {
15076        support::child(&self.syntax)
15077    }
15078    #[inline]
15079    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15080        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15081    }
15082    #[inline]
15083    pub fn column_token(&self) -> Option<SyntaxToken> {
15084        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15085    }
15086    #[inline]
15087    pub fn database_token(&self) -> Option<SyntaxToken> {
15088        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15089    }
15090    #[inline]
15091    pub fn domain_token(&self) -> Option<SyntaxToken> {
15092        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15093    }
15094    #[inline]
15095    pub fn event_token(&self) -> Option<SyntaxToken> {
15096        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15097    }
15098    #[inline]
15099    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15100        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15101    }
15102    #[inline]
15103    pub fn function_token(&self) -> Option<SyntaxToken> {
15104        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15105    }
15106    #[inline]
15107    pub fn is_token(&self) -> Option<SyntaxToken> {
15108        support::token(&self.syntax, SyntaxKind::IS_KW)
15109    }
15110    #[inline]
15111    pub fn label_token(&self) -> Option<SyntaxToken> {
15112        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15113    }
15114    #[inline]
15115    pub fn language_token(&self) -> Option<SyntaxToken> {
15116        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15117    }
15118    #[inline]
15119    pub fn large_token(&self) -> Option<SyntaxToken> {
15120        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15121    }
15122    #[inline]
15123    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15124        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15125    }
15126    #[inline]
15127    pub fn null_token(&self) -> Option<SyntaxToken> {
15128        support::token(&self.syntax, SyntaxKind::NULL_KW)
15129    }
15130    #[inline]
15131    pub fn object_token(&self) -> Option<SyntaxToken> {
15132        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15133    }
15134    #[inline]
15135    pub fn on_token(&self) -> Option<SyntaxToken> {
15136        support::token(&self.syntax, SyntaxKind::ON_KW)
15137    }
15138    #[inline]
15139    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15140        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15141    }
15142    #[inline]
15143    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15144        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15145    }
15146    #[inline]
15147    pub fn publication_token(&self) -> Option<SyntaxToken> {
15148        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15149    }
15150    #[inline]
15151    pub fn role_token(&self) -> Option<SyntaxToken> {
15152        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15153    }
15154    #[inline]
15155    pub fn routine_token(&self) -> Option<SyntaxToken> {
15156        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15157    }
15158    #[inline]
15159    pub fn schema_token(&self) -> Option<SyntaxToken> {
15160        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15161    }
15162    #[inline]
15163    pub fn security_token(&self) -> Option<SyntaxToken> {
15164        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15165    }
15166    #[inline]
15167    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15168        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15169    }
15170    #[inline]
15171    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15172        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15173    }
15174    #[inline]
15175    pub fn table_token(&self) -> Option<SyntaxToken> {
15176        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15177    }
15178    #[inline]
15179    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15180        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15181    }
15182    #[inline]
15183    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15184        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15185    }
15186    #[inline]
15187    pub fn type_token(&self) -> Option<SyntaxToken> {
15188        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15189    }
15190    #[inline]
15191    pub fn view_token(&self) -> Option<SyntaxToken> {
15192        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15193    }
15194}
15195
15196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15197pub struct Select {
15198    pub(crate) syntax: SyntaxNode,
15199}
15200impl Select {
15201    #[inline]
15202    pub fn fetch_clause(&self) -> Option<FetchClause> {
15203        support::child(&self.syntax)
15204    }
15205    #[inline]
15206    pub fn filter_clause(&self) -> Option<FilterClause> {
15207        support::child(&self.syntax)
15208    }
15209    #[inline]
15210    pub fn from_clause(&self) -> Option<FromClause> {
15211        support::child(&self.syntax)
15212    }
15213    #[inline]
15214    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15215        support::child(&self.syntax)
15216    }
15217    #[inline]
15218    pub fn having_clause(&self) -> Option<HavingClause> {
15219        support::child(&self.syntax)
15220    }
15221    #[inline]
15222    pub fn limit_clause(&self) -> Option<LimitClause> {
15223        support::child(&self.syntax)
15224    }
15225    #[inline]
15226    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15227        support::children(&self.syntax)
15228    }
15229    #[inline]
15230    pub fn offset_clause(&self) -> Option<OffsetClause> {
15231        support::child(&self.syntax)
15232    }
15233    #[inline]
15234    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15235        support::child(&self.syntax)
15236    }
15237    #[inline]
15238    pub fn select_clause(&self) -> Option<SelectClause> {
15239        support::child(&self.syntax)
15240    }
15241    #[inline]
15242    pub fn where_clause(&self) -> Option<WhereClause> {
15243        support::child(&self.syntax)
15244    }
15245    #[inline]
15246    pub fn window_clause(&self) -> Option<WindowClause> {
15247        support::child(&self.syntax)
15248    }
15249    #[inline]
15250    pub fn with_clause(&self) -> Option<WithClause> {
15251        support::child(&self.syntax)
15252    }
15253}
15254
15255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15256pub struct SelectClause {
15257    pub(crate) syntax: SyntaxNode,
15258}
15259impl SelectClause {
15260    #[inline]
15261    pub fn distinct_clause(&self) -> Option<DistinctClause> {
15262        support::child(&self.syntax)
15263    }
15264    #[inline]
15265    pub fn target_list(&self) -> Option<TargetList> {
15266        support::child(&self.syntax)
15267    }
15268    #[inline]
15269    pub fn all_token(&self) -> Option<SyntaxToken> {
15270        support::token(&self.syntax, SyntaxKind::ALL_KW)
15271    }
15272    #[inline]
15273    pub fn select_token(&self) -> Option<SyntaxToken> {
15274        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15275    }
15276}
15277
15278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15279pub struct SelectInto {
15280    pub(crate) syntax: SyntaxNode,
15281}
15282impl SelectInto {
15283    #[inline]
15284    pub fn filter_clause(&self) -> Option<FilterClause> {
15285        support::child(&self.syntax)
15286    }
15287    #[inline]
15288    pub fn from_clause(&self) -> Option<FromClause> {
15289        support::child(&self.syntax)
15290    }
15291    #[inline]
15292    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15293        support::child(&self.syntax)
15294    }
15295    #[inline]
15296    pub fn having_clause(&self) -> Option<HavingClause> {
15297        support::child(&self.syntax)
15298    }
15299    #[inline]
15300    pub fn into_clause(&self) -> Option<IntoClause> {
15301        support::child(&self.syntax)
15302    }
15303    #[inline]
15304    pub fn limit_clause(&self) -> Option<LimitClause> {
15305        support::child(&self.syntax)
15306    }
15307    #[inline]
15308    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15309        support::children(&self.syntax)
15310    }
15311    #[inline]
15312    pub fn offset_clause(&self) -> Option<OffsetClause> {
15313        support::child(&self.syntax)
15314    }
15315    #[inline]
15316    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15317        support::child(&self.syntax)
15318    }
15319    #[inline]
15320    pub fn select_clause(&self) -> Option<SelectClause> {
15321        support::child(&self.syntax)
15322    }
15323    #[inline]
15324    pub fn where_clause(&self) -> Option<WhereClause> {
15325        support::child(&self.syntax)
15326    }
15327    #[inline]
15328    pub fn window_clause(&self) -> Option<WindowClause> {
15329        support::child(&self.syntax)
15330    }
15331    #[inline]
15332    pub fn with_clause(&self) -> Option<WithClause> {
15333        support::child(&self.syntax)
15334    }
15335}
15336
15337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15338pub struct SequenceOption {
15339    pub(crate) syntax: SyntaxNode,
15340}
15341impl SequenceOption {
15342    #[inline]
15343    pub fn literal(&self) -> Option<Literal> {
15344        support::child(&self.syntax)
15345    }
15346    #[inline]
15347    pub fn name_ref(&self) -> Option<NameRef> {
15348        support::child(&self.syntax)
15349    }
15350    #[inline]
15351    pub fn path(&self) -> Option<Path> {
15352        support::child(&self.syntax)
15353    }
15354    #[inline]
15355    pub fn ty(&self) -> Option<Type> {
15356        support::child(&self.syntax)
15357    }
15358    #[inline]
15359    pub fn as_token(&self) -> Option<SyntaxToken> {
15360        support::token(&self.syntax, SyntaxKind::AS_KW)
15361    }
15362    #[inline]
15363    pub fn by_token(&self) -> Option<SyntaxToken> {
15364        support::token(&self.syntax, SyntaxKind::BY_KW)
15365    }
15366    #[inline]
15367    pub fn cycle_token(&self) -> Option<SyntaxToken> {
15368        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
15369    }
15370    #[inline]
15371    pub fn increment_token(&self) -> Option<SyntaxToken> {
15372        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
15373    }
15374    #[inline]
15375    pub fn logged_token(&self) -> Option<SyntaxToken> {
15376        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15377    }
15378    #[inline]
15379    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
15380        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
15381    }
15382    #[inline]
15383    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
15384        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
15385    }
15386    #[inline]
15387    pub fn name_token(&self) -> Option<SyntaxToken> {
15388        support::token(&self.syntax, SyntaxKind::NAME_KW)
15389    }
15390    #[inline]
15391    pub fn no_token(&self) -> Option<SyntaxToken> {
15392        support::token(&self.syntax, SyntaxKind::NO_KW)
15393    }
15394    #[inline]
15395    pub fn none_token(&self) -> Option<SyntaxToken> {
15396        support::token(&self.syntax, SyntaxKind::NONE_KW)
15397    }
15398    #[inline]
15399    pub fn owned_token(&self) -> Option<SyntaxToken> {
15400        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15401    }
15402    #[inline]
15403    pub fn restart_token(&self) -> Option<SyntaxToken> {
15404        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15405    }
15406    #[inline]
15407    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15408        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15409    }
15410    #[inline]
15411    pub fn start_token(&self) -> Option<SyntaxToken> {
15412        support::token(&self.syntax, SyntaxKind::START_KW)
15413    }
15414    #[inline]
15415    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
15416        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
15417    }
15418    #[inline]
15419    pub fn with_token(&self) -> Option<SyntaxToken> {
15420        support::token(&self.syntax, SyntaxKind::WITH_KW)
15421    }
15422}
15423
15424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15425pub struct SequenceOptionList {
15426    pub(crate) syntax: SyntaxNode,
15427}
15428impl SequenceOptionList {
15429    #[inline]
15430    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
15431        support::children(&self.syntax)
15432    }
15433    #[inline]
15434    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15435        support::token(&self.syntax, SyntaxKind::L_PAREN)
15436    }
15437    #[inline]
15438    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15439        support::token(&self.syntax, SyntaxKind::R_PAREN)
15440    }
15441}
15442
15443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15444pub struct Serializable {
15445    pub(crate) syntax: SyntaxNode,
15446}
15447impl Serializable {
15448    #[inline]
15449    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15450        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15451    }
15452    #[inline]
15453    pub fn level_token(&self) -> Option<SyntaxToken> {
15454        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15455    }
15456    #[inline]
15457    pub fn serializable_token(&self) -> Option<SyntaxToken> {
15458        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
15459    }
15460}
15461
15462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15463pub struct ServerName {
15464    pub(crate) syntax: SyntaxNode,
15465}
15466impl ServerName {
15467    #[inline]
15468    pub fn name_ref(&self) -> Option<NameRef> {
15469        support::child(&self.syntax)
15470    }
15471    #[inline]
15472    pub fn server_token(&self) -> Option<SyntaxToken> {
15473        support::token(&self.syntax, SyntaxKind::SERVER_KW)
15474    }
15475}
15476
15477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15478pub struct Set {
15479    pub(crate) syntax: SyntaxNode,
15480}
15481impl Set {
15482    #[inline]
15483    pub fn config_value(&self) -> Option<ConfigValue> {
15484        support::child(&self.syntax)
15485    }
15486    #[inline]
15487    pub fn config_values(&self) -> AstChildren<ConfigValue> {
15488        support::children(&self.syntax)
15489    }
15490    #[inline]
15491    pub fn literal(&self) -> Option<Literal> {
15492        support::child(&self.syntax)
15493    }
15494    #[inline]
15495    pub fn path(&self) -> Option<Path> {
15496        support::child(&self.syntax)
15497    }
15498    #[inline]
15499    pub fn eq_token(&self) -> Option<SyntaxToken> {
15500        support::token(&self.syntax, SyntaxKind::EQ)
15501    }
15502    #[inline]
15503    pub fn catalog_token(&self) -> Option<SyntaxToken> {
15504        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
15505    }
15506    #[inline]
15507    pub fn content_token(&self) -> Option<SyntaxToken> {
15508        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15509    }
15510    #[inline]
15511    pub fn current_token(&self) -> Option<SyntaxToken> {
15512        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15513    }
15514    #[inline]
15515    pub fn default_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15517    }
15518    #[inline]
15519    pub fn document_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15521    }
15522    #[inline]
15523    pub fn from_token(&self) -> Option<SyntaxToken> {
15524        support::token(&self.syntax, SyntaxKind::FROM_KW)
15525    }
15526    #[inline]
15527    pub fn local_token(&self) -> Option<SyntaxToken> {
15528        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15529    }
15530    #[inline]
15531    pub fn option_token(&self) -> Option<SyntaxToken> {
15532        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15533    }
15534    #[inline]
15535    pub fn schema_token(&self) -> Option<SyntaxToken> {
15536        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15537    }
15538    #[inline]
15539    pub fn session_token(&self) -> Option<SyntaxToken> {
15540        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15541    }
15542    #[inline]
15543    pub fn set_token(&self) -> Option<SyntaxToken> {
15544        support::token(&self.syntax, SyntaxKind::SET_KW)
15545    }
15546    #[inline]
15547    pub fn time_token(&self) -> Option<SyntaxToken> {
15548        support::token(&self.syntax, SyntaxKind::TIME_KW)
15549    }
15550    #[inline]
15551    pub fn to_token(&self) -> Option<SyntaxToken> {
15552        support::token(&self.syntax, SyntaxKind::TO_KW)
15553    }
15554    #[inline]
15555    pub fn xml_token(&self) -> Option<SyntaxToken> {
15556        support::token(&self.syntax, SyntaxKind::XML_KW)
15557    }
15558    #[inline]
15559    pub fn zone_token(&self) -> Option<SyntaxToken> {
15560        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15561    }
15562}
15563
15564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15565pub struct SetAccessMethod {
15566    pub(crate) syntax: SyntaxNode,
15567}
15568impl SetAccessMethod {
15569    #[inline]
15570    pub fn name_ref(&self) -> Option<NameRef> {
15571        support::child(&self.syntax)
15572    }
15573    #[inline]
15574    pub fn access_token(&self) -> Option<SyntaxToken> {
15575        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
15576    }
15577    #[inline]
15578    pub fn method_token(&self) -> Option<SyntaxToken> {
15579        support::token(&self.syntax, SyntaxKind::METHOD_KW)
15580    }
15581    #[inline]
15582    pub fn set_token(&self) -> Option<SyntaxToken> {
15583        support::token(&self.syntax, SyntaxKind::SET_KW)
15584    }
15585}
15586
15587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15588pub struct SetClause {
15589    pub(crate) syntax: SyntaxNode,
15590}
15591impl SetClause {
15592    #[inline]
15593    pub fn set_column_list(&self) -> Option<SetColumnList> {
15594        support::child(&self.syntax)
15595    }
15596    #[inline]
15597    pub fn set_token(&self) -> Option<SyntaxToken> {
15598        support::token(&self.syntax, SyntaxKind::SET_KW)
15599    }
15600}
15601
15602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15603pub struct SetColumnList {
15604    pub(crate) syntax: SyntaxNode,
15605}
15606impl SetColumnList {
15607    #[inline]
15608    pub fn set_columns(&self) -> AstChildren<SetColumn> {
15609        support::children(&self.syntax)
15610    }
15611}
15612
15613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15614pub struct SetCompression {
15615    pub(crate) syntax: SyntaxNode,
15616}
15617impl SetCompression {
15618    #[inline]
15619    pub fn compression_token(&self) -> Option<SyntaxToken> {
15620        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
15621    }
15622    #[inline]
15623    pub fn set_token(&self) -> Option<SyntaxToken> {
15624        support::token(&self.syntax, SyntaxKind::SET_KW)
15625    }
15626}
15627
15628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15629pub struct SetConfigParam {
15630    pub(crate) syntax: SyntaxNode,
15631}
15632impl SetConfigParam {
15633    #[inline]
15634    pub fn path(&self) -> Option<Path> {
15635        support::child(&self.syntax)
15636    }
15637    #[inline]
15638    pub fn set_token(&self) -> Option<SyntaxToken> {
15639        support::token(&self.syntax, SyntaxKind::SET_KW)
15640    }
15641}
15642
15643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15644pub struct SetConstraints {
15645    pub(crate) syntax: SyntaxNode,
15646}
15647impl SetConstraints {
15648    #[inline]
15649    pub fn paths(&self) -> AstChildren<Path> {
15650        support::children(&self.syntax)
15651    }
15652    #[inline]
15653    pub fn all_token(&self) -> Option<SyntaxToken> {
15654        support::token(&self.syntax, SyntaxKind::ALL_KW)
15655    }
15656    #[inline]
15657    pub fn constraints_token(&self) -> Option<SyntaxToken> {
15658        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
15659    }
15660    #[inline]
15661    pub fn deferred_token(&self) -> Option<SyntaxToken> {
15662        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
15663    }
15664    #[inline]
15665    pub fn immediate_token(&self) -> Option<SyntaxToken> {
15666        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
15667    }
15668    #[inline]
15669    pub fn set_token(&self) -> Option<SyntaxToken> {
15670        support::token(&self.syntax, SyntaxKind::SET_KW)
15671    }
15672}
15673
15674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15675pub struct SetDefault {
15676    pub(crate) syntax: SyntaxNode,
15677}
15678impl SetDefault {
15679    #[inline]
15680    pub fn expr(&self) -> Option<Expr> {
15681        support::child(&self.syntax)
15682    }
15683    #[inline]
15684    pub fn default_token(&self) -> Option<SyntaxToken> {
15685        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15686    }
15687    #[inline]
15688    pub fn set_token(&self) -> Option<SyntaxToken> {
15689        support::token(&self.syntax, SyntaxKind::SET_KW)
15690    }
15691}
15692
15693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15694pub struct SetDefaultColumns {
15695    pub(crate) syntax: SyntaxNode,
15696}
15697impl SetDefaultColumns {
15698    #[inline]
15699    pub fn column_list(&self) -> Option<ColumnList> {
15700        support::child(&self.syntax)
15701    }
15702    #[inline]
15703    pub fn default_token(&self) -> Option<SyntaxToken> {
15704        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15705    }
15706    #[inline]
15707    pub fn set_token(&self) -> Option<SyntaxToken> {
15708        support::token(&self.syntax, SyntaxKind::SET_KW)
15709    }
15710}
15711
15712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15713pub struct SetExpr {
15714    pub(crate) syntax: SyntaxNode,
15715}
15716impl SetExpr {
15717    #[inline]
15718    pub fn expr(&self) -> Option<Expr> {
15719        support::child(&self.syntax)
15720    }
15721    #[inline]
15722    pub fn default_token(&self) -> Option<SyntaxToken> {
15723        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15724    }
15725}
15726
15727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15728pub struct SetExprList {
15729    pub(crate) syntax: SyntaxNode,
15730}
15731impl SetExprList {
15732    #[inline]
15733    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
15734        support::children(&self.syntax)
15735    }
15736    #[inline]
15737    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15738        support::token(&self.syntax, SyntaxKind::L_PAREN)
15739    }
15740    #[inline]
15741    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15742        support::token(&self.syntax, SyntaxKind::R_PAREN)
15743    }
15744    #[inline]
15745    pub fn row_token(&self) -> Option<SyntaxToken> {
15746        support::token(&self.syntax, SyntaxKind::ROW_KW)
15747    }
15748}
15749
15750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15751pub struct SetExpression {
15752    pub(crate) syntax: SyntaxNode,
15753}
15754impl SetExpression {
15755    #[inline]
15756    pub fn expr(&self) -> Option<Expr> {
15757        support::child(&self.syntax)
15758    }
15759    #[inline]
15760    pub fn expression_token(&self) -> Option<SyntaxToken> {
15761        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
15762    }
15763    #[inline]
15764    pub fn set_token(&self) -> Option<SyntaxToken> {
15765        support::token(&self.syntax, SyntaxKind::SET_KW)
15766    }
15767}
15768
15769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15770pub struct SetFuncOption {
15771    pub(crate) syntax: SyntaxNode,
15772}
15773impl SetFuncOption {
15774    #[inline]
15775    pub fn set_token(&self) -> Option<SyntaxToken> {
15776        support::token(&self.syntax, SyntaxKind::SET_KW)
15777    }
15778}
15779
15780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15781pub struct SetGenerated {
15782    pub(crate) syntax: SyntaxNode,
15783}
15784impl SetGenerated {
15785    #[inline]
15786    pub fn set_token(&self) -> Option<SyntaxToken> {
15787        support::token(&self.syntax, SyntaxKind::SET_KW)
15788    }
15789}
15790
15791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15792pub struct SetGeneratedOptions {
15793    pub(crate) syntax: SyntaxNode,
15794}
15795impl SetGeneratedOptions {
15796    #[inline]
15797    pub fn generated_token(&self) -> Option<SyntaxToken> {
15798        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
15799    }
15800    #[inline]
15801    pub fn set_token(&self) -> Option<SyntaxToken> {
15802        support::token(&self.syntax, SyntaxKind::SET_KW)
15803    }
15804}
15805
15806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15807pub struct SetLogged {
15808    pub(crate) syntax: SyntaxNode,
15809}
15810impl SetLogged {
15811    #[inline]
15812    pub fn logged_token(&self) -> Option<SyntaxToken> {
15813        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15814    }
15815    #[inline]
15816    pub fn set_token(&self) -> Option<SyntaxToken> {
15817        support::token(&self.syntax, SyntaxKind::SET_KW)
15818    }
15819}
15820
15821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15822pub struct SetMultipleColumns {
15823    pub(crate) syntax: SyntaxNode,
15824}
15825impl SetMultipleColumns {
15826    #[inline]
15827    pub fn column_list(&self) -> Option<ColumnList> {
15828        support::child(&self.syntax)
15829    }
15830    #[inline]
15831    pub fn paren_select(&self) -> Option<ParenSelect> {
15832        support::child(&self.syntax)
15833    }
15834    #[inline]
15835    pub fn set_expr_list(&self) -> Option<SetExprList> {
15836        support::child(&self.syntax)
15837    }
15838    #[inline]
15839    pub fn eq_token(&self) -> Option<SyntaxToken> {
15840        support::token(&self.syntax, SyntaxKind::EQ)
15841    }
15842}
15843
15844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15845pub struct SetNotNull {
15846    pub(crate) syntax: SyntaxNode,
15847}
15848impl SetNotNull {
15849    #[inline]
15850    pub fn not_token(&self) -> Option<SyntaxToken> {
15851        support::token(&self.syntax, SyntaxKind::NOT_KW)
15852    }
15853    #[inline]
15854    pub fn null_token(&self) -> Option<SyntaxToken> {
15855        support::token(&self.syntax, SyntaxKind::NULL_KW)
15856    }
15857    #[inline]
15858    pub fn set_token(&self) -> Option<SyntaxToken> {
15859        support::token(&self.syntax, SyntaxKind::SET_KW)
15860    }
15861}
15862
15863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15864pub struct SetNullColumns {
15865    pub(crate) syntax: SyntaxNode,
15866}
15867impl SetNullColumns {
15868    #[inline]
15869    pub fn column_list(&self) -> Option<ColumnList> {
15870        support::child(&self.syntax)
15871    }
15872    #[inline]
15873    pub fn null_token(&self) -> Option<SyntaxToken> {
15874        support::token(&self.syntax, SyntaxKind::NULL_KW)
15875    }
15876    #[inline]
15877    pub fn set_token(&self) -> Option<SyntaxToken> {
15878        support::token(&self.syntax, SyntaxKind::SET_KW)
15879    }
15880}
15881
15882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15883pub struct SetOptions {
15884    pub(crate) syntax: SyntaxNode,
15885}
15886impl SetOptions {
15887    #[inline]
15888    pub fn attribute_list(&self) -> Option<AttributeList> {
15889        support::child(&self.syntax)
15890    }
15891    #[inline]
15892    pub fn set_token(&self) -> Option<SyntaxToken> {
15893        support::token(&self.syntax, SyntaxKind::SET_KW)
15894    }
15895}
15896
15897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15898pub struct SetOptionsList {
15899    pub(crate) syntax: SyntaxNode,
15900}
15901impl SetOptionsList {
15902    #[inline]
15903    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
15904        support::child(&self.syntax)
15905    }
15906    #[inline]
15907    pub fn options_token(&self) -> Option<SyntaxToken> {
15908        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15909    }
15910    #[inline]
15911    pub fn set_token(&self) -> Option<SyntaxToken> {
15912        support::token(&self.syntax, SyntaxKind::SET_KW)
15913    }
15914}
15915
15916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15917pub struct SetRole {
15918    pub(crate) syntax: SyntaxNode,
15919}
15920impl SetRole {
15921    #[inline]
15922    pub fn role_ref(&self) -> Option<RoleRef> {
15923        support::child(&self.syntax)
15924    }
15925    #[inline]
15926    pub fn local_token(&self) -> Option<SyntaxToken> {
15927        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15928    }
15929    #[inline]
15930    pub fn none_token(&self) -> Option<SyntaxToken> {
15931        support::token(&self.syntax, SyntaxKind::NONE_KW)
15932    }
15933    #[inline]
15934    pub fn reset_token(&self) -> Option<SyntaxToken> {
15935        support::token(&self.syntax, SyntaxKind::RESET_KW)
15936    }
15937    #[inline]
15938    pub fn role_token(&self) -> Option<SyntaxToken> {
15939        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15940    }
15941    #[inline]
15942    pub fn session_token(&self) -> Option<SyntaxToken> {
15943        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15944    }
15945    #[inline]
15946    pub fn set_token(&self) -> Option<SyntaxToken> {
15947        support::token(&self.syntax, SyntaxKind::SET_KW)
15948    }
15949}
15950
15951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15952pub struct SetSchema {
15953    pub(crate) syntax: SyntaxNode,
15954}
15955impl SetSchema {
15956    #[inline]
15957    pub fn name_ref(&self) -> Option<NameRef> {
15958        support::child(&self.syntax)
15959    }
15960    #[inline]
15961    pub fn schema_token(&self) -> Option<SyntaxToken> {
15962        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15963    }
15964    #[inline]
15965    pub fn set_token(&self) -> Option<SyntaxToken> {
15966        support::token(&self.syntax, SyntaxKind::SET_KW)
15967    }
15968}
15969
15970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15971pub struct SetSequenceOption {
15972    pub(crate) syntax: SyntaxNode,
15973}
15974impl SetSequenceOption {
15975    #[inline]
15976    pub fn set_token(&self) -> Option<SyntaxToken> {
15977        support::token(&self.syntax, SyntaxKind::SET_KW)
15978    }
15979}
15980
15981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15982pub struct SetSessionAuth {
15983    pub(crate) syntax: SyntaxNode,
15984}
15985impl SetSessionAuth {
15986    #[inline]
15987    pub fn literal(&self) -> Option<Literal> {
15988        support::child(&self.syntax)
15989    }
15990    #[inline]
15991    pub fn role_ref(&self) -> Option<RoleRef> {
15992        support::child(&self.syntax)
15993    }
15994    #[inline]
15995    pub fn authorization_token(&self) -> Option<SyntaxToken> {
15996        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
15997    }
15998    #[inline]
15999    pub fn default_token(&self) -> Option<SyntaxToken> {
16000        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16001    }
16002    #[inline]
16003    pub fn local_token(&self) -> Option<SyntaxToken> {
16004        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16005    }
16006    #[inline]
16007    pub fn session_token(&self) -> Option<SyntaxToken> {
16008        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16009    }
16010    #[inline]
16011    pub fn set_token(&self) -> Option<SyntaxToken> {
16012        support::token(&self.syntax, SyntaxKind::SET_KW)
16013    }
16014}
16015
16016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16017pub struct SetSingleColumn {
16018    pub(crate) syntax: SyntaxNode,
16019}
16020impl SetSingleColumn {
16021    #[inline]
16022    pub fn column(&self) -> Option<Column> {
16023        support::child(&self.syntax)
16024    }
16025    #[inline]
16026    pub fn set_expr(&self) -> Option<SetExpr> {
16027        support::child(&self.syntax)
16028    }
16029    #[inline]
16030    pub fn eq_token(&self) -> Option<SyntaxToken> {
16031        support::token(&self.syntax, SyntaxKind::EQ)
16032    }
16033}
16034
16035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16036pub struct SetStatistics {
16037    pub(crate) syntax: SyntaxNode,
16038}
16039impl SetStatistics {
16040    #[inline]
16041    pub fn set_token(&self) -> Option<SyntaxToken> {
16042        support::token(&self.syntax, SyntaxKind::SET_KW)
16043    }
16044    #[inline]
16045    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16046        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16047    }
16048}
16049
16050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16051pub struct SetStorage {
16052    pub(crate) syntax: SyntaxNode,
16053}
16054impl SetStorage {
16055    #[inline]
16056    pub fn set_token(&self) -> Option<SyntaxToken> {
16057        support::token(&self.syntax, SyntaxKind::SET_KW)
16058    }
16059    #[inline]
16060    pub fn storage_token(&self) -> Option<SyntaxToken> {
16061        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16062    }
16063}
16064
16065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16066pub struct SetTablespace {
16067    pub(crate) syntax: SyntaxNode,
16068}
16069impl SetTablespace {
16070    #[inline]
16071    pub fn path(&self) -> Option<Path> {
16072        support::child(&self.syntax)
16073    }
16074    #[inline]
16075    pub fn set_token(&self) -> Option<SyntaxToken> {
16076        support::token(&self.syntax, SyntaxKind::SET_KW)
16077    }
16078    #[inline]
16079    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16080        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16081    }
16082}
16083
16084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16085pub struct SetTransaction {
16086    pub(crate) syntax: SyntaxNode,
16087}
16088impl SetTransaction {
16089    #[inline]
16090    pub fn literal(&self) -> Option<Literal> {
16091        support::child(&self.syntax)
16092    }
16093    #[inline]
16094    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16095        support::child(&self.syntax)
16096    }
16097    #[inline]
16098    pub fn as_token(&self) -> Option<SyntaxToken> {
16099        support::token(&self.syntax, SyntaxKind::AS_KW)
16100    }
16101    #[inline]
16102    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16103        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16104    }
16105    #[inline]
16106    pub fn session_token(&self) -> Option<SyntaxToken> {
16107        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16108    }
16109    #[inline]
16110    pub fn set_token(&self) -> Option<SyntaxToken> {
16111        support::token(&self.syntax, SyntaxKind::SET_KW)
16112    }
16113    #[inline]
16114    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16115        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16116    }
16117    #[inline]
16118    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16119        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16120    }
16121}
16122
16123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16124pub struct SetType {
16125    pub(crate) syntax: SyntaxNode,
16126}
16127impl SetType {
16128    #[inline]
16129    pub fn collate(&self) -> Option<Collate> {
16130        support::child(&self.syntax)
16131    }
16132    #[inline]
16133    pub fn ty(&self) -> Option<Type> {
16134        support::child(&self.syntax)
16135    }
16136    #[inline]
16137    pub fn set_token(&self) -> Option<SyntaxToken> {
16138        support::token(&self.syntax, SyntaxKind::SET_KW)
16139    }
16140    #[inline]
16141    pub fn type_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16143    }
16144}
16145
16146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16147pub struct SetUnlogged {
16148    pub(crate) syntax: SyntaxNode,
16149}
16150impl SetUnlogged {
16151    #[inline]
16152    pub fn set_token(&self) -> Option<SyntaxToken> {
16153        support::token(&self.syntax, SyntaxKind::SET_KW)
16154    }
16155    #[inline]
16156    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16157        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16158    }
16159}
16160
16161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16162pub struct SetWithoutCluster {
16163    pub(crate) syntax: SyntaxNode,
16164}
16165impl SetWithoutCluster {
16166    #[inline]
16167    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16168        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16169    }
16170    #[inline]
16171    pub fn set_token(&self) -> Option<SyntaxToken> {
16172        support::token(&self.syntax, SyntaxKind::SET_KW)
16173    }
16174    #[inline]
16175    pub fn without_token(&self) -> Option<SyntaxToken> {
16176        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16177    }
16178}
16179
16180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16181pub struct SetWithoutOids {
16182    pub(crate) syntax: SyntaxNode,
16183}
16184impl SetWithoutOids {
16185    #[inline]
16186    pub fn oids_token(&self) -> Option<SyntaxToken> {
16187        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16188    }
16189    #[inline]
16190    pub fn set_token(&self) -> Option<SyntaxToken> {
16191        support::token(&self.syntax, SyntaxKind::SET_KW)
16192    }
16193    #[inline]
16194    pub fn without_token(&self) -> Option<SyntaxToken> {
16195        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16196    }
16197}
16198
16199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16200pub struct Show {
16201    pub(crate) syntax: SyntaxNode,
16202}
16203impl Show {
16204    #[inline]
16205    pub fn show_token(&self) -> Option<SyntaxToken> {
16206        support::token(&self.syntax, SyntaxKind::SHOW_KW)
16207    }
16208}
16209
16210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16211pub struct SimilarTo {
16212    pub(crate) syntax: SyntaxNode,
16213}
16214impl SimilarTo {
16215    #[inline]
16216    pub fn similar_token(&self) -> Option<SyntaxToken> {
16217        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16218    }
16219    #[inline]
16220    pub fn to_token(&self) -> Option<SyntaxToken> {
16221        support::token(&self.syntax, SyntaxKind::TO_KW)
16222    }
16223}
16224
16225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16226pub struct SliceExpr {
16227    pub(crate) syntax: SyntaxNode,
16228}
16229impl SliceExpr {
16230    #[inline]
16231    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
16232        support::token(&self.syntax, SyntaxKind::L_BRACK)
16233    }
16234    #[inline]
16235    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
16236        support::token(&self.syntax, SyntaxKind::R_BRACK)
16237    }
16238    #[inline]
16239    pub fn colon_token(&self) -> Option<SyntaxToken> {
16240        support::token(&self.syntax, SyntaxKind::COLON)
16241    }
16242}
16243
16244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16245pub struct SomeFn {
16246    pub(crate) syntax: SyntaxNode,
16247}
16248impl SomeFn {
16249    #[inline]
16250    pub fn expr(&self) -> Option<Expr> {
16251        support::child(&self.syntax)
16252    }
16253    #[inline]
16254    pub fn select_variant(&self) -> Option<SelectVariant> {
16255        support::child(&self.syntax)
16256    }
16257    #[inline]
16258    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16259        support::token(&self.syntax, SyntaxKind::L_PAREN)
16260    }
16261    #[inline]
16262    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::R_PAREN)
16264    }
16265    #[inline]
16266    pub fn some_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::SOME_KW)
16268    }
16269}
16270
16271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16272pub struct SortAsc {
16273    pub(crate) syntax: SyntaxNode,
16274}
16275impl SortAsc {
16276    #[inline]
16277    pub fn asc_token(&self) -> Option<SyntaxToken> {
16278        support::token(&self.syntax, SyntaxKind::ASC_KW)
16279    }
16280}
16281
16282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16283pub struct SortBy {
16284    pub(crate) syntax: SyntaxNode,
16285}
16286impl SortBy {
16287    #[inline]
16288    pub fn expr(&self) -> Option<Expr> {
16289        support::child(&self.syntax)
16290    }
16291    #[inline]
16292    pub fn nulls_first(&self) -> Option<NullsFirst> {
16293        support::child(&self.syntax)
16294    }
16295    #[inline]
16296    pub fn nulls_last(&self) -> Option<NullsLast> {
16297        support::child(&self.syntax)
16298    }
16299    #[inline]
16300    pub fn sort_asc(&self) -> Option<SortAsc> {
16301        support::child(&self.syntax)
16302    }
16303    #[inline]
16304    pub fn sort_desc(&self) -> Option<SortDesc> {
16305        support::child(&self.syntax)
16306    }
16307    #[inline]
16308    pub fn sort_using(&self) -> Option<SortUsing> {
16309        support::child(&self.syntax)
16310    }
16311}
16312
16313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16314pub struct SortByList {
16315    pub(crate) syntax: SyntaxNode,
16316}
16317impl SortByList {
16318    #[inline]
16319    pub fn sort_bys(&self) -> AstChildren<SortBy> {
16320        support::children(&self.syntax)
16321    }
16322}
16323
16324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16325pub struct SortDesc {
16326    pub(crate) syntax: SyntaxNode,
16327}
16328impl SortDesc {
16329    #[inline]
16330    pub fn desc_token(&self) -> Option<SyntaxToken> {
16331        support::token(&self.syntax, SyntaxKind::DESC_KW)
16332    }
16333}
16334
16335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16336pub struct SortUsing {
16337    pub(crate) syntax: SyntaxNode,
16338}
16339impl SortUsing {
16340    #[inline]
16341    pub fn op(&self) -> Option<Op> {
16342        support::child(&self.syntax)
16343    }
16344    #[inline]
16345    pub fn using_token(&self) -> Option<SyntaxToken> {
16346        support::token(&self.syntax, SyntaxKind::USING_KW)
16347    }
16348}
16349
16350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16351pub struct SourceFile {
16352    pub(crate) syntax: SyntaxNode,
16353}
16354impl SourceFile {
16355    #[inline]
16356    pub fn stmts(&self) -> AstChildren<Stmt> {
16357        support::children(&self.syntax)
16358    }
16359}
16360
16361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16362pub struct SourceVertexTable {
16363    pub(crate) syntax: SyntaxNode,
16364}
16365impl SourceVertexTable {
16366    #[inline]
16367    pub fn column_list(&self) -> Option<ColumnList> {
16368        support::child(&self.syntax)
16369    }
16370    #[inline]
16371    pub fn name(&self) -> Option<Name> {
16372        support::child(&self.syntax)
16373    }
16374    #[inline]
16375    pub fn name_ref(&self) -> Option<NameRef> {
16376        support::child(&self.syntax)
16377    }
16378    #[inline]
16379    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16380        support::token(&self.syntax, SyntaxKind::L_PAREN)
16381    }
16382    #[inline]
16383    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16384        support::token(&self.syntax, SyntaxKind::R_PAREN)
16385    }
16386    #[inline]
16387    pub fn key_token(&self) -> Option<SyntaxToken> {
16388        support::token(&self.syntax, SyntaxKind::KEY_KW)
16389    }
16390    #[inline]
16391    pub fn references_token(&self) -> Option<SyntaxToken> {
16392        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
16393    }
16394    #[inline]
16395    pub fn source_token(&self) -> Option<SyntaxToken> {
16396        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
16397    }
16398}
16399
16400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16401pub struct SplitPartition {
16402    pub(crate) syntax: SyntaxNode,
16403}
16404impl SplitPartition {
16405    #[inline]
16406    pub fn partition_list(&self) -> Option<PartitionList> {
16407        support::child(&self.syntax)
16408    }
16409    #[inline]
16410    pub fn into_token(&self) -> Option<SyntaxToken> {
16411        support::token(&self.syntax, SyntaxKind::INTO_KW)
16412    }
16413    #[inline]
16414    pub fn partition_token(&self) -> Option<SyntaxToken> {
16415        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16416    }
16417    #[inline]
16418    pub fn split_token(&self) -> Option<SyntaxToken> {
16419        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
16420    }
16421}
16422
16423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16424pub struct Storage {
16425    pub(crate) syntax: SyntaxNode,
16426}
16427impl Storage {
16428    #[inline]
16429    pub fn default_token(&self) -> Option<SyntaxToken> {
16430        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16431    }
16432    #[inline]
16433    pub fn external_token(&self) -> Option<SyntaxToken> {
16434        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
16435    }
16436    #[inline]
16437    pub fn ident_token(&self) -> Option<SyntaxToken> {
16438        support::token(&self.syntax, SyntaxKind::IDENT)
16439    }
16440    #[inline]
16441    pub fn storage_token(&self) -> Option<SyntaxToken> {
16442        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16443    }
16444}
16445
16446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16447pub struct StrictFuncOption {
16448    pub(crate) syntax: SyntaxNode,
16449}
16450impl StrictFuncOption {
16451    #[inline]
16452    pub fn called_token(&self) -> Option<SyntaxToken> {
16453        support::token(&self.syntax, SyntaxKind::CALLED_KW)
16454    }
16455    #[inline]
16456    pub fn input_token(&self) -> Option<SyntaxToken> {
16457        support::token(&self.syntax, SyntaxKind::INPUT_KW)
16458    }
16459    #[inline]
16460    pub fn null_token(&self) -> Option<SyntaxToken> {
16461        support::token(&self.syntax, SyntaxKind::NULL_KW)
16462    }
16463    #[inline]
16464    pub fn on_token(&self) -> Option<SyntaxToken> {
16465        support::token(&self.syntax, SyntaxKind::ON_KW)
16466    }
16467    #[inline]
16468    pub fn returns_token(&self) -> Option<SyntaxToken> {
16469        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
16470    }
16471    #[inline]
16472    pub fn strict_token(&self) -> Option<SyntaxToken> {
16473        support::token(&self.syntax, SyntaxKind::STRICT_KW)
16474    }
16475}
16476
16477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16478pub struct SubstringFn {
16479    pub(crate) syntax: SyntaxNode,
16480}
16481impl SubstringFn {
16482    #[inline]
16483    pub fn expr(&self) -> Option<Expr> {
16484        support::child(&self.syntax)
16485    }
16486    #[inline]
16487    pub fn exprs(&self) -> AstChildren<Expr> {
16488        support::children(&self.syntax)
16489    }
16490    #[inline]
16491    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16492        support::token(&self.syntax, SyntaxKind::L_PAREN)
16493    }
16494    #[inline]
16495    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16496        support::token(&self.syntax, SyntaxKind::R_PAREN)
16497    }
16498    #[inline]
16499    pub fn escape_token(&self) -> Option<SyntaxToken> {
16500        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
16501    }
16502    #[inline]
16503    pub fn for_token(&self) -> Option<SyntaxToken> {
16504        support::token(&self.syntax, SyntaxKind::FOR_KW)
16505    }
16506    #[inline]
16507    pub fn from_token(&self) -> Option<SyntaxToken> {
16508        support::token(&self.syntax, SyntaxKind::FROM_KW)
16509    }
16510    #[inline]
16511    pub fn similar_token(&self) -> Option<SyntaxToken> {
16512        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16513    }
16514    #[inline]
16515    pub fn substring_token(&self) -> Option<SyntaxToken> {
16516        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
16517    }
16518}
16519
16520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16521pub struct SupportFuncOption {
16522    pub(crate) syntax: SyntaxNode,
16523}
16524impl SupportFuncOption {
16525    #[inline]
16526    pub fn support_token(&self) -> Option<SyntaxToken> {
16527        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
16528    }
16529}
16530
16531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16532pub struct Table {
16533    pub(crate) syntax: SyntaxNode,
16534}
16535impl Table {
16536    #[inline]
16537    pub fn relation_name(&self) -> Option<RelationName> {
16538        support::child(&self.syntax)
16539    }
16540    #[inline]
16541    pub fn with_clause(&self) -> Option<WithClause> {
16542        support::child(&self.syntax)
16543    }
16544    #[inline]
16545    pub fn table_token(&self) -> Option<SyntaxToken> {
16546        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16547    }
16548}
16549
16550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16551pub struct TableAndColumns {
16552    pub(crate) syntax: SyntaxNode,
16553}
16554impl TableAndColumns {
16555    #[inline]
16556    pub fn column_list(&self) -> Option<ColumnList> {
16557        support::child(&self.syntax)
16558    }
16559    #[inline]
16560    pub fn relation_name(&self) -> Option<RelationName> {
16561        support::child(&self.syntax)
16562    }
16563}
16564
16565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16566pub struct TableAndColumnsList {
16567    pub(crate) syntax: SyntaxNode,
16568}
16569impl TableAndColumnsList {
16570    #[inline]
16571    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
16572        support::children(&self.syntax)
16573    }
16574}
16575
16576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16577pub struct TableArgList {
16578    pub(crate) syntax: SyntaxNode,
16579}
16580impl TableArgList {
16581    #[inline]
16582    pub fn args(&self) -> AstChildren<TableArg> {
16583        support::children(&self.syntax)
16584    }
16585    #[inline]
16586    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16587        support::token(&self.syntax, SyntaxKind::L_PAREN)
16588    }
16589    #[inline]
16590    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16591        support::token(&self.syntax, SyntaxKind::R_PAREN)
16592    }
16593}
16594
16595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16596pub struct TableList {
16597    pub(crate) syntax: SyntaxNode,
16598}
16599impl TableList {
16600    #[inline]
16601    pub fn relation_names(&self) -> AstChildren<RelationName> {
16602        support::children(&self.syntax)
16603    }
16604}
16605
16606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16607pub struct TablesampleClause {
16608    pub(crate) syntax: SyntaxNode,
16609}
16610impl TablesampleClause {
16611    #[inline]
16612    pub fn call_expr(&self) -> Option<CallExpr> {
16613        support::child(&self.syntax)
16614    }
16615    #[inline]
16616    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
16617        support::child(&self.syntax)
16618    }
16619    #[inline]
16620    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
16621        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
16622    }
16623}
16624
16625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16626pub struct Tablespace {
16627    pub(crate) syntax: SyntaxNode,
16628}
16629impl Tablespace {
16630    #[inline]
16631    pub fn name_ref(&self) -> Option<NameRef> {
16632        support::child(&self.syntax)
16633    }
16634    #[inline]
16635    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16636        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16637    }
16638}
16639
16640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16641pub struct Target {
16642    pub(crate) syntax: SyntaxNode,
16643}
16644impl Target {
16645    #[inline]
16646    pub fn as_name(&self) -> Option<AsName> {
16647        support::child(&self.syntax)
16648    }
16649    #[inline]
16650    pub fn expr(&self) -> Option<Expr> {
16651        support::child(&self.syntax)
16652    }
16653    #[inline]
16654    pub fn star_token(&self) -> Option<SyntaxToken> {
16655        support::token(&self.syntax, SyntaxKind::STAR)
16656    }
16657}
16658
16659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16660pub struct TargetList {
16661    pub(crate) syntax: SyntaxNode,
16662}
16663impl TargetList {
16664    #[inline]
16665    pub fn targets(&self) -> AstChildren<Target> {
16666        support::children(&self.syntax)
16667    }
16668}
16669
16670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16671pub struct Temp {
16672    pub(crate) syntax: SyntaxNode,
16673}
16674impl Temp {
16675    #[inline]
16676    pub fn global_token(&self) -> Option<SyntaxToken> {
16677        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
16678    }
16679    #[inline]
16680    pub fn local_token(&self) -> Option<SyntaxToken> {
16681        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16682    }
16683    #[inline]
16684    pub fn temp_token(&self) -> Option<SyntaxToken> {
16685        support::token(&self.syntax, SyntaxKind::TEMP_KW)
16686    }
16687    #[inline]
16688    pub fn temporary_token(&self) -> Option<SyntaxToken> {
16689        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
16690    }
16691    #[inline]
16692    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16693        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16694    }
16695}
16696
16697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16698pub struct TimeType {
16699    pub(crate) syntax: SyntaxNode,
16700}
16701impl TimeType {
16702    #[inline]
16703    pub fn literal(&self) -> Option<Literal> {
16704        support::child(&self.syntax)
16705    }
16706    #[inline]
16707    pub fn timezone(&self) -> Option<Timezone> {
16708        support::child(&self.syntax)
16709    }
16710    #[inline]
16711    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16712        support::token(&self.syntax, SyntaxKind::L_PAREN)
16713    }
16714    #[inline]
16715    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16716        support::token(&self.syntax, SyntaxKind::R_PAREN)
16717    }
16718    #[inline]
16719    pub fn time_token(&self) -> Option<SyntaxToken> {
16720        support::token(&self.syntax, SyntaxKind::TIME_KW)
16721    }
16722    #[inline]
16723    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
16724        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
16725    }
16726}
16727
16728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16729pub struct Timing {
16730    pub(crate) syntax: SyntaxNode,
16731}
16732impl Timing {
16733    #[inline]
16734    pub fn after_token(&self) -> Option<SyntaxToken> {
16735        support::token(&self.syntax, SyntaxKind::AFTER_KW)
16736    }
16737    #[inline]
16738    pub fn before_token(&self) -> Option<SyntaxToken> {
16739        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
16740    }
16741    #[inline]
16742    pub fn instead_token(&self) -> Option<SyntaxToken> {
16743        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
16744    }
16745    #[inline]
16746    pub fn of_token(&self) -> Option<SyntaxToken> {
16747        support::token(&self.syntax, SyntaxKind::OF_KW)
16748    }
16749}
16750
16751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16752pub struct TransactionModeList {
16753    pub(crate) syntax: SyntaxNode,
16754}
16755impl TransactionModeList {
16756    #[inline]
16757    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
16758        support::children(&self.syntax)
16759    }
16760}
16761
16762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16763pub struct TransformFromFunc {
16764    pub(crate) syntax: SyntaxNode,
16765}
16766impl TransformFromFunc {
16767    #[inline]
16768    pub fn function_sig(&self) -> Option<FunctionSig> {
16769        support::child(&self.syntax)
16770    }
16771    #[inline]
16772    pub fn from_token(&self) -> Option<SyntaxToken> {
16773        support::token(&self.syntax, SyntaxKind::FROM_KW)
16774    }
16775    #[inline]
16776    pub fn function_token(&self) -> Option<SyntaxToken> {
16777        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16778    }
16779    #[inline]
16780    pub fn sql_token(&self) -> Option<SyntaxToken> {
16781        support::token(&self.syntax, SyntaxKind::SQL_KW)
16782    }
16783    #[inline]
16784    pub fn with_token(&self) -> Option<SyntaxToken> {
16785        support::token(&self.syntax, SyntaxKind::WITH_KW)
16786    }
16787}
16788
16789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16790pub struct TransformFuncOption {
16791    pub(crate) syntax: SyntaxNode,
16792}
16793impl TransformFuncOption {
16794    #[inline]
16795    pub fn transform_token(&self) -> Option<SyntaxToken> {
16796        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
16797    }
16798}
16799
16800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16801pub struct TransformToFunc {
16802    pub(crate) syntax: SyntaxNode,
16803}
16804impl TransformToFunc {
16805    #[inline]
16806    pub fn function_sig(&self) -> Option<FunctionSig> {
16807        support::child(&self.syntax)
16808    }
16809    #[inline]
16810    pub fn function_token(&self) -> Option<SyntaxToken> {
16811        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16812    }
16813    #[inline]
16814    pub fn sql_token(&self) -> Option<SyntaxToken> {
16815        support::token(&self.syntax, SyntaxKind::SQL_KW)
16816    }
16817    #[inline]
16818    pub fn to_token(&self) -> Option<SyntaxToken> {
16819        support::token(&self.syntax, SyntaxKind::TO_KW)
16820    }
16821    #[inline]
16822    pub fn with_token(&self) -> Option<SyntaxToken> {
16823        support::token(&self.syntax, SyntaxKind::WITH_KW)
16824    }
16825}
16826
16827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16828pub struct TriggerEvent {
16829    pub(crate) syntax: SyntaxNode,
16830}
16831impl TriggerEvent {
16832    #[inline]
16833    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
16834        support::child(&self.syntax)
16835    }
16836    #[inline]
16837    pub fn delete_token(&self) -> Option<SyntaxToken> {
16838        support::token(&self.syntax, SyntaxKind::DELETE_KW)
16839    }
16840    #[inline]
16841    pub fn insert_token(&self) -> Option<SyntaxToken> {
16842        support::token(&self.syntax, SyntaxKind::INSERT_KW)
16843    }
16844    #[inline]
16845    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16846        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16847    }
16848}
16849
16850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16851pub struct TriggerEventList {
16852    pub(crate) syntax: SyntaxNode,
16853}
16854impl TriggerEventList {
16855    #[inline]
16856    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
16857        support::children(&self.syntax)
16858    }
16859}
16860
16861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16862pub struct TriggerEventUpdate {
16863    pub(crate) syntax: SyntaxNode,
16864}
16865impl TriggerEventUpdate {
16866    #[inline]
16867    pub fn name_refs(&self) -> AstChildren<NameRef> {
16868        support::children(&self.syntax)
16869    }
16870    #[inline]
16871    pub fn of_token(&self) -> Option<SyntaxToken> {
16872        support::token(&self.syntax, SyntaxKind::OF_KW)
16873    }
16874    #[inline]
16875    pub fn update_token(&self) -> Option<SyntaxToken> {
16876        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
16877    }
16878}
16879
16880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16881pub struct TrimFn {
16882    pub(crate) syntax: SyntaxNode,
16883}
16884impl TrimFn {
16885    #[inline]
16886    pub fn expr(&self) -> Option<Expr> {
16887        support::child(&self.syntax)
16888    }
16889    #[inline]
16890    pub fn exprs(&self) -> AstChildren<Expr> {
16891        support::children(&self.syntax)
16892    }
16893    #[inline]
16894    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16895        support::token(&self.syntax, SyntaxKind::L_PAREN)
16896    }
16897    #[inline]
16898    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16899        support::token(&self.syntax, SyntaxKind::R_PAREN)
16900    }
16901    #[inline]
16902    pub fn both_token(&self) -> Option<SyntaxToken> {
16903        support::token(&self.syntax, SyntaxKind::BOTH_KW)
16904    }
16905    #[inline]
16906    pub fn from_token(&self) -> Option<SyntaxToken> {
16907        support::token(&self.syntax, SyntaxKind::FROM_KW)
16908    }
16909    #[inline]
16910    pub fn leading_token(&self) -> Option<SyntaxToken> {
16911        support::token(&self.syntax, SyntaxKind::LEADING_KW)
16912    }
16913    #[inline]
16914    pub fn trailing_token(&self) -> Option<SyntaxToken> {
16915        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
16916    }
16917    #[inline]
16918    pub fn trim_token(&self) -> Option<SyntaxToken> {
16919        support::token(&self.syntax, SyntaxKind::TRIM_KW)
16920    }
16921}
16922
16923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16924pub struct Truncate {
16925    pub(crate) syntax: SyntaxNode,
16926}
16927impl Truncate {
16928    #[inline]
16929    pub fn table_list(&self) -> Option<TableList> {
16930        support::child(&self.syntax)
16931    }
16932    #[inline]
16933    pub fn cascade_token(&self) -> Option<SyntaxToken> {
16934        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
16935    }
16936    #[inline]
16937    pub fn continue_token(&self) -> Option<SyntaxToken> {
16938        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
16939    }
16940    #[inline]
16941    pub fn identity_token(&self) -> Option<SyntaxToken> {
16942        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
16943    }
16944    #[inline]
16945    pub fn restart_token(&self) -> Option<SyntaxToken> {
16946        support::token(&self.syntax, SyntaxKind::RESTART_KW)
16947    }
16948    #[inline]
16949    pub fn restrict_token(&self) -> Option<SyntaxToken> {
16950        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
16951    }
16952    #[inline]
16953    pub fn table_token(&self) -> Option<SyntaxToken> {
16954        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16955    }
16956    #[inline]
16957    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16958        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16959    }
16960}
16961
16962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16963pub struct TupleExpr {
16964    pub(crate) syntax: SyntaxNode,
16965}
16966impl TupleExpr {
16967    #[inline]
16968    pub fn exprs(&self) -> AstChildren<Expr> {
16969        support::children(&self.syntax)
16970    }
16971    #[inline]
16972    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16973        support::token(&self.syntax, SyntaxKind::L_PAREN)
16974    }
16975    #[inline]
16976    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16977        support::token(&self.syntax, SyntaxKind::R_PAREN)
16978    }
16979}
16980
16981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16982pub struct UnicodeNormalForm {
16983    pub(crate) syntax: SyntaxNode,
16984}
16985impl UnicodeNormalForm {
16986    #[inline]
16987    pub fn nfc_token(&self) -> Option<SyntaxToken> {
16988        support::token(&self.syntax, SyntaxKind::NFC_KW)
16989    }
16990    #[inline]
16991    pub fn nfd_token(&self) -> Option<SyntaxToken> {
16992        support::token(&self.syntax, SyntaxKind::NFD_KW)
16993    }
16994    #[inline]
16995    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
16996        support::token(&self.syntax, SyntaxKind::NFKC_KW)
16997    }
16998    #[inline]
16999    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17000        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17001    }
17002}
17003
17004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17005pub struct UniqueConstraint {
17006    pub(crate) syntax: SyntaxNode,
17007}
17008impl UniqueConstraint {
17009    #[inline]
17010    pub fn column_list(&self) -> Option<ColumnList> {
17011        support::child(&self.syntax)
17012    }
17013    #[inline]
17014    pub fn constraint_name(&self) -> Option<ConstraintName> {
17015        support::child(&self.syntax)
17016    }
17017    #[inline]
17018    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17019        support::child(&self.syntax)
17020    }
17021    #[inline]
17022    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17023        support::child(&self.syntax)
17024    }
17025    #[inline]
17026    pub fn using_index(&self) -> Option<UsingIndex> {
17027        support::child(&self.syntax)
17028    }
17029    #[inline]
17030    pub fn unique_token(&self) -> Option<SyntaxToken> {
17031        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17032    }
17033}
17034
17035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17036pub struct Unlisten {
17037    pub(crate) syntax: SyntaxNode,
17038}
17039impl Unlisten {
17040    #[inline]
17041    pub fn name_ref(&self) -> Option<NameRef> {
17042        support::child(&self.syntax)
17043    }
17044    #[inline]
17045    pub fn star_token(&self) -> Option<SyntaxToken> {
17046        support::token(&self.syntax, SyntaxKind::STAR)
17047    }
17048    #[inline]
17049    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17050        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17051    }
17052}
17053
17054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17055pub struct Update {
17056    pub(crate) syntax: SyntaxNode,
17057}
17058impl Update {
17059    #[inline]
17060    pub fn alias(&self) -> Option<Alias> {
17061        support::child(&self.syntax)
17062    }
17063    #[inline]
17064    pub fn from_clause(&self) -> Option<FromClause> {
17065        support::child(&self.syntax)
17066    }
17067    #[inline]
17068    pub fn relation_name(&self) -> Option<RelationName> {
17069        support::child(&self.syntax)
17070    }
17071    #[inline]
17072    pub fn returning_clause(&self) -> Option<ReturningClause> {
17073        support::child(&self.syntax)
17074    }
17075    #[inline]
17076    pub fn set_clause(&self) -> Option<SetClause> {
17077        support::child(&self.syntax)
17078    }
17079    #[inline]
17080    pub fn where_clause(&self) -> Option<WhereClause> {
17081        support::child(&self.syntax)
17082    }
17083    #[inline]
17084    pub fn with_clause(&self) -> Option<WithClause> {
17085        support::child(&self.syntax)
17086    }
17087    #[inline]
17088    pub fn update_token(&self) -> Option<SyntaxToken> {
17089        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17090    }
17091}
17092
17093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17094pub struct UsingClause {
17095    pub(crate) syntax: SyntaxNode,
17096}
17097impl UsingClause {
17098    #[inline]
17099    pub fn from_items(&self) -> AstChildren<FromItem> {
17100        support::children(&self.syntax)
17101    }
17102    #[inline]
17103    pub fn using_token(&self) -> Option<SyntaxToken> {
17104        support::token(&self.syntax, SyntaxKind::USING_KW)
17105    }
17106}
17107
17108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17109pub struct UsingExprClause {
17110    pub(crate) syntax: SyntaxNode,
17111}
17112impl UsingExprClause {
17113    #[inline]
17114    pub fn expr(&self) -> Option<Expr> {
17115        support::child(&self.syntax)
17116    }
17117    #[inline]
17118    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17119        support::token(&self.syntax, SyntaxKind::L_PAREN)
17120    }
17121    #[inline]
17122    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17123        support::token(&self.syntax, SyntaxKind::R_PAREN)
17124    }
17125    #[inline]
17126    pub fn using_token(&self) -> Option<SyntaxToken> {
17127        support::token(&self.syntax, SyntaxKind::USING_KW)
17128    }
17129}
17130
17131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17132pub struct UsingIndex {
17133    pub(crate) syntax: SyntaxNode,
17134}
17135impl UsingIndex {
17136    #[inline]
17137    pub fn name_ref(&self) -> Option<NameRef> {
17138        support::child(&self.syntax)
17139    }
17140    #[inline]
17141    pub fn index_token(&self) -> Option<SyntaxToken> {
17142        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17143    }
17144    #[inline]
17145    pub fn using_token(&self) -> Option<SyntaxToken> {
17146        support::token(&self.syntax, SyntaxKind::USING_KW)
17147    }
17148}
17149
17150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17151pub struct UsingMethod {
17152    pub(crate) syntax: SyntaxNode,
17153}
17154impl UsingMethod {
17155    #[inline]
17156    pub fn name_ref(&self) -> Option<NameRef> {
17157        support::child(&self.syntax)
17158    }
17159    #[inline]
17160    pub fn using_token(&self) -> Option<SyntaxToken> {
17161        support::token(&self.syntax, SyntaxKind::USING_KW)
17162    }
17163}
17164
17165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17166pub struct UsingOnClause {
17167    pub(crate) syntax: SyntaxNode,
17168}
17169impl UsingOnClause {
17170    #[inline]
17171    pub fn from_item(&self) -> Option<FromItem> {
17172        support::child(&self.syntax)
17173    }
17174    #[inline]
17175    pub fn on_clause(&self) -> Option<OnClause> {
17176        support::child(&self.syntax)
17177    }
17178    #[inline]
17179    pub fn using_token(&self) -> Option<SyntaxToken> {
17180        support::token(&self.syntax, SyntaxKind::USING_KW)
17181    }
17182}
17183
17184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17185pub struct Vacuum {
17186    pub(crate) syntax: SyntaxNode,
17187}
17188impl Vacuum {
17189    #[inline]
17190    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17191        support::child(&self.syntax)
17192    }
17193    #[inline]
17194    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
17195        support::child(&self.syntax)
17196    }
17197    #[inline]
17198    pub fn analyse_token(&self) -> Option<SyntaxToken> {
17199        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
17200    }
17201    #[inline]
17202    pub fn analyze_token(&self) -> Option<SyntaxToken> {
17203        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
17204    }
17205    #[inline]
17206    pub fn freeze_token(&self) -> Option<SyntaxToken> {
17207        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
17208    }
17209    #[inline]
17210    pub fn full_token(&self) -> Option<SyntaxToken> {
17211        support::token(&self.syntax, SyntaxKind::FULL_KW)
17212    }
17213    #[inline]
17214    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
17215        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
17216    }
17217    #[inline]
17218    pub fn verbose_token(&self) -> Option<SyntaxToken> {
17219        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
17220    }
17221}
17222
17223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17224pub struct VacuumOption {
17225    pub(crate) syntax: SyntaxNode,
17226}
17227impl VacuumOption {
17228    #[inline]
17229    pub fn literal(&self) -> Option<Literal> {
17230        support::child(&self.syntax)
17231    }
17232}
17233
17234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17235pub struct VacuumOptionList {
17236    pub(crate) syntax: SyntaxNode,
17237}
17238impl VacuumOptionList {
17239    #[inline]
17240    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
17241        support::children(&self.syntax)
17242    }
17243    #[inline]
17244    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17245        support::token(&self.syntax, SyntaxKind::L_PAREN)
17246    }
17247    #[inline]
17248    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17249        support::token(&self.syntax, SyntaxKind::R_PAREN)
17250    }
17251}
17252
17253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17254pub struct ValidateConstraint {
17255    pub(crate) syntax: SyntaxNode,
17256}
17257impl ValidateConstraint {
17258    #[inline]
17259    pub fn name_ref(&self) -> Option<NameRef> {
17260        support::child(&self.syntax)
17261    }
17262    #[inline]
17263    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17264        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17265    }
17266    #[inline]
17267    pub fn validate_token(&self) -> Option<SyntaxToken> {
17268        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
17269    }
17270}
17271
17272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17273pub struct Values {
17274    pub(crate) syntax: SyntaxNode,
17275}
17276impl Values {
17277    #[inline]
17278    pub fn row_list(&self) -> Option<RowList> {
17279        support::child(&self.syntax)
17280    }
17281    #[inline]
17282    pub fn with_clause(&self) -> Option<WithClause> {
17283        support::child(&self.syntax)
17284    }
17285    #[inline]
17286    pub fn values_token(&self) -> Option<SyntaxToken> {
17287        support::token(&self.syntax, SyntaxKind::VALUES_KW)
17288    }
17289}
17290
17291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17292pub struct Variant {
17293    pub(crate) syntax: SyntaxNode,
17294}
17295impl Variant {
17296    #[inline]
17297    pub fn literal(&self) -> Option<Literal> {
17298        support::child(&self.syntax)
17299    }
17300}
17301
17302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17303pub struct VariantList {
17304    pub(crate) syntax: SyntaxNode,
17305}
17306impl VariantList {
17307    #[inline]
17308    pub fn variants(&self) -> AstChildren<Variant> {
17309        support::children(&self.syntax)
17310    }
17311    #[inline]
17312    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17313        support::token(&self.syntax, SyntaxKind::L_PAREN)
17314    }
17315    #[inline]
17316    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17317        support::token(&self.syntax, SyntaxKind::R_PAREN)
17318    }
17319}
17320
17321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17322pub struct VertexPattern {
17323    pub(crate) syntax: SyntaxNode,
17324}
17325impl VertexPattern {
17326    #[inline]
17327    pub fn is_label_expression(&self) -> Option<IsLabelExpression> {
17328        support::child(&self.syntax)
17329    }
17330    #[inline]
17331    pub fn name(&self) -> Option<Name> {
17332        support::child(&self.syntax)
17333    }
17334    #[inline]
17335    pub fn where_clause(&self) -> Option<WhereClause> {
17336        support::child(&self.syntax)
17337    }
17338    #[inline]
17339    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17340        support::token(&self.syntax, SyntaxKind::L_PAREN)
17341    }
17342    #[inline]
17343    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17344        support::token(&self.syntax, SyntaxKind::R_PAREN)
17345    }
17346}
17347
17348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17349pub struct VertexTableDef {
17350    pub(crate) syntax: SyntaxNode,
17351}
17352impl VertexTableDef {
17353    #[inline]
17354    pub fn column_list(&self) -> Option<ColumnList> {
17355        support::child(&self.syntax)
17356    }
17357    #[inline]
17358    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
17359        support::child(&self.syntax)
17360    }
17361    #[inline]
17362    pub fn name(&self) -> Option<Name> {
17363        support::child(&self.syntax)
17364    }
17365    #[inline]
17366    pub fn path(&self) -> Option<Path> {
17367        support::child(&self.syntax)
17368    }
17369    #[inline]
17370    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17371        support::token(&self.syntax, SyntaxKind::L_PAREN)
17372    }
17373    #[inline]
17374    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17375        support::token(&self.syntax, SyntaxKind::R_PAREN)
17376    }
17377    #[inline]
17378    pub fn as_token(&self) -> Option<SyntaxToken> {
17379        support::token(&self.syntax, SyntaxKind::AS_KW)
17380    }
17381    #[inline]
17382    pub fn key_token(&self) -> Option<SyntaxToken> {
17383        support::token(&self.syntax, SyntaxKind::KEY_KW)
17384    }
17385}
17386
17387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17388pub struct VertexTables {
17389    pub(crate) syntax: SyntaxNode,
17390}
17391impl VertexTables {
17392    #[inline]
17393    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
17394        support::children(&self.syntax)
17395    }
17396    #[inline]
17397    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17398        support::token(&self.syntax, SyntaxKind::L_PAREN)
17399    }
17400    #[inline]
17401    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17402        support::token(&self.syntax, SyntaxKind::R_PAREN)
17403    }
17404    #[inline]
17405    pub fn node_token(&self) -> Option<SyntaxToken> {
17406        support::token(&self.syntax, SyntaxKind::NODE_KW)
17407    }
17408    #[inline]
17409    pub fn tables_token(&self) -> Option<SyntaxToken> {
17410        support::token(&self.syntax, SyntaxKind::TABLES_KW)
17411    }
17412    #[inline]
17413    pub fn vertex_token(&self) -> Option<SyntaxToken> {
17414        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
17415    }
17416}
17417
17418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17419pub struct VolatilityFuncOption {
17420    pub(crate) syntax: SyntaxNode,
17421}
17422impl VolatilityFuncOption {
17423    #[inline]
17424    pub fn immutable_token(&self) -> Option<SyntaxToken> {
17425        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
17426    }
17427    #[inline]
17428    pub fn stable_token(&self) -> Option<SyntaxToken> {
17429        support::token(&self.syntax, SyntaxKind::STABLE_KW)
17430    }
17431    #[inline]
17432    pub fn volatile_token(&self) -> Option<SyntaxToken> {
17433        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
17434    }
17435}
17436
17437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17438pub struct WhenClause {
17439    pub(crate) syntax: SyntaxNode,
17440}
17441impl WhenClause {
17442    #[inline]
17443    pub fn then_token(&self) -> Option<SyntaxToken> {
17444        support::token(&self.syntax, SyntaxKind::THEN_KW)
17445    }
17446    #[inline]
17447    pub fn when_token(&self) -> Option<SyntaxToken> {
17448        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17449    }
17450}
17451
17452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17453pub struct WhenClauseList {
17454    pub(crate) syntax: SyntaxNode,
17455}
17456impl WhenClauseList {
17457    #[inline]
17458    pub fn when_clause(&self) -> Option<WhenClause> {
17459        support::child(&self.syntax)
17460    }
17461    #[inline]
17462    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
17463        support::children(&self.syntax)
17464    }
17465}
17466
17467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17468pub struct WhenCondition {
17469    pub(crate) syntax: SyntaxNode,
17470}
17471impl WhenCondition {
17472    #[inline]
17473    pub fn expr(&self) -> Option<Expr> {
17474        support::child(&self.syntax)
17475    }
17476    #[inline]
17477    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17478        support::token(&self.syntax, SyntaxKind::L_PAREN)
17479    }
17480    #[inline]
17481    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17482        support::token(&self.syntax, SyntaxKind::R_PAREN)
17483    }
17484    #[inline]
17485    pub fn when_token(&self) -> Option<SyntaxToken> {
17486        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17487    }
17488}
17489
17490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17491pub struct WhereClause {
17492    pub(crate) syntax: SyntaxNode,
17493}
17494impl WhereClause {
17495    #[inline]
17496    pub fn expr(&self) -> Option<Expr> {
17497        support::child(&self.syntax)
17498    }
17499    #[inline]
17500    pub fn where_token(&self) -> Option<SyntaxToken> {
17501        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17502    }
17503}
17504
17505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17506pub struct WhereConditionClause {
17507    pub(crate) syntax: SyntaxNode,
17508}
17509impl WhereConditionClause {
17510    #[inline]
17511    pub fn expr(&self) -> Option<Expr> {
17512        support::child(&self.syntax)
17513    }
17514    #[inline]
17515    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17516        support::token(&self.syntax, SyntaxKind::L_PAREN)
17517    }
17518    #[inline]
17519    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17520        support::token(&self.syntax, SyntaxKind::R_PAREN)
17521    }
17522    #[inline]
17523    pub fn where_token(&self) -> Option<SyntaxToken> {
17524        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17525    }
17526}
17527
17528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17529pub struct WhereCurrentOf {
17530    pub(crate) syntax: SyntaxNode,
17531}
17532impl WhereCurrentOf {
17533    #[inline]
17534    pub fn name_ref(&self) -> Option<NameRef> {
17535        support::child(&self.syntax)
17536    }
17537    #[inline]
17538    pub fn current_token(&self) -> Option<SyntaxToken> {
17539        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
17540    }
17541    #[inline]
17542    pub fn of_token(&self) -> Option<SyntaxToken> {
17543        support::token(&self.syntax, SyntaxKind::OF_KW)
17544    }
17545    #[inline]
17546    pub fn where_token(&self) -> Option<SyntaxToken> {
17547        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17548    }
17549}
17550
17551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17552pub struct WindowClause {
17553    pub(crate) syntax: SyntaxNode,
17554}
17555impl WindowClause {
17556    #[inline]
17557    pub fn window_defs(&self) -> AstChildren<WindowDef> {
17558        support::children(&self.syntax)
17559    }
17560    #[inline]
17561    pub fn window_token(&self) -> Option<SyntaxToken> {
17562        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17563    }
17564}
17565
17566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17567pub struct WindowDef {
17568    pub(crate) syntax: SyntaxNode,
17569}
17570impl WindowDef {
17571    #[inline]
17572    pub fn name(&self) -> Option<Name> {
17573        support::child(&self.syntax)
17574    }
17575    #[inline]
17576    pub fn window_spec(&self) -> Option<WindowSpec> {
17577        support::child(&self.syntax)
17578    }
17579    #[inline]
17580    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17581        support::token(&self.syntax, SyntaxKind::L_PAREN)
17582    }
17583    #[inline]
17584    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17585        support::token(&self.syntax, SyntaxKind::R_PAREN)
17586    }
17587    #[inline]
17588    pub fn as_token(&self) -> Option<SyntaxToken> {
17589        support::token(&self.syntax, SyntaxKind::AS_KW)
17590    }
17591}
17592
17593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17594pub struct WindowFuncOption {
17595    pub(crate) syntax: SyntaxNode,
17596}
17597impl WindowFuncOption {
17598    #[inline]
17599    pub fn window_token(&self) -> Option<SyntaxToken> {
17600        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17601    }
17602}
17603
17604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17605pub struct WindowSpec {
17606    pub(crate) syntax: SyntaxNode,
17607}
17608impl WindowSpec {
17609    #[inline]
17610    pub fn exprs(&self) -> AstChildren<Expr> {
17611        support::children(&self.syntax)
17612    }
17613    #[inline]
17614    pub fn frame_clause(&self) -> Option<FrameClause> {
17615        support::child(&self.syntax)
17616    }
17617    #[inline]
17618    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17619        support::child(&self.syntax)
17620    }
17621    #[inline]
17622    pub fn by_token(&self) -> Option<SyntaxToken> {
17623        support::token(&self.syntax, SyntaxKind::BY_KW)
17624    }
17625    #[inline]
17626    pub fn ident_token(&self) -> Option<SyntaxToken> {
17627        support::token(&self.syntax, SyntaxKind::IDENT)
17628    }
17629    #[inline]
17630    pub fn partition_token(&self) -> Option<SyntaxToken> {
17631        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17632    }
17633}
17634
17635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17636pub struct WithCheckExprClause {
17637    pub(crate) syntax: SyntaxNode,
17638}
17639impl WithCheckExprClause {
17640    #[inline]
17641    pub fn expr(&self) -> Option<Expr> {
17642        support::child(&self.syntax)
17643    }
17644    #[inline]
17645    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17646        support::token(&self.syntax, SyntaxKind::L_PAREN)
17647    }
17648    #[inline]
17649    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17650        support::token(&self.syntax, SyntaxKind::R_PAREN)
17651    }
17652    #[inline]
17653    pub fn check_token(&self) -> Option<SyntaxToken> {
17654        support::token(&self.syntax, SyntaxKind::CHECK_KW)
17655    }
17656    #[inline]
17657    pub fn with_token(&self) -> Option<SyntaxToken> {
17658        support::token(&self.syntax, SyntaxKind::WITH_KW)
17659    }
17660}
17661
17662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17663pub struct WithClause {
17664    pub(crate) syntax: SyntaxNode,
17665}
17666impl WithClause {
17667    #[inline]
17668    pub fn with_tables(&self) -> AstChildren<WithTable> {
17669        support::children(&self.syntax)
17670    }
17671    #[inline]
17672    pub fn recursive_token(&self) -> Option<SyntaxToken> {
17673        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
17674    }
17675    #[inline]
17676    pub fn with_token(&self) -> Option<SyntaxToken> {
17677        support::token(&self.syntax, SyntaxKind::WITH_KW)
17678    }
17679}
17680
17681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17682pub struct WithData {
17683    pub(crate) syntax: SyntaxNode,
17684}
17685impl WithData {
17686    #[inline]
17687    pub fn data_token(&self) -> Option<SyntaxToken> {
17688        support::token(&self.syntax, SyntaxKind::DATA_KW)
17689    }
17690    #[inline]
17691    pub fn with_token(&self) -> Option<SyntaxToken> {
17692        support::token(&self.syntax, SyntaxKind::WITH_KW)
17693    }
17694}
17695
17696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17697pub struct WithNoData {
17698    pub(crate) syntax: SyntaxNode,
17699}
17700impl WithNoData {
17701    #[inline]
17702    pub fn data_token(&self) -> Option<SyntaxToken> {
17703        support::token(&self.syntax, SyntaxKind::DATA_KW)
17704    }
17705    #[inline]
17706    pub fn no_token(&self) -> Option<SyntaxToken> {
17707        support::token(&self.syntax, SyntaxKind::NO_KW)
17708    }
17709    #[inline]
17710    pub fn with_token(&self) -> Option<SyntaxToken> {
17711        support::token(&self.syntax, SyntaxKind::WITH_KW)
17712    }
17713}
17714
17715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17716pub struct WithOptions {
17717    pub(crate) syntax: SyntaxNode,
17718}
17719impl WithOptions {
17720    #[inline]
17721    pub fn options_token(&self) -> Option<SyntaxToken> {
17722        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
17723    }
17724    #[inline]
17725    pub fn with_token(&self) -> Option<SyntaxToken> {
17726        support::token(&self.syntax, SyntaxKind::WITH_KW)
17727    }
17728}
17729
17730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17731pub struct WithParams {
17732    pub(crate) syntax: SyntaxNode,
17733}
17734impl WithParams {
17735    #[inline]
17736    pub fn attribute_list(&self) -> Option<AttributeList> {
17737        support::child(&self.syntax)
17738    }
17739    #[inline]
17740    pub fn with_token(&self) -> Option<SyntaxToken> {
17741        support::token(&self.syntax, SyntaxKind::WITH_KW)
17742    }
17743}
17744
17745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17746pub struct WithTable {
17747    pub(crate) syntax: SyntaxNode,
17748}
17749impl WithTable {
17750    #[inline]
17751    pub fn column_list(&self) -> Option<ColumnList> {
17752        support::child(&self.syntax)
17753    }
17754    #[inline]
17755    pub fn materialized(&self) -> Option<Materialized> {
17756        support::child(&self.syntax)
17757    }
17758    #[inline]
17759    pub fn name(&self) -> Option<Name> {
17760        support::child(&self.syntax)
17761    }
17762    #[inline]
17763    pub fn not_materialized(&self) -> Option<NotMaterialized> {
17764        support::child(&self.syntax)
17765    }
17766    #[inline]
17767    pub fn query(&self) -> Option<WithQuery> {
17768        support::child(&self.syntax)
17769    }
17770    #[inline]
17771    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17772        support::token(&self.syntax, SyntaxKind::L_PAREN)
17773    }
17774    #[inline]
17775    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17776        support::token(&self.syntax, SyntaxKind::R_PAREN)
17777    }
17778    #[inline]
17779    pub fn as_token(&self) -> Option<SyntaxToken> {
17780        support::token(&self.syntax, SyntaxKind::AS_KW)
17781    }
17782}
17783
17784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17785pub struct WithTimezone {
17786    pub(crate) syntax: SyntaxNode,
17787}
17788impl WithTimezone {
17789    #[inline]
17790    pub fn time_token(&self) -> Option<SyntaxToken> {
17791        support::token(&self.syntax, SyntaxKind::TIME_KW)
17792    }
17793    #[inline]
17794    pub fn with_token(&self) -> Option<SyntaxToken> {
17795        support::token(&self.syntax, SyntaxKind::WITH_KW)
17796    }
17797    #[inline]
17798    pub fn zone_token(&self) -> Option<SyntaxToken> {
17799        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17800    }
17801}
17802
17803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17804pub struct WithinClause {
17805    pub(crate) syntax: SyntaxNode,
17806}
17807impl WithinClause {
17808    #[inline]
17809    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17810        support::child(&self.syntax)
17811    }
17812    #[inline]
17813    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17814        support::token(&self.syntax, SyntaxKind::L_PAREN)
17815    }
17816    #[inline]
17817    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17818        support::token(&self.syntax, SyntaxKind::R_PAREN)
17819    }
17820    #[inline]
17821    pub fn group_token(&self) -> Option<SyntaxToken> {
17822        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17823    }
17824    #[inline]
17825    pub fn within_token(&self) -> Option<SyntaxToken> {
17826        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
17827    }
17828}
17829
17830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17831pub struct WithoutOids {
17832    pub(crate) syntax: SyntaxNode,
17833}
17834impl WithoutOids {
17835    #[inline]
17836    pub fn oids_token(&self) -> Option<SyntaxToken> {
17837        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17838    }
17839    #[inline]
17840    pub fn without_token(&self) -> Option<SyntaxToken> {
17841        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17842    }
17843}
17844
17845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17846pub struct WithoutTimezone {
17847    pub(crate) syntax: SyntaxNode,
17848}
17849impl WithoutTimezone {
17850    #[inline]
17851    pub fn time_token(&self) -> Option<SyntaxToken> {
17852        support::token(&self.syntax, SyntaxKind::TIME_KW)
17853    }
17854    #[inline]
17855    pub fn without_token(&self) -> Option<SyntaxToken> {
17856        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17857    }
17858    #[inline]
17859    pub fn zone_token(&self) -> Option<SyntaxToken> {
17860        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17861    }
17862}
17863
17864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17865pub struct XmlColumnOption {
17866    pub(crate) syntax: SyntaxNode,
17867}
17868impl XmlColumnOption {
17869    #[inline]
17870    pub fn expr(&self) -> Option<Expr> {
17871        support::child(&self.syntax)
17872    }
17873    #[inline]
17874    pub fn default_token(&self) -> Option<SyntaxToken> {
17875        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17876    }
17877    #[inline]
17878    pub fn ident_token(&self) -> Option<SyntaxToken> {
17879        support::token(&self.syntax, SyntaxKind::IDENT)
17880    }
17881    #[inline]
17882    pub fn not_token(&self) -> Option<SyntaxToken> {
17883        support::token(&self.syntax, SyntaxKind::NOT_KW)
17884    }
17885    #[inline]
17886    pub fn null_token(&self) -> Option<SyntaxToken> {
17887        support::token(&self.syntax, SyntaxKind::NULL_KW)
17888    }
17889    #[inline]
17890    pub fn path_token(&self) -> Option<SyntaxToken> {
17891        support::token(&self.syntax, SyntaxKind::PATH_KW)
17892    }
17893}
17894
17895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17896pub struct XmlColumnOptionList {
17897    pub(crate) syntax: SyntaxNode,
17898}
17899impl XmlColumnOptionList {
17900    #[inline]
17901    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
17902        support::child(&self.syntax)
17903    }
17904    #[inline]
17905    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
17906        support::children(&self.syntax)
17907    }
17908}
17909
17910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17911pub struct XmlElementFn {
17912    pub(crate) syntax: SyntaxNode,
17913}
17914impl XmlElementFn {
17915    #[inline]
17916    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17917        support::child(&self.syntax)
17918    }
17919    #[inline]
17920    pub fn exprs(&self) -> AstChildren<Expr> {
17921        support::children(&self.syntax)
17922    }
17923    #[inline]
17924    pub fn name(&self) -> Option<Name> {
17925        support::child(&self.syntax)
17926    }
17927    #[inline]
17928    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17929        support::token(&self.syntax, SyntaxKind::L_PAREN)
17930    }
17931    #[inline]
17932    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17933        support::token(&self.syntax, SyntaxKind::R_PAREN)
17934    }
17935    #[inline]
17936    pub fn comma_token(&self) -> Option<SyntaxToken> {
17937        support::token(&self.syntax, SyntaxKind::COMMA)
17938    }
17939    #[inline]
17940    pub fn name_token(&self) -> Option<SyntaxToken> {
17941        support::token(&self.syntax, SyntaxKind::NAME_KW)
17942    }
17943    #[inline]
17944    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
17945        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
17946    }
17947    #[inline]
17948    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
17949        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
17950    }
17951}
17952
17953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17954pub struct XmlExistsFn {
17955    pub(crate) syntax: SyntaxNode,
17956}
17957impl XmlExistsFn {
17958    #[inline]
17959    pub fn expr(&self) -> Option<Expr> {
17960        support::child(&self.syntax)
17961    }
17962    #[inline]
17963    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
17964        support::child(&self.syntax)
17965    }
17966    #[inline]
17967    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17968        support::token(&self.syntax, SyntaxKind::L_PAREN)
17969    }
17970    #[inline]
17971    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17972        support::token(&self.syntax, SyntaxKind::R_PAREN)
17973    }
17974    #[inline]
17975    pub fn passing_token(&self) -> Option<SyntaxToken> {
17976        support::token(&self.syntax, SyntaxKind::PASSING_KW)
17977    }
17978    #[inline]
17979    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
17980        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
17981    }
17982}
17983
17984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17985pub struct XmlForestFn {
17986    pub(crate) syntax: SyntaxNode,
17987}
17988impl XmlForestFn {
17989    #[inline]
17990    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17991        support::child(&self.syntax)
17992    }
17993    #[inline]
17994    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17995        support::token(&self.syntax, SyntaxKind::L_PAREN)
17996    }
17997    #[inline]
17998    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17999        support::token(&self.syntax, SyntaxKind::R_PAREN)
18000    }
18001    #[inline]
18002    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18003        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18004    }
18005}
18006
18007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18008pub struct XmlNamespace {
18009    pub(crate) syntax: SyntaxNode,
18010}
18011impl XmlNamespace {
18012    #[inline]
18013    pub fn expr(&self) -> Option<Expr> {
18014        support::child(&self.syntax)
18015    }
18016    #[inline]
18017    pub fn name(&self) -> Option<Name> {
18018        support::child(&self.syntax)
18019    }
18020    #[inline]
18021    pub fn as_token(&self) -> Option<SyntaxToken> {
18022        support::token(&self.syntax, SyntaxKind::AS_KW)
18023    }
18024    #[inline]
18025    pub fn default_token(&self) -> Option<SyntaxToken> {
18026        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18027    }
18028}
18029
18030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18031pub struct XmlNamespaceList {
18032    pub(crate) syntax: SyntaxNode,
18033}
18034impl XmlNamespaceList {
18035    #[inline]
18036    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18037        support::children(&self.syntax)
18038    }
18039    #[inline]
18040    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18041        support::token(&self.syntax, SyntaxKind::L_PAREN)
18042    }
18043    #[inline]
18044    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18045        support::token(&self.syntax, SyntaxKind::R_PAREN)
18046    }
18047}
18048
18049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18050pub struct XmlParseFn {
18051    pub(crate) syntax: SyntaxNode,
18052}
18053impl XmlParseFn {
18054    #[inline]
18055    pub fn expr(&self) -> Option<Expr> {
18056        support::child(&self.syntax)
18057    }
18058    #[inline]
18059    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18060        support::token(&self.syntax, SyntaxKind::L_PAREN)
18061    }
18062    #[inline]
18063    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18064        support::token(&self.syntax, SyntaxKind::R_PAREN)
18065    }
18066    #[inline]
18067    pub fn content_token(&self) -> Option<SyntaxToken> {
18068        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18069    }
18070    #[inline]
18071    pub fn document_token(&self) -> Option<SyntaxToken> {
18072        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18073    }
18074    #[inline]
18075    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18076        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18077    }
18078    #[inline]
18079    pub fn strip_token(&self) -> Option<SyntaxToken> {
18080        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18081    }
18082    #[inline]
18083    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18084        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18085    }
18086    #[inline]
18087    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18088        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18089    }
18090}
18091
18092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18093pub struct XmlPassingMech {
18094    pub(crate) syntax: SyntaxNode,
18095}
18096impl XmlPassingMech {
18097    #[inline]
18098    pub fn by_token(&self) -> Option<SyntaxToken> {
18099        support::token(&self.syntax, SyntaxKind::BY_KW)
18100    }
18101    #[inline]
18102    pub fn ref_token(&self) -> Option<SyntaxToken> {
18103        support::token(&self.syntax, SyntaxKind::REF_KW)
18104    }
18105    #[inline]
18106    pub fn value_token(&self) -> Option<SyntaxToken> {
18107        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18108    }
18109}
18110
18111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18112pub struct XmlPiFn {
18113    pub(crate) syntax: SyntaxNode,
18114}
18115impl XmlPiFn {
18116    #[inline]
18117    pub fn expr(&self) -> Option<Expr> {
18118        support::child(&self.syntax)
18119    }
18120    #[inline]
18121    pub fn name(&self) -> Option<Name> {
18122        support::child(&self.syntax)
18123    }
18124    #[inline]
18125    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18126        support::token(&self.syntax, SyntaxKind::L_PAREN)
18127    }
18128    #[inline]
18129    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18130        support::token(&self.syntax, SyntaxKind::R_PAREN)
18131    }
18132    #[inline]
18133    pub fn comma_token(&self) -> Option<SyntaxToken> {
18134        support::token(&self.syntax, SyntaxKind::COMMA)
18135    }
18136    #[inline]
18137    pub fn name_token(&self) -> Option<SyntaxToken> {
18138        support::token(&self.syntax, SyntaxKind::NAME_KW)
18139    }
18140    #[inline]
18141    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
18142        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
18143    }
18144}
18145
18146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18147pub struct XmlRootFn {
18148    pub(crate) syntax: SyntaxNode,
18149}
18150impl XmlRootFn {
18151    #[inline]
18152    pub fn expr(&self) -> Option<Expr> {
18153        support::child(&self.syntax)
18154    }
18155    #[inline]
18156    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18157        support::token(&self.syntax, SyntaxKind::L_PAREN)
18158    }
18159    #[inline]
18160    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18161        support::token(&self.syntax, SyntaxKind::R_PAREN)
18162    }
18163    #[inline]
18164    pub fn comma_token(&self) -> Option<SyntaxToken> {
18165        support::token(&self.syntax, SyntaxKind::COMMA)
18166    }
18167    #[inline]
18168    pub fn no_token(&self) -> Option<SyntaxToken> {
18169        support::token(&self.syntax, SyntaxKind::NO_KW)
18170    }
18171    #[inline]
18172    pub fn standalone_token(&self) -> Option<SyntaxToken> {
18173        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
18174    }
18175    #[inline]
18176    pub fn value_token(&self) -> Option<SyntaxToken> {
18177        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18178    }
18179    #[inline]
18180    pub fn version_token(&self) -> Option<SyntaxToken> {
18181        support::token(&self.syntax, SyntaxKind::VERSION_KW)
18182    }
18183    #[inline]
18184    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
18185        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
18186    }
18187    #[inline]
18188    pub fn yes_token(&self) -> Option<SyntaxToken> {
18189        support::token(&self.syntax, SyntaxKind::YES_KW)
18190    }
18191}
18192
18193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18194pub struct XmlRowPassingClause {
18195    pub(crate) syntax: SyntaxNode,
18196}
18197impl XmlRowPassingClause {
18198    #[inline]
18199    pub fn expr(&self) -> Option<Expr> {
18200        support::child(&self.syntax)
18201    }
18202    #[inline]
18203    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18204        support::child(&self.syntax)
18205    }
18206    #[inline]
18207    pub fn passing_token(&self) -> Option<SyntaxToken> {
18208        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18209    }
18210}
18211
18212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18213pub struct XmlSerializeFn {
18214    pub(crate) syntax: SyntaxNode,
18215}
18216impl XmlSerializeFn {
18217    #[inline]
18218    pub fn expr(&self) -> Option<Expr> {
18219        support::child(&self.syntax)
18220    }
18221    #[inline]
18222    pub fn ty(&self) -> Option<Type> {
18223        support::child(&self.syntax)
18224    }
18225    #[inline]
18226    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18227        support::token(&self.syntax, SyntaxKind::L_PAREN)
18228    }
18229    #[inline]
18230    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18231        support::token(&self.syntax, SyntaxKind::R_PAREN)
18232    }
18233    #[inline]
18234    pub fn as_token(&self) -> Option<SyntaxToken> {
18235        support::token(&self.syntax, SyntaxKind::AS_KW)
18236    }
18237    #[inline]
18238    pub fn content_token(&self) -> Option<SyntaxToken> {
18239        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18240    }
18241    #[inline]
18242    pub fn document_token(&self) -> Option<SyntaxToken> {
18243        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18244    }
18245    #[inline]
18246    pub fn indent_token(&self) -> Option<SyntaxToken> {
18247        support::token(&self.syntax, SyntaxKind::INDENT_KW)
18248    }
18249    #[inline]
18250    pub fn no_token(&self) -> Option<SyntaxToken> {
18251        support::token(&self.syntax, SyntaxKind::NO_KW)
18252    }
18253    #[inline]
18254    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
18255        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
18256    }
18257}
18258
18259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18260pub struct XmlTable {
18261    pub(crate) syntax: SyntaxNode,
18262}
18263impl XmlTable {
18264    #[inline]
18265    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
18266        support::child(&self.syntax)
18267    }
18268    #[inline]
18269    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
18270        support::child(&self.syntax)
18271    }
18272    #[inline]
18273    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
18274        support::child(&self.syntax)
18275    }
18276    #[inline]
18277    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18278        support::token(&self.syntax, SyntaxKind::L_PAREN)
18279    }
18280    #[inline]
18281    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18282        support::token(&self.syntax, SyntaxKind::R_PAREN)
18283    }
18284    #[inline]
18285    pub fn comma_token(&self) -> Option<SyntaxToken> {
18286        support::token(&self.syntax, SyntaxKind::COMMA)
18287    }
18288    #[inline]
18289    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
18290        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
18291    }
18292    #[inline]
18293    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
18294        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
18295    }
18296}
18297
18298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18299pub struct XmlTableColumn {
18300    pub(crate) syntax: SyntaxNode,
18301}
18302impl XmlTableColumn {
18303    #[inline]
18304    pub fn name(&self) -> Option<Name> {
18305        support::child(&self.syntax)
18306    }
18307    #[inline]
18308    pub fn ty(&self) -> Option<Type> {
18309        support::child(&self.syntax)
18310    }
18311    #[inline]
18312    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
18313        support::child(&self.syntax)
18314    }
18315    #[inline]
18316    pub fn for_token(&self) -> Option<SyntaxToken> {
18317        support::token(&self.syntax, SyntaxKind::FOR_KW)
18318    }
18319    #[inline]
18320    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
18321        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
18322    }
18323}
18324
18325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18326pub struct XmlTableColumnList {
18327    pub(crate) syntax: SyntaxNode,
18328}
18329impl XmlTableColumnList {
18330    #[inline]
18331    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
18332        support::children(&self.syntax)
18333    }
18334    #[inline]
18335    pub fn columns_token(&self) -> Option<SyntaxToken> {
18336        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
18337    }
18338}
18339
18340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18341pub enum AlterColumnOption {
18342    AddGenerated(AddGenerated),
18343    DropDefault(DropDefault),
18344    DropExpression(DropExpression),
18345    DropIdentity(DropIdentity),
18346    DropNotNull(DropNotNull),
18347    Inherit(Inherit),
18348    NoInherit(NoInherit),
18349    ResetOptions(ResetOptions),
18350    Restart(Restart),
18351    SetCompression(SetCompression),
18352    SetDefault(SetDefault),
18353    SetExpression(SetExpression),
18354    SetGenerated(SetGenerated),
18355    SetGeneratedOptions(SetGeneratedOptions),
18356    SetNotNull(SetNotNull),
18357    SetOptions(SetOptions),
18358    SetOptionsList(SetOptionsList),
18359    SetSequenceOption(SetSequenceOption),
18360    SetStatistics(SetStatistics),
18361    SetStorage(SetStorage),
18362    SetType(SetType),
18363}
18364
18365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18366pub enum AlterDomainAction {
18367    AddConstraint(AddConstraint),
18368    DropConstraint(DropConstraint),
18369    DropDefault(DropDefault),
18370    DropNotNull(DropNotNull),
18371    OwnerTo(OwnerTo),
18372    RenameConstraint(RenameConstraint),
18373    RenameTo(RenameTo),
18374    SetDefault(SetDefault),
18375    SetNotNull(SetNotNull),
18376    SetSchema(SetSchema),
18377    ValidateConstraint(ValidateConstraint),
18378}
18379
18380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18381pub enum AlterIndexAction {
18382    AlterSetStatistics(AlterSetStatistics),
18383    AttachPartition(AttachPartition),
18384    DependsOnExtension(DependsOnExtension),
18385    NoDependsOnExtension(NoDependsOnExtension),
18386    RenameTo(RenameTo),
18387    ResetOptions(ResetOptions),
18388    SetOptions(SetOptions),
18389    SetTablespace(SetTablespace),
18390}
18391
18392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18393pub enum AlterMaterializedViewAction {
18394    DependsOnExtension(DependsOnExtension),
18395    NoDependsOnExtension(NoDependsOnExtension),
18396    RenameColumn(RenameColumn),
18397    RenameTo(RenameTo),
18398    SetSchema(SetSchema),
18399    AlterTableAction(AlterTableAction),
18400}
18401
18402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18403pub enum AlterPropertyGraphAction {
18404    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
18405    AddVertexEdgeTables(AddVertexEdgeTables),
18406    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
18407    DropEdgeTables(DropEdgeTables),
18408    DropVertexEdgeLabel(DropVertexEdgeLabel),
18409    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
18410    DropVertexTables(DropVertexTables),
18411    OwnerTo(OwnerTo),
18412    RenameTo(RenameTo),
18413    SetSchema(SetSchema),
18414}
18415
18416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18417pub enum AlterTableAction {
18418    AddColumn(AddColumn),
18419    AddConstraint(AddConstraint),
18420    AlterColumn(AlterColumn),
18421    AlterConstraint(AlterConstraint),
18422    AttachPartition(AttachPartition),
18423    ClusterOn(ClusterOn),
18424    DetachPartition(DetachPartition),
18425    DisableRls(DisableRls),
18426    DisableRule(DisableRule),
18427    DisableTrigger(DisableTrigger),
18428    DropColumn(DropColumn),
18429    DropConstraint(DropConstraint),
18430    EnableAlwaysRule(EnableAlwaysRule),
18431    EnableAlwaysTrigger(EnableAlwaysTrigger),
18432    EnableReplicaRule(EnableReplicaRule),
18433    EnableReplicaTrigger(EnableReplicaTrigger),
18434    EnableRls(EnableRls),
18435    EnableRule(EnableRule),
18436    EnableTrigger(EnableTrigger),
18437    ForceRls(ForceRls),
18438    InheritTable(InheritTable),
18439    MergePartitions(MergePartitions),
18440    NoForceRls(NoForceRls),
18441    NoInheritTable(NoInheritTable),
18442    NotOf(NotOf),
18443    OfType(OfType),
18444    OptionItemList(OptionItemList),
18445    OwnerTo(OwnerTo),
18446    RenameColumn(RenameColumn),
18447    RenameConstraint(RenameConstraint),
18448    RenameTo(RenameTo),
18449    ReplicaIdentity(ReplicaIdentity),
18450    ResetOptions(ResetOptions),
18451    SetAccessMethod(SetAccessMethod),
18452    SetLogged(SetLogged),
18453    SetOptions(SetOptions),
18454    SetSchema(SetSchema),
18455    SetTablespace(SetTablespace),
18456    SetUnlogged(SetUnlogged),
18457    SetWithoutCluster(SetWithoutCluster),
18458    SetWithoutOids(SetWithoutOids),
18459    SplitPartition(SplitPartition),
18460    ValidateConstraint(ValidateConstraint),
18461}
18462
18463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18464pub enum AlterTypeAction {
18465    AddAttribute(AddAttribute),
18466    AlterAttribute(AlterAttribute),
18467    DropAttribute(DropAttribute),
18468}
18469
18470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18471pub enum ColumnConstraint {
18472    CheckConstraint(CheckConstraint),
18473    DefaultConstraint(DefaultConstraint),
18474    ExcludeConstraint(ExcludeConstraint),
18475    NotNullConstraint(NotNullConstraint),
18476    PrimaryKeyConstraint(PrimaryKeyConstraint),
18477    ReferencesConstraint(ReferencesConstraint),
18478    UniqueConstraint(UniqueConstraint),
18479}
18480
18481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18482pub enum ConfigValue {
18483    Literal(Literal),
18484    NameRef(NameRef),
18485}
18486
18487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18488pub enum ConflictAction {
18489    ConflictDoNothing(ConflictDoNothing),
18490    ConflictDoSelect(ConflictDoSelect),
18491    ConflictDoUpdateSet(ConflictDoUpdateSet),
18492}
18493
18494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18495pub enum ConflictTarget {
18496    ConflictOnConstraint(ConflictOnConstraint),
18497    ConflictOnIndex(ConflictOnIndex),
18498}
18499
18500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18501pub enum Constraint {
18502    CheckConstraint(CheckConstraint),
18503    DefaultConstraint(DefaultConstraint),
18504    ForeignKeyConstraint(ForeignKeyConstraint),
18505    GeneratedConstraint(GeneratedConstraint),
18506    NotNullConstraint(NotNullConstraint),
18507    NullConstraint(NullConstraint),
18508    PrimaryKeyConstraint(PrimaryKeyConstraint),
18509    ReferencesConstraint(ReferencesConstraint),
18510    UniqueConstraint(UniqueConstraint),
18511}
18512
18513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18514pub enum ElementTableLabelAndProperties {
18515    LabelAndPropertiesList(LabelAndPropertiesList),
18516    ElementTableProperties(ElementTableProperties),
18517}
18518
18519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18520pub enum ElementTableProperties {
18521    AllProperties(AllProperties),
18522    NoProperties(NoProperties),
18523    PropertiesList(PropertiesList),
18524}
18525
18526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18527pub enum ExplainStmt {
18528    CompoundSelect(CompoundSelect),
18529    CreateMaterializedView(CreateMaterializedView),
18530    CreateTableAs(CreateTableAs),
18531    Declare(Declare),
18532    Delete(Delete),
18533    Execute(Execute),
18534    Insert(Insert),
18535    Merge(Merge),
18536    ParenSelect(ParenSelect),
18537    Select(Select),
18538    SelectInto(SelectInto),
18539    Table(Table),
18540    Update(Update),
18541    Values(Values),
18542}
18543
18544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18545pub enum Expr {
18546    ArrayExpr(ArrayExpr),
18547    BetweenExpr(BetweenExpr),
18548    BinExpr(BinExpr),
18549    CallExpr(CallExpr),
18550    CaseExpr(CaseExpr),
18551    CastExpr(CastExpr),
18552    FieldExpr(FieldExpr),
18553    IndexExpr(IndexExpr),
18554    Literal(Literal),
18555    NameRef(NameRef),
18556    ParenExpr(ParenExpr),
18557    PostfixExpr(PostfixExpr),
18558    PrefixExpr(PrefixExpr),
18559    SliceExpr(SliceExpr),
18560    TupleExpr(TupleExpr),
18561}
18562
18563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18564pub enum FuncOption {
18565    AsFuncOption(AsFuncOption),
18566    BeginFuncOptionList(BeginFuncOptionList),
18567    CostFuncOption(CostFuncOption),
18568    LanguageFuncOption(LanguageFuncOption),
18569    LeakproofFuncOption(LeakproofFuncOption),
18570    ParallelFuncOption(ParallelFuncOption),
18571    ResetFuncOption(ResetFuncOption),
18572    ReturnFuncOption(ReturnFuncOption),
18573    RowsFuncOption(RowsFuncOption),
18574    SecurityFuncOption(SecurityFuncOption),
18575    SetFuncOption(SetFuncOption),
18576    StrictFuncOption(StrictFuncOption),
18577    SupportFuncOption(SupportFuncOption),
18578    TransformFuncOption(TransformFuncOption),
18579    VolatilityFuncOption(VolatilityFuncOption),
18580    WindowFuncOption(WindowFuncOption),
18581}
18582
18583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18584pub enum GroupBy {
18585    GroupingCube(GroupingCube),
18586    GroupingExpr(GroupingExpr),
18587    GroupingRollup(GroupingRollup),
18588    GroupingSets(GroupingSets),
18589}
18590
18591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18592pub enum JoinType {
18593    JoinCross(JoinCross),
18594    JoinFull(JoinFull),
18595    JoinInner(JoinInner),
18596    JoinLeft(JoinLeft),
18597    JoinRight(JoinRight),
18598}
18599
18600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18601pub enum JsonBehavior {
18602    JsonBehaviorDefault(JsonBehaviorDefault),
18603    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
18604    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
18605    JsonBehaviorError(JsonBehaviorError),
18606    JsonBehaviorFalse(JsonBehaviorFalse),
18607    JsonBehaviorNull(JsonBehaviorNull),
18608    JsonBehaviorTrue(JsonBehaviorTrue),
18609    JsonBehaviorUnknown(JsonBehaviorUnknown),
18610}
18611
18612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18613pub enum MatchType {
18614    MatchFull(MatchFull),
18615    MatchPartial(MatchPartial),
18616    MatchSimple(MatchSimple),
18617}
18618
18619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18620pub enum MergeAction {
18621    MergeDelete(MergeDelete),
18622    MergeDoNothing(MergeDoNothing),
18623    MergeInsert(MergeInsert),
18624    MergeUpdate(MergeUpdate),
18625}
18626
18627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18628pub enum MergeWhenClause {
18629    MergeWhenMatched(MergeWhenMatched),
18630    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
18631    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
18632}
18633
18634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18635pub enum OnCommitAction {
18636    DeleteRows(DeleteRows),
18637    Drop(Drop),
18638    PreserveRows(PreserveRows),
18639}
18640
18641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18642pub enum ParamMode {
18643    ParamIn(ParamIn),
18644    ParamInOut(ParamInOut),
18645    ParamOut(ParamOut),
18646    ParamVariadic(ParamVariadic),
18647}
18648
18649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18650pub enum PartitionType {
18651    PartitionDefault(PartitionDefault),
18652    PartitionForValuesFrom(PartitionForValuesFrom),
18653    PartitionForValuesIn(PartitionForValuesIn),
18654    PartitionForValuesWith(PartitionForValuesWith),
18655}
18656
18657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18658pub enum PathPrimary {
18659    EdgeAny(EdgeAny),
18660    EdgeLeft(EdgeLeft),
18661    EdgeRight(EdgeRight),
18662    ParenGraphPattern(ParenGraphPattern),
18663    VertexPattern(VertexPattern),
18664}
18665
18666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18667pub enum PreparableStmt {
18668    CompoundSelect(CompoundSelect),
18669    Delete(Delete),
18670    Insert(Insert),
18671    Merge(Merge),
18672    Select(Select),
18673    SelectInto(SelectInto),
18674    Table(Table),
18675    Update(Update),
18676    Values(Values),
18677}
18678
18679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18680pub enum RefAction {
18681    Cascade(Cascade),
18682    NoAction(NoAction),
18683    Restrict(Restrict),
18684    SetDefaultColumns(SetDefaultColumns),
18685    SetNullColumns(SetNullColumns),
18686}
18687
18688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18689pub enum SchemaElement {
18690    CreateIndex(CreateIndex),
18691    CreateSequence(CreateSequence),
18692    CreateTable(CreateTable),
18693    CreateTrigger(CreateTrigger),
18694    CreateView(CreateView),
18695    Grant(Grant),
18696}
18697
18698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18699pub enum SelectVariant {
18700    CompoundSelect(CompoundSelect),
18701    ParenSelect(ParenSelect),
18702    Select(Select),
18703    SelectInto(SelectInto),
18704    Table(Table),
18705    Values(Values),
18706}
18707
18708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18709pub enum SetColumn {
18710    SetMultipleColumns(SetMultipleColumns),
18711    SetSingleColumn(SetSingleColumn),
18712}
18713
18714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18715pub enum Stmt {
18716    AlterAggregate(AlterAggregate),
18717    AlterCollation(AlterCollation),
18718    AlterConversion(AlterConversion),
18719    AlterDatabase(AlterDatabase),
18720    AlterDefaultPrivileges(AlterDefaultPrivileges),
18721    AlterDomain(AlterDomain),
18722    AlterEventTrigger(AlterEventTrigger),
18723    AlterExtension(AlterExtension),
18724    AlterForeignDataWrapper(AlterForeignDataWrapper),
18725    AlterForeignTable(AlterForeignTable),
18726    AlterFunction(AlterFunction),
18727    AlterGroup(AlterGroup),
18728    AlterIndex(AlterIndex),
18729    AlterLanguage(AlterLanguage),
18730    AlterLargeObject(AlterLargeObject),
18731    AlterMaterializedView(AlterMaterializedView),
18732    AlterOperator(AlterOperator),
18733    AlterOperatorClass(AlterOperatorClass),
18734    AlterOperatorFamily(AlterOperatorFamily),
18735    AlterPolicy(AlterPolicy),
18736    AlterProcedure(AlterProcedure),
18737    AlterPropertyGraph(AlterPropertyGraph),
18738    AlterPublication(AlterPublication),
18739    AlterRole(AlterRole),
18740    AlterRoutine(AlterRoutine),
18741    AlterRule(AlterRule),
18742    AlterSchema(AlterSchema),
18743    AlterSequence(AlterSequence),
18744    AlterServer(AlterServer),
18745    AlterStatistics(AlterStatistics),
18746    AlterSubscription(AlterSubscription),
18747    AlterSystem(AlterSystem),
18748    AlterTable(AlterTable),
18749    AlterTablespace(AlterTablespace),
18750    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
18751    AlterTextSearchDictionary(AlterTextSearchDictionary),
18752    AlterTextSearchParser(AlterTextSearchParser),
18753    AlterTextSearchTemplate(AlterTextSearchTemplate),
18754    AlterTrigger(AlterTrigger),
18755    AlterType(AlterType),
18756    AlterUser(AlterUser),
18757    AlterUserMapping(AlterUserMapping),
18758    AlterView(AlterView),
18759    Analyze(Analyze),
18760    Begin(Begin),
18761    Call(Call),
18762    Checkpoint(Checkpoint),
18763    Close(Close),
18764    Cluster(Cluster),
18765    CommentOn(CommentOn),
18766    Commit(Commit),
18767    Copy(Copy),
18768    CreateAccessMethod(CreateAccessMethod),
18769    CreateAggregate(CreateAggregate),
18770    CreateCast(CreateCast),
18771    CreateCollation(CreateCollation),
18772    CreateConversion(CreateConversion),
18773    CreateDatabase(CreateDatabase),
18774    CreateDomain(CreateDomain),
18775    CreateEventTrigger(CreateEventTrigger),
18776    CreateExtension(CreateExtension),
18777    CreateForeignDataWrapper(CreateForeignDataWrapper),
18778    CreateForeignTable(CreateForeignTable),
18779    CreateFunction(CreateFunction),
18780    CreateGroup(CreateGroup),
18781    CreateIndex(CreateIndex),
18782    CreateLanguage(CreateLanguage),
18783    CreateMaterializedView(CreateMaterializedView),
18784    CreateOperator(CreateOperator),
18785    CreateOperatorClass(CreateOperatorClass),
18786    CreateOperatorFamily(CreateOperatorFamily),
18787    CreatePolicy(CreatePolicy),
18788    CreateProcedure(CreateProcedure),
18789    CreatePropertyGraph(CreatePropertyGraph),
18790    CreatePublication(CreatePublication),
18791    CreateRole(CreateRole),
18792    CreateRule(CreateRule),
18793    CreateSchema(CreateSchema),
18794    CreateSequence(CreateSequence),
18795    CreateServer(CreateServer),
18796    CreateStatistics(CreateStatistics),
18797    CreateSubscription(CreateSubscription),
18798    CreateTable(CreateTable),
18799    CreateTableAs(CreateTableAs),
18800    CreateTablespace(CreateTablespace),
18801    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
18802    CreateTextSearchDictionary(CreateTextSearchDictionary),
18803    CreateTextSearchParser(CreateTextSearchParser),
18804    CreateTextSearchTemplate(CreateTextSearchTemplate),
18805    CreateTransform(CreateTransform),
18806    CreateTrigger(CreateTrigger),
18807    CreateType(CreateType),
18808    CreateUser(CreateUser),
18809    CreateUserMapping(CreateUserMapping),
18810    CreateView(CreateView),
18811    Deallocate(Deallocate),
18812    Declare(Declare),
18813    Delete(Delete),
18814    Discard(Discard),
18815    Do(Do),
18816    DropAccessMethod(DropAccessMethod),
18817    DropAggregate(DropAggregate),
18818    DropCast(DropCast),
18819    DropCollation(DropCollation),
18820    DropConversion(DropConversion),
18821    DropDatabase(DropDatabase),
18822    DropDomain(DropDomain),
18823    DropEventTrigger(DropEventTrigger),
18824    DropExtension(DropExtension),
18825    DropForeignDataWrapper(DropForeignDataWrapper),
18826    DropForeignTable(DropForeignTable),
18827    DropFunction(DropFunction),
18828    DropGroup(DropGroup),
18829    DropIndex(DropIndex),
18830    DropLanguage(DropLanguage),
18831    DropMaterializedView(DropMaterializedView),
18832    DropOperator(DropOperator),
18833    DropOperatorClass(DropOperatorClass),
18834    DropOperatorFamily(DropOperatorFamily),
18835    DropOwned(DropOwned),
18836    DropPolicy(DropPolicy),
18837    DropProcedure(DropProcedure),
18838    DropPropertyGraph(DropPropertyGraph),
18839    DropPublication(DropPublication),
18840    DropRole(DropRole),
18841    DropRoutine(DropRoutine),
18842    DropRule(DropRule),
18843    DropSchema(DropSchema),
18844    DropSequence(DropSequence),
18845    DropServer(DropServer),
18846    DropStatistics(DropStatistics),
18847    DropSubscription(DropSubscription),
18848    DropTable(DropTable),
18849    DropTablespace(DropTablespace),
18850    DropTextSearchConfig(DropTextSearchConfig),
18851    DropTextSearchDict(DropTextSearchDict),
18852    DropTextSearchParser(DropTextSearchParser),
18853    DropTextSearchTemplate(DropTextSearchTemplate),
18854    DropTransform(DropTransform),
18855    DropTrigger(DropTrigger),
18856    DropType(DropType),
18857    DropUser(DropUser),
18858    DropUserMapping(DropUserMapping),
18859    DropView(DropView),
18860    Execute(Execute),
18861    Explain(Explain),
18862    Fetch(Fetch),
18863    Grant(Grant),
18864    ImportForeignSchema(ImportForeignSchema),
18865    Insert(Insert),
18866    Listen(Listen),
18867    Load(Load),
18868    Lock(Lock),
18869    Merge(Merge),
18870    Move(Move),
18871    Notify(Notify),
18872    ParenSelect(ParenSelect),
18873    Prepare(Prepare),
18874    PrepareTransaction(PrepareTransaction),
18875    Reassign(Reassign),
18876    Refresh(Refresh),
18877    Reindex(Reindex),
18878    ReleaseSavepoint(ReleaseSavepoint),
18879    Repack(Repack),
18880    Reset(Reset),
18881    ResetSessionAuth(ResetSessionAuth),
18882    Revoke(Revoke),
18883    Rollback(Rollback),
18884    Savepoint(Savepoint),
18885    SecurityLabel(SecurityLabel),
18886    Select(Select),
18887    SelectInto(SelectInto),
18888    Set(Set),
18889    SetConstraints(SetConstraints),
18890    SetRole(SetRole),
18891    SetSessionAuth(SetSessionAuth),
18892    SetTransaction(SetTransaction),
18893    Show(Show),
18894    Table(Table),
18895    Truncate(Truncate),
18896    Unlisten(Unlisten),
18897    Update(Update),
18898    Vacuum(Vacuum),
18899    Values(Values),
18900}
18901
18902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18903pub enum TableArg {
18904    Column(Column),
18905    LikeClause(LikeClause),
18906    TableConstraint(TableConstraint),
18907}
18908
18909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18910pub enum TableConstraint {
18911    CheckConstraint(CheckConstraint),
18912    ExcludeConstraint(ExcludeConstraint),
18913    ForeignKeyConstraint(ForeignKeyConstraint),
18914    PrimaryKeyConstraint(PrimaryKeyConstraint),
18915    UniqueConstraint(UniqueConstraint),
18916}
18917
18918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18919pub enum Timezone {
18920    WithTimezone(WithTimezone),
18921    WithoutTimezone(WithoutTimezone),
18922}
18923
18924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18925pub enum TransactionMode {
18926    Deferrable(Deferrable),
18927    NotDeferrable(NotDeferrable),
18928    ReadCommitted(ReadCommitted),
18929    ReadOnly(ReadOnly),
18930    ReadUncommitted(ReadUncommitted),
18931    ReadWrite(ReadWrite),
18932    RepeatableRead(RepeatableRead),
18933    Serializable(Serializable),
18934}
18935
18936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18937pub enum Type {
18938    ArrayType(ArrayType),
18939    BitType(BitType),
18940    CharType(CharType),
18941    DoubleType(DoubleType),
18942    ExprType(ExprType),
18943    IntervalType(IntervalType),
18944    PathType(PathType),
18945    PercentType(PercentType),
18946    TimeType(TimeType),
18947}
18948
18949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18950pub enum ValuePosition {
18951    AfterValue(AfterValue),
18952    BeforeValue(BeforeValue),
18953}
18954
18955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18956pub enum WithQuery {
18957    CompoundSelect(CompoundSelect),
18958    Delete(Delete),
18959    Insert(Insert),
18960    Merge(Merge),
18961    ParenSelect(ParenSelect),
18962    Select(Select),
18963    Table(Table),
18964    Update(Update),
18965    Values(Values),
18966}
18967impl AstNode for AddAttribute {
18968    #[inline]
18969    fn can_cast(kind: SyntaxKind) -> bool {
18970        kind == SyntaxKind::ADD_ATTRIBUTE
18971    }
18972    #[inline]
18973    fn cast(syntax: SyntaxNode) -> Option<Self> {
18974        if Self::can_cast(syntax.kind()) {
18975            Some(Self { syntax })
18976        } else {
18977            None
18978        }
18979    }
18980    #[inline]
18981    fn syntax(&self) -> &SyntaxNode {
18982        &self.syntax
18983    }
18984}
18985impl AstNode for AddColumn {
18986    #[inline]
18987    fn can_cast(kind: SyntaxKind) -> bool {
18988        kind == SyntaxKind::ADD_COLUMN
18989    }
18990    #[inline]
18991    fn cast(syntax: SyntaxNode) -> Option<Self> {
18992        if Self::can_cast(syntax.kind()) {
18993            Some(Self { syntax })
18994        } else {
18995            None
18996        }
18997    }
18998    #[inline]
18999    fn syntax(&self) -> &SyntaxNode {
19000        &self.syntax
19001    }
19002}
19003impl AstNode for AddConstraint {
19004    #[inline]
19005    fn can_cast(kind: SyntaxKind) -> bool {
19006        kind == SyntaxKind::ADD_CONSTRAINT
19007    }
19008    #[inline]
19009    fn cast(syntax: SyntaxNode) -> Option<Self> {
19010        if Self::can_cast(syntax.kind()) {
19011            Some(Self { syntax })
19012        } else {
19013            None
19014        }
19015    }
19016    #[inline]
19017    fn syntax(&self) -> &SyntaxNode {
19018        &self.syntax
19019    }
19020}
19021impl AstNode for AddGenerated {
19022    #[inline]
19023    fn can_cast(kind: SyntaxKind) -> bool {
19024        kind == SyntaxKind::ADD_GENERATED
19025    }
19026    #[inline]
19027    fn cast(syntax: SyntaxNode) -> Option<Self> {
19028        if Self::can_cast(syntax.kind()) {
19029            Some(Self { syntax })
19030        } else {
19031            None
19032        }
19033    }
19034    #[inline]
19035    fn syntax(&self) -> &SyntaxNode {
19036        &self.syntax
19037    }
19038}
19039impl AstNode for AddLabel {
19040    #[inline]
19041    fn can_cast(kind: SyntaxKind) -> bool {
19042        kind == SyntaxKind::ADD_LABEL
19043    }
19044    #[inline]
19045    fn cast(syntax: SyntaxNode) -> Option<Self> {
19046        if Self::can_cast(syntax.kind()) {
19047            Some(Self { syntax })
19048        } else {
19049            None
19050        }
19051    }
19052    #[inline]
19053    fn syntax(&self) -> &SyntaxNode {
19054        &self.syntax
19055    }
19056}
19057impl AstNode for AddOpClassOptions {
19058    #[inline]
19059    fn can_cast(kind: SyntaxKind) -> bool {
19060        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19061    }
19062    #[inline]
19063    fn cast(syntax: SyntaxNode) -> Option<Self> {
19064        if Self::can_cast(syntax.kind()) {
19065            Some(Self { syntax })
19066        } else {
19067            None
19068        }
19069    }
19070    #[inline]
19071    fn syntax(&self) -> &SyntaxNode {
19072        &self.syntax
19073    }
19074}
19075impl AstNode for AddValue {
19076    #[inline]
19077    fn can_cast(kind: SyntaxKind) -> bool {
19078        kind == SyntaxKind::ADD_VALUE
19079    }
19080    #[inline]
19081    fn cast(syntax: SyntaxNode) -> Option<Self> {
19082        if Self::can_cast(syntax.kind()) {
19083            Some(Self { syntax })
19084        } else {
19085            None
19086        }
19087    }
19088    #[inline]
19089    fn syntax(&self) -> &SyntaxNode {
19090        &self.syntax
19091    }
19092}
19093impl AstNode for AddVertexEdgeLabelProperties {
19094    #[inline]
19095    fn can_cast(kind: SyntaxKind) -> bool {
19096        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19097    }
19098    #[inline]
19099    fn cast(syntax: SyntaxNode) -> Option<Self> {
19100        if Self::can_cast(syntax.kind()) {
19101            Some(Self { syntax })
19102        } else {
19103            None
19104        }
19105    }
19106    #[inline]
19107    fn syntax(&self) -> &SyntaxNode {
19108        &self.syntax
19109    }
19110}
19111impl AstNode for AddVertexEdgeTables {
19112    #[inline]
19113    fn can_cast(kind: SyntaxKind) -> bool {
19114        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
19115    }
19116    #[inline]
19117    fn cast(syntax: SyntaxNode) -> Option<Self> {
19118        if Self::can_cast(syntax.kind()) {
19119            Some(Self { syntax })
19120        } else {
19121            None
19122        }
19123    }
19124    #[inline]
19125    fn syntax(&self) -> &SyntaxNode {
19126        &self.syntax
19127    }
19128}
19129impl AstNode for AfterValue {
19130    #[inline]
19131    fn can_cast(kind: SyntaxKind) -> bool {
19132        kind == SyntaxKind::AFTER_VALUE
19133    }
19134    #[inline]
19135    fn cast(syntax: SyntaxNode) -> Option<Self> {
19136        if Self::can_cast(syntax.kind()) {
19137            Some(Self { syntax })
19138        } else {
19139            None
19140        }
19141    }
19142    #[inline]
19143    fn syntax(&self) -> &SyntaxNode {
19144        &self.syntax
19145    }
19146}
19147impl AstNode for Aggregate {
19148    #[inline]
19149    fn can_cast(kind: SyntaxKind) -> bool {
19150        kind == SyntaxKind::AGGREGATE
19151    }
19152    #[inline]
19153    fn cast(syntax: SyntaxNode) -> Option<Self> {
19154        if Self::can_cast(syntax.kind()) {
19155            Some(Self { syntax })
19156        } else {
19157            None
19158        }
19159    }
19160    #[inline]
19161    fn syntax(&self) -> &SyntaxNode {
19162        &self.syntax
19163    }
19164}
19165impl AstNode for Alias {
19166    #[inline]
19167    fn can_cast(kind: SyntaxKind) -> bool {
19168        kind == SyntaxKind::ALIAS
19169    }
19170    #[inline]
19171    fn cast(syntax: SyntaxNode) -> Option<Self> {
19172        if Self::can_cast(syntax.kind()) {
19173            Some(Self { syntax })
19174        } else {
19175            None
19176        }
19177    }
19178    #[inline]
19179    fn syntax(&self) -> &SyntaxNode {
19180        &self.syntax
19181    }
19182}
19183impl AstNode for AllFn {
19184    #[inline]
19185    fn can_cast(kind: SyntaxKind) -> bool {
19186        kind == SyntaxKind::ALL_FN
19187    }
19188    #[inline]
19189    fn cast(syntax: SyntaxNode) -> Option<Self> {
19190        if Self::can_cast(syntax.kind()) {
19191            Some(Self { syntax })
19192        } else {
19193            None
19194        }
19195    }
19196    #[inline]
19197    fn syntax(&self) -> &SyntaxNode {
19198        &self.syntax
19199    }
19200}
19201impl AstNode for AllProperties {
19202    #[inline]
19203    fn can_cast(kind: SyntaxKind) -> bool {
19204        kind == SyntaxKind::ALL_PROPERTIES
19205    }
19206    #[inline]
19207    fn cast(syntax: SyntaxNode) -> Option<Self> {
19208        if Self::can_cast(syntax.kind()) {
19209            Some(Self { syntax })
19210        } else {
19211            None
19212        }
19213    }
19214    #[inline]
19215    fn syntax(&self) -> &SyntaxNode {
19216        &self.syntax
19217    }
19218}
19219impl AstNode for AlterAggregate {
19220    #[inline]
19221    fn can_cast(kind: SyntaxKind) -> bool {
19222        kind == SyntaxKind::ALTER_AGGREGATE
19223    }
19224    #[inline]
19225    fn cast(syntax: SyntaxNode) -> Option<Self> {
19226        if Self::can_cast(syntax.kind()) {
19227            Some(Self { syntax })
19228        } else {
19229            None
19230        }
19231    }
19232    #[inline]
19233    fn syntax(&self) -> &SyntaxNode {
19234        &self.syntax
19235    }
19236}
19237impl AstNode for AlterAttribute {
19238    #[inline]
19239    fn can_cast(kind: SyntaxKind) -> bool {
19240        kind == SyntaxKind::ALTER_ATTRIBUTE
19241    }
19242    #[inline]
19243    fn cast(syntax: SyntaxNode) -> Option<Self> {
19244        if Self::can_cast(syntax.kind()) {
19245            Some(Self { syntax })
19246        } else {
19247            None
19248        }
19249    }
19250    #[inline]
19251    fn syntax(&self) -> &SyntaxNode {
19252        &self.syntax
19253    }
19254}
19255impl AstNode for AlterCollation {
19256    #[inline]
19257    fn can_cast(kind: SyntaxKind) -> bool {
19258        kind == SyntaxKind::ALTER_COLLATION
19259    }
19260    #[inline]
19261    fn cast(syntax: SyntaxNode) -> Option<Self> {
19262        if Self::can_cast(syntax.kind()) {
19263            Some(Self { syntax })
19264        } else {
19265            None
19266        }
19267    }
19268    #[inline]
19269    fn syntax(&self) -> &SyntaxNode {
19270        &self.syntax
19271    }
19272}
19273impl AstNode for AlterColumn {
19274    #[inline]
19275    fn can_cast(kind: SyntaxKind) -> bool {
19276        kind == SyntaxKind::ALTER_COLUMN
19277    }
19278    #[inline]
19279    fn cast(syntax: SyntaxNode) -> Option<Self> {
19280        if Self::can_cast(syntax.kind()) {
19281            Some(Self { syntax })
19282        } else {
19283            None
19284        }
19285    }
19286    #[inline]
19287    fn syntax(&self) -> &SyntaxNode {
19288        &self.syntax
19289    }
19290}
19291impl AstNode for AlterConstraint {
19292    #[inline]
19293    fn can_cast(kind: SyntaxKind) -> bool {
19294        kind == SyntaxKind::ALTER_CONSTRAINT
19295    }
19296    #[inline]
19297    fn cast(syntax: SyntaxNode) -> Option<Self> {
19298        if Self::can_cast(syntax.kind()) {
19299            Some(Self { syntax })
19300        } else {
19301            None
19302        }
19303    }
19304    #[inline]
19305    fn syntax(&self) -> &SyntaxNode {
19306        &self.syntax
19307    }
19308}
19309impl AstNode for AlterConversion {
19310    #[inline]
19311    fn can_cast(kind: SyntaxKind) -> bool {
19312        kind == SyntaxKind::ALTER_CONVERSION
19313    }
19314    #[inline]
19315    fn cast(syntax: SyntaxNode) -> Option<Self> {
19316        if Self::can_cast(syntax.kind()) {
19317            Some(Self { syntax })
19318        } else {
19319            None
19320        }
19321    }
19322    #[inline]
19323    fn syntax(&self) -> &SyntaxNode {
19324        &self.syntax
19325    }
19326}
19327impl AstNode for AlterDatabase {
19328    #[inline]
19329    fn can_cast(kind: SyntaxKind) -> bool {
19330        kind == SyntaxKind::ALTER_DATABASE
19331    }
19332    #[inline]
19333    fn cast(syntax: SyntaxNode) -> Option<Self> {
19334        if Self::can_cast(syntax.kind()) {
19335            Some(Self { syntax })
19336        } else {
19337            None
19338        }
19339    }
19340    #[inline]
19341    fn syntax(&self) -> &SyntaxNode {
19342        &self.syntax
19343    }
19344}
19345impl AstNode for AlterDefaultPrivileges {
19346    #[inline]
19347    fn can_cast(kind: SyntaxKind) -> bool {
19348        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
19349    }
19350    #[inline]
19351    fn cast(syntax: SyntaxNode) -> Option<Self> {
19352        if Self::can_cast(syntax.kind()) {
19353            Some(Self { syntax })
19354        } else {
19355            None
19356        }
19357    }
19358    #[inline]
19359    fn syntax(&self) -> &SyntaxNode {
19360        &self.syntax
19361    }
19362}
19363impl AstNode for AlterDomain {
19364    #[inline]
19365    fn can_cast(kind: SyntaxKind) -> bool {
19366        kind == SyntaxKind::ALTER_DOMAIN
19367    }
19368    #[inline]
19369    fn cast(syntax: SyntaxNode) -> Option<Self> {
19370        if Self::can_cast(syntax.kind()) {
19371            Some(Self { syntax })
19372        } else {
19373            None
19374        }
19375    }
19376    #[inline]
19377    fn syntax(&self) -> &SyntaxNode {
19378        &self.syntax
19379    }
19380}
19381impl AstNode for AlterEventTrigger {
19382    #[inline]
19383    fn can_cast(kind: SyntaxKind) -> bool {
19384        kind == SyntaxKind::ALTER_EVENT_TRIGGER
19385    }
19386    #[inline]
19387    fn cast(syntax: SyntaxNode) -> Option<Self> {
19388        if Self::can_cast(syntax.kind()) {
19389            Some(Self { syntax })
19390        } else {
19391            None
19392        }
19393    }
19394    #[inline]
19395    fn syntax(&self) -> &SyntaxNode {
19396        &self.syntax
19397    }
19398}
19399impl AstNode for AlterExtension {
19400    #[inline]
19401    fn can_cast(kind: SyntaxKind) -> bool {
19402        kind == SyntaxKind::ALTER_EXTENSION
19403    }
19404    #[inline]
19405    fn cast(syntax: SyntaxNode) -> Option<Self> {
19406        if Self::can_cast(syntax.kind()) {
19407            Some(Self { syntax })
19408        } else {
19409            None
19410        }
19411    }
19412    #[inline]
19413    fn syntax(&self) -> &SyntaxNode {
19414        &self.syntax
19415    }
19416}
19417impl AstNode for AlterForeignDataWrapper {
19418    #[inline]
19419    fn can_cast(kind: SyntaxKind) -> bool {
19420        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
19421    }
19422    #[inline]
19423    fn cast(syntax: SyntaxNode) -> Option<Self> {
19424        if Self::can_cast(syntax.kind()) {
19425            Some(Self { syntax })
19426        } else {
19427            None
19428        }
19429    }
19430    #[inline]
19431    fn syntax(&self) -> &SyntaxNode {
19432        &self.syntax
19433    }
19434}
19435impl AstNode for AlterForeignTable {
19436    #[inline]
19437    fn can_cast(kind: SyntaxKind) -> bool {
19438        kind == SyntaxKind::ALTER_FOREIGN_TABLE
19439    }
19440    #[inline]
19441    fn cast(syntax: SyntaxNode) -> Option<Self> {
19442        if Self::can_cast(syntax.kind()) {
19443            Some(Self { syntax })
19444        } else {
19445            None
19446        }
19447    }
19448    #[inline]
19449    fn syntax(&self) -> &SyntaxNode {
19450        &self.syntax
19451    }
19452}
19453impl AstNode for AlterFunction {
19454    #[inline]
19455    fn can_cast(kind: SyntaxKind) -> bool {
19456        kind == SyntaxKind::ALTER_FUNCTION
19457    }
19458    #[inline]
19459    fn cast(syntax: SyntaxNode) -> Option<Self> {
19460        if Self::can_cast(syntax.kind()) {
19461            Some(Self { syntax })
19462        } else {
19463            None
19464        }
19465    }
19466    #[inline]
19467    fn syntax(&self) -> &SyntaxNode {
19468        &self.syntax
19469    }
19470}
19471impl AstNode for AlterGroup {
19472    #[inline]
19473    fn can_cast(kind: SyntaxKind) -> bool {
19474        kind == SyntaxKind::ALTER_GROUP
19475    }
19476    #[inline]
19477    fn cast(syntax: SyntaxNode) -> Option<Self> {
19478        if Self::can_cast(syntax.kind()) {
19479            Some(Self { syntax })
19480        } else {
19481            None
19482        }
19483    }
19484    #[inline]
19485    fn syntax(&self) -> &SyntaxNode {
19486        &self.syntax
19487    }
19488}
19489impl AstNode for AlterIndex {
19490    #[inline]
19491    fn can_cast(kind: SyntaxKind) -> bool {
19492        kind == SyntaxKind::ALTER_INDEX
19493    }
19494    #[inline]
19495    fn cast(syntax: SyntaxNode) -> Option<Self> {
19496        if Self::can_cast(syntax.kind()) {
19497            Some(Self { syntax })
19498        } else {
19499            None
19500        }
19501    }
19502    #[inline]
19503    fn syntax(&self) -> &SyntaxNode {
19504        &self.syntax
19505    }
19506}
19507impl AstNode for AlterLanguage {
19508    #[inline]
19509    fn can_cast(kind: SyntaxKind) -> bool {
19510        kind == SyntaxKind::ALTER_LANGUAGE
19511    }
19512    #[inline]
19513    fn cast(syntax: SyntaxNode) -> Option<Self> {
19514        if Self::can_cast(syntax.kind()) {
19515            Some(Self { syntax })
19516        } else {
19517            None
19518        }
19519    }
19520    #[inline]
19521    fn syntax(&self) -> &SyntaxNode {
19522        &self.syntax
19523    }
19524}
19525impl AstNode for AlterLargeObject {
19526    #[inline]
19527    fn can_cast(kind: SyntaxKind) -> bool {
19528        kind == SyntaxKind::ALTER_LARGE_OBJECT
19529    }
19530    #[inline]
19531    fn cast(syntax: SyntaxNode) -> Option<Self> {
19532        if Self::can_cast(syntax.kind()) {
19533            Some(Self { syntax })
19534        } else {
19535            None
19536        }
19537    }
19538    #[inline]
19539    fn syntax(&self) -> &SyntaxNode {
19540        &self.syntax
19541    }
19542}
19543impl AstNode for AlterMaterializedView {
19544    #[inline]
19545    fn can_cast(kind: SyntaxKind) -> bool {
19546        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
19547    }
19548    #[inline]
19549    fn cast(syntax: SyntaxNode) -> Option<Self> {
19550        if Self::can_cast(syntax.kind()) {
19551            Some(Self { syntax })
19552        } else {
19553            None
19554        }
19555    }
19556    #[inline]
19557    fn syntax(&self) -> &SyntaxNode {
19558        &self.syntax
19559    }
19560}
19561impl AstNode for AlterOperator {
19562    #[inline]
19563    fn can_cast(kind: SyntaxKind) -> bool {
19564        kind == SyntaxKind::ALTER_OPERATOR
19565    }
19566    #[inline]
19567    fn cast(syntax: SyntaxNode) -> Option<Self> {
19568        if Self::can_cast(syntax.kind()) {
19569            Some(Self { syntax })
19570        } else {
19571            None
19572        }
19573    }
19574    #[inline]
19575    fn syntax(&self) -> &SyntaxNode {
19576        &self.syntax
19577    }
19578}
19579impl AstNode for AlterOperatorClass {
19580    #[inline]
19581    fn can_cast(kind: SyntaxKind) -> bool {
19582        kind == SyntaxKind::ALTER_OPERATOR_CLASS
19583    }
19584    #[inline]
19585    fn cast(syntax: SyntaxNode) -> Option<Self> {
19586        if Self::can_cast(syntax.kind()) {
19587            Some(Self { syntax })
19588        } else {
19589            None
19590        }
19591    }
19592    #[inline]
19593    fn syntax(&self) -> &SyntaxNode {
19594        &self.syntax
19595    }
19596}
19597impl AstNode for AlterOperatorFamily {
19598    #[inline]
19599    fn can_cast(kind: SyntaxKind) -> bool {
19600        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
19601    }
19602    #[inline]
19603    fn cast(syntax: SyntaxNode) -> Option<Self> {
19604        if Self::can_cast(syntax.kind()) {
19605            Some(Self { syntax })
19606        } else {
19607            None
19608        }
19609    }
19610    #[inline]
19611    fn syntax(&self) -> &SyntaxNode {
19612        &self.syntax
19613    }
19614}
19615impl AstNode for AlterOption {
19616    #[inline]
19617    fn can_cast(kind: SyntaxKind) -> bool {
19618        kind == SyntaxKind::ALTER_OPTION
19619    }
19620    #[inline]
19621    fn cast(syntax: SyntaxNode) -> Option<Self> {
19622        if Self::can_cast(syntax.kind()) {
19623            Some(Self { syntax })
19624        } else {
19625            None
19626        }
19627    }
19628    #[inline]
19629    fn syntax(&self) -> &SyntaxNode {
19630        &self.syntax
19631    }
19632}
19633impl AstNode for AlterOptionList {
19634    #[inline]
19635    fn can_cast(kind: SyntaxKind) -> bool {
19636        kind == SyntaxKind::ALTER_OPTION_LIST
19637    }
19638    #[inline]
19639    fn cast(syntax: SyntaxNode) -> Option<Self> {
19640        if Self::can_cast(syntax.kind()) {
19641            Some(Self { syntax })
19642        } else {
19643            None
19644        }
19645    }
19646    #[inline]
19647    fn syntax(&self) -> &SyntaxNode {
19648        &self.syntax
19649    }
19650}
19651impl AstNode for AlterPolicy {
19652    #[inline]
19653    fn can_cast(kind: SyntaxKind) -> bool {
19654        kind == SyntaxKind::ALTER_POLICY
19655    }
19656    #[inline]
19657    fn cast(syntax: SyntaxNode) -> Option<Self> {
19658        if Self::can_cast(syntax.kind()) {
19659            Some(Self { syntax })
19660        } else {
19661            None
19662        }
19663    }
19664    #[inline]
19665    fn syntax(&self) -> &SyntaxNode {
19666        &self.syntax
19667    }
19668}
19669impl AstNode for AlterProcedure {
19670    #[inline]
19671    fn can_cast(kind: SyntaxKind) -> bool {
19672        kind == SyntaxKind::ALTER_PROCEDURE
19673    }
19674    #[inline]
19675    fn cast(syntax: SyntaxNode) -> Option<Self> {
19676        if Self::can_cast(syntax.kind()) {
19677            Some(Self { syntax })
19678        } else {
19679            None
19680        }
19681    }
19682    #[inline]
19683    fn syntax(&self) -> &SyntaxNode {
19684        &self.syntax
19685    }
19686}
19687impl AstNode for AlterPropertyGraph {
19688    #[inline]
19689    fn can_cast(kind: SyntaxKind) -> bool {
19690        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
19691    }
19692    #[inline]
19693    fn cast(syntax: SyntaxNode) -> Option<Self> {
19694        if Self::can_cast(syntax.kind()) {
19695            Some(Self { syntax })
19696        } else {
19697            None
19698        }
19699    }
19700    #[inline]
19701    fn syntax(&self) -> &SyntaxNode {
19702        &self.syntax
19703    }
19704}
19705impl AstNode for AlterPublication {
19706    #[inline]
19707    fn can_cast(kind: SyntaxKind) -> bool {
19708        kind == SyntaxKind::ALTER_PUBLICATION
19709    }
19710    #[inline]
19711    fn cast(syntax: SyntaxNode) -> Option<Self> {
19712        if Self::can_cast(syntax.kind()) {
19713            Some(Self { syntax })
19714        } else {
19715            None
19716        }
19717    }
19718    #[inline]
19719    fn syntax(&self) -> &SyntaxNode {
19720        &self.syntax
19721    }
19722}
19723impl AstNode for AlterRole {
19724    #[inline]
19725    fn can_cast(kind: SyntaxKind) -> bool {
19726        kind == SyntaxKind::ALTER_ROLE
19727    }
19728    #[inline]
19729    fn cast(syntax: SyntaxNode) -> Option<Self> {
19730        if Self::can_cast(syntax.kind()) {
19731            Some(Self { syntax })
19732        } else {
19733            None
19734        }
19735    }
19736    #[inline]
19737    fn syntax(&self) -> &SyntaxNode {
19738        &self.syntax
19739    }
19740}
19741impl AstNode for AlterRoutine {
19742    #[inline]
19743    fn can_cast(kind: SyntaxKind) -> bool {
19744        kind == SyntaxKind::ALTER_ROUTINE
19745    }
19746    #[inline]
19747    fn cast(syntax: SyntaxNode) -> Option<Self> {
19748        if Self::can_cast(syntax.kind()) {
19749            Some(Self { syntax })
19750        } else {
19751            None
19752        }
19753    }
19754    #[inline]
19755    fn syntax(&self) -> &SyntaxNode {
19756        &self.syntax
19757    }
19758}
19759impl AstNode for AlterRule {
19760    #[inline]
19761    fn can_cast(kind: SyntaxKind) -> bool {
19762        kind == SyntaxKind::ALTER_RULE
19763    }
19764    #[inline]
19765    fn cast(syntax: SyntaxNode) -> Option<Self> {
19766        if Self::can_cast(syntax.kind()) {
19767            Some(Self { syntax })
19768        } else {
19769            None
19770        }
19771    }
19772    #[inline]
19773    fn syntax(&self) -> &SyntaxNode {
19774        &self.syntax
19775    }
19776}
19777impl AstNode for AlterSchema {
19778    #[inline]
19779    fn can_cast(kind: SyntaxKind) -> bool {
19780        kind == SyntaxKind::ALTER_SCHEMA
19781    }
19782    #[inline]
19783    fn cast(syntax: SyntaxNode) -> Option<Self> {
19784        if Self::can_cast(syntax.kind()) {
19785            Some(Self { syntax })
19786        } else {
19787            None
19788        }
19789    }
19790    #[inline]
19791    fn syntax(&self) -> &SyntaxNode {
19792        &self.syntax
19793    }
19794}
19795impl AstNode for AlterSequence {
19796    #[inline]
19797    fn can_cast(kind: SyntaxKind) -> bool {
19798        kind == SyntaxKind::ALTER_SEQUENCE
19799    }
19800    #[inline]
19801    fn cast(syntax: SyntaxNode) -> Option<Self> {
19802        if Self::can_cast(syntax.kind()) {
19803            Some(Self { syntax })
19804        } else {
19805            None
19806        }
19807    }
19808    #[inline]
19809    fn syntax(&self) -> &SyntaxNode {
19810        &self.syntax
19811    }
19812}
19813impl AstNode for AlterServer {
19814    #[inline]
19815    fn can_cast(kind: SyntaxKind) -> bool {
19816        kind == SyntaxKind::ALTER_SERVER
19817    }
19818    #[inline]
19819    fn cast(syntax: SyntaxNode) -> Option<Self> {
19820        if Self::can_cast(syntax.kind()) {
19821            Some(Self { syntax })
19822        } else {
19823            None
19824        }
19825    }
19826    #[inline]
19827    fn syntax(&self) -> &SyntaxNode {
19828        &self.syntax
19829    }
19830}
19831impl AstNode for AlterSetStatistics {
19832    #[inline]
19833    fn can_cast(kind: SyntaxKind) -> bool {
19834        kind == SyntaxKind::ALTER_SET_STATISTICS
19835    }
19836    #[inline]
19837    fn cast(syntax: SyntaxNode) -> Option<Self> {
19838        if Self::can_cast(syntax.kind()) {
19839            Some(Self { syntax })
19840        } else {
19841            None
19842        }
19843    }
19844    #[inline]
19845    fn syntax(&self) -> &SyntaxNode {
19846        &self.syntax
19847    }
19848}
19849impl AstNode for AlterStatistics {
19850    #[inline]
19851    fn can_cast(kind: SyntaxKind) -> bool {
19852        kind == SyntaxKind::ALTER_STATISTICS
19853    }
19854    #[inline]
19855    fn cast(syntax: SyntaxNode) -> Option<Self> {
19856        if Self::can_cast(syntax.kind()) {
19857            Some(Self { syntax })
19858        } else {
19859            None
19860        }
19861    }
19862    #[inline]
19863    fn syntax(&self) -> &SyntaxNode {
19864        &self.syntax
19865    }
19866}
19867impl AstNode for AlterSubscription {
19868    #[inline]
19869    fn can_cast(kind: SyntaxKind) -> bool {
19870        kind == SyntaxKind::ALTER_SUBSCRIPTION
19871    }
19872    #[inline]
19873    fn cast(syntax: SyntaxNode) -> Option<Self> {
19874        if Self::can_cast(syntax.kind()) {
19875            Some(Self { syntax })
19876        } else {
19877            None
19878        }
19879    }
19880    #[inline]
19881    fn syntax(&self) -> &SyntaxNode {
19882        &self.syntax
19883    }
19884}
19885impl AstNode for AlterSystem {
19886    #[inline]
19887    fn can_cast(kind: SyntaxKind) -> bool {
19888        kind == SyntaxKind::ALTER_SYSTEM
19889    }
19890    #[inline]
19891    fn cast(syntax: SyntaxNode) -> Option<Self> {
19892        if Self::can_cast(syntax.kind()) {
19893            Some(Self { syntax })
19894        } else {
19895            None
19896        }
19897    }
19898    #[inline]
19899    fn syntax(&self) -> &SyntaxNode {
19900        &self.syntax
19901    }
19902}
19903impl AstNode for AlterTable {
19904    #[inline]
19905    fn can_cast(kind: SyntaxKind) -> bool {
19906        kind == SyntaxKind::ALTER_TABLE
19907    }
19908    #[inline]
19909    fn cast(syntax: SyntaxNode) -> Option<Self> {
19910        if Self::can_cast(syntax.kind()) {
19911            Some(Self { syntax })
19912        } else {
19913            None
19914        }
19915    }
19916    #[inline]
19917    fn syntax(&self) -> &SyntaxNode {
19918        &self.syntax
19919    }
19920}
19921impl AstNode for AlterTablespace {
19922    #[inline]
19923    fn can_cast(kind: SyntaxKind) -> bool {
19924        kind == SyntaxKind::ALTER_TABLESPACE
19925    }
19926    #[inline]
19927    fn cast(syntax: SyntaxNode) -> Option<Self> {
19928        if Self::can_cast(syntax.kind()) {
19929            Some(Self { syntax })
19930        } else {
19931            None
19932        }
19933    }
19934    #[inline]
19935    fn syntax(&self) -> &SyntaxNode {
19936        &self.syntax
19937    }
19938}
19939impl AstNode for AlterTextSearchConfiguration {
19940    #[inline]
19941    fn can_cast(kind: SyntaxKind) -> bool {
19942        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
19943    }
19944    #[inline]
19945    fn cast(syntax: SyntaxNode) -> Option<Self> {
19946        if Self::can_cast(syntax.kind()) {
19947            Some(Self { syntax })
19948        } else {
19949            None
19950        }
19951    }
19952    #[inline]
19953    fn syntax(&self) -> &SyntaxNode {
19954        &self.syntax
19955    }
19956}
19957impl AstNode for AlterTextSearchDictionary {
19958    #[inline]
19959    fn can_cast(kind: SyntaxKind) -> bool {
19960        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
19961    }
19962    #[inline]
19963    fn cast(syntax: SyntaxNode) -> Option<Self> {
19964        if Self::can_cast(syntax.kind()) {
19965            Some(Self { syntax })
19966        } else {
19967            None
19968        }
19969    }
19970    #[inline]
19971    fn syntax(&self) -> &SyntaxNode {
19972        &self.syntax
19973    }
19974}
19975impl AstNode for AlterTextSearchParser {
19976    #[inline]
19977    fn can_cast(kind: SyntaxKind) -> bool {
19978        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
19979    }
19980    #[inline]
19981    fn cast(syntax: SyntaxNode) -> Option<Self> {
19982        if Self::can_cast(syntax.kind()) {
19983            Some(Self { syntax })
19984        } else {
19985            None
19986        }
19987    }
19988    #[inline]
19989    fn syntax(&self) -> &SyntaxNode {
19990        &self.syntax
19991    }
19992}
19993impl AstNode for AlterTextSearchTemplate {
19994    #[inline]
19995    fn can_cast(kind: SyntaxKind) -> bool {
19996        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
19997    }
19998    #[inline]
19999    fn cast(syntax: SyntaxNode) -> Option<Self> {
20000        if Self::can_cast(syntax.kind()) {
20001            Some(Self { syntax })
20002        } else {
20003            None
20004        }
20005    }
20006    #[inline]
20007    fn syntax(&self) -> &SyntaxNode {
20008        &self.syntax
20009    }
20010}
20011impl AstNode for AlterTrigger {
20012    #[inline]
20013    fn can_cast(kind: SyntaxKind) -> bool {
20014        kind == SyntaxKind::ALTER_TRIGGER
20015    }
20016    #[inline]
20017    fn cast(syntax: SyntaxNode) -> Option<Self> {
20018        if Self::can_cast(syntax.kind()) {
20019            Some(Self { syntax })
20020        } else {
20021            None
20022        }
20023    }
20024    #[inline]
20025    fn syntax(&self) -> &SyntaxNode {
20026        &self.syntax
20027    }
20028}
20029impl AstNode for AlterType {
20030    #[inline]
20031    fn can_cast(kind: SyntaxKind) -> bool {
20032        kind == SyntaxKind::ALTER_TYPE
20033    }
20034    #[inline]
20035    fn cast(syntax: SyntaxNode) -> Option<Self> {
20036        if Self::can_cast(syntax.kind()) {
20037            Some(Self { syntax })
20038        } else {
20039            None
20040        }
20041    }
20042    #[inline]
20043    fn syntax(&self) -> &SyntaxNode {
20044        &self.syntax
20045    }
20046}
20047impl AstNode for AlterUser {
20048    #[inline]
20049    fn can_cast(kind: SyntaxKind) -> bool {
20050        kind == SyntaxKind::ALTER_USER
20051    }
20052    #[inline]
20053    fn cast(syntax: SyntaxNode) -> Option<Self> {
20054        if Self::can_cast(syntax.kind()) {
20055            Some(Self { syntax })
20056        } else {
20057            None
20058        }
20059    }
20060    #[inline]
20061    fn syntax(&self) -> &SyntaxNode {
20062        &self.syntax
20063    }
20064}
20065impl AstNode for AlterUserMapping {
20066    #[inline]
20067    fn can_cast(kind: SyntaxKind) -> bool {
20068        kind == SyntaxKind::ALTER_USER_MAPPING
20069    }
20070    #[inline]
20071    fn cast(syntax: SyntaxNode) -> Option<Self> {
20072        if Self::can_cast(syntax.kind()) {
20073            Some(Self { syntax })
20074        } else {
20075            None
20076        }
20077    }
20078    #[inline]
20079    fn syntax(&self) -> &SyntaxNode {
20080        &self.syntax
20081    }
20082}
20083impl AstNode for AlterVertexEdgeLabels {
20084    #[inline]
20085    fn can_cast(kind: SyntaxKind) -> bool {
20086        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20087    }
20088    #[inline]
20089    fn cast(syntax: SyntaxNode) -> Option<Self> {
20090        if Self::can_cast(syntax.kind()) {
20091            Some(Self { syntax })
20092        } else {
20093            None
20094        }
20095    }
20096    #[inline]
20097    fn syntax(&self) -> &SyntaxNode {
20098        &self.syntax
20099    }
20100}
20101impl AstNode for AlterView {
20102    #[inline]
20103    fn can_cast(kind: SyntaxKind) -> bool {
20104        kind == SyntaxKind::ALTER_VIEW
20105    }
20106    #[inline]
20107    fn cast(syntax: SyntaxNode) -> Option<Self> {
20108        if Self::can_cast(syntax.kind()) {
20109            Some(Self { syntax })
20110        } else {
20111            None
20112        }
20113    }
20114    #[inline]
20115    fn syntax(&self) -> &SyntaxNode {
20116        &self.syntax
20117    }
20118}
20119impl AstNode for Analyze {
20120    #[inline]
20121    fn can_cast(kind: SyntaxKind) -> bool {
20122        kind == SyntaxKind::ANALYZE
20123    }
20124    #[inline]
20125    fn cast(syntax: SyntaxNode) -> Option<Self> {
20126        if Self::can_cast(syntax.kind()) {
20127            Some(Self { syntax })
20128        } else {
20129            None
20130        }
20131    }
20132    #[inline]
20133    fn syntax(&self) -> &SyntaxNode {
20134        &self.syntax
20135    }
20136}
20137impl AstNode for AnyFn {
20138    #[inline]
20139    fn can_cast(kind: SyntaxKind) -> bool {
20140        kind == SyntaxKind::ANY_FN
20141    }
20142    #[inline]
20143    fn cast(syntax: SyntaxNode) -> Option<Self> {
20144        if Self::can_cast(syntax.kind()) {
20145            Some(Self { syntax })
20146        } else {
20147            None
20148        }
20149    }
20150    #[inline]
20151    fn syntax(&self) -> &SyntaxNode {
20152        &self.syntax
20153    }
20154}
20155impl AstNode for Arg {
20156    #[inline]
20157    fn can_cast(kind: SyntaxKind) -> bool {
20158        kind == SyntaxKind::ARG
20159    }
20160    #[inline]
20161    fn cast(syntax: SyntaxNode) -> Option<Self> {
20162        if Self::can_cast(syntax.kind()) {
20163            Some(Self { syntax })
20164        } else {
20165            None
20166        }
20167    }
20168    #[inline]
20169    fn syntax(&self) -> &SyntaxNode {
20170        &self.syntax
20171    }
20172}
20173impl AstNode for ArgList {
20174    #[inline]
20175    fn can_cast(kind: SyntaxKind) -> bool {
20176        kind == SyntaxKind::ARG_LIST
20177    }
20178    #[inline]
20179    fn cast(syntax: SyntaxNode) -> Option<Self> {
20180        if Self::can_cast(syntax.kind()) {
20181            Some(Self { syntax })
20182        } else {
20183            None
20184        }
20185    }
20186    #[inline]
20187    fn syntax(&self) -> &SyntaxNode {
20188        &self.syntax
20189    }
20190}
20191impl AstNode for ArrayExpr {
20192    #[inline]
20193    fn can_cast(kind: SyntaxKind) -> bool {
20194        kind == SyntaxKind::ARRAY_EXPR
20195    }
20196    #[inline]
20197    fn cast(syntax: SyntaxNode) -> Option<Self> {
20198        if Self::can_cast(syntax.kind()) {
20199            Some(Self { syntax })
20200        } else {
20201            None
20202        }
20203    }
20204    #[inline]
20205    fn syntax(&self) -> &SyntaxNode {
20206        &self.syntax
20207    }
20208}
20209impl AstNode for ArrayType {
20210    #[inline]
20211    fn can_cast(kind: SyntaxKind) -> bool {
20212        kind == SyntaxKind::ARRAY_TYPE
20213    }
20214    #[inline]
20215    fn cast(syntax: SyntaxNode) -> Option<Self> {
20216        if Self::can_cast(syntax.kind()) {
20217            Some(Self { syntax })
20218        } else {
20219            None
20220        }
20221    }
20222    #[inline]
20223    fn syntax(&self) -> &SyntaxNode {
20224        &self.syntax
20225    }
20226}
20227impl AstNode for AsFuncOption {
20228    #[inline]
20229    fn can_cast(kind: SyntaxKind) -> bool {
20230        kind == SyntaxKind::AS_FUNC_OPTION
20231    }
20232    #[inline]
20233    fn cast(syntax: SyntaxNode) -> Option<Self> {
20234        if Self::can_cast(syntax.kind()) {
20235            Some(Self { syntax })
20236        } else {
20237            None
20238        }
20239    }
20240    #[inline]
20241    fn syntax(&self) -> &SyntaxNode {
20242        &self.syntax
20243    }
20244}
20245impl AstNode for AsName {
20246    #[inline]
20247    fn can_cast(kind: SyntaxKind) -> bool {
20248        kind == SyntaxKind::AS_NAME
20249    }
20250    #[inline]
20251    fn cast(syntax: SyntaxNode) -> Option<Self> {
20252        if Self::can_cast(syntax.kind()) {
20253            Some(Self { syntax })
20254        } else {
20255            None
20256        }
20257    }
20258    #[inline]
20259    fn syntax(&self) -> &SyntaxNode {
20260        &self.syntax
20261    }
20262}
20263impl AstNode for AsPolicyType {
20264    #[inline]
20265    fn can_cast(kind: SyntaxKind) -> bool {
20266        kind == SyntaxKind::AS_POLICY_TYPE
20267    }
20268    #[inline]
20269    fn cast(syntax: SyntaxNode) -> Option<Self> {
20270        if Self::can_cast(syntax.kind()) {
20271            Some(Self { syntax })
20272        } else {
20273            None
20274        }
20275    }
20276    #[inline]
20277    fn syntax(&self) -> &SyntaxNode {
20278        &self.syntax
20279    }
20280}
20281impl AstNode for AtTimeZone {
20282    #[inline]
20283    fn can_cast(kind: SyntaxKind) -> bool {
20284        kind == SyntaxKind::AT_TIME_ZONE
20285    }
20286    #[inline]
20287    fn cast(syntax: SyntaxNode) -> Option<Self> {
20288        if Self::can_cast(syntax.kind()) {
20289            Some(Self { syntax })
20290        } else {
20291            None
20292        }
20293    }
20294    #[inline]
20295    fn syntax(&self) -> &SyntaxNode {
20296        &self.syntax
20297    }
20298}
20299impl AstNode for AttachPartition {
20300    #[inline]
20301    fn can_cast(kind: SyntaxKind) -> bool {
20302        kind == SyntaxKind::ATTACH_PARTITION
20303    }
20304    #[inline]
20305    fn cast(syntax: SyntaxNode) -> Option<Self> {
20306        if Self::can_cast(syntax.kind()) {
20307            Some(Self { syntax })
20308        } else {
20309            None
20310        }
20311    }
20312    #[inline]
20313    fn syntax(&self) -> &SyntaxNode {
20314        &self.syntax
20315    }
20316}
20317impl AstNode for AttributeList {
20318    #[inline]
20319    fn can_cast(kind: SyntaxKind) -> bool {
20320        kind == SyntaxKind::ATTRIBUTE_LIST
20321    }
20322    #[inline]
20323    fn cast(syntax: SyntaxNode) -> Option<Self> {
20324        if Self::can_cast(syntax.kind()) {
20325            Some(Self { syntax })
20326        } else {
20327            None
20328        }
20329    }
20330    #[inline]
20331    fn syntax(&self) -> &SyntaxNode {
20332        &self.syntax
20333    }
20334}
20335impl AstNode for AttributeOption {
20336    #[inline]
20337    fn can_cast(kind: SyntaxKind) -> bool {
20338        kind == SyntaxKind::ATTRIBUTE_OPTION
20339    }
20340    #[inline]
20341    fn cast(syntax: SyntaxNode) -> Option<Self> {
20342        if Self::can_cast(syntax.kind()) {
20343            Some(Self { syntax })
20344        } else {
20345            None
20346        }
20347    }
20348    #[inline]
20349    fn syntax(&self) -> &SyntaxNode {
20350        &self.syntax
20351    }
20352}
20353impl AstNode for AttributeValue {
20354    #[inline]
20355    fn can_cast(kind: SyntaxKind) -> bool {
20356        kind == SyntaxKind::ATTRIBUTE_VALUE
20357    }
20358    #[inline]
20359    fn cast(syntax: SyntaxNode) -> Option<Self> {
20360        if Self::can_cast(syntax.kind()) {
20361            Some(Self { syntax })
20362        } else {
20363            None
20364        }
20365    }
20366    #[inline]
20367    fn syntax(&self) -> &SyntaxNode {
20368        &self.syntax
20369    }
20370}
20371impl AstNode for BeforeValue {
20372    #[inline]
20373    fn can_cast(kind: SyntaxKind) -> bool {
20374        kind == SyntaxKind::BEFORE_VALUE
20375    }
20376    #[inline]
20377    fn cast(syntax: SyntaxNode) -> Option<Self> {
20378        if Self::can_cast(syntax.kind()) {
20379            Some(Self { syntax })
20380        } else {
20381            None
20382        }
20383    }
20384    #[inline]
20385    fn syntax(&self) -> &SyntaxNode {
20386        &self.syntax
20387    }
20388}
20389impl AstNode for Begin {
20390    #[inline]
20391    fn can_cast(kind: SyntaxKind) -> bool {
20392        kind == SyntaxKind::BEGIN
20393    }
20394    #[inline]
20395    fn cast(syntax: SyntaxNode) -> Option<Self> {
20396        if Self::can_cast(syntax.kind()) {
20397            Some(Self { syntax })
20398        } else {
20399            None
20400        }
20401    }
20402    #[inline]
20403    fn syntax(&self) -> &SyntaxNode {
20404        &self.syntax
20405    }
20406}
20407impl AstNode for BeginFuncOption {
20408    #[inline]
20409    fn can_cast(kind: SyntaxKind) -> bool {
20410        kind == SyntaxKind::BEGIN_FUNC_OPTION
20411    }
20412    #[inline]
20413    fn cast(syntax: SyntaxNode) -> Option<Self> {
20414        if Self::can_cast(syntax.kind()) {
20415            Some(Self { syntax })
20416        } else {
20417            None
20418        }
20419    }
20420    #[inline]
20421    fn syntax(&self) -> &SyntaxNode {
20422        &self.syntax
20423    }
20424}
20425impl AstNode for BeginFuncOptionList {
20426    #[inline]
20427    fn can_cast(kind: SyntaxKind) -> bool {
20428        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
20429    }
20430    #[inline]
20431    fn cast(syntax: SyntaxNode) -> Option<Self> {
20432        if Self::can_cast(syntax.kind()) {
20433            Some(Self { syntax })
20434        } else {
20435            None
20436        }
20437    }
20438    #[inline]
20439    fn syntax(&self) -> &SyntaxNode {
20440        &self.syntax
20441    }
20442}
20443impl AstNode for BetweenExpr {
20444    #[inline]
20445    fn can_cast(kind: SyntaxKind) -> bool {
20446        kind == SyntaxKind::BETWEEN_EXPR
20447    }
20448    #[inline]
20449    fn cast(syntax: SyntaxNode) -> Option<Self> {
20450        if Self::can_cast(syntax.kind()) {
20451            Some(Self { syntax })
20452        } else {
20453            None
20454        }
20455    }
20456    #[inline]
20457    fn syntax(&self) -> &SyntaxNode {
20458        &self.syntax
20459    }
20460}
20461impl AstNode for BinExpr {
20462    #[inline]
20463    fn can_cast(kind: SyntaxKind) -> bool {
20464        kind == SyntaxKind::BIN_EXPR
20465    }
20466    #[inline]
20467    fn cast(syntax: SyntaxNode) -> Option<Self> {
20468        if Self::can_cast(syntax.kind()) {
20469            Some(Self { syntax })
20470        } else {
20471            None
20472        }
20473    }
20474    #[inline]
20475    fn syntax(&self) -> &SyntaxNode {
20476        &self.syntax
20477    }
20478}
20479impl AstNode for BitType {
20480    #[inline]
20481    fn can_cast(kind: SyntaxKind) -> bool {
20482        kind == SyntaxKind::BIT_TYPE
20483    }
20484    #[inline]
20485    fn cast(syntax: SyntaxNode) -> Option<Self> {
20486        if Self::can_cast(syntax.kind()) {
20487            Some(Self { syntax })
20488        } else {
20489            None
20490        }
20491    }
20492    #[inline]
20493    fn syntax(&self) -> &SyntaxNode {
20494        &self.syntax
20495    }
20496}
20497impl AstNode for Call {
20498    #[inline]
20499    fn can_cast(kind: SyntaxKind) -> bool {
20500        kind == SyntaxKind::CALL
20501    }
20502    #[inline]
20503    fn cast(syntax: SyntaxNode) -> Option<Self> {
20504        if Self::can_cast(syntax.kind()) {
20505            Some(Self { syntax })
20506        } else {
20507            None
20508        }
20509    }
20510    #[inline]
20511    fn syntax(&self) -> &SyntaxNode {
20512        &self.syntax
20513    }
20514}
20515impl AstNode for CallExpr {
20516    #[inline]
20517    fn can_cast(kind: SyntaxKind) -> bool {
20518        kind == SyntaxKind::CALL_EXPR
20519    }
20520    #[inline]
20521    fn cast(syntax: SyntaxNode) -> Option<Self> {
20522        if Self::can_cast(syntax.kind()) {
20523            Some(Self { syntax })
20524        } else {
20525            None
20526        }
20527    }
20528    #[inline]
20529    fn syntax(&self) -> &SyntaxNode {
20530        &self.syntax
20531    }
20532}
20533impl AstNode for Cascade {
20534    #[inline]
20535    fn can_cast(kind: SyntaxKind) -> bool {
20536        kind == SyntaxKind::CASCADE
20537    }
20538    #[inline]
20539    fn cast(syntax: SyntaxNode) -> Option<Self> {
20540        if Self::can_cast(syntax.kind()) {
20541            Some(Self { syntax })
20542        } else {
20543            None
20544        }
20545    }
20546    #[inline]
20547    fn syntax(&self) -> &SyntaxNode {
20548        &self.syntax
20549    }
20550}
20551impl AstNode for CaseExpr {
20552    #[inline]
20553    fn can_cast(kind: SyntaxKind) -> bool {
20554        kind == SyntaxKind::CASE_EXPR
20555    }
20556    #[inline]
20557    fn cast(syntax: SyntaxNode) -> Option<Self> {
20558        if Self::can_cast(syntax.kind()) {
20559            Some(Self { syntax })
20560        } else {
20561            None
20562        }
20563    }
20564    #[inline]
20565    fn syntax(&self) -> &SyntaxNode {
20566        &self.syntax
20567    }
20568}
20569impl AstNode for CastExpr {
20570    #[inline]
20571    fn can_cast(kind: SyntaxKind) -> bool {
20572        kind == SyntaxKind::CAST_EXPR
20573    }
20574    #[inline]
20575    fn cast(syntax: SyntaxNode) -> Option<Self> {
20576        if Self::can_cast(syntax.kind()) {
20577            Some(Self { syntax })
20578        } else {
20579            None
20580        }
20581    }
20582    #[inline]
20583    fn syntax(&self) -> &SyntaxNode {
20584        &self.syntax
20585    }
20586}
20587impl AstNode for CastSig {
20588    #[inline]
20589    fn can_cast(kind: SyntaxKind) -> bool {
20590        kind == SyntaxKind::CAST_SIG
20591    }
20592    #[inline]
20593    fn cast(syntax: SyntaxNode) -> Option<Self> {
20594        if Self::can_cast(syntax.kind()) {
20595            Some(Self { syntax })
20596        } else {
20597            None
20598        }
20599    }
20600    #[inline]
20601    fn syntax(&self) -> &SyntaxNode {
20602        &self.syntax
20603    }
20604}
20605impl AstNode for CharType {
20606    #[inline]
20607    fn can_cast(kind: SyntaxKind) -> bool {
20608        kind == SyntaxKind::CHAR_TYPE
20609    }
20610    #[inline]
20611    fn cast(syntax: SyntaxNode) -> Option<Self> {
20612        if Self::can_cast(syntax.kind()) {
20613            Some(Self { syntax })
20614        } else {
20615            None
20616        }
20617    }
20618    #[inline]
20619    fn syntax(&self) -> &SyntaxNode {
20620        &self.syntax
20621    }
20622}
20623impl AstNode for CheckConstraint {
20624    #[inline]
20625    fn can_cast(kind: SyntaxKind) -> bool {
20626        kind == SyntaxKind::CHECK_CONSTRAINT
20627    }
20628    #[inline]
20629    fn cast(syntax: SyntaxNode) -> Option<Self> {
20630        if Self::can_cast(syntax.kind()) {
20631            Some(Self { syntax })
20632        } else {
20633            None
20634        }
20635    }
20636    #[inline]
20637    fn syntax(&self) -> &SyntaxNode {
20638        &self.syntax
20639    }
20640}
20641impl AstNode for Checkpoint {
20642    #[inline]
20643    fn can_cast(kind: SyntaxKind) -> bool {
20644        kind == SyntaxKind::CHECKPOINT
20645    }
20646    #[inline]
20647    fn cast(syntax: SyntaxNode) -> Option<Self> {
20648        if Self::can_cast(syntax.kind()) {
20649            Some(Self { syntax })
20650        } else {
20651            None
20652        }
20653    }
20654    #[inline]
20655    fn syntax(&self) -> &SyntaxNode {
20656        &self.syntax
20657    }
20658}
20659impl AstNode for Close {
20660    #[inline]
20661    fn can_cast(kind: SyntaxKind) -> bool {
20662        kind == SyntaxKind::CLOSE
20663    }
20664    #[inline]
20665    fn cast(syntax: SyntaxNode) -> Option<Self> {
20666        if Self::can_cast(syntax.kind()) {
20667            Some(Self { syntax })
20668        } else {
20669            None
20670        }
20671    }
20672    #[inline]
20673    fn syntax(&self) -> &SyntaxNode {
20674        &self.syntax
20675    }
20676}
20677impl AstNode for Cluster {
20678    #[inline]
20679    fn can_cast(kind: SyntaxKind) -> bool {
20680        kind == SyntaxKind::CLUSTER
20681    }
20682    #[inline]
20683    fn cast(syntax: SyntaxNode) -> Option<Self> {
20684        if Self::can_cast(syntax.kind()) {
20685            Some(Self { syntax })
20686        } else {
20687            None
20688        }
20689    }
20690    #[inline]
20691    fn syntax(&self) -> &SyntaxNode {
20692        &self.syntax
20693    }
20694}
20695impl AstNode for ClusterOn {
20696    #[inline]
20697    fn can_cast(kind: SyntaxKind) -> bool {
20698        kind == SyntaxKind::CLUSTER_ON
20699    }
20700    #[inline]
20701    fn cast(syntax: SyntaxNode) -> Option<Self> {
20702        if Self::can_cast(syntax.kind()) {
20703            Some(Self { syntax })
20704        } else {
20705            None
20706        }
20707    }
20708    #[inline]
20709    fn syntax(&self) -> &SyntaxNode {
20710        &self.syntax
20711    }
20712}
20713impl AstNode for Collate {
20714    #[inline]
20715    fn can_cast(kind: SyntaxKind) -> bool {
20716        kind == SyntaxKind::COLLATE
20717    }
20718    #[inline]
20719    fn cast(syntax: SyntaxNode) -> Option<Self> {
20720        if Self::can_cast(syntax.kind()) {
20721            Some(Self { syntax })
20722        } else {
20723            None
20724        }
20725    }
20726    #[inline]
20727    fn syntax(&self) -> &SyntaxNode {
20728        &self.syntax
20729    }
20730}
20731impl AstNode for CollationForFn {
20732    #[inline]
20733    fn can_cast(kind: SyntaxKind) -> bool {
20734        kind == SyntaxKind::COLLATION_FOR_FN
20735    }
20736    #[inline]
20737    fn cast(syntax: SyntaxNode) -> Option<Self> {
20738        if Self::can_cast(syntax.kind()) {
20739            Some(Self { syntax })
20740        } else {
20741            None
20742        }
20743    }
20744    #[inline]
20745    fn syntax(&self) -> &SyntaxNode {
20746        &self.syntax
20747    }
20748}
20749impl AstNode for ColonColon {
20750    #[inline]
20751    fn can_cast(kind: SyntaxKind) -> bool {
20752        kind == SyntaxKind::COLON_COLON
20753    }
20754    #[inline]
20755    fn cast(syntax: SyntaxNode) -> Option<Self> {
20756        if Self::can_cast(syntax.kind()) {
20757            Some(Self { syntax })
20758        } else {
20759            None
20760        }
20761    }
20762    #[inline]
20763    fn syntax(&self) -> &SyntaxNode {
20764        &self.syntax
20765    }
20766}
20767impl AstNode for ColonEq {
20768    #[inline]
20769    fn can_cast(kind: SyntaxKind) -> bool {
20770        kind == SyntaxKind::COLON_EQ
20771    }
20772    #[inline]
20773    fn cast(syntax: SyntaxNode) -> Option<Self> {
20774        if Self::can_cast(syntax.kind()) {
20775            Some(Self { syntax })
20776        } else {
20777            None
20778        }
20779    }
20780    #[inline]
20781    fn syntax(&self) -> &SyntaxNode {
20782        &self.syntax
20783    }
20784}
20785impl AstNode for Column {
20786    #[inline]
20787    fn can_cast(kind: SyntaxKind) -> bool {
20788        kind == SyntaxKind::COLUMN
20789    }
20790    #[inline]
20791    fn cast(syntax: SyntaxNode) -> Option<Self> {
20792        if Self::can_cast(syntax.kind()) {
20793            Some(Self { syntax })
20794        } else {
20795            None
20796        }
20797    }
20798    #[inline]
20799    fn syntax(&self) -> &SyntaxNode {
20800        &self.syntax
20801    }
20802}
20803impl AstNode for ColumnList {
20804    #[inline]
20805    fn can_cast(kind: SyntaxKind) -> bool {
20806        kind == SyntaxKind::COLUMN_LIST
20807    }
20808    #[inline]
20809    fn cast(syntax: SyntaxNode) -> Option<Self> {
20810        if Self::can_cast(syntax.kind()) {
20811            Some(Self { syntax })
20812        } else {
20813            None
20814        }
20815    }
20816    #[inline]
20817    fn syntax(&self) -> &SyntaxNode {
20818        &self.syntax
20819    }
20820}
20821impl AstNode for CommentOn {
20822    #[inline]
20823    fn can_cast(kind: SyntaxKind) -> bool {
20824        kind == SyntaxKind::COMMENT_ON
20825    }
20826    #[inline]
20827    fn cast(syntax: SyntaxNode) -> Option<Self> {
20828        if Self::can_cast(syntax.kind()) {
20829            Some(Self { syntax })
20830        } else {
20831            None
20832        }
20833    }
20834    #[inline]
20835    fn syntax(&self) -> &SyntaxNode {
20836        &self.syntax
20837    }
20838}
20839impl AstNode for Commit {
20840    #[inline]
20841    fn can_cast(kind: SyntaxKind) -> bool {
20842        kind == SyntaxKind::COMMIT
20843    }
20844    #[inline]
20845    fn cast(syntax: SyntaxNode) -> Option<Self> {
20846        if Self::can_cast(syntax.kind()) {
20847            Some(Self { syntax })
20848        } else {
20849            None
20850        }
20851    }
20852    #[inline]
20853    fn syntax(&self) -> &SyntaxNode {
20854        &self.syntax
20855    }
20856}
20857impl AstNode for CompoundSelect {
20858    #[inline]
20859    fn can_cast(kind: SyntaxKind) -> bool {
20860        kind == SyntaxKind::COMPOUND_SELECT
20861    }
20862    #[inline]
20863    fn cast(syntax: SyntaxNode) -> Option<Self> {
20864        if Self::can_cast(syntax.kind()) {
20865            Some(Self { syntax })
20866        } else {
20867            None
20868        }
20869    }
20870    #[inline]
20871    fn syntax(&self) -> &SyntaxNode {
20872        &self.syntax
20873    }
20874}
20875impl AstNode for CompressionMethod {
20876    #[inline]
20877    fn can_cast(kind: SyntaxKind) -> bool {
20878        kind == SyntaxKind::COMPRESSION_METHOD
20879    }
20880    #[inline]
20881    fn cast(syntax: SyntaxNode) -> Option<Self> {
20882        if Self::can_cast(syntax.kind()) {
20883            Some(Self { syntax })
20884        } else {
20885            None
20886        }
20887    }
20888    #[inline]
20889    fn syntax(&self) -> &SyntaxNode {
20890        &self.syntax
20891    }
20892}
20893impl AstNode for ConflictDoNothing {
20894    #[inline]
20895    fn can_cast(kind: SyntaxKind) -> bool {
20896        kind == SyntaxKind::CONFLICT_DO_NOTHING
20897    }
20898    #[inline]
20899    fn cast(syntax: SyntaxNode) -> Option<Self> {
20900        if Self::can_cast(syntax.kind()) {
20901            Some(Self { syntax })
20902        } else {
20903            None
20904        }
20905    }
20906    #[inline]
20907    fn syntax(&self) -> &SyntaxNode {
20908        &self.syntax
20909    }
20910}
20911impl AstNode for ConflictDoSelect {
20912    #[inline]
20913    fn can_cast(kind: SyntaxKind) -> bool {
20914        kind == SyntaxKind::CONFLICT_DO_SELECT
20915    }
20916    #[inline]
20917    fn cast(syntax: SyntaxNode) -> Option<Self> {
20918        if Self::can_cast(syntax.kind()) {
20919            Some(Self { syntax })
20920        } else {
20921            None
20922        }
20923    }
20924    #[inline]
20925    fn syntax(&self) -> &SyntaxNode {
20926        &self.syntax
20927    }
20928}
20929impl AstNode for ConflictDoUpdateSet {
20930    #[inline]
20931    fn can_cast(kind: SyntaxKind) -> bool {
20932        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
20933    }
20934    #[inline]
20935    fn cast(syntax: SyntaxNode) -> Option<Self> {
20936        if Self::can_cast(syntax.kind()) {
20937            Some(Self { syntax })
20938        } else {
20939            None
20940        }
20941    }
20942    #[inline]
20943    fn syntax(&self) -> &SyntaxNode {
20944        &self.syntax
20945    }
20946}
20947impl AstNode for ConflictIndexItem {
20948    #[inline]
20949    fn can_cast(kind: SyntaxKind) -> bool {
20950        kind == SyntaxKind::CONFLICT_INDEX_ITEM
20951    }
20952    #[inline]
20953    fn cast(syntax: SyntaxNode) -> Option<Self> {
20954        if Self::can_cast(syntax.kind()) {
20955            Some(Self { syntax })
20956        } else {
20957            None
20958        }
20959    }
20960    #[inline]
20961    fn syntax(&self) -> &SyntaxNode {
20962        &self.syntax
20963    }
20964}
20965impl AstNode for ConflictIndexItemList {
20966    #[inline]
20967    fn can_cast(kind: SyntaxKind) -> bool {
20968        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
20969    }
20970    #[inline]
20971    fn cast(syntax: SyntaxNode) -> Option<Self> {
20972        if Self::can_cast(syntax.kind()) {
20973            Some(Self { syntax })
20974        } else {
20975            None
20976        }
20977    }
20978    #[inline]
20979    fn syntax(&self) -> &SyntaxNode {
20980        &self.syntax
20981    }
20982}
20983impl AstNode for ConflictOnConstraint {
20984    #[inline]
20985    fn can_cast(kind: SyntaxKind) -> bool {
20986        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
20987    }
20988    #[inline]
20989    fn cast(syntax: SyntaxNode) -> Option<Self> {
20990        if Self::can_cast(syntax.kind()) {
20991            Some(Self { syntax })
20992        } else {
20993            None
20994        }
20995    }
20996    #[inline]
20997    fn syntax(&self) -> &SyntaxNode {
20998        &self.syntax
20999    }
21000}
21001impl AstNode for ConflictOnIndex {
21002    #[inline]
21003    fn can_cast(kind: SyntaxKind) -> bool {
21004        kind == SyntaxKind::CONFLICT_ON_INDEX
21005    }
21006    #[inline]
21007    fn cast(syntax: SyntaxNode) -> Option<Self> {
21008        if Self::can_cast(syntax.kind()) {
21009            Some(Self { syntax })
21010        } else {
21011            None
21012        }
21013    }
21014    #[inline]
21015    fn syntax(&self) -> &SyntaxNode {
21016        &self.syntax
21017    }
21018}
21019impl AstNode for ConstraintExclusion {
21020    #[inline]
21021    fn can_cast(kind: SyntaxKind) -> bool {
21022        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21023    }
21024    #[inline]
21025    fn cast(syntax: SyntaxNode) -> Option<Self> {
21026        if Self::can_cast(syntax.kind()) {
21027            Some(Self { syntax })
21028        } else {
21029            None
21030        }
21031    }
21032    #[inline]
21033    fn syntax(&self) -> &SyntaxNode {
21034        &self.syntax
21035    }
21036}
21037impl AstNode for ConstraintExclusionList {
21038    #[inline]
21039    fn can_cast(kind: SyntaxKind) -> bool {
21040        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21041    }
21042    #[inline]
21043    fn cast(syntax: SyntaxNode) -> Option<Self> {
21044        if Self::can_cast(syntax.kind()) {
21045            Some(Self { syntax })
21046        } else {
21047            None
21048        }
21049    }
21050    #[inline]
21051    fn syntax(&self) -> &SyntaxNode {
21052        &self.syntax
21053    }
21054}
21055impl AstNode for ConstraintIncludeClause {
21056    #[inline]
21057    fn can_cast(kind: SyntaxKind) -> bool {
21058        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21059    }
21060    #[inline]
21061    fn cast(syntax: SyntaxNode) -> Option<Self> {
21062        if Self::can_cast(syntax.kind()) {
21063            Some(Self { syntax })
21064        } else {
21065            None
21066        }
21067    }
21068    #[inline]
21069    fn syntax(&self) -> &SyntaxNode {
21070        &self.syntax
21071    }
21072}
21073impl AstNode for ConstraintIndexMethod {
21074    #[inline]
21075    fn can_cast(kind: SyntaxKind) -> bool {
21076        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21077    }
21078    #[inline]
21079    fn cast(syntax: SyntaxNode) -> Option<Self> {
21080        if Self::can_cast(syntax.kind()) {
21081            Some(Self { syntax })
21082        } else {
21083            None
21084        }
21085    }
21086    #[inline]
21087    fn syntax(&self) -> &SyntaxNode {
21088        &self.syntax
21089    }
21090}
21091impl AstNode for ConstraintIndexTablespace {
21092    #[inline]
21093    fn can_cast(kind: SyntaxKind) -> bool {
21094        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21095    }
21096    #[inline]
21097    fn cast(syntax: SyntaxNode) -> Option<Self> {
21098        if Self::can_cast(syntax.kind()) {
21099            Some(Self { syntax })
21100        } else {
21101            None
21102        }
21103    }
21104    #[inline]
21105    fn syntax(&self) -> &SyntaxNode {
21106        &self.syntax
21107    }
21108}
21109impl AstNode for ConstraintName {
21110    #[inline]
21111    fn can_cast(kind: SyntaxKind) -> bool {
21112        kind == SyntaxKind::CONSTRAINT_NAME
21113    }
21114    #[inline]
21115    fn cast(syntax: SyntaxNode) -> Option<Self> {
21116        if Self::can_cast(syntax.kind()) {
21117            Some(Self { syntax })
21118        } else {
21119            None
21120        }
21121    }
21122    #[inline]
21123    fn syntax(&self) -> &SyntaxNode {
21124        &self.syntax
21125    }
21126}
21127impl AstNode for Copy {
21128    #[inline]
21129    fn can_cast(kind: SyntaxKind) -> bool {
21130        kind == SyntaxKind::COPY
21131    }
21132    #[inline]
21133    fn cast(syntax: SyntaxNode) -> Option<Self> {
21134        if Self::can_cast(syntax.kind()) {
21135            Some(Self { syntax })
21136        } else {
21137            None
21138        }
21139    }
21140    #[inline]
21141    fn syntax(&self) -> &SyntaxNode {
21142        &self.syntax
21143    }
21144}
21145impl AstNode for CopyOption {
21146    #[inline]
21147    fn can_cast(kind: SyntaxKind) -> bool {
21148        kind == SyntaxKind::COPY_OPTION
21149    }
21150    #[inline]
21151    fn cast(syntax: SyntaxNode) -> Option<Self> {
21152        if Self::can_cast(syntax.kind()) {
21153            Some(Self { syntax })
21154        } else {
21155            None
21156        }
21157    }
21158    #[inline]
21159    fn syntax(&self) -> &SyntaxNode {
21160        &self.syntax
21161    }
21162}
21163impl AstNode for CopyOptionList {
21164    #[inline]
21165    fn can_cast(kind: SyntaxKind) -> bool {
21166        kind == SyntaxKind::COPY_OPTION_LIST
21167    }
21168    #[inline]
21169    fn cast(syntax: SyntaxNode) -> Option<Self> {
21170        if Self::can_cast(syntax.kind()) {
21171            Some(Self { syntax })
21172        } else {
21173            None
21174        }
21175    }
21176    #[inline]
21177    fn syntax(&self) -> &SyntaxNode {
21178        &self.syntax
21179    }
21180}
21181impl AstNode for CostFuncOption {
21182    #[inline]
21183    fn can_cast(kind: SyntaxKind) -> bool {
21184        kind == SyntaxKind::COST_FUNC_OPTION
21185    }
21186    #[inline]
21187    fn cast(syntax: SyntaxNode) -> Option<Self> {
21188        if Self::can_cast(syntax.kind()) {
21189            Some(Self { syntax })
21190        } else {
21191            None
21192        }
21193    }
21194    #[inline]
21195    fn syntax(&self) -> &SyntaxNode {
21196        &self.syntax
21197    }
21198}
21199impl AstNode for CreateAccessMethod {
21200    #[inline]
21201    fn can_cast(kind: SyntaxKind) -> bool {
21202        kind == SyntaxKind::CREATE_ACCESS_METHOD
21203    }
21204    #[inline]
21205    fn cast(syntax: SyntaxNode) -> Option<Self> {
21206        if Self::can_cast(syntax.kind()) {
21207            Some(Self { syntax })
21208        } else {
21209            None
21210        }
21211    }
21212    #[inline]
21213    fn syntax(&self) -> &SyntaxNode {
21214        &self.syntax
21215    }
21216}
21217impl AstNode for CreateAggregate {
21218    #[inline]
21219    fn can_cast(kind: SyntaxKind) -> bool {
21220        kind == SyntaxKind::CREATE_AGGREGATE
21221    }
21222    #[inline]
21223    fn cast(syntax: SyntaxNode) -> Option<Self> {
21224        if Self::can_cast(syntax.kind()) {
21225            Some(Self { syntax })
21226        } else {
21227            None
21228        }
21229    }
21230    #[inline]
21231    fn syntax(&self) -> &SyntaxNode {
21232        &self.syntax
21233    }
21234}
21235impl AstNode for CreateCast {
21236    #[inline]
21237    fn can_cast(kind: SyntaxKind) -> bool {
21238        kind == SyntaxKind::CREATE_CAST
21239    }
21240    #[inline]
21241    fn cast(syntax: SyntaxNode) -> Option<Self> {
21242        if Self::can_cast(syntax.kind()) {
21243            Some(Self { syntax })
21244        } else {
21245            None
21246        }
21247    }
21248    #[inline]
21249    fn syntax(&self) -> &SyntaxNode {
21250        &self.syntax
21251    }
21252}
21253impl AstNode for CreateCollation {
21254    #[inline]
21255    fn can_cast(kind: SyntaxKind) -> bool {
21256        kind == SyntaxKind::CREATE_COLLATION
21257    }
21258    #[inline]
21259    fn cast(syntax: SyntaxNode) -> Option<Self> {
21260        if Self::can_cast(syntax.kind()) {
21261            Some(Self { syntax })
21262        } else {
21263            None
21264        }
21265    }
21266    #[inline]
21267    fn syntax(&self) -> &SyntaxNode {
21268        &self.syntax
21269    }
21270}
21271impl AstNode for CreateConversion {
21272    #[inline]
21273    fn can_cast(kind: SyntaxKind) -> bool {
21274        kind == SyntaxKind::CREATE_CONVERSION
21275    }
21276    #[inline]
21277    fn cast(syntax: SyntaxNode) -> Option<Self> {
21278        if Self::can_cast(syntax.kind()) {
21279            Some(Self { syntax })
21280        } else {
21281            None
21282        }
21283    }
21284    #[inline]
21285    fn syntax(&self) -> &SyntaxNode {
21286        &self.syntax
21287    }
21288}
21289impl AstNode for CreateDatabase {
21290    #[inline]
21291    fn can_cast(kind: SyntaxKind) -> bool {
21292        kind == SyntaxKind::CREATE_DATABASE
21293    }
21294    #[inline]
21295    fn cast(syntax: SyntaxNode) -> Option<Self> {
21296        if Self::can_cast(syntax.kind()) {
21297            Some(Self { syntax })
21298        } else {
21299            None
21300        }
21301    }
21302    #[inline]
21303    fn syntax(&self) -> &SyntaxNode {
21304        &self.syntax
21305    }
21306}
21307impl AstNode for CreateDatabaseOption {
21308    #[inline]
21309    fn can_cast(kind: SyntaxKind) -> bool {
21310        kind == SyntaxKind::CREATE_DATABASE_OPTION
21311    }
21312    #[inline]
21313    fn cast(syntax: SyntaxNode) -> Option<Self> {
21314        if Self::can_cast(syntax.kind()) {
21315            Some(Self { syntax })
21316        } else {
21317            None
21318        }
21319    }
21320    #[inline]
21321    fn syntax(&self) -> &SyntaxNode {
21322        &self.syntax
21323    }
21324}
21325impl AstNode for CreateDatabaseOptionList {
21326    #[inline]
21327    fn can_cast(kind: SyntaxKind) -> bool {
21328        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
21329    }
21330    #[inline]
21331    fn cast(syntax: SyntaxNode) -> Option<Self> {
21332        if Self::can_cast(syntax.kind()) {
21333            Some(Self { syntax })
21334        } else {
21335            None
21336        }
21337    }
21338    #[inline]
21339    fn syntax(&self) -> &SyntaxNode {
21340        &self.syntax
21341    }
21342}
21343impl AstNode for CreateDomain {
21344    #[inline]
21345    fn can_cast(kind: SyntaxKind) -> bool {
21346        kind == SyntaxKind::CREATE_DOMAIN
21347    }
21348    #[inline]
21349    fn cast(syntax: SyntaxNode) -> Option<Self> {
21350        if Self::can_cast(syntax.kind()) {
21351            Some(Self { syntax })
21352        } else {
21353            None
21354        }
21355    }
21356    #[inline]
21357    fn syntax(&self) -> &SyntaxNode {
21358        &self.syntax
21359    }
21360}
21361impl AstNode for CreateEventTrigger {
21362    #[inline]
21363    fn can_cast(kind: SyntaxKind) -> bool {
21364        kind == SyntaxKind::CREATE_EVENT_TRIGGER
21365    }
21366    #[inline]
21367    fn cast(syntax: SyntaxNode) -> Option<Self> {
21368        if Self::can_cast(syntax.kind()) {
21369            Some(Self { syntax })
21370        } else {
21371            None
21372        }
21373    }
21374    #[inline]
21375    fn syntax(&self) -> &SyntaxNode {
21376        &self.syntax
21377    }
21378}
21379impl AstNode for CreateExtension {
21380    #[inline]
21381    fn can_cast(kind: SyntaxKind) -> bool {
21382        kind == SyntaxKind::CREATE_EXTENSION
21383    }
21384    #[inline]
21385    fn cast(syntax: SyntaxNode) -> Option<Self> {
21386        if Self::can_cast(syntax.kind()) {
21387            Some(Self { syntax })
21388        } else {
21389            None
21390        }
21391    }
21392    #[inline]
21393    fn syntax(&self) -> &SyntaxNode {
21394        &self.syntax
21395    }
21396}
21397impl AstNode for CreateForeignDataWrapper {
21398    #[inline]
21399    fn can_cast(kind: SyntaxKind) -> bool {
21400        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21401    }
21402    #[inline]
21403    fn cast(syntax: SyntaxNode) -> Option<Self> {
21404        if Self::can_cast(syntax.kind()) {
21405            Some(Self { syntax })
21406        } else {
21407            None
21408        }
21409    }
21410    #[inline]
21411    fn syntax(&self) -> &SyntaxNode {
21412        &self.syntax
21413    }
21414}
21415impl AstNode for CreateForeignTable {
21416    #[inline]
21417    fn can_cast(kind: SyntaxKind) -> bool {
21418        kind == SyntaxKind::CREATE_FOREIGN_TABLE
21419    }
21420    #[inline]
21421    fn cast(syntax: SyntaxNode) -> Option<Self> {
21422        if Self::can_cast(syntax.kind()) {
21423            Some(Self { syntax })
21424        } else {
21425            None
21426        }
21427    }
21428    #[inline]
21429    fn syntax(&self) -> &SyntaxNode {
21430        &self.syntax
21431    }
21432}
21433impl AstNode for CreateFunction {
21434    #[inline]
21435    fn can_cast(kind: SyntaxKind) -> bool {
21436        kind == SyntaxKind::CREATE_FUNCTION
21437    }
21438    #[inline]
21439    fn cast(syntax: SyntaxNode) -> Option<Self> {
21440        if Self::can_cast(syntax.kind()) {
21441            Some(Self { syntax })
21442        } else {
21443            None
21444        }
21445    }
21446    #[inline]
21447    fn syntax(&self) -> &SyntaxNode {
21448        &self.syntax
21449    }
21450}
21451impl AstNode for CreateGroup {
21452    #[inline]
21453    fn can_cast(kind: SyntaxKind) -> bool {
21454        kind == SyntaxKind::CREATE_GROUP
21455    }
21456    #[inline]
21457    fn cast(syntax: SyntaxNode) -> Option<Self> {
21458        if Self::can_cast(syntax.kind()) {
21459            Some(Self { syntax })
21460        } else {
21461            None
21462        }
21463    }
21464    #[inline]
21465    fn syntax(&self) -> &SyntaxNode {
21466        &self.syntax
21467    }
21468}
21469impl AstNode for CreateIndex {
21470    #[inline]
21471    fn can_cast(kind: SyntaxKind) -> bool {
21472        kind == SyntaxKind::CREATE_INDEX
21473    }
21474    #[inline]
21475    fn cast(syntax: SyntaxNode) -> Option<Self> {
21476        if Self::can_cast(syntax.kind()) {
21477            Some(Self { syntax })
21478        } else {
21479            None
21480        }
21481    }
21482    #[inline]
21483    fn syntax(&self) -> &SyntaxNode {
21484        &self.syntax
21485    }
21486}
21487impl AstNode for CreateLanguage {
21488    #[inline]
21489    fn can_cast(kind: SyntaxKind) -> bool {
21490        kind == SyntaxKind::CREATE_LANGUAGE
21491    }
21492    #[inline]
21493    fn cast(syntax: SyntaxNode) -> Option<Self> {
21494        if Self::can_cast(syntax.kind()) {
21495            Some(Self { syntax })
21496        } else {
21497            None
21498        }
21499    }
21500    #[inline]
21501    fn syntax(&self) -> &SyntaxNode {
21502        &self.syntax
21503    }
21504}
21505impl AstNode for CreateMaterializedView {
21506    #[inline]
21507    fn can_cast(kind: SyntaxKind) -> bool {
21508        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
21509    }
21510    #[inline]
21511    fn cast(syntax: SyntaxNode) -> Option<Self> {
21512        if Self::can_cast(syntax.kind()) {
21513            Some(Self { syntax })
21514        } else {
21515            None
21516        }
21517    }
21518    #[inline]
21519    fn syntax(&self) -> &SyntaxNode {
21520        &self.syntax
21521    }
21522}
21523impl AstNode for CreateOperator {
21524    #[inline]
21525    fn can_cast(kind: SyntaxKind) -> bool {
21526        kind == SyntaxKind::CREATE_OPERATOR
21527    }
21528    #[inline]
21529    fn cast(syntax: SyntaxNode) -> Option<Self> {
21530        if Self::can_cast(syntax.kind()) {
21531            Some(Self { syntax })
21532        } else {
21533            None
21534        }
21535    }
21536    #[inline]
21537    fn syntax(&self) -> &SyntaxNode {
21538        &self.syntax
21539    }
21540}
21541impl AstNode for CreateOperatorClass {
21542    #[inline]
21543    fn can_cast(kind: SyntaxKind) -> bool {
21544        kind == SyntaxKind::CREATE_OPERATOR_CLASS
21545    }
21546    #[inline]
21547    fn cast(syntax: SyntaxNode) -> Option<Self> {
21548        if Self::can_cast(syntax.kind()) {
21549            Some(Self { syntax })
21550        } else {
21551            None
21552        }
21553    }
21554    #[inline]
21555    fn syntax(&self) -> &SyntaxNode {
21556        &self.syntax
21557    }
21558}
21559impl AstNode for CreateOperatorFamily {
21560    #[inline]
21561    fn can_cast(kind: SyntaxKind) -> bool {
21562        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
21563    }
21564    #[inline]
21565    fn cast(syntax: SyntaxNode) -> Option<Self> {
21566        if Self::can_cast(syntax.kind()) {
21567            Some(Self { syntax })
21568        } else {
21569            None
21570        }
21571    }
21572    #[inline]
21573    fn syntax(&self) -> &SyntaxNode {
21574        &self.syntax
21575    }
21576}
21577impl AstNode for CreatePolicy {
21578    #[inline]
21579    fn can_cast(kind: SyntaxKind) -> bool {
21580        kind == SyntaxKind::CREATE_POLICY
21581    }
21582    #[inline]
21583    fn cast(syntax: SyntaxNode) -> Option<Self> {
21584        if Self::can_cast(syntax.kind()) {
21585            Some(Self { syntax })
21586        } else {
21587            None
21588        }
21589    }
21590    #[inline]
21591    fn syntax(&self) -> &SyntaxNode {
21592        &self.syntax
21593    }
21594}
21595impl AstNode for CreateProcedure {
21596    #[inline]
21597    fn can_cast(kind: SyntaxKind) -> bool {
21598        kind == SyntaxKind::CREATE_PROCEDURE
21599    }
21600    #[inline]
21601    fn cast(syntax: SyntaxNode) -> Option<Self> {
21602        if Self::can_cast(syntax.kind()) {
21603            Some(Self { syntax })
21604        } else {
21605            None
21606        }
21607    }
21608    #[inline]
21609    fn syntax(&self) -> &SyntaxNode {
21610        &self.syntax
21611    }
21612}
21613impl AstNode for CreatePropertyGraph {
21614    #[inline]
21615    fn can_cast(kind: SyntaxKind) -> bool {
21616        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
21617    }
21618    #[inline]
21619    fn cast(syntax: SyntaxNode) -> Option<Self> {
21620        if Self::can_cast(syntax.kind()) {
21621            Some(Self { syntax })
21622        } else {
21623            None
21624        }
21625    }
21626    #[inline]
21627    fn syntax(&self) -> &SyntaxNode {
21628        &self.syntax
21629    }
21630}
21631impl AstNode for CreatePublication {
21632    #[inline]
21633    fn can_cast(kind: SyntaxKind) -> bool {
21634        kind == SyntaxKind::CREATE_PUBLICATION
21635    }
21636    #[inline]
21637    fn cast(syntax: SyntaxNode) -> Option<Self> {
21638        if Self::can_cast(syntax.kind()) {
21639            Some(Self { syntax })
21640        } else {
21641            None
21642        }
21643    }
21644    #[inline]
21645    fn syntax(&self) -> &SyntaxNode {
21646        &self.syntax
21647    }
21648}
21649impl AstNode for CreateRole {
21650    #[inline]
21651    fn can_cast(kind: SyntaxKind) -> bool {
21652        kind == SyntaxKind::CREATE_ROLE
21653    }
21654    #[inline]
21655    fn cast(syntax: SyntaxNode) -> Option<Self> {
21656        if Self::can_cast(syntax.kind()) {
21657            Some(Self { syntax })
21658        } else {
21659            None
21660        }
21661    }
21662    #[inline]
21663    fn syntax(&self) -> &SyntaxNode {
21664        &self.syntax
21665    }
21666}
21667impl AstNode for CreateRule {
21668    #[inline]
21669    fn can_cast(kind: SyntaxKind) -> bool {
21670        kind == SyntaxKind::CREATE_RULE
21671    }
21672    #[inline]
21673    fn cast(syntax: SyntaxNode) -> Option<Self> {
21674        if Self::can_cast(syntax.kind()) {
21675            Some(Self { syntax })
21676        } else {
21677            None
21678        }
21679    }
21680    #[inline]
21681    fn syntax(&self) -> &SyntaxNode {
21682        &self.syntax
21683    }
21684}
21685impl AstNode for CreateSchema {
21686    #[inline]
21687    fn can_cast(kind: SyntaxKind) -> bool {
21688        kind == SyntaxKind::CREATE_SCHEMA
21689    }
21690    #[inline]
21691    fn cast(syntax: SyntaxNode) -> Option<Self> {
21692        if Self::can_cast(syntax.kind()) {
21693            Some(Self { syntax })
21694        } else {
21695            None
21696        }
21697    }
21698    #[inline]
21699    fn syntax(&self) -> &SyntaxNode {
21700        &self.syntax
21701    }
21702}
21703impl AstNode for CreateSequence {
21704    #[inline]
21705    fn can_cast(kind: SyntaxKind) -> bool {
21706        kind == SyntaxKind::CREATE_SEQUENCE
21707    }
21708    #[inline]
21709    fn cast(syntax: SyntaxNode) -> Option<Self> {
21710        if Self::can_cast(syntax.kind()) {
21711            Some(Self { syntax })
21712        } else {
21713            None
21714        }
21715    }
21716    #[inline]
21717    fn syntax(&self) -> &SyntaxNode {
21718        &self.syntax
21719    }
21720}
21721impl AstNode for CreateServer {
21722    #[inline]
21723    fn can_cast(kind: SyntaxKind) -> bool {
21724        kind == SyntaxKind::CREATE_SERVER
21725    }
21726    #[inline]
21727    fn cast(syntax: SyntaxNode) -> Option<Self> {
21728        if Self::can_cast(syntax.kind()) {
21729            Some(Self { syntax })
21730        } else {
21731            None
21732        }
21733    }
21734    #[inline]
21735    fn syntax(&self) -> &SyntaxNode {
21736        &self.syntax
21737    }
21738}
21739impl AstNode for CreateStatistics {
21740    #[inline]
21741    fn can_cast(kind: SyntaxKind) -> bool {
21742        kind == SyntaxKind::CREATE_STATISTICS
21743    }
21744    #[inline]
21745    fn cast(syntax: SyntaxNode) -> Option<Self> {
21746        if Self::can_cast(syntax.kind()) {
21747            Some(Self { syntax })
21748        } else {
21749            None
21750        }
21751    }
21752    #[inline]
21753    fn syntax(&self) -> &SyntaxNode {
21754        &self.syntax
21755    }
21756}
21757impl AstNode for CreateSubscription {
21758    #[inline]
21759    fn can_cast(kind: SyntaxKind) -> bool {
21760        kind == SyntaxKind::CREATE_SUBSCRIPTION
21761    }
21762    #[inline]
21763    fn cast(syntax: SyntaxNode) -> Option<Self> {
21764        if Self::can_cast(syntax.kind()) {
21765            Some(Self { syntax })
21766        } else {
21767            None
21768        }
21769    }
21770    #[inline]
21771    fn syntax(&self) -> &SyntaxNode {
21772        &self.syntax
21773    }
21774}
21775impl AstNode for CreateTable {
21776    #[inline]
21777    fn can_cast(kind: SyntaxKind) -> bool {
21778        kind == SyntaxKind::CREATE_TABLE
21779    }
21780    #[inline]
21781    fn cast(syntax: SyntaxNode) -> Option<Self> {
21782        if Self::can_cast(syntax.kind()) {
21783            Some(Self { syntax })
21784        } else {
21785            None
21786        }
21787    }
21788    #[inline]
21789    fn syntax(&self) -> &SyntaxNode {
21790        &self.syntax
21791    }
21792}
21793impl AstNode for CreateTableAs {
21794    #[inline]
21795    fn can_cast(kind: SyntaxKind) -> bool {
21796        kind == SyntaxKind::CREATE_TABLE_AS
21797    }
21798    #[inline]
21799    fn cast(syntax: SyntaxNode) -> Option<Self> {
21800        if Self::can_cast(syntax.kind()) {
21801            Some(Self { syntax })
21802        } else {
21803            None
21804        }
21805    }
21806    #[inline]
21807    fn syntax(&self) -> &SyntaxNode {
21808        &self.syntax
21809    }
21810}
21811impl AstNode for CreateTablespace {
21812    #[inline]
21813    fn can_cast(kind: SyntaxKind) -> bool {
21814        kind == SyntaxKind::CREATE_TABLESPACE
21815    }
21816    #[inline]
21817    fn cast(syntax: SyntaxNode) -> Option<Self> {
21818        if Self::can_cast(syntax.kind()) {
21819            Some(Self { syntax })
21820        } else {
21821            None
21822        }
21823    }
21824    #[inline]
21825    fn syntax(&self) -> &SyntaxNode {
21826        &self.syntax
21827    }
21828}
21829impl AstNode for CreateTextSearchConfiguration {
21830    #[inline]
21831    fn can_cast(kind: SyntaxKind) -> bool {
21832        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21833    }
21834    #[inline]
21835    fn cast(syntax: SyntaxNode) -> Option<Self> {
21836        if Self::can_cast(syntax.kind()) {
21837            Some(Self { syntax })
21838        } else {
21839            None
21840        }
21841    }
21842    #[inline]
21843    fn syntax(&self) -> &SyntaxNode {
21844        &self.syntax
21845    }
21846}
21847impl AstNode for CreateTextSearchDictionary {
21848    #[inline]
21849    fn can_cast(kind: SyntaxKind) -> bool {
21850        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21851    }
21852    #[inline]
21853    fn cast(syntax: SyntaxNode) -> Option<Self> {
21854        if Self::can_cast(syntax.kind()) {
21855            Some(Self { syntax })
21856        } else {
21857            None
21858        }
21859    }
21860    #[inline]
21861    fn syntax(&self) -> &SyntaxNode {
21862        &self.syntax
21863    }
21864}
21865impl AstNode for CreateTextSearchParser {
21866    #[inline]
21867    fn can_cast(kind: SyntaxKind) -> bool {
21868        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21869    }
21870    #[inline]
21871    fn cast(syntax: SyntaxNode) -> Option<Self> {
21872        if Self::can_cast(syntax.kind()) {
21873            Some(Self { syntax })
21874        } else {
21875            None
21876        }
21877    }
21878    #[inline]
21879    fn syntax(&self) -> &SyntaxNode {
21880        &self.syntax
21881    }
21882}
21883impl AstNode for CreateTextSearchTemplate {
21884    #[inline]
21885    fn can_cast(kind: SyntaxKind) -> bool {
21886        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
21887    }
21888    #[inline]
21889    fn cast(syntax: SyntaxNode) -> Option<Self> {
21890        if Self::can_cast(syntax.kind()) {
21891            Some(Self { syntax })
21892        } else {
21893            None
21894        }
21895    }
21896    #[inline]
21897    fn syntax(&self) -> &SyntaxNode {
21898        &self.syntax
21899    }
21900}
21901impl AstNode for CreateTransform {
21902    #[inline]
21903    fn can_cast(kind: SyntaxKind) -> bool {
21904        kind == SyntaxKind::CREATE_TRANSFORM
21905    }
21906    #[inline]
21907    fn cast(syntax: SyntaxNode) -> Option<Self> {
21908        if Self::can_cast(syntax.kind()) {
21909            Some(Self { syntax })
21910        } else {
21911            None
21912        }
21913    }
21914    #[inline]
21915    fn syntax(&self) -> &SyntaxNode {
21916        &self.syntax
21917    }
21918}
21919impl AstNode for CreateTrigger {
21920    #[inline]
21921    fn can_cast(kind: SyntaxKind) -> bool {
21922        kind == SyntaxKind::CREATE_TRIGGER
21923    }
21924    #[inline]
21925    fn cast(syntax: SyntaxNode) -> Option<Self> {
21926        if Self::can_cast(syntax.kind()) {
21927            Some(Self { syntax })
21928        } else {
21929            None
21930        }
21931    }
21932    #[inline]
21933    fn syntax(&self) -> &SyntaxNode {
21934        &self.syntax
21935    }
21936}
21937impl AstNode for CreateType {
21938    #[inline]
21939    fn can_cast(kind: SyntaxKind) -> bool {
21940        kind == SyntaxKind::CREATE_TYPE
21941    }
21942    #[inline]
21943    fn cast(syntax: SyntaxNode) -> Option<Self> {
21944        if Self::can_cast(syntax.kind()) {
21945            Some(Self { syntax })
21946        } else {
21947            None
21948        }
21949    }
21950    #[inline]
21951    fn syntax(&self) -> &SyntaxNode {
21952        &self.syntax
21953    }
21954}
21955impl AstNode for CreateUser {
21956    #[inline]
21957    fn can_cast(kind: SyntaxKind) -> bool {
21958        kind == SyntaxKind::CREATE_USER
21959    }
21960    #[inline]
21961    fn cast(syntax: SyntaxNode) -> Option<Self> {
21962        if Self::can_cast(syntax.kind()) {
21963            Some(Self { syntax })
21964        } else {
21965            None
21966        }
21967    }
21968    #[inline]
21969    fn syntax(&self) -> &SyntaxNode {
21970        &self.syntax
21971    }
21972}
21973impl AstNode for CreateUserMapping {
21974    #[inline]
21975    fn can_cast(kind: SyntaxKind) -> bool {
21976        kind == SyntaxKind::CREATE_USER_MAPPING
21977    }
21978    #[inline]
21979    fn cast(syntax: SyntaxNode) -> Option<Self> {
21980        if Self::can_cast(syntax.kind()) {
21981            Some(Self { syntax })
21982        } else {
21983            None
21984        }
21985    }
21986    #[inline]
21987    fn syntax(&self) -> &SyntaxNode {
21988        &self.syntax
21989    }
21990}
21991impl AstNode for CreateView {
21992    #[inline]
21993    fn can_cast(kind: SyntaxKind) -> bool {
21994        kind == SyntaxKind::CREATE_VIEW
21995    }
21996    #[inline]
21997    fn cast(syntax: SyntaxNode) -> Option<Self> {
21998        if Self::can_cast(syntax.kind()) {
21999            Some(Self { syntax })
22000        } else {
22001            None
22002        }
22003    }
22004    #[inline]
22005    fn syntax(&self) -> &SyntaxNode {
22006        &self.syntax
22007    }
22008}
22009impl AstNode for CustomOp {
22010    #[inline]
22011    fn can_cast(kind: SyntaxKind) -> bool {
22012        kind == SyntaxKind::CUSTOM_OP
22013    }
22014    #[inline]
22015    fn cast(syntax: SyntaxNode) -> Option<Self> {
22016        if Self::can_cast(syntax.kind()) {
22017            Some(Self { syntax })
22018        } else {
22019            None
22020        }
22021    }
22022    #[inline]
22023    fn syntax(&self) -> &SyntaxNode {
22024        &self.syntax
22025    }
22026}
22027impl AstNode for Deallocate {
22028    #[inline]
22029    fn can_cast(kind: SyntaxKind) -> bool {
22030        kind == SyntaxKind::DEALLOCATE
22031    }
22032    #[inline]
22033    fn cast(syntax: SyntaxNode) -> Option<Self> {
22034        if Self::can_cast(syntax.kind()) {
22035            Some(Self { syntax })
22036        } else {
22037            None
22038        }
22039    }
22040    #[inline]
22041    fn syntax(&self) -> &SyntaxNode {
22042        &self.syntax
22043    }
22044}
22045impl AstNode for Declare {
22046    #[inline]
22047    fn can_cast(kind: SyntaxKind) -> bool {
22048        kind == SyntaxKind::DECLARE
22049    }
22050    #[inline]
22051    fn cast(syntax: SyntaxNode) -> Option<Self> {
22052        if Self::can_cast(syntax.kind()) {
22053            Some(Self { syntax })
22054        } else {
22055            None
22056        }
22057    }
22058    #[inline]
22059    fn syntax(&self) -> &SyntaxNode {
22060        &self.syntax
22061    }
22062}
22063impl AstNode for DefaultConstraint {
22064    #[inline]
22065    fn can_cast(kind: SyntaxKind) -> bool {
22066        kind == SyntaxKind::DEFAULT_CONSTRAINT
22067    }
22068    #[inline]
22069    fn cast(syntax: SyntaxNode) -> Option<Self> {
22070        if Self::can_cast(syntax.kind()) {
22071            Some(Self { syntax })
22072        } else {
22073            None
22074        }
22075    }
22076    #[inline]
22077    fn syntax(&self) -> &SyntaxNode {
22078        &self.syntax
22079    }
22080}
22081impl AstNode for Deferrable {
22082    #[inline]
22083    fn can_cast(kind: SyntaxKind) -> bool {
22084        kind == SyntaxKind::DEFERRABLE
22085    }
22086    #[inline]
22087    fn cast(syntax: SyntaxNode) -> Option<Self> {
22088        if Self::can_cast(syntax.kind()) {
22089            Some(Self { syntax })
22090        } else {
22091            None
22092        }
22093    }
22094    #[inline]
22095    fn syntax(&self) -> &SyntaxNode {
22096        &self.syntax
22097    }
22098}
22099impl AstNode for DeferrableConstraintOption {
22100    #[inline]
22101    fn can_cast(kind: SyntaxKind) -> bool {
22102        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22103    }
22104    #[inline]
22105    fn cast(syntax: SyntaxNode) -> Option<Self> {
22106        if Self::can_cast(syntax.kind()) {
22107            Some(Self { syntax })
22108        } else {
22109            None
22110        }
22111    }
22112    #[inline]
22113    fn syntax(&self) -> &SyntaxNode {
22114        &self.syntax
22115    }
22116}
22117impl AstNode for Delete {
22118    #[inline]
22119    fn can_cast(kind: SyntaxKind) -> bool {
22120        kind == SyntaxKind::DELETE
22121    }
22122    #[inline]
22123    fn cast(syntax: SyntaxNode) -> Option<Self> {
22124        if Self::can_cast(syntax.kind()) {
22125            Some(Self { syntax })
22126        } else {
22127            None
22128        }
22129    }
22130    #[inline]
22131    fn syntax(&self) -> &SyntaxNode {
22132        &self.syntax
22133    }
22134}
22135impl AstNode for DeleteRows {
22136    #[inline]
22137    fn can_cast(kind: SyntaxKind) -> bool {
22138        kind == SyntaxKind::DELETE_ROWS
22139    }
22140    #[inline]
22141    fn cast(syntax: SyntaxNode) -> Option<Self> {
22142        if Self::can_cast(syntax.kind()) {
22143            Some(Self { syntax })
22144        } else {
22145            None
22146        }
22147    }
22148    #[inline]
22149    fn syntax(&self) -> &SyntaxNode {
22150        &self.syntax
22151    }
22152}
22153impl AstNode for DependsOnExtension {
22154    #[inline]
22155    fn can_cast(kind: SyntaxKind) -> bool {
22156        kind == SyntaxKind::DEPENDS_ON_EXTENSION
22157    }
22158    #[inline]
22159    fn cast(syntax: SyntaxNode) -> Option<Self> {
22160        if Self::can_cast(syntax.kind()) {
22161            Some(Self { syntax })
22162        } else {
22163            None
22164        }
22165    }
22166    #[inline]
22167    fn syntax(&self) -> &SyntaxNode {
22168        &self.syntax
22169    }
22170}
22171impl AstNode for DestVertexTable {
22172    #[inline]
22173    fn can_cast(kind: SyntaxKind) -> bool {
22174        kind == SyntaxKind::DEST_VERTEX_TABLE
22175    }
22176    #[inline]
22177    fn cast(syntax: SyntaxNode) -> Option<Self> {
22178        if Self::can_cast(syntax.kind()) {
22179            Some(Self { syntax })
22180        } else {
22181            None
22182        }
22183    }
22184    #[inline]
22185    fn syntax(&self) -> &SyntaxNode {
22186        &self.syntax
22187    }
22188}
22189impl AstNode for DetachPartition {
22190    #[inline]
22191    fn can_cast(kind: SyntaxKind) -> bool {
22192        kind == SyntaxKind::DETACH_PARTITION
22193    }
22194    #[inline]
22195    fn cast(syntax: SyntaxNode) -> Option<Self> {
22196        if Self::can_cast(syntax.kind()) {
22197            Some(Self { syntax })
22198        } else {
22199            None
22200        }
22201    }
22202    #[inline]
22203    fn syntax(&self) -> &SyntaxNode {
22204        &self.syntax
22205    }
22206}
22207impl AstNode for DisableRls {
22208    #[inline]
22209    fn can_cast(kind: SyntaxKind) -> bool {
22210        kind == SyntaxKind::DISABLE_RLS
22211    }
22212    #[inline]
22213    fn cast(syntax: SyntaxNode) -> Option<Self> {
22214        if Self::can_cast(syntax.kind()) {
22215            Some(Self { syntax })
22216        } else {
22217            None
22218        }
22219    }
22220    #[inline]
22221    fn syntax(&self) -> &SyntaxNode {
22222        &self.syntax
22223    }
22224}
22225impl AstNode for DisableRule {
22226    #[inline]
22227    fn can_cast(kind: SyntaxKind) -> bool {
22228        kind == SyntaxKind::DISABLE_RULE
22229    }
22230    #[inline]
22231    fn cast(syntax: SyntaxNode) -> Option<Self> {
22232        if Self::can_cast(syntax.kind()) {
22233            Some(Self { syntax })
22234        } else {
22235            None
22236        }
22237    }
22238    #[inline]
22239    fn syntax(&self) -> &SyntaxNode {
22240        &self.syntax
22241    }
22242}
22243impl AstNode for DisableTrigger {
22244    #[inline]
22245    fn can_cast(kind: SyntaxKind) -> bool {
22246        kind == SyntaxKind::DISABLE_TRIGGER
22247    }
22248    #[inline]
22249    fn cast(syntax: SyntaxNode) -> Option<Self> {
22250        if Self::can_cast(syntax.kind()) {
22251            Some(Self { syntax })
22252        } else {
22253            None
22254        }
22255    }
22256    #[inline]
22257    fn syntax(&self) -> &SyntaxNode {
22258        &self.syntax
22259    }
22260}
22261impl AstNode for Discard {
22262    #[inline]
22263    fn can_cast(kind: SyntaxKind) -> bool {
22264        kind == SyntaxKind::DISCARD
22265    }
22266    #[inline]
22267    fn cast(syntax: SyntaxNode) -> Option<Self> {
22268        if Self::can_cast(syntax.kind()) {
22269            Some(Self { syntax })
22270        } else {
22271            None
22272        }
22273    }
22274    #[inline]
22275    fn syntax(&self) -> &SyntaxNode {
22276        &self.syntax
22277    }
22278}
22279impl AstNode for DistinctClause {
22280    #[inline]
22281    fn can_cast(kind: SyntaxKind) -> bool {
22282        kind == SyntaxKind::DISTINCT_CLAUSE
22283    }
22284    #[inline]
22285    fn cast(syntax: SyntaxNode) -> Option<Self> {
22286        if Self::can_cast(syntax.kind()) {
22287            Some(Self { syntax })
22288        } else {
22289            None
22290        }
22291    }
22292    #[inline]
22293    fn syntax(&self) -> &SyntaxNode {
22294        &self.syntax
22295    }
22296}
22297impl AstNode for Do {
22298    #[inline]
22299    fn can_cast(kind: SyntaxKind) -> bool {
22300        kind == SyntaxKind::DO
22301    }
22302    #[inline]
22303    fn cast(syntax: SyntaxNode) -> Option<Self> {
22304        if Self::can_cast(syntax.kind()) {
22305            Some(Self { syntax })
22306        } else {
22307            None
22308        }
22309    }
22310    #[inline]
22311    fn syntax(&self) -> &SyntaxNode {
22312        &self.syntax
22313    }
22314}
22315impl AstNode for DoubleType {
22316    #[inline]
22317    fn can_cast(kind: SyntaxKind) -> bool {
22318        kind == SyntaxKind::DOUBLE_TYPE
22319    }
22320    #[inline]
22321    fn cast(syntax: SyntaxNode) -> Option<Self> {
22322        if Self::can_cast(syntax.kind()) {
22323            Some(Self { syntax })
22324        } else {
22325            None
22326        }
22327    }
22328    #[inline]
22329    fn syntax(&self) -> &SyntaxNode {
22330        &self.syntax
22331    }
22332}
22333impl AstNode for Drop {
22334    #[inline]
22335    fn can_cast(kind: SyntaxKind) -> bool {
22336        kind == SyntaxKind::DROP
22337    }
22338    #[inline]
22339    fn cast(syntax: SyntaxNode) -> Option<Self> {
22340        if Self::can_cast(syntax.kind()) {
22341            Some(Self { syntax })
22342        } else {
22343            None
22344        }
22345    }
22346    #[inline]
22347    fn syntax(&self) -> &SyntaxNode {
22348        &self.syntax
22349    }
22350}
22351impl AstNode for DropAccessMethod {
22352    #[inline]
22353    fn can_cast(kind: SyntaxKind) -> bool {
22354        kind == SyntaxKind::DROP_ACCESS_METHOD
22355    }
22356    #[inline]
22357    fn cast(syntax: SyntaxNode) -> Option<Self> {
22358        if Self::can_cast(syntax.kind()) {
22359            Some(Self { syntax })
22360        } else {
22361            None
22362        }
22363    }
22364    #[inline]
22365    fn syntax(&self) -> &SyntaxNode {
22366        &self.syntax
22367    }
22368}
22369impl AstNode for DropAggregate {
22370    #[inline]
22371    fn can_cast(kind: SyntaxKind) -> bool {
22372        kind == SyntaxKind::DROP_AGGREGATE
22373    }
22374    #[inline]
22375    fn cast(syntax: SyntaxNode) -> Option<Self> {
22376        if Self::can_cast(syntax.kind()) {
22377            Some(Self { syntax })
22378        } else {
22379            None
22380        }
22381    }
22382    #[inline]
22383    fn syntax(&self) -> &SyntaxNode {
22384        &self.syntax
22385    }
22386}
22387impl AstNode for DropAttribute {
22388    #[inline]
22389    fn can_cast(kind: SyntaxKind) -> bool {
22390        kind == SyntaxKind::DROP_ATTRIBUTE
22391    }
22392    #[inline]
22393    fn cast(syntax: SyntaxNode) -> Option<Self> {
22394        if Self::can_cast(syntax.kind()) {
22395            Some(Self { syntax })
22396        } else {
22397            None
22398        }
22399    }
22400    #[inline]
22401    fn syntax(&self) -> &SyntaxNode {
22402        &self.syntax
22403    }
22404}
22405impl AstNode for DropCast {
22406    #[inline]
22407    fn can_cast(kind: SyntaxKind) -> bool {
22408        kind == SyntaxKind::DROP_CAST
22409    }
22410    #[inline]
22411    fn cast(syntax: SyntaxNode) -> Option<Self> {
22412        if Self::can_cast(syntax.kind()) {
22413            Some(Self { syntax })
22414        } else {
22415            None
22416        }
22417    }
22418    #[inline]
22419    fn syntax(&self) -> &SyntaxNode {
22420        &self.syntax
22421    }
22422}
22423impl AstNode for DropCollation {
22424    #[inline]
22425    fn can_cast(kind: SyntaxKind) -> bool {
22426        kind == SyntaxKind::DROP_COLLATION
22427    }
22428    #[inline]
22429    fn cast(syntax: SyntaxNode) -> Option<Self> {
22430        if Self::can_cast(syntax.kind()) {
22431            Some(Self { syntax })
22432        } else {
22433            None
22434        }
22435    }
22436    #[inline]
22437    fn syntax(&self) -> &SyntaxNode {
22438        &self.syntax
22439    }
22440}
22441impl AstNode for DropColumn {
22442    #[inline]
22443    fn can_cast(kind: SyntaxKind) -> bool {
22444        kind == SyntaxKind::DROP_COLUMN
22445    }
22446    #[inline]
22447    fn cast(syntax: SyntaxNode) -> Option<Self> {
22448        if Self::can_cast(syntax.kind()) {
22449            Some(Self { syntax })
22450        } else {
22451            None
22452        }
22453    }
22454    #[inline]
22455    fn syntax(&self) -> &SyntaxNode {
22456        &self.syntax
22457    }
22458}
22459impl AstNode for DropConstraint {
22460    #[inline]
22461    fn can_cast(kind: SyntaxKind) -> bool {
22462        kind == SyntaxKind::DROP_CONSTRAINT
22463    }
22464    #[inline]
22465    fn cast(syntax: SyntaxNode) -> Option<Self> {
22466        if Self::can_cast(syntax.kind()) {
22467            Some(Self { syntax })
22468        } else {
22469            None
22470        }
22471    }
22472    #[inline]
22473    fn syntax(&self) -> &SyntaxNode {
22474        &self.syntax
22475    }
22476}
22477impl AstNode for DropConversion {
22478    #[inline]
22479    fn can_cast(kind: SyntaxKind) -> bool {
22480        kind == SyntaxKind::DROP_CONVERSION
22481    }
22482    #[inline]
22483    fn cast(syntax: SyntaxNode) -> Option<Self> {
22484        if Self::can_cast(syntax.kind()) {
22485            Some(Self { syntax })
22486        } else {
22487            None
22488        }
22489    }
22490    #[inline]
22491    fn syntax(&self) -> &SyntaxNode {
22492        &self.syntax
22493    }
22494}
22495impl AstNode for DropDatabase {
22496    #[inline]
22497    fn can_cast(kind: SyntaxKind) -> bool {
22498        kind == SyntaxKind::DROP_DATABASE
22499    }
22500    #[inline]
22501    fn cast(syntax: SyntaxNode) -> Option<Self> {
22502        if Self::can_cast(syntax.kind()) {
22503            Some(Self { syntax })
22504        } else {
22505            None
22506        }
22507    }
22508    #[inline]
22509    fn syntax(&self) -> &SyntaxNode {
22510        &self.syntax
22511    }
22512}
22513impl AstNode for DropDefault {
22514    #[inline]
22515    fn can_cast(kind: SyntaxKind) -> bool {
22516        kind == SyntaxKind::DROP_DEFAULT
22517    }
22518    #[inline]
22519    fn cast(syntax: SyntaxNode) -> Option<Self> {
22520        if Self::can_cast(syntax.kind()) {
22521            Some(Self { syntax })
22522        } else {
22523            None
22524        }
22525    }
22526    #[inline]
22527    fn syntax(&self) -> &SyntaxNode {
22528        &self.syntax
22529    }
22530}
22531impl AstNode for DropDomain {
22532    #[inline]
22533    fn can_cast(kind: SyntaxKind) -> bool {
22534        kind == SyntaxKind::DROP_DOMAIN
22535    }
22536    #[inline]
22537    fn cast(syntax: SyntaxNode) -> Option<Self> {
22538        if Self::can_cast(syntax.kind()) {
22539            Some(Self { syntax })
22540        } else {
22541            None
22542        }
22543    }
22544    #[inline]
22545    fn syntax(&self) -> &SyntaxNode {
22546        &self.syntax
22547    }
22548}
22549impl AstNode for DropEdgeTables {
22550    #[inline]
22551    fn can_cast(kind: SyntaxKind) -> bool {
22552        kind == SyntaxKind::DROP_EDGE_TABLES
22553    }
22554    #[inline]
22555    fn cast(syntax: SyntaxNode) -> Option<Self> {
22556        if Self::can_cast(syntax.kind()) {
22557            Some(Self { syntax })
22558        } else {
22559            None
22560        }
22561    }
22562    #[inline]
22563    fn syntax(&self) -> &SyntaxNode {
22564        &self.syntax
22565    }
22566}
22567impl AstNode for DropEventTrigger {
22568    #[inline]
22569    fn can_cast(kind: SyntaxKind) -> bool {
22570        kind == SyntaxKind::DROP_EVENT_TRIGGER
22571    }
22572    #[inline]
22573    fn cast(syntax: SyntaxNode) -> Option<Self> {
22574        if Self::can_cast(syntax.kind()) {
22575            Some(Self { syntax })
22576        } else {
22577            None
22578        }
22579    }
22580    #[inline]
22581    fn syntax(&self) -> &SyntaxNode {
22582        &self.syntax
22583    }
22584}
22585impl AstNode for DropExpression {
22586    #[inline]
22587    fn can_cast(kind: SyntaxKind) -> bool {
22588        kind == SyntaxKind::DROP_EXPRESSION
22589    }
22590    #[inline]
22591    fn cast(syntax: SyntaxNode) -> Option<Self> {
22592        if Self::can_cast(syntax.kind()) {
22593            Some(Self { syntax })
22594        } else {
22595            None
22596        }
22597    }
22598    #[inline]
22599    fn syntax(&self) -> &SyntaxNode {
22600        &self.syntax
22601    }
22602}
22603impl AstNode for DropExtension {
22604    #[inline]
22605    fn can_cast(kind: SyntaxKind) -> bool {
22606        kind == SyntaxKind::DROP_EXTENSION
22607    }
22608    #[inline]
22609    fn cast(syntax: SyntaxNode) -> Option<Self> {
22610        if Self::can_cast(syntax.kind()) {
22611            Some(Self { syntax })
22612        } else {
22613            None
22614        }
22615    }
22616    #[inline]
22617    fn syntax(&self) -> &SyntaxNode {
22618        &self.syntax
22619    }
22620}
22621impl AstNode for DropForeignDataWrapper {
22622    #[inline]
22623    fn can_cast(kind: SyntaxKind) -> bool {
22624        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22625    }
22626    #[inline]
22627    fn cast(syntax: SyntaxNode) -> Option<Self> {
22628        if Self::can_cast(syntax.kind()) {
22629            Some(Self { syntax })
22630        } else {
22631            None
22632        }
22633    }
22634    #[inline]
22635    fn syntax(&self) -> &SyntaxNode {
22636        &self.syntax
22637    }
22638}
22639impl AstNode for DropForeignTable {
22640    #[inline]
22641    fn can_cast(kind: SyntaxKind) -> bool {
22642        kind == SyntaxKind::DROP_FOREIGN_TABLE
22643    }
22644    #[inline]
22645    fn cast(syntax: SyntaxNode) -> Option<Self> {
22646        if Self::can_cast(syntax.kind()) {
22647            Some(Self { syntax })
22648        } else {
22649            None
22650        }
22651    }
22652    #[inline]
22653    fn syntax(&self) -> &SyntaxNode {
22654        &self.syntax
22655    }
22656}
22657impl AstNode for DropFunction {
22658    #[inline]
22659    fn can_cast(kind: SyntaxKind) -> bool {
22660        kind == SyntaxKind::DROP_FUNCTION
22661    }
22662    #[inline]
22663    fn cast(syntax: SyntaxNode) -> Option<Self> {
22664        if Self::can_cast(syntax.kind()) {
22665            Some(Self { syntax })
22666        } else {
22667            None
22668        }
22669    }
22670    #[inline]
22671    fn syntax(&self) -> &SyntaxNode {
22672        &self.syntax
22673    }
22674}
22675impl AstNode for DropGroup {
22676    #[inline]
22677    fn can_cast(kind: SyntaxKind) -> bool {
22678        kind == SyntaxKind::DROP_GROUP
22679    }
22680    #[inline]
22681    fn cast(syntax: SyntaxNode) -> Option<Self> {
22682        if Self::can_cast(syntax.kind()) {
22683            Some(Self { syntax })
22684        } else {
22685            None
22686        }
22687    }
22688    #[inline]
22689    fn syntax(&self) -> &SyntaxNode {
22690        &self.syntax
22691    }
22692}
22693impl AstNode for DropIdentity {
22694    #[inline]
22695    fn can_cast(kind: SyntaxKind) -> bool {
22696        kind == SyntaxKind::DROP_IDENTITY
22697    }
22698    #[inline]
22699    fn cast(syntax: SyntaxNode) -> Option<Self> {
22700        if Self::can_cast(syntax.kind()) {
22701            Some(Self { syntax })
22702        } else {
22703            None
22704        }
22705    }
22706    #[inline]
22707    fn syntax(&self) -> &SyntaxNode {
22708        &self.syntax
22709    }
22710}
22711impl AstNode for DropIndex {
22712    #[inline]
22713    fn can_cast(kind: SyntaxKind) -> bool {
22714        kind == SyntaxKind::DROP_INDEX
22715    }
22716    #[inline]
22717    fn cast(syntax: SyntaxNode) -> Option<Self> {
22718        if Self::can_cast(syntax.kind()) {
22719            Some(Self { syntax })
22720        } else {
22721            None
22722        }
22723    }
22724    #[inline]
22725    fn syntax(&self) -> &SyntaxNode {
22726        &self.syntax
22727    }
22728}
22729impl AstNode for DropLanguage {
22730    #[inline]
22731    fn can_cast(kind: SyntaxKind) -> bool {
22732        kind == SyntaxKind::DROP_LANGUAGE
22733    }
22734    #[inline]
22735    fn cast(syntax: SyntaxNode) -> Option<Self> {
22736        if Self::can_cast(syntax.kind()) {
22737            Some(Self { syntax })
22738        } else {
22739            None
22740        }
22741    }
22742    #[inline]
22743    fn syntax(&self) -> &SyntaxNode {
22744        &self.syntax
22745    }
22746}
22747impl AstNode for DropMaterializedView {
22748    #[inline]
22749    fn can_cast(kind: SyntaxKind) -> bool {
22750        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
22751    }
22752    #[inline]
22753    fn cast(syntax: SyntaxNode) -> Option<Self> {
22754        if Self::can_cast(syntax.kind()) {
22755            Some(Self { syntax })
22756        } else {
22757            None
22758        }
22759    }
22760    #[inline]
22761    fn syntax(&self) -> &SyntaxNode {
22762        &self.syntax
22763    }
22764}
22765impl AstNode for DropNotNull {
22766    #[inline]
22767    fn can_cast(kind: SyntaxKind) -> bool {
22768        kind == SyntaxKind::DROP_NOT_NULL
22769    }
22770    #[inline]
22771    fn cast(syntax: SyntaxNode) -> Option<Self> {
22772        if Self::can_cast(syntax.kind()) {
22773            Some(Self { syntax })
22774        } else {
22775            None
22776        }
22777    }
22778    #[inline]
22779    fn syntax(&self) -> &SyntaxNode {
22780        &self.syntax
22781    }
22782}
22783impl AstNode for DropOpClassOption {
22784    #[inline]
22785    fn can_cast(kind: SyntaxKind) -> bool {
22786        kind == SyntaxKind::DROP_OP_CLASS_OPTION
22787    }
22788    #[inline]
22789    fn cast(syntax: SyntaxNode) -> Option<Self> {
22790        if Self::can_cast(syntax.kind()) {
22791            Some(Self { syntax })
22792        } else {
22793            None
22794        }
22795    }
22796    #[inline]
22797    fn syntax(&self) -> &SyntaxNode {
22798        &self.syntax
22799    }
22800}
22801impl AstNode for DropOpClassOptionList {
22802    #[inline]
22803    fn can_cast(kind: SyntaxKind) -> bool {
22804        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
22805    }
22806    #[inline]
22807    fn cast(syntax: SyntaxNode) -> Option<Self> {
22808        if Self::can_cast(syntax.kind()) {
22809            Some(Self { syntax })
22810        } else {
22811            None
22812        }
22813    }
22814    #[inline]
22815    fn syntax(&self) -> &SyntaxNode {
22816        &self.syntax
22817    }
22818}
22819impl AstNode for DropOpClassOptions {
22820    #[inline]
22821    fn can_cast(kind: SyntaxKind) -> bool {
22822        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
22823    }
22824    #[inline]
22825    fn cast(syntax: SyntaxNode) -> Option<Self> {
22826        if Self::can_cast(syntax.kind()) {
22827            Some(Self { syntax })
22828        } else {
22829            None
22830        }
22831    }
22832    #[inline]
22833    fn syntax(&self) -> &SyntaxNode {
22834        &self.syntax
22835    }
22836}
22837impl AstNode for DropOperator {
22838    #[inline]
22839    fn can_cast(kind: SyntaxKind) -> bool {
22840        kind == SyntaxKind::DROP_OPERATOR
22841    }
22842    #[inline]
22843    fn cast(syntax: SyntaxNode) -> Option<Self> {
22844        if Self::can_cast(syntax.kind()) {
22845            Some(Self { syntax })
22846        } else {
22847            None
22848        }
22849    }
22850    #[inline]
22851    fn syntax(&self) -> &SyntaxNode {
22852        &self.syntax
22853    }
22854}
22855impl AstNode for DropOperatorClass {
22856    #[inline]
22857    fn can_cast(kind: SyntaxKind) -> bool {
22858        kind == SyntaxKind::DROP_OPERATOR_CLASS
22859    }
22860    #[inline]
22861    fn cast(syntax: SyntaxNode) -> Option<Self> {
22862        if Self::can_cast(syntax.kind()) {
22863            Some(Self { syntax })
22864        } else {
22865            None
22866        }
22867    }
22868    #[inline]
22869    fn syntax(&self) -> &SyntaxNode {
22870        &self.syntax
22871    }
22872}
22873impl AstNode for DropOperatorFamily {
22874    #[inline]
22875    fn can_cast(kind: SyntaxKind) -> bool {
22876        kind == SyntaxKind::DROP_OPERATOR_FAMILY
22877    }
22878    #[inline]
22879    fn cast(syntax: SyntaxNode) -> Option<Self> {
22880        if Self::can_cast(syntax.kind()) {
22881            Some(Self { syntax })
22882        } else {
22883            None
22884        }
22885    }
22886    #[inline]
22887    fn syntax(&self) -> &SyntaxNode {
22888        &self.syntax
22889    }
22890}
22891impl AstNode for DropOwned {
22892    #[inline]
22893    fn can_cast(kind: SyntaxKind) -> bool {
22894        kind == SyntaxKind::DROP_OWNED
22895    }
22896    #[inline]
22897    fn cast(syntax: SyntaxNode) -> Option<Self> {
22898        if Self::can_cast(syntax.kind()) {
22899            Some(Self { syntax })
22900        } else {
22901            None
22902        }
22903    }
22904    #[inline]
22905    fn syntax(&self) -> &SyntaxNode {
22906        &self.syntax
22907    }
22908}
22909impl AstNode for DropPolicy {
22910    #[inline]
22911    fn can_cast(kind: SyntaxKind) -> bool {
22912        kind == SyntaxKind::DROP_POLICY
22913    }
22914    #[inline]
22915    fn cast(syntax: SyntaxNode) -> Option<Self> {
22916        if Self::can_cast(syntax.kind()) {
22917            Some(Self { syntax })
22918        } else {
22919            None
22920        }
22921    }
22922    #[inline]
22923    fn syntax(&self) -> &SyntaxNode {
22924        &self.syntax
22925    }
22926}
22927impl AstNode for DropProcedure {
22928    #[inline]
22929    fn can_cast(kind: SyntaxKind) -> bool {
22930        kind == SyntaxKind::DROP_PROCEDURE
22931    }
22932    #[inline]
22933    fn cast(syntax: SyntaxNode) -> Option<Self> {
22934        if Self::can_cast(syntax.kind()) {
22935            Some(Self { syntax })
22936        } else {
22937            None
22938        }
22939    }
22940    #[inline]
22941    fn syntax(&self) -> &SyntaxNode {
22942        &self.syntax
22943    }
22944}
22945impl AstNode for DropPropertyGraph {
22946    #[inline]
22947    fn can_cast(kind: SyntaxKind) -> bool {
22948        kind == SyntaxKind::DROP_PROPERTY_GRAPH
22949    }
22950    #[inline]
22951    fn cast(syntax: SyntaxNode) -> Option<Self> {
22952        if Self::can_cast(syntax.kind()) {
22953            Some(Self { syntax })
22954        } else {
22955            None
22956        }
22957    }
22958    #[inline]
22959    fn syntax(&self) -> &SyntaxNode {
22960        &self.syntax
22961    }
22962}
22963impl AstNode for DropPublication {
22964    #[inline]
22965    fn can_cast(kind: SyntaxKind) -> bool {
22966        kind == SyntaxKind::DROP_PUBLICATION
22967    }
22968    #[inline]
22969    fn cast(syntax: SyntaxNode) -> Option<Self> {
22970        if Self::can_cast(syntax.kind()) {
22971            Some(Self { syntax })
22972        } else {
22973            None
22974        }
22975    }
22976    #[inline]
22977    fn syntax(&self) -> &SyntaxNode {
22978        &self.syntax
22979    }
22980}
22981impl AstNode for DropRole {
22982    #[inline]
22983    fn can_cast(kind: SyntaxKind) -> bool {
22984        kind == SyntaxKind::DROP_ROLE
22985    }
22986    #[inline]
22987    fn cast(syntax: SyntaxNode) -> Option<Self> {
22988        if Self::can_cast(syntax.kind()) {
22989            Some(Self { syntax })
22990        } else {
22991            None
22992        }
22993    }
22994    #[inline]
22995    fn syntax(&self) -> &SyntaxNode {
22996        &self.syntax
22997    }
22998}
22999impl AstNode for DropRoutine {
23000    #[inline]
23001    fn can_cast(kind: SyntaxKind) -> bool {
23002        kind == SyntaxKind::DROP_ROUTINE
23003    }
23004    #[inline]
23005    fn cast(syntax: SyntaxNode) -> Option<Self> {
23006        if Self::can_cast(syntax.kind()) {
23007            Some(Self { syntax })
23008        } else {
23009            None
23010        }
23011    }
23012    #[inline]
23013    fn syntax(&self) -> &SyntaxNode {
23014        &self.syntax
23015    }
23016}
23017impl AstNode for DropRule {
23018    #[inline]
23019    fn can_cast(kind: SyntaxKind) -> bool {
23020        kind == SyntaxKind::DROP_RULE
23021    }
23022    #[inline]
23023    fn cast(syntax: SyntaxNode) -> Option<Self> {
23024        if Self::can_cast(syntax.kind()) {
23025            Some(Self { syntax })
23026        } else {
23027            None
23028        }
23029    }
23030    #[inline]
23031    fn syntax(&self) -> &SyntaxNode {
23032        &self.syntax
23033    }
23034}
23035impl AstNode for DropSchema {
23036    #[inline]
23037    fn can_cast(kind: SyntaxKind) -> bool {
23038        kind == SyntaxKind::DROP_SCHEMA
23039    }
23040    #[inline]
23041    fn cast(syntax: SyntaxNode) -> Option<Self> {
23042        if Self::can_cast(syntax.kind()) {
23043            Some(Self { syntax })
23044        } else {
23045            None
23046        }
23047    }
23048    #[inline]
23049    fn syntax(&self) -> &SyntaxNode {
23050        &self.syntax
23051    }
23052}
23053impl AstNode for DropSequence {
23054    #[inline]
23055    fn can_cast(kind: SyntaxKind) -> bool {
23056        kind == SyntaxKind::DROP_SEQUENCE
23057    }
23058    #[inline]
23059    fn cast(syntax: SyntaxNode) -> Option<Self> {
23060        if Self::can_cast(syntax.kind()) {
23061            Some(Self { syntax })
23062        } else {
23063            None
23064        }
23065    }
23066    #[inline]
23067    fn syntax(&self) -> &SyntaxNode {
23068        &self.syntax
23069    }
23070}
23071impl AstNode for DropServer {
23072    #[inline]
23073    fn can_cast(kind: SyntaxKind) -> bool {
23074        kind == SyntaxKind::DROP_SERVER
23075    }
23076    #[inline]
23077    fn cast(syntax: SyntaxNode) -> Option<Self> {
23078        if Self::can_cast(syntax.kind()) {
23079            Some(Self { syntax })
23080        } else {
23081            None
23082        }
23083    }
23084    #[inline]
23085    fn syntax(&self) -> &SyntaxNode {
23086        &self.syntax
23087    }
23088}
23089impl AstNode for DropStatistics {
23090    #[inline]
23091    fn can_cast(kind: SyntaxKind) -> bool {
23092        kind == SyntaxKind::DROP_STATISTICS
23093    }
23094    #[inline]
23095    fn cast(syntax: SyntaxNode) -> Option<Self> {
23096        if Self::can_cast(syntax.kind()) {
23097            Some(Self { syntax })
23098        } else {
23099            None
23100        }
23101    }
23102    #[inline]
23103    fn syntax(&self) -> &SyntaxNode {
23104        &self.syntax
23105    }
23106}
23107impl AstNode for DropSubscription {
23108    #[inline]
23109    fn can_cast(kind: SyntaxKind) -> bool {
23110        kind == SyntaxKind::DROP_SUBSCRIPTION
23111    }
23112    #[inline]
23113    fn cast(syntax: SyntaxNode) -> Option<Self> {
23114        if Self::can_cast(syntax.kind()) {
23115            Some(Self { syntax })
23116        } else {
23117            None
23118        }
23119    }
23120    #[inline]
23121    fn syntax(&self) -> &SyntaxNode {
23122        &self.syntax
23123    }
23124}
23125impl AstNode for DropTable {
23126    #[inline]
23127    fn can_cast(kind: SyntaxKind) -> bool {
23128        kind == SyntaxKind::DROP_TABLE
23129    }
23130    #[inline]
23131    fn cast(syntax: SyntaxNode) -> Option<Self> {
23132        if Self::can_cast(syntax.kind()) {
23133            Some(Self { syntax })
23134        } else {
23135            None
23136        }
23137    }
23138    #[inline]
23139    fn syntax(&self) -> &SyntaxNode {
23140        &self.syntax
23141    }
23142}
23143impl AstNode for DropTablespace {
23144    #[inline]
23145    fn can_cast(kind: SyntaxKind) -> bool {
23146        kind == SyntaxKind::DROP_TABLESPACE
23147    }
23148    #[inline]
23149    fn cast(syntax: SyntaxNode) -> Option<Self> {
23150        if Self::can_cast(syntax.kind()) {
23151            Some(Self { syntax })
23152        } else {
23153            None
23154        }
23155    }
23156    #[inline]
23157    fn syntax(&self) -> &SyntaxNode {
23158        &self.syntax
23159    }
23160}
23161impl AstNode for DropTextSearchConfig {
23162    #[inline]
23163    fn can_cast(kind: SyntaxKind) -> bool {
23164        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23165    }
23166    #[inline]
23167    fn cast(syntax: SyntaxNode) -> Option<Self> {
23168        if Self::can_cast(syntax.kind()) {
23169            Some(Self { syntax })
23170        } else {
23171            None
23172        }
23173    }
23174    #[inline]
23175    fn syntax(&self) -> &SyntaxNode {
23176        &self.syntax
23177    }
23178}
23179impl AstNode for DropTextSearchDict {
23180    #[inline]
23181    fn can_cast(kind: SyntaxKind) -> bool {
23182        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
23183    }
23184    #[inline]
23185    fn cast(syntax: SyntaxNode) -> Option<Self> {
23186        if Self::can_cast(syntax.kind()) {
23187            Some(Self { syntax })
23188        } else {
23189            None
23190        }
23191    }
23192    #[inline]
23193    fn syntax(&self) -> &SyntaxNode {
23194        &self.syntax
23195    }
23196}
23197impl AstNode for DropTextSearchParser {
23198    #[inline]
23199    fn can_cast(kind: SyntaxKind) -> bool {
23200        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
23201    }
23202    #[inline]
23203    fn cast(syntax: SyntaxNode) -> Option<Self> {
23204        if Self::can_cast(syntax.kind()) {
23205            Some(Self { syntax })
23206        } else {
23207            None
23208        }
23209    }
23210    #[inline]
23211    fn syntax(&self) -> &SyntaxNode {
23212        &self.syntax
23213    }
23214}
23215impl AstNode for DropTextSearchTemplate {
23216    #[inline]
23217    fn can_cast(kind: SyntaxKind) -> bool {
23218        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23219    }
23220    #[inline]
23221    fn cast(syntax: SyntaxNode) -> Option<Self> {
23222        if Self::can_cast(syntax.kind()) {
23223            Some(Self { syntax })
23224        } else {
23225            None
23226        }
23227    }
23228    #[inline]
23229    fn syntax(&self) -> &SyntaxNode {
23230        &self.syntax
23231    }
23232}
23233impl AstNode for DropTransform {
23234    #[inline]
23235    fn can_cast(kind: SyntaxKind) -> bool {
23236        kind == SyntaxKind::DROP_TRANSFORM
23237    }
23238    #[inline]
23239    fn cast(syntax: SyntaxNode) -> Option<Self> {
23240        if Self::can_cast(syntax.kind()) {
23241            Some(Self { syntax })
23242        } else {
23243            None
23244        }
23245    }
23246    #[inline]
23247    fn syntax(&self) -> &SyntaxNode {
23248        &self.syntax
23249    }
23250}
23251impl AstNode for DropTrigger {
23252    #[inline]
23253    fn can_cast(kind: SyntaxKind) -> bool {
23254        kind == SyntaxKind::DROP_TRIGGER
23255    }
23256    #[inline]
23257    fn cast(syntax: SyntaxNode) -> Option<Self> {
23258        if Self::can_cast(syntax.kind()) {
23259            Some(Self { syntax })
23260        } else {
23261            None
23262        }
23263    }
23264    #[inline]
23265    fn syntax(&self) -> &SyntaxNode {
23266        &self.syntax
23267    }
23268}
23269impl AstNode for DropType {
23270    #[inline]
23271    fn can_cast(kind: SyntaxKind) -> bool {
23272        kind == SyntaxKind::DROP_TYPE
23273    }
23274    #[inline]
23275    fn cast(syntax: SyntaxNode) -> Option<Self> {
23276        if Self::can_cast(syntax.kind()) {
23277            Some(Self { syntax })
23278        } else {
23279            None
23280        }
23281    }
23282    #[inline]
23283    fn syntax(&self) -> &SyntaxNode {
23284        &self.syntax
23285    }
23286}
23287impl AstNode for DropUser {
23288    #[inline]
23289    fn can_cast(kind: SyntaxKind) -> bool {
23290        kind == SyntaxKind::DROP_USER
23291    }
23292    #[inline]
23293    fn cast(syntax: SyntaxNode) -> Option<Self> {
23294        if Self::can_cast(syntax.kind()) {
23295            Some(Self { syntax })
23296        } else {
23297            None
23298        }
23299    }
23300    #[inline]
23301    fn syntax(&self) -> &SyntaxNode {
23302        &self.syntax
23303    }
23304}
23305impl AstNode for DropUserMapping {
23306    #[inline]
23307    fn can_cast(kind: SyntaxKind) -> bool {
23308        kind == SyntaxKind::DROP_USER_MAPPING
23309    }
23310    #[inline]
23311    fn cast(syntax: SyntaxNode) -> Option<Self> {
23312        if Self::can_cast(syntax.kind()) {
23313            Some(Self { syntax })
23314        } else {
23315            None
23316        }
23317    }
23318    #[inline]
23319    fn syntax(&self) -> &SyntaxNode {
23320        &self.syntax
23321    }
23322}
23323impl AstNode for DropVertexEdgeLabel {
23324    #[inline]
23325    fn can_cast(kind: SyntaxKind) -> bool {
23326        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
23327    }
23328    #[inline]
23329    fn cast(syntax: SyntaxNode) -> Option<Self> {
23330        if Self::can_cast(syntax.kind()) {
23331            Some(Self { syntax })
23332        } else {
23333            None
23334        }
23335    }
23336    #[inline]
23337    fn syntax(&self) -> &SyntaxNode {
23338        &self.syntax
23339    }
23340}
23341impl AstNode for DropVertexEdgeLabelProperties {
23342    #[inline]
23343    fn can_cast(kind: SyntaxKind) -> bool {
23344        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
23345    }
23346    #[inline]
23347    fn cast(syntax: SyntaxNode) -> Option<Self> {
23348        if Self::can_cast(syntax.kind()) {
23349            Some(Self { syntax })
23350        } else {
23351            None
23352        }
23353    }
23354    #[inline]
23355    fn syntax(&self) -> &SyntaxNode {
23356        &self.syntax
23357    }
23358}
23359impl AstNode for DropVertexTables {
23360    #[inline]
23361    fn can_cast(kind: SyntaxKind) -> bool {
23362        kind == SyntaxKind::DROP_VERTEX_TABLES
23363    }
23364    #[inline]
23365    fn cast(syntax: SyntaxNode) -> Option<Self> {
23366        if Self::can_cast(syntax.kind()) {
23367            Some(Self { syntax })
23368        } else {
23369            None
23370        }
23371    }
23372    #[inline]
23373    fn syntax(&self) -> &SyntaxNode {
23374        &self.syntax
23375    }
23376}
23377impl AstNode for DropView {
23378    #[inline]
23379    fn can_cast(kind: SyntaxKind) -> bool {
23380        kind == SyntaxKind::DROP_VIEW
23381    }
23382    #[inline]
23383    fn cast(syntax: SyntaxNode) -> Option<Self> {
23384        if Self::can_cast(syntax.kind()) {
23385            Some(Self { syntax })
23386        } else {
23387            None
23388        }
23389    }
23390    #[inline]
23391    fn syntax(&self) -> &SyntaxNode {
23392        &self.syntax
23393    }
23394}
23395impl AstNode for EdgeAny {
23396    #[inline]
23397    fn can_cast(kind: SyntaxKind) -> bool {
23398        kind == SyntaxKind::EDGE_ANY
23399    }
23400    #[inline]
23401    fn cast(syntax: SyntaxNode) -> Option<Self> {
23402        if Self::can_cast(syntax.kind()) {
23403            Some(Self { syntax })
23404        } else {
23405            None
23406        }
23407    }
23408    #[inline]
23409    fn syntax(&self) -> &SyntaxNode {
23410        &self.syntax
23411    }
23412}
23413impl AstNode for EdgeLeft {
23414    #[inline]
23415    fn can_cast(kind: SyntaxKind) -> bool {
23416        kind == SyntaxKind::EDGE_LEFT
23417    }
23418    #[inline]
23419    fn cast(syntax: SyntaxNode) -> Option<Self> {
23420        if Self::can_cast(syntax.kind()) {
23421            Some(Self { syntax })
23422        } else {
23423            None
23424        }
23425    }
23426    #[inline]
23427    fn syntax(&self) -> &SyntaxNode {
23428        &self.syntax
23429    }
23430}
23431impl AstNode for EdgeRight {
23432    #[inline]
23433    fn can_cast(kind: SyntaxKind) -> bool {
23434        kind == SyntaxKind::EDGE_RIGHT
23435    }
23436    #[inline]
23437    fn cast(syntax: SyntaxNode) -> Option<Self> {
23438        if Self::can_cast(syntax.kind()) {
23439            Some(Self { syntax })
23440        } else {
23441            None
23442        }
23443    }
23444    #[inline]
23445    fn syntax(&self) -> &SyntaxNode {
23446        &self.syntax
23447    }
23448}
23449impl AstNode for EdgeTableDef {
23450    #[inline]
23451    fn can_cast(kind: SyntaxKind) -> bool {
23452        kind == SyntaxKind::EDGE_TABLE_DEF
23453    }
23454    #[inline]
23455    fn cast(syntax: SyntaxNode) -> Option<Self> {
23456        if Self::can_cast(syntax.kind()) {
23457            Some(Self { syntax })
23458        } else {
23459            None
23460        }
23461    }
23462    #[inline]
23463    fn syntax(&self) -> &SyntaxNode {
23464        &self.syntax
23465    }
23466}
23467impl AstNode for EdgeTables {
23468    #[inline]
23469    fn can_cast(kind: SyntaxKind) -> bool {
23470        kind == SyntaxKind::EDGE_TABLES
23471    }
23472    #[inline]
23473    fn cast(syntax: SyntaxNode) -> Option<Self> {
23474        if Self::can_cast(syntax.kind()) {
23475            Some(Self { syntax })
23476        } else {
23477            None
23478        }
23479    }
23480    #[inline]
23481    fn syntax(&self) -> &SyntaxNode {
23482        &self.syntax
23483    }
23484}
23485impl AstNode for ElseClause {
23486    #[inline]
23487    fn can_cast(kind: SyntaxKind) -> bool {
23488        kind == SyntaxKind::ELSE_CLAUSE
23489    }
23490    #[inline]
23491    fn cast(syntax: SyntaxNode) -> Option<Self> {
23492        if Self::can_cast(syntax.kind()) {
23493            Some(Self { syntax })
23494        } else {
23495            None
23496        }
23497    }
23498    #[inline]
23499    fn syntax(&self) -> &SyntaxNode {
23500        &self.syntax
23501    }
23502}
23503impl AstNode for EnableAlwaysRule {
23504    #[inline]
23505    fn can_cast(kind: SyntaxKind) -> bool {
23506        kind == SyntaxKind::ENABLE_ALWAYS_RULE
23507    }
23508    #[inline]
23509    fn cast(syntax: SyntaxNode) -> Option<Self> {
23510        if Self::can_cast(syntax.kind()) {
23511            Some(Self { syntax })
23512        } else {
23513            None
23514        }
23515    }
23516    #[inline]
23517    fn syntax(&self) -> &SyntaxNode {
23518        &self.syntax
23519    }
23520}
23521impl AstNode for EnableAlwaysTrigger {
23522    #[inline]
23523    fn can_cast(kind: SyntaxKind) -> bool {
23524        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
23525    }
23526    #[inline]
23527    fn cast(syntax: SyntaxNode) -> Option<Self> {
23528        if Self::can_cast(syntax.kind()) {
23529            Some(Self { syntax })
23530        } else {
23531            None
23532        }
23533    }
23534    #[inline]
23535    fn syntax(&self) -> &SyntaxNode {
23536        &self.syntax
23537    }
23538}
23539impl AstNode for EnableReplicaRule {
23540    #[inline]
23541    fn can_cast(kind: SyntaxKind) -> bool {
23542        kind == SyntaxKind::ENABLE_REPLICA_RULE
23543    }
23544    #[inline]
23545    fn cast(syntax: SyntaxNode) -> Option<Self> {
23546        if Self::can_cast(syntax.kind()) {
23547            Some(Self { syntax })
23548        } else {
23549            None
23550        }
23551    }
23552    #[inline]
23553    fn syntax(&self) -> &SyntaxNode {
23554        &self.syntax
23555    }
23556}
23557impl AstNode for EnableReplicaTrigger {
23558    #[inline]
23559    fn can_cast(kind: SyntaxKind) -> bool {
23560        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
23561    }
23562    #[inline]
23563    fn cast(syntax: SyntaxNode) -> Option<Self> {
23564        if Self::can_cast(syntax.kind()) {
23565            Some(Self { syntax })
23566        } else {
23567            None
23568        }
23569    }
23570    #[inline]
23571    fn syntax(&self) -> &SyntaxNode {
23572        &self.syntax
23573    }
23574}
23575impl AstNode for EnableRls {
23576    #[inline]
23577    fn can_cast(kind: SyntaxKind) -> bool {
23578        kind == SyntaxKind::ENABLE_RLS
23579    }
23580    #[inline]
23581    fn cast(syntax: SyntaxNode) -> Option<Self> {
23582        if Self::can_cast(syntax.kind()) {
23583            Some(Self { syntax })
23584        } else {
23585            None
23586        }
23587    }
23588    #[inline]
23589    fn syntax(&self) -> &SyntaxNode {
23590        &self.syntax
23591    }
23592}
23593impl AstNode for EnableRule {
23594    #[inline]
23595    fn can_cast(kind: SyntaxKind) -> bool {
23596        kind == SyntaxKind::ENABLE_RULE
23597    }
23598    #[inline]
23599    fn cast(syntax: SyntaxNode) -> Option<Self> {
23600        if Self::can_cast(syntax.kind()) {
23601            Some(Self { syntax })
23602        } else {
23603            None
23604        }
23605    }
23606    #[inline]
23607    fn syntax(&self) -> &SyntaxNode {
23608        &self.syntax
23609    }
23610}
23611impl AstNode for EnableTrigger {
23612    #[inline]
23613    fn can_cast(kind: SyntaxKind) -> bool {
23614        kind == SyntaxKind::ENABLE_TRIGGER
23615    }
23616    #[inline]
23617    fn cast(syntax: SyntaxNode) -> Option<Self> {
23618        if Self::can_cast(syntax.kind()) {
23619            Some(Self { syntax })
23620        } else {
23621            None
23622        }
23623    }
23624    #[inline]
23625    fn syntax(&self) -> &SyntaxNode {
23626        &self.syntax
23627    }
23628}
23629impl AstNode for Enforced {
23630    #[inline]
23631    fn can_cast(kind: SyntaxKind) -> bool {
23632        kind == SyntaxKind::ENFORCED
23633    }
23634    #[inline]
23635    fn cast(syntax: SyntaxNode) -> Option<Self> {
23636        if Self::can_cast(syntax.kind()) {
23637            Some(Self { syntax })
23638        } else {
23639            None
23640        }
23641    }
23642    #[inline]
23643    fn syntax(&self) -> &SyntaxNode {
23644        &self.syntax
23645    }
23646}
23647impl AstNode for EventTriggerWhen {
23648    #[inline]
23649    fn can_cast(kind: SyntaxKind) -> bool {
23650        kind == SyntaxKind::EVENT_TRIGGER_WHEN
23651    }
23652    #[inline]
23653    fn cast(syntax: SyntaxNode) -> Option<Self> {
23654        if Self::can_cast(syntax.kind()) {
23655            Some(Self { syntax })
23656        } else {
23657            None
23658        }
23659    }
23660    #[inline]
23661    fn syntax(&self) -> &SyntaxNode {
23662        &self.syntax
23663    }
23664}
23665impl AstNode for EventTriggerWhenClause {
23666    #[inline]
23667    fn can_cast(kind: SyntaxKind) -> bool {
23668        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
23669    }
23670    #[inline]
23671    fn cast(syntax: SyntaxNode) -> Option<Self> {
23672        if Self::can_cast(syntax.kind()) {
23673            Some(Self { syntax })
23674        } else {
23675            None
23676        }
23677    }
23678    #[inline]
23679    fn syntax(&self) -> &SyntaxNode {
23680        &self.syntax
23681    }
23682}
23683impl AstNode for ExceptTableClause {
23684    #[inline]
23685    fn can_cast(kind: SyntaxKind) -> bool {
23686        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
23687    }
23688    #[inline]
23689    fn cast(syntax: SyntaxNode) -> Option<Self> {
23690        if Self::can_cast(syntax.kind()) {
23691            Some(Self { syntax })
23692        } else {
23693            None
23694        }
23695    }
23696    #[inline]
23697    fn syntax(&self) -> &SyntaxNode {
23698        &self.syntax
23699    }
23700}
23701impl AstNode for ExceptTables {
23702    #[inline]
23703    fn can_cast(kind: SyntaxKind) -> bool {
23704        kind == SyntaxKind::EXCEPT_TABLES
23705    }
23706    #[inline]
23707    fn cast(syntax: SyntaxNode) -> Option<Self> {
23708        if Self::can_cast(syntax.kind()) {
23709            Some(Self { syntax })
23710        } else {
23711            None
23712        }
23713    }
23714    #[inline]
23715    fn syntax(&self) -> &SyntaxNode {
23716        &self.syntax
23717    }
23718}
23719impl AstNode for ExcludeConstraint {
23720    #[inline]
23721    fn can_cast(kind: SyntaxKind) -> bool {
23722        kind == SyntaxKind::EXCLUDE_CONSTRAINT
23723    }
23724    #[inline]
23725    fn cast(syntax: SyntaxNode) -> Option<Self> {
23726        if Self::can_cast(syntax.kind()) {
23727            Some(Self { syntax })
23728        } else {
23729            None
23730        }
23731    }
23732    #[inline]
23733    fn syntax(&self) -> &SyntaxNode {
23734        &self.syntax
23735    }
23736}
23737impl AstNode for Execute {
23738    #[inline]
23739    fn can_cast(kind: SyntaxKind) -> bool {
23740        kind == SyntaxKind::EXECUTE
23741    }
23742    #[inline]
23743    fn cast(syntax: SyntaxNode) -> Option<Self> {
23744        if Self::can_cast(syntax.kind()) {
23745            Some(Self { syntax })
23746        } else {
23747            None
23748        }
23749    }
23750    #[inline]
23751    fn syntax(&self) -> &SyntaxNode {
23752        &self.syntax
23753    }
23754}
23755impl AstNode for ExistsFn {
23756    #[inline]
23757    fn can_cast(kind: SyntaxKind) -> bool {
23758        kind == SyntaxKind::EXISTS_FN
23759    }
23760    #[inline]
23761    fn cast(syntax: SyntaxNode) -> Option<Self> {
23762        if Self::can_cast(syntax.kind()) {
23763            Some(Self { syntax })
23764        } else {
23765            None
23766        }
23767    }
23768    #[inline]
23769    fn syntax(&self) -> &SyntaxNode {
23770        &self.syntax
23771    }
23772}
23773impl AstNode for Explain {
23774    #[inline]
23775    fn can_cast(kind: SyntaxKind) -> bool {
23776        kind == SyntaxKind::EXPLAIN
23777    }
23778    #[inline]
23779    fn cast(syntax: SyntaxNode) -> Option<Self> {
23780        if Self::can_cast(syntax.kind()) {
23781            Some(Self { syntax })
23782        } else {
23783            None
23784        }
23785    }
23786    #[inline]
23787    fn syntax(&self) -> &SyntaxNode {
23788        &self.syntax
23789    }
23790}
23791impl AstNode for ExprAsName {
23792    #[inline]
23793    fn can_cast(kind: SyntaxKind) -> bool {
23794        kind == SyntaxKind::EXPR_AS_NAME
23795    }
23796    #[inline]
23797    fn cast(syntax: SyntaxNode) -> Option<Self> {
23798        if Self::can_cast(syntax.kind()) {
23799            Some(Self { syntax })
23800        } else {
23801            None
23802        }
23803    }
23804    #[inline]
23805    fn syntax(&self) -> &SyntaxNode {
23806        &self.syntax
23807    }
23808}
23809impl AstNode for ExprAsNameList {
23810    #[inline]
23811    fn can_cast(kind: SyntaxKind) -> bool {
23812        kind == SyntaxKind::EXPR_AS_NAME_LIST
23813    }
23814    #[inline]
23815    fn cast(syntax: SyntaxNode) -> Option<Self> {
23816        if Self::can_cast(syntax.kind()) {
23817            Some(Self { syntax })
23818        } else {
23819            None
23820        }
23821    }
23822    #[inline]
23823    fn syntax(&self) -> &SyntaxNode {
23824        &self.syntax
23825    }
23826}
23827impl AstNode for ExprType {
23828    #[inline]
23829    fn can_cast(kind: SyntaxKind) -> bool {
23830        kind == SyntaxKind::EXPR_TYPE
23831    }
23832    #[inline]
23833    fn cast(syntax: SyntaxNode) -> Option<Self> {
23834        if Self::can_cast(syntax.kind()) {
23835            Some(Self { syntax })
23836        } else {
23837            None
23838        }
23839    }
23840    #[inline]
23841    fn syntax(&self) -> &SyntaxNode {
23842        &self.syntax
23843    }
23844}
23845impl AstNode for ExtractFn {
23846    #[inline]
23847    fn can_cast(kind: SyntaxKind) -> bool {
23848        kind == SyntaxKind::EXTRACT_FN
23849    }
23850    #[inline]
23851    fn cast(syntax: SyntaxNode) -> Option<Self> {
23852        if Self::can_cast(syntax.kind()) {
23853            Some(Self { syntax })
23854        } else {
23855            None
23856        }
23857    }
23858    #[inline]
23859    fn syntax(&self) -> &SyntaxNode {
23860        &self.syntax
23861    }
23862}
23863impl AstNode for FatArrow {
23864    #[inline]
23865    fn can_cast(kind: SyntaxKind) -> bool {
23866        kind == SyntaxKind::FAT_ARROW
23867    }
23868    #[inline]
23869    fn cast(syntax: SyntaxNode) -> Option<Self> {
23870        if Self::can_cast(syntax.kind()) {
23871            Some(Self { syntax })
23872        } else {
23873            None
23874        }
23875    }
23876    #[inline]
23877    fn syntax(&self) -> &SyntaxNode {
23878        &self.syntax
23879    }
23880}
23881impl AstNode for FdwOption {
23882    #[inline]
23883    fn can_cast(kind: SyntaxKind) -> bool {
23884        kind == SyntaxKind::FDW_OPTION
23885    }
23886    #[inline]
23887    fn cast(syntax: SyntaxNode) -> Option<Self> {
23888        if Self::can_cast(syntax.kind()) {
23889            Some(Self { syntax })
23890        } else {
23891            None
23892        }
23893    }
23894    #[inline]
23895    fn syntax(&self) -> &SyntaxNode {
23896        &self.syntax
23897    }
23898}
23899impl AstNode for FdwOptionList {
23900    #[inline]
23901    fn can_cast(kind: SyntaxKind) -> bool {
23902        kind == SyntaxKind::FDW_OPTION_LIST
23903    }
23904    #[inline]
23905    fn cast(syntax: SyntaxNode) -> Option<Self> {
23906        if Self::can_cast(syntax.kind()) {
23907            Some(Self { syntax })
23908        } else {
23909            None
23910        }
23911    }
23912    #[inline]
23913    fn syntax(&self) -> &SyntaxNode {
23914        &self.syntax
23915    }
23916}
23917impl AstNode for Fetch {
23918    #[inline]
23919    fn can_cast(kind: SyntaxKind) -> bool {
23920        kind == SyntaxKind::FETCH
23921    }
23922    #[inline]
23923    fn cast(syntax: SyntaxNode) -> Option<Self> {
23924        if Self::can_cast(syntax.kind()) {
23925            Some(Self { syntax })
23926        } else {
23927            None
23928        }
23929    }
23930    #[inline]
23931    fn syntax(&self) -> &SyntaxNode {
23932        &self.syntax
23933    }
23934}
23935impl AstNode for FetchClause {
23936    #[inline]
23937    fn can_cast(kind: SyntaxKind) -> bool {
23938        kind == SyntaxKind::FETCH_CLAUSE
23939    }
23940    #[inline]
23941    fn cast(syntax: SyntaxNode) -> Option<Self> {
23942        if Self::can_cast(syntax.kind()) {
23943            Some(Self { syntax })
23944        } else {
23945            None
23946        }
23947    }
23948    #[inline]
23949    fn syntax(&self) -> &SyntaxNode {
23950        &self.syntax
23951    }
23952}
23953impl AstNode for FieldExpr {
23954    #[inline]
23955    fn can_cast(kind: SyntaxKind) -> bool {
23956        kind == SyntaxKind::FIELD_EXPR
23957    }
23958    #[inline]
23959    fn cast(syntax: SyntaxNode) -> Option<Self> {
23960        if Self::can_cast(syntax.kind()) {
23961            Some(Self { syntax })
23962        } else {
23963            None
23964        }
23965    }
23966    #[inline]
23967    fn syntax(&self) -> &SyntaxNode {
23968        &self.syntax
23969    }
23970}
23971impl AstNode for FilterClause {
23972    #[inline]
23973    fn can_cast(kind: SyntaxKind) -> bool {
23974        kind == SyntaxKind::FILTER_CLAUSE
23975    }
23976    #[inline]
23977    fn cast(syntax: SyntaxNode) -> Option<Self> {
23978        if Self::can_cast(syntax.kind()) {
23979            Some(Self { syntax })
23980        } else {
23981            None
23982        }
23983    }
23984    #[inline]
23985    fn syntax(&self) -> &SyntaxNode {
23986        &self.syntax
23987    }
23988}
23989impl AstNode for ForProvider {
23990    #[inline]
23991    fn can_cast(kind: SyntaxKind) -> bool {
23992        kind == SyntaxKind::FOR_PROVIDER
23993    }
23994    #[inline]
23995    fn cast(syntax: SyntaxNode) -> Option<Self> {
23996        if Self::can_cast(syntax.kind()) {
23997            Some(Self { syntax })
23998        } else {
23999            None
24000        }
24001    }
24002    #[inline]
24003    fn syntax(&self) -> &SyntaxNode {
24004        &self.syntax
24005    }
24006}
24007impl AstNode for ForceRls {
24008    #[inline]
24009    fn can_cast(kind: SyntaxKind) -> bool {
24010        kind == SyntaxKind::FORCE_RLS
24011    }
24012    #[inline]
24013    fn cast(syntax: SyntaxNode) -> Option<Self> {
24014        if Self::can_cast(syntax.kind()) {
24015            Some(Self { syntax })
24016        } else {
24017            None
24018        }
24019    }
24020    #[inline]
24021    fn syntax(&self) -> &SyntaxNode {
24022        &self.syntax
24023    }
24024}
24025impl AstNode for ForeignKeyConstraint {
24026    #[inline]
24027    fn can_cast(kind: SyntaxKind) -> bool {
24028        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24029    }
24030    #[inline]
24031    fn cast(syntax: SyntaxNode) -> Option<Self> {
24032        if Self::can_cast(syntax.kind()) {
24033            Some(Self { syntax })
24034        } else {
24035            None
24036        }
24037    }
24038    #[inline]
24039    fn syntax(&self) -> &SyntaxNode {
24040        &self.syntax
24041    }
24042}
24043impl AstNode for FrameClause {
24044    #[inline]
24045    fn can_cast(kind: SyntaxKind) -> bool {
24046        kind == SyntaxKind::FRAME_CLAUSE
24047    }
24048    #[inline]
24049    fn cast(syntax: SyntaxNode) -> Option<Self> {
24050        if Self::can_cast(syntax.kind()) {
24051            Some(Self { syntax })
24052        } else {
24053            None
24054        }
24055    }
24056    #[inline]
24057    fn syntax(&self) -> &SyntaxNode {
24058        &self.syntax
24059    }
24060}
24061impl AstNode for FromClause {
24062    #[inline]
24063    fn can_cast(kind: SyntaxKind) -> bool {
24064        kind == SyntaxKind::FROM_CLAUSE
24065    }
24066    #[inline]
24067    fn cast(syntax: SyntaxNode) -> Option<Self> {
24068        if Self::can_cast(syntax.kind()) {
24069            Some(Self { syntax })
24070        } else {
24071            None
24072        }
24073    }
24074    #[inline]
24075    fn syntax(&self) -> &SyntaxNode {
24076        &self.syntax
24077    }
24078}
24079impl AstNode for FromItem {
24080    #[inline]
24081    fn can_cast(kind: SyntaxKind) -> bool {
24082        kind == SyntaxKind::FROM_ITEM
24083    }
24084    #[inline]
24085    fn cast(syntax: SyntaxNode) -> Option<Self> {
24086        if Self::can_cast(syntax.kind()) {
24087            Some(Self { syntax })
24088        } else {
24089            None
24090        }
24091    }
24092    #[inline]
24093    fn syntax(&self) -> &SyntaxNode {
24094        &self.syntax
24095    }
24096}
24097impl AstNode for FromTable {
24098    #[inline]
24099    fn can_cast(kind: SyntaxKind) -> bool {
24100        kind == SyntaxKind::FROM_TABLE
24101    }
24102    #[inline]
24103    fn cast(syntax: SyntaxNode) -> Option<Self> {
24104        if Self::can_cast(syntax.kind()) {
24105            Some(Self { syntax })
24106        } else {
24107            None
24108        }
24109    }
24110    #[inline]
24111    fn syntax(&self) -> &SyntaxNode {
24112        &self.syntax
24113    }
24114}
24115impl AstNode for FuncOptionList {
24116    #[inline]
24117    fn can_cast(kind: SyntaxKind) -> bool {
24118        kind == SyntaxKind::FUNC_OPTION_LIST
24119    }
24120    #[inline]
24121    fn cast(syntax: SyntaxNode) -> Option<Self> {
24122        if Self::can_cast(syntax.kind()) {
24123            Some(Self { syntax })
24124        } else {
24125            None
24126        }
24127    }
24128    #[inline]
24129    fn syntax(&self) -> &SyntaxNode {
24130        &self.syntax
24131    }
24132}
24133impl AstNode for FunctionSig {
24134    #[inline]
24135    fn can_cast(kind: SyntaxKind) -> bool {
24136        kind == SyntaxKind::FUNCTION_SIG
24137    }
24138    #[inline]
24139    fn cast(syntax: SyntaxNode) -> Option<Self> {
24140        if Self::can_cast(syntax.kind()) {
24141            Some(Self { syntax })
24142        } else {
24143            None
24144        }
24145    }
24146    #[inline]
24147    fn syntax(&self) -> &SyntaxNode {
24148        &self.syntax
24149    }
24150}
24151impl AstNode for FunctionSigList {
24152    #[inline]
24153    fn can_cast(kind: SyntaxKind) -> bool {
24154        kind == SyntaxKind::FUNCTION_SIG_LIST
24155    }
24156    #[inline]
24157    fn cast(syntax: SyntaxNode) -> Option<Self> {
24158        if Self::can_cast(syntax.kind()) {
24159            Some(Self { syntax })
24160        } else {
24161            None
24162        }
24163    }
24164    #[inline]
24165    fn syntax(&self) -> &SyntaxNode {
24166        &self.syntax
24167    }
24168}
24169impl AstNode for GeneratedConstraint {
24170    #[inline]
24171    fn can_cast(kind: SyntaxKind) -> bool {
24172        kind == SyntaxKind::GENERATED_CONSTRAINT
24173    }
24174    #[inline]
24175    fn cast(syntax: SyntaxNode) -> Option<Self> {
24176        if Self::can_cast(syntax.kind()) {
24177            Some(Self { syntax })
24178        } else {
24179            None
24180        }
24181    }
24182    #[inline]
24183    fn syntax(&self) -> &SyntaxNode {
24184        &self.syntax
24185    }
24186}
24187impl AstNode for Grant {
24188    #[inline]
24189    fn can_cast(kind: SyntaxKind) -> bool {
24190        kind == SyntaxKind::GRANT
24191    }
24192    #[inline]
24193    fn cast(syntax: SyntaxNode) -> Option<Self> {
24194        if Self::can_cast(syntax.kind()) {
24195            Some(Self { syntax })
24196        } else {
24197            None
24198        }
24199    }
24200    #[inline]
24201    fn syntax(&self) -> &SyntaxNode {
24202        &self.syntax
24203    }
24204}
24205impl AstNode for GrantDefaultPrivileges {
24206    #[inline]
24207    fn can_cast(kind: SyntaxKind) -> bool {
24208        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
24209    }
24210    #[inline]
24211    fn cast(syntax: SyntaxNode) -> Option<Self> {
24212        if Self::can_cast(syntax.kind()) {
24213            Some(Self { syntax })
24214        } else {
24215            None
24216        }
24217    }
24218    #[inline]
24219    fn syntax(&self) -> &SyntaxNode {
24220        &self.syntax
24221    }
24222}
24223impl AstNode for GraphPatternQualifier {
24224    #[inline]
24225    fn can_cast(kind: SyntaxKind) -> bool {
24226        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
24227    }
24228    #[inline]
24229    fn cast(syntax: SyntaxNode) -> Option<Self> {
24230        if Self::can_cast(syntax.kind()) {
24231            Some(Self { syntax })
24232        } else {
24233            None
24234        }
24235    }
24236    #[inline]
24237    fn syntax(&self) -> &SyntaxNode {
24238        &self.syntax
24239    }
24240}
24241impl AstNode for GraphTableFn {
24242    #[inline]
24243    fn can_cast(kind: SyntaxKind) -> bool {
24244        kind == SyntaxKind::GRAPH_TABLE_FN
24245    }
24246    #[inline]
24247    fn cast(syntax: SyntaxNode) -> Option<Self> {
24248        if Self::can_cast(syntax.kind()) {
24249            Some(Self { syntax })
24250        } else {
24251            None
24252        }
24253    }
24254    #[inline]
24255    fn syntax(&self) -> &SyntaxNode {
24256        &self.syntax
24257    }
24258}
24259impl AstNode for GroupByClause {
24260    #[inline]
24261    fn can_cast(kind: SyntaxKind) -> bool {
24262        kind == SyntaxKind::GROUP_BY_CLAUSE
24263    }
24264    #[inline]
24265    fn cast(syntax: SyntaxNode) -> Option<Self> {
24266        if Self::can_cast(syntax.kind()) {
24267            Some(Self { syntax })
24268        } else {
24269            None
24270        }
24271    }
24272    #[inline]
24273    fn syntax(&self) -> &SyntaxNode {
24274        &self.syntax
24275    }
24276}
24277impl AstNode for GroupByList {
24278    #[inline]
24279    fn can_cast(kind: SyntaxKind) -> bool {
24280        kind == SyntaxKind::GROUP_BY_LIST
24281    }
24282    #[inline]
24283    fn cast(syntax: SyntaxNode) -> Option<Self> {
24284        if Self::can_cast(syntax.kind()) {
24285            Some(Self { syntax })
24286        } else {
24287            None
24288        }
24289    }
24290    #[inline]
24291    fn syntax(&self) -> &SyntaxNode {
24292        &self.syntax
24293    }
24294}
24295impl AstNode for GroupingCube {
24296    #[inline]
24297    fn can_cast(kind: SyntaxKind) -> bool {
24298        kind == SyntaxKind::GROUPING_CUBE
24299    }
24300    #[inline]
24301    fn cast(syntax: SyntaxNode) -> Option<Self> {
24302        if Self::can_cast(syntax.kind()) {
24303            Some(Self { syntax })
24304        } else {
24305            None
24306        }
24307    }
24308    #[inline]
24309    fn syntax(&self) -> &SyntaxNode {
24310        &self.syntax
24311    }
24312}
24313impl AstNode for GroupingExpr {
24314    #[inline]
24315    fn can_cast(kind: SyntaxKind) -> bool {
24316        kind == SyntaxKind::GROUPING_EXPR
24317    }
24318    #[inline]
24319    fn cast(syntax: SyntaxNode) -> Option<Self> {
24320        if Self::can_cast(syntax.kind()) {
24321            Some(Self { syntax })
24322        } else {
24323            None
24324        }
24325    }
24326    #[inline]
24327    fn syntax(&self) -> &SyntaxNode {
24328        &self.syntax
24329    }
24330}
24331impl AstNode for GroupingRollup {
24332    #[inline]
24333    fn can_cast(kind: SyntaxKind) -> bool {
24334        kind == SyntaxKind::GROUPING_ROLLUP
24335    }
24336    #[inline]
24337    fn cast(syntax: SyntaxNode) -> Option<Self> {
24338        if Self::can_cast(syntax.kind()) {
24339            Some(Self { syntax })
24340        } else {
24341            None
24342        }
24343    }
24344    #[inline]
24345    fn syntax(&self) -> &SyntaxNode {
24346        &self.syntax
24347    }
24348}
24349impl AstNode for GroupingSets {
24350    #[inline]
24351    fn can_cast(kind: SyntaxKind) -> bool {
24352        kind == SyntaxKind::GROUPING_SETS
24353    }
24354    #[inline]
24355    fn cast(syntax: SyntaxNode) -> Option<Self> {
24356        if Self::can_cast(syntax.kind()) {
24357            Some(Self { syntax })
24358        } else {
24359            None
24360        }
24361    }
24362    #[inline]
24363    fn syntax(&self) -> &SyntaxNode {
24364        &self.syntax
24365    }
24366}
24367impl AstNode for Gteq {
24368    #[inline]
24369    fn can_cast(kind: SyntaxKind) -> bool {
24370        kind == SyntaxKind::GTEQ
24371    }
24372    #[inline]
24373    fn cast(syntax: SyntaxNode) -> Option<Self> {
24374        if Self::can_cast(syntax.kind()) {
24375            Some(Self { syntax })
24376        } else {
24377            None
24378        }
24379    }
24380    #[inline]
24381    fn syntax(&self) -> &SyntaxNode {
24382        &self.syntax
24383    }
24384}
24385impl AstNode for HandlerClause {
24386    #[inline]
24387    fn can_cast(kind: SyntaxKind) -> bool {
24388        kind == SyntaxKind::HANDLER_CLAUSE
24389    }
24390    #[inline]
24391    fn cast(syntax: SyntaxNode) -> Option<Self> {
24392        if Self::can_cast(syntax.kind()) {
24393            Some(Self { syntax })
24394        } else {
24395            None
24396        }
24397    }
24398    #[inline]
24399    fn syntax(&self) -> &SyntaxNode {
24400        &self.syntax
24401    }
24402}
24403impl AstNode for HavingClause {
24404    #[inline]
24405    fn can_cast(kind: SyntaxKind) -> bool {
24406        kind == SyntaxKind::HAVING_CLAUSE
24407    }
24408    #[inline]
24409    fn cast(syntax: SyntaxNode) -> Option<Self> {
24410        if Self::can_cast(syntax.kind()) {
24411            Some(Self { syntax })
24412        } else {
24413            None
24414        }
24415    }
24416    #[inline]
24417    fn syntax(&self) -> &SyntaxNode {
24418        &self.syntax
24419    }
24420}
24421impl AstNode for IfExists {
24422    #[inline]
24423    fn can_cast(kind: SyntaxKind) -> bool {
24424        kind == SyntaxKind::IF_EXISTS
24425    }
24426    #[inline]
24427    fn cast(syntax: SyntaxNode) -> Option<Self> {
24428        if Self::can_cast(syntax.kind()) {
24429            Some(Self { syntax })
24430        } else {
24431            None
24432        }
24433    }
24434    #[inline]
24435    fn syntax(&self) -> &SyntaxNode {
24436        &self.syntax
24437    }
24438}
24439impl AstNode for IfNotExists {
24440    #[inline]
24441    fn can_cast(kind: SyntaxKind) -> bool {
24442        kind == SyntaxKind::IF_NOT_EXISTS
24443    }
24444    #[inline]
24445    fn cast(syntax: SyntaxNode) -> Option<Self> {
24446        if Self::can_cast(syntax.kind()) {
24447            Some(Self { syntax })
24448        } else {
24449            None
24450        }
24451    }
24452    #[inline]
24453    fn syntax(&self) -> &SyntaxNode {
24454        &self.syntax
24455    }
24456}
24457impl AstNode for ImportForeignSchema {
24458    #[inline]
24459    fn can_cast(kind: SyntaxKind) -> bool {
24460        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
24461    }
24462    #[inline]
24463    fn cast(syntax: SyntaxNode) -> Option<Self> {
24464        if Self::can_cast(syntax.kind()) {
24465            Some(Self { syntax })
24466        } else {
24467            None
24468        }
24469    }
24470    #[inline]
24471    fn syntax(&self) -> &SyntaxNode {
24472        &self.syntax
24473    }
24474}
24475impl AstNode for IndexExpr {
24476    #[inline]
24477    fn can_cast(kind: SyntaxKind) -> bool {
24478        kind == SyntaxKind::INDEX_EXPR
24479    }
24480    #[inline]
24481    fn cast(syntax: SyntaxNode) -> Option<Self> {
24482        if Self::can_cast(syntax.kind()) {
24483            Some(Self { syntax })
24484        } else {
24485            None
24486        }
24487    }
24488    #[inline]
24489    fn syntax(&self) -> &SyntaxNode {
24490        &self.syntax
24491    }
24492}
24493impl AstNode for Inherit {
24494    #[inline]
24495    fn can_cast(kind: SyntaxKind) -> bool {
24496        kind == SyntaxKind::INHERIT
24497    }
24498    #[inline]
24499    fn cast(syntax: SyntaxNode) -> Option<Self> {
24500        if Self::can_cast(syntax.kind()) {
24501            Some(Self { syntax })
24502        } else {
24503            None
24504        }
24505    }
24506    #[inline]
24507    fn syntax(&self) -> &SyntaxNode {
24508        &self.syntax
24509    }
24510}
24511impl AstNode for InheritTable {
24512    #[inline]
24513    fn can_cast(kind: SyntaxKind) -> bool {
24514        kind == SyntaxKind::INHERIT_TABLE
24515    }
24516    #[inline]
24517    fn cast(syntax: SyntaxNode) -> Option<Self> {
24518        if Self::can_cast(syntax.kind()) {
24519            Some(Self { syntax })
24520        } else {
24521            None
24522        }
24523    }
24524    #[inline]
24525    fn syntax(&self) -> &SyntaxNode {
24526        &self.syntax
24527    }
24528}
24529impl AstNode for Inherits {
24530    #[inline]
24531    fn can_cast(kind: SyntaxKind) -> bool {
24532        kind == SyntaxKind::INHERITS
24533    }
24534    #[inline]
24535    fn cast(syntax: SyntaxNode) -> Option<Self> {
24536        if Self::can_cast(syntax.kind()) {
24537            Some(Self { syntax })
24538        } else {
24539            None
24540        }
24541    }
24542    #[inline]
24543    fn syntax(&self) -> &SyntaxNode {
24544        &self.syntax
24545    }
24546}
24547impl AstNode for InitiallyDeferredConstraintOption {
24548    #[inline]
24549    fn can_cast(kind: SyntaxKind) -> bool {
24550        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
24551    }
24552    #[inline]
24553    fn cast(syntax: SyntaxNode) -> Option<Self> {
24554        if Self::can_cast(syntax.kind()) {
24555            Some(Self { syntax })
24556        } else {
24557            None
24558        }
24559    }
24560    #[inline]
24561    fn syntax(&self) -> &SyntaxNode {
24562        &self.syntax
24563    }
24564}
24565impl AstNode for InitiallyImmediateConstraintOption {
24566    #[inline]
24567    fn can_cast(kind: SyntaxKind) -> bool {
24568        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
24569    }
24570    #[inline]
24571    fn cast(syntax: SyntaxNode) -> Option<Self> {
24572        if Self::can_cast(syntax.kind()) {
24573            Some(Self { syntax })
24574        } else {
24575            None
24576        }
24577    }
24578    #[inline]
24579    fn syntax(&self) -> &SyntaxNode {
24580        &self.syntax
24581    }
24582}
24583impl AstNode for Insert {
24584    #[inline]
24585    fn can_cast(kind: SyntaxKind) -> bool {
24586        kind == SyntaxKind::INSERT
24587    }
24588    #[inline]
24589    fn cast(syntax: SyntaxNode) -> Option<Self> {
24590        if Self::can_cast(syntax.kind()) {
24591            Some(Self { syntax })
24592        } else {
24593            None
24594        }
24595    }
24596    #[inline]
24597    fn syntax(&self) -> &SyntaxNode {
24598        &self.syntax
24599    }
24600}
24601impl AstNode for IntervalType {
24602    #[inline]
24603    fn can_cast(kind: SyntaxKind) -> bool {
24604        kind == SyntaxKind::INTERVAL_TYPE
24605    }
24606    #[inline]
24607    fn cast(syntax: SyntaxNode) -> Option<Self> {
24608        if Self::can_cast(syntax.kind()) {
24609            Some(Self { syntax })
24610        } else {
24611            None
24612        }
24613    }
24614    #[inline]
24615    fn syntax(&self) -> &SyntaxNode {
24616        &self.syntax
24617    }
24618}
24619impl AstNode for IntoClause {
24620    #[inline]
24621    fn can_cast(kind: SyntaxKind) -> bool {
24622        kind == SyntaxKind::INTO_CLAUSE
24623    }
24624    #[inline]
24625    fn cast(syntax: SyntaxNode) -> Option<Self> {
24626        if Self::can_cast(syntax.kind()) {
24627            Some(Self { syntax })
24628        } else {
24629            None
24630        }
24631    }
24632    #[inline]
24633    fn syntax(&self) -> &SyntaxNode {
24634        &self.syntax
24635    }
24636}
24637impl AstNode for IntoSchema {
24638    #[inline]
24639    fn can_cast(kind: SyntaxKind) -> bool {
24640        kind == SyntaxKind::INTO_SCHEMA
24641    }
24642    #[inline]
24643    fn cast(syntax: SyntaxNode) -> Option<Self> {
24644        if Self::can_cast(syntax.kind()) {
24645            Some(Self { syntax })
24646        } else {
24647            None
24648        }
24649    }
24650    #[inline]
24651    fn syntax(&self) -> &SyntaxNode {
24652        &self.syntax
24653    }
24654}
24655impl AstNode for IsDistinctFrom {
24656    #[inline]
24657    fn can_cast(kind: SyntaxKind) -> bool {
24658        kind == SyntaxKind::IS_DISTINCT_FROM
24659    }
24660    #[inline]
24661    fn cast(syntax: SyntaxNode) -> Option<Self> {
24662        if Self::can_cast(syntax.kind()) {
24663            Some(Self { syntax })
24664        } else {
24665            None
24666        }
24667    }
24668    #[inline]
24669    fn syntax(&self) -> &SyntaxNode {
24670        &self.syntax
24671    }
24672}
24673impl AstNode for IsJson {
24674    #[inline]
24675    fn can_cast(kind: SyntaxKind) -> bool {
24676        kind == SyntaxKind::IS_JSON
24677    }
24678    #[inline]
24679    fn cast(syntax: SyntaxNode) -> Option<Self> {
24680        if Self::can_cast(syntax.kind()) {
24681            Some(Self { syntax })
24682        } else {
24683            None
24684        }
24685    }
24686    #[inline]
24687    fn syntax(&self) -> &SyntaxNode {
24688        &self.syntax
24689    }
24690}
24691impl AstNode for IsJsonArray {
24692    #[inline]
24693    fn can_cast(kind: SyntaxKind) -> bool {
24694        kind == SyntaxKind::IS_JSON_ARRAY
24695    }
24696    #[inline]
24697    fn cast(syntax: SyntaxNode) -> Option<Self> {
24698        if Self::can_cast(syntax.kind()) {
24699            Some(Self { syntax })
24700        } else {
24701            None
24702        }
24703    }
24704    #[inline]
24705    fn syntax(&self) -> &SyntaxNode {
24706        &self.syntax
24707    }
24708}
24709impl AstNode for IsJsonObject {
24710    #[inline]
24711    fn can_cast(kind: SyntaxKind) -> bool {
24712        kind == SyntaxKind::IS_JSON_OBJECT
24713    }
24714    #[inline]
24715    fn cast(syntax: SyntaxNode) -> Option<Self> {
24716        if Self::can_cast(syntax.kind()) {
24717            Some(Self { syntax })
24718        } else {
24719            None
24720        }
24721    }
24722    #[inline]
24723    fn syntax(&self) -> &SyntaxNode {
24724        &self.syntax
24725    }
24726}
24727impl AstNode for IsJsonScalar {
24728    #[inline]
24729    fn can_cast(kind: SyntaxKind) -> bool {
24730        kind == SyntaxKind::IS_JSON_SCALAR
24731    }
24732    #[inline]
24733    fn cast(syntax: SyntaxNode) -> Option<Self> {
24734        if Self::can_cast(syntax.kind()) {
24735            Some(Self { syntax })
24736        } else {
24737            None
24738        }
24739    }
24740    #[inline]
24741    fn syntax(&self) -> &SyntaxNode {
24742        &self.syntax
24743    }
24744}
24745impl AstNode for IsJsonValue {
24746    #[inline]
24747    fn can_cast(kind: SyntaxKind) -> bool {
24748        kind == SyntaxKind::IS_JSON_VALUE
24749    }
24750    #[inline]
24751    fn cast(syntax: SyntaxNode) -> Option<Self> {
24752        if Self::can_cast(syntax.kind()) {
24753            Some(Self { syntax })
24754        } else {
24755            None
24756        }
24757    }
24758    #[inline]
24759    fn syntax(&self) -> &SyntaxNode {
24760        &self.syntax
24761    }
24762}
24763impl AstNode for IsLabelExpression {
24764    #[inline]
24765    fn can_cast(kind: SyntaxKind) -> bool {
24766        kind == SyntaxKind::IS_LABEL_EXPRESSION
24767    }
24768    #[inline]
24769    fn cast(syntax: SyntaxNode) -> Option<Self> {
24770        if Self::can_cast(syntax.kind()) {
24771            Some(Self { syntax })
24772        } else {
24773            None
24774        }
24775    }
24776    #[inline]
24777    fn syntax(&self) -> &SyntaxNode {
24778        &self.syntax
24779    }
24780}
24781impl AstNode for IsNormalized {
24782    #[inline]
24783    fn can_cast(kind: SyntaxKind) -> bool {
24784        kind == SyntaxKind::IS_NORMALIZED
24785    }
24786    #[inline]
24787    fn cast(syntax: SyntaxNode) -> Option<Self> {
24788        if Self::can_cast(syntax.kind()) {
24789            Some(Self { syntax })
24790        } else {
24791            None
24792        }
24793    }
24794    #[inline]
24795    fn syntax(&self) -> &SyntaxNode {
24796        &self.syntax
24797    }
24798}
24799impl AstNode for IsNot {
24800    #[inline]
24801    fn can_cast(kind: SyntaxKind) -> bool {
24802        kind == SyntaxKind::IS_NOT
24803    }
24804    #[inline]
24805    fn cast(syntax: SyntaxNode) -> Option<Self> {
24806        if Self::can_cast(syntax.kind()) {
24807            Some(Self { syntax })
24808        } else {
24809            None
24810        }
24811    }
24812    #[inline]
24813    fn syntax(&self) -> &SyntaxNode {
24814        &self.syntax
24815    }
24816}
24817impl AstNode for IsNotDistinctFrom {
24818    #[inline]
24819    fn can_cast(kind: SyntaxKind) -> bool {
24820        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
24821    }
24822    #[inline]
24823    fn cast(syntax: SyntaxNode) -> Option<Self> {
24824        if Self::can_cast(syntax.kind()) {
24825            Some(Self { syntax })
24826        } else {
24827            None
24828        }
24829    }
24830    #[inline]
24831    fn syntax(&self) -> &SyntaxNode {
24832        &self.syntax
24833    }
24834}
24835impl AstNode for IsNotJson {
24836    #[inline]
24837    fn can_cast(kind: SyntaxKind) -> bool {
24838        kind == SyntaxKind::IS_NOT_JSON
24839    }
24840    #[inline]
24841    fn cast(syntax: SyntaxNode) -> Option<Self> {
24842        if Self::can_cast(syntax.kind()) {
24843            Some(Self { syntax })
24844        } else {
24845            None
24846        }
24847    }
24848    #[inline]
24849    fn syntax(&self) -> &SyntaxNode {
24850        &self.syntax
24851    }
24852}
24853impl AstNode for IsNotJsonArray {
24854    #[inline]
24855    fn can_cast(kind: SyntaxKind) -> bool {
24856        kind == SyntaxKind::IS_NOT_JSON_ARRAY
24857    }
24858    #[inline]
24859    fn cast(syntax: SyntaxNode) -> Option<Self> {
24860        if Self::can_cast(syntax.kind()) {
24861            Some(Self { syntax })
24862        } else {
24863            None
24864        }
24865    }
24866    #[inline]
24867    fn syntax(&self) -> &SyntaxNode {
24868        &self.syntax
24869    }
24870}
24871impl AstNode for IsNotJsonObject {
24872    #[inline]
24873    fn can_cast(kind: SyntaxKind) -> bool {
24874        kind == SyntaxKind::IS_NOT_JSON_OBJECT
24875    }
24876    #[inline]
24877    fn cast(syntax: SyntaxNode) -> Option<Self> {
24878        if Self::can_cast(syntax.kind()) {
24879            Some(Self { syntax })
24880        } else {
24881            None
24882        }
24883    }
24884    #[inline]
24885    fn syntax(&self) -> &SyntaxNode {
24886        &self.syntax
24887    }
24888}
24889impl AstNode for IsNotJsonScalar {
24890    #[inline]
24891    fn can_cast(kind: SyntaxKind) -> bool {
24892        kind == SyntaxKind::IS_NOT_JSON_SCALAR
24893    }
24894    #[inline]
24895    fn cast(syntax: SyntaxNode) -> Option<Self> {
24896        if Self::can_cast(syntax.kind()) {
24897            Some(Self { syntax })
24898        } else {
24899            None
24900        }
24901    }
24902    #[inline]
24903    fn syntax(&self) -> &SyntaxNode {
24904        &self.syntax
24905    }
24906}
24907impl AstNode for IsNotJsonValue {
24908    #[inline]
24909    fn can_cast(kind: SyntaxKind) -> bool {
24910        kind == SyntaxKind::IS_NOT_JSON_VALUE
24911    }
24912    #[inline]
24913    fn cast(syntax: SyntaxNode) -> Option<Self> {
24914        if Self::can_cast(syntax.kind()) {
24915            Some(Self { syntax })
24916        } else {
24917            None
24918        }
24919    }
24920    #[inline]
24921    fn syntax(&self) -> &SyntaxNode {
24922        &self.syntax
24923    }
24924}
24925impl AstNode for IsNotNormalized {
24926    #[inline]
24927    fn can_cast(kind: SyntaxKind) -> bool {
24928        kind == SyntaxKind::IS_NOT_NORMALIZED
24929    }
24930    #[inline]
24931    fn cast(syntax: SyntaxNode) -> Option<Self> {
24932        if Self::can_cast(syntax.kind()) {
24933            Some(Self { syntax })
24934        } else {
24935            None
24936        }
24937    }
24938    #[inline]
24939    fn syntax(&self) -> &SyntaxNode {
24940        &self.syntax
24941    }
24942}
24943impl AstNode for Join {
24944    #[inline]
24945    fn can_cast(kind: SyntaxKind) -> bool {
24946        kind == SyntaxKind::JOIN
24947    }
24948    #[inline]
24949    fn cast(syntax: SyntaxNode) -> Option<Self> {
24950        if Self::can_cast(syntax.kind()) {
24951            Some(Self { syntax })
24952        } else {
24953            None
24954        }
24955    }
24956    #[inline]
24957    fn syntax(&self) -> &SyntaxNode {
24958        &self.syntax
24959    }
24960}
24961impl AstNode for JoinCross {
24962    #[inline]
24963    fn can_cast(kind: SyntaxKind) -> bool {
24964        kind == SyntaxKind::JOIN_CROSS
24965    }
24966    #[inline]
24967    fn cast(syntax: SyntaxNode) -> Option<Self> {
24968        if Self::can_cast(syntax.kind()) {
24969            Some(Self { syntax })
24970        } else {
24971            None
24972        }
24973    }
24974    #[inline]
24975    fn syntax(&self) -> &SyntaxNode {
24976        &self.syntax
24977    }
24978}
24979impl AstNode for JoinExpr {
24980    #[inline]
24981    fn can_cast(kind: SyntaxKind) -> bool {
24982        kind == SyntaxKind::JOIN_EXPR
24983    }
24984    #[inline]
24985    fn cast(syntax: SyntaxNode) -> Option<Self> {
24986        if Self::can_cast(syntax.kind()) {
24987            Some(Self { syntax })
24988        } else {
24989            None
24990        }
24991    }
24992    #[inline]
24993    fn syntax(&self) -> &SyntaxNode {
24994        &self.syntax
24995    }
24996}
24997impl AstNode for JoinFull {
24998    #[inline]
24999    fn can_cast(kind: SyntaxKind) -> bool {
25000        kind == SyntaxKind::JOIN_FULL
25001    }
25002    #[inline]
25003    fn cast(syntax: SyntaxNode) -> Option<Self> {
25004        if Self::can_cast(syntax.kind()) {
25005            Some(Self { syntax })
25006        } else {
25007            None
25008        }
25009    }
25010    #[inline]
25011    fn syntax(&self) -> &SyntaxNode {
25012        &self.syntax
25013    }
25014}
25015impl AstNode for JoinInner {
25016    #[inline]
25017    fn can_cast(kind: SyntaxKind) -> bool {
25018        kind == SyntaxKind::JOIN_INNER
25019    }
25020    #[inline]
25021    fn cast(syntax: SyntaxNode) -> Option<Self> {
25022        if Self::can_cast(syntax.kind()) {
25023            Some(Self { syntax })
25024        } else {
25025            None
25026        }
25027    }
25028    #[inline]
25029    fn syntax(&self) -> &SyntaxNode {
25030        &self.syntax
25031    }
25032}
25033impl AstNode for JoinLeft {
25034    #[inline]
25035    fn can_cast(kind: SyntaxKind) -> bool {
25036        kind == SyntaxKind::JOIN_LEFT
25037    }
25038    #[inline]
25039    fn cast(syntax: SyntaxNode) -> Option<Self> {
25040        if Self::can_cast(syntax.kind()) {
25041            Some(Self { syntax })
25042        } else {
25043            None
25044        }
25045    }
25046    #[inline]
25047    fn syntax(&self) -> &SyntaxNode {
25048        &self.syntax
25049    }
25050}
25051impl AstNode for JoinRight {
25052    #[inline]
25053    fn can_cast(kind: SyntaxKind) -> bool {
25054        kind == SyntaxKind::JOIN_RIGHT
25055    }
25056    #[inline]
25057    fn cast(syntax: SyntaxNode) -> Option<Self> {
25058        if Self::can_cast(syntax.kind()) {
25059            Some(Self { syntax })
25060        } else {
25061            None
25062        }
25063    }
25064    #[inline]
25065    fn syntax(&self) -> &SyntaxNode {
25066        &self.syntax
25067    }
25068}
25069impl AstNode for JoinUsingClause {
25070    #[inline]
25071    fn can_cast(kind: SyntaxKind) -> bool {
25072        kind == SyntaxKind::JOIN_USING_CLAUSE
25073    }
25074    #[inline]
25075    fn cast(syntax: SyntaxNode) -> Option<Self> {
25076        if Self::can_cast(syntax.kind()) {
25077            Some(Self { syntax })
25078        } else {
25079            None
25080        }
25081    }
25082    #[inline]
25083    fn syntax(&self) -> &SyntaxNode {
25084        &self.syntax
25085    }
25086}
25087impl AstNode for JsonArrayAggFn {
25088    #[inline]
25089    fn can_cast(kind: SyntaxKind) -> bool {
25090        kind == SyntaxKind::JSON_ARRAY_AGG_FN
25091    }
25092    #[inline]
25093    fn cast(syntax: SyntaxNode) -> Option<Self> {
25094        if Self::can_cast(syntax.kind()) {
25095            Some(Self { syntax })
25096        } else {
25097            None
25098        }
25099    }
25100    #[inline]
25101    fn syntax(&self) -> &SyntaxNode {
25102        &self.syntax
25103    }
25104}
25105impl AstNode for JsonArrayFn {
25106    #[inline]
25107    fn can_cast(kind: SyntaxKind) -> bool {
25108        kind == SyntaxKind::JSON_ARRAY_FN
25109    }
25110    #[inline]
25111    fn cast(syntax: SyntaxNode) -> Option<Self> {
25112        if Self::can_cast(syntax.kind()) {
25113            Some(Self { syntax })
25114        } else {
25115            None
25116        }
25117    }
25118    #[inline]
25119    fn syntax(&self) -> &SyntaxNode {
25120        &self.syntax
25121    }
25122}
25123impl AstNode for JsonBehaviorClause {
25124    #[inline]
25125    fn can_cast(kind: SyntaxKind) -> bool {
25126        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
25127    }
25128    #[inline]
25129    fn cast(syntax: SyntaxNode) -> Option<Self> {
25130        if Self::can_cast(syntax.kind()) {
25131            Some(Self { syntax })
25132        } else {
25133            None
25134        }
25135    }
25136    #[inline]
25137    fn syntax(&self) -> &SyntaxNode {
25138        &self.syntax
25139    }
25140}
25141impl AstNode for JsonBehaviorDefault {
25142    #[inline]
25143    fn can_cast(kind: SyntaxKind) -> bool {
25144        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
25145    }
25146    #[inline]
25147    fn cast(syntax: SyntaxNode) -> Option<Self> {
25148        if Self::can_cast(syntax.kind()) {
25149            Some(Self { syntax })
25150        } else {
25151            None
25152        }
25153    }
25154    #[inline]
25155    fn syntax(&self) -> &SyntaxNode {
25156        &self.syntax
25157    }
25158}
25159impl AstNode for JsonBehaviorEmptyArray {
25160    #[inline]
25161    fn can_cast(kind: SyntaxKind) -> bool {
25162        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
25163    }
25164    #[inline]
25165    fn cast(syntax: SyntaxNode) -> Option<Self> {
25166        if Self::can_cast(syntax.kind()) {
25167            Some(Self { syntax })
25168        } else {
25169            None
25170        }
25171    }
25172    #[inline]
25173    fn syntax(&self) -> &SyntaxNode {
25174        &self.syntax
25175    }
25176}
25177impl AstNode for JsonBehaviorEmptyObject {
25178    #[inline]
25179    fn can_cast(kind: SyntaxKind) -> bool {
25180        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
25181    }
25182    #[inline]
25183    fn cast(syntax: SyntaxNode) -> Option<Self> {
25184        if Self::can_cast(syntax.kind()) {
25185            Some(Self { syntax })
25186        } else {
25187            None
25188        }
25189    }
25190    #[inline]
25191    fn syntax(&self) -> &SyntaxNode {
25192        &self.syntax
25193    }
25194}
25195impl AstNode for JsonBehaviorError {
25196    #[inline]
25197    fn can_cast(kind: SyntaxKind) -> bool {
25198        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
25199    }
25200    #[inline]
25201    fn cast(syntax: SyntaxNode) -> Option<Self> {
25202        if Self::can_cast(syntax.kind()) {
25203            Some(Self { syntax })
25204        } else {
25205            None
25206        }
25207    }
25208    #[inline]
25209    fn syntax(&self) -> &SyntaxNode {
25210        &self.syntax
25211    }
25212}
25213impl AstNode for JsonBehaviorFalse {
25214    #[inline]
25215    fn can_cast(kind: SyntaxKind) -> bool {
25216        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
25217    }
25218    #[inline]
25219    fn cast(syntax: SyntaxNode) -> Option<Self> {
25220        if Self::can_cast(syntax.kind()) {
25221            Some(Self { syntax })
25222        } else {
25223            None
25224        }
25225    }
25226    #[inline]
25227    fn syntax(&self) -> &SyntaxNode {
25228        &self.syntax
25229    }
25230}
25231impl AstNode for JsonBehaviorNull {
25232    #[inline]
25233    fn can_cast(kind: SyntaxKind) -> bool {
25234        kind == SyntaxKind::JSON_BEHAVIOR_NULL
25235    }
25236    #[inline]
25237    fn cast(syntax: SyntaxNode) -> Option<Self> {
25238        if Self::can_cast(syntax.kind()) {
25239            Some(Self { syntax })
25240        } else {
25241            None
25242        }
25243    }
25244    #[inline]
25245    fn syntax(&self) -> &SyntaxNode {
25246        &self.syntax
25247    }
25248}
25249impl AstNode for JsonBehaviorTrue {
25250    #[inline]
25251    fn can_cast(kind: SyntaxKind) -> bool {
25252        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
25253    }
25254    #[inline]
25255    fn cast(syntax: SyntaxNode) -> Option<Self> {
25256        if Self::can_cast(syntax.kind()) {
25257            Some(Self { syntax })
25258        } else {
25259            None
25260        }
25261    }
25262    #[inline]
25263    fn syntax(&self) -> &SyntaxNode {
25264        &self.syntax
25265    }
25266}
25267impl AstNode for JsonBehaviorUnknown {
25268    #[inline]
25269    fn can_cast(kind: SyntaxKind) -> bool {
25270        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
25271    }
25272    #[inline]
25273    fn cast(syntax: SyntaxNode) -> Option<Self> {
25274        if Self::can_cast(syntax.kind()) {
25275            Some(Self { syntax })
25276        } else {
25277            None
25278        }
25279    }
25280    #[inline]
25281    fn syntax(&self) -> &SyntaxNode {
25282        &self.syntax
25283    }
25284}
25285impl AstNode for JsonEncodingClause {
25286    #[inline]
25287    fn can_cast(kind: SyntaxKind) -> bool {
25288        kind == SyntaxKind::JSON_ENCODING_CLAUSE
25289    }
25290    #[inline]
25291    fn cast(syntax: SyntaxNode) -> Option<Self> {
25292        if Self::can_cast(syntax.kind()) {
25293            Some(Self { syntax })
25294        } else {
25295            None
25296        }
25297    }
25298    #[inline]
25299    fn syntax(&self) -> &SyntaxNode {
25300        &self.syntax
25301    }
25302}
25303impl AstNode for JsonExistsFn {
25304    #[inline]
25305    fn can_cast(kind: SyntaxKind) -> bool {
25306        kind == SyntaxKind::JSON_EXISTS_FN
25307    }
25308    #[inline]
25309    fn cast(syntax: SyntaxNode) -> Option<Self> {
25310        if Self::can_cast(syntax.kind()) {
25311            Some(Self { syntax })
25312        } else {
25313            None
25314        }
25315    }
25316    #[inline]
25317    fn syntax(&self) -> &SyntaxNode {
25318        &self.syntax
25319    }
25320}
25321impl AstNode for JsonExprFormat {
25322    #[inline]
25323    fn can_cast(kind: SyntaxKind) -> bool {
25324        kind == SyntaxKind::JSON_EXPR_FORMAT
25325    }
25326    #[inline]
25327    fn cast(syntax: SyntaxNode) -> Option<Self> {
25328        if Self::can_cast(syntax.kind()) {
25329            Some(Self { syntax })
25330        } else {
25331            None
25332        }
25333    }
25334    #[inline]
25335    fn syntax(&self) -> &SyntaxNode {
25336        &self.syntax
25337    }
25338}
25339impl AstNode for JsonFn {
25340    #[inline]
25341    fn can_cast(kind: SyntaxKind) -> bool {
25342        kind == SyntaxKind::JSON_FN
25343    }
25344    #[inline]
25345    fn cast(syntax: SyntaxNode) -> Option<Self> {
25346        if Self::can_cast(syntax.kind()) {
25347            Some(Self { syntax })
25348        } else {
25349            None
25350        }
25351    }
25352    #[inline]
25353    fn syntax(&self) -> &SyntaxNode {
25354        &self.syntax
25355    }
25356}
25357impl AstNode for JsonFormatClause {
25358    #[inline]
25359    fn can_cast(kind: SyntaxKind) -> bool {
25360        kind == SyntaxKind::JSON_FORMAT_CLAUSE
25361    }
25362    #[inline]
25363    fn cast(syntax: SyntaxNode) -> Option<Self> {
25364        if Self::can_cast(syntax.kind()) {
25365            Some(Self { syntax })
25366        } else {
25367            None
25368        }
25369    }
25370    #[inline]
25371    fn syntax(&self) -> &SyntaxNode {
25372        &self.syntax
25373    }
25374}
25375impl AstNode for JsonKeyValue {
25376    #[inline]
25377    fn can_cast(kind: SyntaxKind) -> bool {
25378        kind == SyntaxKind::JSON_KEY_VALUE
25379    }
25380    #[inline]
25381    fn cast(syntax: SyntaxNode) -> Option<Self> {
25382        if Self::can_cast(syntax.kind()) {
25383            Some(Self { syntax })
25384        } else {
25385            None
25386        }
25387    }
25388    #[inline]
25389    fn syntax(&self) -> &SyntaxNode {
25390        &self.syntax
25391    }
25392}
25393impl AstNode for JsonKeysUniqueClause {
25394    #[inline]
25395    fn can_cast(kind: SyntaxKind) -> bool {
25396        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
25397    }
25398    #[inline]
25399    fn cast(syntax: SyntaxNode) -> Option<Self> {
25400        if Self::can_cast(syntax.kind()) {
25401            Some(Self { syntax })
25402        } else {
25403            None
25404        }
25405    }
25406    #[inline]
25407    fn syntax(&self) -> &SyntaxNode {
25408        &self.syntax
25409    }
25410}
25411impl AstNode for JsonNullClause {
25412    #[inline]
25413    fn can_cast(kind: SyntaxKind) -> bool {
25414        kind == SyntaxKind::JSON_NULL_CLAUSE
25415    }
25416    #[inline]
25417    fn cast(syntax: SyntaxNode) -> Option<Self> {
25418        if Self::can_cast(syntax.kind()) {
25419            Some(Self { syntax })
25420        } else {
25421            None
25422        }
25423    }
25424    #[inline]
25425    fn syntax(&self) -> &SyntaxNode {
25426        &self.syntax
25427    }
25428}
25429impl AstNode for JsonObjectAggFn {
25430    #[inline]
25431    fn can_cast(kind: SyntaxKind) -> bool {
25432        kind == SyntaxKind::JSON_OBJECT_AGG_FN
25433    }
25434    #[inline]
25435    fn cast(syntax: SyntaxNode) -> Option<Self> {
25436        if Self::can_cast(syntax.kind()) {
25437            Some(Self { syntax })
25438        } else {
25439            None
25440        }
25441    }
25442    #[inline]
25443    fn syntax(&self) -> &SyntaxNode {
25444        &self.syntax
25445    }
25446}
25447impl AstNode for JsonObjectFn {
25448    #[inline]
25449    fn can_cast(kind: SyntaxKind) -> bool {
25450        kind == SyntaxKind::JSON_OBJECT_FN
25451    }
25452    #[inline]
25453    fn cast(syntax: SyntaxNode) -> Option<Self> {
25454        if Self::can_cast(syntax.kind()) {
25455            Some(Self { syntax })
25456        } else {
25457            None
25458        }
25459    }
25460    #[inline]
25461    fn syntax(&self) -> &SyntaxNode {
25462        &self.syntax
25463    }
25464}
25465impl AstNode for JsonOnEmptyClause {
25466    #[inline]
25467    fn can_cast(kind: SyntaxKind) -> bool {
25468        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
25469    }
25470    #[inline]
25471    fn cast(syntax: SyntaxNode) -> Option<Self> {
25472        if Self::can_cast(syntax.kind()) {
25473            Some(Self { syntax })
25474        } else {
25475            None
25476        }
25477    }
25478    #[inline]
25479    fn syntax(&self) -> &SyntaxNode {
25480        &self.syntax
25481    }
25482}
25483impl AstNode for JsonOnErrorClause {
25484    #[inline]
25485    fn can_cast(kind: SyntaxKind) -> bool {
25486        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
25487    }
25488    #[inline]
25489    fn cast(syntax: SyntaxNode) -> Option<Self> {
25490        if Self::can_cast(syntax.kind()) {
25491            Some(Self { syntax })
25492        } else {
25493            None
25494        }
25495    }
25496    #[inline]
25497    fn syntax(&self) -> &SyntaxNode {
25498        &self.syntax
25499    }
25500}
25501impl AstNode for JsonPassingArg {
25502    #[inline]
25503    fn can_cast(kind: SyntaxKind) -> bool {
25504        kind == SyntaxKind::JSON_PASSING_ARG
25505    }
25506    #[inline]
25507    fn cast(syntax: SyntaxNode) -> Option<Self> {
25508        if Self::can_cast(syntax.kind()) {
25509            Some(Self { syntax })
25510        } else {
25511            None
25512        }
25513    }
25514    #[inline]
25515    fn syntax(&self) -> &SyntaxNode {
25516        &self.syntax
25517    }
25518}
25519impl AstNode for JsonPassingClause {
25520    #[inline]
25521    fn can_cast(kind: SyntaxKind) -> bool {
25522        kind == SyntaxKind::JSON_PASSING_CLAUSE
25523    }
25524    #[inline]
25525    fn cast(syntax: SyntaxNode) -> Option<Self> {
25526        if Self::can_cast(syntax.kind()) {
25527            Some(Self { syntax })
25528        } else {
25529            None
25530        }
25531    }
25532    #[inline]
25533    fn syntax(&self) -> &SyntaxNode {
25534        &self.syntax
25535    }
25536}
25537impl AstNode for JsonPathClause {
25538    #[inline]
25539    fn can_cast(kind: SyntaxKind) -> bool {
25540        kind == SyntaxKind::JSON_PATH_CLAUSE
25541    }
25542    #[inline]
25543    fn cast(syntax: SyntaxNode) -> Option<Self> {
25544        if Self::can_cast(syntax.kind()) {
25545            Some(Self { syntax })
25546        } else {
25547            None
25548        }
25549    }
25550    #[inline]
25551    fn syntax(&self) -> &SyntaxNode {
25552        &self.syntax
25553    }
25554}
25555impl AstNode for JsonQueryFn {
25556    #[inline]
25557    fn can_cast(kind: SyntaxKind) -> bool {
25558        kind == SyntaxKind::JSON_QUERY_FN
25559    }
25560    #[inline]
25561    fn cast(syntax: SyntaxNode) -> Option<Self> {
25562        if Self::can_cast(syntax.kind()) {
25563            Some(Self { syntax })
25564        } else {
25565            None
25566        }
25567    }
25568    #[inline]
25569    fn syntax(&self) -> &SyntaxNode {
25570        &self.syntax
25571    }
25572}
25573impl AstNode for JsonQuotesClause {
25574    #[inline]
25575    fn can_cast(kind: SyntaxKind) -> bool {
25576        kind == SyntaxKind::JSON_QUOTES_CLAUSE
25577    }
25578    #[inline]
25579    fn cast(syntax: SyntaxNode) -> Option<Self> {
25580        if Self::can_cast(syntax.kind()) {
25581            Some(Self { syntax })
25582        } else {
25583            None
25584        }
25585    }
25586    #[inline]
25587    fn syntax(&self) -> &SyntaxNode {
25588        &self.syntax
25589    }
25590}
25591impl AstNode for JsonReturningClause {
25592    #[inline]
25593    fn can_cast(kind: SyntaxKind) -> bool {
25594        kind == SyntaxKind::JSON_RETURNING_CLAUSE
25595    }
25596    #[inline]
25597    fn cast(syntax: SyntaxNode) -> Option<Self> {
25598        if Self::can_cast(syntax.kind()) {
25599            Some(Self { syntax })
25600        } else {
25601            None
25602        }
25603    }
25604    #[inline]
25605    fn syntax(&self) -> &SyntaxNode {
25606        &self.syntax
25607    }
25608}
25609impl AstNode for JsonScalarFn {
25610    #[inline]
25611    fn can_cast(kind: SyntaxKind) -> bool {
25612        kind == SyntaxKind::JSON_SCALAR_FN
25613    }
25614    #[inline]
25615    fn cast(syntax: SyntaxNode) -> Option<Self> {
25616        if Self::can_cast(syntax.kind()) {
25617            Some(Self { syntax })
25618        } else {
25619            None
25620        }
25621    }
25622    #[inline]
25623    fn syntax(&self) -> &SyntaxNode {
25624        &self.syntax
25625    }
25626}
25627impl AstNode for JsonSelectFormat {
25628    #[inline]
25629    fn can_cast(kind: SyntaxKind) -> bool {
25630        kind == SyntaxKind::JSON_SELECT_FORMAT
25631    }
25632    #[inline]
25633    fn cast(syntax: SyntaxNode) -> Option<Self> {
25634        if Self::can_cast(syntax.kind()) {
25635            Some(Self { syntax })
25636        } else {
25637            None
25638        }
25639    }
25640    #[inline]
25641    fn syntax(&self) -> &SyntaxNode {
25642        &self.syntax
25643    }
25644}
25645impl AstNode for JsonSerializeFn {
25646    #[inline]
25647    fn can_cast(kind: SyntaxKind) -> bool {
25648        kind == SyntaxKind::JSON_SERIALIZE_FN
25649    }
25650    #[inline]
25651    fn cast(syntax: SyntaxNode) -> Option<Self> {
25652        if Self::can_cast(syntax.kind()) {
25653            Some(Self { syntax })
25654        } else {
25655            None
25656        }
25657    }
25658    #[inline]
25659    fn syntax(&self) -> &SyntaxNode {
25660        &self.syntax
25661    }
25662}
25663impl AstNode for JsonTable {
25664    #[inline]
25665    fn can_cast(kind: SyntaxKind) -> bool {
25666        kind == SyntaxKind::JSON_TABLE
25667    }
25668    #[inline]
25669    fn cast(syntax: SyntaxNode) -> Option<Self> {
25670        if Self::can_cast(syntax.kind()) {
25671            Some(Self { syntax })
25672        } else {
25673            None
25674        }
25675    }
25676    #[inline]
25677    fn syntax(&self) -> &SyntaxNode {
25678        &self.syntax
25679    }
25680}
25681impl AstNode for JsonTableColumn {
25682    #[inline]
25683    fn can_cast(kind: SyntaxKind) -> bool {
25684        kind == SyntaxKind::JSON_TABLE_COLUMN
25685    }
25686    #[inline]
25687    fn cast(syntax: SyntaxNode) -> Option<Self> {
25688        if Self::can_cast(syntax.kind()) {
25689            Some(Self { syntax })
25690        } else {
25691            None
25692        }
25693    }
25694    #[inline]
25695    fn syntax(&self) -> &SyntaxNode {
25696        &self.syntax
25697    }
25698}
25699impl AstNode for JsonTableColumnList {
25700    #[inline]
25701    fn can_cast(kind: SyntaxKind) -> bool {
25702        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
25703    }
25704    #[inline]
25705    fn cast(syntax: SyntaxNode) -> Option<Self> {
25706        if Self::can_cast(syntax.kind()) {
25707            Some(Self { syntax })
25708        } else {
25709            None
25710        }
25711    }
25712    #[inline]
25713    fn syntax(&self) -> &SyntaxNode {
25714        &self.syntax
25715    }
25716}
25717impl AstNode for JsonValueExpr {
25718    #[inline]
25719    fn can_cast(kind: SyntaxKind) -> bool {
25720        kind == SyntaxKind::JSON_VALUE_EXPR
25721    }
25722    #[inline]
25723    fn cast(syntax: SyntaxNode) -> Option<Self> {
25724        if Self::can_cast(syntax.kind()) {
25725            Some(Self { syntax })
25726        } else {
25727            None
25728        }
25729    }
25730    #[inline]
25731    fn syntax(&self) -> &SyntaxNode {
25732        &self.syntax
25733    }
25734}
25735impl AstNode for JsonValueFn {
25736    #[inline]
25737    fn can_cast(kind: SyntaxKind) -> bool {
25738        kind == SyntaxKind::JSON_VALUE_FN
25739    }
25740    #[inline]
25741    fn cast(syntax: SyntaxNode) -> Option<Self> {
25742        if Self::can_cast(syntax.kind()) {
25743            Some(Self { syntax })
25744        } else {
25745            None
25746        }
25747    }
25748    #[inline]
25749    fn syntax(&self) -> &SyntaxNode {
25750        &self.syntax
25751    }
25752}
25753impl AstNode for JsonWrapperBehaviorClause {
25754    #[inline]
25755    fn can_cast(kind: SyntaxKind) -> bool {
25756        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
25757    }
25758    #[inline]
25759    fn cast(syntax: SyntaxNode) -> Option<Self> {
25760        if Self::can_cast(syntax.kind()) {
25761            Some(Self { syntax })
25762        } else {
25763            None
25764        }
25765    }
25766    #[inline]
25767    fn syntax(&self) -> &SyntaxNode {
25768        &self.syntax
25769    }
25770}
25771impl AstNode for LabelAndProperties {
25772    #[inline]
25773    fn can_cast(kind: SyntaxKind) -> bool {
25774        kind == SyntaxKind::LABEL_AND_PROPERTIES
25775    }
25776    #[inline]
25777    fn cast(syntax: SyntaxNode) -> Option<Self> {
25778        if Self::can_cast(syntax.kind()) {
25779            Some(Self { syntax })
25780        } else {
25781            None
25782        }
25783    }
25784    #[inline]
25785    fn syntax(&self) -> &SyntaxNode {
25786        &self.syntax
25787    }
25788}
25789impl AstNode for LabelAndPropertiesList {
25790    #[inline]
25791    fn can_cast(kind: SyntaxKind) -> bool {
25792        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
25793    }
25794    #[inline]
25795    fn cast(syntax: SyntaxNode) -> Option<Self> {
25796        if Self::can_cast(syntax.kind()) {
25797            Some(Self { syntax })
25798        } else {
25799            None
25800        }
25801    }
25802    #[inline]
25803    fn syntax(&self) -> &SyntaxNode {
25804        &self.syntax
25805    }
25806}
25807impl AstNode for LanguageFuncOption {
25808    #[inline]
25809    fn can_cast(kind: SyntaxKind) -> bool {
25810        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
25811    }
25812    #[inline]
25813    fn cast(syntax: SyntaxNode) -> Option<Self> {
25814        if Self::can_cast(syntax.kind()) {
25815            Some(Self { syntax })
25816        } else {
25817            None
25818        }
25819    }
25820    #[inline]
25821    fn syntax(&self) -> &SyntaxNode {
25822        &self.syntax
25823    }
25824}
25825impl AstNode for LeakproofFuncOption {
25826    #[inline]
25827    fn can_cast(kind: SyntaxKind) -> bool {
25828        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
25829    }
25830    #[inline]
25831    fn cast(syntax: SyntaxNode) -> Option<Self> {
25832        if Self::can_cast(syntax.kind()) {
25833            Some(Self { syntax })
25834        } else {
25835            None
25836        }
25837    }
25838    #[inline]
25839    fn syntax(&self) -> &SyntaxNode {
25840        &self.syntax
25841    }
25842}
25843impl AstNode for LikeClause {
25844    #[inline]
25845    fn can_cast(kind: SyntaxKind) -> bool {
25846        kind == SyntaxKind::LIKE_CLAUSE
25847    }
25848    #[inline]
25849    fn cast(syntax: SyntaxNode) -> Option<Self> {
25850        if Self::can_cast(syntax.kind()) {
25851            Some(Self { syntax })
25852        } else {
25853            None
25854        }
25855    }
25856    #[inline]
25857    fn syntax(&self) -> &SyntaxNode {
25858        &self.syntax
25859    }
25860}
25861impl AstNode for LikeOption {
25862    #[inline]
25863    fn can_cast(kind: SyntaxKind) -> bool {
25864        kind == SyntaxKind::LIKE_OPTION
25865    }
25866    #[inline]
25867    fn cast(syntax: SyntaxNode) -> Option<Self> {
25868        if Self::can_cast(syntax.kind()) {
25869            Some(Self { syntax })
25870        } else {
25871            None
25872        }
25873    }
25874    #[inline]
25875    fn syntax(&self) -> &SyntaxNode {
25876        &self.syntax
25877    }
25878}
25879impl AstNode for LimitClause {
25880    #[inline]
25881    fn can_cast(kind: SyntaxKind) -> bool {
25882        kind == SyntaxKind::LIMIT_CLAUSE
25883    }
25884    #[inline]
25885    fn cast(syntax: SyntaxNode) -> Option<Self> {
25886        if Self::can_cast(syntax.kind()) {
25887            Some(Self { syntax })
25888        } else {
25889            None
25890        }
25891    }
25892    #[inline]
25893    fn syntax(&self) -> &SyntaxNode {
25894        &self.syntax
25895    }
25896}
25897impl AstNode for LimitToTables {
25898    #[inline]
25899    fn can_cast(kind: SyntaxKind) -> bool {
25900        kind == SyntaxKind::LIMIT_TO_TABLES
25901    }
25902    #[inline]
25903    fn cast(syntax: SyntaxNode) -> Option<Self> {
25904        if Self::can_cast(syntax.kind()) {
25905            Some(Self { syntax })
25906        } else {
25907            None
25908        }
25909    }
25910    #[inline]
25911    fn syntax(&self) -> &SyntaxNode {
25912        &self.syntax
25913    }
25914}
25915impl AstNode for Listen {
25916    #[inline]
25917    fn can_cast(kind: SyntaxKind) -> bool {
25918        kind == SyntaxKind::LISTEN
25919    }
25920    #[inline]
25921    fn cast(syntax: SyntaxNode) -> Option<Self> {
25922        if Self::can_cast(syntax.kind()) {
25923            Some(Self { syntax })
25924        } else {
25925            None
25926        }
25927    }
25928    #[inline]
25929    fn syntax(&self) -> &SyntaxNode {
25930        &self.syntax
25931    }
25932}
25933impl AstNode for Literal {
25934    #[inline]
25935    fn can_cast(kind: SyntaxKind) -> bool {
25936        kind == SyntaxKind::LITERAL
25937    }
25938    #[inline]
25939    fn cast(syntax: SyntaxNode) -> Option<Self> {
25940        if Self::can_cast(syntax.kind()) {
25941            Some(Self { syntax })
25942        } else {
25943            None
25944        }
25945    }
25946    #[inline]
25947    fn syntax(&self) -> &SyntaxNode {
25948        &self.syntax
25949    }
25950}
25951impl AstNode for Load {
25952    #[inline]
25953    fn can_cast(kind: SyntaxKind) -> bool {
25954        kind == SyntaxKind::LOAD
25955    }
25956    #[inline]
25957    fn cast(syntax: SyntaxNode) -> Option<Self> {
25958        if Self::can_cast(syntax.kind()) {
25959            Some(Self { syntax })
25960        } else {
25961            None
25962        }
25963    }
25964    #[inline]
25965    fn syntax(&self) -> &SyntaxNode {
25966        &self.syntax
25967    }
25968}
25969impl AstNode for Lock {
25970    #[inline]
25971    fn can_cast(kind: SyntaxKind) -> bool {
25972        kind == SyntaxKind::LOCK
25973    }
25974    #[inline]
25975    fn cast(syntax: SyntaxNode) -> Option<Self> {
25976        if Self::can_cast(syntax.kind()) {
25977            Some(Self { syntax })
25978        } else {
25979            None
25980        }
25981    }
25982    #[inline]
25983    fn syntax(&self) -> &SyntaxNode {
25984        &self.syntax
25985    }
25986}
25987impl AstNode for LockingClause {
25988    #[inline]
25989    fn can_cast(kind: SyntaxKind) -> bool {
25990        kind == SyntaxKind::LOCKING_CLAUSE
25991    }
25992    #[inline]
25993    fn cast(syntax: SyntaxNode) -> Option<Self> {
25994        if Self::can_cast(syntax.kind()) {
25995            Some(Self { syntax })
25996        } else {
25997            None
25998        }
25999    }
26000    #[inline]
26001    fn syntax(&self) -> &SyntaxNode {
26002        &self.syntax
26003    }
26004}
26005impl AstNode for Lteq {
26006    #[inline]
26007    fn can_cast(kind: SyntaxKind) -> bool {
26008        kind == SyntaxKind::LTEQ
26009    }
26010    #[inline]
26011    fn cast(syntax: SyntaxNode) -> Option<Self> {
26012        if Self::can_cast(syntax.kind()) {
26013            Some(Self { syntax })
26014        } else {
26015            None
26016        }
26017    }
26018    #[inline]
26019    fn syntax(&self) -> &SyntaxNode {
26020        &self.syntax
26021    }
26022}
26023impl AstNode for MatchFull {
26024    #[inline]
26025    fn can_cast(kind: SyntaxKind) -> bool {
26026        kind == SyntaxKind::MATCH_FULL
26027    }
26028    #[inline]
26029    fn cast(syntax: SyntaxNode) -> Option<Self> {
26030        if Self::can_cast(syntax.kind()) {
26031            Some(Self { syntax })
26032        } else {
26033            None
26034        }
26035    }
26036    #[inline]
26037    fn syntax(&self) -> &SyntaxNode {
26038        &self.syntax
26039    }
26040}
26041impl AstNode for MatchPartial {
26042    #[inline]
26043    fn can_cast(kind: SyntaxKind) -> bool {
26044        kind == SyntaxKind::MATCH_PARTIAL
26045    }
26046    #[inline]
26047    fn cast(syntax: SyntaxNode) -> Option<Self> {
26048        if Self::can_cast(syntax.kind()) {
26049            Some(Self { syntax })
26050        } else {
26051            None
26052        }
26053    }
26054    #[inline]
26055    fn syntax(&self) -> &SyntaxNode {
26056        &self.syntax
26057    }
26058}
26059impl AstNode for MatchSimple {
26060    #[inline]
26061    fn can_cast(kind: SyntaxKind) -> bool {
26062        kind == SyntaxKind::MATCH_SIMPLE
26063    }
26064    #[inline]
26065    fn cast(syntax: SyntaxNode) -> Option<Self> {
26066        if Self::can_cast(syntax.kind()) {
26067            Some(Self { syntax })
26068        } else {
26069            None
26070        }
26071    }
26072    #[inline]
26073    fn syntax(&self) -> &SyntaxNode {
26074        &self.syntax
26075    }
26076}
26077impl AstNode for Materialized {
26078    #[inline]
26079    fn can_cast(kind: SyntaxKind) -> bool {
26080        kind == SyntaxKind::MATERIALIZED
26081    }
26082    #[inline]
26083    fn cast(syntax: SyntaxNode) -> Option<Self> {
26084        if Self::can_cast(syntax.kind()) {
26085            Some(Self { syntax })
26086        } else {
26087            None
26088        }
26089    }
26090    #[inline]
26091    fn syntax(&self) -> &SyntaxNode {
26092        &self.syntax
26093    }
26094}
26095impl AstNode for Merge {
26096    #[inline]
26097    fn can_cast(kind: SyntaxKind) -> bool {
26098        kind == SyntaxKind::MERGE
26099    }
26100    #[inline]
26101    fn cast(syntax: SyntaxNode) -> Option<Self> {
26102        if Self::can_cast(syntax.kind()) {
26103            Some(Self { syntax })
26104        } else {
26105            None
26106        }
26107    }
26108    #[inline]
26109    fn syntax(&self) -> &SyntaxNode {
26110        &self.syntax
26111    }
26112}
26113impl AstNode for MergeDelete {
26114    #[inline]
26115    fn can_cast(kind: SyntaxKind) -> bool {
26116        kind == SyntaxKind::MERGE_DELETE
26117    }
26118    #[inline]
26119    fn cast(syntax: SyntaxNode) -> Option<Self> {
26120        if Self::can_cast(syntax.kind()) {
26121            Some(Self { syntax })
26122        } else {
26123            None
26124        }
26125    }
26126    #[inline]
26127    fn syntax(&self) -> &SyntaxNode {
26128        &self.syntax
26129    }
26130}
26131impl AstNode for MergeDoNothing {
26132    #[inline]
26133    fn can_cast(kind: SyntaxKind) -> bool {
26134        kind == SyntaxKind::MERGE_DO_NOTHING
26135    }
26136    #[inline]
26137    fn cast(syntax: SyntaxNode) -> Option<Self> {
26138        if Self::can_cast(syntax.kind()) {
26139            Some(Self { syntax })
26140        } else {
26141            None
26142        }
26143    }
26144    #[inline]
26145    fn syntax(&self) -> &SyntaxNode {
26146        &self.syntax
26147    }
26148}
26149impl AstNode for MergeInsert {
26150    #[inline]
26151    fn can_cast(kind: SyntaxKind) -> bool {
26152        kind == SyntaxKind::MERGE_INSERT
26153    }
26154    #[inline]
26155    fn cast(syntax: SyntaxNode) -> Option<Self> {
26156        if Self::can_cast(syntax.kind()) {
26157            Some(Self { syntax })
26158        } else {
26159            None
26160        }
26161    }
26162    #[inline]
26163    fn syntax(&self) -> &SyntaxNode {
26164        &self.syntax
26165    }
26166}
26167impl AstNode for MergePartitions {
26168    #[inline]
26169    fn can_cast(kind: SyntaxKind) -> bool {
26170        kind == SyntaxKind::MERGE_PARTITIONS
26171    }
26172    #[inline]
26173    fn cast(syntax: SyntaxNode) -> Option<Self> {
26174        if Self::can_cast(syntax.kind()) {
26175            Some(Self { syntax })
26176        } else {
26177            None
26178        }
26179    }
26180    #[inline]
26181    fn syntax(&self) -> &SyntaxNode {
26182        &self.syntax
26183    }
26184}
26185impl AstNode for MergeUpdate {
26186    #[inline]
26187    fn can_cast(kind: SyntaxKind) -> bool {
26188        kind == SyntaxKind::MERGE_UPDATE
26189    }
26190    #[inline]
26191    fn cast(syntax: SyntaxNode) -> Option<Self> {
26192        if Self::can_cast(syntax.kind()) {
26193            Some(Self { syntax })
26194        } else {
26195            None
26196        }
26197    }
26198    #[inline]
26199    fn syntax(&self) -> &SyntaxNode {
26200        &self.syntax
26201    }
26202}
26203impl AstNode for MergeWhenMatched {
26204    #[inline]
26205    fn can_cast(kind: SyntaxKind) -> bool {
26206        kind == SyntaxKind::MERGE_WHEN_MATCHED
26207    }
26208    #[inline]
26209    fn cast(syntax: SyntaxNode) -> Option<Self> {
26210        if Self::can_cast(syntax.kind()) {
26211            Some(Self { syntax })
26212        } else {
26213            None
26214        }
26215    }
26216    #[inline]
26217    fn syntax(&self) -> &SyntaxNode {
26218        &self.syntax
26219    }
26220}
26221impl AstNode for MergeWhenNotMatchedSource {
26222    #[inline]
26223    fn can_cast(kind: SyntaxKind) -> bool {
26224        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
26225    }
26226    #[inline]
26227    fn cast(syntax: SyntaxNode) -> Option<Self> {
26228        if Self::can_cast(syntax.kind()) {
26229            Some(Self { syntax })
26230        } else {
26231            None
26232        }
26233    }
26234    #[inline]
26235    fn syntax(&self) -> &SyntaxNode {
26236        &self.syntax
26237    }
26238}
26239impl AstNode for MergeWhenNotMatchedTarget {
26240    #[inline]
26241    fn can_cast(kind: SyntaxKind) -> bool {
26242        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
26243    }
26244    #[inline]
26245    fn cast(syntax: SyntaxNode) -> Option<Self> {
26246        if Self::can_cast(syntax.kind()) {
26247            Some(Self { syntax })
26248        } else {
26249            None
26250        }
26251    }
26252    #[inline]
26253    fn syntax(&self) -> &SyntaxNode {
26254        &self.syntax
26255    }
26256}
26257impl AstNode for Move {
26258    #[inline]
26259    fn can_cast(kind: SyntaxKind) -> bool {
26260        kind == SyntaxKind::MOVE
26261    }
26262    #[inline]
26263    fn cast(syntax: SyntaxNode) -> Option<Self> {
26264        if Self::can_cast(syntax.kind()) {
26265            Some(Self { syntax })
26266        } else {
26267            None
26268        }
26269    }
26270    #[inline]
26271    fn syntax(&self) -> &SyntaxNode {
26272        &self.syntax
26273    }
26274}
26275impl AstNode for Name {
26276    #[inline]
26277    fn can_cast(kind: SyntaxKind) -> bool {
26278        kind == SyntaxKind::NAME
26279    }
26280    #[inline]
26281    fn cast(syntax: SyntaxNode) -> Option<Self> {
26282        if Self::can_cast(syntax.kind()) {
26283            Some(Self { syntax })
26284        } else {
26285            None
26286        }
26287    }
26288    #[inline]
26289    fn syntax(&self) -> &SyntaxNode {
26290        &self.syntax
26291    }
26292}
26293impl AstNode for NameRef {
26294    #[inline]
26295    fn can_cast(kind: SyntaxKind) -> bool {
26296        kind == SyntaxKind::NAME_REF
26297    }
26298    #[inline]
26299    fn cast(syntax: SyntaxNode) -> Option<Self> {
26300        if Self::can_cast(syntax.kind()) {
26301            Some(Self { syntax })
26302        } else {
26303            None
26304        }
26305    }
26306    #[inline]
26307    fn syntax(&self) -> &SyntaxNode {
26308        &self.syntax
26309    }
26310}
26311impl AstNode for NamedArg {
26312    #[inline]
26313    fn can_cast(kind: SyntaxKind) -> bool {
26314        kind == SyntaxKind::NAMED_ARG
26315    }
26316    #[inline]
26317    fn cast(syntax: SyntaxNode) -> Option<Self> {
26318        if Self::can_cast(syntax.kind()) {
26319            Some(Self { syntax })
26320        } else {
26321            None
26322        }
26323    }
26324    #[inline]
26325    fn syntax(&self) -> &SyntaxNode {
26326        &self.syntax
26327    }
26328}
26329impl AstNode for Neq {
26330    #[inline]
26331    fn can_cast(kind: SyntaxKind) -> bool {
26332        kind == SyntaxKind::NEQ
26333    }
26334    #[inline]
26335    fn cast(syntax: SyntaxNode) -> Option<Self> {
26336        if Self::can_cast(syntax.kind()) {
26337            Some(Self { syntax })
26338        } else {
26339            None
26340        }
26341    }
26342    #[inline]
26343    fn syntax(&self) -> &SyntaxNode {
26344        &self.syntax
26345    }
26346}
26347impl AstNode for Neqb {
26348    #[inline]
26349    fn can_cast(kind: SyntaxKind) -> bool {
26350        kind == SyntaxKind::NEQB
26351    }
26352    #[inline]
26353    fn cast(syntax: SyntaxNode) -> Option<Self> {
26354        if Self::can_cast(syntax.kind()) {
26355            Some(Self { syntax })
26356        } else {
26357            None
26358        }
26359    }
26360    #[inline]
26361    fn syntax(&self) -> &SyntaxNode {
26362        &self.syntax
26363    }
26364}
26365impl AstNode for NoAction {
26366    #[inline]
26367    fn can_cast(kind: SyntaxKind) -> bool {
26368        kind == SyntaxKind::NO_ACTION
26369    }
26370    #[inline]
26371    fn cast(syntax: SyntaxNode) -> Option<Self> {
26372        if Self::can_cast(syntax.kind()) {
26373            Some(Self { syntax })
26374        } else {
26375            None
26376        }
26377    }
26378    #[inline]
26379    fn syntax(&self) -> &SyntaxNode {
26380        &self.syntax
26381    }
26382}
26383impl AstNode for NoDependsOnExtension {
26384    #[inline]
26385    fn can_cast(kind: SyntaxKind) -> bool {
26386        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
26387    }
26388    #[inline]
26389    fn cast(syntax: SyntaxNode) -> Option<Self> {
26390        if Self::can_cast(syntax.kind()) {
26391            Some(Self { syntax })
26392        } else {
26393            None
26394        }
26395    }
26396    #[inline]
26397    fn syntax(&self) -> &SyntaxNode {
26398        &self.syntax
26399    }
26400}
26401impl AstNode for NoForceRls {
26402    #[inline]
26403    fn can_cast(kind: SyntaxKind) -> bool {
26404        kind == SyntaxKind::NO_FORCE_RLS
26405    }
26406    #[inline]
26407    fn cast(syntax: SyntaxNode) -> Option<Self> {
26408        if Self::can_cast(syntax.kind()) {
26409            Some(Self { syntax })
26410        } else {
26411            None
26412        }
26413    }
26414    #[inline]
26415    fn syntax(&self) -> &SyntaxNode {
26416        &self.syntax
26417    }
26418}
26419impl AstNode for NoInherit {
26420    #[inline]
26421    fn can_cast(kind: SyntaxKind) -> bool {
26422        kind == SyntaxKind::NO_INHERIT
26423    }
26424    #[inline]
26425    fn cast(syntax: SyntaxNode) -> Option<Self> {
26426        if Self::can_cast(syntax.kind()) {
26427            Some(Self { syntax })
26428        } else {
26429            None
26430        }
26431    }
26432    #[inline]
26433    fn syntax(&self) -> &SyntaxNode {
26434        &self.syntax
26435    }
26436}
26437impl AstNode for NoInheritTable {
26438    #[inline]
26439    fn can_cast(kind: SyntaxKind) -> bool {
26440        kind == SyntaxKind::NO_INHERIT_TABLE
26441    }
26442    #[inline]
26443    fn cast(syntax: SyntaxNode) -> Option<Self> {
26444        if Self::can_cast(syntax.kind()) {
26445            Some(Self { syntax })
26446        } else {
26447            None
26448        }
26449    }
26450    #[inline]
26451    fn syntax(&self) -> &SyntaxNode {
26452        &self.syntax
26453    }
26454}
26455impl AstNode for NoProperties {
26456    #[inline]
26457    fn can_cast(kind: SyntaxKind) -> bool {
26458        kind == SyntaxKind::NO_PROPERTIES
26459    }
26460    #[inline]
26461    fn cast(syntax: SyntaxNode) -> Option<Self> {
26462        if Self::can_cast(syntax.kind()) {
26463            Some(Self { syntax })
26464        } else {
26465            None
26466        }
26467    }
26468    #[inline]
26469    fn syntax(&self) -> &SyntaxNode {
26470        &self.syntax
26471    }
26472}
26473impl AstNode for NonStandardParam {
26474    #[inline]
26475    fn can_cast(kind: SyntaxKind) -> bool {
26476        kind == SyntaxKind::NON_STANDARD_PARAM
26477    }
26478    #[inline]
26479    fn cast(syntax: SyntaxNode) -> Option<Self> {
26480        if Self::can_cast(syntax.kind()) {
26481            Some(Self { syntax })
26482        } else {
26483            None
26484        }
26485    }
26486    #[inline]
26487    fn syntax(&self) -> &SyntaxNode {
26488        &self.syntax
26489    }
26490}
26491impl AstNode for NotDeferrable {
26492    #[inline]
26493    fn can_cast(kind: SyntaxKind) -> bool {
26494        kind == SyntaxKind::NOT_DEFERRABLE
26495    }
26496    #[inline]
26497    fn cast(syntax: SyntaxNode) -> Option<Self> {
26498        if Self::can_cast(syntax.kind()) {
26499            Some(Self { syntax })
26500        } else {
26501            None
26502        }
26503    }
26504    #[inline]
26505    fn syntax(&self) -> &SyntaxNode {
26506        &self.syntax
26507    }
26508}
26509impl AstNode for NotDeferrableConstraintOption {
26510    #[inline]
26511    fn can_cast(kind: SyntaxKind) -> bool {
26512        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
26513    }
26514    #[inline]
26515    fn cast(syntax: SyntaxNode) -> Option<Self> {
26516        if Self::can_cast(syntax.kind()) {
26517            Some(Self { syntax })
26518        } else {
26519            None
26520        }
26521    }
26522    #[inline]
26523    fn syntax(&self) -> &SyntaxNode {
26524        &self.syntax
26525    }
26526}
26527impl AstNode for NotEnforced {
26528    #[inline]
26529    fn can_cast(kind: SyntaxKind) -> bool {
26530        kind == SyntaxKind::NOT_ENFORCED
26531    }
26532    #[inline]
26533    fn cast(syntax: SyntaxNode) -> Option<Self> {
26534        if Self::can_cast(syntax.kind()) {
26535            Some(Self { syntax })
26536        } else {
26537            None
26538        }
26539    }
26540    #[inline]
26541    fn syntax(&self) -> &SyntaxNode {
26542        &self.syntax
26543    }
26544}
26545impl AstNode for NotIlike {
26546    #[inline]
26547    fn can_cast(kind: SyntaxKind) -> bool {
26548        kind == SyntaxKind::NOT_ILIKE
26549    }
26550    #[inline]
26551    fn cast(syntax: SyntaxNode) -> Option<Self> {
26552        if Self::can_cast(syntax.kind()) {
26553            Some(Self { syntax })
26554        } else {
26555            None
26556        }
26557    }
26558    #[inline]
26559    fn syntax(&self) -> &SyntaxNode {
26560        &self.syntax
26561    }
26562}
26563impl AstNode for NotIn {
26564    #[inline]
26565    fn can_cast(kind: SyntaxKind) -> bool {
26566        kind == SyntaxKind::NOT_IN
26567    }
26568    #[inline]
26569    fn cast(syntax: SyntaxNode) -> Option<Self> {
26570        if Self::can_cast(syntax.kind()) {
26571            Some(Self { syntax })
26572        } else {
26573            None
26574        }
26575    }
26576    #[inline]
26577    fn syntax(&self) -> &SyntaxNode {
26578        &self.syntax
26579    }
26580}
26581impl AstNode for NotLike {
26582    #[inline]
26583    fn can_cast(kind: SyntaxKind) -> bool {
26584        kind == SyntaxKind::NOT_LIKE
26585    }
26586    #[inline]
26587    fn cast(syntax: SyntaxNode) -> Option<Self> {
26588        if Self::can_cast(syntax.kind()) {
26589            Some(Self { syntax })
26590        } else {
26591            None
26592        }
26593    }
26594    #[inline]
26595    fn syntax(&self) -> &SyntaxNode {
26596        &self.syntax
26597    }
26598}
26599impl AstNode for NotMaterialized {
26600    #[inline]
26601    fn can_cast(kind: SyntaxKind) -> bool {
26602        kind == SyntaxKind::NOT_MATERIALIZED
26603    }
26604    #[inline]
26605    fn cast(syntax: SyntaxNode) -> Option<Self> {
26606        if Self::can_cast(syntax.kind()) {
26607            Some(Self { syntax })
26608        } else {
26609            None
26610        }
26611    }
26612    #[inline]
26613    fn syntax(&self) -> &SyntaxNode {
26614        &self.syntax
26615    }
26616}
26617impl AstNode for NotNullConstraint {
26618    #[inline]
26619    fn can_cast(kind: SyntaxKind) -> bool {
26620        kind == SyntaxKind::NOT_NULL_CONSTRAINT
26621    }
26622    #[inline]
26623    fn cast(syntax: SyntaxNode) -> Option<Self> {
26624        if Self::can_cast(syntax.kind()) {
26625            Some(Self { syntax })
26626        } else {
26627            None
26628        }
26629    }
26630    #[inline]
26631    fn syntax(&self) -> &SyntaxNode {
26632        &self.syntax
26633    }
26634}
26635impl AstNode for NotOf {
26636    #[inline]
26637    fn can_cast(kind: SyntaxKind) -> bool {
26638        kind == SyntaxKind::NOT_OF
26639    }
26640    #[inline]
26641    fn cast(syntax: SyntaxNode) -> Option<Self> {
26642        if Self::can_cast(syntax.kind()) {
26643            Some(Self { syntax })
26644        } else {
26645            None
26646        }
26647    }
26648    #[inline]
26649    fn syntax(&self) -> &SyntaxNode {
26650        &self.syntax
26651    }
26652}
26653impl AstNode for NotSimilarTo {
26654    #[inline]
26655    fn can_cast(kind: SyntaxKind) -> bool {
26656        kind == SyntaxKind::NOT_SIMILAR_TO
26657    }
26658    #[inline]
26659    fn cast(syntax: SyntaxNode) -> Option<Self> {
26660        if Self::can_cast(syntax.kind()) {
26661            Some(Self { syntax })
26662        } else {
26663            None
26664        }
26665    }
26666    #[inline]
26667    fn syntax(&self) -> &SyntaxNode {
26668        &self.syntax
26669    }
26670}
26671impl AstNode for NotValid {
26672    #[inline]
26673    fn can_cast(kind: SyntaxKind) -> bool {
26674        kind == SyntaxKind::NOT_VALID
26675    }
26676    #[inline]
26677    fn cast(syntax: SyntaxNode) -> Option<Self> {
26678        if Self::can_cast(syntax.kind()) {
26679            Some(Self { syntax })
26680        } else {
26681            None
26682        }
26683    }
26684    #[inline]
26685    fn syntax(&self) -> &SyntaxNode {
26686        &self.syntax
26687    }
26688}
26689impl AstNode for Notify {
26690    #[inline]
26691    fn can_cast(kind: SyntaxKind) -> bool {
26692        kind == SyntaxKind::NOTIFY
26693    }
26694    #[inline]
26695    fn cast(syntax: SyntaxNode) -> Option<Self> {
26696        if Self::can_cast(syntax.kind()) {
26697            Some(Self { syntax })
26698        } else {
26699            None
26700        }
26701    }
26702    #[inline]
26703    fn syntax(&self) -> &SyntaxNode {
26704        &self.syntax
26705    }
26706}
26707impl AstNode for NullConstraint {
26708    #[inline]
26709    fn can_cast(kind: SyntaxKind) -> bool {
26710        kind == SyntaxKind::NULL_CONSTRAINT
26711    }
26712    #[inline]
26713    fn cast(syntax: SyntaxNode) -> Option<Self> {
26714        if Self::can_cast(syntax.kind()) {
26715            Some(Self { syntax })
26716        } else {
26717            None
26718        }
26719    }
26720    #[inline]
26721    fn syntax(&self) -> &SyntaxNode {
26722        &self.syntax
26723    }
26724}
26725impl AstNode for NullsDistinct {
26726    #[inline]
26727    fn can_cast(kind: SyntaxKind) -> bool {
26728        kind == SyntaxKind::NULLS_DISTINCT
26729    }
26730    #[inline]
26731    fn cast(syntax: SyntaxNode) -> Option<Self> {
26732        if Self::can_cast(syntax.kind()) {
26733            Some(Self { syntax })
26734        } else {
26735            None
26736        }
26737    }
26738    #[inline]
26739    fn syntax(&self) -> &SyntaxNode {
26740        &self.syntax
26741    }
26742}
26743impl AstNode for NullsFirst {
26744    #[inline]
26745    fn can_cast(kind: SyntaxKind) -> bool {
26746        kind == SyntaxKind::NULLS_FIRST
26747    }
26748    #[inline]
26749    fn cast(syntax: SyntaxNode) -> Option<Self> {
26750        if Self::can_cast(syntax.kind()) {
26751            Some(Self { syntax })
26752        } else {
26753            None
26754        }
26755    }
26756    #[inline]
26757    fn syntax(&self) -> &SyntaxNode {
26758        &self.syntax
26759    }
26760}
26761impl AstNode for NullsLast {
26762    #[inline]
26763    fn can_cast(kind: SyntaxKind) -> bool {
26764        kind == SyntaxKind::NULLS_LAST
26765    }
26766    #[inline]
26767    fn cast(syntax: SyntaxNode) -> Option<Self> {
26768        if Self::can_cast(syntax.kind()) {
26769            Some(Self { syntax })
26770        } else {
26771            None
26772        }
26773    }
26774    #[inline]
26775    fn syntax(&self) -> &SyntaxNode {
26776        &self.syntax
26777    }
26778}
26779impl AstNode for NullsNotDistinct {
26780    #[inline]
26781    fn can_cast(kind: SyntaxKind) -> bool {
26782        kind == SyntaxKind::NULLS_NOT_DISTINCT
26783    }
26784    #[inline]
26785    fn cast(syntax: SyntaxNode) -> Option<Self> {
26786        if Self::can_cast(syntax.kind()) {
26787            Some(Self { syntax })
26788        } else {
26789            None
26790        }
26791    }
26792    #[inline]
26793    fn syntax(&self) -> &SyntaxNode {
26794        &self.syntax
26795    }
26796}
26797impl AstNode for OfType {
26798    #[inline]
26799    fn can_cast(kind: SyntaxKind) -> bool {
26800        kind == SyntaxKind::OF_TYPE
26801    }
26802    #[inline]
26803    fn cast(syntax: SyntaxNode) -> Option<Self> {
26804        if Self::can_cast(syntax.kind()) {
26805            Some(Self { syntax })
26806        } else {
26807            None
26808        }
26809    }
26810    #[inline]
26811    fn syntax(&self) -> &SyntaxNode {
26812        &self.syntax
26813    }
26814}
26815impl AstNode for OffsetClause {
26816    #[inline]
26817    fn can_cast(kind: SyntaxKind) -> bool {
26818        kind == SyntaxKind::OFFSET_CLAUSE
26819    }
26820    #[inline]
26821    fn cast(syntax: SyntaxNode) -> Option<Self> {
26822        if Self::can_cast(syntax.kind()) {
26823            Some(Self { syntax })
26824        } else {
26825            None
26826        }
26827    }
26828    #[inline]
26829    fn syntax(&self) -> &SyntaxNode {
26830        &self.syntax
26831    }
26832}
26833impl AstNode for OnClause {
26834    #[inline]
26835    fn can_cast(kind: SyntaxKind) -> bool {
26836        kind == SyntaxKind::ON_CLAUSE
26837    }
26838    #[inline]
26839    fn cast(syntax: SyntaxNode) -> Option<Self> {
26840        if Self::can_cast(syntax.kind()) {
26841            Some(Self { syntax })
26842        } else {
26843            None
26844        }
26845    }
26846    #[inline]
26847    fn syntax(&self) -> &SyntaxNode {
26848        &self.syntax
26849    }
26850}
26851impl AstNode for OnCommit {
26852    #[inline]
26853    fn can_cast(kind: SyntaxKind) -> bool {
26854        kind == SyntaxKind::ON_COMMIT
26855    }
26856    #[inline]
26857    fn cast(syntax: SyntaxNode) -> Option<Self> {
26858        if Self::can_cast(syntax.kind()) {
26859            Some(Self { syntax })
26860        } else {
26861            None
26862        }
26863    }
26864    #[inline]
26865    fn syntax(&self) -> &SyntaxNode {
26866        &self.syntax
26867    }
26868}
26869impl AstNode for OnConflictClause {
26870    #[inline]
26871    fn can_cast(kind: SyntaxKind) -> bool {
26872        kind == SyntaxKind::ON_CONFLICT_CLAUSE
26873    }
26874    #[inline]
26875    fn cast(syntax: SyntaxNode) -> Option<Self> {
26876        if Self::can_cast(syntax.kind()) {
26877            Some(Self { syntax })
26878        } else {
26879            None
26880        }
26881    }
26882    #[inline]
26883    fn syntax(&self) -> &SyntaxNode {
26884        &self.syntax
26885    }
26886}
26887impl AstNode for OnDeleteAction {
26888    #[inline]
26889    fn can_cast(kind: SyntaxKind) -> bool {
26890        kind == SyntaxKind::ON_DELETE_ACTION
26891    }
26892    #[inline]
26893    fn cast(syntax: SyntaxNode) -> Option<Self> {
26894        if Self::can_cast(syntax.kind()) {
26895            Some(Self { syntax })
26896        } else {
26897            None
26898        }
26899    }
26900    #[inline]
26901    fn syntax(&self) -> &SyntaxNode {
26902        &self.syntax
26903    }
26904}
26905impl AstNode for OnTable {
26906    #[inline]
26907    fn can_cast(kind: SyntaxKind) -> bool {
26908        kind == SyntaxKind::ON_TABLE
26909    }
26910    #[inline]
26911    fn cast(syntax: SyntaxNode) -> Option<Self> {
26912        if Self::can_cast(syntax.kind()) {
26913            Some(Self { syntax })
26914        } else {
26915            None
26916        }
26917    }
26918    #[inline]
26919    fn syntax(&self) -> &SyntaxNode {
26920        &self.syntax
26921    }
26922}
26923impl AstNode for OnUpdateAction {
26924    #[inline]
26925    fn can_cast(kind: SyntaxKind) -> bool {
26926        kind == SyntaxKind::ON_UPDATE_ACTION
26927    }
26928    #[inline]
26929    fn cast(syntax: SyntaxNode) -> Option<Self> {
26930        if Self::can_cast(syntax.kind()) {
26931            Some(Self { syntax })
26932        } else {
26933            None
26934        }
26935    }
26936    #[inline]
26937    fn syntax(&self) -> &SyntaxNode {
26938        &self.syntax
26939    }
26940}
26941impl AstNode for Op {
26942    #[inline]
26943    fn can_cast(kind: SyntaxKind) -> bool {
26944        kind == SyntaxKind::OP
26945    }
26946    #[inline]
26947    fn cast(syntax: SyntaxNode) -> Option<Self> {
26948        if Self::can_cast(syntax.kind()) {
26949            Some(Self { syntax })
26950        } else {
26951            None
26952        }
26953    }
26954    #[inline]
26955    fn syntax(&self) -> &SyntaxNode {
26956        &self.syntax
26957    }
26958}
26959impl AstNode for OpClassOption {
26960    #[inline]
26961    fn can_cast(kind: SyntaxKind) -> bool {
26962        kind == SyntaxKind::OP_CLASS_OPTION
26963    }
26964    #[inline]
26965    fn cast(syntax: SyntaxNode) -> Option<Self> {
26966        if Self::can_cast(syntax.kind()) {
26967            Some(Self { syntax })
26968        } else {
26969            None
26970        }
26971    }
26972    #[inline]
26973    fn syntax(&self) -> &SyntaxNode {
26974        &self.syntax
26975    }
26976}
26977impl AstNode for OpSig {
26978    #[inline]
26979    fn can_cast(kind: SyntaxKind) -> bool {
26980        kind == SyntaxKind::OP_SIG
26981    }
26982    #[inline]
26983    fn cast(syntax: SyntaxNode) -> Option<Self> {
26984        if Self::can_cast(syntax.kind()) {
26985            Some(Self { syntax })
26986        } else {
26987            None
26988        }
26989    }
26990    #[inline]
26991    fn syntax(&self) -> &SyntaxNode {
26992        &self.syntax
26993    }
26994}
26995impl AstNode for OpSigList {
26996    #[inline]
26997    fn can_cast(kind: SyntaxKind) -> bool {
26998        kind == SyntaxKind::OP_SIG_LIST
26999    }
27000    #[inline]
27001    fn cast(syntax: SyntaxNode) -> Option<Self> {
27002        if Self::can_cast(syntax.kind()) {
27003            Some(Self { syntax })
27004        } else {
27005            None
27006        }
27007    }
27008    #[inline]
27009    fn syntax(&self) -> &SyntaxNode {
27010        &self.syntax
27011    }
27012}
27013impl AstNode for OperatorCall {
27014    #[inline]
27015    fn can_cast(kind: SyntaxKind) -> bool {
27016        kind == SyntaxKind::OPERATOR_CALL
27017    }
27018    #[inline]
27019    fn cast(syntax: SyntaxNode) -> Option<Self> {
27020        if Self::can_cast(syntax.kind()) {
27021            Some(Self { syntax })
27022        } else {
27023            None
27024        }
27025    }
27026    #[inline]
27027    fn syntax(&self) -> &SyntaxNode {
27028        &self.syntax
27029    }
27030}
27031impl AstNode for OperatorClassOptionList {
27032    #[inline]
27033    fn can_cast(kind: SyntaxKind) -> bool {
27034        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27035    }
27036    #[inline]
27037    fn cast(syntax: SyntaxNode) -> Option<Self> {
27038        if Self::can_cast(syntax.kind()) {
27039            Some(Self { syntax })
27040        } else {
27041            None
27042        }
27043    }
27044    #[inline]
27045    fn syntax(&self) -> &SyntaxNode {
27046        &self.syntax
27047    }
27048}
27049impl AstNode for OptionItem {
27050    #[inline]
27051    fn can_cast(kind: SyntaxKind) -> bool {
27052        kind == SyntaxKind::OPTION_ITEM
27053    }
27054    #[inline]
27055    fn cast(syntax: SyntaxNode) -> Option<Self> {
27056        if Self::can_cast(syntax.kind()) {
27057            Some(Self { syntax })
27058        } else {
27059            None
27060        }
27061    }
27062    #[inline]
27063    fn syntax(&self) -> &SyntaxNode {
27064        &self.syntax
27065    }
27066}
27067impl AstNode for OptionItemList {
27068    #[inline]
27069    fn can_cast(kind: SyntaxKind) -> bool {
27070        kind == SyntaxKind::OPTION_ITEM_LIST
27071    }
27072    #[inline]
27073    fn cast(syntax: SyntaxNode) -> Option<Self> {
27074        if Self::can_cast(syntax.kind()) {
27075            Some(Self { syntax })
27076        } else {
27077            None
27078        }
27079    }
27080    #[inline]
27081    fn syntax(&self) -> &SyntaxNode {
27082        &self.syntax
27083    }
27084}
27085impl AstNode for OrReplace {
27086    #[inline]
27087    fn can_cast(kind: SyntaxKind) -> bool {
27088        kind == SyntaxKind::OR_REPLACE
27089    }
27090    #[inline]
27091    fn cast(syntax: SyntaxNode) -> Option<Self> {
27092        if Self::can_cast(syntax.kind()) {
27093            Some(Self { syntax })
27094        } else {
27095            None
27096        }
27097    }
27098    #[inline]
27099    fn syntax(&self) -> &SyntaxNode {
27100        &self.syntax
27101    }
27102}
27103impl AstNode for OrderByClause {
27104    #[inline]
27105    fn can_cast(kind: SyntaxKind) -> bool {
27106        kind == SyntaxKind::ORDER_BY_CLAUSE
27107    }
27108    #[inline]
27109    fn cast(syntax: SyntaxNode) -> Option<Self> {
27110        if Self::can_cast(syntax.kind()) {
27111            Some(Self { syntax })
27112        } else {
27113            None
27114        }
27115    }
27116    #[inline]
27117    fn syntax(&self) -> &SyntaxNode {
27118        &self.syntax
27119    }
27120}
27121impl AstNode for OverClause {
27122    #[inline]
27123    fn can_cast(kind: SyntaxKind) -> bool {
27124        kind == SyntaxKind::OVER_CLAUSE
27125    }
27126    #[inline]
27127    fn cast(syntax: SyntaxNode) -> Option<Self> {
27128        if Self::can_cast(syntax.kind()) {
27129            Some(Self { syntax })
27130        } else {
27131            None
27132        }
27133    }
27134    #[inline]
27135    fn syntax(&self) -> &SyntaxNode {
27136        &self.syntax
27137    }
27138}
27139impl AstNode for OverlayFn {
27140    #[inline]
27141    fn can_cast(kind: SyntaxKind) -> bool {
27142        kind == SyntaxKind::OVERLAY_FN
27143    }
27144    #[inline]
27145    fn cast(syntax: SyntaxNode) -> Option<Self> {
27146        if Self::can_cast(syntax.kind()) {
27147            Some(Self { syntax })
27148        } else {
27149            None
27150        }
27151    }
27152    #[inline]
27153    fn syntax(&self) -> &SyntaxNode {
27154        &self.syntax
27155    }
27156}
27157impl AstNode for OwnedByRoles {
27158    #[inline]
27159    fn can_cast(kind: SyntaxKind) -> bool {
27160        kind == SyntaxKind::OWNED_BY_ROLES
27161    }
27162    #[inline]
27163    fn cast(syntax: SyntaxNode) -> Option<Self> {
27164        if Self::can_cast(syntax.kind()) {
27165            Some(Self { syntax })
27166        } else {
27167            None
27168        }
27169    }
27170    #[inline]
27171    fn syntax(&self) -> &SyntaxNode {
27172        &self.syntax
27173    }
27174}
27175impl AstNode for OwnerTo {
27176    #[inline]
27177    fn can_cast(kind: SyntaxKind) -> bool {
27178        kind == SyntaxKind::OWNER_TO
27179    }
27180    #[inline]
27181    fn cast(syntax: SyntaxNode) -> Option<Self> {
27182        if Self::can_cast(syntax.kind()) {
27183            Some(Self { syntax })
27184        } else {
27185            None
27186        }
27187    }
27188    #[inline]
27189    fn syntax(&self) -> &SyntaxNode {
27190        &self.syntax
27191    }
27192}
27193impl AstNode for ParallelFuncOption {
27194    #[inline]
27195    fn can_cast(kind: SyntaxKind) -> bool {
27196        kind == SyntaxKind::PARALLEL_FUNC_OPTION
27197    }
27198    #[inline]
27199    fn cast(syntax: SyntaxNode) -> Option<Self> {
27200        if Self::can_cast(syntax.kind()) {
27201            Some(Self { syntax })
27202        } else {
27203            None
27204        }
27205    }
27206    #[inline]
27207    fn syntax(&self) -> &SyntaxNode {
27208        &self.syntax
27209    }
27210}
27211impl AstNode for Param {
27212    #[inline]
27213    fn can_cast(kind: SyntaxKind) -> bool {
27214        kind == SyntaxKind::PARAM
27215    }
27216    #[inline]
27217    fn cast(syntax: SyntaxNode) -> Option<Self> {
27218        if Self::can_cast(syntax.kind()) {
27219            Some(Self { syntax })
27220        } else {
27221            None
27222        }
27223    }
27224    #[inline]
27225    fn syntax(&self) -> &SyntaxNode {
27226        &self.syntax
27227    }
27228}
27229impl AstNode for ParamDefault {
27230    #[inline]
27231    fn can_cast(kind: SyntaxKind) -> bool {
27232        kind == SyntaxKind::PARAM_DEFAULT
27233    }
27234    #[inline]
27235    fn cast(syntax: SyntaxNode) -> Option<Self> {
27236        if Self::can_cast(syntax.kind()) {
27237            Some(Self { syntax })
27238        } else {
27239            None
27240        }
27241    }
27242    #[inline]
27243    fn syntax(&self) -> &SyntaxNode {
27244        &self.syntax
27245    }
27246}
27247impl AstNode for ParamIn {
27248    #[inline]
27249    fn can_cast(kind: SyntaxKind) -> bool {
27250        kind == SyntaxKind::PARAM_IN
27251    }
27252    #[inline]
27253    fn cast(syntax: SyntaxNode) -> Option<Self> {
27254        if Self::can_cast(syntax.kind()) {
27255            Some(Self { syntax })
27256        } else {
27257            None
27258        }
27259    }
27260    #[inline]
27261    fn syntax(&self) -> &SyntaxNode {
27262        &self.syntax
27263    }
27264}
27265impl AstNode for ParamInOut {
27266    #[inline]
27267    fn can_cast(kind: SyntaxKind) -> bool {
27268        kind == SyntaxKind::PARAM_IN_OUT
27269    }
27270    #[inline]
27271    fn cast(syntax: SyntaxNode) -> Option<Self> {
27272        if Self::can_cast(syntax.kind()) {
27273            Some(Self { syntax })
27274        } else {
27275            None
27276        }
27277    }
27278    #[inline]
27279    fn syntax(&self) -> &SyntaxNode {
27280        &self.syntax
27281    }
27282}
27283impl AstNode for ParamList {
27284    #[inline]
27285    fn can_cast(kind: SyntaxKind) -> bool {
27286        kind == SyntaxKind::PARAM_LIST
27287    }
27288    #[inline]
27289    fn cast(syntax: SyntaxNode) -> Option<Self> {
27290        if Self::can_cast(syntax.kind()) {
27291            Some(Self { syntax })
27292        } else {
27293            None
27294        }
27295    }
27296    #[inline]
27297    fn syntax(&self) -> &SyntaxNode {
27298        &self.syntax
27299    }
27300}
27301impl AstNode for ParamOut {
27302    #[inline]
27303    fn can_cast(kind: SyntaxKind) -> bool {
27304        kind == SyntaxKind::PARAM_OUT
27305    }
27306    #[inline]
27307    fn cast(syntax: SyntaxNode) -> Option<Self> {
27308        if Self::can_cast(syntax.kind()) {
27309            Some(Self { syntax })
27310        } else {
27311            None
27312        }
27313    }
27314    #[inline]
27315    fn syntax(&self) -> &SyntaxNode {
27316        &self.syntax
27317    }
27318}
27319impl AstNode for ParamVariadic {
27320    #[inline]
27321    fn can_cast(kind: SyntaxKind) -> bool {
27322        kind == SyntaxKind::PARAM_VARIADIC
27323    }
27324    #[inline]
27325    fn cast(syntax: SyntaxNode) -> Option<Self> {
27326        if Self::can_cast(syntax.kind()) {
27327            Some(Self { syntax })
27328        } else {
27329            None
27330        }
27331    }
27332    #[inline]
27333    fn syntax(&self) -> &SyntaxNode {
27334        &self.syntax
27335    }
27336}
27337impl AstNode for ParenExpr {
27338    #[inline]
27339    fn can_cast(kind: SyntaxKind) -> bool {
27340        kind == SyntaxKind::PAREN_EXPR
27341    }
27342    #[inline]
27343    fn cast(syntax: SyntaxNode) -> Option<Self> {
27344        if Self::can_cast(syntax.kind()) {
27345            Some(Self { syntax })
27346        } else {
27347            None
27348        }
27349    }
27350    #[inline]
27351    fn syntax(&self) -> &SyntaxNode {
27352        &self.syntax
27353    }
27354}
27355impl AstNode for ParenGraphPattern {
27356    #[inline]
27357    fn can_cast(kind: SyntaxKind) -> bool {
27358        kind == SyntaxKind::PAREN_GRAPH_PATTERN
27359    }
27360    #[inline]
27361    fn cast(syntax: SyntaxNode) -> Option<Self> {
27362        if Self::can_cast(syntax.kind()) {
27363            Some(Self { syntax })
27364        } else {
27365            None
27366        }
27367    }
27368    #[inline]
27369    fn syntax(&self) -> &SyntaxNode {
27370        &self.syntax
27371    }
27372}
27373impl AstNode for ParenSelect {
27374    #[inline]
27375    fn can_cast(kind: SyntaxKind) -> bool {
27376        kind == SyntaxKind::PAREN_SELECT
27377    }
27378    #[inline]
27379    fn cast(syntax: SyntaxNode) -> Option<Self> {
27380        if Self::can_cast(syntax.kind()) {
27381            Some(Self { syntax })
27382        } else {
27383            None
27384        }
27385    }
27386    #[inline]
27387    fn syntax(&self) -> &SyntaxNode {
27388        &self.syntax
27389    }
27390}
27391impl AstNode for Partition {
27392    #[inline]
27393    fn can_cast(kind: SyntaxKind) -> bool {
27394        kind == SyntaxKind::PARTITION
27395    }
27396    #[inline]
27397    fn cast(syntax: SyntaxNode) -> Option<Self> {
27398        if Self::can_cast(syntax.kind()) {
27399            Some(Self { syntax })
27400        } else {
27401            None
27402        }
27403    }
27404    #[inline]
27405    fn syntax(&self) -> &SyntaxNode {
27406        &self.syntax
27407    }
27408}
27409impl AstNode for PartitionBy {
27410    #[inline]
27411    fn can_cast(kind: SyntaxKind) -> bool {
27412        kind == SyntaxKind::PARTITION_BY
27413    }
27414    #[inline]
27415    fn cast(syntax: SyntaxNode) -> Option<Self> {
27416        if Self::can_cast(syntax.kind()) {
27417            Some(Self { syntax })
27418        } else {
27419            None
27420        }
27421    }
27422    #[inline]
27423    fn syntax(&self) -> &SyntaxNode {
27424        &self.syntax
27425    }
27426}
27427impl AstNode for PartitionDefault {
27428    #[inline]
27429    fn can_cast(kind: SyntaxKind) -> bool {
27430        kind == SyntaxKind::PARTITION_DEFAULT
27431    }
27432    #[inline]
27433    fn cast(syntax: SyntaxNode) -> Option<Self> {
27434        if Self::can_cast(syntax.kind()) {
27435            Some(Self { syntax })
27436        } else {
27437            None
27438        }
27439    }
27440    #[inline]
27441    fn syntax(&self) -> &SyntaxNode {
27442        &self.syntax
27443    }
27444}
27445impl AstNode for PartitionForValuesFrom {
27446    #[inline]
27447    fn can_cast(kind: SyntaxKind) -> bool {
27448        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
27449    }
27450    #[inline]
27451    fn cast(syntax: SyntaxNode) -> Option<Self> {
27452        if Self::can_cast(syntax.kind()) {
27453            Some(Self { syntax })
27454        } else {
27455            None
27456        }
27457    }
27458    #[inline]
27459    fn syntax(&self) -> &SyntaxNode {
27460        &self.syntax
27461    }
27462}
27463impl AstNode for PartitionForValuesIn {
27464    #[inline]
27465    fn can_cast(kind: SyntaxKind) -> bool {
27466        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
27467    }
27468    #[inline]
27469    fn cast(syntax: SyntaxNode) -> Option<Self> {
27470        if Self::can_cast(syntax.kind()) {
27471            Some(Self { syntax })
27472        } else {
27473            None
27474        }
27475    }
27476    #[inline]
27477    fn syntax(&self) -> &SyntaxNode {
27478        &self.syntax
27479    }
27480}
27481impl AstNode for PartitionForValuesWith {
27482    #[inline]
27483    fn can_cast(kind: SyntaxKind) -> bool {
27484        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
27485    }
27486    #[inline]
27487    fn cast(syntax: SyntaxNode) -> Option<Self> {
27488        if Self::can_cast(syntax.kind()) {
27489            Some(Self { syntax })
27490        } else {
27491            None
27492        }
27493    }
27494    #[inline]
27495    fn syntax(&self) -> &SyntaxNode {
27496        &self.syntax
27497    }
27498}
27499impl AstNode for PartitionItem {
27500    #[inline]
27501    fn can_cast(kind: SyntaxKind) -> bool {
27502        kind == SyntaxKind::PARTITION_ITEM
27503    }
27504    #[inline]
27505    fn cast(syntax: SyntaxNode) -> Option<Self> {
27506        if Self::can_cast(syntax.kind()) {
27507            Some(Self { syntax })
27508        } else {
27509            None
27510        }
27511    }
27512    #[inline]
27513    fn syntax(&self) -> &SyntaxNode {
27514        &self.syntax
27515    }
27516}
27517impl AstNode for PartitionItemList {
27518    #[inline]
27519    fn can_cast(kind: SyntaxKind) -> bool {
27520        kind == SyntaxKind::PARTITION_ITEM_LIST
27521    }
27522    #[inline]
27523    fn cast(syntax: SyntaxNode) -> Option<Self> {
27524        if Self::can_cast(syntax.kind()) {
27525            Some(Self { syntax })
27526        } else {
27527            None
27528        }
27529    }
27530    #[inline]
27531    fn syntax(&self) -> &SyntaxNode {
27532        &self.syntax
27533    }
27534}
27535impl AstNode for PartitionList {
27536    #[inline]
27537    fn can_cast(kind: SyntaxKind) -> bool {
27538        kind == SyntaxKind::PARTITION_LIST
27539    }
27540    #[inline]
27541    fn cast(syntax: SyntaxNode) -> Option<Self> {
27542        if Self::can_cast(syntax.kind()) {
27543            Some(Self { syntax })
27544        } else {
27545            None
27546        }
27547    }
27548    #[inline]
27549    fn syntax(&self) -> &SyntaxNode {
27550        &self.syntax
27551    }
27552}
27553impl AstNode for PartitionOf {
27554    #[inline]
27555    fn can_cast(kind: SyntaxKind) -> bool {
27556        kind == SyntaxKind::PARTITION_OF
27557    }
27558    #[inline]
27559    fn cast(syntax: SyntaxNode) -> Option<Self> {
27560        if Self::can_cast(syntax.kind()) {
27561            Some(Self { syntax })
27562        } else {
27563            None
27564        }
27565    }
27566    #[inline]
27567    fn syntax(&self) -> &SyntaxNode {
27568        &self.syntax
27569    }
27570}
27571impl AstNode for Path {
27572    #[inline]
27573    fn can_cast(kind: SyntaxKind) -> bool {
27574        kind == SyntaxKind::PATH
27575    }
27576    #[inline]
27577    fn cast(syntax: SyntaxNode) -> Option<Self> {
27578        if Self::can_cast(syntax.kind()) {
27579            Some(Self { syntax })
27580        } else {
27581            None
27582        }
27583    }
27584    #[inline]
27585    fn syntax(&self) -> &SyntaxNode {
27586        &self.syntax
27587    }
27588}
27589impl AstNode for PathFactor {
27590    #[inline]
27591    fn can_cast(kind: SyntaxKind) -> bool {
27592        kind == SyntaxKind::PATH_FACTOR
27593    }
27594    #[inline]
27595    fn cast(syntax: SyntaxNode) -> Option<Self> {
27596        if Self::can_cast(syntax.kind()) {
27597            Some(Self { syntax })
27598        } else {
27599            None
27600        }
27601    }
27602    #[inline]
27603    fn syntax(&self) -> &SyntaxNode {
27604        &self.syntax
27605    }
27606}
27607impl AstNode for PathPattern {
27608    #[inline]
27609    fn can_cast(kind: SyntaxKind) -> bool {
27610        kind == SyntaxKind::PATH_PATTERN
27611    }
27612    #[inline]
27613    fn cast(syntax: SyntaxNode) -> Option<Self> {
27614        if Self::can_cast(syntax.kind()) {
27615            Some(Self { syntax })
27616        } else {
27617            None
27618        }
27619    }
27620    #[inline]
27621    fn syntax(&self) -> &SyntaxNode {
27622        &self.syntax
27623    }
27624}
27625impl AstNode for PathPatternList {
27626    #[inline]
27627    fn can_cast(kind: SyntaxKind) -> bool {
27628        kind == SyntaxKind::PATH_PATTERN_LIST
27629    }
27630    #[inline]
27631    fn cast(syntax: SyntaxNode) -> Option<Self> {
27632        if Self::can_cast(syntax.kind()) {
27633            Some(Self { syntax })
27634        } else {
27635            None
27636        }
27637    }
27638    #[inline]
27639    fn syntax(&self) -> &SyntaxNode {
27640        &self.syntax
27641    }
27642}
27643impl AstNode for PathSegment {
27644    #[inline]
27645    fn can_cast(kind: SyntaxKind) -> bool {
27646        kind == SyntaxKind::PATH_SEGMENT
27647    }
27648    #[inline]
27649    fn cast(syntax: SyntaxNode) -> Option<Self> {
27650        if Self::can_cast(syntax.kind()) {
27651            Some(Self { syntax })
27652        } else {
27653            None
27654        }
27655    }
27656    #[inline]
27657    fn syntax(&self) -> &SyntaxNode {
27658        &self.syntax
27659    }
27660}
27661impl AstNode for PathType {
27662    #[inline]
27663    fn can_cast(kind: SyntaxKind) -> bool {
27664        kind == SyntaxKind::PATH_TYPE
27665    }
27666    #[inline]
27667    fn cast(syntax: SyntaxNode) -> Option<Self> {
27668        if Self::can_cast(syntax.kind()) {
27669            Some(Self { syntax })
27670        } else {
27671            None
27672        }
27673    }
27674    #[inline]
27675    fn syntax(&self) -> &SyntaxNode {
27676        &self.syntax
27677    }
27678}
27679impl AstNode for PercentType {
27680    #[inline]
27681    fn can_cast(kind: SyntaxKind) -> bool {
27682        kind == SyntaxKind::PERCENT_TYPE
27683    }
27684    #[inline]
27685    fn cast(syntax: SyntaxNode) -> Option<Self> {
27686        if Self::can_cast(syntax.kind()) {
27687            Some(Self { syntax })
27688        } else {
27689            None
27690        }
27691    }
27692    #[inline]
27693    fn syntax(&self) -> &SyntaxNode {
27694        &self.syntax
27695    }
27696}
27697impl AstNode for PercentTypeClause {
27698    #[inline]
27699    fn can_cast(kind: SyntaxKind) -> bool {
27700        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
27701    }
27702    #[inline]
27703    fn cast(syntax: SyntaxNode) -> Option<Self> {
27704        if Self::can_cast(syntax.kind()) {
27705            Some(Self { syntax })
27706        } else {
27707            None
27708        }
27709    }
27710    #[inline]
27711    fn syntax(&self) -> &SyntaxNode {
27712        &self.syntax
27713    }
27714}
27715impl AstNode for PositionFn {
27716    #[inline]
27717    fn can_cast(kind: SyntaxKind) -> bool {
27718        kind == SyntaxKind::POSITION_FN
27719    }
27720    #[inline]
27721    fn cast(syntax: SyntaxNode) -> Option<Self> {
27722        if Self::can_cast(syntax.kind()) {
27723            Some(Self { syntax })
27724        } else {
27725            None
27726        }
27727    }
27728    #[inline]
27729    fn syntax(&self) -> &SyntaxNode {
27730        &self.syntax
27731    }
27732}
27733impl AstNode for PostfixExpr {
27734    #[inline]
27735    fn can_cast(kind: SyntaxKind) -> bool {
27736        kind == SyntaxKind::POSTFIX_EXPR
27737    }
27738    #[inline]
27739    fn cast(syntax: SyntaxNode) -> Option<Self> {
27740        if Self::can_cast(syntax.kind()) {
27741            Some(Self { syntax })
27742        } else {
27743            None
27744        }
27745    }
27746    #[inline]
27747    fn syntax(&self) -> &SyntaxNode {
27748        &self.syntax
27749    }
27750}
27751impl AstNode for PrefixExpr {
27752    #[inline]
27753    fn can_cast(kind: SyntaxKind) -> bool {
27754        kind == SyntaxKind::PREFIX_EXPR
27755    }
27756    #[inline]
27757    fn cast(syntax: SyntaxNode) -> Option<Self> {
27758        if Self::can_cast(syntax.kind()) {
27759            Some(Self { syntax })
27760        } else {
27761            None
27762        }
27763    }
27764    #[inline]
27765    fn syntax(&self) -> &SyntaxNode {
27766        &self.syntax
27767    }
27768}
27769impl AstNode for Prepare {
27770    #[inline]
27771    fn can_cast(kind: SyntaxKind) -> bool {
27772        kind == SyntaxKind::PREPARE
27773    }
27774    #[inline]
27775    fn cast(syntax: SyntaxNode) -> Option<Self> {
27776        if Self::can_cast(syntax.kind()) {
27777            Some(Self { syntax })
27778        } else {
27779            None
27780        }
27781    }
27782    #[inline]
27783    fn syntax(&self) -> &SyntaxNode {
27784        &self.syntax
27785    }
27786}
27787impl AstNode for PrepareTransaction {
27788    #[inline]
27789    fn can_cast(kind: SyntaxKind) -> bool {
27790        kind == SyntaxKind::PREPARE_TRANSACTION
27791    }
27792    #[inline]
27793    fn cast(syntax: SyntaxNode) -> Option<Self> {
27794        if Self::can_cast(syntax.kind()) {
27795            Some(Self { syntax })
27796        } else {
27797            None
27798        }
27799    }
27800    #[inline]
27801    fn syntax(&self) -> &SyntaxNode {
27802        &self.syntax
27803    }
27804}
27805impl AstNode for PreserveRows {
27806    #[inline]
27807    fn can_cast(kind: SyntaxKind) -> bool {
27808        kind == SyntaxKind::PRESERVE_ROWS
27809    }
27810    #[inline]
27811    fn cast(syntax: SyntaxNode) -> Option<Self> {
27812        if Self::can_cast(syntax.kind()) {
27813            Some(Self { syntax })
27814        } else {
27815            None
27816        }
27817    }
27818    #[inline]
27819    fn syntax(&self) -> &SyntaxNode {
27820        &self.syntax
27821    }
27822}
27823impl AstNode for PrimaryKeyConstraint {
27824    #[inline]
27825    fn can_cast(kind: SyntaxKind) -> bool {
27826        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
27827    }
27828    #[inline]
27829    fn cast(syntax: SyntaxNode) -> Option<Self> {
27830        if Self::can_cast(syntax.kind()) {
27831            Some(Self { syntax })
27832        } else {
27833            None
27834        }
27835    }
27836    #[inline]
27837    fn syntax(&self) -> &SyntaxNode {
27838        &self.syntax
27839    }
27840}
27841impl AstNode for PrivilegeTarget {
27842    #[inline]
27843    fn can_cast(kind: SyntaxKind) -> bool {
27844        kind == SyntaxKind::PRIVILEGE_TARGET
27845    }
27846    #[inline]
27847    fn cast(syntax: SyntaxNode) -> Option<Self> {
27848        if Self::can_cast(syntax.kind()) {
27849            Some(Self { syntax })
27850        } else {
27851            None
27852        }
27853    }
27854    #[inline]
27855    fn syntax(&self) -> &SyntaxNode {
27856        &self.syntax
27857    }
27858}
27859impl AstNode for Privileges {
27860    #[inline]
27861    fn can_cast(kind: SyntaxKind) -> bool {
27862        kind == SyntaxKind::PRIVILEGES
27863    }
27864    #[inline]
27865    fn cast(syntax: SyntaxNode) -> Option<Self> {
27866        if Self::can_cast(syntax.kind()) {
27867            Some(Self { syntax })
27868        } else {
27869            None
27870        }
27871    }
27872    #[inline]
27873    fn syntax(&self) -> &SyntaxNode {
27874        &self.syntax
27875    }
27876}
27877impl AstNode for PropertiesList {
27878    #[inline]
27879    fn can_cast(kind: SyntaxKind) -> bool {
27880        kind == SyntaxKind::PROPERTIES_LIST
27881    }
27882    #[inline]
27883    fn cast(syntax: SyntaxNode) -> Option<Self> {
27884        if Self::can_cast(syntax.kind()) {
27885            Some(Self { syntax })
27886        } else {
27887            None
27888        }
27889    }
27890    #[inline]
27891    fn syntax(&self) -> &SyntaxNode {
27892        &self.syntax
27893    }
27894}
27895impl AstNode for PublicationObject {
27896    #[inline]
27897    fn can_cast(kind: SyntaxKind) -> bool {
27898        kind == SyntaxKind::PUBLICATION_OBJECT
27899    }
27900    #[inline]
27901    fn cast(syntax: SyntaxNode) -> Option<Self> {
27902        if Self::can_cast(syntax.kind()) {
27903            Some(Self { syntax })
27904        } else {
27905            None
27906        }
27907    }
27908    #[inline]
27909    fn syntax(&self) -> &SyntaxNode {
27910        &self.syntax
27911    }
27912}
27913impl AstNode for ReadCommitted {
27914    #[inline]
27915    fn can_cast(kind: SyntaxKind) -> bool {
27916        kind == SyntaxKind::READ_COMMITTED
27917    }
27918    #[inline]
27919    fn cast(syntax: SyntaxNode) -> Option<Self> {
27920        if Self::can_cast(syntax.kind()) {
27921            Some(Self { syntax })
27922        } else {
27923            None
27924        }
27925    }
27926    #[inline]
27927    fn syntax(&self) -> &SyntaxNode {
27928        &self.syntax
27929    }
27930}
27931impl AstNode for ReadOnly {
27932    #[inline]
27933    fn can_cast(kind: SyntaxKind) -> bool {
27934        kind == SyntaxKind::READ_ONLY
27935    }
27936    #[inline]
27937    fn cast(syntax: SyntaxNode) -> Option<Self> {
27938        if Self::can_cast(syntax.kind()) {
27939            Some(Self { syntax })
27940        } else {
27941            None
27942        }
27943    }
27944    #[inline]
27945    fn syntax(&self) -> &SyntaxNode {
27946        &self.syntax
27947    }
27948}
27949impl AstNode for ReadUncommitted {
27950    #[inline]
27951    fn can_cast(kind: SyntaxKind) -> bool {
27952        kind == SyntaxKind::READ_UNCOMMITTED
27953    }
27954    #[inline]
27955    fn cast(syntax: SyntaxNode) -> Option<Self> {
27956        if Self::can_cast(syntax.kind()) {
27957            Some(Self { syntax })
27958        } else {
27959            None
27960        }
27961    }
27962    #[inline]
27963    fn syntax(&self) -> &SyntaxNode {
27964        &self.syntax
27965    }
27966}
27967impl AstNode for ReadWrite {
27968    #[inline]
27969    fn can_cast(kind: SyntaxKind) -> bool {
27970        kind == SyntaxKind::READ_WRITE
27971    }
27972    #[inline]
27973    fn cast(syntax: SyntaxNode) -> Option<Self> {
27974        if Self::can_cast(syntax.kind()) {
27975            Some(Self { syntax })
27976        } else {
27977            None
27978        }
27979    }
27980    #[inline]
27981    fn syntax(&self) -> &SyntaxNode {
27982        &self.syntax
27983    }
27984}
27985impl AstNode for Reassign {
27986    #[inline]
27987    fn can_cast(kind: SyntaxKind) -> bool {
27988        kind == SyntaxKind::REASSIGN
27989    }
27990    #[inline]
27991    fn cast(syntax: SyntaxNode) -> Option<Self> {
27992        if Self::can_cast(syntax.kind()) {
27993            Some(Self { syntax })
27994        } else {
27995            None
27996        }
27997    }
27998    #[inline]
27999    fn syntax(&self) -> &SyntaxNode {
28000        &self.syntax
28001    }
28002}
28003impl AstNode for ReferencesConstraint {
28004    #[inline]
28005    fn can_cast(kind: SyntaxKind) -> bool {
28006        kind == SyntaxKind::REFERENCES_CONSTRAINT
28007    }
28008    #[inline]
28009    fn cast(syntax: SyntaxNode) -> Option<Self> {
28010        if Self::can_cast(syntax.kind()) {
28011            Some(Self { syntax })
28012        } else {
28013            None
28014        }
28015    }
28016    #[inline]
28017    fn syntax(&self) -> &SyntaxNode {
28018        &self.syntax
28019    }
28020}
28021impl AstNode for Referencing {
28022    #[inline]
28023    fn can_cast(kind: SyntaxKind) -> bool {
28024        kind == SyntaxKind::REFERENCING
28025    }
28026    #[inline]
28027    fn cast(syntax: SyntaxNode) -> Option<Self> {
28028        if Self::can_cast(syntax.kind()) {
28029            Some(Self { syntax })
28030        } else {
28031            None
28032        }
28033    }
28034    #[inline]
28035    fn syntax(&self) -> &SyntaxNode {
28036        &self.syntax
28037    }
28038}
28039impl AstNode for ReferencingTable {
28040    #[inline]
28041    fn can_cast(kind: SyntaxKind) -> bool {
28042        kind == SyntaxKind::REFERENCING_TABLE
28043    }
28044    #[inline]
28045    fn cast(syntax: SyntaxNode) -> Option<Self> {
28046        if Self::can_cast(syntax.kind()) {
28047            Some(Self { syntax })
28048        } else {
28049            None
28050        }
28051    }
28052    #[inline]
28053    fn syntax(&self) -> &SyntaxNode {
28054        &self.syntax
28055    }
28056}
28057impl AstNode for Refresh {
28058    #[inline]
28059    fn can_cast(kind: SyntaxKind) -> bool {
28060        kind == SyntaxKind::REFRESH
28061    }
28062    #[inline]
28063    fn cast(syntax: SyntaxNode) -> Option<Self> {
28064        if Self::can_cast(syntax.kind()) {
28065            Some(Self { syntax })
28066        } else {
28067            None
28068        }
28069    }
28070    #[inline]
28071    fn syntax(&self) -> &SyntaxNode {
28072        &self.syntax
28073    }
28074}
28075impl AstNode for RefreshCollationVersion {
28076    #[inline]
28077    fn can_cast(kind: SyntaxKind) -> bool {
28078        kind == SyntaxKind::REFRESH_COLLATION_VERSION
28079    }
28080    #[inline]
28081    fn cast(syntax: SyntaxNode) -> Option<Self> {
28082        if Self::can_cast(syntax.kind()) {
28083            Some(Self { syntax })
28084        } else {
28085            None
28086        }
28087    }
28088    #[inline]
28089    fn syntax(&self) -> &SyntaxNode {
28090        &self.syntax
28091    }
28092}
28093impl AstNode for RefreshVersion {
28094    #[inline]
28095    fn can_cast(kind: SyntaxKind) -> bool {
28096        kind == SyntaxKind::REFRESH_VERSION
28097    }
28098    #[inline]
28099    fn cast(syntax: SyntaxNode) -> Option<Self> {
28100        if Self::can_cast(syntax.kind()) {
28101            Some(Self { syntax })
28102        } else {
28103            None
28104        }
28105    }
28106    #[inline]
28107    fn syntax(&self) -> &SyntaxNode {
28108        &self.syntax
28109    }
28110}
28111impl AstNode for Reindex {
28112    #[inline]
28113    fn can_cast(kind: SyntaxKind) -> bool {
28114        kind == SyntaxKind::REINDEX
28115    }
28116    #[inline]
28117    fn cast(syntax: SyntaxNode) -> Option<Self> {
28118        if Self::can_cast(syntax.kind()) {
28119            Some(Self { syntax })
28120        } else {
28121            None
28122        }
28123    }
28124    #[inline]
28125    fn syntax(&self) -> &SyntaxNode {
28126        &self.syntax
28127    }
28128}
28129impl AstNode for RelationName {
28130    #[inline]
28131    fn can_cast(kind: SyntaxKind) -> bool {
28132        kind == SyntaxKind::RELATION_NAME
28133    }
28134    #[inline]
28135    fn cast(syntax: SyntaxNode) -> Option<Self> {
28136        if Self::can_cast(syntax.kind()) {
28137            Some(Self { syntax })
28138        } else {
28139            None
28140        }
28141    }
28142    #[inline]
28143    fn syntax(&self) -> &SyntaxNode {
28144        &self.syntax
28145    }
28146}
28147impl AstNode for ReleaseSavepoint {
28148    #[inline]
28149    fn can_cast(kind: SyntaxKind) -> bool {
28150        kind == SyntaxKind::RELEASE_SAVEPOINT
28151    }
28152    #[inline]
28153    fn cast(syntax: SyntaxNode) -> Option<Self> {
28154        if Self::can_cast(syntax.kind()) {
28155            Some(Self { syntax })
28156        } else {
28157            None
28158        }
28159    }
28160    #[inline]
28161    fn syntax(&self) -> &SyntaxNode {
28162        &self.syntax
28163    }
28164}
28165impl AstNode for RenameAttribute {
28166    #[inline]
28167    fn can_cast(kind: SyntaxKind) -> bool {
28168        kind == SyntaxKind::RENAME_ATTRIBUTE
28169    }
28170    #[inline]
28171    fn cast(syntax: SyntaxNode) -> Option<Self> {
28172        if Self::can_cast(syntax.kind()) {
28173            Some(Self { syntax })
28174        } else {
28175            None
28176        }
28177    }
28178    #[inline]
28179    fn syntax(&self) -> &SyntaxNode {
28180        &self.syntax
28181    }
28182}
28183impl AstNode for RenameColumn {
28184    #[inline]
28185    fn can_cast(kind: SyntaxKind) -> bool {
28186        kind == SyntaxKind::RENAME_COLUMN
28187    }
28188    #[inline]
28189    fn cast(syntax: SyntaxNode) -> Option<Self> {
28190        if Self::can_cast(syntax.kind()) {
28191            Some(Self { syntax })
28192        } else {
28193            None
28194        }
28195    }
28196    #[inline]
28197    fn syntax(&self) -> &SyntaxNode {
28198        &self.syntax
28199    }
28200}
28201impl AstNode for RenameConstraint {
28202    #[inline]
28203    fn can_cast(kind: SyntaxKind) -> bool {
28204        kind == SyntaxKind::RENAME_CONSTRAINT
28205    }
28206    #[inline]
28207    fn cast(syntax: SyntaxNode) -> Option<Self> {
28208        if Self::can_cast(syntax.kind()) {
28209            Some(Self { syntax })
28210        } else {
28211            None
28212        }
28213    }
28214    #[inline]
28215    fn syntax(&self) -> &SyntaxNode {
28216        &self.syntax
28217    }
28218}
28219impl AstNode for RenameTo {
28220    #[inline]
28221    fn can_cast(kind: SyntaxKind) -> bool {
28222        kind == SyntaxKind::RENAME_TO
28223    }
28224    #[inline]
28225    fn cast(syntax: SyntaxNode) -> Option<Self> {
28226        if Self::can_cast(syntax.kind()) {
28227            Some(Self { syntax })
28228        } else {
28229            None
28230        }
28231    }
28232    #[inline]
28233    fn syntax(&self) -> &SyntaxNode {
28234        &self.syntax
28235    }
28236}
28237impl AstNode for RenameValue {
28238    #[inline]
28239    fn can_cast(kind: SyntaxKind) -> bool {
28240        kind == SyntaxKind::RENAME_VALUE
28241    }
28242    #[inline]
28243    fn cast(syntax: SyntaxNode) -> Option<Self> {
28244        if Self::can_cast(syntax.kind()) {
28245            Some(Self { syntax })
28246        } else {
28247            None
28248        }
28249    }
28250    #[inline]
28251    fn syntax(&self) -> &SyntaxNode {
28252        &self.syntax
28253    }
28254}
28255impl AstNode for Repack {
28256    #[inline]
28257    fn can_cast(kind: SyntaxKind) -> bool {
28258        kind == SyntaxKind::REPACK
28259    }
28260    #[inline]
28261    fn cast(syntax: SyntaxNode) -> Option<Self> {
28262        if Self::can_cast(syntax.kind()) {
28263            Some(Self { syntax })
28264        } else {
28265            None
28266        }
28267    }
28268    #[inline]
28269    fn syntax(&self) -> &SyntaxNode {
28270        &self.syntax
28271    }
28272}
28273impl AstNode for RepeatableClause {
28274    #[inline]
28275    fn can_cast(kind: SyntaxKind) -> bool {
28276        kind == SyntaxKind::REPEATABLE_CLAUSE
28277    }
28278    #[inline]
28279    fn cast(syntax: SyntaxNode) -> Option<Self> {
28280        if Self::can_cast(syntax.kind()) {
28281            Some(Self { syntax })
28282        } else {
28283            None
28284        }
28285    }
28286    #[inline]
28287    fn syntax(&self) -> &SyntaxNode {
28288        &self.syntax
28289    }
28290}
28291impl AstNode for RepeatableRead {
28292    #[inline]
28293    fn can_cast(kind: SyntaxKind) -> bool {
28294        kind == SyntaxKind::REPEATABLE_READ
28295    }
28296    #[inline]
28297    fn cast(syntax: SyntaxNode) -> Option<Self> {
28298        if Self::can_cast(syntax.kind()) {
28299            Some(Self { syntax })
28300        } else {
28301            None
28302        }
28303    }
28304    #[inline]
28305    fn syntax(&self) -> &SyntaxNode {
28306        &self.syntax
28307    }
28308}
28309impl AstNode for ReplicaIdentity {
28310    #[inline]
28311    fn can_cast(kind: SyntaxKind) -> bool {
28312        kind == SyntaxKind::REPLICA_IDENTITY
28313    }
28314    #[inline]
28315    fn cast(syntax: SyntaxNode) -> Option<Self> {
28316        if Self::can_cast(syntax.kind()) {
28317            Some(Self { syntax })
28318        } else {
28319            None
28320        }
28321    }
28322    #[inline]
28323    fn syntax(&self) -> &SyntaxNode {
28324        &self.syntax
28325    }
28326}
28327impl AstNode for Reset {
28328    #[inline]
28329    fn can_cast(kind: SyntaxKind) -> bool {
28330        kind == SyntaxKind::RESET
28331    }
28332    #[inline]
28333    fn cast(syntax: SyntaxNode) -> Option<Self> {
28334        if Self::can_cast(syntax.kind()) {
28335            Some(Self { syntax })
28336        } else {
28337            None
28338        }
28339    }
28340    #[inline]
28341    fn syntax(&self) -> &SyntaxNode {
28342        &self.syntax
28343    }
28344}
28345impl AstNode for ResetConfigParam {
28346    #[inline]
28347    fn can_cast(kind: SyntaxKind) -> bool {
28348        kind == SyntaxKind::RESET_CONFIG_PARAM
28349    }
28350    #[inline]
28351    fn cast(syntax: SyntaxNode) -> Option<Self> {
28352        if Self::can_cast(syntax.kind()) {
28353            Some(Self { syntax })
28354        } else {
28355            None
28356        }
28357    }
28358    #[inline]
28359    fn syntax(&self) -> &SyntaxNode {
28360        &self.syntax
28361    }
28362}
28363impl AstNode for ResetFuncOption {
28364    #[inline]
28365    fn can_cast(kind: SyntaxKind) -> bool {
28366        kind == SyntaxKind::RESET_FUNC_OPTION
28367    }
28368    #[inline]
28369    fn cast(syntax: SyntaxNode) -> Option<Self> {
28370        if Self::can_cast(syntax.kind()) {
28371            Some(Self { syntax })
28372        } else {
28373            None
28374        }
28375    }
28376    #[inline]
28377    fn syntax(&self) -> &SyntaxNode {
28378        &self.syntax
28379    }
28380}
28381impl AstNode for ResetOptions {
28382    #[inline]
28383    fn can_cast(kind: SyntaxKind) -> bool {
28384        kind == SyntaxKind::RESET_OPTIONS
28385    }
28386    #[inline]
28387    fn cast(syntax: SyntaxNode) -> Option<Self> {
28388        if Self::can_cast(syntax.kind()) {
28389            Some(Self { syntax })
28390        } else {
28391            None
28392        }
28393    }
28394    #[inline]
28395    fn syntax(&self) -> &SyntaxNode {
28396        &self.syntax
28397    }
28398}
28399impl AstNode for ResetSessionAuth {
28400    #[inline]
28401    fn can_cast(kind: SyntaxKind) -> bool {
28402        kind == SyntaxKind::RESET_SESSION_AUTH
28403    }
28404    #[inline]
28405    fn cast(syntax: SyntaxNode) -> Option<Self> {
28406        if Self::can_cast(syntax.kind()) {
28407            Some(Self { syntax })
28408        } else {
28409            None
28410        }
28411    }
28412    #[inline]
28413    fn syntax(&self) -> &SyntaxNode {
28414        &self.syntax
28415    }
28416}
28417impl AstNode for Restart {
28418    #[inline]
28419    fn can_cast(kind: SyntaxKind) -> bool {
28420        kind == SyntaxKind::RESTART
28421    }
28422    #[inline]
28423    fn cast(syntax: SyntaxNode) -> Option<Self> {
28424        if Self::can_cast(syntax.kind()) {
28425            Some(Self { syntax })
28426        } else {
28427            None
28428        }
28429    }
28430    #[inline]
28431    fn syntax(&self) -> &SyntaxNode {
28432        &self.syntax
28433    }
28434}
28435impl AstNode for Restrict {
28436    #[inline]
28437    fn can_cast(kind: SyntaxKind) -> bool {
28438        kind == SyntaxKind::RESTRICT
28439    }
28440    #[inline]
28441    fn cast(syntax: SyntaxNode) -> Option<Self> {
28442        if Self::can_cast(syntax.kind()) {
28443            Some(Self { syntax })
28444        } else {
28445            None
28446        }
28447    }
28448    #[inline]
28449    fn syntax(&self) -> &SyntaxNode {
28450        &self.syntax
28451    }
28452}
28453impl AstNode for RetType {
28454    #[inline]
28455    fn can_cast(kind: SyntaxKind) -> bool {
28456        kind == SyntaxKind::RET_TYPE
28457    }
28458    #[inline]
28459    fn cast(syntax: SyntaxNode) -> Option<Self> {
28460        if Self::can_cast(syntax.kind()) {
28461            Some(Self { syntax })
28462        } else {
28463            None
28464        }
28465    }
28466    #[inline]
28467    fn syntax(&self) -> &SyntaxNode {
28468        &self.syntax
28469    }
28470}
28471impl AstNode for ReturnFuncOption {
28472    #[inline]
28473    fn can_cast(kind: SyntaxKind) -> bool {
28474        kind == SyntaxKind::RETURN_FUNC_OPTION
28475    }
28476    #[inline]
28477    fn cast(syntax: SyntaxNode) -> Option<Self> {
28478        if Self::can_cast(syntax.kind()) {
28479            Some(Self { syntax })
28480        } else {
28481            None
28482        }
28483    }
28484    #[inline]
28485    fn syntax(&self) -> &SyntaxNode {
28486        &self.syntax
28487    }
28488}
28489impl AstNode for ReturningClause {
28490    #[inline]
28491    fn can_cast(kind: SyntaxKind) -> bool {
28492        kind == SyntaxKind::RETURNING_CLAUSE
28493    }
28494    #[inline]
28495    fn cast(syntax: SyntaxNode) -> Option<Self> {
28496        if Self::can_cast(syntax.kind()) {
28497            Some(Self { syntax })
28498        } else {
28499            None
28500        }
28501    }
28502    #[inline]
28503    fn syntax(&self) -> &SyntaxNode {
28504        &self.syntax
28505    }
28506}
28507impl AstNode for ReturningOption {
28508    #[inline]
28509    fn can_cast(kind: SyntaxKind) -> bool {
28510        kind == SyntaxKind::RETURNING_OPTION
28511    }
28512    #[inline]
28513    fn cast(syntax: SyntaxNode) -> Option<Self> {
28514        if Self::can_cast(syntax.kind()) {
28515            Some(Self { syntax })
28516        } else {
28517            None
28518        }
28519    }
28520    #[inline]
28521    fn syntax(&self) -> &SyntaxNode {
28522        &self.syntax
28523    }
28524}
28525impl AstNode for ReturningOptionList {
28526    #[inline]
28527    fn can_cast(kind: SyntaxKind) -> bool {
28528        kind == SyntaxKind::RETURNING_OPTION_LIST
28529    }
28530    #[inline]
28531    fn cast(syntax: SyntaxNode) -> Option<Self> {
28532        if Self::can_cast(syntax.kind()) {
28533            Some(Self { syntax })
28534        } else {
28535            None
28536        }
28537    }
28538    #[inline]
28539    fn syntax(&self) -> &SyntaxNode {
28540        &self.syntax
28541    }
28542}
28543impl AstNode for Revoke {
28544    #[inline]
28545    fn can_cast(kind: SyntaxKind) -> bool {
28546        kind == SyntaxKind::REVOKE
28547    }
28548    #[inline]
28549    fn cast(syntax: SyntaxNode) -> Option<Self> {
28550        if Self::can_cast(syntax.kind()) {
28551            Some(Self { syntax })
28552        } else {
28553            None
28554        }
28555    }
28556    #[inline]
28557    fn syntax(&self) -> &SyntaxNode {
28558        &self.syntax
28559    }
28560}
28561impl AstNode for RevokeCommand {
28562    #[inline]
28563    fn can_cast(kind: SyntaxKind) -> bool {
28564        kind == SyntaxKind::REVOKE_COMMAND
28565    }
28566    #[inline]
28567    fn cast(syntax: SyntaxNode) -> Option<Self> {
28568        if Self::can_cast(syntax.kind()) {
28569            Some(Self { syntax })
28570        } else {
28571            None
28572        }
28573    }
28574    #[inline]
28575    fn syntax(&self) -> &SyntaxNode {
28576        &self.syntax
28577    }
28578}
28579impl AstNode for RevokeCommandList {
28580    #[inline]
28581    fn can_cast(kind: SyntaxKind) -> bool {
28582        kind == SyntaxKind::REVOKE_COMMAND_LIST
28583    }
28584    #[inline]
28585    fn cast(syntax: SyntaxNode) -> Option<Self> {
28586        if Self::can_cast(syntax.kind()) {
28587            Some(Self { syntax })
28588        } else {
28589            None
28590        }
28591    }
28592    #[inline]
28593    fn syntax(&self) -> &SyntaxNode {
28594        &self.syntax
28595    }
28596}
28597impl AstNode for RevokeDefaultPrivileges {
28598    #[inline]
28599    fn can_cast(kind: SyntaxKind) -> bool {
28600        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
28601    }
28602    #[inline]
28603    fn cast(syntax: SyntaxNode) -> Option<Self> {
28604        if Self::can_cast(syntax.kind()) {
28605            Some(Self { syntax })
28606        } else {
28607            None
28608        }
28609    }
28610    #[inline]
28611    fn syntax(&self) -> &SyntaxNode {
28612        &self.syntax
28613    }
28614}
28615impl AstNode for Role {
28616    #[inline]
28617    fn can_cast(kind: SyntaxKind) -> bool {
28618        kind == SyntaxKind::ROLE
28619    }
28620    #[inline]
28621    fn cast(syntax: SyntaxNode) -> Option<Self> {
28622        if Self::can_cast(syntax.kind()) {
28623            Some(Self { syntax })
28624        } else {
28625            None
28626        }
28627    }
28628    #[inline]
28629    fn syntax(&self) -> &SyntaxNode {
28630        &self.syntax
28631    }
28632}
28633impl AstNode for RoleOption {
28634    #[inline]
28635    fn can_cast(kind: SyntaxKind) -> bool {
28636        kind == SyntaxKind::ROLE_OPTION
28637    }
28638    #[inline]
28639    fn cast(syntax: SyntaxNode) -> Option<Self> {
28640        if Self::can_cast(syntax.kind()) {
28641            Some(Self { syntax })
28642        } else {
28643            None
28644        }
28645    }
28646    #[inline]
28647    fn syntax(&self) -> &SyntaxNode {
28648        &self.syntax
28649    }
28650}
28651impl AstNode for RoleOptionList {
28652    #[inline]
28653    fn can_cast(kind: SyntaxKind) -> bool {
28654        kind == SyntaxKind::ROLE_OPTION_LIST
28655    }
28656    #[inline]
28657    fn cast(syntax: SyntaxNode) -> Option<Self> {
28658        if Self::can_cast(syntax.kind()) {
28659            Some(Self { syntax })
28660        } else {
28661            None
28662        }
28663    }
28664    #[inline]
28665    fn syntax(&self) -> &SyntaxNode {
28666        &self.syntax
28667    }
28668}
28669impl AstNode for RoleRef {
28670    #[inline]
28671    fn can_cast(kind: SyntaxKind) -> bool {
28672        kind == SyntaxKind::ROLE_REF
28673    }
28674    #[inline]
28675    fn cast(syntax: SyntaxNode) -> Option<Self> {
28676        if Self::can_cast(syntax.kind()) {
28677            Some(Self { syntax })
28678        } else {
28679            None
28680        }
28681    }
28682    #[inline]
28683    fn syntax(&self) -> &SyntaxNode {
28684        &self.syntax
28685    }
28686}
28687impl AstNode for RoleRefList {
28688    #[inline]
28689    fn can_cast(kind: SyntaxKind) -> bool {
28690        kind == SyntaxKind::ROLE_REF_LIST
28691    }
28692    #[inline]
28693    fn cast(syntax: SyntaxNode) -> Option<Self> {
28694        if Self::can_cast(syntax.kind()) {
28695            Some(Self { syntax })
28696        } else {
28697            None
28698        }
28699    }
28700    #[inline]
28701    fn syntax(&self) -> &SyntaxNode {
28702        &self.syntax
28703    }
28704}
28705impl AstNode for Rollback {
28706    #[inline]
28707    fn can_cast(kind: SyntaxKind) -> bool {
28708        kind == SyntaxKind::ROLLBACK
28709    }
28710    #[inline]
28711    fn cast(syntax: SyntaxNode) -> Option<Self> {
28712        if Self::can_cast(syntax.kind()) {
28713            Some(Self { syntax })
28714        } else {
28715            None
28716        }
28717    }
28718    #[inline]
28719    fn syntax(&self) -> &SyntaxNode {
28720        &self.syntax
28721    }
28722}
28723impl AstNode for Row {
28724    #[inline]
28725    fn can_cast(kind: SyntaxKind) -> bool {
28726        kind == SyntaxKind::ROW
28727    }
28728    #[inline]
28729    fn cast(syntax: SyntaxNode) -> Option<Self> {
28730        if Self::can_cast(syntax.kind()) {
28731            Some(Self { syntax })
28732        } else {
28733            None
28734        }
28735    }
28736    #[inline]
28737    fn syntax(&self) -> &SyntaxNode {
28738        &self.syntax
28739    }
28740}
28741impl AstNode for RowList {
28742    #[inline]
28743    fn can_cast(kind: SyntaxKind) -> bool {
28744        kind == SyntaxKind::ROW_LIST
28745    }
28746    #[inline]
28747    fn cast(syntax: SyntaxNode) -> Option<Self> {
28748        if Self::can_cast(syntax.kind()) {
28749            Some(Self { syntax })
28750        } else {
28751            None
28752        }
28753    }
28754    #[inline]
28755    fn syntax(&self) -> &SyntaxNode {
28756        &self.syntax
28757    }
28758}
28759impl AstNode for RowsFuncOption {
28760    #[inline]
28761    fn can_cast(kind: SyntaxKind) -> bool {
28762        kind == SyntaxKind::ROWS_FUNC_OPTION
28763    }
28764    #[inline]
28765    fn cast(syntax: SyntaxNode) -> Option<Self> {
28766        if Self::can_cast(syntax.kind()) {
28767            Some(Self { syntax })
28768        } else {
28769            None
28770        }
28771    }
28772    #[inline]
28773    fn syntax(&self) -> &SyntaxNode {
28774        &self.syntax
28775    }
28776}
28777impl AstNode for Savepoint {
28778    #[inline]
28779    fn can_cast(kind: SyntaxKind) -> bool {
28780        kind == SyntaxKind::SAVEPOINT
28781    }
28782    #[inline]
28783    fn cast(syntax: SyntaxNode) -> Option<Self> {
28784        if Self::can_cast(syntax.kind()) {
28785            Some(Self { syntax })
28786        } else {
28787            None
28788        }
28789    }
28790    #[inline]
28791    fn syntax(&self) -> &SyntaxNode {
28792        &self.syntax
28793    }
28794}
28795impl AstNode for SecurityFuncOption {
28796    #[inline]
28797    fn can_cast(kind: SyntaxKind) -> bool {
28798        kind == SyntaxKind::SECURITY_FUNC_OPTION
28799    }
28800    #[inline]
28801    fn cast(syntax: SyntaxNode) -> Option<Self> {
28802        if Self::can_cast(syntax.kind()) {
28803            Some(Self { syntax })
28804        } else {
28805            None
28806        }
28807    }
28808    #[inline]
28809    fn syntax(&self) -> &SyntaxNode {
28810        &self.syntax
28811    }
28812}
28813impl AstNode for SecurityLabel {
28814    #[inline]
28815    fn can_cast(kind: SyntaxKind) -> bool {
28816        kind == SyntaxKind::SECURITY_LABEL
28817    }
28818    #[inline]
28819    fn cast(syntax: SyntaxNode) -> Option<Self> {
28820        if Self::can_cast(syntax.kind()) {
28821            Some(Self { syntax })
28822        } else {
28823            None
28824        }
28825    }
28826    #[inline]
28827    fn syntax(&self) -> &SyntaxNode {
28828        &self.syntax
28829    }
28830}
28831impl AstNode for Select {
28832    #[inline]
28833    fn can_cast(kind: SyntaxKind) -> bool {
28834        kind == SyntaxKind::SELECT
28835    }
28836    #[inline]
28837    fn cast(syntax: SyntaxNode) -> Option<Self> {
28838        if Self::can_cast(syntax.kind()) {
28839            Some(Self { syntax })
28840        } else {
28841            None
28842        }
28843    }
28844    #[inline]
28845    fn syntax(&self) -> &SyntaxNode {
28846        &self.syntax
28847    }
28848}
28849impl AstNode for SelectClause {
28850    #[inline]
28851    fn can_cast(kind: SyntaxKind) -> bool {
28852        kind == SyntaxKind::SELECT_CLAUSE
28853    }
28854    #[inline]
28855    fn cast(syntax: SyntaxNode) -> Option<Self> {
28856        if Self::can_cast(syntax.kind()) {
28857            Some(Self { syntax })
28858        } else {
28859            None
28860        }
28861    }
28862    #[inline]
28863    fn syntax(&self) -> &SyntaxNode {
28864        &self.syntax
28865    }
28866}
28867impl AstNode for SelectInto {
28868    #[inline]
28869    fn can_cast(kind: SyntaxKind) -> bool {
28870        kind == SyntaxKind::SELECT_INTO
28871    }
28872    #[inline]
28873    fn cast(syntax: SyntaxNode) -> Option<Self> {
28874        if Self::can_cast(syntax.kind()) {
28875            Some(Self { syntax })
28876        } else {
28877            None
28878        }
28879    }
28880    #[inline]
28881    fn syntax(&self) -> &SyntaxNode {
28882        &self.syntax
28883    }
28884}
28885impl AstNode for SequenceOption {
28886    #[inline]
28887    fn can_cast(kind: SyntaxKind) -> bool {
28888        kind == SyntaxKind::SEQUENCE_OPTION
28889    }
28890    #[inline]
28891    fn cast(syntax: SyntaxNode) -> Option<Self> {
28892        if Self::can_cast(syntax.kind()) {
28893            Some(Self { syntax })
28894        } else {
28895            None
28896        }
28897    }
28898    #[inline]
28899    fn syntax(&self) -> &SyntaxNode {
28900        &self.syntax
28901    }
28902}
28903impl AstNode for SequenceOptionList {
28904    #[inline]
28905    fn can_cast(kind: SyntaxKind) -> bool {
28906        kind == SyntaxKind::SEQUENCE_OPTION_LIST
28907    }
28908    #[inline]
28909    fn cast(syntax: SyntaxNode) -> Option<Self> {
28910        if Self::can_cast(syntax.kind()) {
28911            Some(Self { syntax })
28912        } else {
28913            None
28914        }
28915    }
28916    #[inline]
28917    fn syntax(&self) -> &SyntaxNode {
28918        &self.syntax
28919    }
28920}
28921impl AstNode for Serializable {
28922    #[inline]
28923    fn can_cast(kind: SyntaxKind) -> bool {
28924        kind == SyntaxKind::SERIALIZABLE
28925    }
28926    #[inline]
28927    fn cast(syntax: SyntaxNode) -> Option<Self> {
28928        if Self::can_cast(syntax.kind()) {
28929            Some(Self { syntax })
28930        } else {
28931            None
28932        }
28933    }
28934    #[inline]
28935    fn syntax(&self) -> &SyntaxNode {
28936        &self.syntax
28937    }
28938}
28939impl AstNode for ServerName {
28940    #[inline]
28941    fn can_cast(kind: SyntaxKind) -> bool {
28942        kind == SyntaxKind::SERVER_NAME
28943    }
28944    #[inline]
28945    fn cast(syntax: SyntaxNode) -> Option<Self> {
28946        if Self::can_cast(syntax.kind()) {
28947            Some(Self { syntax })
28948        } else {
28949            None
28950        }
28951    }
28952    #[inline]
28953    fn syntax(&self) -> &SyntaxNode {
28954        &self.syntax
28955    }
28956}
28957impl AstNode for Set {
28958    #[inline]
28959    fn can_cast(kind: SyntaxKind) -> bool {
28960        kind == SyntaxKind::SET
28961    }
28962    #[inline]
28963    fn cast(syntax: SyntaxNode) -> Option<Self> {
28964        if Self::can_cast(syntax.kind()) {
28965            Some(Self { syntax })
28966        } else {
28967            None
28968        }
28969    }
28970    #[inline]
28971    fn syntax(&self) -> &SyntaxNode {
28972        &self.syntax
28973    }
28974}
28975impl AstNode for SetAccessMethod {
28976    #[inline]
28977    fn can_cast(kind: SyntaxKind) -> bool {
28978        kind == SyntaxKind::SET_ACCESS_METHOD
28979    }
28980    #[inline]
28981    fn cast(syntax: SyntaxNode) -> Option<Self> {
28982        if Self::can_cast(syntax.kind()) {
28983            Some(Self { syntax })
28984        } else {
28985            None
28986        }
28987    }
28988    #[inline]
28989    fn syntax(&self) -> &SyntaxNode {
28990        &self.syntax
28991    }
28992}
28993impl AstNode for SetClause {
28994    #[inline]
28995    fn can_cast(kind: SyntaxKind) -> bool {
28996        kind == SyntaxKind::SET_CLAUSE
28997    }
28998    #[inline]
28999    fn cast(syntax: SyntaxNode) -> Option<Self> {
29000        if Self::can_cast(syntax.kind()) {
29001            Some(Self { syntax })
29002        } else {
29003            None
29004        }
29005    }
29006    #[inline]
29007    fn syntax(&self) -> &SyntaxNode {
29008        &self.syntax
29009    }
29010}
29011impl AstNode for SetColumnList {
29012    #[inline]
29013    fn can_cast(kind: SyntaxKind) -> bool {
29014        kind == SyntaxKind::SET_COLUMN_LIST
29015    }
29016    #[inline]
29017    fn cast(syntax: SyntaxNode) -> Option<Self> {
29018        if Self::can_cast(syntax.kind()) {
29019            Some(Self { syntax })
29020        } else {
29021            None
29022        }
29023    }
29024    #[inline]
29025    fn syntax(&self) -> &SyntaxNode {
29026        &self.syntax
29027    }
29028}
29029impl AstNode for SetCompression {
29030    #[inline]
29031    fn can_cast(kind: SyntaxKind) -> bool {
29032        kind == SyntaxKind::SET_COMPRESSION
29033    }
29034    #[inline]
29035    fn cast(syntax: SyntaxNode) -> Option<Self> {
29036        if Self::can_cast(syntax.kind()) {
29037            Some(Self { syntax })
29038        } else {
29039            None
29040        }
29041    }
29042    #[inline]
29043    fn syntax(&self) -> &SyntaxNode {
29044        &self.syntax
29045    }
29046}
29047impl AstNode for SetConfigParam {
29048    #[inline]
29049    fn can_cast(kind: SyntaxKind) -> bool {
29050        kind == SyntaxKind::SET_CONFIG_PARAM
29051    }
29052    #[inline]
29053    fn cast(syntax: SyntaxNode) -> Option<Self> {
29054        if Self::can_cast(syntax.kind()) {
29055            Some(Self { syntax })
29056        } else {
29057            None
29058        }
29059    }
29060    #[inline]
29061    fn syntax(&self) -> &SyntaxNode {
29062        &self.syntax
29063    }
29064}
29065impl AstNode for SetConstraints {
29066    #[inline]
29067    fn can_cast(kind: SyntaxKind) -> bool {
29068        kind == SyntaxKind::SET_CONSTRAINTS
29069    }
29070    #[inline]
29071    fn cast(syntax: SyntaxNode) -> Option<Self> {
29072        if Self::can_cast(syntax.kind()) {
29073            Some(Self { syntax })
29074        } else {
29075            None
29076        }
29077    }
29078    #[inline]
29079    fn syntax(&self) -> &SyntaxNode {
29080        &self.syntax
29081    }
29082}
29083impl AstNode for SetDefault {
29084    #[inline]
29085    fn can_cast(kind: SyntaxKind) -> bool {
29086        kind == SyntaxKind::SET_DEFAULT
29087    }
29088    #[inline]
29089    fn cast(syntax: SyntaxNode) -> Option<Self> {
29090        if Self::can_cast(syntax.kind()) {
29091            Some(Self { syntax })
29092        } else {
29093            None
29094        }
29095    }
29096    #[inline]
29097    fn syntax(&self) -> &SyntaxNode {
29098        &self.syntax
29099    }
29100}
29101impl AstNode for SetDefaultColumns {
29102    #[inline]
29103    fn can_cast(kind: SyntaxKind) -> bool {
29104        kind == SyntaxKind::SET_DEFAULT_COLUMNS
29105    }
29106    #[inline]
29107    fn cast(syntax: SyntaxNode) -> Option<Self> {
29108        if Self::can_cast(syntax.kind()) {
29109            Some(Self { syntax })
29110        } else {
29111            None
29112        }
29113    }
29114    #[inline]
29115    fn syntax(&self) -> &SyntaxNode {
29116        &self.syntax
29117    }
29118}
29119impl AstNode for SetExpr {
29120    #[inline]
29121    fn can_cast(kind: SyntaxKind) -> bool {
29122        kind == SyntaxKind::SET_EXPR
29123    }
29124    #[inline]
29125    fn cast(syntax: SyntaxNode) -> Option<Self> {
29126        if Self::can_cast(syntax.kind()) {
29127            Some(Self { syntax })
29128        } else {
29129            None
29130        }
29131    }
29132    #[inline]
29133    fn syntax(&self) -> &SyntaxNode {
29134        &self.syntax
29135    }
29136}
29137impl AstNode for SetExprList {
29138    #[inline]
29139    fn can_cast(kind: SyntaxKind) -> bool {
29140        kind == SyntaxKind::SET_EXPR_LIST
29141    }
29142    #[inline]
29143    fn cast(syntax: SyntaxNode) -> Option<Self> {
29144        if Self::can_cast(syntax.kind()) {
29145            Some(Self { syntax })
29146        } else {
29147            None
29148        }
29149    }
29150    #[inline]
29151    fn syntax(&self) -> &SyntaxNode {
29152        &self.syntax
29153    }
29154}
29155impl AstNode for SetExpression {
29156    #[inline]
29157    fn can_cast(kind: SyntaxKind) -> bool {
29158        kind == SyntaxKind::SET_EXPRESSION
29159    }
29160    #[inline]
29161    fn cast(syntax: SyntaxNode) -> Option<Self> {
29162        if Self::can_cast(syntax.kind()) {
29163            Some(Self { syntax })
29164        } else {
29165            None
29166        }
29167    }
29168    #[inline]
29169    fn syntax(&self) -> &SyntaxNode {
29170        &self.syntax
29171    }
29172}
29173impl AstNode for SetFuncOption {
29174    #[inline]
29175    fn can_cast(kind: SyntaxKind) -> bool {
29176        kind == SyntaxKind::SET_FUNC_OPTION
29177    }
29178    #[inline]
29179    fn cast(syntax: SyntaxNode) -> Option<Self> {
29180        if Self::can_cast(syntax.kind()) {
29181            Some(Self { syntax })
29182        } else {
29183            None
29184        }
29185    }
29186    #[inline]
29187    fn syntax(&self) -> &SyntaxNode {
29188        &self.syntax
29189    }
29190}
29191impl AstNode for SetGenerated {
29192    #[inline]
29193    fn can_cast(kind: SyntaxKind) -> bool {
29194        kind == SyntaxKind::SET_GENERATED
29195    }
29196    #[inline]
29197    fn cast(syntax: SyntaxNode) -> Option<Self> {
29198        if Self::can_cast(syntax.kind()) {
29199            Some(Self { syntax })
29200        } else {
29201            None
29202        }
29203    }
29204    #[inline]
29205    fn syntax(&self) -> &SyntaxNode {
29206        &self.syntax
29207    }
29208}
29209impl AstNode for SetGeneratedOptions {
29210    #[inline]
29211    fn can_cast(kind: SyntaxKind) -> bool {
29212        kind == SyntaxKind::SET_GENERATED_OPTIONS
29213    }
29214    #[inline]
29215    fn cast(syntax: SyntaxNode) -> Option<Self> {
29216        if Self::can_cast(syntax.kind()) {
29217            Some(Self { syntax })
29218        } else {
29219            None
29220        }
29221    }
29222    #[inline]
29223    fn syntax(&self) -> &SyntaxNode {
29224        &self.syntax
29225    }
29226}
29227impl AstNode for SetLogged {
29228    #[inline]
29229    fn can_cast(kind: SyntaxKind) -> bool {
29230        kind == SyntaxKind::SET_LOGGED
29231    }
29232    #[inline]
29233    fn cast(syntax: SyntaxNode) -> Option<Self> {
29234        if Self::can_cast(syntax.kind()) {
29235            Some(Self { syntax })
29236        } else {
29237            None
29238        }
29239    }
29240    #[inline]
29241    fn syntax(&self) -> &SyntaxNode {
29242        &self.syntax
29243    }
29244}
29245impl AstNode for SetMultipleColumns {
29246    #[inline]
29247    fn can_cast(kind: SyntaxKind) -> bool {
29248        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
29249    }
29250    #[inline]
29251    fn cast(syntax: SyntaxNode) -> Option<Self> {
29252        if Self::can_cast(syntax.kind()) {
29253            Some(Self { syntax })
29254        } else {
29255            None
29256        }
29257    }
29258    #[inline]
29259    fn syntax(&self) -> &SyntaxNode {
29260        &self.syntax
29261    }
29262}
29263impl AstNode for SetNotNull {
29264    #[inline]
29265    fn can_cast(kind: SyntaxKind) -> bool {
29266        kind == SyntaxKind::SET_NOT_NULL
29267    }
29268    #[inline]
29269    fn cast(syntax: SyntaxNode) -> Option<Self> {
29270        if Self::can_cast(syntax.kind()) {
29271            Some(Self { syntax })
29272        } else {
29273            None
29274        }
29275    }
29276    #[inline]
29277    fn syntax(&self) -> &SyntaxNode {
29278        &self.syntax
29279    }
29280}
29281impl AstNode for SetNullColumns {
29282    #[inline]
29283    fn can_cast(kind: SyntaxKind) -> bool {
29284        kind == SyntaxKind::SET_NULL_COLUMNS
29285    }
29286    #[inline]
29287    fn cast(syntax: SyntaxNode) -> Option<Self> {
29288        if Self::can_cast(syntax.kind()) {
29289            Some(Self { syntax })
29290        } else {
29291            None
29292        }
29293    }
29294    #[inline]
29295    fn syntax(&self) -> &SyntaxNode {
29296        &self.syntax
29297    }
29298}
29299impl AstNode for SetOptions {
29300    #[inline]
29301    fn can_cast(kind: SyntaxKind) -> bool {
29302        kind == SyntaxKind::SET_OPTIONS
29303    }
29304    #[inline]
29305    fn cast(syntax: SyntaxNode) -> Option<Self> {
29306        if Self::can_cast(syntax.kind()) {
29307            Some(Self { syntax })
29308        } else {
29309            None
29310        }
29311    }
29312    #[inline]
29313    fn syntax(&self) -> &SyntaxNode {
29314        &self.syntax
29315    }
29316}
29317impl AstNode for SetOptionsList {
29318    #[inline]
29319    fn can_cast(kind: SyntaxKind) -> bool {
29320        kind == SyntaxKind::SET_OPTIONS_LIST
29321    }
29322    #[inline]
29323    fn cast(syntax: SyntaxNode) -> Option<Self> {
29324        if Self::can_cast(syntax.kind()) {
29325            Some(Self { syntax })
29326        } else {
29327            None
29328        }
29329    }
29330    #[inline]
29331    fn syntax(&self) -> &SyntaxNode {
29332        &self.syntax
29333    }
29334}
29335impl AstNode for SetRole {
29336    #[inline]
29337    fn can_cast(kind: SyntaxKind) -> bool {
29338        kind == SyntaxKind::SET_ROLE
29339    }
29340    #[inline]
29341    fn cast(syntax: SyntaxNode) -> Option<Self> {
29342        if Self::can_cast(syntax.kind()) {
29343            Some(Self { syntax })
29344        } else {
29345            None
29346        }
29347    }
29348    #[inline]
29349    fn syntax(&self) -> &SyntaxNode {
29350        &self.syntax
29351    }
29352}
29353impl AstNode for SetSchema {
29354    #[inline]
29355    fn can_cast(kind: SyntaxKind) -> bool {
29356        kind == SyntaxKind::SET_SCHEMA
29357    }
29358    #[inline]
29359    fn cast(syntax: SyntaxNode) -> Option<Self> {
29360        if Self::can_cast(syntax.kind()) {
29361            Some(Self { syntax })
29362        } else {
29363            None
29364        }
29365    }
29366    #[inline]
29367    fn syntax(&self) -> &SyntaxNode {
29368        &self.syntax
29369    }
29370}
29371impl AstNode for SetSequenceOption {
29372    #[inline]
29373    fn can_cast(kind: SyntaxKind) -> bool {
29374        kind == SyntaxKind::SET_SEQUENCE_OPTION
29375    }
29376    #[inline]
29377    fn cast(syntax: SyntaxNode) -> Option<Self> {
29378        if Self::can_cast(syntax.kind()) {
29379            Some(Self { syntax })
29380        } else {
29381            None
29382        }
29383    }
29384    #[inline]
29385    fn syntax(&self) -> &SyntaxNode {
29386        &self.syntax
29387    }
29388}
29389impl AstNode for SetSessionAuth {
29390    #[inline]
29391    fn can_cast(kind: SyntaxKind) -> bool {
29392        kind == SyntaxKind::SET_SESSION_AUTH
29393    }
29394    #[inline]
29395    fn cast(syntax: SyntaxNode) -> Option<Self> {
29396        if Self::can_cast(syntax.kind()) {
29397            Some(Self { syntax })
29398        } else {
29399            None
29400        }
29401    }
29402    #[inline]
29403    fn syntax(&self) -> &SyntaxNode {
29404        &self.syntax
29405    }
29406}
29407impl AstNode for SetSingleColumn {
29408    #[inline]
29409    fn can_cast(kind: SyntaxKind) -> bool {
29410        kind == SyntaxKind::SET_SINGLE_COLUMN
29411    }
29412    #[inline]
29413    fn cast(syntax: SyntaxNode) -> Option<Self> {
29414        if Self::can_cast(syntax.kind()) {
29415            Some(Self { syntax })
29416        } else {
29417            None
29418        }
29419    }
29420    #[inline]
29421    fn syntax(&self) -> &SyntaxNode {
29422        &self.syntax
29423    }
29424}
29425impl AstNode for SetStatistics {
29426    #[inline]
29427    fn can_cast(kind: SyntaxKind) -> bool {
29428        kind == SyntaxKind::SET_STATISTICS
29429    }
29430    #[inline]
29431    fn cast(syntax: SyntaxNode) -> Option<Self> {
29432        if Self::can_cast(syntax.kind()) {
29433            Some(Self { syntax })
29434        } else {
29435            None
29436        }
29437    }
29438    #[inline]
29439    fn syntax(&self) -> &SyntaxNode {
29440        &self.syntax
29441    }
29442}
29443impl AstNode for SetStorage {
29444    #[inline]
29445    fn can_cast(kind: SyntaxKind) -> bool {
29446        kind == SyntaxKind::SET_STORAGE
29447    }
29448    #[inline]
29449    fn cast(syntax: SyntaxNode) -> Option<Self> {
29450        if Self::can_cast(syntax.kind()) {
29451            Some(Self { syntax })
29452        } else {
29453            None
29454        }
29455    }
29456    #[inline]
29457    fn syntax(&self) -> &SyntaxNode {
29458        &self.syntax
29459    }
29460}
29461impl AstNode for SetTablespace {
29462    #[inline]
29463    fn can_cast(kind: SyntaxKind) -> bool {
29464        kind == SyntaxKind::SET_TABLESPACE
29465    }
29466    #[inline]
29467    fn cast(syntax: SyntaxNode) -> Option<Self> {
29468        if Self::can_cast(syntax.kind()) {
29469            Some(Self { syntax })
29470        } else {
29471            None
29472        }
29473    }
29474    #[inline]
29475    fn syntax(&self) -> &SyntaxNode {
29476        &self.syntax
29477    }
29478}
29479impl AstNode for SetTransaction {
29480    #[inline]
29481    fn can_cast(kind: SyntaxKind) -> bool {
29482        kind == SyntaxKind::SET_TRANSACTION
29483    }
29484    #[inline]
29485    fn cast(syntax: SyntaxNode) -> Option<Self> {
29486        if Self::can_cast(syntax.kind()) {
29487            Some(Self { syntax })
29488        } else {
29489            None
29490        }
29491    }
29492    #[inline]
29493    fn syntax(&self) -> &SyntaxNode {
29494        &self.syntax
29495    }
29496}
29497impl AstNode for SetType {
29498    #[inline]
29499    fn can_cast(kind: SyntaxKind) -> bool {
29500        kind == SyntaxKind::SET_TYPE
29501    }
29502    #[inline]
29503    fn cast(syntax: SyntaxNode) -> Option<Self> {
29504        if Self::can_cast(syntax.kind()) {
29505            Some(Self { syntax })
29506        } else {
29507            None
29508        }
29509    }
29510    #[inline]
29511    fn syntax(&self) -> &SyntaxNode {
29512        &self.syntax
29513    }
29514}
29515impl AstNode for SetUnlogged {
29516    #[inline]
29517    fn can_cast(kind: SyntaxKind) -> bool {
29518        kind == SyntaxKind::SET_UNLOGGED
29519    }
29520    #[inline]
29521    fn cast(syntax: SyntaxNode) -> Option<Self> {
29522        if Self::can_cast(syntax.kind()) {
29523            Some(Self { syntax })
29524        } else {
29525            None
29526        }
29527    }
29528    #[inline]
29529    fn syntax(&self) -> &SyntaxNode {
29530        &self.syntax
29531    }
29532}
29533impl AstNode for SetWithoutCluster {
29534    #[inline]
29535    fn can_cast(kind: SyntaxKind) -> bool {
29536        kind == SyntaxKind::SET_WITHOUT_CLUSTER
29537    }
29538    #[inline]
29539    fn cast(syntax: SyntaxNode) -> Option<Self> {
29540        if Self::can_cast(syntax.kind()) {
29541            Some(Self { syntax })
29542        } else {
29543            None
29544        }
29545    }
29546    #[inline]
29547    fn syntax(&self) -> &SyntaxNode {
29548        &self.syntax
29549    }
29550}
29551impl AstNode for SetWithoutOids {
29552    #[inline]
29553    fn can_cast(kind: SyntaxKind) -> bool {
29554        kind == SyntaxKind::SET_WITHOUT_OIDS
29555    }
29556    #[inline]
29557    fn cast(syntax: SyntaxNode) -> Option<Self> {
29558        if Self::can_cast(syntax.kind()) {
29559            Some(Self { syntax })
29560        } else {
29561            None
29562        }
29563    }
29564    #[inline]
29565    fn syntax(&self) -> &SyntaxNode {
29566        &self.syntax
29567    }
29568}
29569impl AstNode for Show {
29570    #[inline]
29571    fn can_cast(kind: SyntaxKind) -> bool {
29572        kind == SyntaxKind::SHOW
29573    }
29574    #[inline]
29575    fn cast(syntax: SyntaxNode) -> Option<Self> {
29576        if Self::can_cast(syntax.kind()) {
29577            Some(Self { syntax })
29578        } else {
29579            None
29580        }
29581    }
29582    #[inline]
29583    fn syntax(&self) -> &SyntaxNode {
29584        &self.syntax
29585    }
29586}
29587impl AstNode for SimilarTo {
29588    #[inline]
29589    fn can_cast(kind: SyntaxKind) -> bool {
29590        kind == SyntaxKind::SIMILAR_TO
29591    }
29592    #[inline]
29593    fn cast(syntax: SyntaxNode) -> Option<Self> {
29594        if Self::can_cast(syntax.kind()) {
29595            Some(Self { syntax })
29596        } else {
29597            None
29598        }
29599    }
29600    #[inline]
29601    fn syntax(&self) -> &SyntaxNode {
29602        &self.syntax
29603    }
29604}
29605impl AstNode for SliceExpr {
29606    #[inline]
29607    fn can_cast(kind: SyntaxKind) -> bool {
29608        kind == SyntaxKind::SLICE_EXPR
29609    }
29610    #[inline]
29611    fn cast(syntax: SyntaxNode) -> Option<Self> {
29612        if Self::can_cast(syntax.kind()) {
29613            Some(Self { syntax })
29614        } else {
29615            None
29616        }
29617    }
29618    #[inline]
29619    fn syntax(&self) -> &SyntaxNode {
29620        &self.syntax
29621    }
29622}
29623impl AstNode for SomeFn {
29624    #[inline]
29625    fn can_cast(kind: SyntaxKind) -> bool {
29626        kind == SyntaxKind::SOME_FN
29627    }
29628    #[inline]
29629    fn cast(syntax: SyntaxNode) -> Option<Self> {
29630        if Self::can_cast(syntax.kind()) {
29631            Some(Self { syntax })
29632        } else {
29633            None
29634        }
29635    }
29636    #[inline]
29637    fn syntax(&self) -> &SyntaxNode {
29638        &self.syntax
29639    }
29640}
29641impl AstNode for SortAsc {
29642    #[inline]
29643    fn can_cast(kind: SyntaxKind) -> bool {
29644        kind == SyntaxKind::SORT_ASC
29645    }
29646    #[inline]
29647    fn cast(syntax: SyntaxNode) -> Option<Self> {
29648        if Self::can_cast(syntax.kind()) {
29649            Some(Self { syntax })
29650        } else {
29651            None
29652        }
29653    }
29654    #[inline]
29655    fn syntax(&self) -> &SyntaxNode {
29656        &self.syntax
29657    }
29658}
29659impl AstNode for SortBy {
29660    #[inline]
29661    fn can_cast(kind: SyntaxKind) -> bool {
29662        kind == SyntaxKind::SORT_BY
29663    }
29664    #[inline]
29665    fn cast(syntax: SyntaxNode) -> Option<Self> {
29666        if Self::can_cast(syntax.kind()) {
29667            Some(Self { syntax })
29668        } else {
29669            None
29670        }
29671    }
29672    #[inline]
29673    fn syntax(&self) -> &SyntaxNode {
29674        &self.syntax
29675    }
29676}
29677impl AstNode for SortByList {
29678    #[inline]
29679    fn can_cast(kind: SyntaxKind) -> bool {
29680        kind == SyntaxKind::SORT_BY_LIST
29681    }
29682    #[inline]
29683    fn cast(syntax: SyntaxNode) -> Option<Self> {
29684        if Self::can_cast(syntax.kind()) {
29685            Some(Self { syntax })
29686        } else {
29687            None
29688        }
29689    }
29690    #[inline]
29691    fn syntax(&self) -> &SyntaxNode {
29692        &self.syntax
29693    }
29694}
29695impl AstNode for SortDesc {
29696    #[inline]
29697    fn can_cast(kind: SyntaxKind) -> bool {
29698        kind == SyntaxKind::SORT_DESC
29699    }
29700    #[inline]
29701    fn cast(syntax: SyntaxNode) -> Option<Self> {
29702        if Self::can_cast(syntax.kind()) {
29703            Some(Self { syntax })
29704        } else {
29705            None
29706        }
29707    }
29708    #[inline]
29709    fn syntax(&self) -> &SyntaxNode {
29710        &self.syntax
29711    }
29712}
29713impl AstNode for SortUsing {
29714    #[inline]
29715    fn can_cast(kind: SyntaxKind) -> bool {
29716        kind == SyntaxKind::SORT_USING
29717    }
29718    #[inline]
29719    fn cast(syntax: SyntaxNode) -> Option<Self> {
29720        if Self::can_cast(syntax.kind()) {
29721            Some(Self { syntax })
29722        } else {
29723            None
29724        }
29725    }
29726    #[inline]
29727    fn syntax(&self) -> &SyntaxNode {
29728        &self.syntax
29729    }
29730}
29731impl AstNode for SourceFile {
29732    #[inline]
29733    fn can_cast(kind: SyntaxKind) -> bool {
29734        kind == SyntaxKind::SOURCE_FILE
29735    }
29736    #[inline]
29737    fn cast(syntax: SyntaxNode) -> Option<Self> {
29738        if Self::can_cast(syntax.kind()) {
29739            Some(Self { syntax })
29740        } else {
29741            None
29742        }
29743    }
29744    #[inline]
29745    fn syntax(&self) -> &SyntaxNode {
29746        &self.syntax
29747    }
29748}
29749impl AstNode for SourceVertexTable {
29750    #[inline]
29751    fn can_cast(kind: SyntaxKind) -> bool {
29752        kind == SyntaxKind::SOURCE_VERTEX_TABLE
29753    }
29754    #[inline]
29755    fn cast(syntax: SyntaxNode) -> Option<Self> {
29756        if Self::can_cast(syntax.kind()) {
29757            Some(Self { syntax })
29758        } else {
29759            None
29760        }
29761    }
29762    #[inline]
29763    fn syntax(&self) -> &SyntaxNode {
29764        &self.syntax
29765    }
29766}
29767impl AstNode for SplitPartition {
29768    #[inline]
29769    fn can_cast(kind: SyntaxKind) -> bool {
29770        kind == SyntaxKind::SPLIT_PARTITION
29771    }
29772    #[inline]
29773    fn cast(syntax: SyntaxNode) -> Option<Self> {
29774        if Self::can_cast(syntax.kind()) {
29775            Some(Self { syntax })
29776        } else {
29777            None
29778        }
29779    }
29780    #[inline]
29781    fn syntax(&self) -> &SyntaxNode {
29782        &self.syntax
29783    }
29784}
29785impl AstNode for Storage {
29786    #[inline]
29787    fn can_cast(kind: SyntaxKind) -> bool {
29788        kind == SyntaxKind::STORAGE
29789    }
29790    #[inline]
29791    fn cast(syntax: SyntaxNode) -> Option<Self> {
29792        if Self::can_cast(syntax.kind()) {
29793            Some(Self { syntax })
29794        } else {
29795            None
29796        }
29797    }
29798    #[inline]
29799    fn syntax(&self) -> &SyntaxNode {
29800        &self.syntax
29801    }
29802}
29803impl AstNode for StrictFuncOption {
29804    #[inline]
29805    fn can_cast(kind: SyntaxKind) -> bool {
29806        kind == SyntaxKind::STRICT_FUNC_OPTION
29807    }
29808    #[inline]
29809    fn cast(syntax: SyntaxNode) -> Option<Self> {
29810        if Self::can_cast(syntax.kind()) {
29811            Some(Self { syntax })
29812        } else {
29813            None
29814        }
29815    }
29816    #[inline]
29817    fn syntax(&self) -> &SyntaxNode {
29818        &self.syntax
29819    }
29820}
29821impl AstNode for SubstringFn {
29822    #[inline]
29823    fn can_cast(kind: SyntaxKind) -> bool {
29824        kind == SyntaxKind::SUBSTRING_FN
29825    }
29826    #[inline]
29827    fn cast(syntax: SyntaxNode) -> Option<Self> {
29828        if Self::can_cast(syntax.kind()) {
29829            Some(Self { syntax })
29830        } else {
29831            None
29832        }
29833    }
29834    #[inline]
29835    fn syntax(&self) -> &SyntaxNode {
29836        &self.syntax
29837    }
29838}
29839impl AstNode for SupportFuncOption {
29840    #[inline]
29841    fn can_cast(kind: SyntaxKind) -> bool {
29842        kind == SyntaxKind::SUPPORT_FUNC_OPTION
29843    }
29844    #[inline]
29845    fn cast(syntax: SyntaxNode) -> Option<Self> {
29846        if Self::can_cast(syntax.kind()) {
29847            Some(Self { syntax })
29848        } else {
29849            None
29850        }
29851    }
29852    #[inline]
29853    fn syntax(&self) -> &SyntaxNode {
29854        &self.syntax
29855    }
29856}
29857impl AstNode for Table {
29858    #[inline]
29859    fn can_cast(kind: SyntaxKind) -> bool {
29860        kind == SyntaxKind::TABLE
29861    }
29862    #[inline]
29863    fn cast(syntax: SyntaxNode) -> Option<Self> {
29864        if Self::can_cast(syntax.kind()) {
29865            Some(Self { syntax })
29866        } else {
29867            None
29868        }
29869    }
29870    #[inline]
29871    fn syntax(&self) -> &SyntaxNode {
29872        &self.syntax
29873    }
29874}
29875impl AstNode for TableAndColumns {
29876    #[inline]
29877    fn can_cast(kind: SyntaxKind) -> bool {
29878        kind == SyntaxKind::TABLE_AND_COLUMNS
29879    }
29880    #[inline]
29881    fn cast(syntax: SyntaxNode) -> Option<Self> {
29882        if Self::can_cast(syntax.kind()) {
29883            Some(Self { syntax })
29884        } else {
29885            None
29886        }
29887    }
29888    #[inline]
29889    fn syntax(&self) -> &SyntaxNode {
29890        &self.syntax
29891    }
29892}
29893impl AstNode for TableAndColumnsList {
29894    #[inline]
29895    fn can_cast(kind: SyntaxKind) -> bool {
29896        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
29897    }
29898    #[inline]
29899    fn cast(syntax: SyntaxNode) -> Option<Self> {
29900        if Self::can_cast(syntax.kind()) {
29901            Some(Self { syntax })
29902        } else {
29903            None
29904        }
29905    }
29906    #[inline]
29907    fn syntax(&self) -> &SyntaxNode {
29908        &self.syntax
29909    }
29910}
29911impl AstNode for TableArgList {
29912    #[inline]
29913    fn can_cast(kind: SyntaxKind) -> bool {
29914        kind == SyntaxKind::TABLE_ARG_LIST
29915    }
29916    #[inline]
29917    fn cast(syntax: SyntaxNode) -> Option<Self> {
29918        if Self::can_cast(syntax.kind()) {
29919            Some(Self { syntax })
29920        } else {
29921            None
29922        }
29923    }
29924    #[inline]
29925    fn syntax(&self) -> &SyntaxNode {
29926        &self.syntax
29927    }
29928}
29929impl AstNode for TableList {
29930    #[inline]
29931    fn can_cast(kind: SyntaxKind) -> bool {
29932        kind == SyntaxKind::TABLE_LIST
29933    }
29934    #[inline]
29935    fn cast(syntax: SyntaxNode) -> Option<Self> {
29936        if Self::can_cast(syntax.kind()) {
29937            Some(Self { syntax })
29938        } else {
29939            None
29940        }
29941    }
29942    #[inline]
29943    fn syntax(&self) -> &SyntaxNode {
29944        &self.syntax
29945    }
29946}
29947impl AstNode for TablesampleClause {
29948    #[inline]
29949    fn can_cast(kind: SyntaxKind) -> bool {
29950        kind == SyntaxKind::TABLESAMPLE_CLAUSE
29951    }
29952    #[inline]
29953    fn cast(syntax: SyntaxNode) -> Option<Self> {
29954        if Self::can_cast(syntax.kind()) {
29955            Some(Self { syntax })
29956        } else {
29957            None
29958        }
29959    }
29960    #[inline]
29961    fn syntax(&self) -> &SyntaxNode {
29962        &self.syntax
29963    }
29964}
29965impl AstNode for Tablespace {
29966    #[inline]
29967    fn can_cast(kind: SyntaxKind) -> bool {
29968        kind == SyntaxKind::TABLESPACE
29969    }
29970    #[inline]
29971    fn cast(syntax: SyntaxNode) -> Option<Self> {
29972        if Self::can_cast(syntax.kind()) {
29973            Some(Self { syntax })
29974        } else {
29975            None
29976        }
29977    }
29978    #[inline]
29979    fn syntax(&self) -> &SyntaxNode {
29980        &self.syntax
29981    }
29982}
29983impl AstNode for Target {
29984    #[inline]
29985    fn can_cast(kind: SyntaxKind) -> bool {
29986        kind == SyntaxKind::TARGET
29987    }
29988    #[inline]
29989    fn cast(syntax: SyntaxNode) -> Option<Self> {
29990        if Self::can_cast(syntax.kind()) {
29991            Some(Self { syntax })
29992        } else {
29993            None
29994        }
29995    }
29996    #[inline]
29997    fn syntax(&self) -> &SyntaxNode {
29998        &self.syntax
29999    }
30000}
30001impl AstNode for TargetList {
30002    #[inline]
30003    fn can_cast(kind: SyntaxKind) -> bool {
30004        kind == SyntaxKind::TARGET_LIST
30005    }
30006    #[inline]
30007    fn cast(syntax: SyntaxNode) -> Option<Self> {
30008        if Self::can_cast(syntax.kind()) {
30009            Some(Self { syntax })
30010        } else {
30011            None
30012        }
30013    }
30014    #[inline]
30015    fn syntax(&self) -> &SyntaxNode {
30016        &self.syntax
30017    }
30018}
30019impl AstNode for Temp {
30020    #[inline]
30021    fn can_cast(kind: SyntaxKind) -> bool {
30022        kind == SyntaxKind::TEMP
30023    }
30024    #[inline]
30025    fn cast(syntax: SyntaxNode) -> Option<Self> {
30026        if Self::can_cast(syntax.kind()) {
30027            Some(Self { syntax })
30028        } else {
30029            None
30030        }
30031    }
30032    #[inline]
30033    fn syntax(&self) -> &SyntaxNode {
30034        &self.syntax
30035    }
30036}
30037impl AstNode for TimeType {
30038    #[inline]
30039    fn can_cast(kind: SyntaxKind) -> bool {
30040        kind == SyntaxKind::TIME_TYPE
30041    }
30042    #[inline]
30043    fn cast(syntax: SyntaxNode) -> Option<Self> {
30044        if Self::can_cast(syntax.kind()) {
30045            Some(Self { syntax })
30046        } else {
30047            None
30048        }
30049    }
30050    #[inline]
30051    fn syntax(&self) -> &SyntaxNode {
30052        &self.syntax
30053    }
30054}
30055impl AstNode for Timing {
30056    #[inline]
30057    fn can_cast(kind: SyntaxKind) -> bool {
30058        kind == SyntaxKind::TIMING
30059    }
30060    #[inline]
30061    fn cast(syntax: SyntaxNode) -> Option<Self> {
30062        if Self::can_cast(syntax.kind()) {
30063            Some(Self { syntax })
30064        } else {
30065            None
30066        }
30067    }
30068    #[inline]
30069    fn syntax(&self) -> &SyntaxNode {
30070        &self.syntax
30071    }
30072}
30073impl AstNode for TransactionModeList {
30074    #[inline]
30075    fn can_cast(kind: SyntaxKind) -> bool {
30076        kind == SyntaxKind::TRANSACTION_MODE_LIST
30077    }
30078    #[inline]
30079    fn cast(syntax: SyntaxNode) -> Option<Self> {
30080        if Self::can_cast(syntax.kind()) {
30081            Some(Self { syntax })
30082        } else {
30083            None
30084        }
30085    }
30086    #[inline]
30087    fn syntax(&self) -> &SyntaxNode {
30088        &self.syntax
30089    }
30090}
30091impl AstNode for TransformFromFunc {
30092    #[inline]
30093    fn can_cast(kind: SyntaxKind) -> bool {
30094        kind == SyntaxKind::TRANSFORM_FROM_FUNC
30095    }
30096    #[inline]
30097    fn cast(syntax: SyntaxNode) -> Option<Self> {
30098        if Self::can_cast(syntax.kind()) {
30099            Some(Self { syntax })
30100        } else {
30101            None
30102        }
30103    }
30104    #[inline]
30105    fn syntax(&self) -> &SyntaxNode {
30106        &self.syntax
30107    }
30108}
30109impl AstNode for TransformFuncOption {
30110    #[inline]
30111    fn can_cast(kind: SyntaxKind) -> bool {
30112        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
30113    }
30114    #[inline]
30115    fn cast(syntax: SyntaxNode) -> Option<Self> {
30116        if Self::can_cast(syntax.kind()) {
30117            Some(Self { syntax })
30118        } else {
30119            None
30120        }
30121    }
30122    #[inline]
30123    fn syntax(&self) -> &SyntaxNode {
30124        &self.syntax
30125    }
30126}
30127impl AstNode for TransformToFunc {
30128    #[inline]
30129    fn can_cast(kind: SyntaxKind) -> bool {
30130        kind == SyntaxKind::TRANSFORM_TO_FUNC
30131    }
30132    #[inline]
30133    fn cast(syntax: SyntaxNode) -> Option<Self> {
30134        if Self::can_cast(syntax.kind()) {
30135            Some(Self { syntax })
30136        } else {
30137            None
30138        }
30139    }
30140    #[inline]
30141    fn syntax(&self) -> &SyntaxNode {
30142        &self.syntax
30143    }
30144}
30145impl AstNode for TriggerEvent {
30146    #[inline]
30147    fn can_cast(kind: SyntaxKind) -> bool {
30148        kind == SyntaxKind::TRIGGER_EVENT
30149    }
30150    #[inline]
30151    fn cast(syntax: SyntaxNode) -> Option<Self> {
30152        if Self::can_cast(syntax.kind()) {
30153            Some(Self { syntax })
30154        } else {
30155            None
30156        }
30157    }
30158    #[inline]
30159    fn syntax(&self) -> &SyntaxNode {
30160        &self.syntax
30161    }
30162}
30163impl AstNode for TriggerEventList {
30164    #[inline]
30165    fn can_cast(kind: SyntaxKind) -> bool {
30166        kind == SyntaxKind::TRIGGER_EVENT_LIST
30167    }
30168    #[inline]
30169    fn cast(syntax: SyntaxNode) -> Option<Self> {
30170        if Self::can_cast(syntax.kind()) {
30171            Some(Self { syntax })
30172        } else {
30173            None
30174        }
30175    }
30176    #[inline]
30177    fn syntax(&self) -> &SyntaxNode {
30178        &self.syntax
30179    }
30180}
30181impl AstNode for TriggerEventUpdate {
30182    #[inline]
30183    fn can_cast(kind: SyntaxKind) -> bool {
30184        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
30185    }
30186    #[inline]
30187    fn cast(syntax: SyntaxNode) -> Option<Self> {
30188        if Self::can_cast(syntax.kind()) {
30189            Some(Self { syntax })
30190        } else {
30191            None
30192        }
30193    }
30194    #[inline]
30195    fn syntax(&self) -> &SyntaxNode {
30196        &self.syntax
30197    }
30198}
30199impl AstNode for TrimFn {
30200    #[inline]
30201    fn can_cast(kind: SyntaxKind) -> bool {
30202        kind == SyntaxKind::TRIM_FN
30203    }
30204    #[inline]
30205    fn cast(syntax: SyntaxNode) -> Option<Self> {
30206        if Self::can_cast(syntax.kind()) {
30207            Some(Self { syntax })
30208        } else {
30209            None
30210        }
30211    }
30212    #[inline]
30213    fn syntax(&self) -> &SyntaxNode {
30214        &self.syntax
30215    }
30216}
30217impl AstNode for Truncate {
30218    #[inline]
30219    fn can_cast(kind: SyntaxKind) -> bool {
30220        kind == SyntaxKind::TRUNCATE
30221    }
30222    #[inline]
30223    fn cast(syntax: SyntaxNode) -> Option<Self> {
30224        if Self::can_cast(syntax.kind()) {
30225            Some(Self { syntax })
30226        } else {
30227            None
30228        }
30229    }
30230    #[inline]
30231    fn syntax(&self) -> &SyntaxNode {
30232        &self.syntax
30233    }
30234}
30235impl AstNode for TupleExpr {
30236    #[inline]
30237    fn can_cast(kind: SyntaxKind) -> bool {
30238        kind == SyntaxKind::TUPLE_EXPR
30239    }
30240    #[inline]
30241    fn cast(syntax: SyntaxNode) -> Option<Self> {
30242        if Self::can_cast(syntax.kind()) {
30243            Some(Self { syntax })
30244        } else {
30245            None
30246        }
30247    }
30248    #[inline]
30249    fn syntax(&self) -> &SyntaxNode {
30250        &self.syntax
30251    }
30252}
30253impl AstNode for UnicodeNormalForm {
30254    #[inline]
30255    fn can_cast(kind: SyntaxKind) -> bool {
30256        kind == SyntaxKind::UNICODE_NORMAL_FORM
30257    }
30258    #[inline]
30259    fn cast(syntax: SyntaxNode) -> Option<Self> {
30260        if Self::can_cast(syntax.kind()) {
30261            Some(Self { syntax })
30262        } else {
30263            None
30264        }
30265    }
30266    #[inline]
30267    fn syntax(&self) -> &SyntaxNode {
30268        &self.syntax
30269    }
30270}
30271impl AstNode for UniqueConstraint {
30272    #[inline]
30273    fn can_cast(kind: SyntaxKind) -> bool {
30274        kind == SyntaxKind::UNIQUE_CONSTRAINT
30275    }
30276    #[inline]
30277    fn cast(syntax: SyntaxNode) -> Option<Self> {
30278        if Self::can_cast(syntax.kind()) {
30279            Some(Self { syntax })
30280        } else {
30281            None
30282        }
30283    }
30284    #[inline]
30285    fn syntax(&self) -> &SyntaxNode {
30286        &self.syntax
30287    }
30288}
30289impl AstNode for Unlisten {
30290    #[inline]
30291    fn can_cast(kind: SyntaxKind) -> bool {
30292        kind == SyntaxKind::UNLISTEN
30293    }
30294    #[inline]
30295    fn cast(syntax: SyntaxNode) -> Option<Self> {
30296        if Self::can_cast(syntax.kind()) {
30297            Some(Self { syntax })
30298        } else {
30299            None
30300        }
30301    }
30302    #[inline]
30303    fn syntax(&self) -> &SyntaxNode {
30304        &self.syntax
30305    }
30306}
30307impl AstNode for Update {
30308    #[inline]
30309    fn can_cast(kind: SyntaxKind) -> bool {
30310        kind == SyntaxKind::UPDATE
30311    }
30312    #[inline]
30313    fn cast(syntax: SyntaxNode) -> Option<Self> {
30314        if Self::can_cast(syntax.kind()) {
30315            Some(Self { syntax })
30316        } else {
30317            None
30318        }
30319    }
30320    #[inline]
30321    fn syntax(&self) -> &SyntaxNode {
30322        &self.syntax
30323    }
30324}
30325impl AstNode for UsingClause {
30326    #[inline]
30327    fn can_cast(kind: SyntaxKind) -> bool {
30328        kind == SyntaxKind::USING_CLAUSE
30329    }
30330    #[inline]
30331    fn cast(syntax: SyntaxNode) -> Option<Self> {
30332        if Self::can_cast(syntax.kind()) {
30333            Some(Self { syntax })
30334        } else {
30335            None
30336        }
30337    }
30338    #[inline]
30339    fn syntax(&self) -> &SyntaxNode {
30340        &self.syntax
30341    }
30342}
30343impl AstNode for UsingExprClause {
30344    #[inline]
30345    fn can_cast(kind: SyntaxKind) -> bool {
30346        kind == SyntaxKind::USING_EXPR_CLAUSE
30347    }
30348    #[inline]
30349    fn cast(syntax: SyntaxNode) -> Option<Self> {
30350        if Self::can_cast(syntax.kind()) {
30351            Some(Self { syntax })
30352        } else {
30353            None
30354        }
30355    }
30356    #[inline]
30357    fn syntax(&self) -> &SyntaxNode {
30358        &self.syntax
30359    }
30360}
30361impl AstNode for UsingIndex {
30362    #[inline]
30363    fn can_cast(kind: SyntaxKind) -> bool {
30364        kind == SyntaxKind::USING_INDEX
30365    }
30366    #[inline]
30367    fn cast(syntax: SyntaxNode) -> Option<Self> {
30368        if Self::can_cast(syntax.kind()) {
30369            Some(Self { syntax })
30370        } else {
30371            None
30372        }
30373    }
30374    #[inline]
30375    fn syntax(&self) -> &SyntaxNode {
30376        &self.syntax
30377    }
30378}
30379impl AstNode for UsingMethod {
30380    #[inline]
30381    fn can_cast(kind: SyntaxKind) -> bool {
30382        kind == SyntaxKind::USING_METHOD
30383    }
30384    #[inline]
30385    fn cast(syntax: SyntaxNode) -> Option<Self> {
30386        if Self::can_cast(syntax.kind()) {
30387            Some(Self { syntax })
30388        } else {
30389            None
30390        }
30391    }
30392    #[inline]
30393    fn syntax(&self) -> &SyntaxNode {
30394        &self.syntax
30395    }
30396}
30397impl AstNode for UsingOnClause {
30398    #[inline]
30399    fn can_cast(kind: SyntaxKind) -> bool {
30400        kind == SyntaxKind::USING_ON_CLAUSE
30401    }
30402    #[inline]
30403    fn cast(syntax: SyntaxNode) -> Option<Self> {
30404        if Self::can_cast(syntax.kind()) {
30405            Some(Self { syntax })
30406        } else {
30407            None
30408        }
30409    }
30410    #[inline]
30411    fn syntax(&self) -> &SyntaxNode {
30412        &self.syntax
30413    }
30414}
30415impl AstNode for Vacuum {
30416    #[inline]
30417    fn can_cast(kind: SyntaxKind) -> bool {
30418        kind == SyntaxKind::VACUUM
30419    }
30420    #[inline]
30421    fn cast(syntax: SyntaxNode) -> Option<Self> {
30422        if Self::can_cast(syntax.kind()) {
30423            Some(Self { syntax })
30424        } else {
30425            None
30426        }
30427    }
30428    #[inline]
30429    fn syntax(&self) -> &SyntaxNode {
30430        &self.syntax
30431    }
30432}
30433impl AstNode for VacuumOption {
30434    #[inline]
30435    fn can_cast(kind: SyntaxKind) -> bool {
30436        kind == SyntaxKind::VACUUM_OPTION
30437    }
30438    #[inline]
30439    fn cast(syntax: SyntaxNode) -> Option<Self> {
30440        if Self::can_cast(syntax.kind()) {
30441            Some(Self { syntax })
30442        } else {
30443            None
30444        }
30445    }
30446    #[inline]
30447    fn syntax(&self) -> &SyntaxNode {
30448        &self.syntax
30449    }
30450}
30451impl AstNode for VacuumOptionList {
30452    #[inline]
30453    fn can_cast(kind: SyntaxKind) -> bool {
30454        kind == SyntaxKind::VACUUM_OPTION_LIST
30455    }
30456    #[inline]
30457    fn cast(syntax: SyntaxNode) -> Option<Self> {
30458        if Self::can_cast(syntax.kind()) {
30459            Some(Self { syntax })
30460        } else {
30461            None
30462        }
30463    }
30464    #[inline]
30465    fn syntax(&self) -> &SyntaxNode {
30466        &self.syntax
30467    }
30468}
30469impl AstNode for ValidateConstraint {
30470    #[inline]
30471    fn can_cast(kind: SyntaxKind) -> bool {
30472        kind == SyntaxKind::VALIDATE_CONSTRAINT
30473    }
30474    #[inline]
30475    fn cast(syntax: SyntaxNode) -> Option<Self> {
30476        if Self::can_cast(syntax.kind()) {
30477            Some(Self { syntax })
30478        } else {
30479            None
30480        }
30481    }
30482    #[inline]
30483    fn syntax(&self) -> &SyntaxNode {
30484        &self.syntax
30485    }
30486}
30487impl AstNode for Values {
30488    #[inline]
30489    fn can_cast(kind: SyntaxKind) -> bool {
30490        kind == SyntaxKind::VALUES
30491    }
30492    #[inline]
30493    fn cast(syntax: SyntaxNode) -> Option<Self> {
30494        if Self::can_cast(syntax.kind()) {
30495            Some(Self { syntax })
30496        } else {
30497            None
30498        }
30499    }
30500    #[inline]
30501    fn syntax(&self) -> &SyntaxNode {
30502        &self.syntax
30503    }
30504}
30505impl AstNode for Variant {
30506    #[inline]
30507    fn can_cast(kind: SyntaxKind) -> bool {
30508        kind == SyntaxKind::VARIANT
30509    }
30510    #[inline]
30511    fn cast(syntax: SyntaxNode) -> Option<Self> {
30512        if Self::can_cast(syntax.kind()) {
30513            Some(Self { syntax })
30514        } else {
30515            None
30516        }
30517    }
30518    #[inline]
30519    fn syntax(&self) -> &SyntaxNode {
30520        &self.syntax
30521    }
30522}
30523impl AstNode for VariantList {
30524    #[inline]
30525    fn can_cast(kind: SyntaxKind) -> bool {
30526        kind == SyntaxKind::VARIANT_LIST
30527    }
30528    #[inline]
30529    fn cast(syntax: SyntaxNode) -> Option<Self> {
30530        if Self::can_cast(syntax.kind()) {
30531            Some(Self { syntax })
30532        } else {
30533            None
30534        }
30535    }
30536    #[inline]
30537    fn syntax(&self) -> &SyntaxNode {
30538        &self.syntax
30539    }
30540}
30541impl AstNode for VertexPattern {
30542    #[inline]
30543    fn can_cast(kind: SyntaxKind) -> bool {
30544        kind == SyntaxKind::VERTEX_PATTERN
30545    }
30546    #[inline]
30547    fn cast(syntax: SyntaxNode) -> Option<Self> {
30548        if Self::can_cast(syntax.kind()) {
30549            Some(Self { syntax })
30550        } else {
30551            None
30552        }
30553    }
30554    #[inline]
30555    fn syntax(&self) -> &SyntaxNode {
30556        &self.syntax
30557    }
30558}
30559impl AstNode for VertexTableDef {
30560    #[inline]
30561    fn can_cast(kind: SyntaxKind) -> bool {
30562        kind == SyntaxKind::VERTEX_TABLE_DEF
30563    }
30564    #[inline]
30565    fn cast(syntax: SyntaxNode) -> Option<Self> {
30566        if Self::can_cast(syntax.kind()) {
30567            Some(Self { syntax })
30568        } else {
30569            None
30570        }
30571    }
30572    #[inline]
30573    fn syntax(&self) -> &SyntaxNode {
30574        &self.syntax
30575    }
30576}
30577impl AstNode for VertexTables {
30578    #[inline]
30579    fn can_cast(kind: SyntaxKind) -> bool {
30580        kind == SyntaxKind::VERTEX_TABLES
30581    }
30582    #[inline]
30583    fn cast(syntax: SyntaxNode) -> Option<Self> {
30584        if Self::can_cast(syntax.kind()) {
30585            Some(Self { syntax })
30586        } else {
30587            None
30588        }
30589    }
30590    #[inline]
30591    fn syntax(&self) -> &SyntaxNode {
30592        &self.syntax
30593    }
30594}
30595impl AstNode for VolatilityFuncOption {
30596    #[inline]
30597    fn can_cast(kind: SyntaxKind) -> bool {
30598        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
30599    }
30600    #[inline]
30601    fn cast(syntax: SyntaxNode) -> Option<Self> {
30602        if Self::can_cast(syntax.kind()) {
30603            Some(Self { syntax })
30604        } else {
30605            None
30606        }
30607    }
30608    #[inline]
30609    fn syntax(&self) -> &SyntaxNode {
30610        &self.syntax
30611    }
30612}
30613impl AstNode for WhenClause {
30614    #[inline]
30615    fn can_cast(kind: SyntaxKind) -> bool {
30616        kind == SyntaxKind::WHEN_CLAUSE
30617    }
30618    #[inline]
30619    fn cast(syntax: SyntaxNode) -> Option<Self> {
30620        if Self::can_cast(syntax.kind()) {
30621            Some(Self { syntax })
30622        } else {
30623            None
30624        }
30625    }
30626    #[inline]
30627    fn syntax(&self) -> &SyntaxNode {
30628        &self.syntax
30629    }
30630}
30631impl AstNode for WhenClauseList {
30632    #[inline]
30633    fn can_cast(kind: SyntaxKind) -> bool {
30634        kind == SyntaxKind::WHEN_CLAUSE_LIST
30635    }
30636    #[inline]
30637    fn cast(syntax: SyntaxNode) -> Option<Self> {
30638        if Self::can_cast(syntax.kind()) {
30639            Some(Self { syntax })
30640        } else {
30641            None
30642        }
30643    }
30644    #[inline]
30645    fn syntax(&self) -> &SyntaxNode {
30646        &self.syntax
30647    }
30648}
30649impl AstNode for WhenCondition {
30650    #[inline]
30651    fn can_cast(kind: SyntaxKind) -> bool {
30652        kind == SyntaxKind::WHEN_CONDITION
30653    }
30654    #[inline]
30655    fn cast(syntax: SyntaxNode) -> Option<Self> {
30656        if Self::can_cast(syntax.kind()) {
30657            Some(Self { syntax })
30658        } else {
30659            None
30660        }
30661    }
30662    #[inline]
30663    fn syntax(&self) -> &SyntaxNode {
30664        &self.syntax
30665    }
30666}
30667impl AstNode for WhereClause {
30668    #[inline]
30669    fn can_cast(kind: SyntaxKind) -> bool {
30670        kind == SyntaxKind::WHERE_CLAUSE
30671    }
30672    #[inline]
30673    fn cast(syntax: SyntaxNode) -> Option<Self> {
30674        if Self::can_cast(syntax.kind()) {
30675            Some(Self { syntax })
30676        } else {
30677            None
30678        }
30679    }
30680    #[inline]
30681    fn syntax(&self) -> &SyntaxNode {
30682        &self.syntax
30683    }
30684}
30685impl AstNode for WhereConditionClause {
30686    #[inline]
30687    fn can_cast(kind: SyntaxKind) -> bool {
30688        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
30689    }
30690    #[inline]
30691    fn cast(syntax: SyntaxNode) -> Option<Self> {
30692        if Self::can_cast(syntax.kind()) {
30693            Some(Self { syntax })
30694        } else {
30695            None
30696        }
30697    }
30698    #[inline]
30699    fn syntax(&self) -> &SyntaxNode {
30700        &self.syntax
30701    }
30702}
30703impl AstNode for WhereCurrentOf {
30704    #[inline]
30705    fn can_cast(kind: SyntaxKind) -> bool {
30706        kind == SyntaxKind::WHERE_CURRENT_OF
30707    }
30708    #[inline]
30709    fn cast(syntax: SyntaxNode) -> Option<Self> {
30710        if Self::can_cast(syntax.kind()) {
30711            Some(Self { syntax })
30712        } else {
30713            None
30714        }
30715    }
30716    #[inline]
30717    fn syntax(&self) -> &SyntaxNode {
30718        &self.syntax
30719    }
30720}
30721impl AstNode for WindowClause {
30722    #[inline]
30723    fn can_cast(kind: SyntaxKind) -> bool {
30724        kind == SyntaxKind::WINDOW_CLAUSE
30725    }
30726    #[inline]
30727    fn cast(syntax: SyntaxNode) -> Option<Self> {
30728        if Self::can_cast(syntax.kind()) {
30729            Some(Self { syntax })
30730        } else {
30731            None
30732        }
30733    }
30734    #[inline]
30735    fn syntax(&self) -> &SyntaxNode {
30736        &self.syntax
30737    }
30738}
30739impl AstNode for WindowDef {
30740    #[inline]
30741    fn can_cast(kind: SyntaxKind) -> bool {
30742        kind == SyntaxKind::WINDOW_DEF
30743    }
30744    #[inline]
30745    fn cast(syntax: SyntaxNode) -> Option<Self> {
30746        if Self::can_cast(syntax.kind()) {
30747            Some(Self { syntax })
30748        } else {
30749            None
30750        }
30751    }
30752    #[inline]
30753    fn syntax(&self) -> &SyntaxNode {
30754        &self.syntax
30755    }
30756}
30757impl AstNode for WindowFuncOption {
30758    #[inline]
30759    fn can_cast(kind: SyntaxKind) -> bool {
30760        kind == SyntaxKind::WINDOW_FUNC_OPTION
30761    }
30762    #[inline]
30763    fn cast(syntax: SyntaxNode) -> Option<Self> {
30764        if Self::can_cast(syntax.kind()) {
30765            Some(Self { syntax })
30766        } else {
30767            None
30768        }
30769    }
30770    #[inline]
30771    fn syntax(&self) -> &SyntaxNode {
30772        &self.syntax
30773    }
30774}
30775impl AstNode for WindowSpec {
30776    #[inline]
30777    fn can_cast(kind: SyntaxKind) -> bool {
30778        kind == SyntaxKind::WINDOW_SPEC
30779    }
30780    #[inline]
30781    fn cast(syntax: SyntaxNode) -> Option<Self> {
30782        if Self::can_cast(syntax.kind()) {
30783            Some(Self { syntax })
30784        } else {
30785            None
30786        }
30787    }
30788    #[inline]
30789    fn syntax(&self) -> &SyntaxNode {
30790        &self.syntax
30791    }
30792}
30793impl AstNode for WithCheckExprClause {
30794    #[inline]
30795    fn can_cast(kind: SyntaxKind) -> bool {
30796        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
30797    }
30798    #[inline]
30799    fn cast(syntax: SyntaxNode) -> Option<Self> {
30800        if Self::can_cast(syntax.kind()) {
30801            Some(Self { syntax })
30802        } else {
30803            None
30804        }
30805    }
30806    #[inline]
30807    fn syntax(&self) -> &SyntaxNode {
30808        &self.syntax
30809    }
30810}
30811impl AstNode for WithClause {
30812    #[inline]
30813    fn can_cast(kind: SyntaxKind) -> bool {
30814        kind == SyntaxKind::WITH_CLAUSE
30815    }
30816    #[inline]
30817    fn cast(syntax: SyntaxNode) -> Option<Self> {
30818        if Self::can_cast(syntax.kind()) {
30819            Some(Self { syntax })
30820        } else {
30821            None
30822        }
30823    }
30824    #[inline]
30825    fn syntax(&self) -> &SyntaxNode {
30826        &self.syntax
30827    }
30828}
30829impl AstNode for WithData {
30830    #[inline]
30831    fn can_cast(kind: SyntaxKind) -> bool {
30832        kind == SyntaxKind::WITH_DATA
30833    }
30834    #[inline]
30835    fn cast(syntax: SyntaxNode) -> Option<Self> {
30836        if Self::can_cast(syntax.kind()) {
30837            Some(Self { syntax })
30838        } else {
30839            None
30840        }
30841    }
30842    #[inline]
30843    fn syntax(&self) -> &SyntaxNode {
30844        &self.syntax
30845    }
30846}
30847impl AstNode for WithNoData {
30848    #[inline]
30849    fn can_cast(kind: SyntaxKind) -> bool {
30850        kind == SyntaxKind::WITH_NO_DATA
30851    }
30852    #[inline]
30853    fn cast(syntax: SyntaxNode) -> Option<Self> {
30854        if Self::can_cast(syntax.kind()) {
30855            Some(Self { syntax })
30856        } else {
30857            None
30858        }
30859    }
30860    #[inline]
30861    fn syntax(&self) -> &SyntaxNode {
30862        &self.syntax
30863    }
30864}
30865impl AstNode for WithOptions {
30866    #[inline]
30867    fn can_cast(kind: SyntaxKind) -> bool {
30868        kind == SyntaxKind::WITH_OPTIONS
30869    }
30870    #[inline]
30871    fn cast(syntax: SyntaxNode) -> Option<Self> {
30872        if Self::can_cast(syntax.kind()) {
30873            Some(Self { syntax })
30874        } else {
30875            None
30876        }
30877    }
30878    #[inline]
30879    fn syntax(&self) -> &SyntaxNode {
30880        &self.syntax
30881    }
30882}
30883impl AstNode for WithParams {
30884    #[inline]
30885    fn can_cast(kind: SyntaxKind) -> bool {
30886        kind == SyntaxKind::WITH_PARAMS
30887    }
30888    #[inline]
30889    fn cast(syntax: SyntaxNode) -> Option<Self> {
30890        if Self::can_cast(syntax.kind()) {
30891            Some(Self { syntax })
30892        } else {
30893            None
30894        }
30895    }
30896    #[inline]
30897    fn syntax(&self) -> &SyntaxNode {
30898        &self.syntax
30899    }
30900}
30901impl AstNode for WithTable {
30902    #[inline]
30903    fn can_cast(kind: SyntaxKind) -> bool {
30904        kind == SyntaxKind::WITH_TABLE
30905    }
30906    #[inline]
30907    fn cast(syntax: SyntaxNode) -> Option<Self> {
30908        if Self::can_cast(syntax.kind()) {
30909            Some(Self { syntax })
30910        } else {
30911            None
30912        }
30913    }
30914    #[inline]
30915    fn syntax(&self) -> &SyntaxNode {
30916        &self.syntax
30917    }
30918}
30919impl AstNode for WithTimezone {
30920    #[inline]
30921    fn can_cast(kind: SyntaxKind) -> bool {
30922        kind == SyntaxKind::WITH_TIMEZONE
30923    }
30924    #[inline]
30925    fn cast(syntax: SyntaxNode) -> Option<Self> {
30926        if Self::can_cast(syntax.kind()) {
30927            Some(Self { syntax })
30928        } else {
30929            None
30930        }
30931    }
30932    #[inline]
30933    fn syntax(&self) -> &SyntaxNode {
30934        &self.syntax
30935    }
30936}
30937impl AstNode for WithinClause {
30938    #[inline]
30939    fn can_cast(kind: SyntaxKind) -> bool {
30940        kind == SyntaxKind::WITHIN_CLAUSE
30941    }
30942    #[inline]
30943    fn cast(syntax: SyntaxNode) -> Option<Self> {
30944        if Self::can_cast(syntax.kind()) {
30945            Some(Self { syntax })
30946        } else {
30947            None
30948        }
30949    }
30950    #[inline]
30951    fn syntax(&self) -> &SyntaxNode {
30952        &self.syntax
30953    }
30954}
30955impl AstNode for WithoutOids {
30956    #[inline]
30957    fn can_cast(kind: SyntaxKind) -> bool {
30958        kind == SyntaxKind::WITHOUT_OIDS
30959    }
30960    #[inline]
30961    fn cast(syntax: SyntaxNode) -> Option<Self> {
30962        if Self::can_cast(syntax.kind()) {
30963            Some(Self { syntax })
30964        } else {
30965            None
30966        }
30967    }
30968    #[inline]
30969    fn syntax(&self) -> &SyntaxNode {
30970        &self.syntax
30971    }
30972}
30973impl AstNode for WithoutTimezone {
30974    #[inline]
30975    fn can_cast(kind: SyntaxKind) -> bool {
30976        kind == SyntaxKind::WITHOUT_TIMEZONE
30977    }
30978    #[inline]
30979    fn cast(syntax: SyntaxNode) -> Option<Self> {
30980        if Self::can_cast(syntax.kind()) {
30981            Some(Self { syntax })
30982        } else {
30983            None
30984        }
30985    }
30986    #[inline]
30987    fn syntax(&self) -> &SyntaxNode {
30988        &self.syntax
30989    }
30990}
30991impl AstNode for XmlColumnOption {
30992    #[inline]
30993    fn can_cast(kind: SyntaxKind) -> bool {
30994        kind == SyntaxKind::XML_COLUMN_OPTION
30995    }
30996    #[inline]
30997    fn cast(syntax: SyntaxNode) -> Option<Self> {
30998        if Self::can_cast(syntax.kind()) {
30999            Some(Self { syntax })
31000        } else {
31001            None
31002        }
31003    }
31004    #[inline]
31005    fn syntax(&self) -> &SyntaxNode {
31006        &self.syntax
31007    }
31008}
31009impl AstNode for XmlColumnOptionList {
31010    #[inline]
31011    fn can_cast(kind: SyntaxKind) -> bool {
31012        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
31013    }
31014    #[inline]
31015    fn cast(syntax: SyntaxNode) -> Option<Self> {
31016        if Self::can_cast(syntax.kind()) {
31017            Some(Self { syntax })
31018        } else {
31019            None
31020        }
31021    }
31022    #[inline]
31023    fn syntax(&self) -> &SyntaxNode {
31024        &self.syntax
31025    }
31026}
31027impl AstNode for XmlElementFn {
31028    #[inline]
31029    fn can_cast(kind: SyntaxKind) -> bool {
31030        kind == SyntaxKind::XML_ELEMENT_FN
31031    }
31032    #[inline]
31033    fn cast(syntax: SyntaxNode) -> Option<Self> {
31034        if Self::can_cast(syntax.kind()) {
31035            Some(Self { syntax })
31036        } else {
31037            None
31038        }
31039    }
31040    #[inline]
31041    fn syntax(&self) -> &SyntaxNode {
31042        &self.syntax
31043    }
31044}
31045impl AstNode for XmlExistsFn {
31046    #[inline]
31047    fn can_cast(kind: SyntaxKind) -> bool {
31048        kind == SyntaxKind::XML_EXISTS_FN
31049    }
31050    #[inline]
31051    fn cast(syntax: SyntaxNode) -> Option<Self> {
31052        if Self::can_cast(syntax.kind()) {
31053            Some(Self { syntax })
31054        } else {
31055            None
31056        }
31057    }
31058    #[inline]
31059    fn syntax(&self) -> &SyntaxNode {
31060        &self.syntax
31061    }
31062}
31063impl AstNode for XmlForestFn {
31064    #[inline]
31065    fn can_cast(kind: SyntaxKind) -> bool {
31066        kind == SyntaxKind::XML_FOREST_FN
31067    }
31068    #[inline]
31069    fn cast(syntax: SyntaxNode) -> Option<Self> {
31070        if Self::can_cast(syntax.kind()) {
31071            Some(Self { syntax })
31072        } else {
31073            None
31074        }
31075    }
31076    #[inline]
31077    fn syntax(&self) -> &SyntaxNode {
31078        &self.syntax
31079    }
31080}
31081impl AstNode for XmlNamespace {
31082    #[inline]
31083    fn can_cast(kind: SyntaxKind) -> bool {
31084        kind == SyntaxKind::XML_NAMESPACE
31085    }
31086    #[inline]
31087    fn cast(syntax: SyntaxNode) -> Option<Self> {
31088        if Self::can_cast(syntax.kind()) {
31089            Some(Self { syntax })
31090        } else {
31091            None
31092        }
31093    }
31094    #[inline]
31095    fn syntax(&self) -> &SyntaxNode {
31096        &self.syntax
31097    }
31098}
31099impl AstNode for XmlNamespaceList {
31100    #[inline]
31101    fn can_cast(kind: SyntaxKind) -> bool {
31102        kind == SyntaxKind::XML_NAMESPACE_LIST
31103    }
31104    #[inline]
31105    fn cast(syntax: SyntaxNode) -> Option<Self> {
31106        if Self::can_cast(syntax.kind()) {
31107            Some(Self { syntax })
31108        } else {
31109            None
31110        }
31111    }
31112    #[inline]
31113    fn syntax(&self) -> &SyntaxNode {
31114        &self.syntax
31115    }
31116}
31117impl AstNode for XmlParseFn {
31118    #[inline]
31119    fn can_cast(kind: SyntaxKind) -> bool {
31120        kind == SyntaxKind::XML_PARSE_FN
31121    }
31122    #[inline]
31123    fn cast(syntax: SyntaxNode) -> Option<Self> {
31124        if Self::can_cast(syntax.kind()) {
31125            Some(Self { syntax })
31126        } else {
31127            None
31128        }
31129    }
31130    #[inline]
31131    fn syntax(&self) -> &SyntaxNode {
31132        &self.syntax
31133    }
31134}
31135impl AstNode for XmlPassingMech {
31136    #[inline]
31137    fn can_cast(kind: SyntaxKind) -> bool {
31138        kind == SyntaxKind::XML_PASSING_MECH
31139    }
31140    #[inline]
31141    fn cast(syntax: SyntaxNode) -> Option<Self> {
31142        if Self::can_cast(syntax.kind()) {
31143            Some(Self { syntax })
31144        } else {
31145            None
31146        }
31147    }
31148    #[inline]
31149    fn syntax(&self) -> &SyntaxNode {
31150        &self.syntax
31151    }
31152}
31153impl AstNode for XmlPiFn {
31154    #[inline]
31155    fn can_cast(kind: SyntaxKind) -> bool {
31156        kind == SyntaxKind::XML_PI_FN
31157    }
31158    #[inline]
31159    fn cast(syntax: SyntaxNode) -> Option<Self> {
31160        if Self::can_cast(syntax.kind()) {
31161            Some(Self { syntax })
31162        } else {
31163            None
31164        }
31165    }
31166    #[inline]
31167    fn syntax(&self) -> &SyntaxNode {
31168        &self.syntax
31169    }
31170}
31171impl AstNode for XmlRootFn {
31172    #[inline]
31173    fn can_cast(kind: SyntaxKind) -> bool {
31174        kind == SyntaxKind::XML_ROOT_FN
31175    }
31176    #[inline]
31177    fn cast(syntax: SyntaxNode) -> Option<Self> {
31178        if Self::can_cast(syntax.kind()) {
31179            Some(Self { syntax })
31180        } else {
31181            None
31182        }
31183    }
31184    #[inline]
31185    fn syntax(&self) -> &SyntaxNode {
31186        &self.syntax
31187    }
31188}
31189impl AstNode for XmlRowPassingClause {
31190    #[inline]
31191    fn can_cast(kind: SyntaxKind) -> bool {
31192        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
31193    }
31194    #[inline]
31195    fn cast(syntax: SyntaxNode) -> Option<Self> {
31196        if Self::can_cast(syntax.kind()) {
31197            Some(Self { syntax })
31198        } else {
31199            None
31200        }
31201    }
31202    #[inline]
31203    fn syntax(&self) -> &SyntaxNode {
31204        &self.syntax
31205    }
31206}
31207impl AstNode for XmlSerializeFn {
31208    #[inline]
31209    fn can_cast(kind: SyntaxKind) -> bool {
31210        kind == SyntaxKind::XML_SERIALIZE_FN
31211    }
31212    #[inline]
31213    fn cast(syntax: SyntaxNode) -> Option<Self> {
31214        if Self::can_cast(syntax.kind()) {
31215            Some(Self { syntax })
31216        } else {
31217            None
31218        }
31219    }
31220    #[inline]
31221    fn syntax(&self) -> &SyntaxNode {
31222        &self.syntax
31223    }
31224}
31225impl AstNode for XmlTable {
31226    #[inline]
31227    fn can_cast(kind: SyntaxKind) -> bool {
31228        kind == SyntaxKind::XML_TABLE
31229    }
31230    #[inline]
31231    fn cast(syntax: SyntaxNode) -> Option<Self> {
31232        if Self::can_cast(syntax.kind()) {
31233            Some(Self { syntax })
31234        } else {
31235            None
31236        }
31237    }
31238    #[inline]
31239    fn syntax(&self) -> &SyntaxNode {
31240        &self.syntax
31241    }
31242}
31243impl AstNode for XmlTableColumn {
31244    #[inline]
31245    fn can_cast(kind: SyntaxKind) -> bool {
31246        kind == SyntaxKind::XML_TABLE_COLUMN
31247    }
31248    #[inline]
31249    fn cast(syntax: SyntaxNode) -> Option<Self> {
31250        if Self::can_cast(syntax.kind()) {
31251            Some(Self { syntax })
31252        } else {
31253            None
31254        }
31255    }
31256    #[inline]
31257    fn syntax(&self) -> &SyntaxNode {
31258        &self.syntax
31259    }
31260}
31261impl AstNode for XmlTableColumnList {
31262    #[inline]
31263    fn can_cast(kind: SyntaxKind) -> bool {
31264        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
31265    }
31266    #[inline]
31267    fn cast(syntax: SyntaxNode) -> Option<Self> {
31268        if Self::can_cast(syntax.kind()) {
31269            Some(Self { syntax })
31270        } else {
31271            None
31272        }
31273    }
31274    #[inline]
31275    fn syntax(&self) -> &SyntaxNode {
31276        &self.syntax
31277    }
31278}
31279impl AstNode for AlterColumnOption {
31280    #[inline]
31281    fn can_cast(kind: SyntaxKind) -> bool {
31282        matches!(
31283            kind,
31284            SyntaxKind::ADD_GENERATED
31285                | SyntaxKind::DROP_DEFAULT
31286                | SyntaxKind::DROP_EXPRESSION
31287                | SyntaxKind::DROP_IDENTITY
31288                | SyntaxKind::DROP_NOT_NULL
31289                | SyntaxKind::INHERIT
31290                | SyntaxKind::NO_INHERIT
31291                | SyntaxKind::RESET_OPTIONS
31292                | SyntaxKind::RESTART
31293                | SyntaxKind::SET_COMPRESSION
31294                | SyntaxKind::SET_DEFAULT
31295                | SyntaxKind::SET_EXPRESSION
31296                | SyntaxKind::SET_GENERATED
31297                | SyntaxKind::SET_GENERATED_OPTIONS
31298                | SyntaxKind::SET_NOT_NULL
31299                | SyntaxKind::SET_OPTIONS
31300                | SyntaxKind::SET_OPTIONS_LIST
31301                | SyntaxKind::SET_SEQUENCE_OPTION
31302                | SyntaxKind::SET_STATISTICS
31303                | SyntaxKind::SET_STORAGE
31304                | SyntaxKind::SET_TYPE
31305        )
31306    }
31307    #[inline]
31308    fn cast(syntax: SyntaxNode) -> Option<Self> {
31309        let res = match syntax.kind() {
31310            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
31311            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
31312            SyntaxKind::DROP_EXPRESSION => {
31313                AlterColumnOption::DropExpression(DropExpression { syntax })
31314            }
31315            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
31316            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
31317            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
31318            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
31319            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
31320            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
31321            SyntaxKind::SET_COMPRESSION => {
31322                AlterColumnOption::SetCompression(SetCompression { syntax })
31323            }
31324            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
31325            SyntaxKind::SET_EXPRESSION => {
31326                AlterColumnOption::SetExpression(SetExpression { syntax })
31327            }
31328            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
31329            SyntaxKind::SET_GENERATED_OPTIONS => {
31330                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
31331            }
31332            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
31333            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
31334            SyntaxKind::SET_OPTIONS_LIST => {
31335                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
31336            }
31337            SyntaxKind::SET_SEQUENCE_OPTION => {
31338                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
31339            }
31340            SyntaxKind::SET_STATISTICS => {
31341                AlterColumnOption::SetStatistics(SetStatistics { syntax })
31342            }
31343            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
31344            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
31345            _ => {
31346                return None;
31347            }
31348        };
31349        Some(res)
31350    }
31351    #[inline]
31352    fn syntax(&self) -> &SyntaxNode {
31353        match self {
31354            AlterColumnOption::AddGenerated(it) => &it.syntax,
31355            AlterColumnOption::DropDefault(it) => &it.syntax,
31356            AlterColumnOption::DropExpression(it) => &it.syntax,
31357            AlterColumnOption::DropIdentity(it) => &it.syntax,
31358            AlterColumnOption::DropNotNull(it) => &it.syntax,
31359            AlterColumnOption::Inherit(it) => &it.syntax,
31360            AlterColumnOption::NoInherit(it) => &it.syntax,
31361            AlterColumnOption::ResetOptions(it) => &it.syntax,
31362            AlterColumnOption::Restart(it) => &it.syntax,
31363            AlterColumnOption::SetCompression(it) => &it.syntax,
31364            AlterColumnOption::SetDefault(it) => &it.syntax,
31365            AlterColumnOption::SetExpression(it) => &it.syntax,
31366            AlterColumnOption::SetGenerated(it) => &it.syntax,
31367            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
31368            AlterColumnOption::SetNotNull(it) => &it.syntax,
31369            AlterColumnOption::SetOptions(it) => &it.syntax,
31370            AlterColumnOption::SetOptionsList(it) => &it.syntax,
31371            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
31372            AlterColumnOption::SetStatistics(it) => &it.syntax,
31373            AlterColumnOption::SetStorage(it) => &it.syntax,
31374            AlterColumnOption::SetType(it) => &it.syntax,
31375        }
31376    }
31377}
31378impl From<AddGenerated> for AlterColumnOption {
31379    #[inline]
31380    fn from(node: AddGenerated) -> AlterColumnOption {
31381        AlterColumnOption::AddGenerated(node)
31382    }
31383}
31384impl From<DropDefault> for AlterColumnOption {
31385    #[inline]
31386    fn from(node: DropDefault) -> AlterColumnOption {
31387        AlterColumnOption::DropDefault(node)
31388    }
31389}
31390impl From<DropExpression> for AlterColumnOption {
31391    #[inline]
31392    fn from(node: DropExpression) -> AlterColumnOption {
31393        AlterColumnOption::DropExpression(node)
31394    }
31395}
31396impl From<DropIdentity> for AlterColumnOption {
31397    #[inline]
31398    fn from(node: DropIdentity) -> AlterColumnOption {
31399        AlterColumnOption::DropIdentity(node)
31400    }
31401}
31402impl From<DropNotNull> for AlterColumnOption {
31403    #[inline]
31404    fn from(node: DropNotNull) -> AlterColumnOption {
31405        AlterColumnOption::DropNotNull(node)
31406    }
31407}
31408impl From<Inherit> for AlterColumnOption {
31409    #[inline]
31410    fn from(node: Inherit) -> AlterColumnOption {
31411        AlterColumnOption::Inherit(node)
31412    }
31413}
31414impl From<NoInherit> for AlterColumnOption {
31415    #[inline]
31416    fn from(node: NoInherit) -> AlterColumnOption {
31417        AlterColumnOption::NoInherit(node)
31418    }
31419}
31420impl From<ResetOptions> for AlterColumnOption {
31421    #[inline]
31422    fn from(node: ResetOptions) -> AlterColumnOption {
31423        AlterColumnOption::ResetOptions(node)
31424    }
31425}
31426impl From<Restart> for AlterColumnOption {
31427    #[inline]
31428    fn from(node: Restart) -> AlterColumnOption {
31429        AlterColumnOption::Restart(node)
31430    }
31431}
31432impl From<SetCompression> for AlterColumnOption {
31433    #[inline]
31434    fn from(node: SetCompression) -> AlterColumnOption {
31435        AlterColumnOption::SetCompression(node)
31436    }
31437}
31438impl From<SetDefault> for AlterColumnOption {
31439    #[inline]
31440    fn from(node: SetDefault) -> AlterColumnOption {
31441        AlterColumnOption::SetDefault(node)
31442    }
31443}
31444impl From<SetExpression> for AlterColumnOption {
31445    #[inline]
31446    fn from(node: SetExpression) -> AlterColumnOption {
31447        AlterColumnOption::SetExpression(node)
31448    }
31449}
31450impl From<SetGenerated> for AlterColumnOption {
31451    #[inline]
31452    fn from(node: SetGenerated) -> AlterColumnOption {
31453        AlterColumnOption::SetGenerated(node)
31454    }
31455}
31456impl From<SetGeneratedOptions> for AlterColumnOption {
31457    #[inline]
31458    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
31459        AlterColumnOption::SetGeneratedOptions(node)
31460    }
31461}
31462impl From<SetNotNull> for AlterColumnOption {
31463    #[inline]
31464    fn from(node: SetNotNull) -> AlterColumnOption {
31465        AlterColumnOption::SetNotNull(node)
31466    }
31467}
31468impl From<SetOptions> for AlterColumnOption {
31469    #[inline]
31470    fn from(node: SetOptions) -> AlterColumnOption {
31471        AlterColumnOption::SetOptions(node)
31472    }
31473}
31474impl From<SetOptionsList> for AlterColumnOption {
31475    #[inline]
31476    fn from(node: SetOptionsList) -> AlterColumnOption {
31477        AlterColumnOption::SetOptionsList(node)
31478    }
31479}
31480impl From<SetSequenceOption> for AlterColumnOption {
31481    #[inline]
31482    fn from(node: SetSequenceOption) -> AlterColumnOption {
31483        AlterColumnOption::SetSequenceOption(node)
31484    }
31485}
31486impl From<SetStatistics> for AlterColumnOption {
31487    #[inline]
31488    fn from(node: SetStatistics) -> AlterColumnOption {
31489        AlterColumnOption::SetStatistics(node)
31490    }
31491}
31492impl From<SetStorage> for AlterColumnOption {
31493    #[inline]
31494    fn from(node: SetStorage) -> AlterColumnOption {
31495        AlterColumnOption::SetStorage(node)
31496    }
31497}
31498impl From<SetType> for AlterColumnOption {
31499    #[inline]
31500    fn from(node: SetType) -> AlterColumnOption {
31501        AlterColumnOption::SetType(node)
31502    }
31503}
31504impl AstNode for AlterDomainAction {
31505    #[inline]
31506    fn can_cast(kind: SyntaxKind) -> bool {
31507        matches!(
31508            kind,
31509            SyntaxKind::ADD_CONSTRAINT
31510                | SyntaxKind::DROP_CONSTRAINT
31511                | SyntaxKind::DROP_DEFAULT
31512                | SyntaxKind::DROP_NOT_NULL
31513                | SyntaxKind::OWNER_TO
31514                | SyntaxKind::RENAME_CONSTRAINT
31515                | SyntaxKind::RENAME_TO
31516                | SyntaxKind::SET_DEFAULT
31517                | SyntaxKind::SET_NOT_NULL
31518                | SyntaxKind::SET_SCHEMA
31519                | SyntaxKind::VALIDATE_CONSTRAINT
31520        )
31521    }
31522    #[inline]
31523    fn cast(syntax: SyntaxNode) -> Option<Self> {
31524        let res = match syntax.kind() {
31525            SyntaxKind::ADD_CONSTRAINT => {
31526                AlterDomainAction::AddConstraint(AddConstraint { syntax })
31527            }
31528            SyntaxKind::DROP_CONSTRAINT => {
31529                AlterDomainAction::DropConstraint(DropConstraint { syntax })
31530            }
31531            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
31532            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
31533            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
31534            SyntaxKind::RENAME_CONSTRAINT => {
31535                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
31536            }
31537            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
31538            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
31539            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
31540            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
31541            SyntaxKind::VALIDATE_CONSTRAINT => {
31542                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
31543            }
31544            _ => {
31545                return None;
31546            }
31547        };
31548        Some(res)
31549    }
31550    #[inline]
31551    fn syntax(&self) -> &SyntaxNode {
31552        match self {
31553            AlterDomainAction::AddConstraint(it) => &it.syntax,
31554            AlterDomainAction::DropConstraint(it) => &it.syntax,
31555            AlterDomainAction::DropDefault(it) => &it.syntax,
31556            AlterDomainAction::DropNotNull(it) => &it.syntax,
31557            AlterDomainAction::OwnerTo(it) => &it.syntax,
31558            AlterDomainAction::RenameConstraint(it) => &it.syntax,
31559            AlterDomainAction::RenameTo(it) => &it.syntax,
31560            AlterDomainAction::SetDefault(it) => &it.syntax,
31561            AlterDomainAction::SetNotNull(it) => &it.syntax,
31562            AlterDomainAction::SetSchema(it) => &it.syntax,
31563            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
31564        }
31565    }
31566}
31567impl From<AddConstraint> for AlterDomainAction {
31568    #[inline]
31569    fn from(node: AddConstraint) -> AlterDomainAction {
31570        AlterDomainAction::AddConstraint(node)
31571    }
31572}
31573impl From<DropConstraint> for AlterDomainAction {
31574    #[inline]
31575    fn from(node: DropConstraint) -> AlterDomainAction {
31576        AlterDomainAction::DropConstraint(node)
31577    }
31578}
31579impl From<DropDefault> for AlterDomainAction {
31580    #[inline]
31581    fn from(node: DropDefault) -> AlterDomainAction {
31582        AlterDomainAction::DropDefault(node)
31583    }
31584}
31585impl From<DropNotNull> for AlterDomainAction {
31586    #[inline]
31587    fn from(node: DropNotNull) -> AlterDomainAction {
31588        AlterDomainAction::DropNotNull(node)
31589    }
31590}
31591impl From<OwnerTo> for AlterDomainAction {
31592    #[inline]
31593    fn from(node: OwnerTo) -> AlterDomainAction {
31594        AlterDomainAction::OwnerTo(node)
31595    }
31596}
31597impl From<RenameConstraint> for AlterDomainAction {
31598    #[inline]
31599    fn from(node: RenameConstraint) -> AlterDomainAction {
31600        AlterDomainAction::RenameConstraint(node)
31601    }
31602}
31603impl From<RenameTo> for AlterDomainAction {
31604    #[inline]
31605    fn from(node: RenameTo) -> AlterDomainAction {
31606        AlterDomainAction::RenameTo(node)
31607    }
31608}
31609impl From<SetDefault> for AlterDomainAction {
31610    #[inline]
31611    fn from(node: SetDefault) -> AlterDomainAction {
31612        AlterDomainAction::SetDefault(node)
31613    }
31614}
31615impl From<SetNotNull> for AlterDomainAction {
31616    #[inline]
31617    fn from(node: SetNotNull) -> AlterDomainAction {
31618        AlterDomainAction::SetNotNull(node)
31619    }
31620}
31621impl From<SetSchema> for AlterDomainAction {
31622    #[inline]
31623    fn from(node: SetSchema) -> AlterDomainAction {
31624        AlterDomainAction::SetSchema(node)
31625    }
31626}
31627impl From<ValidateConstraint> for AlterDomainAction {
31628    #[inline]
31629    fn from(node: ValidateConstraint) -> AlterDomainAction {
31630        AlterDomainAction::ValidateConstraint(node)
31631    }
31632}
31633impl AstNode for AlterIndexAction {
31634    #[inline]
31635    fn can_cast(kind: SyntaxKind) -> bool {
31636        matches!(
31637            kind,
31638            SyntaxKind::ALTER_SET_STATISTICS
31639                | SyntaxKind::ATTACH_PARTITION
31640                | SyntaxKind::DEPENDS_ON_EXTENSION
31641                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31642                | SyntaxKind::RENAME_TO
31643                | SyntaxKind::RESET_OPTIONS
31644                | SyntaxKind::SET_OPTIONS
31645                | SyntaxKind::SET_TABLESPACE
31646        )
31647    }
31648    #[inline]
31649    fn cast(syntax: SyntaxNode) -> Option<Self> {
31650        let res = match syntax.kind() {
31651            SyntaxKind::ALTER_SET_STATISTICS => {
31652                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
31653            }
31654            SyntaxKind::ATTACH_PARTITION => {
31655                AlterIndexAction::AttachPartition(AttachPartition { syntax })
31656            }
31657            SyntaxKind::DEPENDS_ON_EXTENSION => {
31658                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
31659            }
31660            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31661                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31662            }
31663            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
31664            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
31665            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
31666            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
31667            _ => {
31668                return None;
31669            }
31670        };
31671        Some(res)
31672    }
31673    #[inline]
31674    fn syntax(&self) -> &SyntaxNode {
31675        match self {
31676            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
31677            AlterIndexAction::AttachPartition(it) => &it.syntax,
31678            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
31679            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
31680            AlterIndexAction::RenameTo(it) => &it.syntax,
31681            AlterIndexAction::ResetOptions(it) => &it.syntax,
31682            AlterIndexAction::SetOptions(it) => &it.syntax,
31683            AlterIndexAction::SetTablespace(it) => &it.syntax,
31684        }
31685    }
31686}
31687impl From<AlterSetStatistics> for AlterIndexAction {
31688    #[inline]
31689    fn from(node: AlterSetStatistics) -> AlterIndexAction {
31690        AlterIndexAction::AlterSetStatistics(node)
31691    }
31692}
31693impl From<AttachPartition> for AlterIndexAction {
31694    #[inline]
31695    fn from(node: AttachPartition) -> AlterIndexAction {
31696        AlterIndexAction::AttachPartition(node)
31697    }
31698}
31699impl From<DependsOnExtension> for AlterIndexAction {
31700    #[inline]
31701    fn from(node: DependsOnExtension) -> AlterIndexAction {
31702        AlterIndexAction::DependsOnExtension(node)
31703    }
31704}
31705impl From<NoDependsOnExtension> for AlterIndexAction {
31706    #[inline]
31707    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
31708        AlterIndexAction::NoDependsOnExtension(node)
31709    }
31710}
31711impl From<RenameTo> for AlterIndexAction {
31712    #[inline]
31713    fn from(node: RenameTo) -> AlterIndexAction {
31714        AlterIndexAction::RenameTo(node)
31715    }
31716}
31717impl From<ResetOptions> for AlterIndexAction {
31718    #[inline]
31719    fn from(node: ResetOptions) -> AlterIndexAction {
31720        AlterIndexAction::ResetOptions(node)
31721    }
31722}
31723impl From<SetOptions> for AlterIndexAction {
31724    #[inline]
31725    fn from(node: SetOptions) -> AlterIndexAction {
31726        AlterIndexAction::SetOptions(node)
31727    }
31728}
31729impl From<SetTablespace> for AlterIndexAction {
31730    #[inline]
31731    fn from(node: SetTablespace) -> AlterIndexAction {
31732        AlterIndexAction::SetTablespace(node)
31733    }
31734}
31735impl AstNode for AlterMaterializedViewAction {
31736    #[inline]
31737    fn can_cast(kind: SyntaxKind) -> bool {
31738        matches!(
31739            kind,
31740            SyntaxKind::DEPENDS_ON_EXTENSION
31741                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31742                | SyntaxKind::RENAME_COLUMN
31743                | SyntaxKind::RENAME_TO
31744                | SyntaxKind::SET_SCHEMA
31745        )
31746    }
31747    #[inline]
31748    fn cast(syntax: SyntaxNode) -> Option<Self> {
31749        let res = match syntax.kind() {
31750            SyntaxKind::DEPENDS_ON_EXTENSION => {
31751                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
31752            }
31753            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31754                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31755            }
31756            SyntaxKind::RENAME_COLUMN => {
31757                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
31758            }
31759            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
31760            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
31761            _ => {
31762                if let Some(result) = AlterTableAction::cast(syntax) {
31763                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
31764                }
31765                return None;
31766            }
31767        };
31768        Some(res)
31769    }
31770    #[inline]
31771    fn syntax(&self) -> &SyntaxNode {
31772        match self {
31773            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
31774            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
31775            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
31776            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
31777            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
31778            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
31779        }
31780    }
31781}
31782impl From<DependsOnExtension> for AlterMaterializedViewAction {
31783    #[inline]
31784    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
31785        AlterMaterializedViewAction::DependsOnExtension(node)
31786    }
31787}
31788impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
31789    #[inline]
31790    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
31791        AlterMaterializedViewAction::NoDependsOnExtension(node)
31792    }
31793}
31794impl From<RenameColumn> for AlterMaterializedViewAction {
31795    #[inline]
31796    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
31797        AlterMaterializedViewAction::RenameColumn(node)
31798    }
31799}
31800impl From<RenameTo> for AlterMaterializedViewAction {
31801    #[inline]
31802    fn from(node: RenameTo) -> AlterMaterializedViewAction {
31803        AlterMaterializedViewAction::RenameTo(node)
31804    }
31805}
31806impl From<SetSchema> for AlterMaterializedViewAction {
31807    #[inline]
31808    fn from(node: SetSchema) -> AlterMaterializedViewAction {
31809        AlterMaterializedViewAction::SetSchema(node)
31810    }
31811}
31812impl AstNode for AlterPropertyGraphAction {
31813    #[inline]
31814    fn can_cast(kind: SyntaxKind) -> bool {
31815        matches!(
31816            kind,
31817            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
31818                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
31819                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
31820                | SyntaxKind::DROP_EDGE_TABLES
31821                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
31822                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
31823                | SyntaxKind::DROP_VERTEX_TABLES
31824                | SyntaxKind::OWNER_TO
31825                | SyntaxKind::RENAME_TO
31826                | SyntaxKind::SET_SCHEMA
31827        )
31828    }
31829    #[inline]
31830    fn cast(syntax: SyntaxNode) -> Option<Self> {
31831        let res = match syntax.kind() {
31832            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
31833                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
31834                    AddVertexEdgeLabelProperties { syntax },
31835                )
31836            }
31837            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
31838                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
31839            }
31840            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
31841                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
31842            }
31843            SyntaxKind::DROP_EDGE_TABLES => {
31844                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
31845            }
31846            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
31847                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
31848            }
31849            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
31850                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
31851                    DropVertexEdgeLabelProperties { syntax },
31852                )
31853            }
31854            SyntaxKind::DROP_VERTEX_TABLES => {
31855                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
31856            }
31857            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
31858            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
31859            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
31860            _ => {
31861                return None;
31862            }
31863        };
31864        Some(res)
31865    }
31866    #[inline]
31867    fn syntax(&self) -> &SyntaxNode {
31868        match self {
31869            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
31870            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
31871            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
31872            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
31873            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
31874            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
31875            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
31876            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
31877            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
31878            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
31879        }
31880    }
31881}
31882impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31883    #[inline]
31884    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31885        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
31886    }
31887}
31888impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
31889    #[inline]
31890    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
31891        AlterPropertyGraphAction::AddVertexEdgeTables(node)
31892    }
31893}
31894impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
31895    #[inline]
31896    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
31897        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
31898    }
31899}
31900impl From<DropEdgeTables> for AlterPropertyGraphAction {
31901    #[inline]
31902    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
31903        AlterPropertyGraphAction::DropEdgeTables(node)
31904    }
31905}
31906impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
31907    #[inline]
31908    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
31909        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
31910    }
31911}
31912impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31913    #[inline]
31914    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31915        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
31916    }
31917}
31918impl From<DropVertexTables> for AlterPropertyGraphAction {
31919    #[inline]
31920    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
31921        AlterPropertyGraphAction::DropVertexTables(node)
31922    }
31923}
31924impl From<OwnerTo> for AlterPropertyGraphAction {
31925    #[inline]
31926    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
31927        AlterPropertyGraphAction::OwnerTo(node)
31928    }
31929}
31930impl From<RenameTo> for AlterPropertyGraphAction {
31931    #[inline]
31932    fn from(node: RenameTo) -> AlterPropertyGraphAction {
31933        AlterPropertyGraphAction::RenameTo(node)
31934    }
31935}
31936impl From<SetSchema> for AlterPropertyGraphAction {
31937    #[inline]
31938    fn from(node: SetSchema) -> AlterPropertyGraphAction {
31939        AlterPropertyGraphAction::SetSchema(node)
31940    }
31941}
31942impl AstNode for AlterTableAction {
31943    #[inline]
31944    fn can_cast(kind: SyntaxKind) -> bool {
31945        matches!(
31946            kind,
31947            SyntaxKind::ADD_COLUMN
31948                | SyntaxKind::ADD_CONSTRAINT
31949                | SyntaxKind::ALTER_COLUMN
31950                | SyntaxKind::ALTER_CONSTRAINT
31951                | SyntaxKind::ATTACH_PARTITION
31952                | SyntaxKind::CLUSTER_ON
31953                | SyntaxKind::DETACH_PARTITION
31954                | SyntaxKind::DISABLE_RLS
31955                | SyntaxKind::DISABLE_RULE
31956                | SyntaxKind::DISABLE_TRIGGER
31957                | SyntaxKind::DROP_COLUMN
31958                | SyntaxKind::DROP_CONSTRAINT
31959                | SyntaxKind::ENABLE_ALWAYS_RULE
31960                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
31961                | SyntaxKind::ENABLE_REPLICA_RULE
31962                | SyntaxKind::ENABLE_REPLICA_TRIGGER
31963                | SyntaxKind::ENABLE_RLS
31964                | SyntaxKind::ENABLE_RULE
31965                | SyntaxKind::ENABLE_TRIGGER
31966                | SyntaxKind::FORCE_RLS
31967                | SyntaxKind::INHERIT_TABLE
31968                | SyntaxKind::MERGE_PARTITIONS
31969                | SyntaxKind::NO_FORCE_RLS
31970                | SyntaxKind::NO_INHERIT_TABLE
31971                | SyntaxKind::NOT_OF
31972                | SyntaxKind::OF_TYPE
31973                | SyntaxKind::OPTION_ITEM_LIST
31974                | SyntaxKind::OWNER_TO
31975                | SyntaxKind::RENAME_COLUMN
31976                | SyntaxKind::RENAME_CONSTRAINT
31977                | SyntaxKind::RENAME_TO
31978                | SyntaxKind::REPLICA_IDENTITY
31979                | SyntaxKind::RESET_OPTIONS
31980                | SyntaxKind::SET_ACCESS_METHOD
31981                | SyntaxKind::SET_LOGGED
31982                | SyntaxKind::SET_OPTIONS
31983                | SyntaxKind::SET_SCHEMA
31984                | SyntaxKind::SET_TABLESPACE
31985                | SyntaxKind::SET_UNLOGGED
31986                | SyntaxKind::SET_WITHOUT_CLUSTER
31987                | SyntaxKind::SET_WITHOUT_OIDS
31988                | SyntaxKind::SPLIT_PARTITION
31989                | SyntaxKind::VALIDATE_CONSTRAINT
31990        )
31991    }
31992    #[inline]
31993    fn cast(syntax: SyntaxNode) -> Option<Self> {
31994        let res = match syntax.kind() {
31995            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
31996            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
31997            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
31998            SyntaxKind::ALTER_CONSTRAINT => {
31999                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
32000            }
32001            SyntaxKind::ATTACH_PARTITION => {
32002                AlterTableAction::AttachPartition(AttachPartition { syntax })
32003            }
32004            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
32005            SyntaxKind::DETACH_PARTITION => {
32006                AlterTableAction::DetachPartition(DetachPartition { syntax })
32007            }
32008            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
32009            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
32010            SyntaxKind::DISABLE_TRIGGER => {
32011                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
32012            }
32013            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
32014            SyntaxKind::DROP_CONSTRAINT => {
32015                AlterTableAction::DropConstraint(DropConstraint { syntax })
32016            }
32017            SyntaxKind::ENABLE_ALWAYS_RULE => {
32018                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
32019            }
32020            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
32021                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
32022            }
32023            SyntaxKind::ENABLE_REPLICA_RULE => {
32024                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
32025            }
32026            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
32027                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
32028            }
32029            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
32030            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
32031            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
32032            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
32033            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
32034            SyntaxKind::MERGE_PARTITIONS => {
32035                AlterTableAction::MergePartitions(MergePartitions { syntax })
32036            }
32037            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
32038            SyntaxKind::NO_INHERIT_TABLE => {
32039                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
32040            }
32041            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
32042            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
32043            SyntaxKind::OPTION_ITEM_LIST => {
32044                AlterTableAction::OptionItemList(OptionItemList { syntax })
32045            }
32046            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
32047            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
32048            SyntaxKind::RENAME_CONSTRAINT => {
32049                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
32050            }
32051            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
32052            SyntaxKind::REPLICA_IDENTITY => {
32053                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
32054            }
32055            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
32056            SyntaxKind::SET_ACCESS_METHOD => {
32057                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
32058            }
32059            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
32060            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
32061            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
32062            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
32063            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
32064            SyntaxKind::SET_WITHOUT_CLUSTER => {
32065                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
32066            }
32067            SyntaxKind::SET_WITHOUT_OIDS => {
32068                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
32069            }
32070            SyntaxKind::SPLIT_PARTITION => {
32071                AlterTableAction::SplitPartition(SplitPartition { syntax })
32072            }
32073            SyntaxKind::VALIDATE_CONSTRAINT => {
32074                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
32075            }
32076            _ => {
32077                return None;
32078            }
32079        };
32080        Some(res)
32081    }
32082    #[inline]
32083    fn syntax(&self) -> &SyntaxNode {
32084        match self {
32085            AlterTableAction::AddColumn(it) => &it.syntax,
32086            AlterTableAction::AddConstraint(it) => &it.syntax,
32087            AlterTableAction::AlterColumn(it) => &it.syntax,
32088            AlterTableAction::AlterConstraint(it) => &it.syntax,
32089            AlterTableAction::AttachPartition(it) => &it.syntax,
32090            AlterTableAction::ClusterOn(it) => &it.syntax,
32091            AlterTableAction::DetachPartition(it) => &it.syntax,
32092            AlterTableAction::DisableRls(it) => &it.syntax,
32093            AlterTableAction::DisableRule(it) => &it.syntax,
32094            AlterTableAction::DisableTrigger(it) => &it.syntax,
32095            AlterTableAction::DropColumn(it) => &it.syntax,
32096            AlterTableAction::DropConstraint(it) => &it.syntax,
32097            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
32098            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
32099            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
32100            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
32101            AlterTableAction::EnableRls(it) => &it.syntax,
32102            AlterTableAction::EnableRule(it) => &it.syntax,
32103            AlterTableAction::EnableTrigger(it) => &it.syntax,
32104            AlterTableAction::ForceRls(it) => &it.syntax,
32105            AlterTableAction::InheritTable(it) => &it.syntax,
32106            AlterTableAction::MergePartitions(it) => &it.syntax,
32107            AlterTableAction::NoForceRls(it) => &it.syntax,
32108            AlterTableAction::NoInheritTable(it) => &it.syntax,
32109            AlterTableAction::NotOf(it) => &it.syntax,
32110            AlterTableAction::OfType(it) => &it.syntax,
32111            AlterTableAction::OptionItemList(it) => &it.syntax,
32112            AlterTableAction::OwnerTo(it) => &it.syntax,
32113            AlterTableAction::RenameColumn(it) => &it.syntax,
32114            AlterTableAction::RenameConstraint(it) => &it.syntax,
32115            AlterTableAction::RenameTo(it) => &it.syntax,
32116            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
32117            AlterTableAction::ResetOptions(it) => &it.syntax,
32118            AlterTableAction::SetAccessMethod(it) => &it.syntax,
32119            AlterTableAction::SetLogged(it) => &it.syntax,
32120            AlterTableAction::SetOptions(it) => &it.syntax,
32121            AlterTableAction::SetSchema(it) => &it.syntax,
32122            AlterTableAction::SetTablespace(it) => &it.syntax,
32123            AlterTableAction::SetUnlogged(it) => &it.syntax,
32124            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
32125            AlterTableAction::SetWithoutOids(it) => &it.syntax,
32126            AlterTableAction::SplitPartition(it) => &it.syntax,
32127            AlterTableAction::ValidateConstraint(it) => &it.syntax,
32128        }
32129    }
32130}
32131impl From<AddColumn> for AlterTableAction {
32132    #[inline]
32133    fn from(node: AddColumn) -> AlterTableAction {
32134        AlterTableAction::AddColumn(node)
32135    }
32136}
32137impl From<AddConstraint> for AlterTableAction {
32138    #[inline]
32139    fn from(node: AddConstraint) -> AlterTableAction {
32140        AlterTableAction::AddConstraint(node)
32141    }
32142}
32143impl From<AlterColumn> for AlterTableAction {
32144    #[inline]
32145    fn from(node: AlterColumn) -> AlterTableAction {
32146        AlterTableAction::AlterColumn(node)
32147    }
32148}
32149impl From<AlterConstraint> for AlterTableAction {
32150    #[inline]
32151    fn from(node: AlterConstraint) -> AlterTableAction {
32152        AlterTableAction::AlterConstraint(node)
32153    }
32154}
32155impl From<AttachPartition> for AlterTableAction {
32156    #[inline]
32157    fn from(node: AttachPartition) -> AlterTableAction {
32158        AlterTableAction::AttachPartition(node)
32159    }
32160}
32161impl From<ClusterOn> for AlterTableAction {
32162    #[inline]
32163    fn from(node: ClusterOn) -> AlterTableAction {
32164        AlterTableAction::ClusterOn(node)
32165    }
32166}
32167impl From<DetachPartition> for AlterTableAction {
32168    #[inline]
32169    fn from(node: DetachPartition) -> AlterTableAction {
32170        AlterTableAction::DetachPartition(node)
32171    }
32172}
32173impl From<DisableRls> for AlterTableAction {
32174    #[inline]
32175    fn from(node: DisableRls) -> AlterTableAction {
32176        AlterTableAction::DisableRls(node)
32177    }
32178}
32179impl From<DisableRule> for AlterTableAction {
32180    #[inline]
32181    fn from(node: DisableRule) -> AlterTableAction {
32182        AlterTableAction::DisableRule(node)
32183    }
32184}
32185impl From<DisableTrigger> for AlterTableAction {
32186    #[inline]
32187    fn from(node: DisableTrigger) -> AlterTableAction {
32188        AlterTableAction::DisableTrigger(node)
32189    }
32190}
32191impl From<DropColumn> for AlterTableAction {
32192    #[inline]
32193    fn from(node: DropColumn) -> AlterTableAction {
32194        AlterTableAction::DropColumn(node)
32195    }
32196}
32197impl From<DropConstraint> for AlterTableAction {
32198    #[inline]
32199    fn from(node: DropConstraint) -> AlterTableAction {
32200        AlterTableAction::DropConstraint(node)
32201    }
32202}
32203impl From<EnableAlwaysRule> for AlterTableAction {
32204    #[inline]
32205    fn from(node: EnableAlwaysRule) -> AlterTableAction {
32206        AlterTableAction::EnableAlwaysRule(node)
32207    }
32208}
32209impl From<EnableAlwaysTrigger> for AlterTableAction {
32210    #[inline]
32211    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
32212        AlterTableAction::EnableAlwaysTrigger(node)
32213    }
32214}
32215impl From<EnableReplicaRule> for AlterTableAction {
32216    #[inline]
32217    fn from(node: EnableReplicaRule) -> AlterTableAction {
32218        AlterTableAction::EnableReplicaRule(node)
32219    }
32220}
32221impl From<EnableReplicaTrigger> for AlterTableAction {
32222    #[inline]
32223    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
32224        AlterTableAction::EnableReplicaTrigger(node)
32225    }
32226}
32227impl From<EnableRls> for AlterTableAction {
32228    #[inline]
32229    fn from(node: EnableRls) -> AlterTableAction {
32230        AlterTableAction::EnableRls(node)
32231    }
32232}
32233impl From<EnableRule> for AlterTableAction {
32234    #[inline]
32235    fn from(node: EnableRule) -> AlterTableAction {
32236        AlterTableAction::EnableRule(node)
32237    }
32238}
32239impl From<EnableTrigger> for AlterTableAction {
32240    #[inline]
32241    fn from(node: EnableTrigger) -> AlterTableAction {
32242        AlterTableAction::EnableTrigger(node)
32243    }
32244}
32245impl From<ForceRls> for AlterTableAction {
32246    #[inline]
32247    fn from(node: ForceRls) -> AlterTableAction {
32248        AlterTableAction::ForceRls(node)
32249    }
32250}
32251impl From<InheritTable> for AlterTableAction {
32252    #[inline]
32253    fn from(node: InheritTable) -> AlterTableAction {
32254        AlterTableAction::InheritTable(node)
32255    }
32256}
32257impl From<MergePartitions> for AlterTableAction {
32258    #[inline]
32259    fn from(node: MergePartitions) -> AlterTableAction {
32260        AlterTableAction::MergePartitions(node)
32261    }
32262}
32263impl From<NoForceRls> for AlterTableAction {
32264    #[inline]
32265    fn from(node: NoForceRls) -> AlterTableAction {
32266        AlterTableAction::NoForceRls(node)
32267    }
32268}
32269impl From<NoInheritTable> for AlterTableAction {
32270    #[inline]
32271    fn from(node: NoInheritTable) -> AlterTableAction {
32272        AlterTableAction::NoInheritTable(node)
32273    }
32274}
32275impl From<NotOf> for AlterTableAction {
32276    #[inline]
32277    fn from(node: NotOf) -> AlterTableAction {
32278        AlterTableAction::NotOf(node)
32279    }
32280}
32281impl From<OfType> for AlterTableAction {
32282    #[inline]
32283    fn from(node: OfType) -> AlterTableAction {
32284        AlterTableAction::OfType(node)
32285    }
32286}
32287impl From<OptionItemList> for AlterTableAction {
32288    #[inline]
32289    fn from(node: OptionItemList) -> AlterTableAction {
32290        AlterTableAction::OptionItemList(node)
32291    }
32292}
32293impl From<OwnerTo> for AlterTableAction {
32294    #[inline]
32295    fn from(node: OwnerTo) -> AlterTableAction {
32296        AlterTableAction::OwnerTo(node)
32297    }
32298}
32299impl From<RenameColumn> for AlterTableAction {
32300    #[inline]
32301    fn from(node: RenameColumn) -> AlterTableAction {
32302        AlterTableAction::RenameColumn(node)
32303    }
32304}
32305impl From<RenameConstraint> for AlterTableAction {
32306    #[inline]
32307    fn from(node: RenameConstraint) -> AlterTableAction {
32308        AlterTableAction::RenameConstraint(node)
32309    }
32310}
32311impl From<RenameTo> for AlterTableAction {
32312    #[inline]
32313    fn from(node: RenameTo) -> AlterTableAction {
32314        AlterTableAction::RenameTo(node)
32315    }
32316}
32317impl From<ReplicaIdentity> for AlterTableAction {
32318    #[inline]
32319    fn from(node: ReplicaIdentity) -> AlterTableAction {
32320        AlterTableAction::ReplicaIdentity(node)
32321    }
32322}
32323impl From<ResetOptions> for AlterTableAction {
32324    #[inline]
32325    fn from(node: ResetOptions) -> AlterTableAction {
32326        AlterTableAction::ResetOptions(node)
32327    }
32328}
32329impl From<SetAccessMethod> for AlterTableAction {
32330    #[inline]
32331    fn from(node: SetAccessMethod) -> AlterTableAction {
32332        AlterTableAction::SetAccessMethod(node)
32333    }
32334}
32335impl From<SetLogged> for AlterTableAction {
32336    #[inline]
32337    fn from(node: SetLogged) -> AlterTableAction {
32338        AlterTableAction::SetLogged(node)
32339    }
32340}
32341impl From<SetOptions> for AlterTableAction {
32342    #[inline]
32343    fn from(node: SetOptions) -> AlterTableAction {
32344        AlterTableAction::SetOptions(node)
32345    }
32346}
32347impl From<SetSchema> for AlterTableAction {
32348    #[inline]
32349    fn from(node: SetSchema) -> AlterTableAction {
32350        AlterTableAction::SetSchema(node)
32351    }
32352}
32353impl From<SetTablespace> for AlterTableAction {
32354    #[inline]
32355    fn from(node: SetTablespace) -> AlterTableAction {
32356        AlterTableAction::SetTablespace(node)
32357    }
32358}
32359impl From<SetUnlogged> for AlterTableAction {
32360    #[inline]
32361    fn from(node: SetUnlogged) -> AlterTableAction {
32362        AlterTableAction::SetUnlogged(node)
32363    }
32364}
32365impl From<SetWithoutCluster> for AlterTableAction {
32366    #[inline]
32367    fn from(node: SetWithoutCluster) -> AlterTableAction {
32368        AlterTableAction::SetWithoutCluster(node)
32369    }
32370}
32371impl From<SetWithoutOids> for AlterTableAction {
32372    #[inline]
32373    fn from(node: SetWithoutOids) -> AlterTableAction {
32374        AlterTableAction::SetWithoutOids(node)
32375    }
32376}
32377impl From<SplitPartition> for AlterTableAction {
32378    #[inline]
32379    fn from(node: SplitPartition) -> AlterTableAction {
32380        AlterTableAction::SplitPartition(node)
32381    }
32382}
32383impl From<ValidateConstraint> for AlterTableAction {
32384    #[inline]
32385    fn from(node: ValidateConstraint) -> AlterTableAction {
32386        AlterTableAction::ValidateConstraint(node)
32387    }
32388}
32389impl AstNode for AlterTypeAction {
32390    #[inline]
32391    fn can_cast(kind: SyntaxKind) -> bool {
32392        matches!(
32393            kind,
32394            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
32395        )
32396    }
32397    #[inline]
32398    fn cast(syntax: SyntaxNode) -> Option<Self> {
32399        let res = match syntax.kind() {
32400            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
32401            SyntaxKind::ALTER_ATTRIBUTE => {
32402                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
32403            }
32404            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
32405            _ => {
32406                return None;
32407            }
32408        };
32409        Some(res)
32410    }
32411    #[inline]
32412    fn syntax(&self) -> &SyntaxNode {
32413        match self {
32414            AlterTypeAction::AddAttribute(it) => &it.syntax,
32415            AlterTypeAction::AlterAttribute(it) => &it.syntax,
32416            AlterTypeAction::DropAttribute(it) => &it.syntax,
32417        }
32418    }
32419}
32420impl From<AddAttribute> for AlterTypeAction {
32421    #[inline]
32422    fn from(node: AddAttribute) -> AlterTypeAction {
32423        AlterTypeAction::AddAttribute(node)
32424    }
32425}
32426impl From<AlterAttribute> for AlterTypeAction {
32427    #[inline]
32428    fn from(node: AlterAttribute) -> AlterTypeAction {
32429        AlterTypeAction::AlterAttribute(node)
32430    }
32431}
32432impl From<DropAttribute> for AlterTypeAction {
32433    #[inline]
32434    fn from(node: DropAttribute) -> AlterTypeAction {
32435        AlterTypeAction::DropAttribute(node)
32436    }
32437}
32438impl AstNode for ColumnConstraint {
32439    #[inline]
32440    fn can_cast(kind: SyntaxKind) -> bool {
32441        matches!(
32442            kind,
32443            SyntaxKind::CHECK_CONSTRAINT
32444                | SyntaxKind::DEFAULT_CONSTRAINT
32445                | SyntaxKind::EXCLUDE_CONSTRAINT
32446                | SyntaxKind::NOT_NULL_CONSTRAINT
32447                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32448                | SyntaxKind::REFERENCES_CONSTRAINT
32449                | SyntaxKind::UNIQUE_CONSTRAINT
32450        )
32451    }
32452    #[inline]
32453    fn cast(syntax: SyntaxNode) -> Option<Self> {
32454        let res = match syntax.kind() {
32455            SyntaxKind::CHECK_CONSTRAINT => {
32456                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
32457            }
32458            SyntaxKind::DEFAULT_CONSTRAINT => {
32459                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
32460            }
32461            SyntaxKind::EXCLUDE_CONSTRAINT => {
32462                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32463            }
32464            SyntaxKind::NOT_NULL_CONSTRAINT => {
32465                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
32466            }
32467            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32468                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32469            }
32470            SyntaxKind::REFERENCES_CONSTRAINT => {
32471                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
32472            }
32473            SyntaxKind::UNIQUE_CONSTRAINT => {
32474                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
32475            }
32476            _ => {
32477                return None;
32478            }
32479        };
32480        Some(res)
32481    }
32482    #[inline]
32483    fn syntax(&self) -> &SyntaxNode {
32484        match self {
32485            ColumnConstraint::CheckConstraint(it) => &it.syntax,
32486            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
32487            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
32488            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
32489            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32490            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
32491            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
32492        }
32493    }
32494}
32495impl From<CheckConstraint> for ColumnConstraint {
32496    #[inline]
32497    fn from(node: CheckConstraint) -> ColumnConstraint {
32498        ColumnConstraint::CheckConstraint(node)
32499    }
32500}
32501impl From<DefaultConstraint> for ColumnConstraint {
32502    #[inline]
32503    fn from(node: DefaultConstraint) -> ColumnConstraint {
32504        ColumnConstraint::DefaultConstraint(node)
32505    }
32506}
32507impl From<ExcludeConstraint> for ColumnConstraint {
32508    #[inline]
32509    fn from(node: ExcludeConstraint) -> ColumnConstraint {
32510        ColumnConstraint::ExcludeConstraint(node)
32511    }
32512}
32513impl From<NotNullConstraint> for ColumnConstraint {
32514    #[inline]
32515    fn from(node: NotNullConstraint) -> ColumnConstraint {
32516        ColumnConstraint::NotNullConstraint(node)
32517    }
32518}
32519impl From<PrimaryKeyConstraint> for ColumnConstraint {
32520    #[inline]
32521    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
32522        ColumnConstraint::PrimaryKeyConstraint(node)
32523    }
32524}
32525impl From<ReferencesConstraint> for ColumnConstraint {
32526    #[inline]
32527    fn from(node: ReferencesConstraint) -> ColumnConstraint {
32528        ColumnConstraint::ReferencesConstraint(node)
32529    }
32530}
32531impl From<UniqueConstraint> for ColumnConstraint {
32532    #[inline]
32533    fn from(node: UniqueConstraint) -> ColumnConstraint {
32534        ColumnConstraint::UniqueConstraint(node)
32535    }
32536}
32537impl AstNode for ConfigValue {
32538    #[inline]
32539    fn can_cast(kind: SyntaxKind) -> bool {
32540        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
32541    }
32542    #[inline]
32543    fn cast(syntax: SyntaxNode) -> Option<Self> {
32544        let res = match syntax.kind() {
32545            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
32546            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
32547            _ => {
32548                return None;
32549            }
32550        };
32551        Some(res)
32552    }
32553    #[inline]
32554    fn syntax(&self) -> &SyntaxNode {
32555        match self {
32556            ConfigValue::Literal(it) => &it.syntax,
32557            ConfigValue::NameRef(it) => &it.syntax,
32558        }
32559    }
32560}
32561impl From<Literal> for ConfigValue {
32562    #[inline]
32563    fn from(node: Literal) -> ConfigValue {
32564        ConfigValue::Literal(node)
32565    }
32566}
32567impl From<NameRef> for ConfigValue {
32568    #[inline]
32569    fn from(node: NameRef) -> ConfigValue {
32570        ConfigValue::NameRef(node)
32571    }
32572}
32573impl AstNode for ConflictAction {
32574    #[inline]
32575    fn can_cast(kind: SyntaxKind) -> bool {
32576        matches!(
32577            kind,
32578            SyntaxKind::CONFLICT_DO_NOTHING
32579                | SyntaxKind::CONFLICT_DO_SELECT
32580                | SyntaxKind::CONFLICT_DO_UPDATE_SET
32581        )
32582    }
32583    #[inline]
32584    fn cast(syntax: SyntaxNode) -> Option<Self> {
32585        let res = match syntax.kind() {
32586            SyntaxKind::CONFLICT_DO_NOTHING => {
32587                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
32588            }
32589            SyntaxKind::CONFLICT_DO_SELECT => {
32590                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
32591            }
32592            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
32593                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
32594            }
32595            _ => {
32596                return None;
32597            }
32598        };
32599        Some(res)
32600    }
32601    #[inline]
32602    fn syntax(&self) -> &SyntaxNode {
32603        match self {
32604            ConflictAction::ConflictDoNothing(it) => &it.syntax,
32605            ConflictAction::ConflictDoSelect(it) => &it.syntax,
32606            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
32607        }
32608    }
32609}
32610impl From<ConflictDoNothing> for ConflictAction {
32611    #[inline]
32612    fn from(node: ConflictDoNothing) -> ConflictAction {
32613        ConflictAction::ConflictDoNothing(node)
32614    }
32615}
32616impl From<ConflictDoSelect> for ConflictAction {
32617    #[inline]
32618    fn from(node: ConflictDoSelect) -> ConflictAction {
32619        ConflictAction::ConflictDoSelect(node)
32620    }
32621}
32622impl From<ConflictDoUpdateSet> for ConflictAction {
32623    #[inline]
32624    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
32625        ConflictAction::ConflictDoUpdateSet(node)
32626    }
32627}
32628impl AstNode for ConflictTarget {
32629    #[inline]
32630    fn can_cast(kind: SyntaxKind) -> bool {
32631        matches!(
32632            kind,
32633            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
32634        )
32635    }
32636    #[inline]
32637    fn cast(syntax: SyntaxNode) -> Option<Self> {
32638        let res = match syntax.kind() {
32639            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
32640                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
32641            }
32642            SyntaxKind::CONFLICT_ON_INDEX => {
32643                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
32644            }
32645            _ => {
32646                return None;
32647            }
32648        };
32649        Some(res)
32650    }
32651    #[inline]
32652    fn syntax(&self) -> &SyntaxNode {
32653        match self {
32654            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
32655            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
32656        }
32657    }
32658}
32659impl From<ConflictOnConstraint> for ConflictTarget {
32660    #[inline]
32661    fn from(node: ConflictOnConstraint) -> ConflictTarget {
32662        ConflictTarget::ConflictOnConstraint(node)
32663    }
32664}
32665impl From<ConflictOnIndex> for ConflictTarget {
32666    #[inline]
32667    fn from(node: ConflictOnIndex) -> ConflictTarget {
32668        ConflictTarget::ConflictOnIndex(node)
32669    }
32670}
32671impl AstNode for Constraint {
32672    #[inline]
32673    fn can_cast(kind: SyntaxKind) -> bool {
32674        matches!(
32675            kind,
32676            SyntaxKind::CHECK_CONSTRAINT
32677                | SyntaxKind::DEFAULT_CONSTRAINT
32678                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32679                | SyntaxKind::GENERATED_CONSTRAINT
32680                | SyntaxKind::NOT_NULL_CONSTRAINT
32681                | SyntaxKind::NULL_CONSTRAINT
32682                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32683                | SyntaxKind::REFERENCES_CONSTRAINT
32684                | SyntaxKind::UNIQUE_CONSTRAINT
32685        )
32686    }
32687    #[inline]
32688    fn cast(syntax: SyntaxNode) -> Option<Self> {
32689        let res = match syntax.kind() {
32690            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
32691            SyntaxKind::DEFAULT_CONSTRAINT => {
32692                Constraint::DefaultConstraint(DefaultConstraint { syntax })
32693            }
32694            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32695                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32696            }
32697            SyntaxKind::GENERATED_CONSTRAINT => {
32698                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
32699            }
32700            SyntaxKind::NOT_NULL_CONSTRAINT => {
32701                Constraint::NotNullConstraint(NotNullConstraint { syntax })
32702            }
32703            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
32704            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32705                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32706            }
32707            SyntaxKind::REFERENCES_CONSTRAINT => {
32708                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
32709            }
32710            SyntaxKind::UNIQUE_CONSTRAINT => {
32711                Constraint::UniqueConstraint(UniqueConstraint { syntax })
32712            }
32713            _ => {
32714                return None;
32715            }
32716        };
32717        Some(res)
32718    }
32719    #[inline]
32720    fn syntax(&self) -> &SyntaxNode {
32721        match self {
32722            Constraint::CheckConstraint(it) => &it.syntax,
32723            Constraint::DefaultConstraint(it) => &it.syntax,
32724            Constraint::ForeignKeyConstraint(it) => &it.syntax,
32725            Constraint::GeneratedConstraint(it) => &it.syntax,
32726            Constraint::NotNullConstraint(it) => &it.syntax,
32727            Constraint::NullConstraint(it) => &it.syntax,
32728            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
32729            Constraint::ReferencesConstraint(it) => &it.syntax,
32730            Constraint::UniqueConstraint(it) => &it.syntax,
32731        }
32732    }
32733}
32734impl From<CheckConstraint> for Constraint {
32735    #[inline]
32736    fn from(node: CheckConstraint) -> Constraint {
32737        Constraint::CheckConstraint(node)
32738    }
32739}
32740impl From<DefaultConstraint> for Constraint {
32741    #[inline]
32742    fn from(node: DefaultConstraint) -> Constraint {
32743        Constraint::DefaultConstraint(node)
32744    }
32745}
32746impl From<ForeignKeyConstraint> for Constraint {
32747    #[inline]
32748    fn from(node: ForeignKeyConstraint) -> Constraint {
32749        Constraint::ForeignKeyConstraint(node)
32750    }
32751}
32752impl From<GeneratedConstraint> for Constraint {
32753    #[inline]
32754    fn from(node: GeneratedConstraint) -> Constraint {
32755        Constraint::GeneratedConstraint(node)
32756    }
32757}
32758impl From<NotNullConstraint> for Constraint {
32759    #[inline]
32760    fn from(node: NotNullConstraint) -> Constraint {
32761        Constraint::NotNullConstraint(node)
32762    }
32763}
32764impl From<NullConstraint> for Constraint {
32765    #[inline]
32766    fn from(node: NullConstraint) -> Constraint {
32767        Constraint::NullConstraint(node)
32768    }
32769}
32770impl From<PrimaryKeyConstraint> for Constraint {
32771    #[inline]
32772    fn from(node: PrimaryKeyConstraint) -> Constraint {
32773        Constraint::PrimaryKeyConstraint(node)
32774    }
32775}
32776impl From<ReferencesConstraint> for Constraint {
32777    #[inline]
32778    fn from(node: ReferencesConstraint) -> Constraint {
32779        Constraint::ReferencesConstraint(node)
32780    }
32781}
32782impl From<UniqueConstraint> for Constraint {
32783    #[inline]
32784    fn from(node: UniqueConstraint) -> Constraint {
32785        Constraint::UniqueConstraint(node)
32786    }
32787}
32788impl AstNode for ElementTableLabelAndProperties {
32789    #[inline]
32790    fn can_cast(kind: SyntaxKind) -> bool {
32791        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
32792    }
32793    #[inline]
32794    fn cast(syntax: SyntaxNode) -> Option<Self> {
32795        let res = match syntax.kind() {
32796            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
32797                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
32798                    syntax,
32799                })
32800            }
32801            _ => {
32802                if let Some(result) = ElementTableProperties::cast(syntax) {
32803                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
32804                        result,
32805                    ));
32806                }
32807                return None;
32808            }
32809        };
32810        Some(res)
32811    }
32812    #[inline]
32813    fn syntax(&self) -> &SyntaxNode {
32814        match self {
32815            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
32816            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
32817        }
32818    }
32819}
32820impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
32821    #[inline]
32822    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
32823        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
32824    }
32825}
32826impl AstNode for ElementTableProperties {
32827    #[inline]
32828    fn can_cast(kind: SyntaxKind) -> bool {
32829        matches!(
32830            kind,
32831            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES_LIST
32832        )
32833    }
32834    #[inline]
32835    fn cast(syntax: SyntaxNode) -> Option<Self> {
32836        let res = match syntax.kind() {
32837            SyntaxKind::ALL_PROPERTIES => {
32838                ElementTableProperties::AllProperties(AllProperties { syntax })
32839            }
32840            SyntaxKind::NO_PROPERTIES => {
32841                ElementTableProperties::NoProperties(NoProperties { syntax })
32842            }
32843            SyntaxKind::PROPERTIES_LIST => {
32844                ElementTableProperties::PropertiesList(PropertiesList { syntax })
32845            }
32846            _ => {
32847                return None;
32848            }
32849        };
32850        Some(res)
32851    }
32852    #[inline]
32853    fn syntax(&self) -> &SyntaxNode {
32854        match self {
32855            ElementTableProperties::AllProperties(it) => &it.syntax,
32856            ElementTableProperties::NoProperties(it) => &it.syntax,
32857            ElementTableProperties::PropertiesList(it) => &it.syntax,
32858        }
32859    }
32860}
32861impl From<AllProperties> for ElementTableProperties {
32862    #[inline]
32863    fn from(node: AllProperties) -> ElementTableProperties {
32864        ElementTableProperties::AllProperties(node)
32865    }
32866}
32867impl From<NoProperties> for ElementTableProperties {
32868    #[inline]
32869    fn from(node: NoProperties) -> ElementTableProperties {
32870        ElementTableProperties::NoProperties(node)
32871    }
32872}
32873impl From<PropertiesList> for ElementTableProperties {
32874    #[inline]
32875    fn from(node: PropertiesList) -> ElementTableProperties {
32876        ElementTableProperties::PropertiesList(node)
32877    }
32878}
32879impl AstNode for ExplainStmt {
32880    #[inline]
32881    fn can_cast(kind: SyntaxKind) -> bool {
32882        matches!(
32883            kind,
32884            SyntaxKind::COMPOUND_SELECT
32885                | SyntaxKind::CREATE_MATERIALIZED_VIEW
32886                | SyntaxKind::CREATE_TABLE_AS
32887                | SyntaxKind::DECLARE
32888                | SyntaxKind::DELETE
32889                | SyntaxKind::EXECUTE
32890                | SyntaxKind::INSERT
32891                | SyntaxKind::MERGE
32892                | SyntaxKind::PAREN_SELECT
32893                | SyntaxKind::SELECT
32894                | SyntaxKind::SELECT_INTO
32895                | SyntaxKind::TABLE
32896                | SyntaxKind::UPDATE
32897                | SyntaxKind::VALUES
32898        )
32899    }
32900    #[inline]
32901    fn cast(syntax: SyntaxNode) -> Option<Self> {
32902        let res = match syntax.kind() {
32903            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
32904            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
32905                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
32906            }
32907            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
32908            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
32909            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
32910            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
32911            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
32912            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
32913            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
32914            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
32915            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
32916            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
32917            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
32918            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
32919            _ => {
32920                return None;
32921            }
32922        };
32923        Some(res)
32924    }
32925    #[inline]
32926    fn syntax(&self) -> &SyntaxNode {
32927        match self {
32928            ExplainStmt::CompoundSelect(it) => &it.syntax,
32929            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
32930            ExplainStmt::CreateTableAs(it) => &it.syntax,
32931            ExplainStmt::Declare(it) => &it.syntax,
32932            ExplainStmt::Delete(it) => &it.syntax,
32933            ExplainStmt::Execute(it) => &it.syntax,
32934            ExplainStmt::Insert(it) => &it.syntax,
32935            ExplainStmt::Merge(it) => &it.syntax,
32936            ExplainStmt::ParenSelect(it) => &it.syntax,
32937            ExplainStmt::Select(it) => &it.syntax,
32938            ExplainStmt::SelectInto(it) => &it.syntax,
32939            ExplainStmt::Table(it) => &it.syntax,
32940            ExplainStmt::Update(it) => &it.syntax,
32941            ExplainStmt::Values(it) => &it.syntax,
32942        }
32943    }
32944}
32945impl From<CompoundSelect> for ExplainStmt {
32946    #[inline]
32947    fn from(node: CompoundSelect) -> ExplainStmt {
32948        ExplainStmt::CompoundSelect(node)
32949    }
32950}
32951impl From<CreateMaterializedView> for ExplainStmt {
32952    #[inline]
32953    fn from(node: CreateMaterializedView) -> ExplainStmt {
32954        ExplainStmt::CreateMaterializedView(node)
32955    }
32956}
32957impl From<CreateTableAs> for ExplainStmt {
32958    #[inline]
32959    fn from(node: CreateTableAs) -> ExplainStmt {
32960        ExplainStmt::CreateTableAs(node)
32961    }
32962}
32963impl From<Declare> for ExplainStmt {
32964    #[inline]
32965    fn from(node: Declare) -> ExplainStmt {
32966        ExplainStmt::Declare(node)
32967    }
32968}
32969impl From<Delete> for ExplainStmt {
32970    #[inline]
32971    fn from(node: Delete) -> ExplainStmt {
32972        ExplainStmt::Delete(node)
32973    }
32974}
32975impl From<Execute> for ExplainStmt {
32976    #[inline]
32977    fn from(node: Execute) -> ExplainStmt {
32978        ExplainStmt::Execute(node)
32979    }
32980}
32981impl From<Insert> for ExplainStmt {
32982    #[inline]
32983    fn from(node: Insert) -> ExplainStmt {
32984        ExplainStmt::Insert(node)
32985    }
32986}
32987impl From<Merge> for ExplainStmt {
32988    #[inline]
32989    fn from(node: Merge) -> ExplainStmt {
32990        ExplainStmt::Merge(node)
32991    }
32992}
32993impl From<ParenSelect> for ExplainStmt {
32994    #[inline]
32995    fn from(node: ParenSelect) -> ExplainStmt {
32996        ExplainStmt::ParenSelect(node)
32997    }
32998}
32999impl From<Select> for ExplainStmt {
33000    #[inline]
33001    fn from(node: Select) -> ExplainStmt {
33002        ExplainStmt::Select(node)
33003    }
33004}
33005impl From<SelectInto> for ExplainStmt {
33006    #[inline]
33007    fn from(node: SelectInto) -> ExplainStmt {
33008        ExplainStmt::SelectInto(node)
33009    }
33010}
33011impl From<Table> for ExplainStmt {
33012    #[inline]
33013    fn from(node: Table) -> ExplainStmt {
33014        ExplainStmt::Table(node)
33015    }
33016}
33017impl From<Update> for ExplainStmt {
33018    #[inline]
33019    fn from(node: Update) -> ExplainStmt {
33020        ExplainStmt::Update(node)
33021    }
33022}
33023impl From<Values> for ExplainStmt {
33024    #[inline]
33025    fn from(node: Values) -> ExplainStmt {
33026        ExplainStmt::Values(node)
33027    }
33028}
33029impl AstNode for Expr {
33030    #[inline]
33031    fn can_cast(kind: SyntaxKind) -> bool {
33032        matches!(
33033            kind,
33034            SyntaxKind::ARRAY_EXPR
33035                | SyntaxKind::BETWEEN_EXPR
33036                | SyntaxKind::BIN_EXPR
33037                | SyntaxKind::CALL_EXPR
33038                | SyntaxKind::CASE_EXPR
33039                | SyntaxKind::CAST_EXPR
33040                | SyntaxKind::FIELD_EXPR
33041                | SyntaxKind::INDEX_EXPR
33042                | SyntaxKind::LITERAL
33043                | SyntaxKind::NAME_REF
33044                | SyntaxKind::PAREN_EXPR
33045                | SyntaxKind::POSTFIX_EXPR
33046                | SyntaxKind::PREFIX_EXPR
33047                | SyntaxKind::SLICE_EXPR
33048                | SyntaxKind::TUPLE_EXPR
33049        )
33050    }
33051    #[inline]
33052    fn cast(syntax: SyntaxNode) -> Option<Self> {
33053        let res = match syntax.kind() {
33054            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
33055            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
33056            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
33057            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
33058            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
33059            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
33060            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
33061            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
33062            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
33063            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
33064            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
33065            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
33066            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
33067            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
33068            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
33069            _ => {
33070                return None;
33071            }
33072        };
33073        Some(res)
33074    }
33075    #[inline]
33076    fn syntax(&self) -> &SyntaxNode {
33077        match self {
33078            Expr::ArrayExpr(it) => &it.syntax,
33079            Expr::BetweenExpr(it) => &it.syntax,
33080            Expr::BinExpr(it) => &it.syntax,
33081            Expr::CallExpr(it) => &it.syntax,
33082            Expr::CaseExpr(it) => &it.syntax,
33083            Expr::CastExpr(it) => &it.syntax,
33084            Expr::FieldExpr(it) => &it.syntax,
33085            Expr::IndexExpr(it) => &it.syntax,
33086            Expr::Literal(it) => &it.syntax,
33087            Expr::NameRef(it) => &it.syntax,
33088            Expr::ParenExpr(it) => &it.syntax,
33089            Expr::PostfixExpr(it) => &it.syntax,
33090            Expr::PrefixExpr(it) => &it.syntax,
33091            Expr::SliceExpr(it) => &it.syntax,
33092            Expr::TupleExpr(it) => &it.syntax,
33093        }
33094    }
33095}
33096impl From<ArrayExpr> for Expr {
33097    #[inline]
33098    fn from(node: ArrayExpr) -> Expr {
33099        Expr::ArrayExpr(node)
33100    }
33101}
33102impl From<BetweenExpr> for Expr {
33103    #[inline]
33104    fn from(node: BetweenExpr) -> Expr {
33105        Expr::BetweenExpr(node)
33106    }
33107}
33108impl From<BinExpr> for Expr {
33109    #[inline]
33110    fn from(node: BinExpr) -> Expr {
33111        Expr::BinExpr(node)
33112    }
33113}
33114impl From<CallExpr> for Expr {
33115    #[inline]
33116    fn from(node: CallExpr) -> Expr {
33117        Expr::CallExpr(node)
33118    }
33119}
33120impl From<CaseExpr> for Expr {
33121    #[inline]
33122    fn from(node: CaseExpr) -> Expr {
33123        Expr::CaseExpr(node)
33124    }
33125}
33126impl From<CastExpr> for Expr {
33127    #[inline]
33128    fn from(node: CastExpr) -> Expr {
33129        Expr::CastExpr(node)
33130    }
33131}
33132impl From<FieldExpr> for Expr {
33133    #[inline]
33134    fn from(node: FieldExpr) -> Expr {
33135        Expr::FieldExpr(node)
33136    }
33137}
33138impl From<IndexExpr> for Expr {
33139    #[inline]
33140    fn from(node: IndexExpr) -> Expr {
33141        Expr::IndexExpr(node)
33142    }
33143}
33144impl From<Literal> for Expr {
33145    #[inline]
33146    fn from(node: Literal) -> Expr {
33147        Expr::Literal(node)
33148    }
33149}
33150impl From<NameRef> for Expr {
33151    #[inline]
33152    fn from(node: NameRef) -> Expr {
33153        Expr::NameRef(node)
33154    }
33155}
33156impl From<ParenExpr> for Expr {
33157    #[inline]
33158    fn from(node: ParenExpr) -> Expr {
33159        Expr::ParenExpr(node)
33160    }
33161}
33162impl From<PostfixExpr> for Expr {
33163    #[inline]
33164    fn from(node: PostfixExpr) -> Expr {
33165        Expr::PostfixExpr(node)
33166    }
33167}
33168impl From<PrefixExpr> for Expr {
33169    #[inline]
33170    fn from(node: PrefixExpr) -> Expr {
33171        Expr::PrefixExpr(node)
33172    }
33173}
33174impl From<SliceExpr> for Expr {
33175    #[inline]
33176    fn from(node: SliceExpr) -> Expr {
33177        Expr::SliceExpr(node)
33178    }
33179}
33180impl From<TupleExpr> for Expr {
33181    #[inline]
33182    fn from(node: TupleExpr) -> Expr {
33183        Expr::TupleExpr(node)
33184    }
33185}
33186impl AstNode for FuncOption {
33187    #[inline]
33188    fn can_cast(kind: SyntaxKind) -> bool {
33189        matches!(
33190            kind,
33191            SyntaxKind::AS_FUNC_OPTION
33192                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
33193                | SyntaxKind::COST_FUNC_OPTION
33194                | SyntaxKind::LANGUAGE_FUNC_OPTION
33195                | SyntaxKind::LEAKPROOF_FUNC_OPTION
33196                | SyntaxKind::PARALLEL_FUNC_OPTION
33197                | SyntaxKind::RESET_FUNC_OPTION
33198                | SyntaxKind::RETURN_FUNC_OPTION
33199                | SyntaxKind::ROWS_FUNC_OPTION
33200                | SyntaxKind::SECURITY_FUNC_OPTION
33201                | SyntaxKind::SET_FUNC_OPTION
33202                | SyntaxKind::STRICT_FUNC_OPTION
33203                | SyntaxKind::SUPPORT_FUNC_OPTION
33204                | SyntaxKind::TRANSFORM_FUNC_OPTION
33205                | SyntaxKind::VOLATILITY_FUNC_OPTION
33206                | SyntaxKind::WINDOW_FUNC_OPTION
33207        )
33208    }
33209    #[inline]
33210    fn cast(syntax: SyntaxNode) -> Option<Self> {
33211        let res = match syntax.kind() {
33212            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
33213            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
33214                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
33215            }
33216            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
33217            SyntaxKind::LANGUAGE_FUNC_OPTION => {
33218                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
33219            }
33220            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
33221                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
33222            }
33223            SyntaxKind::PARALLEL_FUNC_OPTION => {
33224                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
33225            }
33226            SyntaxKind::RESET_FUNC_OPTION => {
33227                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
33228            }
33229            SyntaxKind::RETURN_FUNC_OPTION => {
33230                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33231            }
33232            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
33233            SyntaxKind::SECURITY_FUNC_OPTION => {
33234                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
33235            }
33236            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
33237            SyntaxKind::STRICT_FUNC_OPTION => {
33238                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
33239            }
33240            SyntaxKind::SUPPORT_FUNC_OPTION => {
33241                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
33242            }
33243            SyntaxKind::TRANSFORM_FUNC_OPTION => {
33244                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
33245            }
33246            SyntaxKind::VOLATILITY_FUNC_OPTION => {
33247                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
33248            }
33249            SyntaxKind::WINDOW_FUNC_OPTION => {
33250                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
33251            }
33252            _ => {
33253                return None;
33254            }
33255        };
33256        Some(res)
33257    }
33258    #[inline]
33259    fn syntax(&self) -> &SyntaxNode {
33260        match self {
33261            FuncOption::AsFuncOption(it) => &it.syntax,
33262            FuncOption::BeginFuncOptionList(it) => &it.syntax,
33263            FuncOption::CostFuncOption(it) => &it.syntax,
33264            FuncOption::LanguageFuncOption(it) => &it.syntax,
33265            FuncOption::LeakproofFuncOption(it) => &it.syntax,
33266            FuncOption::ParallelFuncOption(it) => &it.syntax,
33267            FuncOption::ResetFuncOption(it) => &it.syntax,
33268            FuncOption::ReturnFuncOption(it) => &it.syntax,
33269            FuncOption::RowsFuncOption(it) => &it.syntax,
33270            FuncOption::SecurityFuncOption(it) => &it.syntax,
33271            FuncOption::SetFuncOption(it) => &it.syntax,
33272            FuncOption::StrictFuncOption(it) => &it.syntax,
33273            FuncOption::SupportFuncOption(it) => &it.syntax,
33274            FuncOption::TransformFuncOption(it) => &it.syntax,
33275            FuncOption::VolatilityFuncOption(it) => &it.syntax,
33276            FuncOption::WindowFuncOption(it) => &it.syntax,
33277        }
33278    }
33279}
33280impl From<AsFuncOption> for FuncOption {
33281    #[inline]
33282    fn from(node: AsFuncOption) -> FuncOption {
33283        FuncOption::AsFuncOption(node)
33284    }
33285}
33286impl From<BeginFuncOptionList> for FuncOption {
33287    #[inline]
33288    fn from(node: BeginFuncOptionList) -> FuncOption {
33289        FuncOption::BeginFuncOptionList(node)
33290    }
33291}
33292impl From<CostFuncOption> for FuncOption {
33293    #[inline]
33294    fn from(node: CostFuncOption) -> FuncOption {
33295        FuncOption::CostFuncOption(node)
33296    }
33297}
33298impl From<LanguageFuncOption> for FuncOption {
33299    #[inline]
33300    fn from(node: LanguageFuncOption) -> FuncOption {
33301        FuncOption::LanguageFuncOption(node)
33302    }
33303}
33304impl From<LeakproofFuncOption> for FuncOption {
33305    #[inline]
33306    fn from(node: LeakproofFuncOption) -> FuncOption {
33307        FuncOption::LeakproofFuncOption(node)
33308    }
33309}
33310impl From<ParallelFuncOption> for FuncOption {
33311    #[inline]
33312    fn from(node: ParallelFuncOption) -> FuncOption {
33313        FuncOption::ParallelFuncOption(node)
33314    }
33315}
33316impl From<ResetFuncOption> for FuncOption {
33317    #[inline]
33318    fn from(node: ResetFuncOption) -> FuncOption {
33319        FuncOption::ResetFuncOption(node)
33320    }
33321}
33322impl From<ReturnFuncOption> for FuncOption {
33323    #[inline]
33324    fn from(node: ReturnFuncOption) -> FuncOption {
33325        FuncOption::ReturnFuncOption(node)
33326    }
33327}
33328impl From<RowsFuncOption> for FuncOption {
33329    #[inline]
33330    fn from(node: RowsFuncOption) -> FuncOption {
33331        FuncOption::RowsFuncOption(node)
33332    }
33333}
33334impl From<SecurityFuncOption> for FuncOption {
33335    #[inline]
33336    fn from(node: SecurityFuncOption) -> FuncOption {
33337        FuncOption::SecurityFuncOption(node)
33338    }
33339}
33340impl From<SetFuncOption> for FuncOption {
33341    #[inline]
33342    fn from(node: SetFuncOption) -> FuncOption {
33343        FuncOption::SetFuncOption(node)
33344    }
33345}
33346impl From<StrictFuncOption> for FuncOption {
33347    #[inline]
33348    fn from(node: StrictFuncOption) -> FuncOption {
33349        FuncOption::StrictFuncOption(node)
33350    }
33351}
33352impl From<SupportFuncOption> for FuncOption {
33353    #[inline]
33354    fn from(node: SupportFuncOption) -> FuncOption {
33355        FuncOption::SupportFuncOption(node)
33356    }
33357}
33358impl From<TransformFuncOption> for FuncOption {
33359    #[inline]
33360    fn from(node: TransformFuncOption) -> FuncOption {
33361        FuncOption::TransformFuncOption(node)
33362    }
33363}
33364impl From<VolatilityFuncOption> for FuncOption {
33365    #[inline]
33366    fn from(node: VolatilityFuncOption) -> FuncOption {
33367        FuncOption::VolatilityFuncOption(node)
33368    }
33369}
33370impl From<WindowFuncOption> for FuncOption {
33371    #[inline]
33372    fn from(node: WindowFuncOption) -> FuncOption {
33373        FuncOption::WindowFuncOption(node)
33374    }
33375}
33376impl AstNode for GroupBy {
33377    #[inline]
33378    fn can_cast(kind: SyntaxKind) -> bool {
33379        matches!(
33380            kind,
33381            SyntaxKind::GROUPING_CUBE
33382                | SyntaxKind::GROUPING_EXPR
33383                | SyntaxKind::GROUPING_ROLLUP
33384                | SyntaxKind::GROUPING_SETS
33385        )
33386    }
33387    #[inline]
33388    fn cast(syntax: SyntaxNode) -> Option<Self> {
33389        let res = match syntax.kind() {
33390            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
33391            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
33392            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
33393            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
33394            _ => {
33395                return None;
33396            }
33397        };
33398        Some(res)
33399    }
33400    #[inline]
33401    fn syntax(&self) -> &SyntaxNode {
33402        match self {
33403            GroupBy::GroupingCube(it) => &it.syntax,
33404            GroupBy::GroupingExpr(it) => &it.syntax,
33405            GroupBy::GroupingRollup(it) => &it.syntax,
33406            GroupBy::GroupingSets(it) => &it.syntax,
33407        }
33408    }
33409}
33410impl From<GroupingCube> for GroupBy {
33411    #[inline]
33412    fn from(node: GroupingCube) -> GroupBy {
33413        GroupBy::GroupingCube(node)
33414    }
33415}
33416impl From<GroupingExpr> for GroupBy {
33417    #[inline]
33418    fn from(node: GroupingExpr) -> GroupBy {
33419        GroupBy::GroupingExpr(node)
33420    }
33421}
33422impl From<GroupingRollup> for GroupBy {
33423    #[inline]
33424    fn from(node: GroupingRollup) -> GroupBy {
33425        GroupBy::GroupingRollup(node)
33426    }
33427}
33428impl From<GroupingSets> for GroupBy {
33429    #[inline]
33430    fn from(node: GroupingSets) -> GroupBy {
33431        GroupBy::GroupingSets(node)
33432    }
33433}
33434impl AstNode for JoinType {
33435    #[inline]
33436    fn can_cast(kind: SyntaxKind) -> bool {
33437        matches!(
33438            kind,
33439            SyntaxKind::JOIN_CROSS
33440                | SyntaxKind::JOIN_FULL
33441                | SyntaxKind::JOIN_INNER
33442                | SyntaxKind::JOIN_LEFT
33443                | SyntaxKind::JOIN_RIGHT
33444        )
33445    }
33446    #[inline]
33447    fn cast(syntax: SyntaxNode) -> Option<Self> {
33448        let res = match syntax.kind() {
33449            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
33450            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
33451            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
33452            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
33453            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
33454            _ => {
33455                return None;
33456            }
33457        };
33458        Some(res)
33459    }
33460    #[inline]
33461    fn syntax(&self) -> &SyntaxNode {
33462        match self {
33463            JoinType::JoinCross(it) => &it.syntax,
33464            JoinType::JoinFull(it) => &it.syntax,
33465            JoinType::JoinInner(it) => &it.syntax,
33466            JoinType::JoinLeft(it) => &it.syntax,
33467            JoinType::JoinRight(it) => &it.syntax,
33468        }
33469    }
33470}
33471impl From<JoinCross> for JoinType {
33472    #[inline]
33473    fn from(node: JoinCross) -> JoinType {
33474        JoinType::JoinCross(node)
33475    }
33476}
33477impl From<JoinFull> for JoinType {
33478    #[inline]
33479    fn from(node: JoinFull) -> JoinType {
33480        JoinType::JoinFull(node)
33481    }
33482}
33483impl From<JoinInner> for JoinType {
33484    #[inline]
33485    fn from(node: JoinInner) -> JoinType {
33486        JoinType::JoinInner(node)
33487    }
33488}
33489impl From<JoinLeft> for JoinType {
33490    #[inline]
33491    fn from(node: JoinLeft) -> JoinType {
33492        JoinType::JoinLeft(node)
33493    }
33494}
33495impl From<JoinRight> for JoinType {
33496    #[inline]
33497    fn from(node: JoinRight) -> JoinType {
33498        JoinType::JoinRight(node)
33499    }
33500}
33501impl AstNode for JsonBehavior {
33502    #[inline]
33503    fn can_cast(kind: SyntaxKind) -> bool {
33504        matches!(
33505            kind,
33506            SyntaxKind::JSON_BEHAVIOR_DEFAULT
33507                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
33508                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
33509                | SyntaxKind::JSON_BEHAVIOR_ERROR
33510                | SyntaxKind::JSON_BEHAVIOR_FALSE
33511                | SyntaxKind::JSON_BEHAVIOR_NULL
33512                | SyntaxKind::JSON_BEHAVIOR_TRUE
33513                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
33514        )
33515    }
33516    #[inline]
33517    fn cast(syntax: SyntaxNode) -> Option<Self> {
33518        let res = match syntax.kind() {
33519            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
33520                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
33521            }
33522            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
33523                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
33524            }
33525            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
33526                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
33527            }
33528            SyntaxKind::JSON_BEHAVIOR_ERROR => {
33529                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
33530            }
33531            SyntaxKind::JSON_BEHAVIOR_FALSE => {
33532                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
33533            }
33534            SyntaxKind::JSON_BEHAVIOR_NULL => {
33535                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
33536            }
33537            SyntaxKind::JSON_BEHAVIOR_TRUE => {
33538                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
33539            }
33540            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
33541                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
33542            }
33543            _ => {
33544                return None;
33545            }
33546        };
33547        Some(res)
33548    }
33549    #[inline]
33550    fn syntax(&self) -> &SyntaxNode {
33551        match self {
33552            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
33553            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
33554            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
33555            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
33556            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
33557            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
33558            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
33559            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
33560        }
33561    }
33562}
33563impl From<JsonBehaviorDefault> for JsonBehavior {
33564    #[inline]
33565    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
33566        JsonBehavior::JsonBehaviorDefault(node)
33567    }
33568}
33569impl From<JsonBehaviorEmptyArray> for JsonBehavior {
33570    #[inline]
33571    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
33572        JsonBehavior::JsonBehaviorEmptyArray(node)
33573    }
33574}
33575impl From<JsonBehaviorEmptyObject> for JsonBehavior {
33576    #[inline]
33577    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
33578        JsonBehavior::JsonBehaviorEmptyObject(node)
33579    }
33580}
33581impl From<JsonBehaviorError> for JsonBehavior {
33582    #[inline]
33583    fn from(node: JsonBehaviorError) -> JsonBehavior {
33584        JsonBehavior::JsonBehaviorError(node)
33585    }
33586}
33587impl From<JsonBehaviorFalse> for JsonBehavior {
33588    #[inline]
33589    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
33590        JsonBehavior::JsonBehaviorFalse(node)
33591    }
33592}
33593impl From<JsonBehaviorNull> for JsonBehavior {
33594    #[inline]
33595    fn from(node: JsonBehaviorNull) -> JsonBehavior {
33596        JsonBehavior::JsonBehaviorNull(node)
33597    }
33598}
33599impl From<JsonBehaviorTrue> for JsonBehavior {
33600    #[inline]
33601    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
33602        JsonBehavior::JsonBehaviorTrue(node)
33603    }
33604}
33605impl From<JsonBehaviorUnknown> for JsonBehavior {
33606    #[inline]
33607    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
33608        JsonBehavior::JsonBehaviorUnknown(node)
33609    }
33610}
33611impl AstNode for MatchType {
33612    #[inline]
33613    fn can_cast(kind: SyntaxKind) -> bool {
33614        matches!(
33615            kind,
33616            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
33617        )
33618    }
33619    #[inline]
33620    fn cast(syntax: SyntaxNode) -> Option<Self> {
33621        let res = match syntax.kind() {
33622            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
33623            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
33624            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
33625            _ => {
33626                return None;
33627            }
33628        };
33629        Some(res)
33630    }
33631    #[inline]
33632    fn syntax(&self) -> &SyntaxNode {
33633        match self {
33634            MatchType::MatchFull(it) => &it.syntax,
33635            MatchType::MatchPartial(it) => &it.syntax,
33636            MatchType::MatchSimple(it) => &it.syntax,
33637        }
33638    }
33639}
33640impl From<MatchFull> for MatchType {
33641    #[inline]
33642    fn from(node: MatchFull) -> MatchType {
33643        MatchType::MatchFull(node)
33644    }
33645}
33646impl From<MatchPartial> for MatchType {
33647    #[inline]
33648    fn from(node: MatchPartial) -> MatchType {
33649        MatchType::MatchPartial(node)
33650    }
33651}
33652impl From<MatchSimple> for MatchType {
33653    #[inline]
33654    fn from(node: MatchSimple) -> MatchType {
33655        MatchType::MatchSimple(node)
33656    }
33657}
33658impl AstNode for MergeAction {
33659    #[inline]
33660    fn can_cast(kind: SyntaxKind) -> bool {
33661        matches!(
33662            kind,
33663            SyntaxKind::MERGE_DELETE
33664                | SyntaxKind::MERGE_DO_NOTHING
33665                | SyntaxKind::MERGE_INSERT
33666                | SyntaxKind::MERGE_UPDATE
33667        )
33668    }
33669    #[inline]
33670    fn cast(syntax: SyntaxNode) -> Option<Self> {
33671        let res = match syntax.kind() {
33672            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
33673            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
33674            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
33675            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
33676            _ => {
33677                return None;
33678            }
33679        };
33680        Some(res)
33681    }
33682    #[inline]
33683    fn syntax(&self) -> &SyntaxNode {
33684        match self {
33685            MergeAction::MergeDelete(it) => &it.syntax,
33686            MergeAction::MergeDoNothing(it) => &it.syntax,
33687            MergeAction::MergeInsert(it) => &it.syntax,
33688            MergeAction::MergeUpdate(it) => &it.syntax,
33689        }
33690    }
33691}
33692impl From<MergeDelete> for MergeAction {
33693    #[inline]
33694    fn from(node: MergeDelete) -> MergeAction {
33695        MergeAction::MergeDelete(node)
33696    }
33697}
33698impl From<MergeDoNothing> for MergeAction {
33699    #[inline]
33700    fn from(node: MergeDoNothing) -> MergeAction {
33701        MergeAction::MergeDoNothing(node)
33702    }
33703}
33704impl From<MergeInsert> for MergeAction {
33705    #[inline]
33706    fn from(node: MergeInsert) -> MergeAction {
33707        MergeAction::MergeInsert(node)
33708    }
33709}
33710impl From<MergeUpdate> for MergeAction {
33711    #[inline]
33712    fn from(node: MergeUpdate) -> MergeAction {
33713        MergeAction::MergeUpdate(node)
33714    }
33715}
33716impl AstNode for MergeWhenClause {
33717    #[inline]
33718    fn can_cast(kind: SyntaxKind) -> bool {
33719        matches!(
33720            kind,
33721            SyntaxKind::MERGE_WHEN_MATCHED
33722                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
33723                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
33724        )
33725    }
33726    #[inline]
33727    fn cast(syntax: SyntaxNode) -> Option<Self> {
33728        let res = match syntax.kind() {
33729            SyntaxKind::MERGE_WHEN_MATCHED => {
33730                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
33731            }
33732            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
33733                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
33734            }
33735            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
33736                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
33737            }
33738            _ => {
33739                return None;
33740            }
33741        };
33742        Some(res)
33743    }
33744    #[inline]
33745    fn syntax(&self) -> &SyntaxNode {
33746        match self {
33747            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
33748            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
33749            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
33750        }
33751    }
33752}
33753impl From<MergeWhenMatched> for MergeWhenClause {
33754    #[inline]
33755    fn from(node: MergeWhenMatched) -> MergeWhenClause {
33756        MergeWhenClause::MergeWhenMatched(node)
33757    }
33758}
33759impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
33760    #[inline]
33761    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
33762        MergeWhenClause::MergeWhenNotMatchedSource(node)
33763    }
33764}
33765impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
33766    #[inline]
33767    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
33768        MergeWhenClause::MergeWhenNotMatchedTarget(node)
33769    }
33770}
33771impl AstNode for OnCommitAction {
33772    #[inline]
33773    fn can_cast(kind: SyntaxKind) -> bool {
33774        matches!(
33775            kind,
33776            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
33777        )
33778    }
33779    #[inline]
33780    fn cast(syntax: SyntaxNode) -> Option<Self> {
33781        let res = match syntax.kind() {
33782            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
33783            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
33784            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
33785            _ => {
33786                return None;
33787            }
33788        };
33789        Some(res)
33790    }
33791    #[inline]
33792    fn syntax(&self) -> &SyntaxNode {
33793        match self {
33794            OnCommitAction::DeleteRows(it) => &it.syntax,
33795            OnCommitAction::Drop(it) => &it.syntax,
33796            OnCommitAction::PreserveRows(it) => &it.syntax,
33797        }
33798    }
33799}
33800impl From<DeleteRows> for OnCommitAction {
33801    #[inline]
33802    fn from(node: DeleteRows) -> OnCommitAction {
33803        OnCommitAction::DeleteRows(node)
33804    }
33805}
33806impl From<Drop> for OnCommitAction {
33807    #[inline]
33808    fn from(node: Drop) -> OnCommitAction {
33809        OnCommitAction::Drop(node)
33810    }
33811}
33812impl From<PreserveRows> for OnCommitAction {
33813    #[inline]
33814    fn from(node: PreserveRows) -> OnCommitAction {
33815        OnCommitAction::PreserveRows(node)
33816    }
33817}
33818impl AstNode for ParamMode {
33819    #[inline]
33820    fn can_cast(kind: SyntaxKind) -> bool {
33821        matches!(
33822            kind,
33823            SyntaxKind::PARAM_IN
33824                | SyntaxKind::PARAM_IN_OUT
33825                | SyntaxKind::PARAM_OUT
33826                | SyntaxKind::PARAM_VARIADIC
33827        )
33828    }
33829    #[inline]
33830    fn cast(syntax: SyntaxNode) -> Option<Self> {
33831        let res = match syntax.kind() {
33832            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
33833            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
33834            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
33835            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
33836            _ => {
33837                return None;
33838            }
33839        };
33840        Some(res)
33841    }
33842    #[inline]
33843    fn syntax(&self) -> &SyntaxNode {
33844        match self {
33845            ParamMode::ParamIn(it) => &it.syntax,
33846            ParamMode::ParamInOut(it) => &it.syntax,
33847            ParamMode::ParamOut(it) => &it.syntax,
33848            ParamMode::ParamVariadic(it) => &it.syntax,
33849        }
33850    }
33851}
33852impl From<ParamIn> for ParamMode {
33853    #[inline]
33854    fn from(node: ParamIn) -> ParamMode {
33855        ParamMode::ParamIn(node)
33856    }
33857}
33858impl From<ParamInOut> for ParamMode {
33859    #[inline]
33860    fn from(node: ParamInOut) -> ParamMode {
33861        ParamMode::ParamInOut(node)
33862    }
33863}
33864impl From<ParamOut> for ParamMode {
33865    #[inline]
33866    fn from(node: ParamOut) -> ParamMode {
33867        ParamMode::ParamOut(node)
33868    }
33869}
33870impl From<ParamVariadic> for ParamMode {
33871    #[inline]
33872    fn from(node: ParamVariadic) -> ParamMode {
33873        ParamMode::ParamVariadic(node)
33874    }
33875}
33876impl AstNode for PartitionType {
33877    #[inline]
33878    fn can_cast(kind: SyntaxKind) -> bool {
33879        matches!(
33880            kind,
33881            SyntaxKind::PARTITION_DEFAULT
33882                | SyntaxKind::PARTITION_FOR_VALUES_FROM
33883                | SyntaxKind::PARTITION_FOR_VALUES_IN
33884                | SyntaxKind::PARTITION_FOR_VALUES_WITH
33885        )
33886    }
33887    #[inline]
33888    fn cast(syntax: SyntaxNode) -> Option<Self> {
33889        let res = match syntax.kind() {
33890            SyntaxKind::PARTITION_DEFAULT => {
33891                PartitionType::PartitionDefault(PartitionDefault { syntax })
33892            }
33893            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
33894                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
33895            }
33896            SyntaxKind::PARTITION_FOR_VALUES_IN => {
33897                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
33898            }
33899            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
33900                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
33901            }
33902            _ => {
33903                return None;
33904            }
33905        };
33906        Some(res)
33907    }
33908    #[inline]
33909    fn syntax(&self) -> &SyntaxNode {
33910        match self {
33911            PartitionType::PartitionDefault(it) => &it.syntax,
33912            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
33913            PartitionType::PartitionForValuesIn(it) => &it.syntax,
33914            PartitionType::PartitionForValuesWith(it) => &it.syntax,
33915        }
33916    }
33917}
33918impl From<PartitionDefault> for PartitionType {
33919    #[inline]
33920    fn from(node: PartitionDefault) -> PartitionType {
33921        PartitionType::PartitionDefault(node)
33922    }
33923}
33924impl From<PartitionForValuesFrom> for PartitionType {
33925    #[inline]
33926    fn from(node: PartitionForValuesFrom) -> PartitionType {
33927        PartitionType::PartitionForValuesFrom(node)
33928    }
33929}
33930impl From<PartitionForValuesIn> for PartitionType {
33931    #[inline]
33932    fn from(node: PartitionForValuesIn) -> PartitionType {
33933        PartitionType::PartitionForValuesIn(node)
33934    }
33935}
33936impl From<PartitionForValuesWith> for PartitionType {
33937    #[inline]
33938    fn from(node: PartitionForValuesWith) -> PartitionType {
33939        PartitionType::PartitionForValuesWith(node)
33940    }
33941}
33942impl AstNode for PathPrimary {
33943    #[inline]
33944    fn can_cast(kind: SyntaxKind) -> bool {
33945        matches!(
33946            kind,
33947            SyntaxKind::EDGE_ANY
33948                | SyntaxKind::EDGE_LEFT
33949                | SyntaxKind::EDGE_RIGHT
33950                | SyntaxKind::PAREN_GRAPH_PATTERN
33951                | SyntaxKind::VERTEX_PATTERN
33952        )
33953    }
33954    #[inline]
33955    fn cast(syntax: SyntaxNode) -> Option<Self> {
33956        let res = match syntax.kind() {
33957            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
33958            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
33959            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
33960            SyntaxKind::PAREN_GRAPH_PATTERN => {
33961                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
33962            }
33963            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
33964            _ => {
33965                return None;
33966            }
33967        };
33968        Some(res)
33969    }
33970    #[inline]
33971    fn syntax(&self) -> &SyntaxNode {
33972        match self {
33973            PathPrimary::EdgeAny(it) => &it.syntax,
33974            PathPrimary::EdgeLeft(it) => &it.syntax,
33975            PathPrimary::EdgeRight(it) => &it.syntax,
33976            PathPrimary::ParenGraphPattern(it) => &it.syntax,
33977            PathPrimary::VertexPattern(it) => &it.syntax,
33978        }
33979    }
33980}
33981impl From<EdgeAny> for PathPrimary {
33982    #[inline]
33983    fn from(node: EdgeAny) -> PathPrimary {
33984        PathPrimary::EdgeAny(node)
33985    }
33986}
33987impl From<EdgeLeft> for PathPrimary {
33988    #[inline]
33989    fn from(node: EdgeLeft) -> PathPrimary {
33990        PathPrimary::EdgeLeft(node)
33991    }
33992}
33993impl From<EdgeRight> for PathPrimary {
33994    #[inline]
33995    fn from(node: EdgeRight) -> PathPrimary {
33996        PathPrimary::EdgeRight(node)
33997    }
33998}
33999impl From<ParenGraphPattern> for PathPrimary {
34000    #[inline]
34001    fn from(node: ParenGraphPattern) -> PathPrimary {
34002        PathPrimary::ParenGraphPattern(node)
34003    }
34004}
34005impl From<VertexPattern> for PathPrimary {
34006    #[inline]
34007    fn from(node: VertexPattern) -> PathPrimary {
34008        PathPrimary::VertexPattern(node)
34009    }
34010}
34011impl AstNode for PreparableStmt {
34012    #[inline]
34013    fn can_cast(kind: SyntaxKind) -> bool {
34014        matches!(
34015            kind,
34016            SyntaxKind::COMPOUND_SELECT
34017                | SyntaxKind::DELETE
34018                | SyntaxKind::INSERT
34019                | SyntaxKind::MERGE
34020                | SyntaxKind::SELECT
34021                | SyntaxKind::SELECT_INTO
34022                | SyntaxKind::TABLE
34023                | SyntaxKind::UPDATE
34024                | SyntaxKind::VALUES
34025        )
34026    }
34027    #[inline]
34028    fn cast(syntax: SyntaxNode) -> Option<Self> {
34029        let res = match syntax.kind() {
34030            SyntaxKind::COMPOUND_SELECT => {
34031                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
34032            }
34033            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
34034            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
34035            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
34036            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
34037            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
34038            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
34039            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
34040            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
34041            _ => {
34042                return None;
34043            }
34044        };
34045        Some(res)
34046    }
34047    #[inline]
34048    fn syntax(&self) -> &SyntaxNode {
34049        match self {
34050            PreparableStmt::CompoundSelect(it) => &it.syntax,
34051            PreparableStmt::Delete(it) => &it.syntax,
34052            PreparableStmt::Insert(it) => &it.syntax,
34053            PreparableStmt::Merge(it) => &it.syntax,
34054            PreparableStmt::Select(it) => &it.syntax,
34055            PreparableStmt::SelectInto(it) => &it.syntax,
34056            PreparableStmt::Table(it) => &it.syntax,
34057            PreparableStmt::Update(it) => &it.syntax,
34058            PreparableStmt::Values(it) => &it.syntax,
34059        }
34060    }
34061}
34062impl From<CompoundSelect> for PreparableStmt {
34063    #[inline]
34064    fn from(node: CompoundSelect) -> PreparableStmt {
34065        PreparableStmt::CompoundSelect(node)
34066    }
34067}
34068impl From<Delete> for PreparableStmt {
34069    #[inline]
34070    fn from(node: Delete) -> PreparableStmt {
34071        PreparableStmt::Delete(node)
34072    }
34073}
34074impl From<Insert> for PreparableStmt {
34075    #[inline]
34076    fn from(node: Insert) -> PreparableStmt {
34077        PreparableStmt::Insert(node)
34078    }
34079}
34080impl From<Merge> for PreparableStmt {
34081    #[inline]
34082    fn from(node: Merge) -> PreparableStmt {
34083        PreparableStmt::Merge(node)
34084    }
34085}
34086impl From<Select> for PreparableStmt {
34087    #[inline]
34088    fn from(node: Select) -> PreparableStmt {
34089        PreparableStmt::Select(node)
34090    }
34091}
34092impl From<SelectInto> for PreparableStmt {
34093    #[inline]
34094    fn from(node: SelectInto) -> PreparableStmt {
34095        PreparableStmt::SelectInto(node)
34096    }
34097}
34098impl From<Table> for PreparableStmt {
34099    #[inline]
34100    fn from(node: Table) -> PreparableStmt {
34101        PreparableStmt::Table(node)
34102    }
34103}
34104impl From<Update> for PreparableStmt {
34105    #[inline]
34106    fn from(node: Update) -> PreparableStmt {
34107        PreparableStmt::Update(node)
34108    }
34109}
34110impl From<Values> for PreparableStmt {
34111    #[inline]
34112    fn from(node: Values) -> PreparableStmt {
34113        PreparableStmt::Values(node)
34114    }
34115}
34116impl AstNode for RefAction {
34117    #[inline]
34118    fn can_cast(kind: SyntaxKind) -> bool {
34119        matches!(
34120            kind,
34121            SyntaxKind::CASCADE
34122                | SyntaxKind::NO_ACTION
34123                | SyntaxKind::RESTRICT
34124                | SyntaxKind::SET_DEFAULT_COLUMNS
34125                | SyntaxKind::SET_NULL_COLUMNS
34126        )
34127    }
34128    #[inline]
34129    fn cast(syntax: SyntaxNode) -> Option<Self> {
34130        let res = match syntax.kind() {
34131            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
34132            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
34133            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
34134            SyntaxKind::SET_DEFAULT_COLUMNS => {
34135                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
34136            }
34137            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
34138            _ => {
34139                return None;
34140            }
34141        };
34142        Some(res)
34143    }
34144    #[inline]
34145    fn syntax(&self) -> &SyntaxNode {
34146        match self {
34147            RefAction::Cascade(it) => &it.syntax,
34148            RefAction::NoAction(it) => &it.syntax,
34149            RefAction::Restrict(it) => &it.syntax,
34150            RefAction::SetDefaultColumns(it) => &it.syntax,
34151            RefAction::SetNullColumns(it) => &it.syntax,
34152        }
34153    }
34154}
34155impl From<Cascade> for RefAction {
34156    #[inline]
34157    fn from(node: Cascade) -> RefAction {
34158        RefAction::Cascade(node)
34159    }
34160}
34161impl From<NoAction> for RefAction {
34162    #[inline]
34163    fn from(node: NoAction) -> RefAction {
34164        RefAction::NoAction(node)
34165    }
34166}
34167impl From<Restrict> for RefAction {
34168    #[inline]
34169    fn from(node: Restrict) -> RefAction {
34170        RefAction::Restrict(node)
34171    }
34172}
34173impl From<SetDefaultColumns> for RefAction {
34174    #[inline]
34175    fn from(node: SetDefaultColumns) -> RefAction {
34176        RefAction::SetDefaultColumns(node)
34177    }
34178}
34179impl From<SetNullColumns> for RefAction {
34180    #[inline]
34181    fn from(node: SetNullColumns) -> RefAction {
34182        RefAction::SetNullColumns(node)
34183    }
34184}
34185impl AstNode for SchemaElement {
34186    #[inline]
34187    fn can_cast(kind: SyntaxKind) -> bool {
34188        matches!(
34189            kind,
34190            SyntaxKind::CREATE_INDEX
34191                | SyntaxKind::CREATE_SEQUENCE
34192                | SyntaxKind::CREATE_TABLE
34193                | SyntaxKind::CREATE_TRIGGER
34194                | SyntaxKind::CREATE_VIEW
34195                | SyntaxKind::GRANT
34196        )
34197    }
34198    #[inline]
34199    fn cast(syntax: SyntaxNode) -> Option<Self> {
34200        let res = match syntax.kind() {
34201            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
34202            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
34203            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
34204            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
34205            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
34206            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
34207            _ => {
34208                return None;
34209            }
34210        };
34211        Some(res)
34212    }
34213    #[inline]
34214    fn syntax(&self) -> &SyntaxNode {
34215        match self {
34216            SchemaElement::CreateIndex(it) => &it.syntax,
34217            SchemaElement::CreateSequence(it) => &it.syntax,
34218            SchemaElement::CreateTable(it) => &it.syntax,
34219            SchemaElement::CreateTrigger(it) => &it.syntax,
34220            SchemaElement::CreateView(it) => &it.syntax,
34221            SchemaElement::Grant(it) => &it.syntax,
34222        }
34223    }
34224}
34225impl From<CreateIndex> for SchemaElement {
34226    #[inline]
34227    fn from(node: CreateIndex) -> SchemaElement {
34228        SchemaElement::CreateIndex(node)
34229    }
34230}
34231impl From<CreateSequence> for SchemaElement {
34232    #[inline]
34233    fn from(node: CreateSequence) -> SchemaElement {
34234        SchemaElement::CreateSequence(node)
34235    }
34236}
34237impl From<CreateTable> for SchemaElement {
34238    #[inline]
34239    fn from(node: CreateTable) -> SchemaElement {
34240        SchemaElement::CreateTable(node)
34241    }
34242}
34243impl From<CreateTrigger> for SchemaElement {
34244    #[inline]
34245    fn from(node: CreateTrigger) -> SchemaElement {
34246        SchemaElement::CreateTrigger(node)
34247    }
34248}
34249impl From<CreateView> for SchemaElement {
34250    #[inline]
34251    fn from(node: CreateView) -> SchemaElement {
34252        SchemaElement::CreateView(node)
34253    }
34254}
34255impl From<Grant> for SchemaElement {
34256    #[inline]
34257    fn from(node: Grant) -> SchemaElement {
34258        SchemaElement::Grant(node)
34259    }
34260}
34261impl AstNode for SelectVariant {
34262    #[inline]
34263    fn can_cast(kind: SyntaxKind) -> bool {
34264        matches!(
34265            kind,
34266            SyntaxKind::COMPOUND_SELECT
34267                | SyntaxKind::PAREN_SELECT
34268                | SyntaxKind::SELECT
34269                | SyntaxKind::SELECT_INTO
34270                | SyntaxKind::TABLE
34271                | SyntaxKind::VALUES
34272        )
34273    }
34274    #[inline]
34275    fn cast(syntax: SyntaxNode) -> Option<Self> {
34276        let res = match syntax.kind() {
34277            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
34278            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
34279            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
34280            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
34281            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
34282            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
34283            _ => {
34284                return None;
34285            }
34286        };
34287        Some(res)
34288    }
34289    #[inline]
34290    fn syntax(&self) -> &SyntaxNode {
34291        match self {
34292            SelectVariant::CompoundSelect(it) => &it.syntax,
34293            SelectVariant::ParenSelect(it) => &it.syntax,
34294            SelectVariant::Select(it) => &it.syntax,
34295            SelectVariant::SelectInto(it) => &it.syntax,
34296            SelectVariant::Table(it) => &it.syntax,
34297            SelectVariant::Values(it) => &it.syntax,
34298        }
34299    }
34300}
34301impl From<CompoundSelect> for SelectVariant {
34302    #[inline]
34303    fn from(node: CompoundSelect) -> SelectVariant {
34304        SelectVariant::CompoundSelect(node)
34305    }
34306}
34307impl From<ParenSelect> for SelectVariant {
34308    #[inline]
34309    fn from(node: ParenSelect) -> SelectVariant {
34310        SelectVariant::ParenSelect(node)
34311    }
34312}
34313impl From<Select> for SelectVariant {
34314    #[inline]
34315    fn from(node: Select) -> SelectVariant {
34316        SelectVariant::Select(node)
34317    }
34318}
34319impl From<SelectInto> for SelectVariant {
34320    #[inline]
34321    fn from(node: SelectInto) -> SelectVariant {
34322        SelectVariant::SelectInto(node)
34323    }
34324}
34325impl From<Table> for SelectVariant {
34326    #[inline]
34327    fn from(node: Table) -> SelectVariant {
34328        SelectVariant::Table(node)
34329    }
34330}
34331impl From<Values> for SelectVariant {
34332    #[inline]
34333    fn from(node: Values) -> SelectVariant {
34334        SelectVariant::Values(node)
34335    }
34336}
34337impl AstNode for SetColumn {
34338    #[inline]
34339    fn can_cast(kind: SyntaxKind) -> bool {
34340        matches!(
34341            kind,
34342            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
34343        )
34344    }
34345    #[inline]
34346    fn cast(syntax: SyntaxNode) -> Option<Self> {
34347        let res = match syntax.kind() {
34348            SyntaxKind::SET_MULTIPLE_COLUMNS => {
34349                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
34350            }
34351            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
34352            _ => {
34353                return None;
34354            }
34355        };
34356        Some(res)
34357    }
34358    #[inline]
34359    fn syntax(&self) -> &SyntaxNode {
34360        match self {
34361            SetColumn::SetMultipleColumns(it) => &it.syntax,
34362            SetColumn::SetSingleColumn(it) => &it.syntax,
34363        }
34364    }
34365}
34366impl From<SetMultipleColumns> for SetColumn {
34367    #[inline]
34368    fn from(node: SetMultipleColumns) -> SetColumn {
34369        SetColumn::SetMultipleColumns(node)
34370    }
34371}
34372impl From<SetSingleColumn> for SetColumn {
34373    #[inline]
34374    fn from(node: SetSingleColumn) -> SetColumn {
34375        SetColumn::SetSingleColumn(node)
34376    }
34377}
34378impl AstNode for Stmt {
34379    #[inline]
34380    fn can_cast(kind: SyntaxKind) -> bool {
34381        matches!(
34382            kind,
34383            SyntaxKind::ALTER_AGGREGATE
34384                | SyntaxKind::ALTER_COLLATION
34385                | SyntaxKind::ALTER_CONVERSION
34386                | SyntaxKind::ALTER_DATABASE
34387                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
34388                | SyntaxKind::ALTER_DOMAIN
34389                | SyntaxKind::ALTER_EVENT_TRIGGER
34390                | SyntaxKind::ALTER_EXTENSION
34391                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
34392                | SyntaxKind::ALTER_FOREIGN_TABLE
34393                | SyntaxKind::ALTER_FUNCTION
34394                | SyntaxKind::ALTER_GROUP
34395                | SyntaxKind::ALTER_INDEX
34396                | SyntaxKind::ALTER_LANGUAGE
34397                | SyntaxKind::ALTER_LARGE_OBJECT
34398                | SyntaxKind::ALTER_MATERIALIZED_VIEW
34399                | SyntaxKind::ALTER_OPERATOR
34400                | SyntaxKind::ALTER_OPERATOR_CLASS
34401                | SyntaxKind::ALTER_OPERATOR_FAMILY
34402                | SyntaxKind::ALTER_POLICY
34403                | SyntaxKind::ALTER_PROCEDURE
34404                | SyntaxKind::ALTER_PROPERTY_GRAPH
34405                | SyntaxKind::ALTER_PUBLICATION
34406                | SyntaxKind::ALTER_ROLE
34407                | SyntaxKind::ALTER_ROUTINE
34408                | SyntaxKind::ALTER_RULE
34409                | SyntaxKind::ALTER_SCHEMA
34410                | SyntaxKind::ALTER_SEQUENCE
34411                | SyntaxKind::ALTER_SERVER
34412                | SyntaxKind::ALTER_STATISTICS
34413                | SyntaxKind::ALTER_SUBSCRIPTION
34414                | SyntaxKind::ALTER_SYSTEM
34415                | SyntaxKind::ALTER_TABLE
34416                | SyntaxKind::ALTER_TABLESPACE
34417                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
34418                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
34419                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
34420                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
34421                | SyntaxKind::ALTER_TRIGGER
34422                | SyntaxKind::ALTER_TYPE
34423                | SyntaxKind::ALTER_USER
34424                | SyntaxKind::ALTER_USER_MAPPING
34425                | SyntaxKind::ALTER_VIEW
34426                | SyntaxKind::ANALYZE
34427                | SyntaxKind::BEGIN
34428                | SyntaxKind::CALL
34429                | SyntaxKind::CHECKPOINT
34430                | SyntaxKind::CLOSE
34431                | SyntaxKind::CLUSTER
34432                | SyntaxKind::COMMENT_ON
34433                | SyntaxKind::COMMIT
34434                | SyntaxKind::COPY
34435                | SyntaxKind::CREATE_ACCESS_METHOD
34436                | SyntaxKind::CREATE_AGGREGATE
34437                | SyntaxKind::CREATE_CAST
34438                | SyntaxKind::CREATE_COLLATION
34439                | SyntaxKind::CREATE_CONVERSION
34440                | SyntaxKind::CREATE_DATABASE
34441                | SyntaxKind::CREATE_DOMAIN
34442                | SyntaxKind::CREATE_EVENT_TRIGGER
34443                | SyntaxKind::CREATE_EXTENSION
34444                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
34445                | SyntaxKind::CREATE_FOREIGN_TABLE
34446                | SyntaxKind::CREATE_FUNCTION
34447                | SyntaxKind::CREATE_GROUP
34448                | SyntaxKind::CREATE_INDEX
34449                | SyntaxKind::CREATE_LANGUAGE
34450                | SyntaxKind::CREATE_MATERIALIZED_VIEW
34451                | SyntaxKind::CREATE_OPERATOR
34452                | SyntaxKind::CREATE_OPERATOR_CLASS
34453                | SyntaxKind::CREATE_OPERATOR_FAMILY
34454                | SyntaxKind::CREATE_POLICY
34455                | SyntaxKind::CREATE_PROCEDURE
34456                | SyntaxKind::CREATE_PROPERTY_GRAPH
34457                | SyntaxKind::CREATE_PUBLICATION
34458                | SyntaxKind::CREATE_ROLE
34459                | SyntaxKind::CREATE_RULE
34460                | SyntaxKind::CREATE_SCHEMA
34461                | SyntaxKind::CREATE_SEQUENCE
34462                | SyntaxKind::CREATE_SERVER
34463                | SyntaxKind::CREATE_STATISTICS
34464                | SyntaxKind::CREATE_SUBSCRIPTION
34465                | SyntaxKind::CREATE_TABLE
34466                | SyntaxKind::CREATE_TABLE_AS
34467                | SyntaxKind::CREATE_TABLESPACE
34468                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
34469                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
34470                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
34471                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
34472                | SyntaxKind::CREATE_TRANSFORM
34473                | SyntaxKind::CREATE_TRIGGER
34474                | SyntaxKind::CREATE_TYPE
34475                | SyntaxKind::CREATE_USER
34476                | SyntaxKind::CREATE_USER_MAPPING
34477                | SyntaxKind::CREATE_VIEW
34478                | SyntaxKind::DEALLOCATE
34479                | SyntaxKind::DECLARE
34480                | SyntaxKind::DELETE
34481                | SyntaxKind::DISCARD
34482                | SyntaxKind::DO
34483                | SyntaxKind::DROP_ACCESS_METHOD
34484                | SyntaxKind::DROP_AGGREGATE
34485                | SyntaxKind::DROP_CAST
34486                | SyntaxKind::DROP_COLLATION
34487                | SyntaxKind::DROP_CONVERSION
34488                | SyntaxKind::DROP_DATABASE
34489                | SyntaxKind::DROP_DOMAIN
34490                | SyntaxKind::DROP_EVENT_TRIGGER
34491                | SyntaxKind::DROP_EXTENSION
34492                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
34493                | SyntaxKind::DROP_FOREIGN_TABLE
34494                | SyntaxKind::DROP_FUNCTION
34495                | SyntaxKind::DROP_GROUP
34496                | SyntaxKind::DROP_INDEX
34497                | SyntaxKind::DROP_LANGUAGE
34498                | SyntaxKind::DROP_MATERIALIZED_VIEW
34499                | SyntaxKind::DROP_OPERATOR
34500                | SyntaxKind::DROP_OPERATOR_CLASS
34501                | SyntaxKind::DROP_OPERATOR_FAMILY
34502                | SyntaxKind::DROP_OWNED
34503                | SyntaxKind::DROP_POLICY
34504                | SyntaxKind::DROP_PROCEDURE
34505                | SyntaxKind::DROP_PROPERTY_GRAPH
34506                | SyntaxKind::DROP_PUBLICATION
34507                | SyntaxKind::DROP_ROLE
34508                | SyntaxKind::DROP_ROUTINE
34509                | SyntaxKind::DROP_RULE
34510                | SyntaxKind::DROP_SCHEMA
34511                | SyntaxKind::DROP_SEQUENCE
34512                | SyntaxKind::DROP_SERVER
34513                | SyntaxKind::DROP_STATISTICS
34514                | SyntaxKind::DROP_SUBSCRIPTION
34515                | SyntaxKind::DROP_TABLE
34516                | SyntaxKind::DROP_TABLESPACE
34517                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
34518                | SyntaxKind::DROP_TEXT_SEARCH_DICT
34519                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
34520                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
34521                | SyntaxKind::DROP_TRANSFORM
34522                | SyntaxKind::DROP_TRIGGER
34523                | SyntaxKind::DROP_TYPE
34524                | SyntaxKind::DROP_USER
34525                | SyntaxKind::DROP_USER_MAPPING
34526                | SyntaxKind::DROP_VIEW
34527                | SyntaxKind::EXECUTE
34528                | SyntaxKind::EXPLAIN
34529                | SyntaxKind::FETCH
34530                | SyntaxKind::GRANT
34531                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
34532                | SyntaxKind::INSERT
34533                | SyntaxKind::LISTEN
34534                | SyntaxKind::LOAD
34535                | SyntaxKind::LOCK
34536                | SyntaxKind::MERGE
34537                | SyntaxKind::MOVE
34538                | SyntaxKind::NOTIFY
34539                | SyntaxKind::PAREN_SELECT
34540                | SyntaxKind::PREPARE
34541                | SyntaxKind::PREPARE_TRANSACTION
34542                | SyntaxKind::REASSIGN
34543                | SyntaxKind::REFRESH
34544                | SyntaxKind::REINDEX
34545                | SyntaxKind::RELEASE_SAVEPOINT
34546                | SyntaxKind::REPACK
34547                | SyntaxKind::RESET
34548                | SyntaxKind::RESET_SESSION_AUTH
34549                | SyntaxKind::REVOKE
34550                | SyntaxKind::ROLLBACK
34551                | SyntaxKind::SAVEPOINT
34552                | SyntaxKind::SECURITY_LABEL
34553                | SyntaxKind::SELECT
34554                | SyntaxKind::SELECT_INTO
34555                | SyntaxKind::SET
34556                | SyntaxKind::SET_CONSTRAINTS
34557                | SyntaxKind::SET_ROLE
34558                | SyntaxKind::SET_SESSION_AUTH
34559                | SyntaxKind::SET_TRANSACTION
34560                | SyntaxKind::SHOW
34561                | SyntaxKind::TABLE
34562                | SyntaxKind::TRUNCATE
34563                | SyntaxKind::UNLISTEN
34564                | SyntaxKind::UPDATE
34565                | SyntaxKind::VACUUM
34566                | SyntaxKind::VALUES
34567        )
34568    }
34569    #[inline]
34570    fn cast(syntax: SyntaxNode) -> Option<Self> {
34571        let res = match syntax.kind() {
34572            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
34573            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
34574            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
34575            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
34576            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
34577                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
34578            }
34579            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
34580            SyntaxKind::ALTER_EVENT_TRIGGER => {
34581                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
34582            }
34583            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
34584            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
34585                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
34586            }
34587            SyntaxKind::ALTER_FOREIGN_TABLE => {
34588                Stmt::AlterForeignTable(AlterForeignTable { syntax })
34589            }
34590            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
34591            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
34592            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
34593            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
34594            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
34595            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
34596                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
34597            }
34598            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
34599            SyntaxKind::ALTER_OPERATOR_CLASS => {
34600                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
34601            }
34602            SyntaxKind::ALTER_OPERATOR_FAMILY => {
34603                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
34604            }
34605            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
34606            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
34607            SyntaxKind::ALTER_PROPERTY_GRAPH => {
34608                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
34609            }
34610            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
34611            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
34612            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
34613            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
34614            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
34615            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
34616            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
34617            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
34618            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
34619            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
34620            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
34621            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
34622            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
34623                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
34624            }
34625            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
34626                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
34627            }
34628            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
34629                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
34630            }
34631            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
34632                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
34633            }
34634            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
34635            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
34636            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
34637            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
34638            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
34639            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
34640            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
34641            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
34642            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
34643            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
34644            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
34645            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
34646            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
34647            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
34648            SyntaxKind::CREATE_ACCESS_METHOD => {
34649                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
34650            }
34651            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
34652            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
34653            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
34654            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
34655            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
34656            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
34657            SyntaxKind::CREATE_EVENT_TRIGGER => {
34658                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
34659            }
34660            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
34661            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
34662                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
34663            }
34664            SyntaxKind::CREATE_FOREIGN_TABLE => {
34665                Stmt::CreateForeignTable(CreateForeignTable { syntax })
34666            }
34667            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
34668            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
34669            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
34670            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
34671            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
34672                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
34673            }
34674            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
34675            SyntaxKind::CREATE_OPERATOR_CLASS => {
34676                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
34677            }
34678            SyntaxKind::CREATE_OPERATOR_FAMILY => {
34679                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
34680            }
34681            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
34682            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
34683            SyntaxKind::CREATE_PROPERTY_GRAPH => {
34684                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
34685            }
34686            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
34687            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
34688            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
34689            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
34690            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
34691            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
34692            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
34693            SyntaxKind::CREATE_SUBSCRIPTION => {
34694                Stmt::CreateSubscription(CreateSubscription { syntax })
34695            }
34696            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
34697            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
34698            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
34699            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
34700                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
34701            }
34702            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
34703                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
34704            }
34705            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
34706                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
34707            }
34708            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
34709                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
34710            }
34711            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
34712            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
34713            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
34714            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
34715            SyntaxKind::CREATE_USER_MAPPING => {
34716                Stmt::CreateUserMapping(CreateUserMapping { syntax })
34717            }
34718            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
34719            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
34720            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
34721            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
34722            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
34723            SyntaxKind::DO => Stmt::Do(Do { syntax }),
34724            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
34725            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
34726            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
34727            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
34728            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
34729            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
34730            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
34731            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
34732            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
34733            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
34734                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
34735            }
34736            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
34737            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
34738            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
34739            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
34740            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
34741            SyntaxKind::DROP_MATERIALIZED_VIEW => {
34742                Stmt::DropMaterializedView(DropMaterializedView { syntax })
34743            }
34744            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
34745            SyntaxKind::DROP_OPERATOR_CLASS => {
34746                Stmt::DropOperatorClass(DropOperatorClass { syntax })
34747            }
34748            SyntaxKind::DROP_OPERATOR_FAMILY => {
34749                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
34750            }
34751            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
34752            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
34753            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
34754            SyntaxKind::DROP_PROPERTY_GRAPH => {
34755                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
34756            }
34757            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
34758            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
34759            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
34760            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
34761            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
34762            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
34763            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
34764            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
34765            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
34766            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
34767            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
34768            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
34769                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
34770            }
34771            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
34772                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
34773            }
34774            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
34775                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
34776            }
34777            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
34778                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
34779            }
34780            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
34781            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
34782            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
34783            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
34784            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
34785            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
34786            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
34787            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
34788            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
34789            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
34790            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
34791                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
34792            }
34793            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
34794            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
34795            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
34796            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
34797            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
34798            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
34799            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
34800            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
34801            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
34802            SyntaxKind::PREPARE_TRANSACTION => {
34803                Stmt::PrepareTransaction(PrepareTransaction { syntax })
34804            }
34805            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
34806            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
34807            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
34808            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
34809            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
34810            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
34811            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
34812            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
34813            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
34814            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
34815            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
34816            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
34817            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
34818            SyntaxKind::SET => Stmt::Set(Set { syntax }),
34819            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
34820            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
34821            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
34822            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
34823            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
34824            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
34825            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
34826            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
34827            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
34828            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
34829            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
34830            _ => {
34831                return None;
34832            }
34833        };
34834        Some(res)
34835    }
34836    #[inline]
34837    fn syntax(&self) -> &SyntaxNode {
34838        match self {
34839            Stmt::AlterAggregate(it) => &it.syntax,
34840            Stmt::AlterCollation(it) => &it.syntax,
34841            Stmt::AlterConversion(it) => &it.syntax,
34842            Stmt::AlterDatabase(it) => &it.syntax,
34843            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
34844            Stmt::AlterDomain(it) => &it.syntax,
34845            Stmt::AlterEventTrigger(it) => &it.syntax,
34846            Stmt::AlterExtension(it) => &it.syntax,
34847            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
34848            Stmt::AlterForeignTable(it) => &it.syntax,
34849            Stmt::AlterFunction(it) => &it.syntax,
34850            Stmt::AlterGroup(it) => &it.syntax,
34851            Stmt::AlterIndex(it) => &it.syntax,
34852            Stmt::AlterLanguage(it) => &it.syntax,
34853            Stmt::AlterLargeObject(it) => &it.syntax,
34854            Stmt::AlterMaterializedView(it) => &it.syntax,
34855            Stmt::AlterOperator(it) => &it.syntax,
34856            Stmt::AlterOperatorClass(it) => &it.syntax,
34857            Stmt::AlterOperatorFamily(it) => &it.syntax,
34858            Stmt::AlterPolicy(it) => &it.syntax,
34859            Stmt::AlterProcedure(it) => &it.syntax,
34860            Stmt::AlterPropertyGraph(it) => &it.syntax,
34861            Stmt::AlterPublication(it) => &it.syntax,
34862            Stmt::AlterRole(it) => &it.syntax,
34863            Stmt::AlterRoutine(it) => &it.syntax,
34864            Stmt::AlterRule(it) => &it.syntax,
34865            Stmt::AlterSchema(it) => &it.syntax,
34866            Stmt::AlterSequence(it) => &it.syntax,
34867            Stmt::AlterServer(it) => &it.syntax,
34868            Stmt::AlterStatistics(it) => &it.syntax,
34869            Stmt::AlterSubscription(it) => &it.syntax,
34870            Stmt::AlterSystem(it) => &it.syntax,
34871            Stmt::AlterTable(it) => &it.syntax,
34872            Stmt::AlterTablespace(it) => &it.syntax,
34873            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
34874            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
34875            Stmt::AlterTextSearchParser(it) => &it.syntax,
34876            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
34877            Stmt::AlterTrigger(it) => &it.syntax,
34878            Stmt::AlterType(it) => &it.syntax,
34879            Stmt::AlterUser(it) => &it.syntax,
34880            Stmt::AlterUserMapping(it) => &it.syntax,
34881            Stmt::AlterView(it) => &it.syntax,
34882            Stmt::Analyze(it) => &it.syntax,
34883            Stmt::Begin(it) => &it.syntax,
34884            Stmt::Call(it) => &it.syntax,
34885            Stmt::Checkpoint(it) => &it.syntax,
34886            Stmt::Close(it) => &it.syntax,
34887            Stmt::Cluster(it) => &it.syntax,
34888            Stmt::CommentOn(it) => &it.syntax,
34889            Stmt::Commit(it) => &it.syntax,
34890            Stmt::Copy(it) => &it.syntax,
34891            Stmt::CreateAccessMethod(it) => &it.syntax,
34892            Stmt::CreateAggregate(it) => &it.syntax,
34893            Stmt::CreateCast(it) => &it.syntax,
34894            Stmt::CreateCollation(it) => &it.syntax,
34895            Stmt::CreateConversion(it) => &it.syntax,
34896            Stmt::CreateDatabase(it) => &it.syntax,
34897            Stmt::CreateDomain(it) => &it.syntax,
34898            Stmt::CreateEventTrigger(it) => &it.syntax,
34899            Stmt::CreateExtension(it) => &it.syntax,
34900            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
34901            Stmt::CreateForeignTable(it) => &it.syntax,
34902            Stmt::CreateFunction(it) => &it.syntax,
34903            Stmt::CreateGroup(it) => &it.syntax,
34904            Stmt::CreateIndex(it) => &it.syntax,
34905            Stmt::CreateLanguage(it) => &it.syntax,
34906            Stmt::CreateMaterializedView(it) => &it.syntax,
34907            Stmt::CreateOperator(it) => &it.syntax,
34908            Stmt::CreateOperatorClass(it) => &it.syntax,
34909            Stmt::CreateOperatorFamily(it) => &it.syntax,
34910            Stmt::CreatePolicy(it) => &it.syntax,
34911            Stmt::CreateProcedure(it) => &it.syntax,
34912            Stmt::CreatePropertyGraph(it) => &it.syntax,
34913            Stmt::CreatePublication(it) => &it.syntax,
34914            Stmt::CreateRole(it) => &it.syntax,
34915            Stmt::CreateRule(it) => &it.syntax,
34916            Stmt::CreateSchema(it) => &it.syntax,
34917            Stmt::CreateSequence(it) => &it.syntax,
34918            Stmt::CreateServer(it) => &it.syntax,
34919            Stmt::CreateStatistics(it) => &it.syntax,
34920            Stmt::CreateSubscription(it) => &it.syntax,
34921            Stmt::CreateTable(it) => &it.syntax,
34922            Stmt::CreateTableAs(it) => &it.syntax,
34923            Stmt::CreateTablespace(it) => &it.syntax,
34924            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
34925            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
34926            Stmt::CreateTextSearchParser(it) => &it.syntax,
34927            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
34928            Stmt::CreateTransform(it) => &it.syntax,
34929            Stmt::CreateTrigger(it) => &it.syntax,
34930            Stmt::CreateType(it) => &it.syntax,
34931            Stmt::CreateUser(it) => &it.syntax,
34932            Stmt::CreateUserMapping(it) => &it.syntax,
34933            Stmt::CreateView(it) => &it.syntax,
34934            Stmt::Deallocate(it) => &it.syntax,
34935            Stmt::Declare(it) => &it.syntax,
34936            Stmt::Delete(it) => &it.syntax,
34937            Stmt::Discard(it) => &it.syntax,
34938            Stmt::Do(it) => &it.syntax,
34939            Stmt::DropAccessMethod(it) => &it.syntax,
34940            Stmt::DropAggregate(it) => &it.syntax,
34941            Stmt::DropCast(it) => &it.syntax,
34942            Stmt::DropCollation(it) => &it.syntax,
34943            Stmt::DropConversion(it) => &it.syntax,
34944            Stmt::DropDatabase(it) => &it.syntax,
34945            Stmt::DropDomain(it) => &it.syntax,
34946            Stmt::DropEventTrigger(it) => &it.syntax,
34947            Stmt::DropExtension(it) => &it.syntax,
34948            Stmt::DropForeignDataWrapper(it) => &it.syntax,
34949            Stmt::DropForeignTable(it) => &it.syntax,
34950            Stmt::DropFunction(it) => &it.syntax,
34951            Stmt::DropGroup(it) => &it.syntax,
34952            Stmt::DropIndex(it) => &it.syntax,
34953            Stmt::DropLanguage(it) => &it.syntax,
34954            Stmt::DropMaterializedView(it) => &it.syntax,
34955            Stmt::DropOperator(it) => &it.syntax,
34956            Stmt::DropOperatorClass(it) => &it.syntax,
34957            Stmt::DropOperatorFamily(it) => &it.syntax,
34958            Stmt::DropOwned(it) => &it.syntax,
34959            Stmt::DropPolicy(it) => &it.syntax,
34960            Stmt::DropProcedure(it) => &it.syntax,
34961            Stmt::DropPropertyGraph(it) => &it.syntax,
34962            Stmt::DropPublication(it) => &it.syntax,
34963            Stmt::DropRole(it) => &it.syntax,
34964            Stmt::DropRoutine(it) => &it.syntax,
34965            Stmt::DropRule(it) => &it.syntax,
34966            Stmt::DropSchema(it) => &it.syntax,
34967            Stmt::DropSequence(it) => &it.syntax,
34968            Stmt::DropServer(it) => &it.syntax,
34969            Stmt::DropStatistics(it) => &it.syntax,
34970            Stmt::DropSubscription(it) => &it.syntax,
34971            Stmt::DropTable(it) => &it.syntax,
34972            Stmt::DropTablespace(it) => &it.syntax,
34973            Stmt::DropTextSearchConfig(it) => &it.syntax,
34974            Stmt::DropTextSearchDict(it) => &it.syntax,
34975            Stmt::DropTextSearchParser(it) => &it.syntax,
34976            Stmt::DropTextSearchTemplate(it) => &it.syntax,
34977            Stmt::DropTransform(it) => &it.syntax,
34978            Stmt::DropTrigger(it) => &it.syntax,
34979            Stmt::DropType(it) => &it.syntax,
34980            Stmt::DropUser(it) => &it.syntax,
34981            Stmt::DropUserMapping(it) => &it.syntax,
34982            Stmt::DropView(it) => &it.syntax,
34983            Stmt::Execute(it) => &it.syntax,
34984            Stmt::Explain(it) => &it.syntax,
34985            Stmt::Fetch(it) => &it.syntax,
34986            Stmt::Grant(it) => &it.syntax,
34987            Stmt::ImportForeignSchema(it) => &it.syntax,
34988            Stmt::Insert(it) => &it.syntax,
34989            Stmt::Listen(it) => &it.syntax,
34990            Stmt::Load(it) => &it.syntax,
34991            Stmt::Lock(it) => &it.syntax,
34992            Stmt::Merge(it) => &it.syntax,
34993            Stmt::Move(it) => &it.syntax,
34994            Stmt::Notify(it) => &it.syntax,
34995            Stmt::ParenSelect(it) => &it.syntax,
34996            Stmt::Prepare(it) => &it.syntax,
34997            Stmt::PrepareTransaction(it) => &it.syntax,
34998            Stmt::Reassign(it) => &it.syntax,
34999            Stmt::Refresh(it) => &it.syntax,
35000            Stmt::Reindex(it) => &it.syntax,
35001            Stmt::ReleaseSavepoint(it) => &it.syntax,
35002            Stmt::Repack(it) => &it.syntax,
35003            Stmt::Reset(it) => &it.syntax,
35004            Stmt::ResetSessionAuth(it) => &it.syntax,
35005            Stmt::Revoke(it) => &it.syntax,
35006            Stmt::Rollback(it) => &it.syntax,
35007            Stmt::Savepoint(it) => &it.syntax,
35008            Stmt::SecurityLabel(it) => &it.syntax,
35009            Stmt::Select(it) => &it.syntax,
35010            Stmt::SelectInto(it) => &it.syntax,
35011            Stmt::Set(it) => &it.syntax,
35012            Stmt::SetConstraints(it) => &it.syntax,
35013            Stmt::SetRole(it) => &it.syntax,
35014            Stmt::SetSessionAuth(it) => &it.syntax,
35015            Stmt::SetTransaction(it) => &it.syntax,
35016            Stmt::Show(it) => &it.syntax,
35017            Stmt::Table(it) => &it.syntax,
35018            Stmt::Truncate(it) => &it.syntax,
35019            Stmt::Unlisten(it) => &it.syntax,
35020            Stmt::Update(it) => &it.syntax,
35021            Stmt::Vacuum(it) => &it.syntax,
35022            Stmt::Values(it) => &it.syntax,
35023        }
35024    }
35025}
35026impl From<AlterAggregate> for Stmt {
35027    #[inline]
35028    fn from(node: AlterAggregate) -> Stmt {
35029        Stmt::AlterAggregate(node)
35030    }
35031}
35032impl From<AlterCollation> for Stmt {
35033    #[inline]
35034    fn from(node: AlterCollation) -> Stmt {
35035        Stmt::AlterCollation(node)
35036    }
35037}
35038impl From<AlterConversion> for Stmt {
35039    #[inline]
35040    fn from(node: AlterConversion) -> Stmt {
35041        Stmt::AlterConversion(node)
35042    }
35043}
35044impl From<AlterDatabase> for Stmt {
35045    #[inline]
35046    fn from(node: AlterDatabase) -> Stmt {
35047        Stmt::AlterDatabase(node)
35048    }
35049}
35050impl From<AlterDefaultPrivileges> for Stmt {
35051    #[inline]
35052    fn from(node: AlterDefaultPrivileges) -> Stmt {
35053        Stmt::AlterDefaultPrivileges(node)
35054    }
35055}
35056impl From<AlterDomain> for Stmt {
35057    #[inline]
35058    fn from(node: AlterDomain) -> Stmt {
35059        Stmt::AlterDomain(node)
35060    }
35061}
35062impl From<AlterEventTrigger> for Stmt {
35063    #[inline]
35064    fn from(node: AlterEventTrigger) -> Stmt {
35065        Stmt::AlterEventTrigger(node)
35066    }
35067}
35068impl From<AlterExtension> for Stmt {
35069    #[inline]
35070    fn from(node: AlterExtension) -> Stmt {
35071        Stmt::AlterExtension(node)
35072    }
35073}
35074impl From<AlterForeignDataWrapper> for Stmt {
35075    #[inline]
35076    fn from(node: AlterForeignDataWrapper) -> Stmt {
35077        Stmt::AlterForeignDataWrapper(node)
35078    }
35079}
35080impl From<AlterForeignTable> for Stmt {
35081    #[inline]
35082    fn from(node: AlterForeignTable) -> Stmt {
35083        Stmt::AlterForeignTable(node)
35084    }
35085}
35086impl From<AlterFunction> for Stmt {
35087    #[inline]
35088    fn from(node: AlterFunction) -> Stmt {
35089        Stmt::AlterFunction(node)
35090    }
35091}
35092impl From<AlterGroup> for Stmt {
35093    #[inline]
35094    fn from(node: AlterGroup) -> Stmt {
35095        Stmt::AlterGroup(node)
35096    }
35097}
35098impl From<AlterIndex> for Stmt {
35099    #[inline]
35100    fn from(node: AlterIndex) -> Stmt {
35101        Stmt::AlterIndex(node)
35102    }
35103}
35104impl From<AlterLanguage> for Stmt {
35105    #[inline]
35106    fn from(node: AlterLanguage) -> Stmt {
35107        Stmt::AlterLanguage(node)
35108    }
35109}
35110impl From<AlterLargeObject> for Stmt {
35111    #[inline]
35112    fn from(node: AlterLargeObject) -> Stmt {
35113        Stmt::AlterLargeObject(node)
35114    }
35115}
35116impl From<AlterMaterializedView> for Stmt {
35117    #[inline]
35118    fn from(node: AlterMaterializedView) -> Stmt {
35119        Stmt::AlterMaterializedView(node)
35120    }
35121}
35122impl From<AlterOperator> for Stmt {
35123    #[inline]
35124    fn from(node: AlterOperator) -> Stmt {
35125        Stmt::AlterOperator(node)
35126    }
35127}
35128impl From<AlterOperatorClass> for Stmt {
35129    #[inline]
35130    fn from(node: AlterOperatorClass) -> Stmt {
35131        Stmt::AlterOperatorClass(node)
35132    }
35133}
35134impl From<AlterOperatorFamily> for Stmt {
35135    #[inline]
35136    fn from(node: AlterOperatorFamily) -> Stmt {
35137        Stmt::AlterOperatorFamily(node)
35138    }
35139}
35140impl From<AlterPolicy> for Stmt {
35141    #[inline]
35142    fn from(node: AlterPolicy) -> Stmt {
35143        Stmt::AlterPolicy(node)
35144    }
35145}
35146impl From<AlterProcedure> for Stmt {
35147    #[inline]
35148    fn from(node: AlterProcedure) -> Stmt {
35149        Stmt::AlterProcedure(node)
35150    }
35151}
35152impl From<AlterPropertyGraph> for Stmt {
35153    #[inline]
35154    fn from(node: AlterPropertyGraph) -> Stmt {
35155        Stmt::AlterPropertyGraph(node)
35156    }
35157}
35158impl From<AlterPublication> for Stmt {
35159    #[inline]
35160    fn from(node: AlterPublication) -> Stmt {
35161        Stmt::AlterPublication(node)
35162    }
35163}
35164impl From<AlterRole> for Stmt {
35165    #[inline]
35166    fn from(node: AlterRole) -> Stmt {
35167        Stmt::AlterRole(node)
35168    }
35169}
35170impl From<AlterRoutine> for Stmt {
35171    #[inline]
35172    fn from(node: AlterRoutine) -> Stmt {
35173        Stmt::AlterRoutine(node)
35174    }
35175}
35176impl From<AlterRule> for Stmt {
35177    #[inline]
35178    fn from(node: AlterRule) -> Stmt {
35179        Stmt::AlterRule(node)
35180    }
35181}
35182impl From<AlterSchema> for Stmt {
35183    #[inline]
35184    fn from(node: AlterSchema) -> Stmt {
35185        Stmt::AlterSchema(node)
35186    }
35187}
35188impl From<AlterSequence> for Stmt {
35189    #[inline]
35190    fn from(node: AlterSequence) -> Stmt {
35191        Stmt::AlterSequence(node)
35192    }
35193}
35194impl From<AlterServer> for Stmt {
35195    #[inline]
35196    fn from(node: AlterServer) -> Stmt {
35197        Stmt::AlterServer(node)
35198    }
35199}
35200impl From<AlterStatistics> for Stmt {
35201    #[inline]
35202    fn from(node: AlterStatistics) -> Stmt {
35203        Stmt::AlterStatistics(node)
35204    }
35205}
35206impl From<AlterSubscription> for Stmt {
35207    #[inline]
35208    fn from(node: AlterSubscription) -> Stmt {
35209        Stmt::AlterSubscription(node)
35210    }
35211}
35212impl From<AlterSystem> for Stmt {
35213    #[inline]
35214    fn from(node: AlterSystem) -> Stmt {
35215        Stmt::AlterSystem(node)
35216    }
35217}
35218impl From<AlterTable> for Stmt {
35219    #[inline]
35220    fn from(node: AlterTable) -> Stmt {
35221        Stmt::AlterTable(node)
35222    }
35223}
35224impl From<AlterTablespace> for Stmt {
35225    #[inline]
35226    fn from(node: AlterTablespace) -> Stmt {
35227        Stmt::AlterTablespace(node)
35228    }
35229}
35230impl From<AlterTextSearchConfiguration> for Stmt {
35231    #[inline]
35232    fn from(node: AlterTextSearchConfiguration) -> Stmt {
35233        Stmt::AlterTextSearchConfiguration(node)
35234    }
35235}
35236impl From<AlterTextSearchDictionary> for Stmt {
35237    #[inline]
35238    fn from(node: AlterTextSearchDictionary) -> Stmt {
35239        Stmt::AlterTextSearchDictionary(node)
35240    }
35241}
35242impl From<AlterTextSearchParser> for Stmt {
35243    #[inline]
35244    fn from(node: AlterTextSearchParser) -> Stmt {
35245        Stmt::AlterTextSearchParser(node)
35246    }
35247}
35248impl From<AlterTextSearchTemplate> for Stmt {
35249    #[inline]
35250    fn from(node: AlterTextSearchTemplate) -> Stmt {
35251        Stmt::AlterTextSearchTemplate(node)
35252    }
35253}
35254impl From<AlterTrigger> for Stmt {
35255    #[inline]
35256    fn from(node: AlterTrigger) -> Stmt {
35257        Stmt::AlterTrigger(node)
35258    }
35259}
35260impl From<AlterType> for Stmt {
35261    #[inline]
35262    fn from(node: AlterType) -> Stmt {
35263        Stmt::AlterType(node)
35264    }
35265}
35266impl From<AlterUser> for Stmt {
35267    #[inline]
35268    fn from(node: AlterUser) -> Stmt {
35269        Stmt::AlterUser(node)
35270    }
35271}
35272impl From<AlterUserMapping> for Stmt {
35273    #[inline]
35274    fn from(node: AlterUserMapping) -> Stmt {
35275        Stmt::AlterUserMapping(node)
35276    }
35277}
35278impl From<AlterView> for Stmt {
35279    #[inline]
35280    fn from(node: AlterView) -> Stmt {
35281        Stmt::AlterView(node)
35282    }
35283}
35284impl From<Analyze> for Stmt {
35285    #[inline]
35286    fn from(node: Analyze) -> Stmt {
35287        Stmt::Analyze(node)
35288    }
35289}
35290impl From<Begin> for Stmt {
35291    #[inline]
35292    fn from(node: Begin) -> Stmt {
35293        Stmt::Begin(node)
35294    }
35295}
35296impl From<Call> for Stmt {
35297    #[inline]
35298    fn from(node: Call) -> Stmt {
35299        Stmt::Call(node)
35300    }
35301}
35302impl From<Checkpoint> for Stmt {
35303    #[inline]
35304    fn from(node: Checkpoint) -> Stmt {
35305        Stmt::Checkpoint(node)
35306    }
35307}
35308impl From<Close> for Stmt {
35309    #[inline]
35310    fn from(node: Close) -> Stmt {
35311        Stmt::Close(node)
35312    }
35313}
35314impl From<Cluster> for Stmt {
35315    #[inline]
35316    fn from(node: Cluster) -> Stmt {
35317        Stmt::Cluster(node)
35318    }
35319}
35320impl From<CommentOn> for Stmt {
35321    #[inline]
35322    fn from(node: CommentOn) -> Stmt {
35323        Stmt::CommentOn(node)
35324    }
35325}
35326impl From<Commit> for Stmt {
35327    #[inline]
35328    fn from(node: Commit) -> Stmt {
35329        Stmt::Commit(node)
35330    }
35331}
35332impl From<Copy> for Stmt {
35333    #[inline]
35334    fn from(node: Copy) -> Stmt {
35335        Stmt::Copy(node)
35336    }
35337}
35338impl From<CreateAccessMethod> for Stmt {
35339    #[inline]
35340    fn from(node: CreateAccessMethod) -> Stmt {
35341        Stmt::CreateAccessMethod(node)
35342    }
35343}
35344impl From<CreateAggregate> for Stmt {
35345    #[inline]
35346    fn from(node: CreateAggregate) -> Stmt {
35347        Stmt::CreateAggregate(node)
35348    }
35349}
35350impl From<CreateCast> for Stmt {
35351    #[inline]
35352    fn from(node: CreateCast) -> Stmt {
35353        Stmt::CreateCast(node)
35354    }
35355}
35356impl From<CreateCollation> for Stmt {
35357    #[inline]
35358    fn from(node: CreateCollation) -> Stmt {
35359        Stmt::CreateCollation(node)
35360    }
35361}
35362impl From<CreateConversion> for Stmt {
35363    #[inline]
35364    fn from(node: CreateConversion) -> Stmt {
35365        Stmt::CreateConversion(node)
35366    }
35367}
35368impl From<CreateDatabase> for Stmt {
35369    #[inline]
35370    fn from(node: CreateDatabase) -> Stmt {
35371        Stmt::CreateDatabase(node)
35372    }
35373}
35374impl From<CreateDomain> for Stmt {
35375    #[inline]
35376    fn from(node: CreateDomain) -> Stmt {
35377        Stmt::CreateDomain(node)
35378    }
35379}
35380impl From<CreateEventTrigger> for Stmt {
35381    #[inline]
35382    fn from(node: CreateEventTrigger) -> Stmt {
35383        Stmt::CreateEventTrigger(node)
35384    }
35385}
35386impl From<CreateExtension> for Stmt {
35387    #[inline]
35388    fn from(node: CreateExtension) -> Stmt {
35389        Stmt::CreateExtension(node)
35390    }
35391}
35392impl From<CreateForeignDataWrapper> for Stmt {
35393    #[inline]
35394    fn from(node: CreateForeignDataWrapper) -> Stmt {
35395        Stmt::CreateForeignDataWrapper(node)
35396    }
35397}
35398impl From<CreateForeignTable> for Stmt {
35399    #[inline]
35400    fn from(node: CreateForeignTable) -> Stmt {
35401        Stmt::CreateForeignTable(node)
35402    }
35403}
35404impl From<CreateFunction> for Stmt {
35405    #[inline]
35406    fn from(node: CreateFunction) -> Stmt {
35407        Stmt::CreateFunction(node)
35408    }
35409}
35410impl From<CreateGroup> for Stmt {
35411    #[inline]
35412    fn from(node: CreateGroup) -> Stmt {
35413        Stmt::CreateGroup(node)
35414    }
35415}
35416impl From<CreateIndex> for Stmt {
35417    #[inline]
35418    fn from(node: CreateIndex) -> Stmt {
35419        Stmt::CreateIndex(node)
35420    }
35421}
35422impl From<CreateLanguage> for Stmt {
35423    #[inline]
35424    fn from(node: CreateLanguage) -> Stmt {
35425        Stmt::CreateLanguage(node)
35426    }
35427}
35428impl From<CreateMaterializedView> for Stmt {
35429    #[inline]
35430    fn from(node: CreateMaterializedView) -> Stmt {
35431        Stmt::CreateMaterializedView(node)
35432    }
35433}
35434impl From<CreateOperator> for Stmt {
35435    #[inline]
35436    fn from(node: CreateOperator) -> Stmt {
35437        Stmt::CreateOperator(node)
35438    }
35439}
35440impl From<CreateOperatorClass> for Stmt {
35441    #[inline]
35442    fn from(node: CreateOperatorClass) -> Stmt {
35443        Stmt::CreateOperatorClass(node)
35444    }
35445}
35446impl From<CreateOperatorFamily> for Stmt {
35447    #[inline]
35448    fn from(node: CreateOperatorFamily) -> Stmt {
35449        Stmt::CreateOperatorFamily(node)
35450    }
35451}
35452impl From<CreatePolicy> for Stmt {
35453    #[inline]
35454    fn from(node: CreatePolicy) -> Stmt {
35455        Stmt::CreatePolicy(node)
35456    }
35457}
35458impl From<CreateProcedure> for Stmt {
35459    #[inline]
35460    fn from(node: CreateProcedure) -> Stmt {
35461        Stmt::CreateProcedure(node)
35462    }
35463}
35464impl From<CreatePropertyGraph> for Stmt {
35465    #[inline]
35466    fn from(node: CreatePropertyGraph) -> Stmt {
35467        Stmt::CreatePropertyGraph(node)
35468    }
35469}
35470impl From<CreatePublication> for Stmt {
35471    #[inline]
35472    fn from(node: CreatePublication) -> Stmt {
35473        Stmt::CreatePublication(node)
35474    }
35475}
35476impl From<CreateRole> for Stmt {
35477    #[inline]
35478    fn from(node: CreateRole) -> Stmt {
35479        Stmt::CreateRole(node)
35480    }
35481}
35482impl From<CreateRule> for Stmt {
35483    #[inline]
35484    fn from(node: CreateRule) -> Stmt {
35485        Stmt::CreateRule(node)
35486    }
35487}
35488impl From<CreateSchema> for Stmt {
35489    #[inline]
35490    fn from(node: CreateSchema) -> Stmt {
35491        Stmt::CreateSchema(node)
35492    }
35493}
35494impl From<CreateSequence> for Stmt {
35495    #[inline]
35496    fn from(node: CreateSequence) -> Stmt {
35497        Stmt::CreateSequence(node)
35498    }
35499}
35500impl From<CreateServer> for Stmt {
35501    #[inline]
35502    fn from(node: CreateServer) -> Stmt {
35503        Stmt::CreateServer(node)
35504    }
35505}
35506impl From<CreateStatistics> for Stmt {
35507    #[inline]
35508    fn from(node: CreateStatistics) -> Stmt {
35509        Stmt::CreateStatistics(node)
35510    }
35511}
35512impl From<CreateSubscription> for Stmt {
35513    #[inline]
35514    fn from(node: CreateSubscription) -> Stmt {
35515        Stmt::CreateSubscription(node)
35516    }
35517}
35518impl From<CreateTable> for Stmt {
35519    #[inline]
35520    fn from(node: CreateTable) -> Stmt {
35521        Stmt::CreateTable(node)
35522    }
35523}
35524impl From<CreateTableAs> for Stmt {
35525    #[inline]
35526    fn from(node: CreateTableAs) -> Stmt {
35527        Stmt::CreateTableAs(node)
35528    }
35529}
35530impl From<CreateTablespace> for Stmt {
35531    #[inline]
35532    fn from(node: CreateTablespace) -> Stmt {
35533        Stmt::CreateTablespace(node)
35534    }
35535}
35536impl From<CreateTextSearchConfiguration> for Stmt {
35537    #[inline]
35538    fn from(node: CreateTextSearchConfiguration) -> Stmt {
35539        Stmt::CreateTextSearchConfiguration(node)
35540    }
35541}
35542impl From<CreateTextSearchDictionary> for Stmt {
35543    #[inline]
35544    fn from(node: CreateTextSearchDictionary) -> Stmt {
35545        Stmt::CreateTextSearchDictionary(node)
35546    }
35547}
35548impl From<CreateTextSearchParser> for Stmt {
35549    #[inline]
35550    fn from(node: CreateTextSearchParser) -> Stmt {
35551        Stmt::CreateTextSearchParser(node)
35552    }
35553}
35554impl From<CreateTextSearchTemplate> for Stmt {
35555    #[inline]
35556    fn from(node: CreateTextSearchTemplate) -> Stmt {
35557        Stmt::CreateTextSearchTemplate(node)
35558    }
35559}
35560impl From<CreateTransform> for Stmt {
35561    #[inline]
35562    fn from(node: CreateTransform) -> Stmt {
35563        Stmt::CreateTransform(node)
35564    }
35565}
35566impl From<CreateTrigger> for Stmt {
35567    #[inline]
35568    fn from(node: CreateTrigger) -> Stmt {
35569        Stmt::CreateTrigger(node)
35570    }
35571}
35572impl From<CreateType> for Stmt {
35573    #[inline]
35574    fn from(node: CreateType) -> Stmt {
35575        Stmt::CreateType(node)
35576    }
35577}
35578impl From<CreateUser> for Stmt {
35579    #[inline]
35580    fn from(node: CreateUser) -> Stmt {
35581        Stmt::CreateUser(node)
35582    }
35583}
35584impl From<CreateUserMapping> for Stmt {
35585    #[inline]
35586    fn from(node: CreateUserMapping) -> Stmt {
35587        Stmt::CreateUserMapping(node)
35588    }
35589}
35590impl From<CreateView> for Stmt {
35591    #[inline]
35592    fn from(node: CreateView) -> Stmt {
35593        Stmt::CreateView(node)
35594    }
35595}
35596impl From<Deallocate> for Stmt {
35597    #[inline]
35598    fn from(node: Deallocate) -> Stmt {
35599        Stmt::Deallocate(node)
35600    }
35601}
35602impl From<Declare> for Stmt {
35603    #[inline]
35604    fn from(node: Declare) -> Stmt {
35605        Stmt::Declare(node)
35606    }
35607}
35608impl From<Delete> for Stmt {
35609    #[inline]
35610    fn from(node: Delete) -> Stmt {
35611        Stmt::Delete(node)
35612    }
35613}
35614impl From<Discard> for Stmt {
35615    #[inline]
35616    fn from(node: Discard) -> Stmt {
35617        Stmt::Discard(node)
35618    }
35619}
35620impl From<Do> for Stmt {
35621    #[inline]
35622    fn from(node: Do) -> Stmt {
35623        Stmt::Do(node)
35624    }
35625}
35626impl From<DropAccessMethod> for Stmt {
35627    #[inline]
35628    fn from(node: DropAccessMethod) -> Stmt {
35629        Stmt::DropAccessMethod(node)
35630    }
35631}
35632impl From<DropAggregate> for Stmt {
35633    #[inline]
35634    fn from(node: DropAggregate) -> Stmt {
35635        Stmt::DropAggregate(node)
35636    }
35637}
35638impl From<DropCast> for Stmt {
35639    #[inline]
35640    fn from(node: DropCast) -> Stmt {
35641        Stmt::DropCast(node)
35642    }
35643}
35644impl From<DropCollation> for Stmt {
35645    #[inline]
35646    fn from(node: DropCollation) -> Stmt {
35647        Stmt::DropCollation(node)
35648    }
35649}
35650impl From<DropConversion> for Stmt {
35651    #[inline]
35652    fn from(node: DropConversion) -> Stmt {
35653        Stmt::DropConversion(node)
35654    }
35655}
35656impl From<DropDatabase> for Stmt {
35657    #[inline]
35658    fn from(node: DropDatabase) -> Stmt {
35659        Stmt::DropDatabase(node)
35660    }
35661}
35662impl From<DropDomain> for Stmt {
35663    #[inline]
35664    fn from(node: DropDomain) -> Stmt {
35665        Stmt::DropDomain(node)
35666    }
35667}
35668impl From<DropEventTrigger> for Stmt {
35669    #[inline]
35670    fn from(node: DropEventTrigger) -> Stmt {
35671        Stmt::DropEventTrigger(node)
35672    }
35673}
35674impl From<DropExtension> for Stmt {
35675    #[inline]
35676    fn from(node: DropExtension) -> Stmt {
35677        Stmt::DropExtension(node)
35678    }
35679}
35680impl From<DropForeignDataWrapper> for Stmt {
35681    #[inline]
35682    fn from(node: DropForeignDataWrapper) -> Stmt {
35683        Stmt::DropForeignDataWrapper(node)
35684    }
35685}
35686impl From<DropForeignTable> for Stmt {
35687    #[inline]
35688    fn from(node: DropForeignTable) -> Stmt {
35689        Stmt::DropForeignTable(node)
35690    }
35691}
35692impl From<DropFunction> for Stmt {
35693    #[inline]
35694    fn from(node: DropFunction) -> Stmt {
35695        Stmt::DropFunction(node)
35696    }
35697}
35698impl From<DropGroup> for Stmt {
35699    #[inline]
35700    fn from(node: DropGroup) -> Stmt {
35701        Stmt::DropGroup(node)
35702    }
35703}
35704impl From<DropIndex> for Stmt {
35705    #[inline]
35706    fn from(node: DropIndex) -> Stmt {
35707        Stmt::DropIndex(node)
35708    }
35709}
35710impl From<DropLanguage> for Stmt {
35711    #[inline]
35712    fn from(node: DropLanguage) -> Stmt {
35713        Stmt::DropLanguage(node)
35714    }
35715}
35716impl From<DropMaterializedView> for Stmt {
35717    #[inline]
35718    fn from(node: DropMaterializedView) -> Stmt {
35719        Stmt::DropMaterializedView(node)
35720    }
35721}
35722impl From<DropOperator> for Stmt {
35723    #[inline]
35724    fn from(node: DropOperator) -> Stmt {
35725        Stmt::DropOperator(node)
35726    }
35727}
35728impl From<DropOperatorClass> for Stmt {
35729    #[inline]
35730    fn from(node: DropOperatorClass) -> Stmt {
35731        Stmt::DropOperatorClass(node)
35732    }
35733}
35734impl From<DropOperatorFamily> for Stmt {
35735    #[inline]
35736    fn from(node: DropOperatorFamily) -> Stmt {
35737        Stmt::DropOperatorFamily(node)
35738    }
35739}
35740impl From<DropOwned> for Stmt {
35741    #[inline]
35742    fn from(node: DropOwned) -> Stmt {
35743        Stmt::DropOwned(node)
35744    }
35745}
35746impl From<DropPolicy> for Stmt {
35747    #[inline]
35748    fn from(node: DropPolicy) -> Stmt {
35749        Stmt::DropPolicy(node)
35750    }
35751}
35752impl From<DropProcedure> for Stmt {
35753    #[inline]
35754    fn from(node: DropProcedure) -> Stmt {
35755        Stmt::DropProcedure(node)
35756    }
35757}
35758impl From<DropPropertyGraph> for Stmt {
35759    #[inline]
35760    fn from(node: DropPropertyGraph) -> Stmt {
35761        Stmt::DropPropertyGraph(node)
35762    }
35763}
35764impl From<DropPublication> for Stmt {
35765    #[inline]
35766    fn from(node: DropPublication) -> Stmt {
35767        Stmt::DropPublication(node)
35768    }
35769}
35770impl From<DropRole> for Stmt {
35771    #[inline]
35772    fn from(node: DropRole) -> Stmt {
35773        Stmt::DropRole(node)
35774    }
35775}
35776impl From<DropRoutine> for Stmt {
35777    #[inline]
35778    fn from(node: DropRoutine) -> Stmt {
35779        Stmt::DropRoutine(node)
35780    }
35781}
35782impl From<DropRule> for Stmt {
35783    #[inline]
35784    fn from(node: DropRule) -> Stmt {
35785        Stmt::DropRule(node)
35786    }
35787}
35788impl From<DropSchema> for Stmt {
35789    #[inline]
35790    fn from(node: DropSchema) -> Stmt {
35791        Stmt::DropSchema(node)
35792    }
35793}
35794impl From<DropSequence> for Stmt {
35795    #[inline]
35796    fn from(node: DropSequence) -> Stmt {
35797        Stmt::DropSequence(node)
35798    }
35799}
35800impl From<DropServer> for Stmt {
35801    #[inline]
35802    fn from(node: DropServer) -> Stmt {
35803        Stmt::DropServer(node)
35804    }
35805}
35806impl From<DropStatistics> for Stmt {
35807    #[inline]
35808    fn from(node: DropStatistics) -> Stmt {
35809        Stmt::DropStatistics(node)
35810    }
35811}
35812impl From<DropSubscription> for Stmt {
35813    #[inline]
35814    fn from(node: DropSubscription) -> Stmt {
35815        Stmt::DropSubscription(node)
35816    }
35817}
35818impl From<DropTable> for Stmt {
35819    #[inline]
35820    fn from(node: DropTable) -> Stmt {
35821        Stmt::DropTable(node)
35822    }
35823}
35824impl From<DropTablespace> for Stmt {
35825    #[inline]
35826    fn from(node: DropTablespace) -> Stmt {
35827        Stmt::DropTablespace(node)
35828    }
35829}
35830impl From<DropTextSearchConfig> for Stmt {
35831    #[inline]
35832    fn from(node: DropTextSearchConfig) -> Stmt {
35833        Stmt::DropTextSearchConfig(node)
35834    }
35835}
35836impl From<DropTextSearchDict> for Stmt {
35837    #[inline]
35838    fn from(node: DropTextSearchDict) -> Stmt {
35839        Stmt::DropTextSearchDict(node)
35840    }
35841}
35842impl From<DropTextSearchParser> for Stmt {
35843    #[inline]
35844    fn from(node: DropTextSearchParser) -> Stmt {
35845        Stmt::DropTextSearchParser(node)
35846    }
35847}
35848impl From<DropTextSearchTemplate> for Stmt {
35849    #[inline]
35850    fn from(node: DropTextSearchTemplate) -> Stmt {
35851        Stmt::DropTextSearchTemplate(node)
35852    }
35853}
35854impl From<DropTransform> for Stmt {
35855    #[inline]
35856    fn from(node: DropTransform) -> Stmt {
35857        Stmt::DropTransform(node)
35858    }
35859}
35860impl From<DropTrigger> for Stmt {
35861    #[inline]
35862    fn from(node: DropTrigger) -> Stmt {
35863        Stmt::DropTrigger(node)
35864    }
35865}
35866impl From<DropType> for Stmt {
35867    #[inline]
35868    fn from(node: DropType) -> Stmt {
35869        Stmt::DropType(node)
35870    }
35871}
35872impl From<DropUser> for Stmt {
35873    #[inline]
35874    fn from(node: DropUser) -> Stmt {
35875        Stmt::DropUser(node)
35876    }
35877}
35878impl From<DropUserMapping> for Stmt {
35879    #[inline]
35880    fn from(node: DropUserMapping) -> Stmt {
35881        Stmt::DropUserMapping(node)
35882    }
35883}
35884impl From<DropView> for Stmt {
35885    #[inline]
35886    fn from(node: DropView) -> Stmt {
35887        Stmt::DropView(node)
35888    }
35889}
35890impl From<Execute> for Stmt {
35891    #[inline]
35892    fn from(node: Execute) -> Stmt {
35893        Stmt::Execute(node)
35894    }
35895}
35896impl From<Explain> for Stmt {
35897    #[inline]
35898    fn from(node: Explain) -> Stmt {
35899        Stmt::Explain(node)
35900    }
35901}
35902impl From<Fetch> for Stmt {
35903    #[inline]
35904    fn from(node: Fetch) -> Stmt {
35905        Stmt::Fetch(node)
35906    }
35907}
35908impl From<Grant> for Stmt {
35909    #[inline]
35910    fn from(node: Grant) -> Stmt {
35911        Stmt::Grant(node)
35912    }
35913}
35914impl From<ImportForeignSchema> for Stmt {
35915    #[inline]
35916    fn from(node: ImportForeignSchema) -> Stmt {
35917        Stmt::ImportForeignSchema(node)
35918    }
35919}
35920impl From<Insert> for Stmt {
35921    #[inline]
35922    fn from(node: Insert) -> Stmt {
35923        Stmt::Insert(node)
35924    }
35925}
35926impl From<Listen> for Stmt {
35927    #[inline]
35928    fn from(node: Listen) -> Stmt {
35929        Stmt::Listen(node)
35930    }
35931}
35932impl From<Load> for Stmt {
35933    #[inline]
35934    fn from(node: Load) -> Stmt {
35935        Stmt::Load(node)
35936    }
35937}
35938impl From<Lock> for Stmt {
35939    #[inline]
35940    fn from(node: Lock) -> Stmt {
35941        Stmt::Lock(node)
35942    }
35943}
35944impl From<Merge> for Stmt {
35945    #[inline]
35946    fn from(node: Merge) -> Stmt {
35947        Stmt::Merge(node)
35948    }
35949}
35950impl From<Move> for Stmt {
35951    #[inline]
35952    fn from(node: Move) -> Stmt {
35953        Stmt::Move(node)
35954    }
35955}
35956impl From<Notify> for Stmt {
35957    #[inline]
35958    fn from(node: Notify) -> Stmt {
35959        Stmt::Notify(node)
35960    }
35961}
35962impl From<ParenSelect> for Stmt {
35963    #[inline]
35964    fn from(node: ParenSelect) -> Stmt {
35965        Stmt::ParenSelect(node)
35966    }
35967}
35968impl From<Prepare> for Stmt {
35969    #[inline]
35970    fn from(node: Prepare) -> Stmt {
35971        Stmt::Prepare(node)
35972    }
35973}
35974impl From<PrepareTransaction> for Stmt {
35975    #[inline]
35976    fn from(node: PrepareTransaction) -> Stmt {
35977        Stmt::PrepareTransaction(node)
35978    }
35979}
35980impl From<Reassign> for Stmt {
35981    #[inline]
35982    fn from(node: Reassign) -> Stmt {
35983        Stmt::Reassign(node)
35984    }
35985}
35986impl From<Refresh> for Stmt {
35987    #[inline]
35988    fn from(node: Refresh) -> Stmt {
35989        Stmt::Refresh(node)
35990    }
35991}
35992impl From<Reindex> for Stmt {
35993    #[inline]
35994    fn from(node: Reindex) -> Stmt {
35995        Stmt::Reindex(node)
35996    }
35997}
35998impl From<ReleaseSavepoint> for Stmt {
35999    #[inline]
36000    fn from(node: ReleaseSavepoint) -> Stmt {
36001        Stmt::ReleaseSavepoint(node)
36002    }
36003}
36004impl From<Repack> for Stmt {
36005    #[inline]
36006    fn from(node: Repack) -> Stmt {
36007        Stmt::Repack(node)
36008    }
36009}
36010impl From<Reset> for Stmt {
36011    #[inline]
36012    fn from(node: Reset) -> Stmt {
36013        Stmt::Reset(node)
36014    }
36015}
36016impl From<ResetSessionAuth> for Stmt {
36017    #[inline]
36018    fn from(node: ResetSessionAuth) -> Stmt {
36019        Stmt::ResetSessionAuth(node)
36020    }
36021}
36022impl From<Revoke> for Stmt {
36023    #[inline]
36024    fn from(node: Revoke) -> Stmt {
36025        Stmt::Revoke(node)
36026    }
36027}
36028impl From<Rollback> for Stmt {
36029    #[inline]
36030    fn from(node: Rollback) -> Stmt {
36031        Stmt::Rollback(node)
36032    }
36033}
36034impl From<Savepoint> for Stmt {
36035    #[inline]
36036    fn from(node: Savepoint) -> Stmt {
36037        Stmt::Savepoint(node)
36038    }
36039}
36040impl From<SecurityLabel> for Stmt {
36041    #[inline]
36042    fn from(node: SecurityLabel) -> Stmt {
36043        Stmt::SecurityLabel(node)
36044    }
36045}
36046impl From<Select> for Stmt {
36047    #[inline]
36048    fn from(node: Select) -> Stmt {
36049        Stmt::Select(node)
36050    }
36051}
36052impl From<SelectInto> for Stmt {
36053    #[inline]
36054    fn from(node: SelectInto) -> Stmt {
36055        Stmt::SelectInto(node)
36056    }
36057}
36058impl From<Set> for Stmt {
36059    #[inline]
36060    fn from(node: Set) -> Stmt {
36061        Stmt::Set(node)
36062    }
36063}
36064impl From<SetConstraints> for Stmt {
36065    #[inline]
36066    fn from(node: SetConstraints) -> Stmt {
36067        Stmt::SetConstraints(node)
36068    }
36069}
36070impl From<SetRole> for Stmt {
36071    #[inline]
36072    fn from(node: SetRole) -> Stmt {
36073        Stmt::SetRole(node)
36074    }
36075}
36076impl From<SetSessionAuth> for Stmt {
36077    #[inline]
36078    fn from(node: SetSessionAuth) -> Stmt {
36079        Stmt::SetSessionAuth(node)
36080    }
36081}
36082impl From<SetTransaction> for Stmt {
36083    #[inline]
36084    fn from(node: SetTransaction) -> Stmt {
36085        Stmt::SetTransaction(node)
36086    }
36087}
36088impl From<Show> for Stmt {
36089    #[inline]
36090    fn from(node: Show) -> Stmt {
36091        Stmt::Show(node)
36092    }
36093}
36094impl From<Table> for Stmt {
36095    #[inline]
36096    fn from(node: Table) -> Stmt {
36097        Stmt::Table(node)
36098    }
36099}
36100impl From<Truncate> for Stmt {
36101    #[inline]
36102    fn from(node: Truncate) -> Stmt {
36103        Stmt::Truncate(node)
36104    }
36105}
36106impl From<Unlisten> for Stmt {
36107    #[inline]
36108    fn from(node: Unlisten) -> Stmt {
36109        Stmt::Unlisten(node)
36110    }
36111}
36112impl From<Update> for Stmt {
36113    #[inline]
36114    fn from(node: Update) -> Stmt {
36115        Stmt::Update(node)
36116    }
36117}
36118impl From<Vacuum> for Stmt {
36119    #[inline]
36120    fn from(node: Vacuum) -> Stmt {
36121        Stmt::Vacuum(node)
36122    }
36123}
36124impl From<Values> for Stmt {
36125    #[inline]
36126    fn from(node: Values) -> Stmt {
36127        Stmt::Values(node)
36128    }
36129}
36130impl AstNode for TableArg {
36131    #[inline]
36132    fn can_cast(kind: SyntaxKind) -> bool {
36133        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
36134    }
36135    #[inline]
36136    fn cast(syntax: SyntaxNode) -> Option<Self> {
36137        let res = match syntax.kind() {
36138            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
36139            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
36140            _ => {
36141                if let Some(result) = TableConstraint::cast(syntax) {
36142                    return Some(TableArg::TableConstraint(result));
36143                }
36144                return None;
36145            }
36146        };
36147        Some(res)
36148    }
36149    #[inline]
36150    fn syntax(&self) -> &SyntaxNode {
36151        match self {
36152            TableArg::Column(it) => &it.syntax,
36153            TableArg::LikeClause(it) => &it.syntax,
36154            TableArg::TableConstraint(it) => it.syntax(),
36155        }
36156    }
36157}
36158impl From<Column> for TableArg {
36159    #[inline]
36160    fn from(node: Column) -> TableArg {
36161        TableArg::Column(node)
36162    }
36163}
36164impl From<LikeClause> for TableArg {
36165    #[inline]
36166    fn from(node: LikeClause) -> TableArg {
36167        TableArg::LikeClause(node)
36168    }
36169}
36170impl AstNode for TableConstraint {
36171    #[inline]
36172    fn can_cast(kind: SyntaxKind) -> bool {
36173        matches!(
36174            kind,
36175            SyntaxKind::CHECK_CONSTRAINT
36176                | SyntaxKind::EXCLUDE_CONSTRAINT
36177                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
36178                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
36179                | SyntaxKind::UNIQUE_CONSTRAINT
36180        )
36181    }
36182    #[inline]
36183    fn cast(syntax: SyntaxNode) -> Option<Self> {
36184        let res = match syntax.kind() {
36185            SyntaxKind::CHECK_CONSTRAINT => {
36186                TableConstraint::CheckConstraint(CheckConstraint { syntax })
36187            }
36188            SyntaxKind::EXCLUDE_CONSTRAINT => {
36189                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
36190            }
36191            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
36192                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
36193            }
36194            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
36195                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
36196            }
36197            SyntaxKind::UNIQUE_CONSTRAINT => {
36198                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
36199            }
36200            _ => {
36201                return None;
36202            }
36203        };
36204        Some(res)
36205    }
36206    #[inline]
36207    fn syntax(&self) -> &SyntaxNode {
36208        match self {
36209            TableConstraint::CheckConstraint(it) => &it.syntax,
36210            TableConstraint::ExcludeConstraint(it) => &it.syntax,
36211            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
36212            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
36213            TableConstraint::UniqueConstraint(it) => &it.syntax,
36214        }
36215    }
36216}
36217impl From<CheckConstraint> for TableConstraint {
36218    #[inline]
36219    fn from(node: CheckConstraint) -> TableConstraint {
36220        TableConstraint::CheckConstraint(node)
36221    }
36222}
36223impl From<ExcludeConstraint> for TableConstraint {
36224    #[inline]
36225    fn from(node: ExcludeConstraint) -> TableConstraint {
36226        TableConstraint::ExcludeConstraint(node)
36227    }
36228}
36229impl From<ForeignKeyConstraint> for TableConstraint {
36230    #[inline]
36231    fn from(node: ForeignKeyConstraint) -> TableConstraint {
36232        TableConstraint::ForeignKeyConstraint(node)
36233    }
36234}
36235impl From<PrimaryKeyConstraint> for TableConstraint {
36236    #[inline]
36237    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
36238        TableConstraint::PrimaryKeyConstraint(node)
36239    }
36240}
36241impl From<UniqueConstraint> for TableConstraint {
36242    #[inline]
36243    fn from(node: UniqueConstraint) -> TableConstraint {
36244        TableConstraint::UniqueConstraint(node)
36245    }
36246}
36247impl AstNode for Timezone {
36248    #[inline]
36249    fn can_cast(kind: SyntaxKind) -> bool {
36250        matches!(
36251            kind,
36252            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
36253        )
36254    }
36255    #[inline]
36256    fn cast(syntax: SyntaxNode) -> Option<Self> {
36257        let res = match syntax.kind() {
36258            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
36259            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
36260            _ => {
36261                return None;
36262            }
36263        };
36264        Some(res)
36265    }
36266    #[inline]
36267    fn syntax(&self) -> &SyntaxNode {
36268        match self {
36269            Timezone::WithTimezone(it) => &it.syntax,
36270            Timezone::WithoutTimezone(it) => &it.syntax,
36271        }
36272    }
36273}
36274impl From<WithTimezone> for Timezone {
36275    #[inline]
36276    fn from(node: WithTimezone) -> Timezone {
36277        Timezone::WithTimezone(node)
36278    }
36279}
36280impl From<WithoutTimezone> for Timezone {
36281    #[inline]
36282    fn from(node: WithoutTimezone) -> Timezone {
36283        Timezone::WithoutTimezone(node)
36284    }
36285}
36286impl AstNode for TransactionMode {
36287    #[inline]
36288    fn can_cast(kind: SyntaxKind) -> bool {
36289        matches!(
36290            kind,
36291            SyntaxKind::DEFERRABLE
36292                | SyntaxKind::NOT_DEFERRABLE
36293                | SyntaxKind::READ_COMMITTED
36294                | SyntaxKind::READ_ONLY
36295                | SyntaxKind::READ_UNCOMMITTED
36296                | SyntaxKind::READ_WRITE
36297                | SyntaxKind::REPEATABLE_READ
36298                | SyntaxKind::SERIALIZABLE
36299        )
36300    }
36301    #[inline]
36302    fn cast(syntax: SyntaxNode) -> Option<Self> {
36303        let res = match syntax.kind() {
36304            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
36305            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
36306            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
36307            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
36308            SyntaxKind::READ_UNCOMMITTED => {
36309                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
36310            }
36311            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
36312            SyntaxKind::REPEATABLE_READ => {
36313                TransactionMode::RepeatableRead(RepeatableRead { syntax })
36314            }
36315            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
36316            _ => {
36317                return None;
36318            }
36319        };
36320        Some(res)
36321    }
36322    #[inline]
36323    fn syntax(&self) -> &SyntaxNode {
36324        match self {
36325            TransactionMode::Deferrable(it) => &it.syntax,
36326            TransactionMode::NotDeferrable(it) => &it.syntax,
36327            TransactionMode::ReadCommitted(it) => &it.syntax,
36328            TransactionMode::ReadOnly(it) => &it.syntax,
36329            TransactionMode::ReadUncommitted(it) => &it.syntax,
36330            TransactionMode::ReadWrite(it) => &it.syntax,
36331            TransactionMode::RepeatableRead(it) => &it.syntax,
36332            TransactionMode::Serializable(it) => &it.syntax,
36333        }
36334    }
36335}
36336impl From<Deferrable> for TransactionMode {
36337    #[inline]
36338    fn from(node: Deferrable) -> TransactionMode {
36339        TransactionMode::Deferrable(node)
36340    }
36341}
36342impl From<NotDeferrable> for TransactionMode {
36343    #[inline]
36344    fn from(node: NotDeferrable) -> TransactionMode {
36345        TransactionMode::NotDeferrable(node)
36346    }
36347}
36348impl From<ReadCommitted> for TransactionMode {
36349    #[inline]
36350    fn from(node: ReadCommitted) -> TransactionMode {
36351        TransactionMode::ReadCommitted(node)
36352    }
36353}
36354impl From<ReadOnly> for TransactionMode {
36355    #[inline]
36356    fn from(node: ReadOnly) -> TransactionMode {
36357        TransactionMode::ReadOnly(node)
36358    }
36359}
36360impl From<ReadUncommitted> for TransactionMode {
36361    #[inline]
36362    fn from(node: ReadUncommitted) -> TransactionMode {
36363        TransactionMode::ReadUncommitted(node)
36364    }
36365}
36366impl From<ReadWrite> for TransactionMode {
36367    #[inline]
36368    fn from(node: ReadWrite) -> TransactionMode {
36369        TransactionMode::ReadWrite(node)
36370    }
36371}
36372impl From<RepeatableRead> for TransactionMode {
36373    #[inline]
36374    fn from(node: RepeatableRead) -> TransactionMode {
36375        TransactionMode::RepeatableRead(node)
36376    }
36377}
36378impl From<Serializable> for TransactionMode {
36379    #[inline]
36380    fn from(node: Serializable) -> TransactionMode {
36381        TransactionMode::Serializable(node)
36382    }
36383}
36384impl AstNode for Type {
36385    #[inline]
36386    fn can_cast(kind: SyntaxKind) -> bool {
36387        matches!(
36388            kind,
36389            SyntaxKind::ARRAY_TYPE
36390                | SyntaxKind::BIT_TYPE
36391                | SyntaxKind::CHAR_TYPE
36392                | SyntaxKind::DOUBLE_TYPE
36393                | SyntaxKind::EXPR_TYPE
36394                | SyntaxKind::INTERVAL_TYPE
36395                | SyntaxKind::PATH_TYPE
36396                | SyntaxKind::PERCENT_TYPE
36397                | SyntaxKind::TIME_TYPE
36398        )
36399    }
36400    #[inline]
36401    fn cast(syntax: SyntaxNode) -> Option<Self> {
36402        let res = match syntax.kind() {
36403            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
36404            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
36405            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
36406            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
36407            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
36408            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
36409            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
36410            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
36411            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
36412            _ => {
36413                return None;
36414            }
36415        };
36416        Some(res)
36417    }
36418    #[inline]
36419    fn syntax(&self) -> &SyntaxNode {
36420        match self {
36421            Type::ArrayType(it) => &it.syntax,
36422            Type::BitType(it) => &it.syntax,
36423            Type::CharType(it) => &it.syntax,
36424            Type::DoubleType(it) => &it.syntax,
36425            Type::ExprType(it) => &it.syntax,
36426            Type::IntervalType(it) => &it.syntax,
36427            Type::PathType(it) => &it.syntax,
36428            Type::PercentType(it) => &it.syntax,
36429            Type::TimeType(it) => &it.syntax,
36430        }
36431    }
36432}
36433impl From<ArrayType> for Type {
36434    #[inline]
36435    fn from(node: ArrayType) -> Type {
36436        Type::ArrayType(node)
36437    }
36438}
36439impl From<BitType> for Type {
36440    #[inline]
36441    fn from(node: BitType) -> Type {
36442        Type::BitType(node)
36443    }
36444}
36445impl From<CharType> for Type {
36446    #[inline]
36447    fn from(node: CharType) -> Type {
36448        Type::CharType(node)
36449    }
36450}
36451impl From<DoubleType> for Type {
36452    #[inline]
36453    fn from(node: DoubleType) -> Type {
36454        Type::DoubleType(node)
36455    }
36456}
36457impl From<ExprType> for Type {
36458    #[inline]
36459    fn from(node: ExprType) -> Type {
36460        Type::ExprType(node)
36461    }
36462}
36463impl From<IntervalType> for Type {
36464    #[inline]
36465    fn from(node: IntervalType) -> Type {
36466        Type::IntervalType(node)
36467    }
36468}
36469impl From<PathType> for Type {
36470    #[inline]
36471    fn from(node: PathType) -> Type {
36472        Type::PathType(node)
36473    }
36474}
36475impl From<PercentType> for Type {
36476    #[inline]
36477    fn from(node: PercentType) -> Type {
36478        Type::PercentType(node)
36479    }
36480}
36481impl From<TimeType> for Type {
36482    #[inline]
36483    fn from(node: TimeType) -> Type {
36484        Type::TimeType(node)
36485    }
36486}
36487impl AstNode for ValuePosition {
36488    #[inline]
36489    fn can_cast(kind: SyntaxKind) -> bool {
36490        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
36491    }
36492    #[inline]
36493    fn cast(syntax: SyntaxNode) -> Option<Self> {
36494        let res = match syntax.kind() {
36495            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
36496            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
36497            _ => {
36498                return None;
36499            }
36500        };
36501        Some(res)
36502    }
36503    #[inline]
36504    fn syntax(&self) -> &SyntaxNode {
36505        match self {
36506            ValuePosition::AfterValue(it) => &it.syntax,
36507            ValuePosition::BeforeValue(it) => &it.syntax,
36508        }
36509    }
36510}
36511impl From<AfterValue> for ValuePosition {
36512    #[inline]
36513    fn from(node: AfterValue) -> ValuePosition {
36514        ValuePosition::AfterValue(node)
36515    }
36516}
36517impl From<BeforeValue> for ValuePosition {
36518    #[inline]
36519    fn from(node: BeforeValue) -> ValuePosition {
36520        ValuePosition::BeforeValue(node)
36521    }
36522}
36523impl AstNode for WithQuery {
36524    #[inline]
36525    fn can_cast(kind: SyntaxKind) -> bool {
36526        matches!(
36527            kind,
36528            SyntaxKind::COMPOUND_SELECT
36529                | SyntaxKind::DELETE
36530                | SyntaxKind::INSERT
36531                | SyntaxKind::MERGE
36532                | SyntaxKind::PAREN_SELECT
36533                | SyntaxKind::SELECT
36534                | SyntaxKind::TABLE
36535                | SyntaxKind::UPDATE
36536                | SyntaxKind::VALUES
36537        )
36538    }
36539    #[inline]
36540    fn cast(syntax: SyntaxNode) -> Option<Self> {
36541        let res = match syntax.kind() {
36542            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
36543            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
36544            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
36545            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
36546            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
36547            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
36548            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
36549            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
36550            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
36551            _ => {
36552                return None;
36553            }
36554        };
36555        Some(res)
36556    }
36557    #[inline]
36558    fn syntax(&self) -> &SyntaxNode {
36559        match self {
36560            WithQuery::CompoundSelect(it) => &it.syntax,
36561            WithQuery::Delete(it) => &it.syntax,
36562            WithQuery::Insert(it) => &it.syntax,
36563            WithQuery::Merge(it) => &it.syntax,
36564            WithQuery::ParenSelect(it) => &it.syntax,
36565            WithQuery::Select(it) => &it.syntax,
36566            WithQuery::Table(it) => &it.syntax,
36567            WithQuery::Update(it) => &it.syntax,
36568            WithQuery::Values(it) => &it.syntax,
36569        }
36570    }
36571}
36572impl From<CompoundSelect> for WithQuery {
36573    #[inline]
36574    fn from(node: CompoundSelect) -> WithQuery {
36575        WithQuery::CompoundSelect(node)
36576    }
36577}
36578impl From<Delete> for WithQuery {
36579    #[inline]
36580    fn from(node: Delete) -> WithQuery {
36581        WithQuery::Delete(node)
36582    }
36583}
36584impl From<Insert> for WithQuery {
36585    #[inline]
36586    fn from(node: Insert) -> WithQuery {
36587        WithQuery::Insert(node)
36588    }
36589}
36590impl From<Merge> for WithQuery {
36591    #[inline]
36592    fn from(node: Merge) -> WithQuery {
36593        WithQuery::Merge(node)
36594    }
36595}
36596impl From<ParenSelect> for WithQuery {
36597    #[inline]
36598    fn from(node: ParenSelect) -> WithQuery {
36599        WithQuery::ParenSelect(node)
36600    }
36601}
36602impl From<Select> for WithQuery {
36603    #[inline]
36604    fn from(node: Select) -> WithQuery {
36605        WithQuery::Select(node)
36606    }
36607}
36608impl From<Table> for WithQuery {
36609    #[inline]
36610    fn from(node: Table) -> WithQuery {
36611        WithQuery::Table(node)
36612    }
36613}
36614impl From<Update> for WithQuery {
36615    #[inline]
36616    fn from(node: Update) -> WithQuery {
36617        WithQuery::Update(node)
36618    }
36619}
36620impl From<Values> for WithQuery {
36621    #[inline]
36622    fn from(node: Values) -> WithQuery {
36623        WithQuery::Values(node)
36624    }
36625}