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 args_(&self) -> AstChildren<Arg> {
2098        support::children(&self.syntax)
2099    }
2100    #[inline]
2101    pub fn expr(&self) -> Option<Expr> {
2102        support::child(&self.syntax)
2103    }
2104    #[inline]
2105    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2106        support::token(&self.syntax, SyntaxKind::L_PAREN)
2107    }
2108    #[inline]
2109    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2110        support::token(&self.syntax, SyntaxKind::R_PAREN)
2111    }
2112    #[inline]
2113    pub fn star_token(&self) -> Option<SyntaxToken> {
2114        support::token(&self.syntax, SyntaxKind::STAR)
2115    }
2116    #[inline]
2117    pub fn all_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::ALL_KW)
2119    }
2120    #[inline]
2121    pub fn distinct_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
2123    }
2124    #[inline]
2125    pub fn variadic_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
2127    }
2128}
2129
2130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2131pub struct ArrayExpr {
2132    pub(crate) syntax: SyntaxNode,
2133}
2134impl ArrayExpr {
2135    #[inline]
2136    pub fn exprs(&self) -> AstChildren<Expr> {
2137        support::children(&self.syntax)
2138    }
2139    #[inline]
2140    pub fn select(&self) -> Option<Select> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2145        support::token(&self.syntax, SyntaxKind::L_PAREN)
2146    }
2147    #[inline]
2148    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::R_PAREN)
2150    }
2151    #[inline]
2152    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2153        support::token(&self.syntax, SyntaxKind::L_BRACK)
2154    }
2155    #[inline]
2156    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2157        support::token(&self.syntax, SyntaxKind::R_BRACK)
2158    }
2159    #[inline]
2160    pub fn array_token(&self) -> Option<SyntaxToken> {
2161        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2162    }
2163}
2164
2165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2166pub struct ArrayType {
2167    pub(crate) syntax: SyntaxNode,
2168}
2169impl ArrayType {
2170    #[inline]
2171    pub fn expr(&self) -> Option<Expr> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn name_ref(&self) -> Option<NameRef> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn ty(&self) -> Option<Type> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2184        support::token(&self.syntax, SyntaxKind::L_BRACK)
2185    }
2186    #[inline]
2187    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2188        support::token(&self.syntax, SyntaxKind::R_BRACK)
2189    }
2190    #[inline]
2191    pub fn array_token(&self) -> Option<SyntaxToken> {
2192        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2193    }
2194}
2195
2196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2197pub struct AsFuncOption {
2198    pub(crate) syntax: SyntaxNode,
2199}
2200impl AsFuncOption {
2201    #[inline]
2202    pub fn definition(&self) -> Option<Literal> {
2203        support::child(&self.syntax)
2204    }
2205    #[inline]
2206    pub fn link_symbol(&self) -> Option<Literal> {
2207        support::child(&self.syntax)
2208    }
2209    #[inline]
2210    pub fn obj_file(&self) -> Option<Literal> {
2211        support::child(&self.syntax)
2212    }
2213    #[inline]
2214    pub fn comma_token(&self) -> Option<SyntaxToken> {
2215        support::token(&self.syntax, SyntaxKind::COMMA)
2216    }
2217    #[inline]
2218    pub fn as_token(&self) -> Option<SyntaxToken> {
2219        support::token(&self.syntax, SyntaxKind::AS_KW)
2220    }
2221}
2222
2223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2224pub struct AsName {
2225    pub(crate) syntax: SyntaxNode,
2226}
2227impl AsName {
2228    #[inline]
2229    pub fn name(&self) -> Option<Name> {
2230        support::child(&self.syntax)
2231    }
2232    #[inline]
2233    pub fn as_token(&self) -> Option<SyntaxToken> {
2234        support::token(&self.syntax, SyntaxKind::AS_KW)
2235    }
2236}
2237
2238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2239pub struct AsPolicyType {
2240    pub(crate) syntax: SyntaxNode,
2241}
2242impl AsPolicyType {
2243    #[inline]
2244    pub fn as_token(&self) -> Option<SyntaxToken> {
2245        support::token(&self.syntax, SyntaxKind::AS_KW)
2246    }
2247    #[inline]
2248    pub fn ident_token(&self) -> Option<SyntaxToken> {
2249        support::token(&self.syntax, SyntaxKind::IDENT)
2250    }
2251}
2252
2253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2254pub struct AtTimeZone {
2255    pub(crate) syntax: SyntaxNode,
2256}
2257impl AtTimeZone {
2258    #[inline]
2259    pub fn at_token(&self) -> Option<SyntaxToken> {
2260        support::token(&self.syntax, SyntaxKind::AT_KW)
2261    }
2262    #[inline]
2263    pub fn time_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::TIME_KW)
2265    }
2266    #[inline]
2267    pub fn zone_token(&self) -> Option<SyntaxToken> {
2268        support::token(&self.syntax, SyntaxKind::ZONE_KW)
2269    }
2270}
2271
2272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2273pub struct AttachPartition {
2274    pub(crate) syntax: SyntaxNode,
2275}
2276impl AttachPartition {
2277    #[inline]
2278    pub fn partition_type(&self) -> Option<PartitionType> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn path(&self) -> Option<Path> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn attach_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
2288    }
2289    #[inline]
2290    pub fn partition_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct AttributeList {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl AttributeList {
2300    #[inline]
2301    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
2302        support::children(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2306        support::token(&self.syntax, SyntaxKind::L_PAREN)
2307    }
2308    #[inline]
2309    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2310        support::token(&self.syntax, SyntaxKind::R_PAREN)
2311    }
2312}
2313
2314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2315pub struct AttributeOption {
2316    pub(crate) syntax: SyntaxNode,
2317}
2318impl AttributeOption {
2319    #[inline]
2320    pub fn attribute_value(&self) -> Option<AttributeValue> {
2321        support::child(&self.syntax)
2322    }
2323    #[inline]
2324    pub fn name(&self) -> Option<Name> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn dot_token(&self) -> Option<SyntaxToken> {
2329        support::token(&self.syntax, SyntaxKind::DOT)
2330    }
2331    #[inline]
2332    pub fn eq_token(&self) -> Option<SyntaxToken> {
2333        support::token(&self.syntax, SyntaxKind::EQ)
2334    }
2335}
2336
2337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2338pub struct AttributeValue {
2339    pub(crate) syntax: SyntaxNode,
2340}
2341impl AttributeValue {
2342    #[inline]
2343    pub fn literal(&self) -> Option<Literal> {
2344        support::child(&self.syntax)
2345    }
2346    #[inline]
2347    pub fn op(&self) -> Option<Op> {
2348        support::child(&self.syntax)
2349    }
2350    #[inline]
2351    pub fn ty(&self) -> Option<Type> {
2352        support::child(&self.syntax)
2353    }
2354    #[inline]
2355    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2356        support::token(&self.syntax, SyntaxKind::L_PAREN)
2357    }
2358    #[inline]
2359    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2360        support::token(&self.syntax, SyntaxKind::R_PAREN)
2361    }
2362    #[inline]
2363    pub fn none_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::NONE_KW)
2365    }
2366    #[inline]
2367    pub fn operator_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2369    }
2370}
2371
2372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2373pub struct BeforeValue {
2374    pub(crate) syntax: SyntaxNode,
2375}
2376impl BeforeValue {
2377    #[inline]
2378    pub fn literal(&self) -> Option<Literal> {
2379        support::child(&self.syntax)
2380    }
2381    #[inline]
2382    pub fn before_token(&self) -> Option<SyntaxToken> {
2383        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
2384    }
2385}
2386
2387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2388pub struct Begin {
2389    pub(crate) syntax: SyntaxNode,
2390}
2391impl Begin {
2392    #[inline]
2393    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2394        support::child(&self.syntax)
2395    }
2396    #[inline]
2397    pub fn begin_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2399    }
2400    #[inline]
2401    pub fn start_token(&self) -> Option<SyntaxToken> {
2402        support::token(&self.syntax, SyntaxKind::START_KW)
2403    }
2404    #[inline]
2405    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2406        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2407    }
2408    #[inline]
2409    pub fn work_token(&self) -> Option<SyntaxToken> {
2410        support::token(&self.syntax, SyntaxKind::WORK_KW)
2411    }
2412}
2413
2414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2415pub struct BeginFuncOption {
2416    pub(crate) syntax: SyntaxNode,
2417}
2418impl BeginFuncOption {
2419    #[inline]
2420    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2421        support::child(&self.syntax)
2422    }
2423    #[inline]
2424    pub fn stmt(&self) -> Option<Stmt> {
2425        support::child(&self.syntax)
2426    }
2427    #[inline]
2428    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2429        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2430    }
2431}
2432
2433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2434pub struct BeginFuncOptionList {
2435    pub(crate) syntax: SyntaxNode,
2436}
2437impl BeginFuncOptionList {
2438    #[inline]
2439    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2440        support::children(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2445    }
2446    #[inline]
2447    pub fn begin_token(&self) -> Option<SyntaxToken> {
2448        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2449    }
2450    #[inline]
2451    pub fn end_token(&self) -> Option<SyntaxToken> {
2452        support::token(&self.syntax, SyntaxKind::END_KW)
2453    }
2454}
2455
2456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2457pub struct BetweenExpr {
2458    pub(crate) syntax: SyntaxNode,
2459}
2460impl BetweenExpr {
2461    #[inline]
2462    pub fn and_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::AND_KW)
2464    }
2465    #[inline]
2466    pub fn between_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2468    }
2469    #[inline]
2470    pub fn not_token(&self) -> Option<SyntaxToken> {
2471        support::token(&self.syntax, SyntaxKind::NOT_KW)
2472    }
2473    #[inline]
2474    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
2475        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
2476    }
2477}
2478
2479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2480pub struct BinExpr {
2481    pub(crate) syntax: SyntaxNode,
2482}
2483impl BinExpr {}
2484
2485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2486pub struct BitType {
2487    pub(crate) syntax: SyntaxNode,
2488}
2489impl BitType {
2490    #[inline]
2491    pub fn arg_list(&self) -> Option<ArgList> {
2492        support::child(&self.syntax)
2493    }
2494    #[inline]
2495    pub fn bit_token(&self) -> Option<SyntaxToken> {
2496        support::token(&self.syntax, SyntaxKind::BIT_KW)
2497    }
2498    #[inline]
2499    pub fn setof_token(&self) -> Option<SyntaxToken> {
2500        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2501    }
2502    #[inline]
2503    pub fn varying_token(&self) -> Option<SyntaxToken> {
2504        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2505    }
2506}
2507
2508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2509pub struct Call {
2510    pub(crate) syntax: SyntaxNode,
2511}
2512impl Call {
2513    #[inline]
2514    pub fn arg_list(&self) -> Option<ArgList> {
2515        support::child(&self.syntax)
2516    }
2517    #[inline]
2518    pub fn path(&self) -> Option<Path> {
2519        support::child(&self.syntax)
2520    }
2521    #[inline]
2522    pub fn call_token(&self) -> Option<SyntaxToken> {
2523        support::token(&self.syntax, SyntaxKind::CALL_KW)
2524    }
2525}
2526
2527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2528pub struct CallExpr {
2529    pub(crate) syntax: SyntaxNode,
2530}
2531impl CallExpr {
2532    #[inline]
2533    pub fn all_fn(&self) -> Option<AllFn> {
2534        support::child(&self.syntax)
2535    }
2536    #[inline]
2537    pub fn any_fn(&self) -> Option<AnyFn> {
2538        support::child(&self.syntax)
2539    }
2540    #[inline]
2541    pub fn arg_list(&self) -> Option<ArgList> {
2542        support::child(&self.syntax)
2543    }
2544    #[inline]
2545    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2546        support::child(&self.syntax)
2547    }
2548    #[inline]
2549    pub fn exists_fn(&self) -> Option<ExistsFn> {
2550        support::child(&self.syntax)
2551    }
2552    #[inline]
2553    pub fn expr(&self) -> Option<Expr> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn extract_fn(&self) -> Option<ExtractFn> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn filter_clause(&self) -> Option<FilterClause> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn json_fn(&self) -> Option<JsonFn> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn over_clause(&self) -> Option<OverClause> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn position_fn(&self) -> Option<PositionFn> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn some_fn(&self) -> Option<SomeFn> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn substring_fn(&self) -> Option<SubstringFn> {
2626        support::child(&self.syntax)
2627    }
2628    #[inline]
2629    pub fn trim_fn(&self) -> Option<TrimFn> {
2630        support::child(&self.syntax)
2631    }
2632    #[inline]
2633    pub fn within_clause(&self) -> Option<WithinClause> {
2634        support::child(&self.syntax)
2635    }
2636    #[inline]
2637    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2638        support::child(&self.syntax)
2639    }
2640    #[inline]
2641    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2642        support::child(&self.syntax)
2643    }
2644    #[inline]
2645    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2646        support::child(&self.syntax)
2647    }
2648    #[inline]
2649    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2650        support::child(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2654        support::child(&self.syntax)
2655    }
2656    #[inline]
2657    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2658        support::child(&self.syntax)
2659    }
2660    #[inline]
2661    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2662        support::child(&self.syntax)
2663    }
2664}
2665
2666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2667pub struct Cascade {
2668    pub(crate) syntax: SyntaxNode,
2669}
2670impl Cascade {
2671    #[inline]
2672    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2673        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2674    }
2675}
2676
2677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2678pub struct CaseExpr {
2679    pub(crate) syntax: SyntaxNode,
2680}
2681impl CaseExpr {
2682    #[inline]
2683    pub fn else_clause(&self) -> Option<ElseClause> {
2684        support::child(&self.syntax)
2685    }
2686    #[inline]
2687    pub fn expr(&self) -> Option<Expr> {
2688        support::child(&self.syntax)
2689    }
2690    #[inline]
2691    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2692        support::child(&self.syntax)
2693    }
2694    #[inline]
2695    pub fn case_token(&self) -> Option<SyntaxToken> {
2696        support::token(&self.syntax, SyntaxKind::CASE_KW)
2697    }
2698}
2699
2700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2701pub struct CastExpr {
2702    pub(crate) syntax: SyntaxNode,
2703}
2704impl CastExpr {
2705    #[inline]
2706    pub fn colon_colon(&self) -> Option<ColonColon> {
2707        support::child(&self.syntax)
2708    }
2709    #[inline]
2710    pub fn expr(&self) -> Option<Expr> {
2711        support::child(&self.syntax)
2712    }
2713    #[inline]
2714    pub fn literal(&self) -> Option<Literal> {
2715        support::child(&self.syntax)
2716    }
2717    #[inline]
2718    pub fn ty(&self) -> Option<Type> {
2719        support::child(&self.syntax)
2720    }
2721    #[inline]
2722    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::L_PAREN)
2724    }
2725    #[inline]
2726    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::R_PAREN)
2728    }
2729    #[inline]
2730    pub fn as_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::AS_KW)
2732    }
2733    #[inline]
2734    pub fn cast_token(&self) -> Option<SyntaxToken> {
2735        support::token(&self.syntax, SyntaxKind::CAST_KW)
2736    }
2737    #[inline]
2738    pub fn treat_token(&self) -> Option<SyntaxToken> {
2739        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2740    }
2741}
2742
2743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2744pub struct CastSig {
2745    pub(crate) syntax: SyntaxNode,
2746}
2747impl CastSig {
2748    #[inline]
2749    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::L_PAREN)
2751    }
2752    #[inline]
2753    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2754        support::token(&self.syntax, SyntaxKind::R_PAREN)
2755    }
2756    #[inline]
2757    pub fn as_token(&self) -> Option<SyntaxToken> {
2758        support::token(&self.syntax, SyntaxKind::AS_KW)
2759    }
2760}
2761
2762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2763pub struct CharType {
2764    pub(crate) syntax: SyntaxNode,
2765}
2766impl CharType {
2767    #[inline]
2768    pub fn arg_list(&self) -> Option<ArgList> {
2769        support::child(&self.syntax)
2770    }
2771    #[inline]
2772    pub fn char_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2774    }
2775    #[inline]
2776    pub fn character_token(&self) -> Option<SyntaxToken> {
2777        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2778    }
2779    #[inline]
2780    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2782    }
2783    #[inline]
2784    pub fn setof_token(&self) -> Option<SyntaxToken> {
2785        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2786    }
2787    #[inline]
2788    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2789        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2790    }
2791    #[inline]
2792    pub fn varying_token(&self) -> Option<SyntaxToken> {
2793        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2794    }
2795}
2796
2797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2798pub struct CheckConstraint {
2799    pub(crate) syntax: SyntaxNode,
2800}
2801impl CheckConstraint {
2802    #[inline]
2803    pub fn constraint_name(&self) -> Option<ConstraintName> {
2804        support::child(&self.syntax)
2805    }
2806    #[inline]
2807    pub fn expr(&self) -> Option<Expr> {
2808        support::child(&self.syntax)
2809    }
2810    #[inline]
2811    pub fn no_inherit(&self) -> Option<NoInherit> {
2812        support::child(&self.syntax)
2813    }
2814    #[inline]
2815    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2816        support::token(&self.syntax, SyntaxKind::L_PAREN)
2817    }
2818    #[inline]
2819    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2820        support::token(&self.syntax, SyntaxKind::R_PAREN)
2821    }
2822    #[inline]
2823    pub fn check_token(&self) -> Option<SyntaxToken> {
2824        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2825    }
2826}
2827
2828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2829pub struct Checkpoint {
2830    pub(crate) syntax: SyntaxNode,
2831}
2832impl Checkpoint {
2833    #[inline]
2834    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2835        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2836    }
2837}
2838
2839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2840pub struct Close {
2841    pub(crate) syntax: SyntaxNode,
2842}
2843impl Close {
2844    #[inline]
2845    pub fn name_ref(&self) -> Option<NameRef> {
2846        support::child(&self.syntax)
2847    }
2848    #[inline]
2849    pub fn close_token(&self) -> Option<SyntaxToken> {
2850        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2851    }
2852}
2853
2854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2855pub struct Cluster {
2856    pub(crate) syntax: SyntaxNode,
2857}
2858impl Cluster {
2859    #[inline]
2860    pub fn option_item_list(&self) -> Option<OptionItemList> {
2861        support::child(&self.syntax)
2862    }
2863    #[inline]
2864    pub fn path(&self) -> Option<Path> {
2865        support::child(&self.syntax)
2866    }
2867    #[inline]
2868    pub fn using_method(&self) -> Option<UsingMethod> {
2869        support::child(&self.syntax)
2870    }
2871    #[inline]
2872    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2873        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2874    }
2875    #[inline]
2876    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2877        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2878    }
2879}
2880
2881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2882pub struct ClusterOn {
2883    pub(crate) syntax: SyntaxNode,
2884}
2885impl ClusterOn {
2886    #[inline]
2887    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2888        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2889    }
2890    #[inline]
2891    pub fn on_token(&self) -> Option<SyntaxToken> {
2892        support::token(&self.syntax, SyntaxKind::ON_KW)
2893    }
2894}
2895
2896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2897pub struct Collate {
2898    pub(crate) syntax: SyntaxNode,
2899}
2900impl Collate {
2901    #[inline]
2902    pub fn path(&self) -> Option<Path> {
2903        support::child(&self.syntax)
2904    }
2905    #[inline]
2906    pub fn collate_token(&self) -> Option<SyntaxToken> {
2907        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2908    }
2909}
2910
2911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2912pub struct CollationForFn {
2913    pub(crate) syntax: SyntaxNode,
2914}
2915impl CollationForFn {
2916    #[inline]
2917    pub fn expr(&self) -> Option<Expr> {
2918        support::child(&self.syntax)
2919    }
2920    #[inline]
2921    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2922        support::token(&self.syntax, SyntaxKind::L_PAREN)
2923    }
2924    #[inline]
2925    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2926        support::token(&self.syntax, SyntaxKind::R_PAREN)
2927    }
2928    #[inline]
2929    pub fn collation_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2931    }
2932    #[inline]
2933    pub fn for_token(&self) -> Option<SyntaxToken> {
2934        support::token(&self.syntax, SyntaxKind::FOR_KW)
2935    }
2936}
2937
2938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2939pub struct ColonColon {
2940    pub(crate) syntax: SyntaxNode,
2941}
2942impl ColonColon {
2943    #[inline]
2944    pub fn colon_token(&self) -> Option<SyntaxToken> {
2945        support::token(&self.syntax, SyntaxKind::COLON)
2946    }
2947}
2948
2949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2950pub struct ColonEq {
2951    pub(crate) syntax: SyntaxNode,
2952}
2953impl ColonEq {
2954    #[inline]
2955    pub fn colon_token(&self) -> Option<SyntaxToken> {
2956        support::token(&self.syntax, SyntaxKind::COLON)
2957    }
2958    #[inline]
2959    pub fn eq_token(&self) -> Option<SyntaxToken> {
2960        support::token(&self.syntax, SyntaxKind::EQ)
2961    }
2962}
2963
2964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2965pub struct Column {
2966    pub(crate) syntax: SyntaxNode,
2967}
2968impl Column {
2969    #[inline]
2970    pub fn collate(&self) -> Option<Collate> {
2971        support::child(&self.syntax)
2972    }
2973    #[inline]
2974    pub fn compression_method(&self) -> Option<CompressionMethod> {
2975        support::child(&self.syntax)
2976    }
2977    #[inline]
2978    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2979        support::children(&self.syntax)
2980    }
2981    #[inline]
2982    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2983        support::child(&self.syntax)
2984    }
2985    #[inline]
2986    pub fn enforced(&self) -> Option<Enforced> {
2987        support::child(&self.syntax)
2988    }
2989    #[inline]
2990    pub fn index_expr(&self) -> Option<IndexExpr> {
2991        support::child(&self.syntax)
2992    }
2993    #[inline]
2994    pub fn initially_deferred_constraint_option(
2995        &self,
2996    ) -> Option<InitiallyDeferredConstraintOption> {
2997        support::child(&self.syntax)
2998    }
2999    #[inline]
3000    pub fn initially_immediate_constraint_option(
3001        &self,
3002    ) -> Option<InitiallyImmediateConstraintOption> {
3003        support::child(&self.syntax)
3004    }
3005    #[inline]
3006    pub fn name(&self) -> Option<Name> {
3007        support::child(&self.syntax)
3008    }
3009    #[inline]
3010    pub fn name_ref(&self) -> Option<NameRef> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn not_enforced(&self) -> Option<NotEnforced> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn storage(&self) -> Option<Storage> {
3023        support::child(&self.syntax)
3024    }
3025    #[inline]
3026    pub fn ty(&self) -> Option<Type> {
3027        support::child(&self.syntax)
3028    }
3029    #[inline]
3030    pub fn with_options(&self) -> Option<WithOptions> {
3031        support::child(&self.syntax)
3032    }
3033    #[inline]
3034    pub fn period_token(&self) -> Option<SyntaxToken> {
3035        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3036    }
3037}
3038
3039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3040pub struct ColumnList {
3041    pub(crate) syntax: SyntaxNode,
3042}
3043impl ColumnList {
3044    #[inline]
3045    pub fn columns(&self) -> AstChildren<Column> {
3046        support::children(&self.syntax)
3047    }
3048    #[inline]
3049    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3050        support::token(&self.syntax, SyntaxKind::L_PAREN)
3051    }
3052    #[inline]
3053    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::R_PAREN)
3055    }
3056}
3057
3058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3059pub struct CommentOn {
3060    pub(crate) syntax: SyntaxNode,
3061}
3062impl CommentOn {
3063    #[inline]
3064    pub fn aggregate(&self) -> Option<Aggregate> {
3065        support::child(&self.syntax)
3066    }
3067    #[inline]
3068    pub fn cast_sig(&self) -> Option<CastSig> {
3069        support::child(&self.syntax)
3070    }
3071    #[inline]
3072    pub fn function_sig(&self) -> Option<FunctionSig> {
3073        support::child(&self.syntax)
3074    }
3075    #[inline]
3076    pub fn literal(&self) -> Option<Literal> {
3077        support::child(&self.syntax)
3078    }
3079    #[inline]
3080    pub fn name_ref(&self) -> Option<NameRef> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn op(&self) -> Option<Op> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn path(&self) -> Option<Path> {
3089        support::child(&self.syntax)
3090    }
3091    #[inline]
3092    pub fn ty(&self) -> Option<Type> {
3093        support::child(&self.syntax)
3094    }
3095    #[inline]
3096    pub fn using_method(&self) -> Option<UsingMethod> {
3097        support::child(&self.syntax)
3098    }
3099    #[inline]
3100    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::L_PAREN)
3102    }
3103    #[inline]
3104    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::R_PAREN)
3106    }
3107    #[inline]
3108    pub fn comma_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::COMMA)
3110    }
3111    #[inline]
3112    pub fn access_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3114    }
3115    #[inline]
3116    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3118    }
3119    #[inline]
3120    pub fn cast_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::CAST_KW)
3122    }
3123    #[inline]
3124    pub fn class_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3126    }
3127    #[inline]
3128    pub fn collation_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3130    }
3131    #[inline]
3132    pub fn column_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3134    }
3135    #[inline]
3136    pub fn comment_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3138    }
3139    #[inline]
3140    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3142    }
3143    #[inline]
3144    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3146    }
3147    #[inline]
3148    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3150    }
3151    #[inline]
3152    pub fn data_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::DATA_KW)
3154    }
3155    #[inline]
3156    pub fn database_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3158    }
3159    #[inline]
3160    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3161        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3162    }
3163    #[inline]
3164    pub fn domain_token(&self) -> Option<SyntaxToken> {
3165        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3166    }
3167    #[inline]
3168    pub fn event_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3170    }
3171    #[inline]
3172    pub fn extension_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3174    }
3175    #[inline]
3176    pub fn family_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3178    }
3179    #[inline]
3180    pub fn for_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::FOR_KW)
3182    }
3183    #[inline]
3184    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3186    }
3187    #[inline]
3188    pub fn function_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3190    }
3191    #[inline]
3192    pub fn graph_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3194    }
3195    #[inline]
3196    pub fn index_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3198    }
3199    #[inline]
3200    pub fn is_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::IS_KW)
3202    }
3203    #[inline]
3204    pub fn language_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3206    }
3207    #[inline]
3208    pub fn large_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3210    }
3211    #[inline]
3212    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3214    }
3215    #[inline]
3216    pub fn method_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3218    }
3219    #[inline]
3220    pub fn null_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::NULL_KW)
3222    }
3223    #[inline]
3224    pub fn object_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3226    }
3227    #[inline]
3228    pub fn on_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::ON_KW)
3230    }
3231    #[inline]
3232    pub fn operator_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3234    }
3235    #[inline]
3236    pub fn parser_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3238    }
3239    #[inline]
3240    pub fn policy_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3242    }
3243    #[inline]
3244    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3246    }
3247    #[inline]
3248    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3250    }
3251    #[inline]
3252    pub fn property_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3254    }
3255    #[inline]
3256    pub fn publication_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3258    }
3259    #[inline]
3260    pub fn role_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3262    }
3263    #[inline]
3264    pub fn routine_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3266    }
3267    #[inline]
3268    pub fn rule_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::RULE_KW)
3270    }
3271    #[inline]
3272    pub fn schema_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3274    }
3275    #[inline]
3276    pub fn search_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3278    }
3279    #[inline]
3280    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3282    }
3283    #[inline]
3284    pub fn server_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3286    }
3287    #[inline]
3288    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3289        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3290    }
3291    #[inline]
3292    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3294    }
3295    #[inline]
3296    pub fn table_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3298    }
3299    #[inline]
3300    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3302    }
3303    #[inline]
3304    pub fn template_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3306    }
3307    #[inline]
3308    pub fn text_token(&self) -> Option<SyntaxToken> {
3309        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3310    }
3311    #[inline]
3312    pub fn transform_token(&self) -> Option<SyntaxToken> {
3313        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3314    }
3315    #[inline]
3316    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3318    }
3319    #[inline]
3320    pub fn type_token(&self) -> Option<SyntaxToken> {
3321        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3322    }
3323    #[inline]
3324    pub fn view_token(&self) -> Option<SyntaxToken> {
3325        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3326    }
3327    #[inline]
3328    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3329        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3330    }
3331}
3332
3333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3334pub struct Commit {
3335    pub(crate) syntax: SyntaxNode,
3336}
3337impl Commit {
3338    #[inline]
3339    pub fn literal(&self) -> Option<Literal> {
3340        support::child(&self.syntax)
3341    }
3342    #[inline]
3343    pub fn and_token(&self) -> Option<SyntaxToken> {
3344        support::token(&self.syntax, SyntaxKind::AND_KW)
3345    }
3346    #[inline]
3347    pub fn chain_token(&self) -> Option<SyntaxToken> {
3348        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3349    }
3350    #[inline]
3351    pub fn commit_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3353    }
3354    #[inline]
3355    pub fn no_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::NO_KW)
3357    }
3358    #[inline]
3359    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3360        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3361    }
3362    #[inline]
3363    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3365    }
3366    #[inline]
3367    pub fn work_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::WORK_KW)
3369    }
3370}
3371
3372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3373pub struct CompoundSelect {
3374    pub(crate) syntax: SyntaxNode,
3375}
3376impl CompoundSelect {
3377    #[inline]
3378    pub fn all_token(&self) -> Option<SyntaxToken> {
3379        support::token(&self.syntax, SyntaxKind::ALL_KW)
3380    }
3381    #[inline]
3382    pub fn except_token(&self) -> Option<SyntaxToken> {
3383        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3384    }
3385    #[inline]
3386    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3387        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3388    }
3389    #[inline]
3390    pub fn union_token(&self) -> Option<SyntaxToken> {
3391        support::token(&self.syntax, SyntaxKind::UNION_KW)
3392    }
3393}
3394
3395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3396pub struct CompressionMethod {
3397    pub(crate) syntax: SyntaxNode,
3398}
3399impl CompressionMethod {
3400    #[inline]
3401    pub fn compression_token(&self) -> Option<SyntaxToken> {
3402        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3403    }
3404    #[inline]
3405    pub fn default_token(&self) -> Option<SyntaxToken> {
3406        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3407    }
3408    #[inline]
3409    pub fn ident_token(&self) -> Option<SyntaxToken> {
3410        support::token(&self.syntax, SyntaxKind::IDENT)
3411    }
3412}
3413
3414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3415pub struct ConflictDoNothing {
3416    pub(crate) syntax: SyntaxNode,
3417}
3418impl ConflictDoNothing {
3419    #[inline]
3420    pub fn do_token(&self) -> Option<SyntaxToken> {
3421        support::token(&self.syntax, SyntaxKind::DO_KW)
3422    }
3423    #[inline]
3424    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3425        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3426    }
3427}
3428
3429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3430pub struct ConflictDoSelect {
3431    pub(crate) syntax: SyntaxNode,
3432}
3433impl ConflictDoSelect {
3434    #[inline]
3435    pub fn locking_clause(&self) -> Option<LockingClause> {
3436        support::child(&self.syntax)
3437    }
3438    #[inline]
3439    pub fn where_clause(&self) -> Option<WhereClause> {
3440        support::child(&self.syntax)
3441    }
3442    #[inline]
3443    pub fn do_token(&self) -> Option<SyntaxToken> {
3444        support::token(&self.syntax, SyntaxKind::DO_KW)
3445    }
3446    #[inline]
3447    pub fn select_token(&self) -> Option<SyntaxToken> {
3448        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3449    }
3450}
3451
3452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3453pub struct ConflictDoUpdateSet {
3454    pub(crate) syntax: SyntaxNode,
3455}
3456impl ConflictDoUpdateSet {
3457    #[inline]
3458    pub fn set_clause(&self) -> Option<SetClause> {
3459        support::child(&self.syntax)
3460    }
3461    #[inline]
3462    pub fn where_clause(&self) -> Option<WhereClause> {
3463        support::child(&self.syntax)
3464    }
3465    #[inline]
3466    pub fn do_token(&self) -> Option<SyntaxToken> {
3467        support::token(&self.syntax, SyntaxKind::DO_KW)
3468    }
3469    #[inline]
3470    pub fn update_token(&self) -> Option<SyntaxToken> {
3471        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3472    }
3473}
3474
3475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3476pub struct ConflictIndexItem {
3477    pub(crate) syntax: SyntaxNode,
3478}
3479impl ConflictIndexItem {
3480    #[inline]
3481    pub fn collate(&self) -> Option<Collate> {
3482        support::child(&self.syntax)
3483    }
3484    #[inline]
3485    pub fn expr(&self) -> Option<Expr> {
3486        support::child(&self.syntax)
3487    }
3488    #[inline]
3489    pub fn ident_token(&self) -> Option<SyntaxToken> {
3490        support::token(&self.syntax, SyntaxKind::IDENT)
3491    }
3492}
3493
3494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3495pub struct ConflictIndexItemList {
3496    pub(crate) syntax: SyntaxNode,
3497}
3498impl ConflictIndexItemList {
3499    #[inline]
3500    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3501        support::children(&self.syntax)
3502    }
3503    #[inline]
3504    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3505        support::token(&self.syntax, SyntaxKind::L_PAREN)
3506    }
3507    #[inline]
3508    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3509        support::token(&self.syntax, SyntaxKind::R_PAREN)
3510    }
3511}
3512
3513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3514pub struct ConflictOnConstraint {
3515    pub(crate) syntax: SyntaxNode,
3516}
3517impl ConflictOnConstraint {
3518    #[inline]
3519    pub fn name_ref(&self) -> Option<NameRef> {
3520        support::child(&self.syntax)
3521    }
3522    #[inline]
3523    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3524        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3525    }
3526    #[inline]
3527    pub fn on_token(&self) -> Option<SyntaxToken> {
3528        support::token(&self.syntax, SyntaxKind::ON_KW)
3529    }
3530}
3531
3532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3533pub struct ConflictOnIndex {
3534    pub(crate) syntax: SyntaxNode,
3535}
3536impl ConflictOnIndex {
3537    #[inline]
3538    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3539        support::child(&self.syntax)
3540    }
3541    #[inline]
3542    pub fn where_clause(&self) -> Option<WhereClause> {
3543        support::child(&self.syntax)
3544    }
3545}
3546
3547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3548pub struct ConstraintExclusion {
3549    pub(crate) syntax: SyntaxNode,
3550}
3551impl ConstraintExclusion {
3552    #[inline]
3553    pub fn expr(&self) -> Option<Expr> {
3554        support::child(&self.syntax)
3555    }
3556    #[inline]
3557    pub fn op(&self) -> Option<Op> {
3558        support::child(&self.syntax)
3559    }
3560    #[inline]
3561    pub fn with_token(&self) -> Option<SyntaxToken> {
3562        support::token(&self.syntax, SyntaxKind::WITH_KW)
3563    }
3564}
3565
3566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3567pub struct ConstraintExclusionList {
3568    pub(crate) syntax: SyntaxNode,
3569}
3570impl ConstraintExclusionList {
3571    #[inline]
3572    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3573        support::children(&self.syntax)
3574    }
3575    #[inline]
3576    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3577        support::token(&self.syntax, SyntaxKind::L_PAREN)
3578    }
3579    #[inline]
3580    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3581        support::token(&self.syntax, SyntaxKind::R_PAREN)
3582    }
3583}
3584
3585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3586pub struct ConstraintIncludeClause {
3587    pub(crate) syntax: SyntaxNode,
3588}
3589impl ConstraintIncludeClause {
3590    #[inline]
3591    pub fn include_token(&self) -> Option<SyntaxToken> {
3592        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3593    }
3594}
3595
3596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3597pub struct ConstraintIndexMethod {
3598    pub(crate) syntax: SyntaxNode,
3599}
3600impl ConstraintIndexMethod {
3601    #[inline]
3602    pub fn using_token(&self) -> Option<SyntaxToken> {
3603        support::token(&self.syntax, SyntaxKind::USING_KW)
3604    }
3605}
3606
3607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3608pub struct ConstraintIndexTablespace {
3609    pub(crate) syntax: SyntaxNode,
3610}
3611impl ConstraintIndexTablespace {
3612    #[inline]
3613    pub fn name_ref(&self) -> Option<NameRef> {
3614        support::child(&self.syntax)
3615    }
3616    #[inline]
3617    pub fn index_token(&self) -> Option<SyntaxToken> {
3618        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3619    }
3620    #[inline]
3621    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3623    }
3624    #[inline]
3625    pub fn using_token(&self) -> Option<SyntaxToken> {
3626        support::token(&self.syntax, SyntaxKind::USING_KW)
3627    }
3628}
3629
3630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3631pub struct ConstraintName {
3632    pub(crate) syntax: SyntaxNode,
3633}
3634impl ConstraintName {
3635    #[inline]
3636    pub fn name(&self) -> Option<Name> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3641        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3642    }
3643}
3644
3645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3646pub struct Copy {
3647    pub(crate) syntax: SyntaxNode,
3648}
3649impl Copy {
3650    #[inline]
3651    pub fn column_list(&self) -> Option<ColumnList> {
3652        support::child(&self.syntax)
3653    }
3654    #[inline]
3655    pub fn literal(&self) -> Option<Literal> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn path(&self) -> Option<Path> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3664        support::child(&self.syntax)
3665    }
3666    #[inline]
3667    pub fn where_clause(&self) -> Option<WhereClause> {
3668        support::child(&self.syntax)
3669    }
3670    #[inline]
3671    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3672        support::token(&self.syntax, SyntaxKind::L_PAREN)
3673    }
3674    #[inline]
3675    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3676        support::token(&self.syntax, SyntaxKind::R_PAREN)
3677    }
3678    #[inline]
3679    pub fn binary_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3681    }
3682    #[inline]
3683    pub fn copy_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::COPY_KW)
3685    }
3686    #[inline]
3687    pub fn from_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::FROM_KW)
3689    }
3690    #[inline]
3691    pub fn program_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3693    }
3694    #[inline]
3695    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3697    }
3698    #[inline]
3699    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3700        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3701    }
3702    #[inline]
3703    pub fn to_token(&self) -> Option<SyntaxToken> {
3704        support::token(&self.syntax, SyntaxKind::TO_KW)
3705    }
3706    #[inline]
3707    pub fn with_token(&self) -> Option<SyntaxToken> {
3708        support::token(&self.syntax, SyntaxKind::WITH_KW)
3709    }
3710}
3711
3712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3713pub struct CopyOption {
3714    pub(crate) syntax: SyntaxNode,
3715}
3716impl CopyOption {
3717    #[inline]
3718    pub fn name(&self) -> Option<Name> {
3719        support::child(&self.syntax)
3720    }
3721}
3722
3723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3724pub struct CopyOptionList {
3725    pub(crate) syntax: SyntaxNode,
3726}
3727impl CopyOptionList {
3728    #[inline]
3729    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3730        support::children(&self.syntax)
3731    }
3732    #[inline]
3733    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3734        support::token(&self.syntax, SyntaxKind::L_PAREN)
3735    }
3736    #[inline]
3737    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3738        support::token(&self.syntax, SyntaxKind::R_PAREN)
3739    }
3740}
3741
3742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3743pub struct CostFuncOption {
3744    pub(crate) syntax: SyntaxNode,
3745}
3746impl CostFuncOption {
3747    #[inline]
3748    pub fn cost_token(&self) -> Option<SyntaxToken> {
3749        support::token(&self.syntax, SyntaxKind::COST_KW)
3750    }
3751}
3752
3753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3754pub struct CreateAccessMethod {
3755    pub(crate) syntax: SyntaxNode,
3756}
3757impl CreateAccessMethod {
3758    #[inline]
3759    pub fn handler_clause(&self) -> Option<HandlerClause> {
3760        support::child(&self.syntax)
3761    }
3762    #[inline]
3763    pub fn name(&self) -> Option<Path> {
3764        support::child(&self.syntax)
3765    }
3766    #[inline]
3767    pub fn access_token(&self) -> Option<SyntaxToken> {
3768        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3769    }
3770    #[inline]
3771    pub fn create_token(&self) -> Option<SyntaxToken> {
3772        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3773    }
3774    #[inline]
3775    pub fn index_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3777    }
3778    #[inline]
3779    pub fn method_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3781    }
3782    #[inline]
3783    pub fn table_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3785    }
3786    #[inline]
3787    pub fn type_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3789    }
3790}
3791
3792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3793pub struct CreateAggregate {
3794    pub(crate) syntax: SyntaxNode,
3795}
3796impl CreateAggregate {
3797    #[inline]
3798    pub fn or_replace(&self) -> Option<OrReplace> {
3799        support::child(&self.syntax)
3800    }
3801    #[inline]
3802    pub fn param_list(&self) -> Option<ParamList> {
3803        support::child(&self.syntax)
3804    }
3805    #[inline]
3806    pub fn path(&self) -> Option<Path> {
3807        support::child(&self.syntax)
3808    }
3809    #[inline]
3810    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3811        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3812    }
3813    #[inline]
3814    pub fn create_token(&self) -> Option<SyntaxToken> {
3815        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3816    }
3817}
3818
3819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3820pub struct CreateCast {
3821    pub(crate) syntax: SyntaxNode,
3822}
3823impl CreateCast {
3824    #[inline]
3825    pub fn cast_sig(&self) -> Option<CastSig> {
3826        support::child(&self.syntax)
3827    }
3828    #[inline]
3829    pub fn function_sig(&self) -> Option<FunctionSig> {
3830        support::child(&self.syntax)
3831    }
3832    #[inline]
3833    pub fn as_token(&self) -> Option<SyntaxToken> {
3834        support::token(&self.syntax, SyntaxKind::AS_KW)
3835    }
3836    #[inline]
3837    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3839    }
3840    #[inline]
3841    pub fn cast_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::CAST_KW)
3843    }
3844    #[inline]
3845    pub fn create_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3847    }
3848    #[inline]
3849    pub fn function_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3851    }
3852    #[inline]
3853    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3855    }
3856    #[inline]
3857    pub fn inout_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3859    }
3860    #[inline]
3861    pub fn with_token(&self) -> Option<SyntaxToken> {
3862        support::token(&self.syntax, SyntaxKind::WITH_KW)
3863    }
3864    #[inline]
3865    pub fn without_token(&self) -> Option<SyntaxToken> {
3866        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3867    }
3868}
3869
3870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3871pub struct CreateCollation {
3872    pub(crate) syntax: SyntaxNode,
3873}
3874impl CreateCollation {
3875    #[inline]
3876    pub fn path(&self) -> Option<Path> {
3877        support::child(&self.syntax)
3878    }
3879    #[inline]
3880    pub fn collation_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3882    }
3883    #[inline]
3884    pub fn create_token(&self) -> Option<SyntaxToken> {
3885        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3886    }
3887}
3888
3889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3890pub struct CreateConversion {
3891    pub(crate) syntax: SyntaxNode,
3892}
3893impl CreateConversion {
3894    #[inline]
3895    pub fn literal(&self) -> Option<Literal> {
3896        support::child(&self.syntax)
3897    }
3898    #[inline]
3899    pub fn path(&self) -> Option<Path> {
3900        support::child(&self.syntax)
3901    }
3902    #[inline]
3903    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3904        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3905    }
3906    #[inline]
3907    pub fn create_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3909    }
3910    #[inline]
3911    pub fn default_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3913    }
3914    #[inline]
3915    pub fn for_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::FOR_KW)
3917    }
3918    #[inline]
3919    pub fn from_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::FROM_KW)
3921    }
3922    #[inline]
3923    pub fn to_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::TO_KW)
3925    }
3926}
3927
3928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3929pub struct CreateDatabase {
3930    pub(crate) syntax: SyntaxNode,
3931}
3932impl CreateDatabase {
3933    #[inline]
3934    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3935        support::child(&self.syntax)
3936    }
3937    #[inline]
3938    pub fn name(&self) -> Option<Name> {
3939        support::child(&self.syntax)
3940    }
3941    #[inline]
3942    pub fn create_token(&self) -> Option<SyntaxToken> {
3943        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3944    }
3945    #[inline]
3946    pub fn database_token(&self) -> Option<SyntaxToken> {
3947        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3948    }
3949}
3950
3951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3952pub struct CreateDatabaseOption {
3953    pub(crate) syntax: SyntaxNode,
3954}
3955impl CreateDatabaseOption {
3956    #[inline]
3957    pub fn literal(&self) -> Option<Literal> {
3958        support::child(&self.syntax)
3959    }
3960    #[inline]
3961    pub fn eq_token(&self) -> Option<SyntaxToken> {
3962        support::token(&self.syntax, SyntaxKind::EQ)
3963    }
3964    #[inline]
3965    pub fn connection_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3967    }
3968    #[inline]
3969    pub fn default_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3971    }
3972    #[inline]
3973    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3975    }
3976    #[inline]
3977    pub fn ident_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::IDENT)
3979    }
3980    #[inline]
3981    pub fn limit_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3983    }
3984    #[inline]
3985    pub fn owner_token(&self) -> Option<SyntaxToken> {
3986        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3987    }
3988    #[inline]
3989    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3990        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3991    }
3992    #[inline]
3993    pub fn template_token(&self) -> Option<SyntaxToken> {
3994        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3995    }
3996}
3997
3998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3999pub struct CreateDatabaseOptionList {
4000    pub(crate) syntax: SyntaxNode,
4001}
4002impl CreateDatabaseOptionList {
4003    #[inline]
4004    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4005        support::children(&self.syntax)
4006    }
4007    #[inline]
4008    pub fn with_token(&self) -> Option<SyntaxToken> {
4009        support::token(&self.syntax, SyntaxKind::WITH_KW)
4010    }
4011}
4012
4013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4014pub struct CreateDomain {
4015    pub(crate) syntax: SyntaxNode,
4016}
4017impl CreateDomain {
4018    #[inline]
4019    pub fn collate(&self) -> Option<Collate> {
4020        support::child(&self.syntax)
4021    }
4022    #[inline]
4023    pub fn constraints(&self) -> AstChildren<Constraint> {
4024        support::children(&self.syntax)
4025    }
4026    #[inline]
4027    pub fn path(&self) -> Option<Path> {
4028        support::child(&self.syntax)
4029    }
4030    #[inline]
4031    pub fn ty(&self) -> Option<Type> {
4032        support::child(&self.syntax)
4033    }
4034    #[inline]
4035    pub fn as_token(&self) -> Option<SyntaxToken> {
4036        support::token(&self.syntax, SyntaxKind::AS_KW)
4037    }
4038    #[inline]
4039    pub fn create_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4041    }
4042    #[inline]
4043    pub fn domain_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4045    }
4046}
4047
4048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4049pub struct CreateEventTrigger {
4050    pub(crate) syntax: SyntaxNode,
4051}
4052impl CreateEventTrigger {
4053    #[inline]
4054    pub fn call_expr(&self) -> Option<CallExpr> {
4055        support::child(&self.syntax)
4056    }
4057    #[inline]
4058    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn name(&self) -> Option<Name> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn name_ref(&self) -> Option<NameRef> {
4067        support::child(&self.syntax)
4068    }
4069    #[inline]
4070    pub fn create_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4072    }
4073    #[inline]
4074    pub fn event_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4076    }
4077    #[inline]
4078    pub fn execute_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4080    }
4081    #[inline]
4082    pub fn function_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4084    }
4085    #[inline]
4086    pub fn on_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::ON_KW)
4088    }
4089    #[inline]
4090    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4092    }
4093    #[inline]
4094    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4096    }
4097}
4098
4099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4100pub struct CreateExtension {
4101    pub(crate) syntax: SyntaxNode,
4102}
4103impl CreateExtension {
4104    #[inline]
4105    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4106        support::child(&self.syntax)
4107    }
4108    #[inline]
4109    pub fn name(&self) -> Option<Name> {
4110        support::child(&self.syntax)
4111    }
4112    #[inline]
4113    pub fn create_token(&self) -> Option<SyntaxToken> {
4114        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4115    }
4116    #[inline]
4117    pub fn extension_token(&self) -> Option<SyntaxToken> {
4118        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4119    }
4120}
4121
4122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4123pub struct CreateForeignDataWrapper {
4124    pub(crate) syntax: SyntaxNode,
4125}
4126impl CreateForeignDataWrapper {
4127    #[inline]
4128    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4129        support::child(&self.syntax)
4130    }
4131    #[inline]
4132    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4133        support::child(&self.syntax)
4134    }
4135    #[inline]
4136    pub fn name(&self) -> Option<Name> {
4137        support::child(&self.syntax)
4138    }
4139    #[inline]
4140    pub fn create_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4142    }
4143    #[inline]
4144    pub fn data_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::DATA_KW)
4146    }
4147    #[inline]
4148    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4150    }
4151    #[inline]
4152    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4154    }
4155}
4156
4157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4158pub struct CreateForeignTable {
4159    pub(crate) syntax: SyntaxNode,
4160}
4161impl CreateForeignTable {
4162    #[inline]
4163    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4164        support::child(&self.syntax)
4165    }
4166    #[inline]
4167    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn inherits(&self) -> Option<Inherits> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn partition_of(&self) -> Option<PartitionOf> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn partition_type(&self) -> Option<PartitionType> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn path(&self) -> Option<Path> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn server_name(&self) -> Option<ServerName> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn table_arg_list(&self) -> Option<TableArgList> {
4192        support::child(&self.syntax)
4193    }
4194    #[inline]
4195    pub fn create_token(&self) -> Option<SyntaxToken> {
4196        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4197    }
4198    #[inline]
4199    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4200        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4201    }
4202    #[inline]
4203    pub fn table_token(&self) -> Option<SyntaxToken> {
4204        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4205    }
4206}
4207
4208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4209pub struct CreateFunction {
4210    pub(crate) syntax: SyntaxNode,
4211}
4212impl CreateFunction {
4213    #[inline]
4214    pub fn option_list(&self) -> Option<FuncOptionList> {
4215        support::child(&self.syntax)
4216    }
4217    #[inline]
4218    pub fn or_replace(&self) -> Option<OrReplace> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn param_list(&self) -> Option<ParamList> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn path(&self) -> Option<Path> {
4227        support::child(&self.syntax)
4228    }
4229    #[inline]
4230    pub fn ret_type(&self) -> Option<RetType> {
4231        support::child(&self.syntax)
4232    }
4233    #[inline]
4234    pub fn create_token(&self) -> Option<SyntaxToken> {
4235        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4236    }
4237    #[inline]
4238    pub fn function_token(&self) -> Option<SyntaxToken> {
4239        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4240    }
4241}
4242
4243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4244pub struct CreateGroup {
4245    pub(crate) syntax: SyntaxNode,
4246}
4247impl CreateGroup {
4248    #[inline]
4249    pub fn name(&self) -> Option<Name> {
4250        support::child(&self.syntax)
4251    }
4252    #[inline]
4253    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4254        support::child(&self.syntax)
4255    }
4256    #[inline]
4257    pub fn create_token(&self) -> Option<SyntaxToken> {
4258        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4259    }
4260    #[inline]
4261    pub fn group_token(&self) -> Option<SyntaxToken> {
4262        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4263    }
4264}
4265
4266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4267pub struct CreateIndex {
4268    pub(crate) syntax: SyntaxNode,
4269}
4270impl CreateIndex {
4271    #[inline]
4272    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4273        support::child(&self.syntax)
4274    }
4275    #[inline]
4276    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4277        support::child(&self.syntax)
4278    }
4279    #[inline]
4280    pub fn name(&self) -> Option<Name> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn relation_name(&self) -> Option<RelationName> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn tablespace(&self) -> Option<Tablespace> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn using_method(&self) -> Option<UsingMethod> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn where_clause(&self) -> Option<WhereClause> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn with_params(&self) -> Option<WithParams> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4317        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4318    }
4319    #[inline]
4320    pub fn create_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4322    }
4323    #[inline]
4324    pub fn index_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4326    }
4327    #[inline]
4328    pub fn on_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::ON_KW)
4330    }
4331    #[inline]
4332    pub fn unique_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4334    }
4335}
4336
4337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4338pub struct CreateLanguage {
4339    pub(crate) syntax: SyntaxNode,
4340}
4341impl CreateLanguage {
4342    #[inline]
4343    pub fn name(&self) -> Option<Name> {
4344        support::child(&self.syntax)
4345    }
4346    #[inline]
4347    pub fn or_replace(&self) -> Option<OrReplace> {
4348        support::child(&self.syntax)
4349    }
4350    #[inline]
4351    pub fn path(&self) -> Option<Path> {
4352        support::child(&self.syntax)
4353    }
4354    #[inline]
4355    pub fn create_token(&self) -> Option<SyntaxToken> {
4356        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4357    }
4358    #[inline]
4359    pub fn handler_token(&self) -> Option<SyntaxToken> {
4360        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4361    }
4362    #[inline]
4363    pub fn inline_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4365    }
4366    #[inline]
4367    pub fn language_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4369    }
4370    #[inline]
4371    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4372        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4373    }
4374    #[inline]
4375    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4376        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4377    }
4378    #[inline]
4379    pub fn validator_token(&self) -> Option<SyntaxToken> {
4380        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4381    }
4382}
4383
4384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4385pub struct CreateMaterializedView {
4386    pub(crate) syntax: SyntaxNode,
4387}
4388impl CreateMaterializedView {
4389    #[inline]
4390    pub fn column_list(&self) -> Option<ColumnList> {
4391        support::child(&self.syntax)
4392    }
4393    #[inline]
4394    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4395        support::child(&self.syntax)
4396    }
4397    #[inline]
4398    pub fn path(&self) -> Option<Path> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn query(&self) -> Option<SelectVariant> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn tablespace(&self) -> Option<Tablespace> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn using_method(&self) -> Option<UsingMethod> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn with_data(&self) -> Option<WithData> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn with_no_data(&self) -> Option<WithNoData> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn with_params(&self) -> Option<WithParams> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn as_token(&self) -> Option<SyntaxToken> {
4427        support::token(&self.syntax, SyntaxKind::AS_KW)
4428    }
4429    #[inline]
4430    pub fn create_token(&self) -> Option<SyntaxToken> {
4431        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4432    }
4433    #[inline]
4434    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4435        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4436    }
4437    #[inline]
4438    pub fn view_token(&self) -> Option<SyntaxToken> {
4439        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4440    }
4441}
4442
4443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4444pub struct CreateOperator {
4445    pub(crate) syntax: SyntaxNode,
4446}
4447impl CreateOperator {
4448    #[inline]
4449    pub fn attribute_list(&self) -> Option<AttributeList> {
4450        support::child(&self.syntax)
4451    }
4452    #[inline]
4453    pub fn op(&self) -> Option<Op> {
4454        support::child(&self.syntax)
4455    }
4456    #[inline]
4457    pub fn path(&self) -> Option<Path> {
4458        support::child(&self.syntax)
4459    }
4460    #[inline]
4461    pub fn create_token(&self) -> Option<SyntaxToken> {
4462        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4463    }
4464    #[inline]
4465    pub fn operator_token(&self) -> Option<SyntaxToken> {
4466        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4467    }
4468}
4469
4470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4471pub struct CreateOperatorClass {
4472    pub(crate) syntax: SyntaxNode,
4473}
4474impl CreateOperatorClass {
4475    #[inline]
4476    pub fn name_ref(&self) -> Option<NameRef> {
4477        support::child(&self.syntax)
4478    }
4479    #[inline]
4480    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4481        support::child(&self.syntax)
4482    }
4483    #[inline]
4484    pub fn path(&self) -> Option<Path> {
4485        support::child(&self.syntax)
4486    }
4487    #[inline]
4488    pub fn ty(&self) -> Option<Type> {
4489        support::child(&self.syntax)
4490    }
4491    #[inline]
4492    pub fn as_token(&self) -> Option<SyntaxToken> {
4493        support::token(&self.syntax, SyntaxKind::AS_KW)
4494    }
4495    #[inline]
4496    pub fn class_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4498    }
4499    #[inline]
4500    pub fn create_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4502    }
4503    #[inline]
4504    pub fn default_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4506    }
4507    #[inline]
4508    pub fn family_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4510    }
4511    #[inline]
4512    pub fn for_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::FOR_KW)
4514    }
4515    #[inline]
4516    pub fn operator_token(&self) -> Option<SyntaxToken> {
4517        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4518    }
4519    #[inline]
4520    pub fn type_token(&self) -> Option<SyntaxToken> {
4521        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4522    }
4523    #[inline]
4524    pub fn using_token(&self) -> Option<SyntaxToken> {
4525        support::token(&self.syntax, SyntaxKind::USING_KW)
4526    }
4527}
4528
4529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4530pub struct CreateOperatorFamily {
4531    pub(crate) syntax: SyntaxNode,
4532}
4533impl CreateOperatorFamily {
4534    #[inline]
4535    pub fn name_ref(&self) -> Option<NameRef> {
4536        support::child(&self.syntax)
4537    }
4538    #[inline]
4539    pub fn path(&self) -> Option<Path> {
4540        support::child(&self.syntax)
4541    }
4542    #[inline]
4543    pub fn create_token(&self) -> Option<SyntaxToken> {
4544        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4545    }
4546    #[inline]
4547    pub fn family_token(&self) -> Option<SyntaxToken> {
4548        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4549    }
4550    #[inline]
4551    pub fn operator_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4553    }
4554    #[inline]
4555    pub fn using_token(&self) -> Option<SyntaxToken> {
4556        support::token(&self.syntax, SyntaxKind::USING_KW)
4557    }
4558}
4559
4560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4561pub struct CreatePolicy {
4562    pub(crate) syntax: SyntaxNode,
4563}
4564impl CreatePolicy {
4565    #[inline]
4566    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4567        support::child(&self.syntax)
4568    }
4569    #[inline]
4570    pub fn name(&self) -> Option<Name> {
4571        support::child(&self.syntax)
4572    }
4573    #[inline]
4574    pub fn on_table(&self) -> Option<OnTable> {
4575        support::child(&self.syntax)
4576    }
4577    #[inline]
4578    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4579        support::child(&self.syntax)
4580    }
4581    #[inline]
4582    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4583        support::child(&self.syntax)
4584    }
4585    #[inline]
4586    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4587        support::child(&self.syntax)
4588    }
4589    #[inline]
4590    pub fn all_token(&self) -> Option<SyntaxToken> {
4591        support::token(&self.syntax, SyntaxKind::ALL_KW)
4592    }
4593    #[inline]
4594    pub fn create_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4596    }
4597    #[inline]
4598    pub fn delete_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4600    }
4601    #[inline]
4602    pub fn for_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::FOR_KW)
4604    }
4605    #[inline]
4606    pub fn insert_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4608    }
4609    #[inline]
4610    pub fn policy_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4612    }
4613    #[inline]
4614    pub fn select_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4616    }
4617    #[inline]
4618    pub fn to_token(&self) -> Option<SyntaxToken> {
4619        support::token(&self.syntax, SyntaxKind::TO_KW)
4620    }
4621    #[inline]
4622    pub fn update_token(&self) -> Option<SyntaxToken> {
4623        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4624    }
4625}
4626
4627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4628pub struct CreateProcedure {
4629    pub(crate) syntax: SyntaxNode,
4630}
4631impl CreateProcedure {
4632    #[inline]
4633    pub fn option_list(&self) -> Option<FuncOptionList> {
4634        support::child(&self.syntax)
4635    }
4636    #[inline]
4637    pub fn or_replace(&self) -> Option<OrReplace> {
4638        support::child(&self.syntax)
4639    }
4640    #[inline]
4641    pub fn param_list(&self) -> Option<ParamList> {
4642        support::child(&self.syntax)
4643    }
4644    #[inline]
4645    pub fn path(&self) -> Option<Path> {
4646        support::child(&self.syntax)
4647    }
4648    #[inline]
4649    pub fn create_token(&self) -> Option<SyntaxToken> {
4650        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4651    }
4652    #[inline]
4653    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4654        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4655    }
4656}
4657
4658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4659pub struct CreatePropertyGraph {
4660    pub(crate) syntax: SyntaxNode,
4661}
4662impl CreatePropertyGraph {
4663    #[inline]
4664    pub fn edge_tables(&self) -> Option<EdgeTables> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn path(&self) -> Option<Path> {
4669        support::child(&self.syntax)
4670    }
4671    #[inline]
4672    pub fn persistence(&self) -> Option<Persistence> {
4673        support::child(&self.syntax)
4674    }
4675    #[inline]
4676    pub fn vertex_tables(&self) -> Option<VertexTables> {
4677        support::child(&self.syntax)
4678    }
4679    #[inline]
4680    pub fn create_token(&self) -> Option<SyntaxToken> {
4681        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4682    }
4683    #[inline]
4684    pub fn graph_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4686    }
4687    #[inline]
4688    pub fn property_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4690    }
4691}
4692
4693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4694pub struct CreatePublication {
4695    pub(crate) syntax: SyntaxNode,
4696}
4697impl CreatePublication {
4698    #[inline]
4699    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4700        support::child(&self.syntax)
4701    }
4702    #[inline]
4703    pub fn name(&self) -> Option<Name> {
4704        support::child(&self.syntax)
4705    }
4706    #[inline]
4707    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4708        support::children(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn with_params(&self) -> Option<WithParams> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn all_token(&self) -> Option<SyntaxToken> {
4716        support::token(&self.syntax, SyntaxKind::ALL_KW)
4717    }
4718    #[inline]
4719    pub fn create_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4721    }
4722    #[inline]
4723    pub fn for_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::FOR_KW)
4725    }
4726    #[inline]
4727    pub fn publication_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4729    }
4730    #[inline]
4731    pub fn tables_token(&self) -> Option<SyntaxToken> {
4732        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4733    }
4734}
4735
4736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4737pub struct CreateRole {
4738    pub(crate) syntax: SyntaxNode,
4739}
4740impl CreateRole {
4741    #[inline]
4742    pub fn name(&self) -> Option<Name> {
4743        support::child(&self.syntax)
4744    }
4745    #[inline]
4746    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4747        support::child(&self.syntax)
4748    }
4749    #[inline]
4750    pub fn create_token(&self) -> Option<SyntaxToken> {
4751        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4752    }
4753    #[inline]
4754    pub fn role_token(&self) -> Option<SyntaxToken> {
4755        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4756    }
4757}
4758
4759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4760pub struct CreateRule {
4761    pub(crate) syntax: SyntaxNode,
4762}
4763impl CreateRule {
4764    #[inline]
4765    pub fn name(&self) -> Option<Name> {
4766        support::child(&self.syntax)
4767    }
4768    #[inline]
4769    pub fn or_replace(&self) -> Option<OrReplace> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn path(&self) -> Option<Path> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn stmt(&self) -> Option<Stmt> {
4778        support::child(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn stmts(&self) -> AstChildren<Stmt> {
4782        support::children(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn where_clause(&self) -> Option<WhereClause> {
4786        support::child(&self.syntax)
4787    }
4788    #[inline]
4789    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4790        support::token(&self.syntax, SyntaxKind::L_PAREN)
4791    }
4792    #[inline]
4793    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::R_PAREN)
4795    }
4796    #[inline]
4797    pub fn also_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4799    }
4800    #[inline]
4801    pub fn as_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::AS_KW)
4803    }
4804    #[inline]
4805    pub fn create_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4807    }
4808    #[inline]
4809    pub fn delete_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4811    }
4812    #[inline]
4813    pub fn do_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::DO_KW)
4815    }
4816    #[inline]
4817    pub fn ident_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::IDENT)
4819    }
4820    #[inline]
4821    pub fn insert_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4823    }
4824    #[inline]
4825    pub fn instead_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4827    }
4828    #[inline]
4829    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4831    }
4832    #[inline]
4833    pub fn on_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::ON_KW)
4835    }
4836    #[inline]
4837    pub fn rule_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::RULE_KW)
4839    }
4840    #[inline]
4841    pub fn select_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4843    }
4844    #[inline]
4845    pub fn to_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::TO_KW)
4847    }
4848    #[inline]
4849    pub fn update_token(&self) -> Option<SyntaxToken> {
4850        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4851    }
4852}
4853
4854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4855pub struct CreateSchema {
4856    pub(crate) syntax: SyntaxNode,
4857}
4858impl CreateSchema {
4859    #[inline]
4860    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4861        support::child(&self.syntax)
4862    }
4863    #[inline]
4864    pub fn name(&self) -> Option<Name> {
4865        support::child(&self.syntax)
4866    }
4867    #[inline]
4868    pub fn role(&self) -> Option<Role> {
4869        support::child(&self.syntax)
4870    }
4871    #[inline]
4872    pub fn role_ref(&self) -> Option<RoleRef> {
4873        support::child(&self.syntax)
4874    }
4875    #[inline]
4876    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4877        support::children(&self.syntax)
4878    }
4879    #[inline]
4880    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4881        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4882    }
4883    #[inline]
4884    pub fn create_token(&self) -> Option<SyntaxToken> {
4885        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4886    }
4887    #[inline]
4888    pub fn schema_token(&self) -> Option<SyntaxToken> {
4889        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4890    }
4891}
4892
4893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4894pub struct CreateSequence {
4895    pub(crate) syntax: SyntaxNode,
4896}
4897impl CreateSequence {
4898    #[inline]
4899    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4900        support::child(&self.syntax)
4901    }
4902    #[inline]
4903    pub fn path(&self) -> Option<Path> {
4904        support::child(&self.syntax)
4905    }
4906    #[inline]
4907    pub fn persistence(&self) -> Option<Persistence> {
4908        support::child(&self.syntax)
4909    }
4910    #[inline]
4911    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4912        support::children(&self.syntax)
4913    }
4914    #[inline]
4915    pub fn create_token(&self) -> Option<SyntaxToken> {
4916        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4917    }
4918    #[inline]
4919    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4920        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4921    }
4922}
4923
4924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4925pub struct CreateServer {
4926    pub(crate) syntax: SyntaxNode,
4927}
4928impl CreateServer {
4929    #[inline]
4930    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4931        support::child(&self.syntax)
4932    }
4933    #[inline]
4934    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4935        support::child(&self.syntax)
4936    }
4937    #[inline]
4938    pub fn literal(&self) -> Option<Literal> {
4939        support::child(&self.syntax)
4940    }
4941    #[inline]
4942    pub fn name(&self) -> Option<Name> {
4943        support::child(&self.syntax)
4944    }
4945    #[inline]
4946    pub fn name_ref(&self) -> Option<NameRef> {
4947        support::child(&self.syntax)
4948    }
4949    #[inline]
4950    pub fn create_token(&self) -> Option<SyntaxToken> {
4951        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4952    }
4953    #[inline]
4954    pub fn data_token(&self) -> Option<SyntaxToken> {
4955        support::token(&self.syntax, SyntaxKind::DATA_KW)
4956    }
4957    #[inline]
4958    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4959        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4960    }
4961    #[inline]
4962    pub fn server_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4964    }
4965    #[inline]
4966    pub fn type_token(&self) -> Option<SyntaxToken> {
4967        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4968    }
4969    #[inline]
4970    pub fn version_token(&self) -> Option<SyntaxToken> {
4971        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4972    }
4973    #[inline]
4974    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4975        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4976    }
4977}
4978
4979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4980pub struct CreateStatistics {
4981    pub(crate) syntax: SyntaxNode,
4982}
4983impl CreateStatistics {
4984    #[inline]
4985    pub fn from_table(&self) -> Option<FromTable> {
4986        support::child(&self.syntax)
4987    }
4988    #[inline]
4989    pub fn name_refs(&self) -> AstChildren<NameRef> {
4990        support::children(&self.syntax)
4991    }
4992    #[inline]
4993    pub fn path(&self) -> Option<Path> {
4994        support::child(&self.syntax)
4995    }
4996    #[inline]
4997    pub fn create_token(&self) -> Option<SyntaxToken> {
4998        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4999    }
5000    #[inline]
5001    pub fn on_token(&self) -> Option<SyntaxToken> {
5002        support::token(&self.syntax, SyntaxKind::ON_KW)
5003    }
5004    #[inline]
5005    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5006        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5007    }
5008}
5009
5010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5011pub struct CreateSubscription {
5012    pub(crate) syntax: SyntaxNode,
5013}
5014impl CreateSubscription {
5015    #[inline]
5016    pub fn literal(&self) -> Option<Literal> {
5017        support::child(&self.syntax)
5018    }
5019    #[inline]
5020    pub fn name(&self) -> Option<Name> {
5021        support::child(&self.syntax)
5022    }
5023    #[inline]
5024    pub fn name_ref(&self) -> Option<NameRef> {
5025        support::child(&self.syntax)
5026    }
5027    #[inline]
5028    pub fn name_refs(&self) -> AstChildren<NameRef> {
5029        support::children(&self.syntax)
5030    }
5031    #[inline]
5032    pub fn with_params(&self) -> Option<WithParams> {
5033        support::child(&self.syntax)
5034    }
5035    #[inline]
5036    pub fn connection_token(&self) -> Option<SyntaxToken> {
5037        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5038    }
5039    #[inline]
5040    pub fn create_token(&self) -> Option<SyntaxToken> {
5041        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5042    }
5043    #[inline]
5044    pub fn publication_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5046    }
5047    #[inline]
5048    pub fn server_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5050    }
5051    #[inline]
5052    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5053        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5054    }
5055}
5056
5057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5058pub struct CreateTable {
5059    pub(crate) syntax: SyntaxNode,
5060}
5061impl CreateTable {
5062    #[inline]
5063    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5064        support::child(&self.syntax)
5065    }
5066    #[inline]
5067    pub fn inherits(&self) -> Option<Inherits> {
5068        support::child(&self.syntax)
5069    }
5070    #[inline]
5071    pub fn of_type(&self) -> Option<OfType> {
5072        support::child(&self.syntax)
5073    }
5074    #[inline]
5075    pub fn on_commit(&self) -> Option<OnCommit> {
5076        support::child(&self.syntax)
5077    }
5078    #[inline]
5079    pub fn partition_by(&self) -> Option<PartitionBy> {
5080        support::child(&self.syntax)
5081    }
5082    #[inline]
5083    pub fn partition_of(&self) -> Option<PartitionOf> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn path(&self) -> Option<Path> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn persistence(&self) -> Option<Persistence> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn table_arg_list(&self) -> Option<TableArgList> {
5096        support::child(&self.syntax)
5097    }
5098    #[inline]
5099    pub fn tablespace(&self) -> Option<Tablespace> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn using_method(&self) -> Option<UsingMethod> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn with_params(&self) -> Option<WithParams> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn without_oids(&self) -> Option<WithoutOids> {
5112        support::child(&self.syntax)
5113    }
5114    #[inline]
5115    pub fn create_token(&self) -> Option<SyntaxToken> {
5116        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5117    }
5118    #[inline]
5119    pub fn table_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5121    }
5122}
5123
5124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5125pub struct CreateTableAs {
5126    pub(crate) syntax: SyntaxNode,
5127}
5128impl CreateTableAs {
5129    #[inline]
5130    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5131        support::child(&self.syntax)
5132    }
5133    #[inline]
5134    pub fn on_commit(&self) -> Option<OnCommit> {
5135        support::child(&self.syntax)
5136    }
5137    #[inline]
5138    pub fn path(&self) -> Option<Path> {
5139        support::child(&self.syntax)
5140    }
5141    #[inline]
5142    pub fn persistence(&self) -> Option<Persistence> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn query(&self) -> Option<SelectVariant> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn tablespace(&self) -> Option<Tablespace> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn using_method(&self) -> Option<UsingMethod> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn with_data(&self) -> Option<WithData> {
5159        support::child(&self.syntax)
5160    }
5161    #[inline]
5162    pub fn with_no_data(&self) -> Option<WithNoData> {
5163        support::child(&self.syntax)
5164    }
5165    #[inline]
5166    pub fn with_params(&self) -> Option<WithParams> {
5167        support::child(&self.syntax)
5168    }
5169    #[inline]
5170    pub fn without_oids(&self) -> Option<WithoutOids> {
5171        support::child(&self.syntax)
5172    }
5173    #[inline]
5174    pub fn as_token(&self) -> Option<SyntaxToken> {
5175        support::token(&self.syntax, SyntaxKind::AS_KW)
5176    }
5177    #[inline]
5178    pub fn create_token(&self) -> Option<SyntaxToken> {
5179        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5180    }
5181    #[inline]
5182    pub fn table_token(&self) -> Option<SyntaxToken> {
5183        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5184    }
5185}
5186
5187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5188pub struct CreateTablespace {
5189    pub(crate) syntax: SyntaxNode,
5190}
5191impl CreateTablespace {
5192    #[inline]
5193    pub fn literal(&self) -> Option<Literal> {
5194        support::child(&self.syntax)
5195    }
5196    #[inline]
5197    pub fn name(&self) -> Option<Name> {
5198        support::child(&self.syntax)
5199    }
5200    #[inline]
5201    pub fn role_ref(&self) -> Option<RoleRef> {
5202        support::child(&self.syntax)
5203    }
5204    #[inline]
5205    pub fn with_params(&self) -> Option<WithParams> {
5206        support::child(&self.syntax)
5207    }
5208    #[inline]
5209    pub fn create_token(&self) -> Option<SyntaxToken> {
5210        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5211    }
5212    #[inline]
5213    pub fn location_token(&self) -> Option<SyntaxToken> {
5214        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5215    }
5216    #[inline]
5217    pub fn owner_token(&self) -> Option<SyntaxToken> {
5218        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5219    }
5220    #[inline]
5221    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5222        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5223    }
5224}
5225
5226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5227pub struct CreateTextSearchConfiguration {
5228    pub(crate) syntax: SyntaxNode,
5229}
5230impl CreateTextSearchConfiguration {
5231    #[inline]
5232    pub fn attribute_list(&self) -> Option<AttributeList> {
5233        support::child(&self.syntax)
5234    }
5235    #[inline]
5236    pub fn path(&self) -> Option<Path> {
5237        support::child(&self.syntax)
5238    }
5239    #[inline]
5240    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5241        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5242    }
5243    #[inline]
5244    pub fn create_token(&self) -> Option<SyntaxToken> {
5245        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5246    }
5247    #[inline]
5248    pub fn search_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5250    }
5251    #[inline]
5252    pub fn text_token(&self) -> Option<SyntaxToken> {
5253        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5254    }
5255}
5256
5257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5258pub struct CreateTextSearchDictionary {
5259    pub(crate) syntax: SyntaxNode,
5260}
5261impl CreateTextSearchDictionary {
5262    #[inline]
5263    pub fn attribute_list(&self) -> Option<AttributeList> {
5264        support::child(&self.syntax)
5265    }
5266    #[inline]
5267    pub fn path(&self) -> Option<Path> {
5268        support::child(&self.syntax)
5269    }
5270    #[inline]
5271    pub fn create_token(&self) -> Option<SyntaxToken> {
5272        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5273    }
5274    #[inline]
5275    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5276        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5277    }
5278    #[inline]
5279    pub fn search_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5281    }
5282    #[inline]
5283    pub fn text_token(&self) -> Option<SyntaxToken> {
5284        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5285    }
5286}
5287
5288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5289pub struct CreateTextSearchParser {
5290    pub(crate) syntax: SyntaxNode,
5291}
5292impl CreateTextSearchParser {
5293    #[inline]
5294    pub fn attribute_list(&self) -> Option<AttributeList> {
5295        support::child(&self.syntax)
5296    }
5297    #[inline]
5298    pub fn path(&self) -> Option<Path> {
5299        support::child(&self.syntax)
5300    }
5301    #[inline]
5302    pub fn create_token(&self) -> Option<SyntaxToken> {
5303        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5304    }
5305    #[inline]
5306    pub fn parser_token(&self) -> Option<SyntaxToken> {
5307        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5308    }
5309    #[inline]
5310    pub fn search_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5312    }
5313    #[inline]
5314    pub fn text_token(&self) -> Option<SyntaxToken> {
5315        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5316    }
5317}
5318
5319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5320pub struct CreateTextSearchTemplate {
5321    pub(crate) syntax: SyntaxNode,
5322}
5323impl CreateTextSearchTemplate {
5324    #[inline]
5325    pub fn attribute_list(&self) -> Option<AttributeList> {
5326        support::child(&self.syntax)
5327    }
5328    #[inline]
5329    pub fn path(&self) -> Option<Path> {
5330        support::child(&self.syntax)
5331    }
5332    #[inline]
5333    pub fn create_token(&self) -> Option<SyntaxToken> {
5334        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5335    }
5336    #[inline]
5337    pub fn search_token(&self) -> Option<SyntaxToken> {
5338        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5339    }
5340    #[inline]
5341    pub fn template_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5343    }
5344    #[inline]
5345    pub fn text_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5347    }
5348}
5349
5350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5351pub struct CreateTransform {
5352    pub(crate) syntax: SyntaxNode,
5353}
5354impl CreateTransform {
5355    #[inline]
5356    pub fn from_func(&self) -> Option<TransformFromFunc> {
5357        support::child(&self.syntax)
5358    }
5359    #[inline]
5360    pub fn language(&self) -> Option<NameRef> {
5361        support::child(&self.syntax)
5362    }
5363    #[inline]
5364    pub fn or_replace(&self) -> Option<OrReplace> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn to_func(&self) -> Option<TransformToFunc> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn ty(&self) -> Option<Type> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::L_PAREN)
5378    }
5379    #[inline]
5380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::R_PAREN)
5382    }
5383    #[inline]
5384    pub fn comma_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::COMMA)
5386    }
5387    #[inline]
5388    pub fn create_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5390    }
5391    #[inline]
5392    pub fn for_token(&self) -> Option<SyntaxToken> {
5393        support::token(&self.syntax, SyntaxKind::FOR_KW)
5394    }
5395    #[inline]
5396    pub fn language_token(&self) -> Option<SyntaxToken> {
5397        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5398    }
5399    #[inline]
5400    pub fn transform_token(&self) -> Option<SyntaxToken> {
5401        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5402    }
5403}
5404
5405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5406pub struct CreateTrigger {
5407    pub(crate) syntax: SyntaxNode,
5408}
5409impl CreateTrigger {
5410    #[inline]
5411    pub fn call_expr(&self) -> Option<CallExpr> {
5412        support::child(&self.syntax)
5413    }
5414    #[inline]
5415    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5416        support::child(&self.syntax)
5417    }
5418    #[inline]
5419    pub fn from_table(&self) -> Option<FromTable> {
5420        support::child(&self.syntax)
5421    }
5422    #[inline]
5423    pub fn initially_deferred_constraint_option(
5424        &self,
5425    ) -> Option<InitiallyDeferredConstraintOption> {
5426        support::child(&self.syntax)
5427    }
5428    #[inline]
5429    pub fn initially_immediate_constraint_option(
5430        &self,
5431    ) -> Option<InitiallyImmediateConstraintOption> {
5432        support::child(&self.syntax)
5433    }
5434    #[inline]
5435    pub fn name(&self) -> Option<Name> {
5436        support::child(&self.syntax)
5437    }
5438    #[inline]
5439    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn on_table(&self) -> Option<OnTable> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn or_replace(&self) -> Option<OrReplace> {
5448        support::child(&self.syntax)
5449    }
5450    #[inline]
5451    pub fn referencing(&self) -> Option<Referencing> {
5452        support::child(&self.syntax)
5453    }
5454    #[inline]
5455    pub fn timing(&self) -> Option<Timing> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn when_condition(&self) -> Option<WhenCondition> {
5464        support::child(&self.syntax)
5465    }
5466    #[inline]
5467    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5468        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5469    }
5470    #[inline]
5471    pub fn create_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5473    }
5474    #[inline]
5475    pub fn each_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::EACH_KW)
5477    }
5478    #[inline]
5479    pub fn execute_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5481    }
5482    #[inline]
5483    pub fn for_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::FOR_KW)
5485    }
5486    #[inline]
5487    pub fn function_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5489    }
5490    #[inline]
5491    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5493    }
5494    #[inline]
5495    pub fn row_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::ROW_KW)
5497    }
5498    #[inline]
5499    pub fn statement_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5501    }
5502    #[inline]
5503    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5504        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5505    }
5506}
5507
5508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5509pub struct CreateType {
5510    pub(crate) syntax: SyntaxNode,
5511}
5512impl CreateType {
5513    #[inline]
5514    pub fn attribute_list(&self) -> Option<AttributeList> {
5515        support::child(&self.syntax)
5516    }
5517    #[inline]
5518    pub fn column_list(&self) -> Option<ColumnList> {
5519        support::child(&self.syntax)
5520    }
5521    #[inline]
5522    pub fn path(&self) -> Option<Path> {
5523        support::child(&self.syntax)
5524    }
5525    #[inline]
5526    pub fn variant_list(&self) -> Option<VariantList> {
5527        support::child(&self.syntax)
5528    }
5529    #[inline]
5530    pub fn as_token(&self) -> Option<SyntaxToken> {
5531        support::token(&self.syntax, SyntaxKind::AS_KW)
5532    }
5533    #[inline]
5534    pub fn create_token(&self) -> Option<SyntaxToken> {
5535        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5536    }
5537    #[inline]
5538    pub fn enum_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5540    }
5541    #[inline]
5542    pub fn range_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5544    }
5545    #[inline]
5546    pub fn type_token(&self) -> Option<SyntaxToken> {
5547        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5548    }
5549}
5550
5551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5552pub struct CreateUser {
5553    pub(crate) syntax: SyntaxNode,
5554}
5555impl CreateUser {
5556    #[inline]
5557    pub fn name(&self) -> Option<Name> {
5558        support::child(&self.syntax)
5559    }
5560    #[inline]
5561    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5562        support::child(&self.syntax)
5563    }
5564    #[inline]
5565    pub fn create_token(&self) -> Option<SyntaxToken> {
5566        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5567    }
5568    #[inline]
5569    pub fn user_token(&self) -> Option<SyntaxToken> {
5570        support::token(&self.syntax, SyntaxKind::USER_KW)
5571    }
5572}
5573
5574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5575pub struct CreateUserMapping {
5576    pub(crate) syntax: SyntaxNode,
5577}
5578impl CreateUserMapping {
5579    #[inline]
5580    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5581        support::child(&self.syntax)
5582    }
5583    #[inline]
5584    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5585        support::child(&self.syntax)
5586    }
5587    #[inline]
5588    pub fn role_ref(&self) -> Option<RoleRef> {
5589        support::child(&self.syntax)
5590    }
5591    #[inline]
5592    pub fn server_name(&self) -> Option<ServerName> {
5593        support::child(&self.syntax)
5594    }
5595    #[inline]
5596    pub fn create_token(&self) -> Option<SyntaxToken> {
5597        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5598    }
5599    #[inline]
5600    pub fn for_token(&self) -> Option<SyntaxToken> {
5601        support::token(&self.syntax, SyntaxKind::FOR_KW)
5602    }
5603    #[inline]
5604    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5606    }
5607    #[inline]
5608    pub fn user_token(&self) -> Option<SyntaxToken> {
5609        support::token(&self.syntax, SyntaxKind::USER_KW)
5610    }
5611}
5612
5613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5614pub struct CreateView {
5615    pub(crate) syntax: SyntaxNode,
5616}
5617impl CreateView {
5618    #[inline]
5619    pub fn column_list(&self) -> Option<ColumnList> {
5620        support::child(&self.syntax)
5621    }
5622    #[inline]
5623    pub fn or_replace(&self) -> Option<OrReplace> {
5624        support::child(&self.syntax)
5625    }
5626    #[inline]
5627    pub fn path(&self) -> Option<Path> {
5628        support::child(&self.syntax)
5629    }
5630    #[inline]
5631    pub fn persistence(&self) -> Option<Persistence> {
5632        support::child(&self.syntax)
5633    }
5634    #[inline]
5635    pub fn query(&self) -> Option<SelectVariant> {
5636        support::child(&self.syntax)
5637    }
5638    #[inline]
5639    pub fn with_params(&self) -> Option<WithParams> {
5640        support::child(&self.syntax)
5641    }
5642    #[inline]
5643    pub fn as_token(&self) -> Option<SyntaxToken> {
5644        support::token(&self.syntax, SyntaxKind::AS_KW)
5645    }
5646    #[inline]
5647    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5648        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5649    }
5650    #[inline]
5651    pub fn check_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5653    }
5654    #[inline]
5655    pub fn create_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5657    }
5658    #[inline]
5659    pub fn local_token(&self) -> Option<SyntaxToken> {
5660        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5661    }
5662    #[inline]
5663    pub fn option_token(&self) -> Option<SyntaxToken> {
5664        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5665    }
5666    #[inline]
5667    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5669    }
5670    #[inline]
5671    pub fn view_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5673    }
5674    #[inline]
5675    pub fn with_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::WITH_KW)
5677    }
5678}
5679
5680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5681pub struct CustomOp {
5682    pub(crate) syntax: SyntaxNode,
5683}
5684impl CustomOp {
5685    #[inline]
5686    pub fn bang_token(&self) -> Option<SyntaxToken> {
5687        support::token(&self.syntax, SyntaxKind::BANG)
5688    }
5689    #[inline]
5690    pub fn pound_token(&self) -> Option<SyntaxToken> {
5691        support::token(&self.syntax, SyntaxKind::POUND)
5692    }
5693    #[inline]
5694    pub fn percent_token(&self) -> Option<SyntaxToken> {
5695        support::token(&self.syntax, SyntaxKind::PERCENT)
5696    }
5697    #[inline]
5698    pub fn amp_token(&self) -> Option<SyntaxToken> {
5699        support::token(&self.syntax, SyntaxKind::AMP)
5700    }
5701    #[inline]
5702    pub fn star_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::STAR)
5704    }
5705    #[inline]
5706    pub fn plus_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::PLUS)
5708    }
5709    #[inline]
5710    pub fn minus_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::MINUS)
5712    }
5713    #[inline]
5714    pub fn slash_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::SLASH)
5716    }
5717    #[inline]
5718    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5720    }
5721    #[inline]
5722    pub fn eq_token(&self) -> Option<SyntaxToken> {
5723        support::token(&self.syntax, SyntaxKind::EQ)
5724    }
5725    #[inline]
5726    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5728    }
5729    #[inline]
5730    pub fn question_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::QUESTION)
5732    }
5733    #[inline]
5734    pub fn at_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::AT)
5736    }
5737    #[inline]
5738    pub fn caret_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::CARET)
5740    }
5741    #[inline]
5742    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::BACKTICK)
5744    }
5745    #[inline]
5746    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::PIPE)
5748    }
5749    #[inline]
5750    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::TILDE)
5752    }
5753}
5754
5755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5756pub struct Deallocate {
5757    pub(crate) syntax: SyntaxNode,
5758}
5759impl Deallocate {
5760    #[inline]
5761    pub fn name_ref(&self) -> Option<NameRef> {
5762        support::child(&self.syntax)
5763    }
5764    #[inline]
5765    pub fn all_token(&self) -> Option<SyntaxToken> {
5766        support::token(&self.syntax, SyntaxKind::ALL_KW)
5767    }
5768    #[inline]
5769    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5770        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5771    }
5772    #[inline]
5773    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5774        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5775    }
5776}
5777
5778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5779pub struct Declare {
5780    pub(crate) syntax: SyntaxNode,
5781}
5782impl Declare {
5783    #[inline]
5784    pub fn name(&self) -> Option<Name> {
5785        support::child(&self.syntax)
5786    }
5787    #[inline]
5788    pub fn query(&self) -> Option<SelectVariant> {
5789        support::child(&self.syntax)
5790    }
5791    #[inline]
5792    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5794    }
5795    #[inline]
5796    pub fn binary_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5798    }
5799    #[inline]
5800    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5802    }
5803    #[inline]
5804    pub fn declare_token(&self) -> Option<SyntaxToken> {
5805        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5806    }
5807    #[inline]
5808    pub fn for_token(&self) -> Option<SyntaxToken> {
5809        support::token(&self.syntax, SyntaxKind::FOR_KW)
5810    }
5811    #[inline]
5812    pub fn hold_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5814    }
5815    #[inline]
5816    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5818    }
5819    #[inline]
5820    pub fn no_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::NO_KW)
5822    }
5823    #[inline]
5824    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5826    }
5827    #[inline]
5828    pub fn with_token(&self) -> Option<SyntaxToken> {
5829        support::token(&self.syntax, SyntaxKind::WITH_KW)
5830    }
5831    #[inline]
5832    pub fn without_token(&self) -> Option<SyntaxToken> {
5833        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5834    }
5835}
5836
5837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5838pub struct DefaultConstraint {
5839    pub(crate) syntax: SyntaxNode,
5840}
5841impl DefaultConstraint {
5842    #[inline]
5843    pub fn expr(&self) -> Option<Expr> {
5844        support::child(&self.syntax)
5845    }
5846    #[inline]
5847    pub fn name_ref(&self) -> Option<NameRef> {
5848        support::child(&self.syntax)
5849    }
5850    #[inline]
5851    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5852        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5853    }
5854    #[inline]
5855    pub fn default_token(&self) -> Option<SyntaxToken> {
5856        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5857    }
5858}
5859
5860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5861pub struct Deferrable {
5862    pub(crate) syntax: SyntaxNode,
5863}
5864impl Deferrable {
5865    #[inline]
5866    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5867        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5868    }
5869}
5870
5871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5872pub struct DeferrableConstraintOption {
5873    pub(crate) syntax: SyntaxNode,
5874}
5875impl DeferrableConstraintOption {
5876    #[inline]
5877    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5878        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5879    }
5880}
5881
5882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5883pub struct Delete {
5884    pub(crate) syntax: SyntaxNode,
5885}
5886impl Delete {
5887    #[inline]
5888    pub fn alias(&self) -> Option<Alias> {
5889        support::child(&self.syntax)
5890    }
5891    #[inline]
5892    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
5893        support::child(&self.syntax)
5894    }
5895    #[inline]
5896    pub fn relation_name(&self) -> Option<RelationName> {
5897        support::child(&self.syntax)
5898    }
5899    #[inline]
5900    pub fn returning_clause(&self) -> Option<ReturningClause> {
5901        support::child(&self.syntax)
5902    }
5903    #[inline]
5904    pub fn using_clause(&self) -> Option<UsingClause> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn where_clause(&self) -> Option<WhereClause> {
5909        support::child(&self.syntax)
5910    }
5911    #[inline]
5912    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5913        support::child(&self.syntax)
5914    }
5915    #[inline]
5916    pub fn with_clause(&self) -> Option<WithClause> {
5917        support::child(&self.syntax)
5918    }
5919    #[inline]
5920    pub fn delete_token(&self) -> Option<SyntaxToken> {
5921        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5922    }
5923    #[inline]
5924    pub fn from_token(&self) -> Option<SyntaxToken> {
5925        support::token(&self.syntax, SyntaxKind::FROM_KW)
5926    }
5927}
5928
5929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5930pub struct DeleteRows {
5931    pub(crate) syntax: SyntaxNode,
5932}
5933impl DeleteRows {
5934    #[inline]
5935    pub fn delete_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5937    }
5938    #[inline]
5939    pub fn rows_token(&self) -> Option<SyntaxToken> {
5940        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5941    }
5942}
5943
5944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5945pub struct DependsOnExtension {
5946    pub(crate) syntax: SyntaxNode,
5947}
5948impl DependsOnExtension {
5949    #[inline]
5950    pub fn name_ref(&self) -> Option<NameRef> {
5951        support::child(&self.syntax)
5952    }
5953    #[inline]
5954    pub fn depends_token(&self) -> Option<SyntaxToken> {
5955        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5956    }
5957    #[inline]
5958    pub fn extension_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5960    }
5961    #[inline]
5962    pub fn on_token(&self) -> Option<SyntaxToken> {
5963        support::token(&self.syntax, SyntaxKind::ON_KW)
5964    }
5965}
5966
5967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5968pub struct DestVertexTable {
5969    pub(crate) syntax: SyntaxNode,
5970}
5971impl DestVertexTable {
5972    #[inline]
5973    pub fn column_list(&self) -> Option<ColumnList> {
5974        support::child(&self.syntax)
5975    }
5976    #[inline]
5977    pub fn name_ref(&self) -> Option<NameRef> {
5978        support::child(&self.syntax)
5979    }
5980    #[inline]
5981    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5982        support::token(&self.syntax, SyntaxKind::L_PAREN)
5983    }
5984    #[inline]
5985    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5986        support::token(&self.syntax, SyntaxKind::R_PAREN)
5987    }
5988    #[inline]
5989    pub fn destination_token(&self) -> Option<SyntaxToken> {
5990        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
5991    }
5992    #[inline]
5993    pub fn key_token(&self) -> Option<SyntaxToken> {
5994        support::token(&self.syntax, SyntaxKind::KEY_KW)
5995    }
5996    #[inline]
5997    pub fn references_token(&self) -> Option<SyntaxToken> {
5998        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
5999    }
6000}
6001
6002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6003pub struct DetachPartition {
6004    pub(crate) syntax: SyntaxNode,
6005}
6006impl DetachPartition {
6007    #[inline]
6008    pub fn path(&self) -> Option<Path> {
6009        support::child(&self.syntax)
6010    }
6011    #[inline]
6012    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6013        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6014    }
6015    #[inline]
6016    pub fn detach_token(&self) -> Option<SyntaxToken> {
6017        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6018    }
6019    #[inline]
6020    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6021        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6022    }
6023    #[inline]
6024    pub fn partition_token(&self) -> Option<SyntaxToken> {
6025        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6026    }
6027}
6028
6029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6030pub struct DisableRls {
6031    pub(crate) syntax: SyntaxNode,
6032}
6033impl DisableRls {
6034    #[inline]
6035    pub fn disable_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6037    }
6038    #[inline]
6039    pub fn level_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6041    }
6042    #[inline]
6043    pub fn row_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::ROW_KW)
6045    }
6046    #[inline]
6047    pub fn security_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6049    }
6050}
6051
6052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6053pub struct DisableRule {
6054    pub(crate) syntax: SyntaxNode,
6055}
6056impl DisableRule {
6057    #[inline]
6058    pub fn disable_token(&self) -> Option<SyntaxToken> {
6059        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6060    }
6061    #[inline]
6062    pub fn rule_token(&self) -> Option<SyntaxToken> {
6063        support::token(&self.syntax, SyntaxKind::RULE_KW)
6064    }
6065}
6066
6067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6068pub struct DisableTrigger {
6069    pub(crate) syntax: SyntaxNode,
6070}
6071impl DisableTrigger {
6072    #[inline]
6073    pub fn disable_token(&self) -> Option<SyntaxToken> {
6074        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6075    }
6076    #[inline]
6077    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6079    }
6080}
6081
6082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6083pub struct Discard {
6084    pub(crate) syntax: SyntaxNode,
6085}
6086impl Discard {
6087    #[inline]
6088    pub fn all_token(&self) -> Option<SyntaxToken> {
6089        support::token(&self.syntax, SyntaxKind::ALL_KW)
6090    }
6091    #[inline]
6092    pub fn discard_token(&self) -> Option<SyntaxToken> {
6093        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6094    }
6095    #[inline]
6096    pub fn plans_token(&self) -> Option<SyntaxToken> {
6097        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6098    }
6099    #[inline]
6100    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6101        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6102    }
6103    #[inline]
6104    pub fn temp_token(&self) -> Option<SyntaxToken> {
6105        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6106    }
6107    #[inline]
6108    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6109        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6110    }
6111}
6112
6113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6114pub struct DistinctClause {
6115    pub(crate) syntax: SyntaxNode,
6116}
6117impl DistinctClause {
6118    #[inline]
6119    pub fn exprs(&self) -> AstChildren<Expr> {
6120        support::children(&self.syntax)
6121    }
6122    #[inline]
6123    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6124        support::token(&self.syntax, SyntaxKind::L_PAREN)
6125    }
6126    #[inline]
6127    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6128        support::token(&self.syntax, SyntaxKind::R_PAREN)
6129    }
6130    #[inline]
6131    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6132        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6133    }
6134    #[inline]
6135    pub fn on_token(&self) -> Option<SyntaxToken> {
6136        support::token(&self.syntax, SyntaxKind::ON_KW)
6137    }
6138}
6139
6140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6141pub struct Do {
6142    pub(crate) syntax: SyntaxNode,
6143}
6144impl Do {
6145    #[inline]
6146    pub fn do_token(&self) -> Option<SyntaxToken> {
6147        support::token(&self.syntax, SyntaxKind::DO_KW)
6148    }
6149}
6150
6151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6152pub struct DoubleType {
6153    pub(crate) syntax: SyntaxNode,
6154}
6155impl DoubleType {
6156    #[inline]
6157    pub fn double_token(&self) -> Option<SyntaxToken> {
6158        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6159    }
6160    #[inline]
6161    pub fn precision_token(&self) -> Option<SyntaxToken> {
6162        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6163    }
6164    #[inline]
6165    pub fn setof_token(&self) -> Option<SyntaxToken> {
6166        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6167    }
6168}
6169
6170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6171pub struct Drop {
6172    pub(crate) syntax: SyntaxNode,
6173}
6174impl Drop {
6175    #[inline]
6176    pub fn drop_token(&self) -> Option<SyntaxToken> {
6177        support::token(&self.syntax, SyntaxKind::DROP_KW)
6178    }
6179}
6180
6181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6182pub struct DropAccessMethod {
6183    pub(crate) syntax: SyntaxNode,
6184}
6185impl DropAccessMethod {
6186    #[inline]
6187    pub fn if_exists(&self) -> Option<IfExists> {
6188        support::child(&self.syntax)
6189    }
6190    #[inline]
6191    pub fn name_ref(&self) -> Option<NameRef> {
6192        support::child(&self.syntax)
6193    }
6194    #[inline]
6195    pub fn access_token(&self) -> Option<SyntaxToken> {
6196        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6197    }
6198    #[inline]
6199    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6200        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6201    }
6202    #[inline]
6203    pub fn drop_token(&self) -> Option<SyntaxToken> {
6204        support::token(&self.syntax, SyntaxKind::DROP_KW)
6205    }
6206    #[inline]
6207    pub fn method_token(&self) -> Option<SyntaxToken> {
6208        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6209    }
6210    #[inline]
6211    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6212        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6213    }
6214}
6215
6216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6217pub struct DropAggregate {
6218    pub(crate) syntax: SyntaxNode,
6219}
6220impl DropAggregate {
6221    #[inline]
6222    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6223        support::children(&self.syntax)
6224    }
6225    #[inline]
6226    pub fn if_exists(&self) -> Option<IfExists> {
6227        support::child(&self.syntax)
6228    }
6229    #[inline]
6230    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6231        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6232    }
6233    #[inline]
6234    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6235        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6236    }
6237    #[inline]
6238    pub fn drop_token(&self) -> Option<SyntaxToken> {
6239        support::token(&self.syntax, SyntaxKind::DROP_KW)
6240    }
6241    #[inline]
6242    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6243        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6244    }
6245}
6246
6247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6248pub struct DropAttribute {
6249    pub(crate) syntax: SyntaxNode,
6250}
6251impl DropAttribute {
6252    #[inline]
6253    pub fn cascade(&self) -> Option<Cascade> {
6254        support::child(&self.syntax)
6255    }
6256    #[inline]
6257    pub fn if_exists(&self) -> Option<IfExists> {
6258        support::child(&self.syntax)
6259    }
6260    #[inline]
6261    pub fn restrict(&self) -> Option<Restrict> {
6262        support::child(&self.syntax)
6263    }
6264    #[inline]
6265    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6266        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6267    }
6268    #[inline]
6269    pub fn drop_token(&self) -> Option<SyntaxToken> {
6270        support::token(&self.syntax, SyntaxKind::DROP_KW)
6271    }
6272}
6273
6274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6275pub struct DropCast {
6276    pub(crate) syntax: SyntaxNode,
6277}
6278impl DropCast {
6279    #[inline]
6280    pub fn cast_sig(&self) -> Option<CastSig> {
6281        support::child(&self.syntax)
6282    }
6283    #[inline]
6284    pub fn if_exists(&self) -> Option<IfExists> {
6285        support::child(&self.syntax)
6286    }
6287    #[inline]
6288    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6289        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6290    }
6291    #[inline]
6292    pub fn cast_token(&self) -> Option<SyntaxToken> {
6293        support::token(&self.syntax, SyntaxKind::CAST_KW)
6294    }
6295    #[inline]
6296    pub fn drop_token(&self) -> Option<SyntaxToken> {
6297        support::token(&self.syntax, SyntaxKind::DROP_KW)
6298    }
6299    #[inline]
6300    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6301        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6302    }
6303}
6304
6305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6306pub struct DropCollation {
6307    pub(crate) syntax: SyntaxNode,
6308}
6309impl DropCollation {
6310    #[inline]
6311    pub fn if_exists(&self) -> Option<IfExists> {
6312        support::child(&self.syntax)
6313    }
6314    #[inline]
6315    pub fn paths(&self) -> AstChildren<Path> {
6316        support::children(&self.syntax)
6317    }
6318    #[inline]
6319    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6320        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6321    }
6322    #[inline]
6323    pub fn collation_token(&self) -> Option<SyntaxToken> {
6324        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6325    }
6326    #[inline]
6327    pub fn drop_token(&self) -> Option<SyntaxToken> {
6328        support::token(&self.syntax, SyntaxKind::DROP_KW)
6329    }
6330    #[inline]
6331    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6332        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6333    }
6334}
6335
6336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6337pub struct DropColumn {
6338    pub(crate) syntax: SyntaxNode,
6339}
6340impl DropColumn {
6341    #[inline]
6342    pub fn if_exists(&self) -> Option<IfExists> {
6343        support::child(&self.syntax)
6344    }
6345    #[inline]
6346    pub fn name_ref(&self) -> Option<NameRef> {
6347        support::child(&self.syntax)
6348    }
6349    #[inline]
6350    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6351        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6352    }
6353    #[inline]
6354    pub fn column_token(&self) -> Option<SyntaxToken> {
6355        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6356    }
6357    #[inline]
6358    pub fn drop_token(&self) -> Option<SyntaxToken> {
6359        support::token(&self.syntax, SyntaxKind::DROP_KW)
6360    }
6361    #[inline]
6362    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6363        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6364    }
6365}
6366
6367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6368pub struct DropConstraint {
6369    pub(crate) syntax: SyntaxNode,
6370}
6371impl DropConstraint {
6372    #[inline]
6373    pub fn if_exists(&self) -> Option<IfExists> {
6374        support::child(&self.syntax)
6375    }
6376    #[inline]
6377    pub fn name_ref(&self) -> Option<NameRef> {
6378        support::child(&self.syntax)
6379    }
6380    #[inline]
6381    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6383    }
6384    #[inline]
6385    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6387    }
6388    #[inline]
6389    pub fn drop_token(&self) -> Option<SyntaxToken> {
6390        support::token(&self.syntax, SyntaxKind::DROP_KW)
6391    }
6392    #[inline]
6393    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6394        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6395    }
6396}
6397
6398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6399pub struct DropConversion {
6400    pub(crate) syntax: SyntaxNode,
6401}
6402impl DropConversion {
6403    #[inline]
6404    pub fn if_exists(&self) -> Option<IfExists> {
6405        support::child(&self.syntax)
6406    }
6407    #[inline]
6408    pub fn path(&self) -> Option<Path> {
6409        support::child(&self.syntax)
6410    }
6411    #[inline]
6412    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6413        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6414    }
6415    #[inline]
6416    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6417        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6418    }
6419    #[inline]
6420    pub fn drop_token(&self) -> Option<SyntaxToken> {
6421        support::token(&self.syntax, SyntaxKind::DROP_KW)
6422    }
6423    #[inline]
6424    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6425        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6426    }
6427}
6428
6429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6430pub struct DropDatabase {
6431    pub(crate) syntax: SyntaxNode,
6432}
6433impl DropDatabase {
6434    #[inline]
6435    pub fn if_exists(&self) -> Option<IfExists> {
6436        support::child(&self.syntax)
6437    }
6438    #[inline]
6439    pub fn name_ref(&self) -> Option<NameRef> {
6440        support::child(&self.syntax)
6441    }
6442    #[inline]
6443    pub fn database_token(&self) -> Option<SyntaxToken> {
6444        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6445    }
6446    #[inline]
6447    pub fn drop_token(&self) -> Option<SyntaxToken> {
6448        support::token(&self.syntax, SyntaxKind::DROP_KW)
6449    }
6450}
6451
6452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6453pub struct DropDefault {
6454    pub(crate) syntax: SyntaxNode,
6455}
6456impl DropDefault {
6457    #[inline]
6458    pub fn default_token(&self) -> Option<SyntaxToken> {
6459        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6460    }
6461    #[inline]
6462    pub fn drop_token(&self) -> Option<SyntaxToken> {
6463        support::token(&self.syntax, SyntaxKind::DROP_KW)
6464    }
6465}
6466
6467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6468pub struct DropDomain {
6469    pub(crate) syntax: SyntaxNode,
6470}
6471impl DropDomain {
6472    #[inline]
6473    pub fn if_exists(&self) -> Option<IfExists> {
6474        support::child(&self.syntax)
6475    }
6476    #[inline]
6477    pub fn paths(&self) -> AstChildren<Path> {
6478        support::children(&self.syntax)
6479    }
6480    #[inline]
6481    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6482        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6483    }
6484    #[inline]
6485    pub fn domain_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6487    }
6488    #[inline]
6489    pub fn drop_token(&self) -> Option<SyntaxToken> {
6490        support::token(&self.syntax, SyntaxKind::DROP_KW)
6491    }
6492    #[inline]
6493    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6494        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6495    }
6496}
6497
6498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6499pub struct DropEdgeTables {
6500    pub(crate) syntax: SyntaxNode,
6501}
6502impl DropEdgeTables {
6503    #[inline]
6504    pub fn names(&self) -> AstChildren<Name> {
6505        support::children(&self.syntax)
6506    }
6507    #[inline]
6508    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6509        support::token(&self.syntax, SyntaxKind::L_PAREN)
6510    }
6511    #[inline]
6512    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6513        support::token(&self.syntax, SyntaxKind::R_PAREN)
6514    }
6515    #[inline]
6516    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6517        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6518    }
6519    #[inline]
6520    pub fn drop_token(&self) -> Option<SyntaxToken> {
6521        support::token(&self.syntax, SyntaxKind::DROP_KW)
6522    }
6523    #[inline]
6524    pub fn edge_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6526    }
6527    #[inline]
6528    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6530    }
6531    #[inline]
6532    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6534    }
6535    #[inline]
6536    pub fn tables_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6538    }
6539}
6540
6541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6542pub struct DropEventTrigger {
6543    pub(crate) syntax: SyntaxNode,
6544}
6545impl DropEventTrigger {
6546    #[inline]
6547    pub fn if_exists(&self) -> Option<IfExists> {
6548        support::child(&self.syntax)
6549    }
6550    #[inline]
6551    pub fn name_ref(&self) -> Option<NameRef> {
6552        support::child(&self.syntax)
6553    }
6554    #[inline]
6555    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6556        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6557    }
6558    #[inline]
6559    pub fn drop_token(&self) -> Option<SyntaxToken> {
6560        support::token(&self.syntax, SyntaxKind::DROP_KW)
6561    }
6562    #[inline]
6563    pub fn event_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6565    }
6566    #[inline]
6567    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6568        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6569    }
6570    #[inline]
6571    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6572        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6573    }
6574}
6575
6576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6577pub struct DropExpression {
6578    pub(crate) syntax: SyntaxNode,
6579}
6580impl DropExpression {
6581    #[inline]
6582    pub fn if_exists(&self) -> Option<IfExists> {
6583        support::child(&self.syntax)
6584    }
6585    #[inline]
6586    pub fn drop_token(&self) -> Option<SyntaxToken> {
6587        support::token(&self.syntax, SyntaxKind::DROP_KW)
6588    }
6589    #[inline]
6590    pub fn expression_token(&self) -> Option<SyntaxToken> {
6591        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6592    }
6593}
6594
6595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6596pub struct DropExtension {
6597    pub(crate) syntax: SyntaxNode,
6598}
6599impl DropExtension {
6600    #[inline]
6601    pub fn if_exists(&self) -> Option<IfExists> {
6602        support::child(&self.syntax)
6603    }
6604    #[inline]
6605    pub fn name_refs(&self) -> AstChildren<NameRef> {
6606        support::children(&self.syntax)
6607    }
6608    #[inline]
6609    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6610        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6611    }
6612    #[inline]
6613    pub fn drop_token(&self) -> Option<SyntaxToken> {
6614        support::token(&self.syntax, SyntaxKind::DROP_KW)
6615    }
6616    #[inline]
6617    pub fn extension_token(&self) -> Option<SyntaxToken> {
6618        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6619    }
6620    #[inline]
6621    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6623    }
6624}
6625
6626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6627pub struct DropForeignDataWrapper {
6628    pub(crate) syntax: SyntaxNode,
6629}
6630impl DropForeignDataWrapper {
6631    #[inline]
6632    pub fn if_exists(&self) -> Option<IfExists> {
6633        support::child(&self.syntax)
6634    }
6635    #[inline]
6636    pub fn name_refs(&self) -> AstChildren<NameRef> {
6637        support::children(&self.syntax)
6638    }
6639    #[inline]
6640    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6641        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6642    }
6643    #[inline]
6644    pub fn data_token(&self) -> Option<SyntaxToken> {
6645        support::token(&self.syntax, SyntaxKind::DATA_KW)
6646    }
6647    #[inline]
6648    pub fn drop_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::DROP_KW)
6650    }
6651    #[inline]
6652    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6654    }
6655    #[inline]
6656    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6658    }
6659    #[inline]
6660    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6661        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6662    }
6663}
6664
6665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6666pub struct DropForeignTable {
6667    pub(crate) syntax: SyntaxNode,
6668}
6669impl DropForeignTable {
6670    #[inline]
6671    pub fn if_exists(&self) -> Option<IfExists> {
6672        support::child(&self.syntax)
6673    }
6674    #[inline]
6675    pub fn path(&self) -> Option<Path> {
6676        support::child(&self.syntax)
6677    }
6678    #[inline]
6679    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6680        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6681    }
6682    #[inline]
6683    pub fn drop_token(&self) -> Option<SyntaxToken> {
6684        support::token(&self.syntax, SyntaxKind::DROP_KW)
6685    }
6686    #[inline]
6687    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6688        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6689    }
6690    #[inline]
6691    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6692        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6693    }
6694    #[inline]
6695    pub fn table_token(&self) -> Option<SyntaxToken> {
6696        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6697    }
6698}
6699
6700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6701pub struct DropFunction {
6702    pub(crate) syntax: SyntaxNode,
6703}
6704impl DropFunction {
6705    #[inline]
6706    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6707        support::child(&self.syntax)
6708    }
6709    #[inline]
6710    pub fn if_exists(&self) -> Option<IfExists> {
6711        support::child(&self.syntax)
6712    }
6713    #[inline]
6714    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6715        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6716    }
6717    #[inline]
6718    pub fn drop_token(&self) -> Option<SyntaxToken> {
6719        support::token(&self.syntax, SyntaxKind::DROP_KW)
6720    }
6721    #[inline]
6722    pub fn function_token(&self) -> Option<SyntaxToken> {
6723        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6724    }
6725    #[inline]
6726    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6727        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6728    }
6729}
6730
6731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6732pub struct DropGroup {
6733    pub(crate) syntax: SyntaxNode,
6734}
6735impl DropGroup {
6736    #[inline]
6737    pub fn if_exists(&self) -> Option<IfExists> {
6738        support::child(&self.syntax)
6739    }
6740    #[inline]
6741    pub fn name_refs(&self) -> AstChildren<NameRef> {
6742        support::children(&self.syntax)
6743    }
6744    #[inline]
6745    pub fn drop_token(&self) -> Option<SyntaxToken> {
6746        support::token(&self.syntax, SyntaxKind::DROP_KW)
6747    }
6748    #[inline]
6749    pub fn group_token(&self) -> Option<SyntaxToken> {
6750        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6751    }
6752}
6753
6754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6755pub struct DropIdentity {
6756    pub(crate) syntax: SyntaxNode,
6757}
6758impl DropIdentity {
6759    #[inline]
6760    pub fn if_exists(&self) -> Option<IfExists> {
6761        support::child(&self.syntax)
6762    }
6763    #[inline]
6764    pub fn drop_token(&self) -> Option<SyntaxToken> {
6765        support::token(&self.syntax, SyntaxKind::DROP_KW)
6766    }
6767    #[inline]
6768    pub fn identity_token(&self) -> Option<SyntaxToken> {
6769        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6770    }
6771}
6772
6773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6774pub struct DropIndex {
6775    pub(crate) syntax: SyntaxNode,
6776}
6777impl DropIndex {
6778    #[inline]
6779    pub fn if_exists(&self) -> Option<IfExists> {
6780        support::child(&self.syntax)
6781    }
6782    #[inline]
6783    pub fn paths(&self) -> AstChildren<Path> {
6784        support::children(&self.syntax)
6785    }
6786    #[inline]
6787    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6788        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6789    }
6790    #[inline]
6791    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6792        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6793    }
6794    #[inline]
6795    pub fn drop_token(&self) -> Option<SyntaxToken> {
6796        support::token(&self.syntax, SyntaxKind::DROP_KW)
6797    }
6798    #[inline]
6799    pub fn index_token(&self) -> Option<SyntaxToken> {
6800        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6801    }
6802    #[inline]
6803    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6804        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6805    }
6806}
6807
6808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6809pub struct DropLanguage {
6810    pub(crate) syntax: SyntaxNode,
6811}
6812impl DropLanguage {
6813    #[inline]
6814    pub fn if_exists(&self) -> Option<IfExists> {
6815        support::child(&self.syntax)
6816    }
6817    #[inline]
6818    pub fn name_ref(&self) -> Option<NameRef> {
6819        support::child(&self.syntax)
6820    }
6821    #[inline]
6822    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6823        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6824    }
6825    #[inline]
6826    pub fn drop_token(&self) -> Option<SyntaxToken> {
6827        support::token(&self.syntax, SyntaxKind::DROP_KW)
6828    }
6829    #[inline]
6830    pub fn language_token(&self) -> Option<SyntaxToken> {
6831        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6832    }
6833    #[inline]
6834    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6835        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6836    }
6837    #[inline]
6838    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6839        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6840    }
6841}
6842
6843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6844pub struct DropMaterializedView {
6845    pub(crate) syntax: SyntaxNode,
6846}
6847impl DropMaterializedView {
6848    #[inline]
6849    pub fn if_exists(&self) -> Option<IfExists> {
6850        support::child(&self.syntax)
6851    }
6852    #[inline]
6853    pub fn paths(&self) -> AstChildren<Path> {
6854        support::children(&self.syntax)
6855    }
6856    #[inline]
6857    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6858        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6859    }
6860    #[inline]
6861    pub fn drop_token(&self) -> Option<SyntaxToken> {
6862        support::token(&self.syntax, SyntaxKind::DROP_KW)
6863    }
6864    #[inline]
6865    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6866        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6867    }
6868    #[inline]
6869    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6870        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6871    }
6872    #[inline]
6873    pub fn view_token(&self) -> Option<SyntaxToken> {
6874        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6875    }
6876}
6877
6878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6879pub struct DropNotNull {
6880    pub(crate) syntax: SyntaxNode,
6881}
6882impl DropNotNull {
6883    #[inline]
6884    pub fn drop_token(&self) -> Option<SyntaxToken> {
6885        support::token(&self.syntax, SyntaxKind::DROP_KW)
6886    }
6887    #[inline]
6888    pub fn not_token(&self) -> Option<SyntaxToken> {
6889        support::token(&self.syntax, SyntaxKind::NOT_KW)
6890    }
6891    #[inline]
6892    pub fn null_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::NULL_KW)
6894    }
6895}
6896
6897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6898pub struct DropOpClassOption {
6899    pub(crate) syntax: SyntaxNode,
6900}
6901impl DropOpClassOption {
6902    #[inline]
6903    pub fn literal(&self) -> Option<Literal> {
6904        support::child(&self.syntax)
6905    }
6906    #[inline]
6907    pub fn param_list(&self) -> Option<ParamList> {
6908        support::child(&self.syntax)
6909    }
6910    #[inline]
6911    pub fn function_token(&self) -> Option<SyntaxToken> {
6912        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6913    }
6914    #[inline]
6915    pub fn operator_token(&self) -> Option<SyntaxToken> {
6916        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6917    }
6918}
6919
6920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6921pub struct DropOpClassOptionList {
6922    pub(crate) syntax: SyntaxNode,
6923}
6924impl DropOpClassOptionList {
6925    #[inline]
6926    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6927        support::children(&self.syntax)
6928    }
6929}
6930
6931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6932pub struct DropOpClassOptions {
6933    pub(crate) syntax: SyntaxNode,
6934}
6935impl DropOpClassOptions {
6936    #[inline]
6937    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6938        support::child(&self.syntax)
6939    }
6940    #[inline]
6941    pub fn drop_token(&self) -> Option<SyntaxToken> {
6942        support::token(&self.syntax, SyntaxKind::DROP_KW)
6943    }
6944}
6945
6946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6947pub struct DropOperator {
6948    pub(crate) syntax: SyntaxNode,
6949}
6950impl DropOperator {
6951    #[inline]
6952    pub fn if_exists(&self) -> Option<IfExists> {
6953        support::child(&self.syntax)
6954    }
6955    #[inline]
6956    pub fn op_sig_list(&self) -> Option<OpSigList> {
6957        support::child(&self.syntax)
6958    }
6959    #[inline]
6960    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6961        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6962    }
6963    #[inline]
6964    pub fn drop_token(&self) -> Option<SyntaxToken> {
6965        support::token(&self.syntax, SyntaxKind::DROP_KW)
6966    }
6967    #[inline]
6968    pub fn operator_token(&self) -> Option<SyntaxToken> {
6969        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6970    }
6971    #[inline]
6972    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6973        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6974    }
6975}
6976
6977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6978pub struct DropOperatorClass {
6979    pub(crate) syntax: SyntaxNode,
6980}
6981impl DropOperatorClass {
6982    #[inline]
6983    pub fn if_exists(&self) -> Option<IfExists> {
6984        support::child(&self.syntax)
6985    }
6986    #[inline]
6987    pub fn name_ref(&self) -> Option<NameRef> {
6988        support::child(&self.syntax)
6989    }
6990    #[inline]
6991    pub fn path(&self) -> Option<Path> {
6992        support::child(&self.syntax)
6993    }
6994    #[inline]
6995    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6996        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6997    }
6998    #[inline]
6999    pub fn class_token(&self) -> Option<SyntaxToken> {
7000        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7001    }
7002    #[inline]
7003    pub fn drop_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::DROP_KW)
7005    }
7006    #[inline]
7007    pub fn operator_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7009    }
7010    #[inline]
7011    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7012        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7013    }
7014    #[inline]
7015    pub fn using_token(&self) -> Option<SyntaxToken> {
7016        support::token(&self.syntax, SyntaxKind::USING_KW)
7017    }
7018}
7019
7020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7021pub struct DropOperatorFamily {
7022    pub(crate) syntax: SyntaxNode,
7023}
7024impl DropOperatorFamily {
7025    #[inline]
7026    pub fn if_exists(&self) -> Option<IfExists> {
7027        support::child(&self.syntax)
7028    }
7029    #[inline]
7030    pub fn name_ref(&self) -> Option<NameRef> {
7031        support::child(&self.syntax)
7032    }
7033    #[inline]
7034    pub fn path(&self) -> Option<Path> {
7035        support::child(&self.syntax)
7036    }
7037    #[inline]
7038    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7039        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7040    }
7041    #[inline]
7042    pub fn drop_token(&self) -> Option<SyntaxToken> {
7043        support::token(&self.syntax, SyntaxKind::DROP_KW)
7044    }
7045    #[inline]
7046    pub fn family_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7048    }
7049    #[inline]
7050    pub fn operator_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7052    }
7053    #[inline]
7054    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7056    }
7057    #[inline]
7058    pub fn using_token(&self) -> Option<SyntaxToken> {
7059        support::token(&self.syntax, SyntaxKind::USING_KW)
7060    }
7061}
7062
7063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7064pub struct DropOwned {
7065    pub(crate) syntax: SyntaxNode,
7066}
7067impl DropOwned {
7068    #[inline]
7069    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7070        support::child(&self.syntax)
7071    }
7072    #[inline]
7073    pub fn by_token(&self) -> Option<SyntaxToken> {
7074        support::token(&self.syntax, SyntaxKind::BY_KW)
7075    }
7076    #[inline]
7077    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7078        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7079    }
7080    #[inline]
7081    pub fn drop_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::DROP_KW)
7083    }
7084    #[inline]
7085    pub fn owned_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7087    }
7088    #[inline]
7089    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7091    }
7092}
7093
7094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7095pub struct DropPolicy {
7096    pub(crate) syntax: SyntaxNode,
7097}
7098impl DropPolicy {
7099    #[inline]
7100    pub fn if_exists(&self) -> Option<IfExists> {
7101        support::child(&self.syntax)
7102    }
7103    #[inline]
7104    pub fn name_ref(&self) -> Option<NameRef> {
7105        support::child(&self.syntax)
7106    }
7107    #[inline]
7108    pub fn on_table(&self) -> Option<OnTable> {
7109        support::child(&self.syntax)
7110    }
7111    #[inline]
7112    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7114    }
7115    #[inline]
7116    pub fn drop_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::DROP_KW)
7118    }
7119    #[inline]
7120    pub fn policy_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7122    }
7123    #[inline]
7124    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7126    }
7127}
7128
7129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7130pub struct DropProcedure {
7131    pub(crate) syntax: SyntaxNode,
7132}
7133impl DropProcedure {
7134    #[inline]
7135    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7136        support::child(&self.syntax)
7137    }
7138    #[inline]
7139    pub fn if_exists(&self) -> Option<IfExists> {
7140        support::child(&self.syntax)
7141    }
7142    #[inline]
7143    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7144        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7145    }
7146    #[inline]
7147    pub fn drop_token(&self) -> Option<SyntaxToken> {
7148        support::token(&self.syntax, SyntaxKind::DROP_KW)
7149    }
7150    #[inline]
7151    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7152        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7153    }
7154    #[inline]
7155    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7157    }
7158}
7159
7160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7161pub struct DropPropertyGraph {
7162    pub(crate) syntax: SyntaxNode,
7163}
7164impl DropPropertyGraph {
7165    #[inline]
7166    pub fn if_exists(&self) -> Option<IfExists> {
7167        support::child(&self.syntax)
7168    }
7169    #[inline]
7170    pub fn path(&self) -> Option<Path> {
7171        support::child(&self.syntax)
7172    }
7173    #[inline]
7174    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7175        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7176    }
7177    #[inline]
7178    pub fn drop_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::DROP_KW)
7180    }
7181    #[inline]
7182    pub fn graph_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7184    }
7185    #[inline]
7186    pub fn property_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7188    }
7189    #[inline]
7190    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7192    }
7193}
7194
7195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7196pub struct DropPublication {
7197    pub(crate) syntax: SyntaxNode,
7198}
7199impl DropPublication {
7200    #[inline]
7201    pub fn if_exists(&self) -> Option<IfExists> {
7202        support::child(&self.syntax)
7203    }
7204    #[inline]
7205    pub fn name_refs(&self) -> AstChildren<NameRef> {
7206        support::children(&self.syntax)
7207    }
7208    #[inline]
7209    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7210        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7211    }
7212    #[inline]
7213    pub fn drop_token(&self) -> Option<SyntaxToken> {
7214        support::token(&self.syntax, SyntaxKind::DROP_KW)
7215    }
7216    #[inline]
7217    pub fn publication_token(&self) -> Option<SyntaxToken> {
7218        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7219    }
7220    #[inline]
7221    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7223    }
7224}
7225
7226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7227pub struct DropRole {
7228    pub(crate) syntax: SyntaxNode,
7229}
7230impl DropRole {
7231    #[inline]
7232    pub fn if_exists(&self) -> Option<IfExists> {
7233        support::child(&self.syntax)
7234    }
7235    #[inline]
7236    pub fn name_refs(&self) -> AstChildren<NameRef> {
7237        support::children(&self.syntax)
7238    }
7239    #[inline]
7240    pub fn drop_token(&self) -> Option<SyntaxToken> {
7241        support::token(&self.syntax, SyntaxKind::DROP_KW)
7242    }
7243    #[inline]
7244    pub fn role_token(&self) -> Option<SyntaxToken> {
7245        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7246    }
7247}
7248
7249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7250pub struct DropRoutine {
7251    pub(crate) syntax: SyntaxNode,
7252}
7253impl DropRoutine {
7254    #[inline]
7255    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7256        support::child(&self.syntax)
7257    }
7258    #[inline]
7259    pub fn if_exists(&self) -> Option<IfExists> {
7260        support::child(&self.syntax)
7261    }
7262    #[inline]
7263    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7264        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7265    }
7266    #[inline]
7267    pub fn drop_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::DROP_KW)
7269    }
7270    #[inline]
7271    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7273    }
7274    #[inline]
7275    pub fn routine_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7277    }
7278}
7279
7280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7281pub struct DropRule {
7282    pub(crate) syntax: SyntaxNode,
7283}
7284impl DropRule {
7285    #[inline]
7286    pub fn if_exists(&self) -> Option<IfExists> {
7287        support::child(&self.syntax)
7288    }
7289    #[inline]
7290    pub fn name_ref(&self) -> Option<NameRef> {
7291        support::child(&self.syntax)
7292    }
7293    #[inline]
7294    pub fn on_table(&self) -> Option<OnTable> {
7295        support::child(&self.syntax)
7296    }
7297    #[inline]
7298    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7299        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7300    }
7301    #[inline]
7302    pub fn drop_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::DROP_KW)
7304    }
7305    #[inline]
7306    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7308    }
7309    #[inline]
7310    pub fn rule_token(&self) -> Option<SyntaxToken> {
7311        support::token(&self.syntax, SyntaxKind::RULE_KW)
7312    }
7313}
7314
7315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7316pub struct DropSchema {
7317    pub(crate) syntax: SyntaxNode,
7318}
7319impl DropSchema {
7320    #[inline]
7321    pub fn if_exists(&self) -> Option<IfExists> {
7322        support::child(&self.syntax)
7323    }
7324    #[inline]
7325    pub fn name_refs(&self) -> AstChildren<NameRef> {
7326        support::children(&self.syntax)
7327    }
7328    #[inline]
7329    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7330        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7331    }
7332    #[inline]
7333    pub fn drop_token(&self) -> Option<SyntaxToken> {
7334        support::token(&self.syntax, SyntaxKind::DROP_KW)
7335    }
7336    #[inline]
7337    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7339    }
7340    #[inline]
7341    pub fn schema_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7343    }
7344}
7345
7346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7347pub struct DropSequence {
7348    pub(crate) syntax: SyntaxNode,
7349}
7350impl DropSequence {
7351    #[inline]
7352    pub fn if_exists(&self) -> Option<IfExists> {
7353        support::child(&self.syntax)
7354    }
7355    #[inline]
7356    pub fn paths(&self) -> AstChildren<Path> {
7357        support::children(&self.syntax)
7358    }
7359    #[inline]
7360    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7361        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7362    }
7363    #[inline]
7364    pub fn drop_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::DROP_KW)
7366    }
7367    #[inline]
7368    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7369        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7370    }
7371    #[inline]
7372    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7374    }
7375}
7376
7377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7378pub struct DropServer {
7379    pub(crate) syntax: SyntaxNode,
7380}
7381impl DropServer {
7382    #[inline]
7383    pub fn if_exists(&self) -> Option<IfExists> {
7384        support::child(&self.syntax)
7385    }
7386    #[inline]
7387    pub fn name_ref(&self) -> Option<NameRef> {
7388        support::child(&self.syntax)
7389    }
7390    #[inline]
7391    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7392        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7393    }
7394    #[inline]
7395    pub fn drop_token(&self) -> Option<SyntaxToken> {
7396        support::token(&self.syntax, SyntaxKind::DROP_KW)
7397    }
7398    #[inline]
7399    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7400        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7401    }
7402    #[inline]
7403    pub fn server_token(&self) -> Option<SyntaxToken> {
7404        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7405    }
7406}
7407
7408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7409pub struct DropStatistics {
7410    pub(crate) syntax: SyntaxNode,
7411}
7412impl DropStatistics {
7413    #[inline]
7414    pub fn if_exists(&self) -> Option<IfExists> {
7415        support::child(&self.syntax)
7416    }
7417    #[inline]
7418    pub fn paths(&self) -> AstChildren<Path> {
7419        support::children(&self.syntax)
7420    }
7421    #[inline]
7422    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7423        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7424    }
7425    #[inline]
7426    pub fn drop_token(&self) -> Option<SyntaxToken> {
7427        support::token(&self.syntax, SyntaxKind::DROP_KW)
7428    }
7429    #[inline]
7430    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7431        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7432    }
7433    #[inline]
7434    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7435        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7436    }
7437}
7438
7439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7440pub struct DropSubscription {
7441    pub(crate) syntax: SyntaxNode,
7442}
7443impl DropSubscription {
7444    #[inline]
7445    pub fn if_exists(&self) -> Option<IfExists> {
7446        support::child(&self.syntax)
7447    }
7448    #[inline]
7449    pub fn name_ref(&self) -> Option<NameRef> {
7450        support::child(&self.syntax)
7451    }
7452    #[inline]
7453    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7454        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7455    }
7456    #[inline]
7457    pub fn drop_token(&self) -> Option<SyntaxToken> {
7458        support::token(&self.syntax, SyntaxKind::DROP_KW)
7459    }
7460    #[inline]
7461    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7462        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7463    }
7464    #[inline]
7465    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7467    }
7468}
7469
7470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7471pub struct DropTable {
7472    pub(crate) syntax: SyntaxNode,
7473}
7474impl DropTable {
7475    #[inline]
7476    pub fn if_exists(&self) -> Option<IfExists> {
7477        support::child(&self.syntax)
7478    }
7479    #[inline]
7480    pub fn path(&self) -> Option<Path> {
7481        support::child(&self.syntax)
7482    }
7483    #[inline]
7484    pub fn comma_token(&self) -> Option<SyntaxToken> {
7485        support::token(&self.syntax, SyntaxKind::COMMA)
7486    }
7487    #[inline]
7488    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7489        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7490    }
7491    #[inline]
7492    pub fn drop_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::DROP_KW)
7494    }
7495    #[inline]
7496    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7497        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7498    }
7499    #[inline]
7500    pub fn table_token(&self) -> Option<SyntaxToken> {
7501        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7502    }
7503}
7504
7505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7506pub struct DropTablespace {
7507    pub(crate) syntax: SyntaxNode,
7508}
7509impl DropTablespace {
7510    #[inline]
7511    pub fn if_exists(&self) -> Option<IfExists> {
7512        support::child(&self.syntax)
7513    }
7514    #[inline]
7515    pub fn name_ref(&self) -> Option<NameRef> {
7516        support::child(&self.syntax)
7517    }
7518    #[inline]
7519    pub fn drop_token(&self) -> Option<SyntaxToken> {
7520        support::token(&self.syntax, SyntaxKind::DROP_KW)
7521    }
7522    #[inline]
7523    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7525    }
7526}
7527
7528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7529pub struct DropTextSearchConfig {
7530    pub(crate) syntax: SyntaxNode,
7531}
7532impl DropTextSearchConfig {
7533    #[inline]
7534    pub fn if_exists(&self) -> Option<IfExists> {
7535        support::child(&self.syntax)
7536    }
7537    #[inline]
7538    pub fn path(&self) -> Option<Path> {
7539        support::child(&self.syntax)
7540    }
7541    #[inline]
7542    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7543        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7544    }
7545    #[inline]
7546    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7547        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7548    }
7549    #[inline]
7550    pub fn drop_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::DROP_KW)
7552    }
7553    #[inline]
7554    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7555        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7556    }
7557    #[inline]
7558    pub fn search_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7560    }
7561    #[inline]
7562    pub fn text_token(&self) -> Option<SyntaxToken> {
7563        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7564    }
7565}
7566
7567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7568pub struct DropTextSearchDict {
7569    pub(crate) syntax: SyntaxNode,
7570}
7571impl DropTextSearchDict {
7572    #[inline]
7573    pub fn if_exists(&self) -> Option<IfExists> {
7574        support::child(&self.syntax)
7575    }
7576    #[inline]
7577    pub fn path(&self) -> Option<Path> {
7578        support::child(&self.syntax)
7579    }
7580    #[inline]
7581    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7583    }
7584    #[inline]
7585    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7586        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7587    }
7588    #[inline]
7589    pub fn drop_token(&self) -> Option<SyntaxToken> {
7590        support::token(&self.syntax, SyntaxKind::DROP_KW)
7591    }
7592    #[inline]
7593    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7595    }
7596    #[inline]
7597    pub fn search_token(&self) -> Option<SyntaxToken> {
7598        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7599    }
7600    #[inline]
7601    pub fn text_token(&self) -> Option<SyntaxToken> {
7602        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7603    }
7604}
7605
7606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7607pub struct DropTextSearchParser {
7608    pub(crate) syntax: SyntaxNode,
7609}
7610impl DropTextSearchParser {
7611    #[inline]
7612    pub fn if_exists(&self) -> Option<IfExists> {
7613        support::child(&self.syntax)
7614    }
7615    #[inline]
7616    pub fn path(&self) -> Option<Path> {
7617        support::child(&self.syntax)
7618    }
7619    #[inline]
7620    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7621        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7622    }
7623    #[inline]
7624    pub fn drop_token(&self) -> Option<SyntaxToken> {
7625        support::token(&self.syntax, SyntaxKind::DROP_KW)
7626    }
7627    #[inline]
7628    pub fn parser_token(&self) -> Option<SyntaxToken> {
7629        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7630    }
7631    #[inline]
7632    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7633        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7634    }
7635    #[inline]
7636    pub fn search_token(&self) -> Option<SyntaxToken> {
7637        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7638    }
7639    #[inline]
7640    pub fn text_token(&self) -> Option<SyntaxToken> {
7641        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7642    }
7643}
7644
7645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7646pub struct DropTextSearchTemplate {
7647    pub(crate) syntax: SyntaxNode,
7648}
7649impl DropTextSearchTemplate {
7650    #[inline]
7651    pub fn if_exists(&self) -> Option<IfExists> {
7652        support::child(&self.syntax)
7653    }
7654    #[inline]
7655    pub fn path(&self) -> Option<Path> {
7656        support::child(&self.syntax)
7657    }
7658    #[inline]
7659    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7660        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7661    }
7662    #[inline]
7663    pub fn drop_token(&self) -> Option<SyntaxToken> {
7664        support::token(&self.syntax, SyntaxKind::DROP_KW)
7665    }
7666    #[inline]
7667    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7669    }
7670    #[inline]
7671    pub fn search_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7673    }
7674    #[inline]
7675    pub fn template_token(&self) -> Option<SyntaxToken> {
7676        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7677    }
7678    #[inline]
7679    pub fn text_token(&self) -> Option<SyntaxToken> {
7680        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7681    }
7682}
7683
7684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7685pub struct DropTransform {
7686    pub(crate) syntax: SyntaxNode,
7687}
7688impl DropTransform {
7689    #[inline]
7690    pub fn if_exists(&self) -> Option<IfExists> {
7691        support::child(&self.syntax)
7692    }
7693    #[inline]
7694    pub fn language(&self) -> Option<NameRef> {
7695        support::child(&self.syntax)
7696    }
7697    #[inline]
7698    pub fn ty(&self) -> Option<Type> {
7699        support::child(&self.syntax)
7700    }
7701    #[inline]
7702    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7703        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7704    }
7705    #[inline]
7706    pub fn drop_token(&self) -> Option<SyntaxToken> {
7707        support::token(&self.syntax, SyntaxKind::DROP_KW)
7708    }
7709    #[inline]
7710    pub fn for_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::FOR_KW)
7712    }
7713    #[inline]
7714    pub fn language_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7716    }
7717    #[inline]
7718    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7719        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7720    }
7721    #[inline]
7722    pub fn transform_token(&self) -> Option<SyntaxToken> {
7723        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7724    }
7725}
7726
7727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7728pub struct DropTrigger {
7729    pub(crate) syntax: SyntaxNode,
7730}
7731impl DropTrigger {
7732    #[inline]
7733    pub fn if_exists(&self) -> Option<IfExists> {
7734        support::child(&self.syntax)
7735    }
7736    #[inline]
7737    pub fn on_table(&self) -> Option<OnTable> {
7738        support::child(&self.syntax)
7739    }
7740    #[inline]
7741    pub fn path(&self) -> Option<Path> {
7742        support::child(&self.syntax)
7743    }
7744    #[inline]
7745    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7746        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7747    }
7748    #[inline]
7749    pub fn drop_token(&self) -> Option<SyntaxToken> {
7750        support::token(&self.syntax, SyntaxKind::DROP_KW)
7751    }
7752    #[inline]
7753    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7754        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7755    }
7756    #[inline]
7757    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7759    }
7760}
7761
7762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7763pub struct DropType {
7764    pub(crate) syntax: SyntaxNode,
7765}
7766impl DropType {
7767    #[inline]
7768    pub fn if_exists(&self) -> Option<IfExists> {
7769        support::child(&self.syntax)
7770    }
7771    #[inline]
7772    pub fn paths(&self) -> AstChildren<Path> {
7773        support::children(&self.syntax)
7774    }
7775    #[inline]
7776    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7777        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7778    }
7779    #[inline]
7780    pub fn drop_token(&self) -> Option<SyntaxToken> {
7781        support::token(&self.syntax, SyntaxKind::DROP_KW)
7782    }
7783    #[inline]
7784    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7785        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7786    }
7787    #[inline]
7788    pub fn type_token(&self) -> Option<SyntaxToken> {
7789        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7790    }
7791}
7792
7793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7794pub struct DropUser {
7795    pub(crate) syntax: SyntaxNode,
7796}
7797impl DropUser {
7798    #[inline]
7799    pub fn if_exists(&self) -> Option<IfExists> {
7800        support::child(&self.syntax)
7801    }
7802    #[inline]
7803    pub fn name_refs(&self) -> AstChildren<NameRef> {
7804        support::children(&self.syntax)
7805    }
7806    #[inline]
7807    pub fn drop_token(&self) -> Option<SyntaxToken> {
7808        support::token(&self.syntax, SyntaxKind::DROP_KW)
7809    }
7810    #[inline]
7811    pub fn user_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::USER_KW)
7813    }
7814}
7815
7816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7817pub struct DropUserMapping {
7818    pub(crate) syntax: SyntaxNode,
7819}
7820impl DropUserMapping {
7821    #[inline]
7822    pub fn if_exists(&self) -> Option<IfExists> {
7823        support::child(&self.syntax)
7824    }
7825    #[inline]
7826    pub fn role_ref(&self) -> Option<RoleRef> {
7827        support::child(&self.syntax)
7828    }
7829    #[inline]
7830    pub fn server_name(&self) -> Option<ServerName> {
7831        support::child(&self.syntax)
7832    }
7833    #[inline]
7834    pub fn drop_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::DROP_KW)
7836    }
7837    #[inline]
7838    pub fn for_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::FOR_KW)
7840    }
7841    #[inline]
7842    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7844    }
7845    #[inline]
7846    pub fn user_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::USER_KW)
7848    }
7849}
7850
7851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7852pub struct DropVertexEdgeLabel {
7853    pub(crate) syntax: SyntaxNode,
7854}
7855impl DropVertexEdgeLabel {
7856    #[inline]
7857    pub fn name_ref(&self) -> Option<NameRef> {
7858        support::child(&self.syntax)
7859    }
7860    #[inline]
7861    pub fn alter_token(&self) -> Option<SyntaxToken> {
7862        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7863    }
7864    #[inline]
7865    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7866        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7867    }
7868    #[inline]
7869    pub fn drop_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::DROP_KW)
7871    }
7872    #[inline]
7873    pub fn edge_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7875    }
7876    #[inline]
7877    pub fn label_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7879    }
7880    #[inline]
7881    pub fn node_token(&self) -> Option<SyntaxToken> {
7882        support::token(&self.syntax, SyntaxKind::NODE_KW)
7883    }
7884    #[inline]
7885    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7886        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7887    }
7888    #[inline]
7889    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7891    }
7892    #[inline]
7893    pub fn table_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7895    }
7896    #[inline]
7897    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7899    }
7900}
7901
7902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7903pub struct DropVertexEdgeLabelProperties {
7904    pub(crate) syntax: SyntaxNode,
7905}
7906impl DropVertexEdgeLabelProperties {
7907    #[inline]
7908    pub fn name_ref(&self) -> Option<NameRef> {
7909        support::child(&self.syntax)
7910    }
7911    #[inline]
7912    pub fn names(&self) -> AstChildren<Name> {
7913        support::children(&self.syntax)
7914    }
7915    #[inline]
7916    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7917        support::token(&self.syntax, SyntaxKind::L_PAREN)
7918    }
7919    #[inline]
7920    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7921        support::token(&self.syntax, SyntaxKind::R_PAREN)
7922    }
7923    #[inline]
7924    pub fn alter_token(&self) -> Option<SyntaxToken> {
7925        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7926    }
7927    #[inline]
7928    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7929        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7930    }
7931    #[inline]
7932    pub fn drop_token(&self) -> Option<SyntaxToken> {
7933        support::token(&self.syntax, SyntaxKind::DROP_KW)
7934    }
7935    #[inline]
7936    pub fn edge_token(&self) -> Option<SyntaxToken> {
7937        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7938    }
7939    #[inline]
7940    pub fn label_token(&self) -> Option<SyntaxToken> {
7941        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7942    }
7943    #[inline]
7944    pub fn node_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::NODE_KW)
7946    }
7947    #[inline]
7948    pub fn properties_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
7950    }
7951    #[inline]
7952    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7954    }
7955    #[inline]
7956    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7958    }
7959    #[inline]
7960    pub fn table_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7962    }
7963    #[inline]
7964    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7966    }
7967}
7968
7969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7970pub struct DropVertexTables {
7971    pub(crate) syntax: SyntaxNode,
7972}
7973impl DropVertexTables {
7974    #[inline]
7975    pub fn names(&self) -> AstChildren<Name> {
7976        support::children(&self.syntax)
7977    }
7978    #[inline]
7979    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7980        support::token(&self.syntax, SyntaxKind::L_PAREN)
7981    }
7982    #[inline]
7983    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7984        support::token(&self.syntax, SyntaxKind::R_PAREN)
7985    }
7986    #[inline]
7987    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7989    }
7990    #[inline]
7991    pub fn drop_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::DROP_KW)
7993    }
7994    #[inline]
7995    pub fn node_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::NODE_KW)
7997    }
7998    #[inline]
7999    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8001    }
8002    #[inline]
8003    pub fn tables_token(&self) -> Option<SyntaxToken> {
8004        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8005    }
8006    #[inline]
8007    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8008        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8009    }
8010}
8011
8012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8013pub struct DropView {
8014    pub(crate) syntax: SyntaxNode,
8015}
8016impl DropView {
8017    #[inline]
8018    pub fn if_exists(&self) -> Option<IfExists> {
8019        support::child(&self.syntax)
8020    }
8021    #[inline]
8022    pub fn path(&self) -> Option<Path> {
8023        support::child(&self.syntax)
8024    }
8025    #[inline]
8026    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8027        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8028    }
8029    #[inline]
8030    pub fn drop_token(&self) -> Option<SyntaxToken> {
8031        support::token(&self.syntax, SyntaxKind::DROP_KW)
8032    }
8033    #[inline]
8034    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8035        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8036    }
8037    #[inline]
8038    pub fn view_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8040    }
8041}
8042
8043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8044pub struct EdgeAny {
8045    pub(crate) syntax: SyntaxNode,
8046}
8047impl EdgeAny {
8048    #[inline]
8049    pub fn is_label(&self) -> Option<IsLabel> {
8050        support::child(&self.syntax)
8051    }
8052    #[inline]
8053    pub fn name(&self) -> Option<Name> {
8054        support::child(&self.syntax)
8055    }
8056    #[inline]
8057    pub fn where_clause(&self) -> Option<WhereClause> {
8058        support::child(&self.syntax)
8059    }
8060    #[inline]
8061    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8062        support::token(&self.syntax, SyntaxKind::L_BRACK)
8063    }
8064    #[inline]
8065    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8066        support::token(&self.syntax, SyntaxKind::R_BRACK)
8067    }
8068    #[inline]
8069    pub fn minus_token(&self) -> Option<SyntaxToken> {
8070        support::token(&self.syntax, SyntaxKind::MINUS)
8071    }
8072}
8073
8074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8075pub struct EdgeLeft {
8076    pub(crate) syntax: SyntaxNode,
8077}
8078impl EdgeLeft {
8079    #[inline]
8080    pub fn is_label(&self) -> Option<IsLabel> {
8081        support::child(&self.syntax)
8082    }
8083    #[inline]
8084    pub fn name(&self) -> Option<Name> {
8085        support::child(&self.syntax)
8086    }
8087    #[inline]
8088    pub fn where_clause(&self) -> Option<WhereClause> {
8089        support::child(&self.syntax)
8090    }
8091    #[inline]
8092    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8093        support::token(&self.syntax, SyntaxKind::L_BRACK)
8094    }
8095    #[inline]
8096    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8097        support::token(&self.syntax, SyntaxKind::R_BRACK)
8098    }
8099    #[inline]
8100    pub fn minus_token(&self) -> Option<SyntaxToken> {
8101        support::token(&self.syntax, SyntaxKind::MINUS)
8102    }
8103    #[inline]
8104    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8105        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8106    }
8107}
8108
8109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8110pub struct EdgeRight {
8111    pub(crate) syntax: SyntaxNode,
8112}
8113impl EdgeRight {
8114    #[inline]
8115    pub fn is_label(&self) -> Option<IsLabel> {
8116        support::child(&self.syntax)
8117    }
8118    #[inline]
8119    pub fn name(&self) -> Option<Name> {
8120        support::child(&self.syntax)
8121    }
8122    #[inline]
8123    pub fn where_clause(&self) -> Option<WhereClause> {
8124        support::child(&self.syntax)
8125    }
8126    #[inline]
8127    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8128        support::token(&self.syntax, SyntaxKind::L_BRACK)
8129    }
8130    #[inline]
8131    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8132        support::token(&self.syntax, SyntaxKind::R_BRACK)
8133    }
8134    #[inline]
8135    pub fn minus_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::MINUS)
8137    }
8138    #[inline]
8139    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8140        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8141    }
8142}
8143
8144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8145pub struct EdgeTableDef {
8146    pub(crate) syntax: SyntaxNode,
8147}
8148impl EdgeTableDef {
8149    #[inline]
8150    pub fn column_list(&self) -> Option<ColumnList> {
8151        support::child(&self.syntax)
8152    }
8153    #[inline]
8154    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8155        support::child(&self.syntax)
8156    }
8157    #[inline]
8158    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8159        support::child(&self.syntax)
8160    }
8161    #[inline]
8162    pub fn name(&self) -> Option<Name> {
8163        support::child(&self.syntax)
8164    }
8165    #[inline]
8166    pub fn path(&self) -> Option<Path> {
8167        support::child(&self.syntax)
8168    }
8169    #[inline]
8170    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8171        support::child(&self.syntax)
8172    }
8173    #[inline]
8174    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8175        support::token(&self.syntax, SyntaxKind::L_PAREN)
8176    }
8177    #[inline]
8178    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8179        support::token(&self.syntax, SyntaxKind::R_PAREN)
8180    }
8181    #[inline]
8182    pub fn as_token(&self) -> Option<SyntaxToken> {
8183        support::token(&self.syntax, SyntaxKind::AS_KW)
8184    }
8185    #[inline]
8186    pub fn key_token(&self) -> Option<SyntaxToken> {
8187        support::token(&self.syntax, SyntaxKind::KEY_KW)
8188    }
8189}
8190
8191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8192pub struct EdgeTables {
8193    pub(crate) syntax: SyntaxNode,
8194}
8195impl EdgeTables {
8196    #[inline]
8197    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8198        support::children(&self.syntax)
8199    }
8200    #[inline]
8201    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8202        support::token(&self.syntax, SyntaxKind::L_PAREN)
8203    }
8204    #[inline]
8205    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8206        support::token(&self.syntax, SyntaxKind::R_PAREN)
8207    }
8208    #[inline]
8209    pub fn edge_token(&self) -> Option<SyntaxToken> {
8210        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8211    }
8212    #[inline]
8213    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8214        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8215    }
8216    #[inline]
8217    pub fn tables_token(&self) -> Option<SyntaxToken> {
8218        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8219    }
8220}
8221
8222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8223pub struct ElseClause {
8224    pub(crate) syntax: SyntaxNode,
8225}
8226impl ElseClause {
8227    #[inline]
8228    pub fn expr(&self) -> Option<Expr> {
8229        support::child(&self.syntax)
8230    }
8231    #[inline]
8232    pub fn else_token(&self) -> Option<SyntaxToken> {
8233        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8234    }
8235}
8236
8237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8238pub struct EnableAlwaysRule {
8239    pub(crate) syntax: SyntaxNode,
8240}
8241impl EnableAlwaysRule {
8242    #[inline]
8243    pub fn always_token(&self) -> Option<SyntaxToken> {
8244        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8245    }
8246    #[inline]
8247    pub fn enable_token(&self) -> Option<SyntaxToken> {
8248        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8249    }
8250    #[inline]
8251    pub fn rule_token(&self) -> Option<SyntaxToken> {
8252        support::token(&self.syntax, SyntaxKind::RULE_KW)
8253    }
8254}
8255
8256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8257pub struct EnableAlwaysTrigger {
8258    pub(crate) syntax: SyntaxNode,
8259}
8260impl EnableAlwaysTrigger {
8261    #[inline]
8262    pub fn always_token(&self) -> Option<SyntaxToken> {
8263        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8264    }
8265    #[inline]
8266    pub fn enable_token(&self) -> Option<SyntaxToken> {
8267        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8268    }
8269    #[inline]
8270    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8271        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8272    }
8273}
8274
8275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8276pub struct EnableReplicaRule {
8277    pub(crate) syntax: SyntaxNode,
8278}
8279impl EnableReplicaRule {
8280    #[inline]
8281    pub fn enable_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8283    }
8284    #[inline]
8285    pub fn replica_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8287    }
8288    #[inline]
8289    pub fn rule_token(&self) -> Option<SyntaxToken> {
8290        support::token(&self.syntax, SyntaxKind::RULE_KW)
8291    }
8292}
8293
8294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8295pub struct EnableReplicaTrigger {
8296    pub(crate) syntax: SyntaxNode,
8297}
8298impl EnableReplicaTrigger {
8299    #[inline]
8300    pub fn enable_token(&self) -> Option<SyntaxToken> {
8301        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8302    }
8303    #[inline]
8304    pub fn replica_token(&self) -> Option<SyntaxToken> {
8305        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8306    }
8307    #[inline]
8308    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8310    }
8311}
8312
8313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8314pub struct EnableRls {
8315    pub(crate) syntax: SyntaxNode,
8316}
8317impl EnableRls {
8318    #[inline]
8319    pub fn enable_token(&self) -> Option<SyntaxToken> {
8320        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8321    }
8322    #[inline]
8323    pub fn level_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8325    }
8326    #[inline]
8327    pub fn row_token(&self) -> Option<SyntaxToken> {
8328        support::token(&self.syntax, SyntaxKind::ROW_KW)
8329    }
8330    #[inline]
8331    pub fn security_token(&self) -> Option<SyntaxToken> {
8332        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8333    }
8334}
8335
8336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8337pub struct EnableRule {
8338    pub(crate) syntax: SyntaxNode,
8339}
8340impl EnableRule {
8341    #[inline]
8342    pub fn enable_token(&self) -> Option<SyntaxToken> {
8343        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8344    }
8345    #[inline]
8346    pub fn rule_token(&self) -> Option<SyntaxToken> {
8347        support::token(&self.syntax, SyntaxKind::RULE_KW)
8348    }
8349}
8350
8351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8352pub struct EnableTrigger {
8353    pub(crate) syntax: SyntaxNode,
8354}
8355impl EnableTrigger {
8356    #[inline]
8357    pub fn enable_token(&self) -> Option<SyntaxToken> {
8358        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8359    }
8360    #[inline]
8361    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8362        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8363    }
8364}
8365
8366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8367pub struct Enforced {
8368    pub(crate) syntax: SyntaxNode,
8369}
8370impl Enforced {
8371    #[inline]
8372    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8373        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8374    }
8375}
8376
8377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8378pub struct EventTriggerWhen {
8379    pub(crate) syntax: SyntaxNode,
8380}
8381impl EventTriggerWhen {
8382    #[inline]
8383    pub fn literals(&self) -> AstChildren<Literal> {
8384        support::children(&self.syntax)
8385    }
8386    #[inline]
8387    pub fn name_ref(&self) -> Option<NameRef> {
8388        support::child(&self.syntax)
8389    }
8390    #[inline]
8391    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8392        support::token(&self.syntax, SyntaxKind::L_PAREN)
8393    }
8394    #[inline]
8395    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8396        support::token(&self.syntax, SyntaxKind::R_PAREN)
8397    }
8398    #[inline]
8399    pub fn in_token(&self) -> Option<SyntaxToken> {
8400        support::token(&self.syntax, SyntaxKind::IN_KW)
8401    }
8402}
8403
8404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8405pub struct EventTriggerWhenClause {
8406    pub(crate) syntax: SyntaxNode,
8407}
8408impl EventTriggerWhenClause {
8409    #[inline]
8410    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8411        support::children(&self.syntax)
8412    }
8413    #[inline]
8414    pub fn when_token(&self) -> Option<SyntaxToken> {
8415        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8416    }
8417}
8418
8419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8420pub struct ExceptTableClause {
8421    pub(crate) syntax: SyntaxNode,
8422}
8423impl ExceptTableClause {
8424    #[inline]
8425    pub fn relation_names(&self) -> AstChildren<RelationName> {
8426        support::children(&self.syntax)
8427    }
8428    #[inline]
8429    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8430        support::token(&self.syntax, SyntaxKind::L_PAREN)
8431    }
8432    #[inline]
8433    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::R_PAREN)
8435    }
8436    #[inline]
8437    pub fn except_token(&self) -> Option<SyntaxToken> {
8438        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8439    }
8440    #[inline]
8441    pub fn table_token(&self) -> Option<SyntaxToken> {
8442        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8443    }
8444}
8445
8446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8447pub struct ExceptTables {
8448    pub(crate) syntax: SyntaxNode,
8449}
8450impl ExceptTables {
8451    #[inline]
8452    pub fn name_refs(&self) -> AstChildren<NameRef> {
8453        support::children(&self.syntax)
8454    }
8455    #[inline]
8456    pub fn except_token(&self) -> Option<SyntaxToken> {
8457        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8458    }
8459}
8460
8461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8462pub struct ExcludeConstraint {
8463    pub(crate) syntax: SyntaxNode,
8464}
8465impl ExcludeConstraint {
8466    #[inline]
8467    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8468        support::child(&self.syntax)
8469    }
8470    #[inline]
8471    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8472        support::child(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn constraint_name(&self) -> Option<ConstraintName> {
8476        support::child(&self.syntax)
8477    }
8478    #[inline]
8479    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
8480        support::child(&self.syntax)
8481    }
8482    #[inline]
8483    pub fn exclude_token(&self) -> Option<SyntaxToken> {
8484        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
8485    }
8486}
8487
8488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8489pub struct Execute {
8490    pub(crate) syntax: SyntaxNode,
8491}
8492impl Execute {
8493    #[inline]
8494    pub fn arg_list(&self) -> Option<ArgList> {
8495        support::child(&self.syntax)
8496    }
8497    #[inline]
8498    pub fn name_ref(&self) -> Option<NameRef> {
8499        support::child(&self.syntax)
8500    }
8501    #[inline]
8502    pub fn execute_token(&self) -> Option<SyntaxToken> {
8503        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
8504    }
8505}
8506
8507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8508pub struct ExistsFn {
8509    pub(crate) syntax: SyntaxNode,
8510}
8511impl ExistsFn {
8512    #[inline]
8513    pub fn select_variant(&self) -> Option<SelectVariant> {
8514        support::child(&self.syntax)
8515    }
8516    #[inline]
8517    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8518        support::token(&self.syntax, SyntaxKind::L_PAREN)
8519    }
8520    #[inline]
8521    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::R_PAREN)
8523    }
8524    #[inline]
8525    pub fn exists_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8527    }
8528}
8529
8530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8531pub struct Explain {
8532    pub(crate) syntax: SyntaxNode,
8533}
8534impl Explain {
8535    #[inline]
8536    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
8537        support::child(&self.syntax)
8538    }
8539    #[inline]
8540    pub fn analyse_token(&self) -> Option<SyntaxToken> {
8541        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
8542    }
8543    #[inline]
8544    pub fn analyze_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
8546    }
8547    #[inline]
8548    pub fn explain_token(&self) -> Option<SyntaxToken> {
8549        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
8550    }
8551    #[inline]
8552    pub fn verbose_token(&self) -> Option<SyntaxToken> {
8553        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
8554    }
8555}
8556
8557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8558pub struct ExprAsName {
8559    pub(crate) syntax: SyntaxNode,
8560}
8561impl ExprAsName {
8562    #[inline]
8563    pub fn as_name(&self) -> Option<AsName> {
8564        support::child(&self.syntax)
8565    }
8566    #[inline]
8567    pub fn expr(&self) -> Option<Expr> {
8568        support::child(&self.syntax)
8569    }
8570}
8571
8572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8573pub struct ExprAsNameList {
8574    pub(crate) syntax: SyntaxNode,
8575}
8576impl ExprAsNameList {
8577    #[inline]
8578    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
8579        support::children(&self.syntax)
8580    }
8581}
8582
8583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8584pub struct ExprType {
8585    pub(crate) syntax: SyntaxNode,
8586}
8587impl ExprType {
8588    #[inline]
8589    pub fn expr(&self) -> Option<Expr> {
8590        support::child(&self.syntax)
8591    }
8592}
8593
8594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8595pub struct ExtractFn {
8596    pub(crate) syntax: SyntaxNode,
8597}
8598impl ExtractFn {
8599    #[inline]
8600    pub fn expr(&self) -> Option<Expr> {
8601        support::child(&self.syntax)
8602    }
8603    #[inline]
8604    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8605        support::token(&self.syntax, SyntaxKind::L_PAREN)
8606    }
8607    #[inline]
8608    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8609        support::token(&self.syntax, SyntaxKind::R_PAREN)
8610    }
8611    #[inline]
8612    pub fn day_token(&self) -> Option<SyntaxToken> {
8613        support::token(&self.syntax, SyntaxKind::DAY_KW)
8614    }
8615    #[inline]
8616    pub fn extract_token(&self) -> Option<SyntaxToken> {
8617        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
8618    }
8619    #[inline]
8620    pub fn from_token(&self) -> Option<SyntaxToken> {
8621        support::token(&self.syntax, SyntaxKind::FROM_KW)
8622    }
8623    #[inline]
8624    pub fn hour_token(&self) -> Option<SyntaxToken> {
8625        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8626    }
8627    #[inline]
8628    pub fn ident_token(&self) -> Option<SyntaxToken> {
8629        support::token(&self.syntax, SyntaxKind::IDENT)
8630    }
8631    #[inline]
8632    pub fn minute_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8634    }
8635    #[inline]
8636    pub fn month_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8638    }
8639    #[inline]
8640    pub fn second_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8642    }
8643    #[inline]
8644    pub fn string_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::STRING_KW)
8646    }
8647    #[inline]
8648    pub fn year_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8650    }
8651}
8652
8653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8654pub struct FatArrow {
8655    pub(crate) syntax: SyntaxNode,
8656}
8657impl FatArrow {
8658    #[inline]
8659    pub fn eq_token(&self) -> Option<SyntaxToken> {
8660        support::token(&self.syntax, SyntaxKind::EQ)
8661    }
8662    #[inline]
8663    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8665    }
8666}
8667
8668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8669pub struct FdwOption {
8670    pub(crate) syntax: SyntaxNode,
8671}
8672impl FdwOption {
8673    #[inline]
8674    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8675        support::child(&self.syntax)
8676    }
8677    #[inline]
8678    pub fn path(&self) -> Option<Path> {
8679        support::child(&self.syntax)
8680    }
8681    #[inline]
8682    pub fn connection_token(&self) -> Option<SyntaxToken> {
8683        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
8684    }
8685    #[inline]
8686    pub fn handler_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8688    }
8689    #[inline]
8690    pub fn no_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::NO_KW)
8692    }
8693    #[inline]
8694    pub fn options_token(&self) -> Option<SyntaxToken> {
8695        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
8696    }
8697    #[inline]
8698    pub fn validator_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
8700    }
8701}
8702
8703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8704pub struct FdwOptionList {
8705    pub(crate) syntax: SyntaxNode,
8706}
8707impl FdwOptionList {
8708    #[inline]
8709    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
8710        support::children(&self.syntax)
8711    }
8712}
8713
8714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8715pub struct Fetch {
8716    pub(crate) syntax: SyntaxNode,
8717}
8718impl Fetch {
8719    #[inline]
8720    pub fn name_ref(&self) -> Option<NameRef> {
8721        support::child(&self.syntax)
8722    }
8723    #[inline]
8724    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8725        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8726    }
8727    #[inline]
8728    pub fn from_token(&self) -> Option<SyntaxToken> {
8729        support::token(&self.syntax, SyntaxKind::FROM_KW)
8730    }
8731    #[inline]
8732    pub fn in_token(&self) -> Option<SyntaxToken> {
8733        support::token(&self.syntax, SyntaxKind::IN_KW)
8734    }
8735}
8736
8737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8738pub struct FetchClause {
8739    pub(crate) syntax: SyntaxNode,
8740}
8741impl FetchClause {
8742    #[inline]
8743    pub fn expr(&self) -> Option<Expr> {
8744        support::child(&self.syntax)
8745    }
8746    #[inline]
8747    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8749    }
8750    #[inline]
8751    pub fn first_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::FIRST_KW)
8753    }
8754    #[inline]
8755    pub fn next_token(&self) -> Option<SyntaxToken> {
8756        support::token(&self.syntax, SyntaxKind::NEXT_KW)
8757    }
8758    #[inline]
8759    pub fn only_token(&self) -> Option<SyntaxToken> {
8760        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8761    }
8762    #[inline]
8763    pub fn row_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::ROW_KW)
8765    }
8766    #[inline]
8767    pub fn rows_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8769    }
8770    #[inline]
8771    pub fn ties_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::TIES_KW)
8773    }
8774    #[inline]
8775    pub fn with_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::WITH_KW)
8777    }
8778}
8779
8780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8781pub struct FieldExpr {
8782    pub(crate) syntax: SyntaxNode,
8783}
8784impl FieldExpr {
8785    #[inline]
8786    pub fn star_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::STAR)
8788    }
8789    #[inline]
8790    pub fn dot_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::DOT)
8792    }
8793}
8794
8795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8796pub struct FilterClause {
8797    pub(crate) syntax: SyntaxNode,
8798}
8799impl FilterClause {
8800    #[inline]
8801    pub fn expr(&self) -> Option<Expr> {
8802        support::child(&self.syntax)
8803    }
8804    #[inline]
8805    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::L_PAREN)
8807    }
8808    #[inline]
8809    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::R_PAREN)
8811    }
8812    #[inline]
8813    pub fn filter_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::FILTER_KW)
8815    }
8816    #[inline]
8817    pub fn where_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::WHERE_KW)
8819    }
8820}
8821
8822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8823pub struct ForPortionOf {
8824    pub(crate) syntax: SyntaxNode,
8825}
8826impl ForPortionOf {
8827    #[inline]
8828    pub fn expr(&self) -> Option<Expr> {
8829        support::child(&self.syntax)
8830    }
8831    #[inline]
8832    pub fn name_ref(&self) -> Option<NameRef> {
8833        support::child(&self.syntax)
8834    }
8835    #[inline]
8836    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8837        support::token(&self.syntax, SyntaxKind::L_PAREN)
8838    }
8839    #[inline]
8840    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8841        support::token(&self.syntax, SyntaxKind::R_PAREN)
8842    }
8843    #[inline]
8844    pub fn for_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::FOR_KW)
8846    }
8847    #[inline]
8848    pub fn from_token(&self) -> Option<SyntaxToken> {
8849        support::token(&self.syntax, SyntaxKind::FROM_KW)
8850    }
8851    #[inline]
8852    pub fn of_token(&self) -> Option<SyntaxToken> {
8853        support::token(&self.syntax, SyntaxKind::OF_KW)
8854    }
8855    #[inline]
8856    pub fn portion_token(&self) -> Option<SyntaxToken> {
8857        support::token(&self.syntax, SyntaxKind::PORTION_KW)
8858    }
8859    #[inline]
8860    pub fn to_token(&self) -> Option<SyntaxToken> {
8861        support::token(&self.syntax, SyntaxKind::TO_KW)
8862    }
8863}
8864
8865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8866pub struct ForProvider {
8867    pub(crate) syntax: SyntaxNode,
8868}
8869impl ForProvider {
8870    #[inline]
8871    pub fn literal(&self) -> Option<Literal> {
8872        support::child(&self.syntax)
8873    }
8874    #[inline]
8875    pub fn name_ref(&self) -> Option<NameRef> {
8876        support::child(&self.syntax)
8877    }
8878    #[inline]
8879    pub fn for_token(&self) -> Option<SyntaxToken> {
8880        support::token(&self.syntax, SyntaxKind::FOR_KW)
8881    }
8882}
8883
8884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8885pub struct ForceRls {
8886    pub(crate) syntax: SyntaxNode,
8887}
8888impl ForceRls {
8889    #[inline]
8890    pub fn force_token(&self) -> Option<SyntaxToken> {
8891        support::token(&self.syntax, SyntaxKind::FORCE_KW)
8892    }
8893    #[inline]
8894    pub fn level_token(&self) -> Option<SyntaxToken> {
8895        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8896    }
8897    #[inline]
8898    pub fn row_token(&self) -> Option<SyntaxToken> {
8899        support::token(&self.syntax, SyntaxKind::ROW_KW)
8900    }
8901    #[inline]
8902    pub fn security_token(&self) -> Option<SyntaxToken> {
8903        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8904    }
8905}
8906
8907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8908pub struct ForeignKeyConstraint {
8909    pub(crate) syntax: SyntaxNode,
8910}
8911impl ForeignKeyConstraint {
8912    #[inline]
8913    pub fn constraint_name(&self) -> Option<ConstraintName> {
8914        support::child(&self.syntax)
8915    }
8916    #[inline]
8917    pub fn match_type(&self) -> Option<MatchType> {
8918        support::child(&self.syntax)
8919    }
8920    #[inline]
8921    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8922        support::child(&self.syntax)
8923    }
8924    #[inline]
8925    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8926        support::child(&self.syntax)
8927    }
8928    #[inline]
8929    pub fn path(&self) -> Option<Path> {
8930        support::child(&self.syntax)
8931    }
8932    #[inline]
8933    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8934        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8935    }
8936    #[inline]
8937    pub fn key_token(&self) -> Option<SyntaxToken> {
8938        support::token(&self.syntax, SyntaxKind::KEY_KW)
8939    }
8940    #[inline]
8941    pub fn references_token(&self) -> Option<SyntaxToken> {
8942        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8943    }
8944}
8945
8946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8947pub struct FrameClause {
8948    pub(crate) syntax: SyntaxNode,
8949}
8950impl FrameClause {
8951    #[inline]
8952    pub fn groups_token(&self) -> Option<SyntaxToken> {
8953        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8954    }
8955    #[inline]
8956    pub fn range_token(&self) -> Option<SyntaxToken> {
8957        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8958    }
8959    #[inline]
8960    pub fn rows_token(&self) -> Option<SyntaxToken> {
8961        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8962    }
8963}
8964
8965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8966pub struct FromClause {
8967    pub(crate) syntax: SyntaxNode,
8968}
8969impl FromClause {
8970    #[inline]
8971    pub fn from_items(&self) -> AstChildren<FromItem> {
8972        support::children(&self.syntax)
8973    }
8974    #[inline]
8975    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8976        support::children(&self.syntax)
8977    }
8978    #[inline]
8979    pub fn from_token(&self) -> Option<SyntaxToken> {
8980        support::token(&self.syntax, SyntaxKind::FROM_KW)
8981    }
8982}
8983
8984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8985pub struct FromItem {
8986    pub(crate) syntax: SyntaxNode,
8987}
8988impl FromItem {
8989    #[inline]
8990    pub fn alias(&self) -> Option<Alias> {
8991        support::child(&self.syntax)
8992    }
8993    #[inline]
8994    pub fn call_expr(&self) -> Option<CallExpr> {
8995        support::child(&self.syntax)
8996    }
8997    #[inline]
8998    pub fn cast_expr(&self) -> Option<CastExpr> {
8999        support::child(&self.syntax)
9000    }
9001    #[inline]
9002    pub fn field_expr(&self) -> Option<FieldExpr> {
9003        support::child(&self.syntax)
9004    }
9005    #[inline]
9006    pub fn json_table(&self) -> Option<JsonTable> {
9007        support::child(&self.syntax)
9008    }
9009    #[inline]
9010    pub fn name_ref(&self) -> Option<NameRef> {
9011        support::child(&self.syntax)
9012    }
9013    #[inline]
9014    pub fn paren_expr(&self) -> Option<ParenExpr> {
9015        support::child(&self.syntax)
9016    }
9017    #[inline]
9018    pub fn paren_select(&self) -> Option<ParenSelect> {
9019        support::child(&self.syntax)
9020    }
9021    #[inline]
9022    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9023        support::child(&self.syntax)
9024    }
9025    #[inline]
9026    pub fn xml_table(&self) -> Option<XmlTable> {
9027        support::child(&self.syntax)
9028    }
9029    #[inline]
9030    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9031        support::token(&self.syntax, SyntaxKind::L_PAREN)
9032    }
9033    #[inline]
9034    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9035        support::token(&self.syntax, SyntaxKind::R_PAREN)
9036    }
9037    #[inline]
9038    pub fn star_token(&self) -> Option<SyntaxToken> {
9039        support::token(&self.syntax, SyntaxKind::STAR)
9040    }
9041    #[inline]
9042    pub fn from_token(&self) -> Option<SyntaxToken> {
9043        support::token(&self.syntax, SyntaxKind::FROM_KW)
9044    }
9045    #[inline]
9046    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9047        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9048    }
9049    #[inline]
9050    pub fn only_token(&self) -> Option<SyntaxToken> {
9051        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9052    }
9053    #[inline]
9054    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9055        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9056    }
9057    #[inline]
9058    pub fn rows_token(&self) -> Option<SyntaxToken> {
9059        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9060    }
9061    #[inline]
9062    pub fn with_token(&self) -> Option<SyntaxToken> {
9063        support::token(&self.syntax, SyntaxKind::WITH_KW)
9064    }
9065}
9066
9067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9068pub struct FromTable {
9069    pub(crate) syntax: SyntaxNode,
9070}
9071impl FromTable {
9072    #[inline]
9073    pub fn path(&self) -> Option<Path> {
9074        support::child(&self.syntax)
9075    }
9076    #[inline]
9077    pub fn from_token(&self) -> Option<SyntaxToken> {
9078        support::token(&self.syntax, SyntaxKind::FROM_KW)
9079    }
9080}
9081
9082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9083pub struct FuncOptionList {
9084    pub(crate) syntax: SyntaxNode,
9085}
9086impl FuncOptionList {
9087    #[inline]
9088    pub fn options(&self) -> AstChildren<FuncOption> {
9089        support::children(&self.syntax)
9090    }
9091}
9092
9093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9094pub struct FunctionSig {
9095    pub(crate) syntax: SyntaxNode,
9096}
9097impl FunctionSig {
9098    #[inline]
9099    pub fn param_list(&self) -> Option<ParamList> {
9100        support::child(&self.syntax)
9101    }
9102    #[inline]
9103    pub fn path(&self) -> Option<Path> {
9104        support::child(&self.syntax)
9105    }
9106}
9107
9108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9109pub struct FunctionSigList {
9110    pub(crate) syntax: SyntaxNode,
9111}
9112impl FunctionSigList {
9113    #[inline]
9114    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9115        support::children(&self.syntax)
9116    }
9117}
9118
9119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9120pub struct GeneratedConstraint {
9121    pub(crate) syntax: SyntaxNode,
9122}
9123impl GeneratedConstraint {
9124    #[inline]
9125    pub fn expr(&self) -> Option<Expr> {
9126        support::child(&self.syntax)
9127    }
9128    #[inline]
9129    pub fn name_ref(&self) -> Option<NameRef> {
9130        support::child(&self.syntax)
9131    }
9132    #[inline]
9133    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9134        support::child(&self.syntax)
9135    }
9136    #[inline]
9137    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9138        support::token(&self.syntax, SyntaxKind::L_PAREN)
9139    }
9140    #[inline]
9141    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9142        support::token(&self.syntax, SyntaxKind::R_PAREN)
9143    }
9144    #[inline]
9145    pub fn always_token(&self) -> Option<SyntaxToken> {
9146        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9147    }
9148    #[inline]
9149    pub fn as_token(&self) -> Option<SyntaxToken> {
9150        support::token(&self.syntax, SyntaxKind::AS_KW)
9151    }
9152    #[inline]
9153    pub fn by_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::BY_KW)
9155    }
9156    #[inline]
9157    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9159    }
9160    #[inline]
9161    pub fn default_token(&self) -> Option<SyntaxToken> {
9162        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9163    }
9164    #[inline]
9165    pub fn generated_token(&self) -> Option<SyntaxToken> {
9166        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9167    }
9168    #[inline]
9169    pub fn identity_token(&self) -> Option<SyntaxToken> {
9170        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9171    }
9172    #[inline]
9173    pub fn stored_token(&self) -> Option<SyntaxToken> {
9174        support::token(&self.syntax, SyntaxKind::STORED_KW)
9175    }
9176}
9177
9178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9179pub struct Grant {
9180    pub(crate) syntax: SyntaxNode,
9181}
9182impl Grant {
9183    #[inline]
9184    pub fn name_refs(&self) -> AstChildren<NameRef> {
9185        support::children(&self.syntax)
9186    }
9187    #[inline]
9188    pub fn paths(&self) -> AstChildren<Path> {
9189        support::children(&self.syntax)
9190    }
9191    #[inline]
9192    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9193        support::child(&self.syntax)
9194    }
9195    #[inline]
9196    pub fn role_ref(&self) -> Option<RoleRef> {
9197        support::child(&self.syntax)
9198    }
9199    #[inline]
9200    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9201        support::child(&self.syntax)
9202    }
9203    #[inline]
9204    pub fn all_token(&self) -> Option<SyntaxToken> {
9205        support::token(&self.syntax, SyntaxKind::ALL_KW)
9206    }
9207    #[inline]
9208    pub fn by_token(&self) -> Option<SyntaxToken> {
9209        support::token(&self.syntax, SyntaxKind::BY_KW)
9210    }
9211    #[inline]
9212    pub fn grant_token(&self) -> Option<SyntaxToken> {
9213        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9214    }
9215    #[inline]
9216    pub fn granted_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9218    }
9219    #[inline]
9220    pub fn in_token(&self) -> Option<SyntaxToken> {
9221        support::token(&self.syntax, SyntaxKind::IN_KW)
9222    }
9223    #[inline]
9224    pub fn on_token(&self) -> Option<SyntaxToken> {
9225        support::token(&self.syntax, SyntaxKind::ON_KW)
9226    }
9227    #[inline]
9228    pub fn option_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9230    }
9231    #[inline]
9232    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9234    }
9235    #[inline]
9236    pub fn schema_token(&self) -> Option<SyntaxToken> {
9237        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9238    }
9239    #[inline]
9240    pub fn table_token(&self) -> Option<SyntaxToken> {
9241        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9242    }
9243    #[inline]
9244    pub fn tables_token(&self) -> Option<SyntaxToken> {
9245        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9246    }
9247    #[inline]
9248    pub fn to_token(&self) -> Option<SyntaxToken> {
9249        support::token(&self.syntax, SyntaxKind::TO_KW)
9250    }
9251    #[inline]
9252    pub fn with_token(&self) -> Option<SyntaxToken> {
9253        support::token(&self.syntax, SyntaxKind::WITH_KW)
9254    }
9255}
9256
9257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9258pub struct GrantDefaultPrivileges {
9259    pub(crate) syntax: SyntaxNode,
9260}
9261impl GrantDefaultPrivileges {
9262    #[inline]
9263    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9264        support::child(&self.syntax)
9265    }
9266    #[inline]
9267    pub fn privileges(&self) -> Option<Privileges> {
9268        support::child(&self.syntax)
9269    }
9270    #[inline]
9271    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9272        support::child(&self.syntax)
9273    }
9274    #[inline]
9275    pub fn grant_token(&self) -> Option<SyntaxToken> {
9276        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9277    }
9278    #[inline]
9279    pub fn on_token(&self) -> Option<SyntaxToken> {
9280        support::token(&self.syntax, SyntaxKind::ON_KW)
9281    }
9282    #[inline]
9283    pub fn option_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9285    }
9286    #[inline]
9287    pub fn to_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::TO_KW)
9289    }
9290    #[inline]
9291    pub fn with_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::WITH_KW)
9293    }
9294}
9295
9296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9297pub struct GraphPatternQualifier {
9298    pub(crate) syntax: SyntaxNode,
9299}
9300impl GraphPatternQualifier {
9301    #[inline]
9302    pub fn literal(&self) -> Option<Literal> {
9303        support::child(&self.syntax)
9304    }
9305    #[inline]
9306    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9307        support::token(&self.syntax, SyntaxKind::L_CURLY)
9308    }
9309    #[inline]
9310    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9311        support::token(&self.syntax, SyntaxKind::R_CURLY)
9312    }
9313    #[inline]
9314    pub fn comma_token(&self) -> Option<SyntaxToken> {
9315        support::token(&self.syntax, SyntaxKind::COMMA)
9316    }
9317}
9318
9319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9320pub struct GraphTableFn {
9321    pub(crate) syntax: SyntaxNode,
9322}
9323impl GraphTableFn {
9324    #[inline]
9325    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9326        support::child(&self.syntax)
9327    }
9328    #[inline]
9329    pub fn path(&self) -> Option<Path> {
9330        support::child(&self.syntax)
9331    }
9332    #[inline]
9333    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9334        support::child(&self.syntax)
9335    }
9336    #[inline]
9337    pub fn where_clause(&self) -> Option<WhereClause> {
9338        support::child(&self.syntax)
9339    }
9340    #[inline]
9341    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9342        support::token(&self.syntax, SyntaxKind::L_PAREN)
9343    }
9344    #[inline]
9345    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9346        support::token(&self.syntax, SyntaxKind::R_PAREN)
9347    }
9348    #[inline]
9349    pub fn columns_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9351    }
9352    #[inline]
9353    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9354        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9355    }
9356    #[inline]
9357    pub fn match_token(&self) -> Option<SyntaxToken> {
9358        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9359    }
9360}
9361
9362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9363pub struct GroupByClause {
9364    pub(crate) syntax: SyntaxNode,
9365}
9366impl GroupByClause {
9367    #[inline]
9368    pub fn group_by_list(&self) -> Option<GroupByList> {
9369        support::child(&self.syntax)
9370    }
9371    #[inline]
9372    pub fn all_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::ALL_KW)
9374    }
9375    #[inline]
9376    pub fn by_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::BY_KW)
9378    }
9379    #[inline]
9380    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9382    }
9383    #[inline]
9384    pub fn group_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9386    }
9387}
9388
9389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9390pub struct GroupByList {
9391    pub(crate) syntax: SyntaxNode,
9392}
9393impl GroupByList {
9394    #[inline]
9395    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9396        support::children(&self.syntax)
9397    }
9398}
9399
9400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9401pub struct GroupingCube {
9402    pub(crate) syntax: SyntaxNode,
9403}
9404impl GroupingCube {
9405    #[inline]
9406    pub fn expr(&self) -> Option<Expr> {
9407        support::child(&self.syntax)
9408    }
9409    #[inline]
9410    pub fn cube_token(&self) -> Option<SyntaxToken> {
9411        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9412    }
9413}
9414
9415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9416pub struct GroupingExpr {
9417    pub(crate) syntax: SyntaxNode,
9418}
9419impl GroupingExpr {
9420    #[inline]
9421    pub fn expr(&self) -> Option<Expr> {
9422        support::child(&self.syntax)
9423    }
9424}
9425
9426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9427pub struct GroupingRollup {
9428    pub(crate) syntax: SyntaxNode,
9429}
9430impl GroupingRollup {
9431    #[inline]
9432    pub fn expr(&self) -> Option<Expr> {
9433        support::child(&self.syntax)
9434    }
9435    #[inline]
9436    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9437        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9438    }
9439}
9440
9441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9442pub struct GroupingSets {
9443    pub(crate) syntax: SyntaxNode,
9444}
9445impl GroupingSets {
9446    #[inline]
9447    pub fn expr(&self) -> Option<Expr> {
9448        support::child(&self.syntax)
9449    }
9450    #[inline]
9451    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9452        support::token(&self.syntax, SyntaxKind::L_PAREN)
9453    }
9454    #[inline]
9455    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::R_PAREN)
9457    }
9458    #[inline]
9459    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9460        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9461    }
9462    #[inline]
9463    pub fn sets_token(&self) -> Option<SyntaxToken> {
9464        support::token(&self.syntax, SyntaxKind::SETS_KW)
9465    }
9466}
9467
9468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9469pub struct Gteq {
9470    pub(crate) syntax: SyntaxNode,
9471}
9472impl Gteq {
9473    #[inline]
9474    pub fn eq_token(&self) -> Option<SyntaxToken> {
9475        support::token(&self.syntax, SyntaxKind::EQ)
9476    }
9477    #[inline]
9478    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9479        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9480    }
9481}
9482
9483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9484pub struct HandlerClause {
9485    pub(crate) syntax: SyntaxNode,
9486}
9487impl HandlerClause {
9488    #[inline]
9489    pub fn path(&self) -> Option<Path> {
9490        support::child(&self.syntax)
9491    }
9492    #[inline]
9493    pub fn handler_token(&self) -> Option<SyntaxToken> {
9494        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9495    }
9496}
9497
9498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9499pub struct HavingClause {
9500    pub(crate) syntax: SyntaxNode,
9501}
9502impl HavingClause {
9503    #[inline]
9504    pub fn expr(&self) -> Option<Expr> {
9505        support::child(&self.syntax)
9506    }
9507    #[inline]
9508    pub fn having_token(&self) -> Option<SyntaxToken> {
9509        support::token(&self.syntax, SyntaxKind::HAVING_KW)
9510    }
9511}
9512
9513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9514pub struct IfExists {
9515    pub(crate) syntax: SyntaxNode,
9516}
9517impl IfExists {
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}
9527
9528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9529pub struct IfNotExists {
9530    pub(crate) syntax: SyntaxNode,
9531}
9532impl IfNotExists {
9533    #[inline]
9534    pub fn exists_token(&self) -> Option<SyntaxToken> {
9535        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9536    }
9537    #[inline]
9538    pub fn if_token(&self) -> Option<SyntaxToken> {
9539        support::token(&self.syntax, SyntaxKind::IF_KW)
9540    }
9541    #[inline]
9542    pub fn not_token(&self) -> Option<SyntaxToken> {
9543        support::token(&self.syntax, SyntaxKind::NOT_KW)
9544    }
9545}
9546
9547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9548pub struct ImportForeignSchema {
9549    pub(crate) syntax: SyntaxNode,
9550}
9551impl ImportForeignSchema {
9552    #[inline]
9553    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9554        support::child(&self.syntax)
9555    }
9556    #[inline]
9557    pub fn except_tables(&self) -> Option<ExceptTables> {
9558        support::child(&self.syntax)
9559    }
9560    #[inline]
9561    pub fn into_schema(&self) -> Option<IntoSchema> {
9562        support::child(&self.syntax)
9563    }
9564    #[inline]
9565    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
9566        support::child(&self.syntax)
9567    }
9568    #[inline]
9569    pub fn name_ref(&self) -> Option<NameRef> {
9570        support::child(&self.syntax)
9571    }
9572    #[inline]
9573    pub fn server_name(&self) -> Option<ServerName> {
9574        support::child(&self.syntax)
9575    }
9576    #[inline]
9577    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9578        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9579    }
9580    #[inline]
9581    pub fn from_token(&self) -> Option<SyntaxToken> {
9582        support::token(&self.syntax, SyntaxKind::FROM_KW)
9583    }
9584    #[inline]
9585    pub fn import_token(&self) -> Option<SyntaxToken> {
9586        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
9587    }
9588    #[inline]
9589    pub fn schema_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9591    }
9592}
9593
9594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9595pub struct IndexExpr {
9596    pub(crate) syntax: SyntaxNode,
9597}
9598impl IndexExpr {
9599    #[inline]
9600    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9601        support::token(&self.syntax, SyntaxKind::L_BRACK)
9602    }
9603    #[inline]
9604    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::R_BRACK)
9606    }
9607}
9608
9609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9610pub struct Inherit {
9611    pub(crate) syntax: SyntaxNode,
9612}
9613impl Inherit {
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 InheritTable {
9626    pub(crate) syntax: SyntaxNode,
9627}
9628impl InheritTable {
9629    #[inline]
9630    pub fn path(&self) -> Option<Path> {
9631        support::child(&self.syntax)
9632    }
9633    #[inline]
9634    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9635        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9636    }
9637}
9638
9639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9640pub struct Inherits {
9641    pub(crate) syntax: SyntaxNode,
9642}
9643impl Inherits {
9644    #[inline]
9645    pub fn paths(&self) -> AstChildren<Path> {
9646        support::children(&self.syntax)
9647    }
9648    #[inline]
9649    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9650        support::token(&self.syntax, SyntaxKind::L_PAREN)
9651    }
9652    #[inline]
9653    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9654        support::token(&self.syntax, SyntaxKind::R_PAREN)
9655    }
9656    #[inline]
9657    pub fn inherits_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
9659    }
9660}
9661
9662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9663pub struct InitiallyDeferredConstraintOption {
9664    pub(crate) syntax: SyntaxNode,
9665}
9666impl InitiallyDeferredConstraintOption {
9667    #[inline]
9668    pub fn deferred_token(&self) -> Option<SyntaxToken> {
9669        support::token(&self.syntax, SyntaxKind::DEFERRED_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 InitiallyImmediateConstraintOption {
9679    pub(crate) syntax: SyntaxNode,
9680}
9681impl InitiallyImmediateConstraintOption {
9682    #[inline]
9683    pub fn immediate_token(&self) -> Option<SyntaxToken> {
9684        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
9685    }
9686    #[inline]
9687    pub fn initially_token(&self) -> Option<SyntaxToken> {
9688        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9689    }
9690}
9691
9692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9693pub struct Insert {
9694    pub(crate) syntax: SyntaxNode,
9695}
9696impl Insert {
9697    #[inline]
9698    pub fn alias(&self) -> Option<Alias> {
9699        support::child(&self.syntax)
9700    }
9701    #[inline]
9702    pub fn column_list(&self) -> Option<ColumnList> {
9703        support::child(&self.syntax)
9704    }
9705    #[inline]
9706    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
9707        support::child(&self.syntax)
9708    }
9709    #[inline]
9710    pub fn path(&self) -> Option<Path> {
9711        support::child(&self.syntax)
9712    }
9713    #[inline]
9714    pub fn returning_clause(&self) -> Option<ReturningClause> {
9715        support::child(&self.syntax)
9716    }
9717    #[inline]
9718    pub fn stmt(&self) -> Option<Stmt> {
9719        support::child(&self.syntax)
9720    }
9721    #[inline]
9722    pub fn values(&self) -> Option<Values> {
9723        support::child(&self.syntax)
9724    }
9725    #[inline]
9726    pub fn with_clause(&self) -> Option<WithClause> {
9727        support::child(&self.syntax)
9728    }
9729    #[inline]
9730    pub fn default_token(&self) -> Option<SyntaxToken> {
9731        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9732    }
9733    #[inline]
9734    pub fn insert_token(&self) -> Option<SyntaxToken> {
9735        support::token(&self.syntax, SyntaxKind::INSERT_KW)
9736    }
9737    #[inline]
9738    pub fn into_token(&self) -> Option<SyntaxToken> {
9739        support::token(&self.syntax, SyntaxKind::INTO_KW)
9740    }
9741    #[inline]
9742    pub fn overriding_token(&self) -> Option<SyntaxToken> {
9743        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
9744    }
9745    #[inline]
9746    pub fn system_token(&self) -> Option<SyntaxToken> {
9747        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
9748    }
9749    #[inline]
9750    pub fn user_token(&self) -> Option<SyntaxToken> {
9751        support::token(&self.syntax, SyntaxKind::USER_KW)
9752    }
9753    #[inline]
9754    pub fn value_token(&self) -> Option<SyntaxToken> {
9755        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9756    }
9757    #[inline]
9758    pub fn values_token(&self) -> Option<SyntaxToken> {
9759        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9760    }
9761}
9762
9763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9764pub struct IntervalType {
9765    pub(crate) syntax: SyntaxNode,
9766}
9767impl IntervalType {
9768    #[inline]
9769    pub fn literal(&self) -> Option<Literal> {
9770        support::child(&self.syntax)
9771    }
9772    #[inline]
9773    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9774        support::token(&self.syntax, SyntaxKind::L_PAREN)
9775    }
9776    #[inline]
9777    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9778        support::token(&self.syntax, SyntaxKind::R_PAREN)
9779    }
9780    #[inline]
9781    pub fn day_token(&self) -> Option<SyntaxToken> {
9782        support::token(&self.syntax, SyntaxKind::DAY_KW)
9783    }
9784    #[inline]
9785    pub fn hour_token(&self) -> Option<SyntaxToken> {
9786        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9787    }
9788    #[inline]
9789    pub fn interval_token(&self) -> Option<SyntaxToken> {
9790        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
9791    }
9792    #[inline]
9793    pub fn minute_token(&self) -> Option<SyntaxToken> {
9794        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9795    }
9796    #[inline]
9797    pub fn month_token(&self) -> Option<SyntaxToken> {
9798        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9799    }
9800    #[inline]
9801    pub fn second_token(&self) -> Option<SyntaxToken> {
9802        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9803    }
9804    #[inline]
9805    pub fn setof_token(&self) -> Option<SyntaxToken> {
9806        support::token(&self.syntax, SyntaxKind::SETOF_KW)
9807    }
9808    #[inline]
9809    pub fn to_token(&self) -> Option<SyntaxToken> {
9810        support::token(&self.syntax, SyntaxKind::TO_KW)
9811    }
9812    #[inline]
9813    pub fn year_token(&self) -> Option<SyntaxToken> {
9814        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9815    }
9816}
9817
9818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9819pub struct IntoClause {
9820    pub(crate) syntax: SyntaxNode,
9821}
9822impl IntoClause {
9823    #[inline]
9824    pub fn path(&self) -> Option<Path> {
9825        support::child(&self.syntax)
9826    }
9827    #[inline]
9828    pub fn persistence(&self) -> Option<Persistence> {
9829        support::child(&self.syntax)
9830    }
9831    #[inline]
9832    pub fn into_token(&self) -> Option<SyntaxToken> {
9833        support::token(&self.syntax, SyntaxKind::INTO_KW)
9834    }
9835    #[inline]
9836    pub fn table_token(&self) -> Option<SyntaxToken> {
9837        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9838    }
9839}
9840
9841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9842pub struct IntoSchema {
9843    pub(crate) syntax: SyntaxNode,
9844}
9845impl IntoSchema {
9846    #[inline]
9847    pub fn name_ref(&self) -> Option<NameRef> {
9848        support::child(&self.syntax)
9849    }
9850    #[inline]
9851    pub fn into_token(&self) -> Option<SyntaxToken> {
9852        support::token(&self.syntax, SyntaxKind::INTO_KW)
9853    }
9854}
9855
9856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9857pub struct IsDistinctFrom {
9858    pub(crate) syntax: SyntaxNode,
9859}
9860impl IsDistinctFrom {
9861    #[inline]
9862    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9863        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9864    }
9865    #[inline]
9866    pub fn from_token(&self) -> Option<SyntaxToken> {
9867        support::token(&self.syntax, SyntaxKind::FROM_KW)
9868    }
9869    #[inline]
9870    pub fn is_token(&self) -> Option<SyntaxToken> {
9871        support::token(&self.syntax, SyntaxKind::IS_KW)
9872    }
9873}
9874
9875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9876pub struct IsJson {
9877    pub(crate) syntax: SyntaxNode,
9878}
9879impl IsJson {
9880    #[inline]
9881    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9882        support::child(&self.syntax)
9883    }
9884    #[inline]
9885    pub fn is_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::IS_KW)
9887    }
9888    #[inline]
9889    pub fn json_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::JSON_KW)
9891    }
9892}
9893
9894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9895pub struct IsJsonArray {
9896    pub(crate) syntax: SyntaxNode,
9897}
9898impl IsJsonArray {
9899    #[inline]
9900    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9901        support::child(&self.syntax)
9902    }
9903    #[inline]
9904    pub fn array_token(&self) -> Option<SyntaxToken> {
9905        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9906    }
9907    #[inline]
9908    pub fn is_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::IS_KW)
9910    }
9911    #[inline]
9912    pub fn json_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::JSON_KW)
9914    }
9915}
9916
9917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9918pub struct IsJsonObject {
9919    pub(crate) syntax: SyntaxNode,
9920}
9921impl IsJsonObject {
9922    #[inline]
9923    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9924        support::child(&self.syntax)
9925    }
9926    #[inline]
9927    pub fn is_token(&self) -> Option<SyntaxToken> {
9928        support::token(&self.syntax, SyntaxKind::IS_KW)
9929    }
9930    #[inline]
9931    pub fn json_token(&self) -> Option<SyntaxToken> {
9932        support::token(&self.syntax, SyntaxKind::JSON_KW)
9933    }
9934    #[inline]
9935    pub fn object_token(&self) -> Option<SyntaxToken> {
9936        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9937    }
9938}
9939
9940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9941pub struct IsJsonScalar {
9942    pub(crate) syntax: SyntaxNode,
9943}
9944impl IsJsonScalar {
9945    #[inline]
9946    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9947        support::child(&self.syntax)
9948    }
9949    #[inline]
9950    pub fn is_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::IS_KW)
9952    }
9953    #[inline]
9954    pub fn json_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::JSON_KW)
9956    }
9957    #[inline]
9958    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9959        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9960    }
9961}
9962
9963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9964pub struct IsJsonValue {
9965    pub(crate) syntax: SyntaxNode,
9966}
9967impl IsJsonValue {
9968    #[inline]
9969    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9970        support::child(&self.syntax)
9971    }
9972    #[inline]
9973    pub fn is_token(&self) -> Option<SyntaxToken> {
9974        support::token(&self.syntax, SyntaxKind::IS_KW)
9975    }
9976    #[inline]
9977    pub fn json_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::JSON_KW)
9979    }
9980    #[inline]
9981    pub fn value_token(&self) -> Option<SyntaxToken> {
9982        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9983    }
9984}
9985
9986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9987pub struct IsLabel {
9988    pub(crate) syntax: SyntaxNode,
9989}
9990impl IsLabel {
9991    #[inline]
9992    pub fn expr(&self) -> Option<Expr> {
9993        support::child(&self.syntax)
9994    }
9995    #[inline]
9996    pub fn is_token(&self) -> Option<SyntaxToken> {
9997        support::token(&self.syntax, SyntaxKind::IS_KW)
9998    }
9999}
10000
10001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10002pub struct IsNormalized {
10003    pub(crate) syntax: SyntaxNode,
10004}
10005impl IsNormalized {
10006    #[inline]
10007    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10008        support::child(&self.syntax)
10009    }
10010    #[inline]
10011    pub fn is_token(&self) -> Option<SyntaxToken> {
10012        support::token(&self.syntax, SyntaxKind::IS_KW)
10013    }
10014    #[inline]
10015    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10016        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10017    }
10018}
10019
10020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10021pub struct IsNot {
10022    pub(crate) syntax: SyntaxNode,
10023}
10024impl IsNot {
10025    #[inline]
10026    pub fn is_token(&self) -> Option<SyntaxToken> {
10027        support::token(&self.syntax, SyntaxKind::IS_KW)
10028    }
10029    #[inline]
10030    pub fn not_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::NOT_KW)
10032    }
10033}
10034
10035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10036pub struct IsNotDistinctFrom {
10037    pub(crate) syntax: SyntaxNode,
10038}
10039impl IsNotDistinctFrom {
10040    #[inline]
10041    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10042        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10043    }
10044    #[inline]
10045    pub fn from_token(&self) -> Option<SyntaxToken> {
10046        support::token(&self.syntax, SyntaxKind::FROM_KW)
10047    }
10048    #[inline]
10049    pub fn is_token(&self) -> Option<SyntaxToken> {
10050        support::token(&self.syntax, SyntaxKind::IS_KW)
10051    }
10052    #[inline]
10053    pub fn not_token(&self) -> Option<SyntaxToken> {
10054        support::token(&self.syntax, SyntaxKind::NOT_KW)
10055    }
10056}
10057
10058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10059pub struct IsNotJson {
10060    pub(crate) syntax: SyntaxNode,
10061}
10062impl IsNotJson {
10063    #[inline]
10064    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10065        support::child(&self.syntax)
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 IsNotJsonArray {
10083    pub(crate) syntax: SyntaxNode,
10084}
10085impl IsNotJsonArray {
10086    #[inline]
10087    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10088        support::child(&self.syntax)
10089    }
10090    #[inline]
10091    pub fn array_token(&self) -> Option<SyntaxToken> {
10092        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10093    }
10094    #[inline]
10095    pub fn is_token(&self) -> Option<SyntaxToken> {
10096        support::token(&self.syntax, SyntaxKind::IS_KW)
10097    }
10098    #[inline]
10099    pub fn json_token(&self) -> Option<SyntaxToken> {
10100        support::token(&self.syntax, SyntaxKind::JSON_KW)
10101    }
10102    #[inline]
10103    pub fn not_token(&self) -> Option<SyntaxToken> {
10104        support::token(&self.syntax, SyntaxKind::NOT_KW)
10105    }
10106}
10107
10108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10109pub struct IsNotJsonObject {
10110    pub(crate) syntax: SyntaxNode,
10111}
10112impl IsNotJsonObject {
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 object_token(&self) -> Option<SyntaxToken> {
10131        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10132    }
10133}
10134
10135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10136pub struct IsNotJsonScalar {
10137    pub(crate) syntax: SyntaxNode,
10138}
10139impl IsNotJsonScalar {
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 scalar_token(&self) -> Option<SyntaxToken> {
10158        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10159    }
10160}
10161
10162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10163pub struct IsNotJsonValue {
10164    pub(crate) syntax: SyntaxNode,
10165}
10166impl IsNotJsonValue {
10167    #[inline]
10168    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
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 json_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::JSON_KW)
10178    }
10179    #[inline]
10180    pub fn not_token(&self) -> Option<SyntaxToken> {
10181        support::token(&self.syntax, SyntaxKind::NOT_KW)
10182    }
10183    #[inline]
10184    pub fn value_token(&self) -> Option<SyntaxToken> {
10185        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10186    }
10187}
10188
10189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10190pub struct IsNotNormalized {
10191    pub(crate) syntax: SyntaxNode,
10192}
10193impl IsNotNormalized {
10194    #[inline]
10195    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10196        support::child(&self.syntax)
10197    }
10198    #[inline]
10199    pub fn is_token(&self) -> Option<SyntaxToken> {
10200        support::token(&self.syntax, SyntaxKind::IS_KW)
10201    }
10202    #[inline]
10203    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10204        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10205    }
10206    #[inline]
10207    pub fn not_token(&self) -> Option<SyntaxToken> {
10208        support::token(&self.syntax, SyntaxKind::NOT_KW)
10209    }
10210}
10211
10212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10213pub struct Join {
10214    pub(crate) syntax: SyntaxNode,
10215}
10216impl Join {
10217    #[inline]
10218    pub fn from_item(&self) -> Option<FromItem> {
10219        support::child(&self.syntax)
10220    }
10221    #[inline]
10222    pub fn join_type(&self) -> Option<JoinType> {
10223        support::child(&self.syntax)
10224    }
10225    #[inline]
10226    pub fn on_clause(&self) -> Option<OnClause> {
10227        support::child(&self.syntax)
10228    }
10229    #[inline]
10230    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10231        support::child(&self.syntax)
10232    }
10233    #[inline]
10234    pub fn natural_token(&self) -> Option<SyntaxToken> {
10235        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10236    }
10237}
10238
10239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10240pub struct JoinCross {
10241    pub(crate) syntax: SyntaxNode,
10242}
10243impl JoinCross {
10244    #[inline]
10245    pub fn cross_token(&self) -> Option<SyntaxToken> {
10246        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10247    }
10248    #[inline]
10249    pub fn join_token(&self) -> Option<SyntaxToken> {
10250        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10251    }
10252}
10253
10254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10255pub struct JoinExpr {
10256    pub(crate) syntax: SyntaxNode,
10257}
10258impl JoinExpr {
10259    #[inline]
10260    pub fn from_item(&self) -> Option<FromItem> {
10261        support::child(&self.syntax)
10262    }
10263    #[inline]
10264    pub fn join(&self) -> Option<Join> {
10265        support::child(&self.syntax)
10266    }
10267    #[inline]
10268    pub fn join_expr(&self) -> Option<JoinExpr> {
10269        support::child(&self.syntax)
10270    }
10271}
10272
10273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10274pub struct JoinFull {
10275    pub(crate) syntax: SyntaxNode,
10276}
10277impl JoinFull {
10278    #[inline]
10279    pub fn full_token(&self) -> Option<SyntaxToken> {
10280        support::token(&self.syntax, SyntaxKind::FULL_KW)
10281    }
10282    #[inline]
10283    pub fn join_token(&self) -> Option<SyntaxToken> {
10284        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10285    }
10286    #[inline]
10287    pub fn outer_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10289    }
10290}
10291
10292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10293pub struct JoinInner {
10294    pub(crate) syntax: SyntaxNode,
10295}
10296impl JoinInner {
10297    #[inline]
10298    pub fn inner_token(&self) -> Option<SyntaxToken> {
10299        support::token(&self.syntax, SyntaxKind::INNER_KW)
10300    }
10301    #[inline]
10302    pub fn join_token(&self) -> Option<SyntaxToken> {
10303        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10304    }
10305}
10306
10307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10308pub struct JoinLeft {
10309    pub(crate) syntax: SyntaxNode,
10310}
10311impl JoinLeft {
10312    #[inline]
10313    pub fn join_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10315    }
10316    #[inline]
10317    pub fn left_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10319    }
10320    #[inline]
10321    pub fn outer_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10323    }
10324}
10325
10326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10327pub struct JoinRight {
10328    pub(crate) syntax: SyntaxNode,
10329}
10330impl JoinRight {
10331    #[inline]
10332    pub fn join_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10334    }
10335    #[inline]
10336    pub fn outer_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10338    }
10339    #[inline]
10340    pub fn right_token(&self) -> Option<SyntaxToken> {
10341        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10342    }
10343}
10344
10345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10346pub struct JoinUsingClause {
10347    pub(crate) syntax: SyntaxNode,
10348}
10349impl JoinUsingClause {
10350    #[inline]
10351    pub fn alias(&self) -> Option<Alias> {
10352        support::child(&self.syntax)
10353    }
10354    #[inline]
10355    pub fn column_list(&self) -> Option<ColumnList> {
10356        support::child(&self.syntax)
10357    }
10358    #[inline]
10359    pub fn using_token(&self) -> Option<SyntaxToken> {
10360        support::token(&self.syntax, SyntaxKind::USING_KW)
10361    }
10362}
10363
10364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10365pub struct JsonArrayAggFn {
10366    pub(crate) syntax: SyntaxNode,
10367}
10368impl JsonArrayAggFn {
10369    #[inline]
10370    pub fn expr(&self) -> Option<Expr> {
10371        support::child(&self.syntax)
10372    }
10373    #[inline]
10374    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10375        support::child(&self.syntax)
10376    }
10377    #[inline]
10378    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10379        support::child(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10383        support::children(&self.syntax)
10384    }
10385    #[inline]
10386    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10387        support::token(&self.syntax, SyntaxKind::L_PAREN)
10388    }
10389    #[inline]
10390    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10391        support::token(&self.syntax, SyntaxKind::R_PAREN)
10392    }
10393    #[inline]
10394    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10396    }
10397}
10398
10399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10400pub struct JsonArrayFn {
10401    pub(crate) syntax: SyntaxNode,
10402}
10403impl JsonArrayFn {
10404    #[inline]
10405    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10406        support::children(&self.syntax)
10407    }
10408    #[inline]
10409    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10410        support::child(&self.syntax)
10411    }
10412    #[inline]
10413    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10414        support::child(&self.syntax)
10415    }
10416    #[inline]
10417    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10418        support::children(&self.syntax)
10419    }
10420    #[inline]
10421    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10422        support::token(&self.syntax, SyntaxKind::L_PAREN)
10423    }
10424    #[inline]
10425    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10426        support::token(&self.syntax, SyntaxKind::R_PAREN)
10427    }
10428    #[inline]
10429    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10431    }
10432}
10433
10434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10435pub struct JsonBehaviorClause {
10436    pub(crate) syntax: SyntaxNode,
10437}
10438impl JsonBehaviorClause {
10439    #[inline]
10440    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10441        support::child(&self.syntax)
10442    }
10443}
10444
10445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10446pub struct JsonBehaviorDefault {
10447    pub(crate) syntax: SyntaxNode,
10448}
10449impl JsonBehaviorDefault {
10450    #[inline]
10451    pub fn expr(&self) -> Option<Expr> {
10452        support::child(&self.syntax)
10453    }
10454    #[inline]
10455    pub fn default_token(&self) -> Option<SyntaxToken> {
10456        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10457    }
10458}
10459
10460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10461pub struct JsonBehaviorEmptyArray {
10462    pub(crate) syntax: SyntaxNode,
10463}
10464impl JsonBehaviorEmptyArray {
10465    #[inline]
10466    pub fn array_token(&self) -> Option<SyntaxToken> {
10467        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10468    }
10469    #[inline]
10470    pub fn empty_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10472    }
10473}
10474
10475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10476pub struct JsonBehaviorEmptyObject {
10477    pub(crate) syntax: SyntaxNode,
10478}
10479impl JsonBehaviorEmptyObject {
10480    #[inline]
10481    pub fn empty_token(&self) -> Option<SyntaxToken> {
10482        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10483    }
10484    #[inline]
10485    pub fn object_token(&self) -> Option<SyntaxToken> {
10486        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10487    }
10488}
10489
10490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10491pub struct JsonBehaviorError {
10492    pub(crate) syntax: SyntaxNode,
10493}
10494impl JsonBehaviorError {
10495    #[inline]
10496    pub fn error_token(&self) -> Option<SyntaxToken> {
10497        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10498    }
10499}
10500
10501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10502pub struct JsonBehaviorFalse {
10503    pub(crate) syntax: SyntaxNode,
10504}
10505impl JsonBehaviorFalse {
10506    #[inline]
10507    pub fn false_token(&self) -> Option<SyntaxToken> {
10508        support::token(&self.syntax, SyntaxKind::FALSE_KW)
10509    }
10510}
10511
10512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10513pub struct JsonBehaviorNull {
10514    pub(crate) syntax: SyntaxNode,
10515}
10516impl JsonBehaviorNull {
10517    #[inline]
10518    pub fn null_token(&self) -> Option<SyntaxToken> {
10519        support::token(&self.syntax, SyntaxKind::NULL_KW)
10520    }
10521}
10522
10523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10524pub struct JsonBehaviorTrue {
10525    pub(crate) syntax: SyntaxNode,
10526}
10527impl JsonBehaviorTrue {
10528    #[inline]
10529    pub fn true_token(&self) -> Option<SyntaxToken> {
10530        support::token(&self.syntax, SyntaxKind::TRUE_KW)
10531    }
10532}
10533
10534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10535pub struct JsonBehaviorUnknown {
10536    pub(crate) syntax: SyntaxNode,
10537}
10538impl JsonBehaviorUnknown {
10539    #[inline]
10540    pub fn unknown_token(&self) -> Option<SyntaxToken> {
10541        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
10542    }
10543}
10544
10545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10546pub struct JsonEncodingClause {
10547    pub(crate) syntax: SyntaxNode,
10548}
10549impl JsonEncodingClause {
10550    #[inline]
10551    pub fn name_ref(&self) -> Option<NameRef> {
10552        support::child(&self.syntax)
10553    }
10554    #[inline]
10555    pub fn encoding_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
10557    }
10558}
10559
10560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10561pub struct JsonExistsFn {
10562    pub(crate) syntax: SyntaxNode,
10563}
10564impl JsonExistsFn {
10565    #[inline]
10566    pub fn expr(&self) -> Option<Expr> {
10567        support::child(&self.syntax)
10568    }
10569    #[inline]
10570    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10571        support::child(&self.syntax)
10572    }
10573    #[inline]
10574    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10575        support::child(&self.syntax)
10576    }
10577    #[inline]
10578    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10579        support::child(&self.syntax)
10580    }
10581    #[inline]
10582    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10583        support::token(&self.syntax, SyntaxKind::L_PAREN)
10584    }
10585    #[inline]
10586    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::R_PAREN)
10588    }
10589    #[inline]
10590    pub fn comma_token(&self) -> Option<SyntaxToken> {
10591        support::token(&self.syntax, SyntaxKind::COMMA)
10592    }
10593    #[inline]
10594    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
10595        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
10596    }
10597}
10598
10599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10600pub struct JsonExprFormat {
10601    pub(crate) syntax: SyntaxNode,
10602}
10603impl JsonExprFormat {
10604    #[inline]
10605    pub fn expr(&self) -> Option<Expr> {
10606        support::child(&self.syntax)
10607    }
10608    #[inline]
10609    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10610        support::child(&self.syntax)
10611    }
10612}
10613
10614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10615pub struct JsonFn {
10616    pub(crate) syntax: SyntaxNode,
10617}
10618impl JsonFn {
10619    #[inline]
10620    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
10621        support::child(&self.syntax)
10622    }
10623    #[inline]
10624    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10625        support::child(&self.syntax)
10626    }
10627    #[inline]
10628    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10629        support::token(&self.syntax, SyntaxKind::L_PAREN)
10630    }
10631    #[inline]
10632    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10633        support::token(&self.syntax, SyntaxKind::R_PAREN)
10634    }
10635    #[inline]
10636    pub fn json_token(&self) -> Option<SyntaxToken> {
10637        support::token(&self.syntax, SyntaxKind::JSON_KW)
10638    }
10639}
10640
10641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10642pub struct JsonFormatClause {
10643    pub(crate) syntax: SyntaxNode,
10644}
10645impl JsonFormatClause {
10646    #[inline]
10647    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
10648        support::child(&self.syntax)
10649    }
10650    #[inline]
10651    pub fn format_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
10653    }
10654    #[inline]
10655    pub fn json_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::JSON_KW)
10657    }
10658}
10659
10660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10661pub struct JsonKeyValue {
10662    pub(crate) syntax: SyntaxNode,
10663}
10664impl JsonKeyValue {
10665    #[inline]
10666    pub fn expr(&self) -> Option<Expr> {
10667        support::child(&self.syntax)
10668    }
10669    #[inline]
10670    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
10671        support::child(&self.syntax)
10672    }
10673    #[inline]
10674    pub fn colon_token(&self) -> Option<SyntaxToken> {
10675        support::token(&self.syntax, SyntaxKind::COLON)
10676    }
10677    #[inline]
10678    pub fn value_token(&self) -> Option<SyntaxToken> {
10679        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10680    }
10681}
10682
10683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10684pub struct JsonKeysUniqueClause {
10685    pub(crate) syntax: SyntaxNode,
10686}
10687impl JsonKeysUniqueClause {
10688    #[inline]
10689    pub fn keys_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::KEYS_KW)
10691    }
10692    #[inline]
10693    pub fn unique_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10695    }
10696    #[inline]
10697    pub fn with_token(&self) -> Option<SyntaxToken> {
10698        support::token(&self.syntax, SyntaxKind::WITH_KW)
10699    }
10700    #[inline]
10701    pub fn without_token(&self) -> Option<SyntaxToken> {
10702        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10703    }
10704}
10705
10706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10707pub struct JsonNullClause {
10708    pub(crate) syntax: SyntaxNode,
10709}
10710impl JsonNullClause {
10711    #[inline]
10712    pub fn absent_token(&self) -> Option<SyntaxToken> {
10713        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
10714    }
10715    #[inline]
10716    pub fn null_token(&self) -> Option<SyntaxToken> {
10717        support::token(&self.syntax, SyntaxKind::NULL_KW)
10718    }
10719    #[inline]
10720    pub fn on_token(&self) -> Option<SyntaxToken> {
10721        support::token(&self.syntax, SyntaxKind::ON_KW)
10722    }
10723}
10724
10725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10726pub struct JsonObjectAggFn {
10727    pub(crate) syntax: SyntaxNode,
10728}
10729impl JsonObjectAggFn {
10730    #[inline]
10731    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
10732        support::child(&self.syntax)
10733    }
10734    #[inline]
10735    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10736        support::child(&self.syntax)
10737    }
10738    #[inline]
10739    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10740        support::child(&self.syntax)
10741    }
10742    #[inline]
10743    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10744        support::child(&self.syntax)
10745    }
10746    #[inline]
10747    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10748        support::token(&self.syntax, SyntaxKind::L_PAREN)
10749    }
10750    #[inline]
10751    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10752        support::token(&self.syntax, SyntaxKind::R_PAREN)
10753    }
10754    #[inline]
10755    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
10756        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
10757    }
10758}
10759
10760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10761pub struct JsonObjectFn {
10762    pub(crate) syntax: SyntaxNode,
10763}
10764impl JsonObjectFn {
10765    #[inline]
10766    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
10767        support::children(&self.syntax)
10768    }
10769    #[inline]
10770    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10771        support::child(&self.syntax)
10772    }
10773    #[inline]
10774    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10775        support::child(&self.syntax)
10776    }
10777    #[inline]
10778    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10779        support::child(&self.syntax)
10780    }
10781    #[inline]
10782    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10783        support::token(&self.syntax, SyntaxKind::L_PAREN)
10784    }
10785    #[inline]
10786    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10787        support::token(&self.syntax, SyntaxKind::R_PAREN)
10788    }
10789    #[inline]
10790    pub fn json_object_token(&self) -> Option<SyntaxToken> {
10791        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
10792    }
10793}
10794
10795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10796pub struct JsonOnEmptyClause {
10797    pub(crate) syntax: SyntaxNode,
10798}
10799impl JsonOnEmptyClause {
10800    #[inline]
10801    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10802        support::child(&self.syntax)
10803    }
10804    #[inline]
10805    pub fn empty_token(&self) -> Option<SyntaxToken> {
10806        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10807    }
10808    #[inline]
10809    pub fn on_token(&self) -> Option<SyntaxToken> {
10810        support::token(&self.syntax, SyntaxKind::ON_KW)
10811    }
10812}
10813
10814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10815pub struct JsonOnErrorClause {
10816    pub(crate) syntax: SyntaxNode,
10817}
10818impl JsonOnErrorClause {
10819    #[inline]
10820    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10821        support::child(&self.syntax)
10822    }
10823    #[inline]
10824    pub fn error_token(&self) -> Option<SyntaxToken> {
10825        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10826    }
10827    #[inline]
10828    pub fn on_token(&self) -> Option<SyntaxToken> {
10829        support::token(&self.syntax, SyntaxKind::ON_KW)
10830    }
10831}
10832
10833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10834pub struct JsonPassingArg {
10835    pub(crate) syntax: SyntaxNode,
10836}
10837impl JsonPassingArg {
10838    #[inline]
10839    pub fn expr(&self) -> Option<Expr> {
10840        support::child(&self.syntax)
10841    }
10842    #[inline]
10843    pub fn name(&self) -> Option<Name> {
10844        support::child(&self.syntax)
10845    }
10846    #[inline]
10847    pub fn as_token(&self) -> Option<SyntaxToken> {
10848        support::token(&self.syntax, SyntaxKind::AS_KW)
10849    }
10850}
10851
10852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10853pub struct JsonPassingClause {
10854    pub(crate) syntax: SyntaxNode,
10855}
10856impl JsonPassingClause {
10857    #[inline]
10858    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
10859        support::children(&self.syntax)
10860    }
10861    #[inline]
10862    pub fn passing_token(&self) -> Option<SyntaxToken> {
10863        support::token(&self.syntax, SyntaxKind::PASSING_KW)
10864    }
10865}
10866
10867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10868pub struct JsonPathClause {
10869    pub(crate) syntax: SyntaxNode,
10870}
10871impl JsonPathClause {
10872    #[inline]
10873    pub fn expr(&self) -> Option<Expr> {
10874        support::child(&self.syntax)
10875    }
10876    #[inline]
10877    pub fn path_token(&self) -> Option<SyntaxToken> {
10878        support::token(&self.syntax, SyntaxKind::PATH_KW)
10879    }
10880}
10881
10882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10883pub struct JsonQueryFn {
10884    pub(crate) syntax: SyntaxNode,
10885}
10886impl JsonQueryFn {
10887    #[inline]
10888    pub fn expr(&self) -> Option<Expr> {
10889        support::child(&self.syntax)
10890    }
10891    #[inline]
10892    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10893        support::child(&self.syntax)
10894    }
10895    #[inline]
10896    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10897        support::child(&self.syntax)
10898    }
10899    #[inline]
10900    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10901        support::child(&self.syntax)
10902    }
10903    #[inline]
10904    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10905        support::child(&self.syntax)
10906    }
10907    #[inline]
10908    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10909        support::child(&self.syntax)
10910    }
10911    #[inline]
10912    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10913        support::child(&self.syntax)
10914    }
10915    #[inline]
10916    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10917        support::token(&self.syntax, SyntaxKind::L_PAREN)
10918    }
10919    #[inline]
10920    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10921        support::token(&self.syntax, SyntaxKind::R_PAREN)
10922    }
10923    #[inline]
10924    pub fn comma_token(&self) -> Option<SyntaxToken> {
10925        support::token(&self.syntax, SyntaxKind::COMMA)
10926    }
10927    #[inline]
10928    pub fn json_query_token(&self) -> Option<SyntaxToken> {
10929        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
10930    }
10931}
10932
10933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10934pub struct JsonQuotesClause {
10935    pub(crate) syntax: SyntaxNode,
10936}
10937impl JsonQuotesClause {
10938    #[inline]
10939    pub fn keep_token(&self) -> Option<SyntaxToken> {
10940        support::token(&self.syntax, SyntaxKind::KEEP_KW)
10941    }
10942    #[inline]
10943    pub fn omit_token(&self) -> Option<SyntaxToken> {
10944        support::token(&self.syntax, SyntaxKind::OMIT_KW)
10945    }
10946    #[inline]
10947    pub fn on_token(&self) -> Option<SyntaxToken> {
10948        support::token(&self.syntax, SyntaxKind::ON_KW)
10949    }
10950    #[inline]
10951    pub fn quotes_token(&self) -> Option<SyntaxToken> {
10952        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
10953    }
10954    #[inline]
10955    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10956        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10957    }
10958    #[inline]
10959    pub fn string_token(&self) -> Option<SyntaxToken> {
10960        support::token(&self.syntax, SyntaxKind::STRING_KW)
10961    }
10962}
10963
10964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10965pub struct JsonReturningClause {
10966    pub(crate) syntax: SyntaxNode,
10967}
10968impl JsonReturningClause {
10969    #[inline]
10970    pub fn ty(&self) -> Option<Type> {
10971        support::child(&self.syntax)
10972    }
10973    #[inline]
10974    pub fn returning_token(&self) -> Option<SyntaxToken> {
10975        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
10976    }
10977}
10978
10979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10980pub struct JsonScalarFn {
10981    pub(crate) syntax: SyntaxNode,
10982}
10983impl JsonScalarFn {
10984    #[inline]
10985    pub fn expr(&self) -> Option<Expr> {
10986        support::child(&self.syntax)
10987    }
10988    #[inline]
10989    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10990        support::token(&self.syntax, SyntaxKind::L_PAREN)
10991    }
10992    #[inline]
10993    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10994        support::token(&self.syntax, SyntaxKind::R_PAREN)
10995    }
10996    #[inline]
10997    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
10998        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
10999    }
11000}
11001
11002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11003pub struct JsonSelectFormat {
11004    pub(crate) syntax: SyntaxNode,
11005}
11006impl JsonSelectFormat {
11007    #[inline]
11008    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11009        support::child(&self.syntax)
11010    }
11011    #[inline]
11012    pub fn select_variant(&self) -> Option<SelectVariant> {
11013        support::child(&self.syntax)
11014    }
11015}
11016
11017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11018pub struct JsonSerializeFn {
11019    pub(crate) syntax: SyntaxNode,
11020}
11021impl JsonSerializeFn {
11022    #[inline]
11023    pub fn expr(&self) -> Option<Expr> {
11024        support::child(&self.syntax)
11025    }
11026    #[inline]
11027    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11028        support::child(&self.syntax)
11029    }
11030    #[inline]
11031    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11032        support::child(&self.syntax)
11033    }
11034    #[inline]
11035    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11036        support::token(&self.syntax, SyntaxKind::L_PAREN)
11037    }
11038    #[inline]
11039    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11040        support::token(&self.syntax, SyntaxKind::R_PAREN)
11041    }
11042    #[inline]
11043    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11044        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11045    }
11046}
11047
11048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11049pub struct JsonTable {
11050    pub(crate) syntax: SyntaxNode,
11051}
11052impl JsonTable {
11053    #[inline]
11054    pub fn expr(&self) -> Option<Expr> {
11055        support::child(&self.syntax)
11056    }
11057    #[inline]
11058    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11059        support::child(&self.syntax)
11060    }
11061    #[inline]
11062    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11063        support::child(&self.syntax)
11064    }
11065    #[inline]
11066    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11067        support::child(&self.syntax)
11068    }
11069    #[inline]
11070    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11071        support::child(&self.syntax)
11072    }
11073    #[inline]
11074    pub fn name(&self) -> Option<Name> {
11075        support::child(&self.syntax)
11076    }
11077    #[inline]
11078    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11079        support::token(&self.syntax, SyntaxKind::L_PAREN)
11080    }
11081    #[inline]
11082    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11083        support::token(&self.syntax, SyntaxKind::R_PAREN)
11084    }
11085    #[inline]
11086    pub fn comma_token(&self) -> Option<SyntaxToken> {
11087        support::token(&self.syntax, SyntaxKind::COMMA)
11088    }
11089    #[inline]
11090    pub fn as_token(&self) -> Option<SyntaxToken> {
11091        support::token(&self.syntax, SyntaxKind::AS_KW)
11092    }
11093    #[inline]
11094    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11095        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11096    }
11097}
11098
11099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11100pub struct JsonTableColumn {
11101    pub(crate) syntax: SyntaxNode,
11102}
11103impl JsonTableColumn {
11104    #[inline]
11105    pub fn expr(&self) -> Option<Expr> {
11106        support::child(&self.syntax)
11107    }
11108    #[inline]
11109    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11110        support::child(&self.syntax)
11111    }
11112    #[inline]
11113    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11114        support::child(&self.syntax)
11115    }
11116    #[inline]
11117    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11118        support::child(&self.syntax)
11119    }
11120    #[inline]
11121    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11122        support::child(&self.syntax)
11123    }
11124    #[inline]
11125    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11126        support::child(&self.syntax)
11127    }
11128    #[inline]
11129    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11130        support::child(&self.syntax)
11131    }
11132    #[inline]
11133    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11134        support::child(&self.syntax)
11135    }
11136    #[inline]
11137    pub fn name(&self) -> Option<Name> {
11138        support::child(&self.syntax)
11139    }
11140    #[inline]
11141    pub fn ty(&self) -> Option<Type> {
11142        support::child(&self.syntax)
11143    }
11144    #[inline]
11145    pub fn as_token(&self) -> Option<SyntaxToken> {
11146        support::token(&self.syntax, SyntaxKind::AS_KW)
11147    }
11148    #[inline]
11149    pub fn exists_token(&self) -> Option<SyntaxToken> {
11150        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11151    }
11152    #[inline]
11153    pub fn for_token(&self) -> Option<SyntaxToken> {
11154        support::token(&self.syntax, SyntaxKind::FOR_KW)
11155    }
11156    #[inline]
11157    pub fn nested_token(&self) -> Option<SyntaxToken> {
11158        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11159    }
11160    #[inline]
11161    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11162        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11163    }
11164    #[inline]
11165    pub fn path_token(&self) -> Option<SyntaxToken> {
11166        support::token(&self.syntax, SyntaxKind::PATH_KW)
11167    }
11168}
11169
11170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11171pub struct JsonTableColumnList {
11172    pub(crate) syntax: SyntaxNode,
11173}
11174impl JsonTableColumnList {
11175    #[inline]
11176    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11177        support::children(&self.syntax)
11178    }
11179    #[inline]
11180    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11181        support::token(&self.syntax, SyntaxKind::L_PAREN)
11182    }
11183    #[inline]
11184    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11185        support::token(&self.syntax, SyntaxKind::R_PAREN)
11186    }
11187    #[inline]
11188    pub fn columns_token(&self) -> Option<SyntaxToken> {
11189        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11190    }
11191}
11192
11193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11194pub struct JsonValueExpr {
11195    pub(crate) syntax: SyntaxNode,
11196}
11197impl JsonValueExpr {
11198    #[inline]
11199    pub fn expr(&self) -> Option<Expr> {
11200        support::child(&self.syntax)
11201    }
11202    #[inline]
11203    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11204        support::child(&self.syntax)
11205    }
11206}
11207
11208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11209pub struct JsonValueFn {
11210    pub(crate) syntax: SyntaxNode,
11211}
11212impl JsonValueFn {
11213    #[inline]
11214    pub fn expr(&self) -> Option<Expr> {
11215        support::child(&self.syntax)
11216    }
11217    #[inline]
11218    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11219        support::child(&self.syntax)
11220    }
11221    #[inline]
11222    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11223        support::child(&self.syntax)
11224    }
11225    #[inline]
11226    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11227        support::child(&self.syntax)
11228    }
11229    #[inline]
11230    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11231        support::child(&self.syntax)
11232    }
11233    #[inline]
11234    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11235        support::token(&self.syntax, SyntaxKind::L_PAREN)
11236    }
11237    #[inline]
11238    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11239        support::token(&self.syntax, SyntaxKind::R_PAREN)
11240    }
11241    #[inline]
11242    pub fn comma_token(&self) -> Option<SyntaxToken> {
11243        support::token(&self.syntax, SyntaxKind::COMMA)
11244    }
11245    #[inline]
11246    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11247        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11248    }
11249}
11250
11251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11252pub struct JsonWrapperBehaviorClause {
11253    pub(crate) syntax: SyntaxNode,
11254}
11255impl JsonWrapperBehaviorClause {
11256    #[inline]
11257    pub fn array_token(&self) -> Option<SyntaxToken> {
11258        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11259    }
11260    #[inline]
11261    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11262        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11263    }
11264    #[inline]
11265    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11266        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11267    }
11268    #[inline]
11269    pub fn with_token(&self) -> Option<SyntaxToken> {
11270        support::token(&self.syntax, SyntaxKind::WITH_KW)
11271    }
11272    #[inline]
11273    pub fn without_token(&self) -> Option<SyntaxToken> {
11274        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11275    }
11276    #[inline]
11277    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11278        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11279    }
11280}
11281
11282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11283pub struct LabelAndProperties {
11284    pub(crate) syntax: SyntaxNode,
11285}
11286impl LabelAndProperties {
11287    #[inline]
11288    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11289        support::child(&self.syntax)
11290    }
11291    #[inline]
11292    pub fn name(&self) -> Option<Name> {
11293        support::child(&self.syntax)
11294    }
11295    #[inline]
11296    pub fn default_token(&self) -> Option<SyntaxToken> {
11297        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11298    }
11299    #[inline]
11300    pub fn label_token(&self) -> Option<SyntaxToken> {
11301        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11302    }
11303}
11304
11305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11306pub struct LabelAndPropertiesList {
11307    pub(crate) syntax: SyntaxNode,
11308}
11309impl LabelAndPropertiesList {
11310    #[inline]
11311    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11312        support::children(&self.syntax)
11313    }
11314}
11315
11316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11317pub struct LanguageFuncOption {
11318    pub(crate) syntax: SyntaxNode,
11319}
11320impl LanguageFuncOption {
11321    #[inline]
11322    pub fn name_ref(&self) -> Option<NameRef> {
11323        support::child(&self.syntax)
11324    }
11325    #[inline]
11326    pub fn language_token(&self) -> Option<SyntaxToken> {
11327        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11328    }
11329}
11330
11331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11332pub struct LeakproofFuncOption {
11333    pub(crate) syntax: SyntaxNode,
11334}
11335impl LeakproofFuncOption {
11336    #[inline]
11337    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11338        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11339    }
11340    #[inline]
11341    pub fn not_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::NOT_KW)
11343    }
11344}
11345
11346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11347pub struct LikeClause {
11348    pub(crate) syntax: SyntaxNode,
11349}
11350impl LikeClause {
11351    #[inline]
11352    pub fn like_options(&self) -> AstChildren<LikeOption> {
11353        support::children(&self.syntax)
11354    }
11355    #[inline]
11356    pub fn path(&self) -> Option<Path> {
11357        support::child(&self.syntax)
11358    }
11359    #[inline]
11360    pub fn like_token(&self) -> Option<SyntaxToken> {
11361        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11362    }
11363}
11364
11365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11366pub struct LikeOption {
11367    pub(crate) syntax: SyntaxNode,
11368}
11369impl LikeOption {
11370    #[inline]
11371    pub fn all_token(&self) -> Option<SyntaxToken> {
11372        support::token(&self.syntax, SyntaxKind::ALL_KW)
11373    }
11374    #[inline]
11375    pub fn comments_token(&self) -> Option<SyntaxToken> {
11376        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11377    }
11378    #[inline]
11379    pub fn compression_token(&self) -> Option<SyntaxToken> {
11380        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11381    }
11382    #[inline]
11383    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11384        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11385    }
11386    #[inline]
11387    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11389    }
11390    #[inline]
11391    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11393    }
11394    #[inline]
11395    pub fn generated_token(&self) -> Option<SyntaxToken> {
11396        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11397    }
11398    #[inline]
11399    pub fn identity_token(&self) -> Option<SyntaxToken> {
11400        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11401    }
11402    #[inline]
11403    pub fn including_token(&self) -> Option<SyntaxToken> {
11404        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11405    }
11406    #[inline]
11407    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11408        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11409    }
11410    #[inline]
11411    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11412        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11413    }
11414    #[inline]
11415    pub fn storage_token(&self) -> Option<SyntaxToken> {
11416        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11417    }
11418}
11419
11420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11421pub struct LimitClause {
11422    pub(crate) syntax: SyntaxNode,
11423}
11424impl LimitClause {
11425    #[inline]
11426    pub fn expr(&self) -> Option<Expr> {
11427        support::child(&self.syntax)
11428    }
11429    #[inline]
11430    pub fn all_token(&self) -> Option<SyntaxToken> {
11431        support::token(&self.syntax, SyntaxKind::ALL_KW)
11432    }
11433    #[inline]
11434    pub fn limit_token(&self) -> Option<SyntaxToken> {
11435        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11436    }
11437}
11438
11439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11440pub struct LimitToTables {
11441    pub(crate) syntax: SyntaxNode,
11442}
11443impl LimitToTables {
11444    #[inline]
11445    pub fn name_refs(&self) -> AstChildren<NameRef> {
11446        support::children(&self.syntax)
11447    }
11448    #[inline]
11449    pub fn limit_token(&self) -> Option<SyntaxToken> {
11450        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11451    }
11452    #[inline]
11453    pub fn to_token(&self) -> Option<SyntaxToken> {
11454        support::token(&self.syntax, SyntaxKind::TO_KW)
11455    }
11456}
11457
11458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11459pub struct Listen {
11460    pub(crate) syntax: SyntaxNode,
11461}
11462impl Listen {
11463    #[inline]
11464    pub fn name(&self) -> Option<Name> {
11465        support::child(&self.syntax)
11466    }
11467    #[inline]
11468    pub fn listen_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
11470    }
11471}
11472
11473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11474pub struct Literal {
11475    pub(crate) syntax: SyntaxNode,
11476}
11477impl Literal {}
11478
11479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11480pub struct Load {
11481    pub(crate) syntax: SyntaxNode,
11482}
11483impl Load {
11484    #[inline]
11485    pub fn literal(&self) -> Option<Literal> {
11486        support::child(&self.syntax)
11487    }
11488    #[inline]
11489    pub fn load_token(&self) -> Option<SyntaxToken> {
11490        support::token(&self.syntax, SyntaxKind::LOAD_KW)
11491    }
11492}
11493
11494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11495pub struct Lock {
11496    pub(crate) syntax: SyntaxNode,
11497}
11498impl Lock {
11499    #[inline]
11500    pub fn table_list(&self) -> Option<TableList> {
11501        support::child(&self.syntax)
11502    }
11503    #[inline]
11504    pub fn lock_token(&self) -> Option<SyntaxToken> {
11505        support::token(&self.syntax, SyntaxKind::LOCK_KW)
11506    }
11507    #[inline]
11508    pub fn table_token(&self) -> Option<SyntaxToken> {
11509        support::token(&self.syntax, SyntaxKind::TABLE_KW)
11510    }
11511}
11512
11513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11514pub struct LockingClause {
11515    pub(crate) syntax: SyntaxNode,
11516}
11517impl LockingClause {
11518    #[inline]
11519    pub fn for_token(&self) -> Option<SyntaxToken> {
11520        support::token(&self.syntax, SyntaxKind::FOR_KW)
11521    }
11522}
11523
11524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11525pub struct Lteq {
11526    pub(crate) syntax: SyntaxNode,
11527}
11528impl Lteq {
11529    #[inline]
11530    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11532    }
11533    #[inline]
11534    pub fn eq_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::EQ)
11536    }
11537}
11538
11539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11540pub struct MatchFull {
11541    pub(crate) syntax: SyntaxNode,
11542}
11543impl MatchFull {
11544    #[inline]
11545    pub fn full_token(&self) -> Option<SyntaxToken> {
11546        support::token(&self.syntax, SyntaxKind::FULL_KW)
11547    }
11548    #[inline]
11549    pub fn match_token(&self) -> Option<SyntaxToken> {
11550        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11551    }
11552}
11553
11554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11555pub struct MatchPartial {
11556    pub(crate) syntax: SyntaxNode,
11557}
11558impl MatchPartial {
11559    #[inline]
11560    pub fn match_token(&self) -> Option<SyntaxToken> {
11561        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11562    }
11563    #[inline]
11564    pub fn partial_token(&self) -> Option<SyntaxToken> {
11565        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
11566    }
11567}
11568
11569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11570pub struct MatchSimple {
11571    pub(crate) syntax: SyntaxNode,
11572}
11573impl MatchSimple {
11574    #[inline]
11575    pub fn match_token(&self) -> Option<SyntaxToken> {
11576        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11577    }
11578    #[inline]
11579    pub fn simple_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
11581    }
11582}
11583
11584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11585pub struct Materialized {
11586    pub(crate) syntax: SyntaxNode,
11587}
11588impl Materialized {
11589    #[inline]
11590    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11591        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11592    }
11593}
11594
11595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11596pub struct Merge {
11597    pub(crate) syntax: SyntaxNode,
11598}
11599impl Merge {
11600    #[inline]
11601    pub fn alias(&self) -> Option<Alias> {
11602        support::child(&self.syntax)
11603    }
11604    #[inline]
11605    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
11606        support::children(&self.syntax)
11607    }
11608    #[inline]
11609    pub fn relation_name(&self) -> Option<RelationName> {
11610        support::child(&self.syntax)
11611    }
11612    #[inline]
11613    pub fn returning_clause(&self) -> Option<ReturningClause> {
11614        support::child(&self.syntax)
11615    }
11616    #[inline]
11617    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
11618        support::child(&self.syntax)
11619    }
11620    #[inline]
11621    pub fn with_clause(&self) -> Option<WithClause> {
11622        support::child(&self.syntax)
11623    }
11624    #[inline]
11625    pub fn into_token(&self) -> Option<SyntaxToken> {
11626        support::token(&self.syntax, SyntaxKind::INTO_KW)
11627    }
11628    #[inline]
11629    pub fn merge_token(&self) -> Option<SyntaxToken> {
11630        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11631    }
11632}
11633
11634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11635pub struct MergeDelete {
11636    pub(crate) syntax: SyntaxNode,
11637}
11638impl MergeDelete {
11639    #[inline]
11640    pub fn delete_token(&self) -> Option<SyntaxToken> {
11641        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11642    }
11643}
11644
11645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11646pub struct MergeDoNothing {
11647    pub(crate) syntax: SyntaxNode,
11648}
11649impl MergeDoNothing {
11650    #[inline]
11651    pub fn do_token(&self) -> Option<SyntaxToken> {
11652        support::token(&self.syntax, SyntaxKind::DO_KW)
11653    }
11654    #[inline]
11655    pub fn nothing_token(&self) -> Option<SyntaxToken> {
11656        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
11657    }
11658}
11659
11660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11661pub struct MergeInsert {
11662    pub(crate) syntax: SyntaxNode,
11663}
11664impl MergeInsert {
11665    #[inline]
11666    pub fn column_list(&self) -> Option<ColumnList> {
11667        support::child(&self.syntax)
11668    }
11669    #[inline]
11670    pub fn values(&self) -> Option<Values> {
11671        support::child(&self.syntax)
11672    }
11673    #[inline]
11674    pub fn default_token(&self) -> Option<SyntaxToken> {
11675        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11676    }
11677    #[inline]
11678    pub fn insert_token(&self) -> Option<SyntaxToken> {
11679        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11680    }
11681    #[inline]
11682    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11683        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11684    }
11685    #[inline]
11686    pub fn system_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11688    }
11689    #[inline]
11690    pub fn user_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::USER_KW)
11692    }
11693    #[inline]
11694    pub fn values_token(&self) -> Option<SyntaxToken> {
11695        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11696    }
11697}
11698
11699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11700pub struct MergePartitions {
11701    pub(crate) syntax: SyntaxNode,
11702}
11703impl MergePartitions {
11704    #[inline]
11705    pub fn path(&self) -> Option<Path> {
11706        support::child(&self.syntax)
11707    }
11708    #[inline]
11709    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11710        support::token(&self.syntax, SyntaxKind::L_PAREN)
11711    }
11712    #[inline]
11713    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11714        support::token(&self.syntax, SyntaxKind::R_PAREN)
11715    }
11716    #[inline]
11717    pub fn into_token(&self) -> Option<SyntaxToken> {
11718        support::token(&self.syntax, SyntaxKind::INTO_KW)
11719    }
11720    #[inline]
11721    pub fn merge_token(&self) -> Option<SyntaxToken> {
11722        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11723    }
11724    #[inline]
11725    pub fn partitions_token(&self) -> Option<SyntaxToken> {
11726        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
11727    }
11728}
11729
11730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11731pub struct MergeUpdate {
11732    pub(crate) syntax: SyntaxNode,
11733}
11734impl MergeUpdate {
11735    #[inline]
11736    pub fn set_clause(&self) -> Option<SetClause> {
11737        support::child(&self.syntax)
11738    }
11739    #[inline]
11740    pub fn set_token(&self) -> Option<SyntaxToken> {
11741        support::token(&self.syntax, SyntaxKind::SET_KW)
11742    }
11743    #[inline]
11744    pub fn update_token(&self) -> Option<SyntaxToken> {
11745        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11746    }
11747}
11748
11749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11750pub struct MergeWhenMatched {
11751    pub(crate) syntax: SyntaxNode,
11752}
11753impl MergeWhenMatched {
11754    #[inline]
11755    pub fn expr(&self) -> Option<Expr> {
11756        support::child(&self.syntax)
11757    }
11758    #[inline]
11759    pub fn merge_action(&self) -> Option<MergeAction> {
11760        support::child(&self.syntax)
11761    }
11762    #[inline]
11763    pub fn and_token(&self) -> Option<SyntaxToken> {
11764        support::token(&self.syntax, SyntaxKind::AND_KW)
11765    }
11766    #[inline]
11767    pub fn matched_token(&self) -> Option<SyntaxToken> {
11768        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11769    }
11770    #[inline]
11771    pub fn then_token(&self) -> Option<SyntaxToken> {
11772        support::token(&self.syntax, SyntaxKind::THEN_KW)
11773    }
11774    #[inline]
11775    pub fn when_token(&self) -> Option<SyntaxToken> {
11776        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11777    }
11778}
11779
11780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11781pub struct MergeWhenNotMatchedSource {
11782    pub(crate) syntax: SyntaxNode,
11783}
11784impl MergeWhenNotMatchedSource {
11785    #[inline]
11786    pub fn expr(&self) -> Option<Expr> {
11787        support::child(&self.syntax)
11788    }
11789    #[inline]
11790    pub fn merge_action(&self) -> Option<MergeAction> {
11791        support::child(&self.syntax)
11792    }
11793    #[inline]
11794    pub fn and_token(&self) -> Option<SyntaxToken> {
11795        support::token(&self.syntax, SyntaxKind::AND_KW)
11796    }
11797    #[inline]
11798    pub fn by_token(&self) -> Option<SyntaxToken> {
11799        support::token(&self.syntax, SyntaxKind::BY_KW)
11800    }
11801    #[inline]
11802    pub fn matched_token(&self) -> Option<SyntaxToken> {
11803        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11804    }
11805    #[inline]
11806    pub fn not_token(&self) -> Option<SyntaxToken> {
11807        support::token(&self.syntax, SyntaxKind::NOT_KW)
11808    }
11809    #[inline]
11810    pub fn source_token(&self) -> Option<SyntaxToken> {
11811        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
11812    }
11813    #[inline]
11814    pub fn then_token(&self) -> Option<SyntaxToken> {
11815        support::token(&self.syntax, SyntaxKind::THEN_KW)
11816    }
11817    #[inline]
11818    pub fn when_token(&self) -> Option<SyntaxToken> {
11819        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11820    }
11821}
11822
11823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11824pub struct MergeWhenNotMatchedTarget {
11825    pub(crate) syntax: SyntaxNode,
11826}
11827impl MergeWhenNotMatchedTarget {
11828    #[inline]
11829    pub fn expr(&self) -> Option<Expr> {
11830        support::child(&self.syntax)
11831    }
11832    #[inline]
11833    pub fn merge_action(&self) -> Option<MergeAction> {
11834        support::child(&self.syntax)
11835    }
11836    #[inline]
11837    pub fn and_token(&self) -> Option<SyntaxToken> {
11838        support::token(&self.syntax, SyntaxKind::AND_KW)
11839    }
11840    #[inline]
11841    pub fn by_token(&self) -> Option<SyntaxToken> {
11842        support::token(&self.syntax, SyntaxKind::BY_KW)
11843    }
11844    #[inline]
11845    pub fn matched_token(&self) -> Option<SyntaxToken> {
11846        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11847    }
11848    #[inline]
11849    pub fn not_token(&self) -> Option<SyntaxToken> {
11850        support::token(&self.syntax, SyntaxKind::NOT_KW)
11851    }
11852    #[inline]
11853    pub fn target_token(&self) -> Option<SyntaxToken> {
11854        support::token(&self.syntax, SyntaxKind::TARGET_KW)
11855    }
11856    #[inline]
11857    pub fn then_token(&self) -> Option<SyntaxToken> {
11858        support::token(&self.syntax, SyntaxKind::THEN_KW)
11859    }
11860    #[inline]
11861    pub fn when_token(&self) -> Option<SyntaxToken> {
11862        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11863    }
11864}
11865
11866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11867pub struct Move {
11868    pub(crate) syntax: SyntaxNode,
11869}
11870impl Move {
11871    #[inline]
11872    pub fn name_ref(&self) -> Option<NameRef> {
11873        support::child(&self.syntax)
11874    }
11875    #[inline]
11876    pub fn from_token(&self) -> Option<SyntaxToken> {
11877        support::token(&self.syntax, SyntaxKind::FROM_KW)
11878    }
11879    #[inline]
11880    pub fn in_token(&self) -> Option<SyntaxToken> {
11881        support::token(&self.syntax, SyntaxKind::IN_KW)
11882    }
11883    #[inline]
11884    pub fn move_token(&self) -> Option<SyntaxToken> {
11885        support::token(&self.syntax, SyntaxKind::MOVE_KW)
11886    }
11887}
11888
11889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11890pub struct Name {
11891    pub(crate) syntax: SyntaxNode,
11892}
11893impl Name {
11894    #[inline]
11895    pub fn ident_token(&self) -> Option<SyntaxToken> {
11896        support::token(&self.syntax, SyntaxKind::IDENT)
11897    }
11898}
11899
11900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11901pub struct NameRef {
11902    pub(crate) syntax: SyntaxNode,
11903}
11904impl NameRef {
11905    #[inline]
11906    pub fn ident_token(&self) -> Option<SyntaxToken> {
11907        support::token(&self.syntax, SyntaxKind::IDENT)
11908    }
11909}
11910
11911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11912pub struct NamedArg {
11913    pub(crate) syntax: SyntaxNode,
11914}
11915impl NamedArg {
11916    #[inline]
11917    pub fn expr(&self) -> Option<Expr> {
11918        support::child(&self.syntax)
11919    }
11920    #[inline]
11921    pub fn fat_arrow(&self) -> Option<FatArrow> {
11922        support::child(&self.syntax)
11923    }
11924    #[inline]
11925    pub fn name_ref(&self) -> Option<NameRef> {
11926        support::child(&self.syntax)
11927    }
11928}
11929
11930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11931pub struct Neq {
11932    pub(crate) syntax: SyntaxNode,
11933}
11934impl Neq {
11935    #[inline]
11936    pub fn bang_token(&self) -> Option<SyntaxToken> {
11937        support::token(&self.syntax, SyntaxKind::BANG)
11938    }
11939    #[inline]
11940    pub fn eq_token(&self) -> Option<SyntaxToken> {
11941        support::token(&self.syntax, SyntaxKind::EQ)
11942    }
11943}
11944
11945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11946pub struct Neqb {
11947    pub(crate) syntax: SyntaxNode,
11948}
11949impl Neqb {
11950    #[inline]
11951    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11952        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11953    }
11954    #[inline]
11955    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11956        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11957    }
11958}
11959
11960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11961pub struct NoAction {
11962    pub(crate) syntax: SyntaxNode,
11963}
11964impl NoAction {
11965    #[inline]
11966    pub fn action_token(&self) -> Option<SyntaxToken> {
11967        support::token(&self.syntax, SyntaxKind::ACTION_KW)
11968    }
11969    #[inline]
11970    pub fn no_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::NO_KW)
11972    }
11973}
11974
11975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11976pub struct NoDependsOnExtension {
11977    pub(crate) syntax: SyntaxNode,
11978}
11979impl NoDependsOnExtension {
11980    #[inline]
11981    pub fn name_ref(&self) -> Option<NameRef> {
11982        support::child(&self.syntax)
11983    }
11984    #[inline]
11985    pub fn depends_token(&self) -> Option<SyntaxToken> {
11986        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
11987    }
11988    #[inline]
11989    pub fn extension_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
11991    }
11992    #[inline]
11993    pub fn no_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::NO_KW)
11995    }
11996    #[inline]
11997    pub fn on_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::ON_KW)
11999    }
12000}
12001
12002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12003pub struct NoForceRls {
12004    pub(crate) syntax: SyntaxNode,
12005}
12006impl NoForceRls {
12007    #[inline]
12008    pub fn force_token(&self) -> Option<SyntaxToken> {
12009        support::token(&self.syntax, SyntaxKind::FORCE_KW)
12010    }
12011    #[inline]
12012    pub fn level_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12014    }
12015    #[inline]
12016    pub fn no_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::NO_KW)
12018    }
12019    #[inline]
12020    pub fn row_token(&self) -> Option<SyntaxToken> {
12021        support::token(&self.syntax, SyntaxKind::ROW_KW)
12022    }
12023    #[inline]
12024    pub fn security_token(&self) -> Option<SyntaxToken> {
12025        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12026    }
12027}
12028
12029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12030pub struct NoInherit {
12031    pub(crate) syntax: SyntaxNode,
12032}
12033impl NoInherit {
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 NoInheritTable {
12050    pub(crate) syntax: SyntaxNode,
12051}
12052impl NoInheritTable {
12053    #[inline]
12054    pub fn path(&self) -> Option<Path> {
12055        support::child(&self.syntax)
12056    }
12057    #[inline]
12058    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12059        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12060    }
12061    #[inline]
12062    pub fn no_token(&self) -> Option<SyntaxToken> {
12063        support::token(&self.syntax, SyntaxKind::NO_KW)
12064    }
12065}
12066
12067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12068pub struct NoProperties {
12069    pub(crate) syntax: SyntaxNode,
12070}
12071impl NoProperties {
12072    #[inline]
12073    pub fn no_token(&self) -> Option<SyntaxToken> {
12074        support::token(&self.syntax, SyntaxKind::NO_KW)
12075    }
12076    #[inline]
12077    pub fn properties_token(&self) -> Option<SyntaxToken> {
12078        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12079    }
12080}
12081
12082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12083pub struct NonStandardParam {
12084    pub(crate) syntax: SyntaxNode,
12085}
12086impl NonStandardParam {
12087    #[inline]
12088    pub fn name_ref(&self) -> Option<NameRef> {
12089        support::child(&self.syntax)
12090    }
12091    #[inline]
12092    pub fn colon_token(&self) -> Option<SyntaxToken> {
12093        support::token(&self.syntax, SyntaxKind::COLON)
12094    }
12095}
12096
12097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12098pub struct NotDeferrable {
12099    pub(crate) syntax: SyntaxNode,
12100}
12101impl NotDeferrable {
12102    #[inline]
12103    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12104        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12105    }
12106    #[inline]
12107    pub fn not_token(&self) -> Option<SyntaxToken> {
12108        support::token(&self.syntax, SyntaxKind::NOT_KW)
12109    }
12110}
12111
12112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12113pub struct NotDeferrableConstraintOption {
12114    pub(crate) syntax: SyntaxNode,
12115}
12116impl NotDeferrableConstraintOption {
12117    #[inline]
12118    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12119        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12120    }
12121    #[inline]
12122    pub fn not_token(&self) -> Option<SyntaxToken> {
12123        support::token(&self.syntax, SyntaxKind::NOT_KW)
12124    }
12125}
12126
12127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12128pub struct NotEnforced {
12129    pub(crate) syntax: SyntaxNode,
12130}
12131impl NotEnforced {
12132    #[inline]
12133    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12134        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12135    }
12136    #[inline]
12137    pub fn not_token(&self) -> Option<SyntaxToken> {
12138        support::token(&self.syntax, SyntaxKind::NOT_KW)
12139    }
12140}
12141
12142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12143pub struct NotIlike {
12144    pub(crate) syntax: SyntaxNode,
12145}
12146impl NotIlike {
12147    #[inline]
12148    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12149        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12150    }
12151    #[inline]
12152    pub fn not_token(&self) -> Option<SyntaxToken> {
12153        support::token(&self.syntax, SyntaxKind::NOT_KW)
12154    }
12155}
12156
12157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12158pub struct NotIn {
12159    pub(crate) syntax: SyntaxNode,
12160}
12161impl NotIn {
12162    #[inline]
12163    pub fn in_token(&self) -> Option<SyntaxToken> {
12164        support::token(&self.syntax, SyntaxKind::IN_KW)
12165    }
12166    #[inline]
12167    pub fn not_token(&self) -> Option<SyntaxToken> {
12168        support::token(&self.syntax, SyntaxKind::NOT_KW)
12169    }
12170}
12171
12172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12173pub struct NotLike {
12174    pub(crate) syntax: SyntaxNode,
12175}
12176impl NotLike {
12177    #[inline]
12178    pub fn like_token(&self) -> Option<SyntaxToken> {
12179        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12180    }
12181    #[inline]
12182    pub fn not_token(&self) -> Option<SyntaxToken> {
12183        support::token(&self.syntax, SyntaxKind::NOT_KW)
12184    }
12185}
12186
12187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12188pub struct NotMaterialized {
12189    pub(crate) syntax: SyntaxNode,
12190}
12191impl NotMaterialized {
12192    #[inline]
12193    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12194        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12195    }
12196    #[inline]
12197    pub fn not_token(&self) -> Option<SyntaxToken> {
12198        support::token(&self.syntax, SyntaxKind::NOT_KW)
12199    }
12200}
12201
12202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12203pub struct NotNullConstraint {
12204    pub(crate) syntax: SyntaxNode,
12205}
12206impl NotNullConstraint {
12207    #[inline]
12208    pub fn name_ref(&self) -> Option<NameRef> {
12209        support::child(&self.syntax)
12210    }
12211    #[inline]
12212    pub fn no_inherit(&self) -> Option<NoInherit> {
12213        support::child(&self.syntax)
12214    }
12215    #[inline]
12216    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12217        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12218    }
12219    #[inline]
12220    pub fn not_token(&self) -> Option<SyntaxToken> {
12221        support::token(&self.syntax, SyntaxKind::NOT_KW)
12222    }
12223    #[inline]
12224    pub fn null_token(&self) -> Option<SyntaxToken> {
12225        support::token(&self.syntax, SyntaxKind::NULL_KW)
12226    }
12227}
12228
12229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12230pub struct NotOf {
12231    pub(crate) syntax: SyntaxNode,
12232}
12233impl NotOf {
12234    #[inline]
12235    pub fn not_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::NOT_KW)
12237    }
12238    #[inline]
12239    pub fn of_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::OF_KW)
12241    }
12242}
12243
12244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12245pub struct NotSimilarTo {
12246    pub(crate) syntax: SyntaxNode,
12247}
12248impl NotSimilarTo {
12249    #[inline]
12250    pub fn not_token(&self) -> Option<SyntaxToken> {
12251        support::token(&self.syntax, SyntaxKind::NOT_KW)
12252    }
12253    #[inline]
12254    pub fn similar_token(&self) -> Option<SyntaxToken> {
12255        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12256    }
12257    #[inline]
12258    pub fn to_token(&self) -> Option<SyntaxToken> {
12259        support::token(&self.syntax, SyntaxKind::TO_KW)
12260    }
12261}
12262
12263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12264pub struct NotValid {
12265    pub(crate) syntax: SyntaxNode,
12266}
12267impl NotValid {
12268    #[inline]
12269    pub fn not_token(&self) -> Option<SyntaxToken> {
12270        support::token(&self.syntax, SyntaxKind::NOT_KW)
12271    }
12272    #[inline]
12273    pub fn valid_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::VALID_KW)
12275    }
12276}
12277
12278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12279pub struct Notify {
12280    pub(crate) syntax: SyntaxNode,
12281}
12282impl Notify {
12283    #[inline]
12284    pub fn literal(&self) -> Option<Literal> {
12285        support::child(&self.syntax)
12286    }
12287    #[inline]
12288    pub fn name_ref(&self) -> Option<NameRef> {
12289        support::child(&self.syntax)
12290    }
12291    #[inline]
12292    pub fn comma_token(&self) -> Option<SyntaxToken> {
12293        support::token(&self.syntax, SyntaxKind::COMMA)
12294    }
12295    #[inline]
12296    pub fn notify_token(&self) -> Option<SyntaxToken> {
12297        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12298    }
12299}
12300
12301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12302pub struct NullConstraint {
12303    pub(crate) syntax: SyntaxNode,
12304}
12305impl NullConstraint {
12306    #[inline]
12307    pub fn name_ref(&self) -> Option<NameRef> {
12308        support::child(&self.syntax)
12309    }
12310    #[inline]
12311    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12312        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12313    }
12314    #[inline]
12315    pub fn null_token(&self) -> Option<SyntaxToken> {
12316        support::token(&self.syntax, SyntaxKind::NULL_KW)
12317    }
12318}
12319
12320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12321pub struct NullsDistinct {
12322    pub(crate) syntax: SyntaxNode,
12323}
12324impl NullsDistinct {
12325    #[inline]
12326    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12327        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12328    }
12329    #[inline]
12330    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12331        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12332    }
12333}
12334
12335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12336pub struct NullsFirst {
12337    pub(crate) syntax: SyntaxNode,
12338}
12339impl NullsFirst {
12340    #[inline]
12341    pub fn first_token(&self) -> Option<SyntaxToken> {
12342        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12343    }
12344    #[inline]
12345    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12346        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12347    }
12348}
12349
12350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12351pub struct NullsLast {
12352    pub(crate) syntax: SyntaxNode,
12353}
12354impl NullsLast {
12355    #[inline]
12356    pub fn last_token(&self) -> Option<SyntaxToken> {
12357        support::token(&self.syntax, SyntaxKind::LAST_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 NullsNotDistinct {
12367    pub(crate) syntax: SyntaxNode,
12368}
12369impl NullsNotDistinct {
12370    #[inline]
12371    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12372        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12373    }
12374    #[inline]
12375    pub fn not_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::NOT_KW)
12377    }
12378    #[inline]
12379    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12380        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12381    }
12382}
12383
12384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12385pub struct OfType {
12386    pub(crate) syntax: SyntaxNode,
12387}
12388impl OfType {
12389    #[inline]
12390    pub fn ty(&self) -> Option<Type> {
12391        support::child(&self.syntax)
12392    }
12393    #[inline]
12394    pub fn of_token(&self) -> Option<SyntaxToken> {
12395        support::token(&self.syntax, SyntaxKind::OF_KW)
12396    }
12397}
12398
12399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12400pub struct OffsetClause {
12401    pub(crate) syntax: SyntaxNode,
12402}
12403impl OffsetClause {
12404    #[inline]
12405    pub fn expr(&self) -> Option<Expr> {
12406        support::child(&self.syntax)
12407    }
12408    #[inline]
12409    pub fn offset_token(&self) -> Option<SyntaxToken> {
12410        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12411    }
12412    #[inline]
12413    pub fn row_token(&self) -> Option<SyntaxToken> {
12414        support::token(&self.syntax, SyntaxKind::ROW_KW)
12415    }
12416    #[inline]
12417    pub fn rows_token(&self) -> Option<SyntaxToken> {
12418        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12419    }
12420}
12421
12422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12423pub struct OnClause {
12424    pub(crate) syntax: SyntaxNode,
12425}
12426impl OnClause {
12427    #[inline]
12428    pub fn expr(&self) -> Option<Expr> {
12429        support::child(&self.syntax)
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 OnCommit {
12439    pub(crate) syntax: SyntaxNode,
12440}
12441impl OnCommit {
12442    #[inline]
12443    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
12444        support::child(&self.syntax)
12445    }
12446    #[inline]
12447    pub fn commit_token(&self) -> Option<SyntaxToken> {
12448        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
12449    }
12450    #[inline]
12451    pub fn on_token(&self) -> Option<SyntaxToken> {
12452        support::token(&self.syntax, SyntaxKind::ON_KW)
12453    }
12454}
12455
12456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12457pub struct OnConflictClause {
12458    pub(crate) syntax: SyntaxNode,
12459}
12460impl OnConflictClause {
12461    #[inline]
12462    pub fn conflict_action(&self) -> Option<ConflictAction> {
12463        support::child(&self.syntax)
12464    }
12465    #[inline]
12466    pub fn conflict_target(&self) -> Option<ConflictTarget> {
12467        support::child(&self.syntax)
12468    }
12469    #[inline]
12470    pub fn conflict_token(&self) -> Option<SyntaxToken> {
12471        support::token(&self.syntax, SyntaxKind::CONFLICT_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 OnDeleteAction {
12481    pub(crate) syntax: SyntaxNode,
12482}
12483impl OnDeleteAction {
12484    #[inline]
12485    pub fn ref_action(&self) -> Option<RefAction> {
12486        support::child(&self.syntax)
12487    }
12488    #[inline]
12489    pub fn delete_token(&self) -> Option<SyntaxToken> {
12490        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12491    }
12492    #[inline]
12493    pub fn on_token(&self) -> Option<SyntaxToken> {
12494        support::token(&self.syntax, SyntaxKind::ON_KW)
12495    }
12496}
12497
12498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12499pub struct OnTable {
12500    pub(crate) syntax: SyntaxNode,
12501}
12502impl OnTable {
12503    #[inline]
12504    pub fn path(&self) -> Option<Path> {
12505        support::child(&self.syntax)
12506    }
12507    #[inline]
12508    pub fn on_token(&self) -> Option<SyntaxToken> {
12509        support::token(&self.syntax, SyntaxKind::ON_KW)
12510    }
12511}
12512
12513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12514pub struct OnUpdateAction {
12515    pub(crate) syntax: SyntaxNode,
12516}
12517impl OnUpdateAction {
12518    #[inline]
12519    pub fn ref_action(&self) -> Option<RefAction> {
12520        support::child(&self.syntax)
12521    }
12522    #[inline]
12523    pub fn on_token(&self) -> Option<SyntaxToken> {
12524        support::token(&self.syntax, SyntaxKind::ON_KW)
12525    }
12526    #[inline]
12527    pub fn update_token(&self) -> Option<SyntaxToken> {
12528        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12529    }
12530}
12531
12532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12533pub struct Op {
12534    pub(crate) syntax: SyntaxNode,
12535}
12536impl Op {
12537    #[inline]
12538    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
12539        support::child(&self.syntax)
12540    }
12541    #[inline]
12542    pub fn colon_colon(&self) -> Option<ColonColon> {
12543        support::child(&self.syntax)
12544    }
12545    #[inline]
12546    pub fn colon_eq(&self) -> Option<ColonEq> {
12547        support::child(&self.syntax)
12548    }
12549    #[inline]
12550    pub fn custom_op(&self) -> Option<CustomOp> {
12551        support::child(&self.syntax)
12552    }
12553    #[inline]
12554    pub fn fat_arrow(&self) -> Option<FatArrow> {
12555        support::child(&self.syntax)
12556    }
12557    #[inline]
12558    pub fn gteq(&self) -> Option<Gteq> {
12559        support::child(&self.syntax)
12560    }
12561    #[inline]
12562    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
12563        support::child(&self.syntax)
12564    }
12565    #[inline]
12566    pub fn is_json(&self) -> Option<IsJson> {
12567        support::child(&self.syntax)
12568    }
12569    #[inline]
12570    pub fn is_json_array(&self) -> Option<IsJsonArray> {
12571        support::child(&self.syntax)
12572    }
12573    #[inline]
12574    pub fn is_json_object(&self) -> Option<IsJsonObject> {
12575        support::child(&self.syntax)
12576    }
12577    #[inline]
12578    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
12579        support::child(&self.syntax)
12580    }
12581    #[inline]
12582    pub fn is_json_value(&self) -> Option<IsJsonValue> {
12583        support::child(&self.syntax)
12584    }
12585    #[inline]
12586    pub fn is_not(&self) -> Option<IsNot> {
12587        support::child(&self.syntax)
12588    }
12589    #[inline]
12590    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
12591        support::child(&self.syntax)
12592    }
12593    #[inline]
12594    pub fn is_not_json(&self) -> Option<IsNotJson> {
12595        support::child(&self.syntax)
12596    }
12597    #[inline]
12598    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
12599        support::child(&self.syntax)
12600    }
12601    #[inline]
12602    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
12603        support::child(&self.syntax)
12604    }
12605    #[inline]
12606    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
12607        support::child(&self.syntax)
12608    }
12609    #[inline]
12610    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
12611        support::child(&self.syntax)
12612    }
12613    #[inline]
12614    pub fn lteq(&self) -> Option<Lteq> {
12615        support::child(&self.syntax)
12616    }
12617    #[inline]
12618    pub fn neq(&self) -> Option<Neq> {
12619        support::child(&self.syntax)
12620    }
12621    #[inline]
12622    pub fn neqb(&self) -> Option<Neqb> {
12623        support::child(&self.syntax)
12624    }
12625    #[inline]
12626    pub fn not_ilike(&self) -> Option<NotIlike> {
12627        support::child(&self.syntax)
12628    }
12629    #[inline]
12630    pub fn not_in(&self) -> Option<NotIn> {
12631        support::child(&self.syntax)
12632    }
12633    #[inline]
12634    pub fn not_like(&self) -> Option<NotLike> {
12635        support::child(&self.syntax)
12636    }
12637    #[inline]
12638    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
12639        support::child(&self.syntax)
12640    }
12641    #[inline]
12642    pub fn operator_call(&self) -> Option<OperatorCall> {
12643        support::child(&self.syntax)
12644    }
12645    #[inline]
12646    pub fn similar_to(&self) -> Option<SimilarTo> {
12647        support::child(&self.syntax)
12648    }
12649    #[inline]
12650    pub fn percent_token(&self) -> Option<SyntaxToken> {
12651        support::token(&self.syntax, SyntaxKind::PERCENT)
12652    }
12653    #[inline]
12654    pub fn plus_token(&self) -> Option<SyntaxToken> {
12655        support::token(&self.syntax, SyntaxKind::PLUS)
12656    }
12657    #[inline]
12658    pub fn minus_token(&self) -> Option<SyntaxToken> {
12659        support::token(&self.syntax, SyntaxKind::MINUS)
12660    }
12661    #[inline]
12662    pub fn slash_token(&self) -> Option<SyntaxToken> {
12663        support::token(&self.syntax, SyntaxKind::SLASH)
12664    }
12665    #[inline]
12666    pub fn colon_token(&self) -> Option<SyntaxToken> {
12667        support::token(&self.syntax, SyntaxKind::COLON)
12668    }
12669    #[inline]
12670    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12671        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12672    }
12673    #[inline]
12674    pub fn eq_token(&self) -> Option<SyntaxToken> {
12675        support::token(&self.syntax, SyntaxKind::EQ)
12676    }
12677    #[inline]
12678    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12679        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12680    }
12681    #[inline]
12682    pub fn caret_token(&self) -> Option<SyntaxToken> {
12683        support::token(&self.syntax, SyntaxKind::CARET)
12684    }
12685    #[inline]
12686    pub fn and_token(&self) -> Option<SyntaxToken> {
12687        support::token(&self.syntax, SyntaxKind::AND_KW)
12688    }
12689    #[inline]
12690    pub fn collate_token(&self) -> Option<SyntaxToken> {
12691        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
12692    }
12693    #[inline]
12694    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12695        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12696    }
12697    #[inline]
12698    pub fn in_token(&self) -> Option<SyntaxToken> {
12699        support::token(&self.syntax, SyntaxKind::IN_KW)
12700    }
12701    #[inline]
12702    pub fn is_token(&self) -> Option<SyntaxToken> {
12703        support::token(&self.syntax, SyntaxKind::IS_KW)
12704    }
12705    #[inline]
12706    pub fn like_token(&self) -> Option<SyntaxToken> {
12707        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12708    }
12709    #[inline]
12710    pub fn or_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::OR_KW)
12712    }
12713    #[inline]
12714    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
12716    }
12717    #[inline]
12718    pub fn value_token(&self) -> Option<SyntaxToken> {
12719        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12720    }
12721}
12722
12723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12724pub struct OpClassOption {
12725    pub(crate) syntax: SyntaxNode,
12726}
12727impl OpClassOption {
12728    #[inline]
12729    pub fn function_sig(&self) -> Option<FunctionSig> {
12730        support::child(&self.syntax)
12731    }
12732    #[inline]
12733    pub fn literal(&self) -> Option<Literal> {
12734        support::child(&self.syntax)
12735    }
12736    #[inline]
12737    pub fn op(&self) -> Option<Op> {
12738        support::child(&self.syntax)
12739    }
12740    #[inline]
12741    pub fn param_list(&self) -> Option<ParamList> {
12742        support::child(&self.syntax)
12743    }
12744    #[inline]
12745    pub fn path(&self) -> Option<Path> {
12746        support::child(&self.syntax)
12747    }
12748    #[inline]
12749    pub fn ty(&self) -> Option<Type> {
12750        support::child(&self.syntax)
12751    }
12752    #[inline]
12753    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12754        support::token(&self.syntax, SyntaxKind::L_PAREN)
12755    }
12756    #[inline]
12757    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12758        support::token(&self.syntax, SyntaxKind::R_PAREN)
12759    }
12760    #[inline]
12761    pub fn comma_token(&self) -> Option<SyntaxToken> {
12762        support::token(&self.syntax, SyntaxKind::COMMA)
12763    }
12764    #[inline]
12765    pub fn by_token(&self) -> Option<SyntaxToken> {
12766        support::token(&self.syntax, SyntaxKind::BY_KW)
12767    }
12768    #[inline]
12769    pub fn for_token(&self) -> Option<SyntaxToken> {
12770        support::token(&self.syntax, SyntaxKind::FOR_KW)
12771    }
12772    #[inline]
12773    pub fn function_token(&self) -> Option<SyntaxToken> {
12774        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
12775    }
12776    #[inline]
12777    pub fn operator_token(&self) -> Option<SyntaxToken> {
12778        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12779    }
12780    #[inline]
12781    pub fn order_token(&self) -> Option<SyntaxToken> {
12782        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12783    }
12784    #[inline]
12785    pub fn search_token(&self) -> Option<SyntaxToken> {
12786        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
12787    }
12788    #[inline]
12789    pub fn storage_token(&self) -> Option<SyntaxToken> {
12790        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
12791    }
12792}
12793
12794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12795pub struct OpSig {
12796    pub(crate) syntax: SyntaxNode,
12797}
12798impl OpSig {
12799    #[inline]
12800    pub fn op(&self) -> Option<Op> {
12801        support::child(&self.syntax)
12802    }
12803    #[inline]
12804    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12805        support::token(&self.syntax, SyntaxKind::L_PAREN)
12806    }
12807    #[inline]
12808    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12809        support::token(&self.syntax, SyntaxKind::R_PAREN)
12810    }
12811    #[inline]
12812    pub fn comma_token(&self) -> Option<SyntaxToken> {
12813        support::token(&self.syntax, SyntaxKind::COMMA)
12814    }
12815    #[inline]
12816    pub fn none_token(&self) -> Option<SyntaxToken> {
12817        support::token(&self.syntax, SyntaxKind::NONE_KW)
12818    }
12819}
12820
12821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12822pub struct OpSigList {
12823    pub(crate) syntax: SyntaxNode,
12824}
12825impl OpSigList {
12826    #[inline]
12827    pub fn op_sigs(&self) -> AstChildren<OpSig> {
12828        support::children(&self.syntax)
12829    }
12830}
12831
12832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12833pub struct OperatorCall {
12834    pub(crate) syntax: SyntaxNode,
12835}
12836impl OperatorCall {
12837    #[inline]
12838    pub fn op(&self) -> Option<Op> {
12839        support::child(&self.syntax)
12840    }
12841    #[inline]
12842    pub fn path(&self) -> Option<Path> {
12843        support::child(&self.syntax)
12844    }
12845    #[inline]
12846    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12847        support::token(&self.syntax, SyntaxKind::L_PAREN)
12848    }
12849    #[inline]
12850    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12851        support::token(&self.syntax, SyntaxKind::R_PAREN)
12852    }
12853    #[inline]
12854    pub fn dot_token(&self) -> Option<SyntaxToken> {
12855        support::token(&self.syntax, SyntaxKind::DOT)
12856    }
12857    #[inline]
12858    pub fn operator_token(&self) -> Option<SyntaxToken> {
12859        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12860    }
12861}
12862
12863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12864pub struct OperatorClassOptionList {
12865    pub(crate) syntax: SyntaxNode,
12866}
12867impl OperatorClassOptionList {
12868    #[inline]
12869    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
12870        support::children(&self.syntax)
12871    }
12872}
12873
12874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12875pub struct OptionItem {
12876    pub(crate) syntax: SyntaxNode,
12877}
12878impl OptionItem {
12879    #[inline]
12880    pub fn expr(&self) -> Option<Expr> {
12881        support::child(&self.syntax)
12882    }
12883    #[inline]
12884    pub fn default_token(&self) -> Option<SyntaxToken> {
12885        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12886    }
12887}
12888
12889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12890pub struct OptionItemList {
12891    pub(crate) syntax: SyntaxNode,
12892}
12893impl OptionItemList {
12894    #[inline]
12895    pub fn option_items(&self) -> AstChildren<OptionItem> {
12896        support::children(&self.syntax)
12897    }
12898    #[inline]
12899    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12900        support::token(&self.syntax, SyntaxKind::L_PAREN)
12901    }
12902    #[inline]
12903    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12904        support::token(&self.syntax, SyntaxKind::R_PAREN)
12905    }
12906}
12907
12908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12909pub struct OrReplace {
12910    pub(crate) syntax: SyntaxNode,
12911}
12912impl OrReplace {
12913    #[inline]
12914    pub fn or_token(&self) -> Option<SyntaxToken> {
12915        support::token(&self.syntax, SyntaxKind::OR_KW)
12916    }
12917    #[inline]
12918    pub fn replace_token(&self) -> Option<SyntaxToken> {
12919        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
12920    }
12921}
12922
12923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12924pub struct OrderByClause {
12925    pub(crate) syntax: SyntaxNode,
12926}
12927impl OrderByClause {
12928    #[inline]
12929    pub fn sort_by_list(&self) -> Option<SortByList> {
12930        support::child(&self.syntax)
12931    }
12932    #[inline]
12933    pub fn by_token(&self) -> Option<SyntaxToken> {
12934        support::token(&self.syntax, SyntaxKind::BY_KW)
12935    }
12936    #[inline]
12937    pub fn order_token(&self) -> Option<SyntaxToken> {
12938        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12939    }
12940}
12941
12942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12943pub struct OverClause {
12944    pub(crate) syntax: SyntaxNode,
12945}
12946impl OverClause {
12947    #[inline]
12948    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12949        support::token(&self.syntax, SyntaxKind::L_PAREN)
12950    }
12951    #[inline]
12952    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12953        support::token(&self.syntax, SyntaxKind::R_PAREN)
12954    }
12955    #[inline]
12956    pub fn over_token(&self) -> Option<SyntaxToken> {
12957        support::token(&self.syntax, SyntaxKind::OVER_KW)
12958    }
12959}
12960
12961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12962pub struct OverlayFn {
12963    pub(crate) syntax: SyntaxNode,
12964}
12965impl OverlayFn {
12966    #[inline]
12967    pub fn expr(&self) -> Option<Expr> {
12968        support::child(&self.syntax)
12969    }
12970    #[inline]
12971    pub fn exprs(&self) -> AstChildren<Expr> {
12972        support::children(&self.syntax)
12973    }
12974    #[inline]
12975    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12976        support::token(&self.syntax, SyntaxKind::L_PAREN)
12977    }
12978    #[inline]
12979    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12980        support::token(&self.syntax, SyntaxKind::R_PAREN)
12981    }
12982    #[inline]
12983    pub fn for_token(&self) -> Option<SyntaxToken> {
12984        support::token(&self.syntax, SyntaxKind::FOR_KW)
12985    }
12986    #[inline]
12987    pub fn from_token(&self) -> Option<SyntaxToken> {
12988        support::token(&self.syntax, SyntaxKind::FROM_KW)
12989    }
12990    #[inline]
12991    pub fn overlay_token(&self) -> Option<SyntaxToken> {
12992        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
12993    }
12994    #[inline]
12995    pub fn placing_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::PLACING_KW)
12997    }
12998}
12999
13000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13001pub struct OwnedByRoles {
13002    pub(crate) syntax: SyntaxNode,
13003}
13004impl OwnedByRoles {
13005    #[inline]
13006    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13007        support::child(&self.syntax)
13008    }
13009    #[inline]
13010    pub fn by_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::BY_KW)
13012    }
13013    #[inline]
13014    pub fn owned_token(&self) -> Option<SyntaxToken> {
13015        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13016    }
13017}
13018
13019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13020pub struct OwnerTo {
13021    pub(crate) syntax: SyntaxNode,
13022}
13023impl OwnerTo {
13024    #[inline]
13025    pub fn role_ref(&self) -> Option<RoleRef> {
13026        support::child(&self.syntax)
13027    }
13028    #[inline]
13029    pub fn owner_token(&self) -> Option<SyntaxToken> {
13030        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13031    }
13032    #[inline]
13033    pub fn to_token(&self) -> Option<SyntaxToken> {
13034        support::token(&self.syntax, SyntaxKind::TO_KW)
13035    }
13036}
13037
13038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13039pub struct ParallelFuncOption {
13040    pub(crate) syntax: SyntaxNode,
13041}
13042impl ParallelFuncOption {
13043    #[inline]
13044    pub fn ident_token(&self) -> Option<SyntaxToken> {
13045        support::token(&self.syntax, SyntaxKind::IDENT)
13046    }
13047    #[inline]
13048    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13049        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13050    }
13051}
13052
13053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13054pub struct Param {
13055    pub(crate) syntax: SyntaxNode,
13056}
13057impl Param {
13058    #[inline]
13059    pub fn mode(&self) -> Option<ParamMode> {
13060        support::child(&self.syntax)
13061    }
13062    #[inline]
13063    pub fn name(&self) -> Option<Name> {
13064        support::child(&self.syntax)
13065    }
13066    #[inline]
13067    pub fn param_default(&self) -> Option<ParamDefault> {
13068        support::child(&self.syntax)
13069    }
13070    #[inline]
13071    pub fn ty(&self) -> Option<Type> {
13072        support::child(&self.syntax)
13073    }
13074}
13075
13076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13077pub struct ParamDefault {
13078    pub(crate) syntax: SyntaxNode,
13079}
13080impl ParamDefault {
13081    #[inline]
13082    pub fn expr(&self) -> Option<Expr> {
13083        support::child(&self.syntax)
13084    }
13085    #[inline]
13086    pub fn eq_token(&self) -> Option<SyntaxToken> {
13087        support::token(&self.syntax, SyntaxKind::EQ)
13088    }
13089    #[inline]
13090    pub fn default_token(&self) -> Option<SyntaxToken> {
13091        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13092    }
13093}
13094
13095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13096pub struct ParamIn {
13097    pub(crate) syntax: SyntaxNode,
13098}
13099impl ParamIn {
13100    #[inline]
13101    pub fn in_token(&self) -> Option<SyntaxToken> {
13102        support::token(&self.syntax, SyntaxKind::IN_KW)
13103    }
13104}
13105
13106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13107pub struct ParamInOut {
13108    pub(crate) syntax: SyntaxNode,
13109}
13110impl ParamInOut {
13111    #[inline]
13112    pub fn in_token(&self) -> Option<SyntaxToken> {
13113        support::token(&self.syntax, SyntaxKind::IN_KW)
13114    }
13115    #[inline]
13116    pub fn inout_token(&self) -> Option<SyntaxToken> {
13117        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13118    }
13119    #[inline]
13120    pub fn out_token(&self) -> Option<SyntaxToken> {
13121        support::token(&self.syntax, SyntaxKind::OUT_KW)
13122    }
13123}
13124
13125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13126pub struct ParamList {
13127    pub(crate) syntax: SyntaxNode,
13128}
13129impl ParamList {
13130    #[inline]
13131    pub fn params(&self) -> AstChildren<Param> {
13132        support::children(&self.syntax)
13133    }
13134}
13135
13136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13137pub struct ParamOut {
13138    pub(crate) syntax: SyntaxNode,
13139}
13140impl ParamOut {
13141    #[inline]
13142    pub fn out_token(&self) -> Option<SyntaxToken> {
13143        support::token(&self.syntax, SyntaxKind::OUT_KW)
13144    }
13145}
13146
13147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13148pub struct ParamVariadic {
13149    pub(crate) syntax: SyntaxNode,
13150}
13151impl ParamVariadic {
13152    #[inline]
13153    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13154        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13155    }
13156}
13157
13158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13159pub struct ParenExpr {
13160    pub(crate) syntax: SyntaxNode,
13161}
13162impl ParenExpr {
13163    #[inline]
13164    pub fn expr(&self) -> Option<Expr> {
13165        support::child(&self.syntax)
13166    }
13167    #[inline]
13168    pub fn from_item(&self) -> Option<FromItem> {
13169        support::child(&self.syntax)
13170    }
13171    #[inline]
13172    pub fn select(&self) -> Option<Select> {
13173        support::child(&self.syntax)
13174    }
13175    #[inline]
13176    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13177        support::token(&self.syntax, SyntaxKind::L_PAREN)
13178    }
13179    #[inline]
13180    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13181        support::token(&self.syntax, SyntaxKind::R_PAREN)
13182    }
13183}
13184
13185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13186pub struct ParenGraphPattern {
13187    pub(crate) syntax: SyntaxNode,
13188}
13189impl ParenGraphPattern {
13190    #[inline]
13191    pub fn path_pattern(&self) -> Option<PathPattern> {
13192        support::child(&self.syntax)
13193    }
13194    #[inline]
13195    pub fn where_clause(&self) -> Option<WhereClause> {
13196        support::child(&self.syntax)
13197    }
13198    #[inline]
13199    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13200        support::token(&self.syntax, SyntaxKind::L_PAREN)
13201    }
13202    #[inline]
13203    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13204        support::token(&self.syntax, SyntaxKind::R_PAREN)
13205    }
13206}
13207
13208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13209pub struct ParenSelect {
13210    pub(crate) syntax: SyntaxNode,
13211}
13212impl ParenSelect {
13213    #[inline]
13214    pub fn select(&self) -> Option<SelectVariant> {
13215        support::child(&self.syntax)
13216    }
13217    #[inline]
13218    pub fn with_clause(&self) -> Option<WithClause> {
13219        support::child(&self.syntax)
13220    }
13221    #[inline]
13222    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13223        support::token(&self.syntax, SyntaxKind::L_PAREN)
13224    }
13225    #[inline]
13226    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13227        support::token(&self.syntax, SyntaxKind::R_PAREN)
13228    }
13229}
13230
13231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13232pub struct Partition {
13233    pub(crate) syntax: SyntaxNode,
13234}
13235impl Partition {
13236    #[inline]
13237    pub fn partition_type(&self) -> Option<PartitionType> {
13238        support::child(&self.syntax)
13239    }
13240    #[inline]
13241    pub fn path(&self) -> Option<Path> {
13242        support::child(&self.syntax)
13243    }
13244    #[inline]
13245    pub fn partition_token(&self) -> Option<SyntaxToken> {
13246        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13247    }
13248}
13249
13250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13251pub struct PartitionBy {
13252    pub(crate) syntax: SyntaxNode,
13253}
13254impl PartitionBy {
13255    #[inline]
13256    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13257        support::child(&self.syntax)
13258    }
13259    #[inline]
13260    pub fn by_token(&self) -> Option<SyntaxToken> {
13261        support::token(&self.syntax, SyntaxKind::BY_KW)
13262    }
13263    #[inline]
13264    pub fn ident_token(&self) -> Option<SyntaxToken> {
13265        support::token(&self.syntax, SyntaxKind::IDENT)
13266    }
13267    #[inline]
13268    pub fn partition_token(&self) -> Option<SyntaxToken> {
13269        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13270    }
13271    #[inline]
13272    pub fn range_token(&self) -> Option<SyntaxToken> {
13273        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13274    }
13275}
13276
13277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13278pub struct PartitionDefault {
13279    pub(crate) syntax: SyntaxNode,
13280}
13281impl PartitionDefault {
13282    #[inline]
13283    pub fn default_token(&self) -> Option<SyntaxToken> {
13284        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13285    }
13286}
13287
13288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13289pub struct PartitionForValuesFrom {
13290    pub(crate) syntax: SyntaxNode,
13291}
13292impl PartitionForValuesFrom {
13293    #[inline]
13294    pub fn exprs(&self) -> AstChildren<Expr> {
13295        support::children(&self.syntax)
13296    }
13297    #[inline]
13298    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13299        support::token(&self.syntax, SyntaxKind::L_PAREN)
13300    }
13301    #[inline]
13302    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13303        support::token(&self.syntax, SyntaxKind::R_PAREN)
13304    }
13305    #[inline]
13306    pub fn for_token(&self) -> Option<SyntaxToken> {
13307        support::token(&self.syntax, SyntaxKind::FOR_KW)
13308    }
13309    #[inline]
13310    pub fn from_token(&self) -> Option<SyntaxToken> {
13311        support::token(&self.syntax, SyntaxKind::FROM_KW)
13312    }
13313    #[inline]
13314    pub fn to_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::TO_KW)
13316    }
13317    #[inline]
13318    pub fn values_token(&self) -> Option<SyntaxToken> {
13319        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13320    }
13321}
13322
13323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13324pub struct PartitionForValuesIn {
13325    pub(crate) syntax: SyntaxNode,
13326}
13327impl PartitionForValuesIn {
13328    #[inline]
13329    pub fn exprs(&self) -> AstChildren<Expr> {
13330        support::children(&self.syntax)
13331    }
13332    #[inline]
13333    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13334        support::token(&self.syntax, SyntaxKind::L_PAREN)
13335    }
13336    #[inline]
13337    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13338        support::token(&self.syntax, SyntaxKind::R_PAREN)
13339    }
13340    #[inline]
13341    pub fn for_token(&self) -> Option<SyntaxToken> {
13342        support::token(&self.syntax, SyntaxKind::FOR_KW)
13343    }
13344    #[inline]
13345    pub fn in_token(&self) -> Option<SyntaxToken> {
13346        support::token(&self.syntax, SyntaxKind::IN_KW)
13347    }
13348    #[inline]
13349    pub fn values_token(&self) -> Option<SyntaxToken> {
13350        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13351    }
13352}
13353
13354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13355pub struct PartitionForValuesWith {
13356    pub(crate) syntax: SyntaxNode,
13357}
13358impl PartitionForValuesWith {
13359    #[inline]
13360    pub fn literal(&self) -> Option<Literal> {
13361        support::child(&self.syntax)
13362    }
13363    #[inline]
13364    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13365        support::token(&self.syntax, SyntaxKind::L_PAREN)
13366    }
13367    #[inline]
13368    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13369        support::token(&self.syntax, SyntaxKind::R_PAREN)
13370    }
13371    #[inline]
13372    pub fn comma_token(&self) -> Option<SyntaxToken> {
13373        support::token(&self.syntax, SyntaxKind::COMMA)
13374    }
13375    #[inline]
13376    pub fn for_token(&self) -> Option<SyntaxToken> {
13377        support::token(&self.syntax, SyntaxKind::FOR_KW)
13378    }
13379    #[inline]
13380    pub fn ident_token(&self) -> Option<SyntaxToken> {
13381        support::token(&self.syntax, SyntaxKind::IDENT)
13382    }
13383    #[inline]
13384    pub fn values_token(&self) -> Option<SyntaxToken> {
13385        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13386    }
13387    #[inline]
13388    pub fn with_token(&self) -> Option<SyntaxToken> {
13389        support::token(&self.syntax, SyntaxKind::WITH_KW)
13390    }
13391}
13392
13393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13394pub struct PartitionItem {
13395    pub(crate) syntax: SyntaxNode,
13396}
13397impl PartitionItem {
13398    #[inline]
13399    pub fn collate(&self) -> Option<Collate> {
13400        support::child(&self.syntax)
13401    }
13402    #[inline]
13403    pub fn expr(&self) -> Option<Expr> {
13404        support::child(&self.syntax)
13405    }
13406}
13407
13408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13409pub struct PartitionItemList {
13410    pub(crate) syntax: SyntaxNode,
13411}
13412impl PartitionItemList {
13413    #[inline]
13414    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
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 PartitionList {
13429    pub(crate) syntax: SyntaxNode,
13430}
13431impl PartitionList {
13432    #[inline]
13433    pub fn partitions(&self) -> AstChildren<Partition> {
13434        support::children(&self.syntax)
13435    }
13436    #[inline]
13437    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13438        support::token(&self.syntax, SyntaxKind::L_PAREN)
13439    }
13440    #[inline]
13441    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13442        support::token(&self.syntax, SyntaxKind::R_PAREN)
13443    }
13444}
13445
13446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13447pub struct PartitionOf {
13448    pub(crate) syntax: SyntaxNode,
13449}
13450impl PartitionOf {
13451    #[inline]
13452    pub fn path(&self) -> Option<Path> {
13453        support::child(&self.syntax)
13454    }
13455    #[inline]
13456    pub fn of_token(&self) -> Option<SyntaxToken> {
13457        support::token(&self.syntax, SyntaxKind::OF_KW)
13458    }
13459    #[inline]
13460    pub fn partition_token(&self) -> Option<SyntaxToken> {
13461        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13462    }
13463}
13464
13465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13466pub struct Path {
13467    pub(crate) syntax: SyntaxNode,
13468}
13469impl Path {
13470    #[inline]
13471    pub fn qualifier(&self) -> Option<Path> {
13472        support::child(&self.syntax)
13473    }
13474    #[inline]
13475    pub fn segment(&self) -> Option<PathSegment> {
13476        support::child(&self.syntax)
13477    }
13478    #[inline]
13479    pub fn dot_token(&self) -> Option<SyntaxToken> {
13480        support::token(&self.syntax, SyntaxKind::DOT)
13481    }
13482}
13483
13484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13485pub struct PathFactor {
13486    pub(crate) syntax: SyntaxNode,
13487}
13488impl PathFactor {
13489    #[inline]
13490    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
13491        support::child(&self.syntax)
13492    }
13493    #[inline]
13494    pub fn path_primary(&self) -> Option<PathPrimary> {
13495        support::child(&self.syntax)
13496    }
13497}
13498
13499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13500pub struct PathPattern {
13501    pub(crate) syntax: SyntaxNode,
13502}
13503impl PathPattern {
13504    #[inline]
13505    pub fn path_factor(&self) -> Option<PathFactor> {
13506        support::child(&self.syntax)
13507    }
13508    #[inline]
13509    pub fn path_factors(&self) -> AstChildren<PathFactor> {
13510        support::children(&self.syntax)
13511    }
13512}
13513
13514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13515pub struct PathPatternList {
13516    pub(crate) syntax: SyntaxNode,
13517}
13518impl PathPatternList {
13519    #[inline]
13520    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
13521        support::children(&self.syntax)
13522    }
13523}
13524
13525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13526pub struct PathSegment {
13527    pub(crate) syntax: SyntaxNode,
13528}
13529impl PathSegment {
13530    #[inline]
13531    pub fn name(&self) -> Option<Name> {
13532        support::child(&self.syntax)
13533    }
13534    #[inline]
13535    pub fn name_ref(&self) -> Option<NameRef> {
13536        support::child(&self.syntax)
13537    }
13538}
13539
13540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13541pub struct PathType {
13542    pub(crate) syntax: SyntaxNode,
13543}
13544impl PathType {
13545    #[inline]
13546    pub fn arg_list(&self) -> Option<ArgList> {
13547        support::child(&self.syntax)
13548    }
13549    #[inline]
13550    pub fn path(&self) -> Option<Path> {
13551        support::child(&self.syntax)
13552    }
13553    #[inline]
13554    pub fn setof_token(&self) -> Option<SyntaxToken> {
13555        support::token(&self.syntax, SyntaxKind::SETOF_KW)
13556    }
13557}
13558
13559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13560pub struct PercentType {
13561    pub(crate) syntax: SyntaxNode,
13562}
13563impl PercentType {
13564    #[inline]
13565    pub fn percent_token(&self) -> Option<SyntaxToken> {
13566        support::token(&self.syntax, SyntaxKind::PERCENT)
13567    }
13568    #[inline]
13569    pub fn type_token(&self) -> Option<SyntaxToken> {
13570        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13571    }
13572}
13573
13574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13575pub struct PercentTypeClause {
13576    pub(crate) syntax: SyntaxNode,
13577}
13578impl PercentTypeClause {
13579    #[inline]
13580    pub fn path(&self) -> Option<Path> {
13581        support::child(&self.syntax)
13582    }
13583    #[inline]
13584    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
13585        support::child(&self.syntax)
13586    }
13587}
13588
13589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13590pub struct PositionFn {
13591    pub(crate) syntax: SyntaxNode,
13592}
13593impl PositionFn {
13594    #[inline]
13595    pub fn expr(&self) -> Option<Expr> {
13596        support::child(&self.syntax)
13597    }
13598    #[inline]
13599    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13600        support::token(&self.syntax, SyntaxKind::L_PAREN)
13601    }
13602    #[inline]
13603    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13604        support::token(&self.syntax, SyntaxKind::R_PAREN)
13605    }
13606    #[inline]
13607    pub fn in_token(&self) -> Option<SyntaxToken> {
13608        support::token(&self.syntax, SyntaxKind::IN_KW)
13609    }
13610    #[inline]
13611    pub fn position_token(&self) -> Option<SyntaxToken> {
13612        support::token(&self.syntax, SyntaxKind::POSITION_KW)
13613    }
13614}
13615
13616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13617pub struct PostfixExpr {
13618    pub(crate) syntax: SyntaxNode,
13619}
13620impl PostfixExpr {
13621    #[inline]
13622    pub fn expr(&self) -> Option<Expr> {
13623        support::child(&self.syntax)
13624    }
13625}
13626
13627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13628pub struct PrefixExpr {
13629    pub(crate) syntax: SyntaxNode,
13630}
13631impl PrefixExpr {
13632    #[inline]
13633    pub fn expr(&self) -> Option<Expr> {
13634        support::child(&self.syntax)
13635    }
13636}
13637
13638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13639pub struct Prepare {
13640    pub(crate) syntax: SyntaxNode,
13641}
13642impl Prepare {
13643    #[inline]
13644    pub fn name(&self) -> Option<Name> {
13645        support::child(&self.syntax)
13646    }
13647    #[inline]
13648    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
13649        support::child(&self.syntax)
13650    }
13651    #[inline]
13652    pub fn as_token(&self) -> Option<SyntaxToken> {
13653        support::token(&self.syntax, SyntaxKind::AS_KW)
13654    }
13655    #[inline]
13656    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13657        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13658    }
13659}
13660
13661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13662pub struct PrepareTransaction {
13663    pub(crate) syntax: SyntaxNode,
13664}
13665impl PrepareTransaction {
13666    #[inline]
13667    pub fn literal(&self) -> Option<Literal> {
13668        support::child(&self.syntax)
13669    }
13670    #[inline]
13671    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13672        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13673    }
13674    #[inline]
13675    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13676        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13677    }
13678}
13679
13680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13681pub struct PreserveRows {
13682    pub(crate) syntax: SyntaxNode,
13683}
13684impl PreserveRows {
13685    #[inline]
13686    pub fn preserve_token(&self) -> Option<SyntaxToken> {
13687        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
13688    }
13689    #[inline]
13690    pub fn rows_token(&self) -> Option<SyntaxToken> {
13691        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13692    }
13693}
13694
13695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13696pub struct PrimaryKeyConstraint {
13697    pub(crate) syntax: SyntaxNode,
13698}
13699impl PrimaryKeyConstraint {
13700    #[inline]
13701    pub fn column_list(&self) -> Option<ColumnList> {
13702        support::child(&self.syntax)
13703    }
13704    #[inline]
13705    pub fn constraint_name(&self) -> Option<ConstraintName> {
13706        support::child(&self.syntax)
13707    }
13708    #[inline]
13709    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13710        support::child(&self.syntax)
13711    }
13712    #[inline]
13713    pub fn using_index(&self) -> Option<UsingIndex> {
13714        support::child(&self.syntax)
13715    }
13716    #[inline]
13717    pub fn key_token(&self) -> Option<SyntaxToken> {
13718        support::token(&self.syntax, SyntaxKind::KEY_KW)
13719    }
13720    #[inline]
13721    pub fn primary_token(&self) -> Option<SyntaxToken> {
13722        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
13723    }
13724}
13725
13726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13727pub struct PrivilegeTarget {
13728    pub(crate) syntax: SyntaxNode,
13729}
13730impl PrivilegeTarget {
13731    #[inline]
13732    pub fn functions_token(&self) -> Option<SyntaxToken> {
13733        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
13734    }
13735    #[inline]
13736    pub fn large_token(&self) -> Option<SyntaxToken> {
13737        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13738    }
13739    #[inline]
13740    pub fn objects_token(&self) -> Option<SyntaxToken> {
13741        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
13742    }
13743    #[inline]
13744    pub fn routines_token(&self) -> Option<SyntaxToken> {
13745        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
13746    }
13747    #[inline]
13748    pub fn schemas_token(&self) -> Option<SyntaxToken> {
13749        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
13750    }
13751    #[inline]
13752    pub fn sequences_token(&self) -> Option<SyntaxToken> {
13753        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
13754    }
13755    #[inline]
13756    pub fn tables_token(&self) -> Option<SyntaxToken> {
13757        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13758    }
13759    #[inline]
13760    pub fn types_token(&self) -> Option<SyntaxToken> {
13761        support::token(&self.syntax, SyntaxKind::TYPES_KW)
13762    }
13763}
13764
13765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13766pub struct Privileges {
13767    pub(crate) syntax: SyntaxNode,
13768}
13769impl Privileges {
13770    #[inline]
13771    pub fn column_list(&self) -> Option<ColumnList> {
13772        support::child(&self.syntax)
13773    }
13774    #[inline]
13775    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13776        support::child(&self.syntax)
13777    }
13778    #[inline]
13779    pub fn all_token(&self) -> Option<SyntaxToken> {
13780        support::token(&self.syntax, SyntaxKind::ALL_KW)
13781    }
13782    #[inline]
13783    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13784        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13785    }
13786}
13787
13788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13789pub struct PropertiesList {
13790    pub(crate) syntax: SyntaxNode,
13791}
13792impl PropertiesList {
13793    #[inline]
13794    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
13795        support::child(&self.syntax)
13796    }
13797    #[inline]
13798    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13799        support::token(&self.syntax, SyntaxKind::L_PAREN)
13800    }
13801    #[inline]
13802    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13803        support::token(&self.syntax, SyntaxKind::R_PAREN)
13804    }
13805    #[inline]
13806    pub fn properties_token(&self) -> Option<SyntaxToken> {
13807        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
13808    }
13809}
13810
13811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13812pub struct PublicationObject {
13813    pub(crate) syntax: SyntaxNode,
13814}
13815impl PublicationObject {
13816    #[inline]
13817    pub fn column_list(&self) -> Option<ColumnList> {
13818        support::child(&self.syntax)
13819    }
13820    #[inline]
13821    pub fn name_ref(&self) -> Option<NameRef> {
13822        support::child(&self.syntax)
13823    }
13824    #[inline]
13825    pub fn path(&self) -> Option<Path> {
13826        support::child(&self.syntax)
13827    }
13828    #[inline]
13829    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
13830        support::child(&self.syntax)
13831    }
13832    #[inline]
13833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13834        support::token(&self.syntax, SyntaxKind::L_PAREN)
13835    }
13836    #[inline]
13837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13838        support::token(&self.syntax, SyntaxKind::R_PAREN)
13839    }
13840    #[inline]
13841    pub fn star_token(&self) -> Option<SyntaxToken> {
13842        support::token(&self.syntax, SyntaxKind::STAR)
13843    }
13844    #[inline]
13845    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
13846        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
13847    }
13848    #[inline]
13849    pub fn in_token(&self) -> Option<SyntaxToken> {
13850        support::token(&self.syntax, SyntaxKind::IN_KW)
13851    }
13852    #[inline]
13853    pub fn only_token(&self) -> Option<SyntaxToken> {
13854        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13855    }
13856    #[inline]
13857    pub fn schema_token(&self) -> Option<SyntaxToken> {
13858        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13859    }
13860    #[inline]
13861    pub fn table_token(&self) -> Option<SyntaxToken> {
13862        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13863    }
13864    #[inline]
13865    pub fn tables_token(&self) -> Option<SyntaxToken> {
13866        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13867    }
13868}
13869
13870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13871pub struct ReadCommitted {
13872    pub(crate) syntax: SyntaxNode,
13873}
13874impl ReadCommitted {
13875    #[inline]
13876    pub fn committed_token(&self) -> Option<SyntaxToken> {
13877        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
13878    }
13879    #[inline]
13880    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13881        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13882    }
13883    #[inline]
13884    pub fn level_token(&self) -> Option<SyntaxToken> {
13885        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13886    }
13887    #[inline]
13888    pub fn read_token(&self) -> Option<SyntaxToken> {
13889        support::token(&self.syntax, SyntaxKind::READ_KW)
13890    }
13891}
13892
13893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13894pub struct ReadOnly {
13895    pub(crate) syntax: SyntaxNode,
13896}
13897impl ReadOnly {
13898    #[inline]
13899    pub fn only_token(&self) -> Option<SyntaxToken> {
13900        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13901    }
13902    #[inline]
13903    pub fn read_token(&self) -> Option<SyntaxToken> {
13904        support::token(&self.syntax, SyntaxKind::READ_KW)
13905    }
13906}
13907
13908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13909pub struct ReadUncommitted {
13910    pub(crate) syntax: SyntaxNode,
13911}
13912impl ReadUncommitted {
13913    #[inline]
13914    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13915        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13916    }
13917    #[inline]
13918    pub fn level_token(&self) -> Option<SyntaxToken> {
13919        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13920    }
13921    #[inline]
13922    pub fn read_token(&self) -> Option<SyntaxToken> {
13923        support::token(&self.syntax, SyntaxKind::READ_KW)
13924    }
13925    #[inline]
13926    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
13927        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
13928    }
13929}
13930
13931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13932pub struct ReadWrite {
13933    pub(crate) syntax: SyntaxNode,
13934}
13935impl ReadWrite {
13936    #[inline]
13937    pub fn read_token(&self) -> Option<SyntaxToken> {
13938        support::token(&self.syntax, SyntaxKind::READ_KW)
13939    }
13940    #[inline]
13941    pub fn write_token(&self) -> Option<SyntaxToken> {
13942        support::token(&self.syntax, SyntaxKind::WRITE_KW)
13943    }
13944}
13945
13946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13947pub struct Reassign {
13948    pub(crate) syntax: SyntaxNode,
13949}
13950impl Reassign {
13951    #[inline]
13952    pub fn new_roles(&self) -> Option<RoleRefList> {
13953        support::child(&self.syntax)
13954    }
13955    #[inline]
13956    pub fn old_roles(&self) -> Option<RoleRefList> {
13957        support::child(&self.syntax)
13958    }
13959    #[inline]
13960    pub fn by_token(&self) -> Option<SyntaxToken> {
13961        support::token(&self.syntax, SyntaxKind::BY_KW)
13962    }
13963    #[inline]
13964    pub fn owned_token(&self) -> Option<SyntaxToken> {
13965        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13966    }
13967    #[inline]
13968    pub fn reassign_token(&self) -> Option<SyntaxToken> {
13969        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
13970    }
13971    #[inline]
13972    pub fn to_token(&self) -> Option<SyntaxToken> {
13973        support::token(&self.syntax, SyntaxKind::TO_KW)
13974    }
13975}
13976
13977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13978pub struct ReferencesConstraint {
13979    pub(crate) syntax: SyntaxNode,
13980}
13981impl ReferencesConstraint {
13982    #[inline]
13983    pub fn column(&self) -> Option<NameRef> {
13984        support::child(&self.syntax)
13985    }
13986    #[inline]
13987    pub fn constraint_name(&self) -> Option<ConstraintName> {
13988        support::child(&self.syntax)
13989    }
13990    #[inline]
13991    pub fn match_type(&self) -> Option<MatchType> {
13992        support::child(&self.syntax)
13993    }
13994    #[inline]
13995    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
13996        support::child(&self.syntax)
13997    }
13998    #[inline]
13999    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
14000        support::child(&self.syntax)
14001    }
14002    #[inline]
14003    pub fn table(&self) -> Option<Path> {
14004        support::child(&self.syntax)
14005    }
14006    #[inline]
14007    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14008        support::token(&self.syntax, SyntaxKind::L_PAREN)
14009    }
14010    #[inline]
14011    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14012        support::token(&self.syntax, SyntaxKind::R_PAREN)
14013    }
14014    #[inline]
14015    pub fn references_token(&self) -> Option<SyntaxToken> {
14016        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14017    }
14018}
14019
14020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14021pub struct Referencing {
14022    pub(crate) syntax: SyntaxNode,
14023}
14024impl Referencing {
14025    #[inline]
14026    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14027        support::children(&self.syntax)
14028    }
14029    #[inline]
14030    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14031        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14032    }
14033}
14034
14035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14036pub struct ReferencingTable {
14037    pub(crate) syntax: SyntaxNode,
14038}
14039impl ReferencingTable {
14040    #[inline]
14041    pub fn name_ref(&self) -> Option<NameRef> {
14042        support::child(&self.syntax)
14043    }
14044    #[inline]
14045    pub fn as_token(&self) -> Option<SyntaxToken> {
14046        support::token(&self.syntax, SyntaxKind::AS_KW)
14047    }
14048    #[inline]
14049    pub fn new_token(&self) -> Option<SyntaxToken> {
14050        support::token(&self.syntax, SyntaxKind::NEW_KW)
14051    }
14052    #[inline]
14053    pub fn old_token(&self) -> Option<SyntaxToken> {
14054        support::token(&self.syntax, SyntaxKind::OLD_KW)
14055    }
14056    #[inline]
14057    pub fn table_token(&self) -> Option<SyntaxToken> {
14058        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14059    }
14060}
14061
14062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14063pub struct Refresh {
14064    pub(crate) syntax: SyntaxNode,
14065}
14066impl Refresh {
14067    #[inline]
14068    pub fn path(&self) -> Option<Path> {
14069        support::child(&self.syntax)
14070    }
14071    #[inline]
14072    pub fn with_data(&self) -> Option<WithData> {
14073        support::child(&self.syntax)
14074    }
14075    #[inline]
14076    pub fn with_no_data(&self) -> Option<WithNoData> {
14077        support::child(&self.syntax)
14078    }
14079    #[inline]
14080    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14081        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14082    }
14083    #[inline]
14084    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14085        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14086    }
14087    #[inline]
14088    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14089        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14090    }
14091    #[inline]
14092    pub fn view_token(&self) -> Option<SyntaxToken> {
14093        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14094    }
14095}
14096
14097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14098pub struct RefreshCollationVersion {
14099    pub(crate) syntax: SyntaxNode,
14100}
14101impl RefreshCollationVersion {
14102    #[inline]
14103    pub fn collation_token(&self) -> Option<SyntaxToken> {
14104        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14105    }
14106    #[inline]
14107    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14108        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14109    }
14110    #[inline]
14111    pub fn version_token(&self) -> Option<SyntaxToken> {
14112        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14113    }
14114}
14115
14116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14117pub struct RefreshVersion {
14118    pub(crate) syntax: SyntaxNode,
14119}
14120impl RefreshVersion {
14121    #[inline]
14122    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14123        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14124    }
14125    #[inline]
14126    pub fn version_token(&self) -> Option<SyntaxToken> {
14127        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14128    }
14129}
14130
14131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14132pub struct Reindex {
14133    pub(crate) syntax: SyntaxNode,
14134}
14135impl Reindex {
14136    #[inline]
14137    pub fn path(&self) -> Option<Path> {
14138        support::child(&self.syntax)
14139    }
14140    #[inline]
14141    pub fn database_token(&self) -> Option<SyntaxToken> {
14142        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14143    }
14144    #[inline]
14145    pub fn index_token(&self) -> Option<SyntaxToken> {
14146        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14147    }
14148    #[inline]
14149    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14150        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14151    }
14152    #[inline]
14153    pub fn schema_token(&self) -> Option<SyntaxToken> {
14154        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14155    }
14156    #[inline]
14157    pub fn system_token(&self) -> Option<SyntaxToken> {
14158        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14159    }
14160    #[inline]
14161    pub fn table_token(&self) -> Option<SyntaxToken> {
14162        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14163    }
14164}
14165
14166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14167pub struct RelationName {
14168    pub(crate) syntax: SyntaxNode,
14169}
14170impl RelationName {
14171    #[inline]
14172    pub fn path(&self) -> Option<Path> {
14173        support::child(&self.syntax)
14174    }
14175    #[inline]
14176    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14177        support::token(&self.syntax, SyntaxKind::L_PAREN)
14178    }
14179    #[inline]
14180    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14181        support::token(&self.syntax, SyntaxKind::R_PAREN)
14182    }
14183    #[inline]
14184    pub fn star_token(&self) -> Option<SyntaxToken> {
14185        support::token(&self.syntax, SyntaxKind::STAR)
14186    }
14187    #[inline]
14188    pub fn only_token(&self) -> Option<SyntaxToken> {
14189        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14190    }
14191}
14192
14193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14194pub struct ReleaseSavepoint {
14195    pub(crate) syntax: SyntaxNode,
14196}
14197impl ReleaseSavepoint {
14198    #[inline]
14199    pub fn name_ref(&self) -> Option<NameRef> {
14200        support::child(&self.syntax)
14201    }
14202    #[inline]
14203    pub fn release_token(&self) -> Option<SyntaxToken> {
14204        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14205    }
14206    #[inline]
14207    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14208        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14209    }
14210}
14211
14212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14213pub struct RenameAttribute {
14214    pub(crate) syntax: SyntaxNode,
14215}
14216impl RenameAttribute {
14217    #[inline]
14218    pub fn name(&self) -> Option<Name> {
14219        support::child(&self.syntax)
14220    }
14221    #[inline]
14222    pub fn name_ref(&self) -> Option<NameRef> {
14223        support::child(&self.syntax)
14224    }
14225    #[inline]
14226    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14227        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14228    }
14229    #[inline]
14230    pub fn rename_token(&self) -> Option<SyntaxToken> {
14231        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14232    }
14233    #[inline]
14234    pub fn to_token(&self) -> Option<SyntaxToken> {
14235        support::token(&self.syntax, SyntaxKind::TO_KW)
14236    }
14237}
14238
14239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14240pub struct RenameColumn {
14241    pub(crate) syntax: SyntaxNode,
14242}
14243impl RenameColumn {
14244    #[inline]
14245    pub fn column_token(&self) -> Option<SyntaxToken> {
14246        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14247    }
14248    #[inline]
14249    pub fn rename_token(&self) -> Option<SyntaxToken> {
14250        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14251    }
14252    #[inline]
14253    pub fn to_token(&self) -> Option<SyntaxToken> {
14254        support::token(&self.syntax, SyntaxKind::TO_KW)
14255    }
14256}
14257
14258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14259pub struct RenameConstraint {
14260    pub(crate) syntax: SyntaxNode,
14261}
14262impl RenameConstraint {
14263    #[inline]
14264    pub fn name(&self) -> Option<Name> {
14265        support::child(&self.syntax)
14266    }
14267    #[inline]
14268    pub fn name_ref(&self) -> Option<NameRef> {
14269        support::child(&self.syntax)
14270    }
14271    #[inline]
14272    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14273        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14274    }
14275    #[inline]
14276    pub fn rename_token(&self) -> Option<SyntaxToken> {
14277        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14278    }
14279    #[inline]
14280    pub fn to_token(&self) -> Option<SyntaxToken> {
14281        support::token(&self.syntax, SyntaxKind::TO_KW)
14282    }
14283}
14284
14285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14286pub struct RenameTo {
14287    pub(crate) syntax: SyntaxNode,
14288}
14289impl RenameTo {
14290    #[inline]
14291    pub fn name(&self) -> Option<Name> {
14292        support::child(&self.syntax)
14293    }
14294    #[inline]
14295    pub fn rename_token(&self) -> Option<SyntaxToken> {
14296        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14297    }
14298    #[inline]
14299    pub fn to_token(&self) -> Option<SyntaxToken> {
14300        support::token(&self.syntax, SyntaxKind::TO_KW)
14301    }
14302}
14303
14304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14305pub struct RenameValue {
14306    pub(crate) syntax: SyntaxNode,
14307}
14308impl RenameValue {
14309    #[inline]
14310    pub fn literal(&self) -> Option<Literal> {
14311        support::child(&self.syntax)
14312    }
14313    #[inline]
14314    pub fn rename_token(&self) -> Option<SyntaxToken> {
14315        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14316    }
14317    #[inline]
14318    pub fn to_token(&self) -> Option<SyntaxToken> {
14319        support::token(&self.syntax, SyntaxKind::TO_KW)
14320    }
14321    #[inline]
14322    pub fn value_token(&self) -> Option<SyntaxToken> {
14323        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14324    }
14325}
14326
14327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14328pub struct Repack {
14329    pub(crate) syntax: SyntaxNode,
14330}
14331impl Repack {
14332    #[inline]
14333    pub fn name_ref(&self) -> Option<NameRef> {
14334        support::child(&self.syntax)
14335    }
14336    #[inline]
14337    pub fn option_item_list(&self) -> Option<OptionItemList> {
14338        support::child(&self.syntax)
14339    }
14340    #[inline]
14341    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
14342        support::child(&self.syntax)
14343    }
14344    #[inline]
14345    pub fn index_token(&self) -> Option<SyntaxToken> {
14346        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14347    }
14348    #[inline]
14349    pub fn repack_token(&self) -> Option<SyntaxToken> {
14350        support::token(&self.syntax, SyntaxKind::REPACK_KW)
14351    }
14352    #[inline]
14353    pub fn using_token(&self) -> Option<SyntaxToken> {
14354        support::token(&self.syntax, SyntaxKind::USING_KW)
14355    }
14356}
14357
14358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14359pub struct RepeatableClause {
14360    pub(crate) syntax: SyntaxNode,
14361}
14362impl RepeatableClause {
14363    #[inline]
14364    pub fn expr(&self) -> Option<Expr> {
14365        support::child(&self.syntax)
14366    }
14367    #[inline]
14368    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14369        support::token(&self.syntax, SyntaxKind::L_PAREN)
14370    }
14371    #[inline]
14372    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14373        support::token(&self.syntax, SyntaxKind::R_PAREN)
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 RepeatableRead {
14383    pub(crate) syntax: SyntaxNode,
14384}
14385impl RepeatableRead {
14386    #[inline]
14387    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14388        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14389    }
14390    #[inline]
14391    pub fn level_token(&self) -> Option<SyntaxToken> {
14392        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14393    }
14394    #[inline]
14395    pub fn read_token(&self) -> Option<SyntaxToken> {
14396        support::token(&self.syntax, SyntaxKind::READ_KW)
14397    }
14398    #[inline]
14399    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14400        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14401    }
14402}
14403
14404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14405pub struct ReplicaIdentity {
14406    pub(crate) syntax: SyntaxNode,
14407}
14408impl ReplicaIdentity {
14409    #[inline]
14410    pub fn identity_token(&self) -> Option<SyntaxToken> {
14411        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14412    }
14413    #[inline]
14414    pub fn replica_token(&self) -> Option<SyntaxToken> {
14415        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
14416    }
14417}
14418
14419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14420pub struct Reset {
14421    pub(crate) syntax: SyntaxNode,
14422}
14423impl Reset {
14424    #[inline]
14425    pub fn name_ref(&self) -> Option<NameRef> {
14426        support::child(&self.syntax)
14427    }
14428    #[inline]
14429    pub fn all_token(&self) -> Option<SyntaxToken> {
14430        support::token(&self.syntax, SyntaxKind::ALL_KW)
14431    }
14432    #[inline]
14433    pub fn reset_token(&self) -> Option<SyntaxToken> {
14434        support::token(&self.syntax, SyntaxKind::RESET_KW)
14435    }
14436}
14437
14438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14439pub struct ResetConfigParam {
14440    pub(crate) syntax: SyntaxNode,
14441}
14442impl ResetConfigParam {
14443    #[inline]
14444    pub fn path(&self) -> Option<Path> {
14445        support::child(&self.syntax)
14446    }
14447    #[inline]
14448    pub fn all_token(&self) -> Option<SyntaxToken> {
14449        support::token(&self.syntax, SyntaxKind::ALL_KW)
14450    }
14451    #[inline]
14452    pub fn reset_token(&self) -> Option<SyntaxToken> {
14453        support::token(&self.syntax, SyntaxKind::RESET_KW)
14454    }
14455}
14456
14457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14458pub struct ResetFuncOption {
14459    pub(crate) syntax: SyntaxNode,
14460}
14461impl ResetFuncOption {
14462    #[inline]
14463    pub fn name_ref(&self) -> Option<NameRef> {
14464        support::child(&self.syntax)
14465    }
14466    #[inline]
14467    pub fn reset_token(&self) -> Option<SyntaxToken> {
14468        support::token(&self.syntax, SyntaxKind::RESET_KW)
14469    }
14470}
14471
14472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14473pub struct ResetOptions {
14474    pub(crate) syntax: SyntaxNode,
14475}
14476impl ResetOptions {
14477    #[inline]
14478    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14479        support::token(&self.syntax, SyntaxKind::L_PAREN)
14480    }
14481    #[inline]
14482    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14483        support::token(&self.syntax, SyntaxKind::R_PAREN)
14484    }
14485    #[inline]
14486    pub fn reset_token(&self) -> Option<SyntaxToken> {
14487        support::token(&self.syntax, SyntaxKind::RESET_KW)
14488    }
14489}
14490
14491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14492pub struct ResetSessionAuth {
14493    pub(crate) syntax: SyntaxNode,
14494}
14495impl ResetSessionAuth {
14496    #[inline]
14497    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14498        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14499    }
14500    #[inline]
14501    pub fn reset_token(&self) -> Option<SyntaxToken> {
14502        support::token(&self.syntax, SyntaxKind::RESET_KW)
14503    }
14504    #[inline]
14505    pub fn session_token(&self) -> Option<SyntaxToken> {
14506        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14507    }
14508}
14509
14510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14511pub struct Restart {
14512    pub(crate) syntax: SyntaxNode,
14513}
14514impl Restart {
14515    #[inline]
14516    pub fn restart_token(&self) -> Option<SyntaxToken> {
14517        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14518    }
14519    #[inline]
14520    pub fn with_token(&self) -> Option<SyntaxToken> {
14521        support::token(&self.syntax, SyntaxKind::WITH_KW)
14522    }
14523}
14524
14525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14526pub struct Restrict {
14527    pub(crate) syntax: SyntaxNode,
14528}
14529impl Restrict {
14530    #[inline]
14531    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14532        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14533    }
14534}
14535
14536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14537pub struct RetType {
14538    pub(crate) syntax: SyntaxNode,
14539}
14540impl RetType {
14541    #[inline]
14542    pub fn table_arg_list(&self) -> Option<TableArgList> {
14543        support::child(&self.syntax)
14544    }
14545    #[inline]
14546    pub fn ty(&self) -> Option<Type> {
14547        support::child(&self.syntax)
14548    }
14549    #[inline]
14550    pub fn returns_token(&self) -> Option<SyntaxToken> {
14551        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14552    }
14553    #[inline]
14554    pub fn table_token(&self) -> Option<SyntaxToken> {
14555        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14556    }
14557}
14558
14559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14560pub struct ReturnFuncOption {
14561    pub(crate) syntax: SyntaxNode,
14562}
14563impl ReturnFuncOption {
14564    #[inline]
14565    pub fn expr(&self) -> Option<Expr> {
14566        support::child(&self.syntax)
14567    }
14568    #[inline]
14569    pub fn return_token(&self) -> Option<SyntaxToken> {
14570        support::token(&self.syntax, SyntaxKind::RETURN_KW)
14571    }
14572}
14573
14574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14575pub struct ReturningClause {
14576    pub(crate) syntax: SyntaxNode,
14577}
14578impl ReturningClause {
14579    #[inline]
14580    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
14581        support::child(&self.syntax)
14582    }
14583    #[inline]
14584    pub fn target_list(&self) -> Option<TargetList> {
14585        support::child(&self.syntax)
14586    }
14587    #[inline]
14588    pub fn returning_token(&self) -> Option<SyntaxToken> {
14589        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
14590    }
14591}
14592
14593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14594pub struct ReturningOption {
14595    pub(crate) syntax: SyntaxNode,
14596}
14597impl ReturningOption {
14598    #[inline]
14599    pub fn name(&self) -> Option<Name> {
14600        support::child(&self.syntax)
14601    }
14602    #[inline]
14603    pub fn as_token(&self) -> Option<SyntaxToken> {
14604        support::token(&self.syntax, SyntaxKind::AS_KW)
14605    }
14606    #[inline]
14607    pub fn new_token(&self) -> Option<SyntaxToken> {
14608        support::token(&self.syntax, SyntaxKind::NEW_KW)
14609    }
14610    #[inline]
14611    pub fn old_token(&self) -> Option<SyntaxToken> {
14612        support::token(&self.syntax, SyntaxKind::OLD_KW)
14613    }
14614}
14615
14616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14617pub struct ReturningOptionList {
14618    pub(crate) syntax: SyntaxNode,
14619}
14620impl ReturningOptionList {
14621    #[inline]
14622    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
14623        support::children(&self.syntax)
14624    }
14625    #[inline]
14626    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14627        support::token(&self.syntax, SyntaxKind::L_PAREN)
14628    }
14629    #[inline]
14630    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14631        support::token(&self.syntax, SyntaxKind::R_PAREN)
14632    }
14633    #[inline]
14634    pub fn with_token(&self) -> Option<SyntaxToken> {
14635        support::token(&self.syntax, SyntaxKind::WITH_KW)
14636    }
14637}
14638
14639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14640pub struct Revoke {
14641    pub(crate) syntax: SyntaxNode,
14642}
14643impl Revoke {
14644    #[inline]
14645    pub fn name_refs(&self) -> AstChildren<NameRef> {
14646        support::children(&self.syntax)
14647    }
14648    #[inline]
14649    pub fn paths(&self) -> AstChildren<Path> {
14650        support::children(&self.syntax)
14651    }
14652    #[inline]
14653    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14654        support::child(&self.syntax)
14655    }
14656    #[inline]
14657    pub fn role_ref(&self) -> Option<RoleRef> {
14658        support::child(&self.syntax)
14659    }
14660    #[inline]
14661    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14662        support::child(&self.syntax)
14663    }
14664    #[inline]
14665    pub fn all_token(&self) -> Option<SyntaxToken> {
14666        support::token(&self.syntax, SyntaxKind::ALL_KW)
14667    }
14668    #[inline]
14669    pub fn by_token(&self) -> Option<SyntaxToken> {
14670        support::token(&self.syntax, SyntaxKind::BY_KW)
14671    }
14672    #[inline]
14673    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14674        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14675    }
14676    #[inline]
14677    pub fn for_token(&self) -> Option<SyntaxToken> {
14678        support::token(&self.syntax, SyntaxKind::FOR_KW)
14679    }
14680    #[inline]
14681    pub fn from_token(&self) -> Option<SyntaxToken> {
14682        support::token(&self.syntax, SyntaxKind::FROM_KW)
14683    }
14684    #[inline]
14685    pub fn grant_token(&self) -> Option<SyntaxToken> {
14686        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14687    }
14688    #[inline]
14689    pub fn granted_token(&self) -> Option<SyntaxToken> {
14690        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
14691    }
14692    #[inline]
14693    pub fn in_token(&self) -> Option<SyntaxToken> {
14694        support::token(&self.syntax, SyntaxKind::IN_KW)
14695    }
14696    #[inline]
14697    pub fn on_token(&self) -> Option<SyntaxToken> {
14698        support::token(&self.syntax, SyntaxKind::ON_KW)
14699    }
14700    #[inline]
14701    pub fn option_token(&self) -> Option<SyntaxToken> {
14702        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14703    }
14704    #[inline]
14705    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14706        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14707    }
14708    #[inline]
14709    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14710        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14711    }
14712    #[inline]
14713    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14714        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14715    }
14716    #[inline]
14717    pub fn schema_token(&self) -> Option<SyntaxToken> {
14718        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14719    }
14720    #[inline]
14721    pub fn table_token(&self) -> Option<SyntaxToken> {
14722        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14723    }
14724    #[inline]
14725    pub fn tables_token(&self) -> Option<SyntaxToken> {
14726        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14727    }
14728}
14729
14730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14731pub struct RevokeCommand {
14732    pub(crate) syntax: SyntaxNode,
14733}
14734impl RevokeCommand {
14735    #[inline]
14736    pub fn role_ref(&self) -> Option<RoleRef> {
14737        support::child(&self.syntax)
14738    }
14739    #[inline]
14740    pub fn all_token(&self) -> Option<SyntaxToken> {
14741        support::token(&self.syntax, SyntaxKind::ALL_KW)
14742    }
14743    #[inline]
14744    pub fn alter_token(&self) -> Option<SyntaxToken> {
14745        support::token(&self.syntax, SyntaxKind::ALTER_KW)
14746    }
14747    #[inline]
14748    pub fn create_token(&self) -> Option<SyntaxToken> {
14749        support::token(&self.syntax, SyntaxKind::CREATE_KW)
14750    }
14751    #[inline]
14752    pub fn delete_token(&self) -> Option<SyntaxToken> {
14753        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14754    }
14755    #[inline]
14756    pub fn execute_token(&self) -> Option<SyntaxToken> {
14757        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
14758    }
14759    #[inline]
14760    pub fn ident_token(&self) -> Option<SyntaxToken> {
14761        support::token(&self.syntax, SyntaxKind::IDENT)
14762    }
14763    #[inline]
14764    pub fn insert_token(&self) -> Option<SyntaxToken> {
14765        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14766    }
14767    #[inline]
14768    pub fn references_token(&self) -> Option<SyntaxToken> {
14769        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14770    }
14771    #[inline]
14772    pub fn select_token(&self) -> Option<SyntaxToken> {
14773        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14774    }
14775    #[inline]
14776    pub fn system_token(&self) -> Option<SyntaxToken> {
14777        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14778    }
14779    #[inline]
14780    pub fn temp_token(&self) -> Option<SyntaxToken> {
14781        support::token(&self.syntax, SyntaxKind::TEMP_KW)
14782    }
14783    #[inline]
14784    pub fn temporary_token(&self) -> Option<SyntaxToken> {
14785        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
14786    }
14787    #[inline]
14788    pub fn trigger_token(&self) -> Option<SyntaxToken> {
14789        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
14790    }
14791    #[inline]
14792    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14793        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14794    }
14795    #[inline]
14796    pub fn update_token(&self) -> Option<SyntaxToken> {
14797        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14798    }
14799}
14800
14801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14802pub struct RevokeCommandList {
14803    pub(crate) syntax: SyntaxNode,
14804}
14805impl RevokeCommandList {
14806    #[inline]
14807    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
14808        support::children(&self.syntax)
14809    }
14810}
14811
14812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14813pub struct RevokeDefaultPrivileges {
14814    pub(crate) syntax: SyntaxNode,
14815}
14816impl RevokeDefaultPrivileges {
14817    #[inline]
14818    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
14819        support::child(&self.syntax)
14820    }
14821    #[inline]
14822    pub fn privileges(&self) -> Option<Privileges> {
14823        support::child(&self.syntax)
14824    }
14825    #[inline]
14826    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14827        support::child(&self.syntax)
14828    }
14829    #[inline]
14830    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14831        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14832    }
14833    #[inline]
14834    pub fn for_token(&self) -> Option<SyntaxToken> {
14835        support::token(&self.syntax, SyntaxKind::FOR_KW)
14836    }
14837    #[inline]
14838    pub fn from_token(&self) -> Option<SyntaxToken> {
14839        support::token(&self.syntax, SyntaxKind::FROM_KW)
14840    }
14841    #[inline]
14842    pub fn grant_token(&self) -> Option<SyntaxToken> {
14843        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14844    }
14845    #[inline]
14846    pub fn on_token(&self) -> Option<SyntaxToken> {
14847        support::token(&self.syntax, SyntaxKind::ON_KW)
14848    }
14849    #[inline]
14850    pub fn option_token(&self) -> Option<SyntaxToken> {
14851        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14852    }
14853    #[inline]
14854    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14855        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14856    }
14857    #[inline]
14858    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14859        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14860    }
14861}
14862
14863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14864pub struct Role {
14865    pub(crate) syntax: SyntaxNode,
14866}
14867impl Role {
14868    #[inline]
14869    pub fn name(&self) -> Option<Name> {
14870        support::child(&self.syntax)
14871    }
14872    #[inline]
14873    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14874        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14875    }
14876    #[inline]
14877    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14878        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14879    }
14880    #[inline]
14881    pub fn group_token(&self) -> Option<SyntaxToken> {
14882        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14883    }
14884    #[inline]
14885    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14886        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14887    }
14888}
14889
14890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14891pub struct RoleOption {
14892    pub(crate) syntax: SyntaxNode,
14893}
14894impl RoleOption {
14895    #[inline]
14896    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14897        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14898    }
14899}
14900
14901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14902pub struct RoleOptionList {
14903    pub(crate) syntax: SyntaxNode,
14904}
14905impl RoleOptionList {
14906    #[inline]
14907    pub fn role_options(&self) -> AstChildren<RoleOption> {
14908        support::children(&self.syntax)
14909    }
14910    #[inline]
14911    pub fn with_token(&self) -> Option<SyntaxToken> {
14912        support::token(&self.syntax, SyntaxKind::WITH_KW)
14913    }
14914}
14915
14916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14917pub struct RoleRef {
14918    pub(crate) syntax: SyntaxNode,
14919}
14920impl RoleRef {
14921    #[inline]
14922    pub fn name_ref(&self) -> Option<NameRef> {
14923        support::child(&self.syntax)
14924    }
14925    #[inline]
14926    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14927        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14928    }
14929    #[inline]
14930    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14931        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14932    }
14933    #[inline]
14934    pub fn group_token(&self) -> Option<SyntaxToken> {
14935        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14936    }
14937    #[inline]
14938    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14939        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14940    }
14941}
14942
14943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14944pub struct RoleRefList {
14945    pub(crate) syntax: SyntaxNode,
14946}
14947impl RoleRefList {
14948    #[inline]
14949    pub fn role_refs(&self) -> AstChildren<RoleRef> {
14950        support::children(&self.syntax)
14951    }
14952}
14953
14954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14955pub struct Rollback {
14956    pub(crate) syntax: SyntaxNode,
14957}
14958impl Rollback {
14959    #[inline]
14960    pub fn literal(&self) -> Option<Literal> {
14961        support::child(&self.syntax)
14962    }
14963    #[inline]
14964    pub fn name_ref(&self) -> Option<NameRef> {
14965        support::child(&self.syntax)
14966    }
14967    #[inline]
14968    pub fn abort_token(&self) -> Option<SyntaxToken> {
14969        support::token(&self.syntax, SyntaxKind::ABORT_KW)
14970    }
14971    #[inline]
14972    pub fn and_token(&self) -> Option<SyntaxToken> {
14973        support::token(&self.syntax, SyntaxKind::AND_KW)
14974    }
14975    #[inline]
14976    pub fn chain_token(&self) -> Option<SyntaxToken> {
14977        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
14978    }
14979    #[inline]
14980    pub fn no_token(&self) -> Option<SyntaxToken> {
14981        support::token(&self.syntax, SyntaxKind::NO_KW)
14982    }
14983    #[inline]
14984    pub fn prepared_token(&self) -> Option<SyntaxToken> {
14985        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
14986    }
14987    #[inline]
14988    pub fn rollback_token(&self) -> Option<SyntaxToken> {
14989        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
14990    }
14991    #[inline]
14992    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14993        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14994    }
14995    #[inline]
14996    pub fn to_token(&self) -> Option<SyntaxToken> {
14997        support::token(&self.syntax, SyntaxKind::TO_KW)
14998    }
14999    #[inline]
15000    pub fn transaction_token(&self) -> Option<SyntaxToken> {
15001        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
15002    }
15003    #[inline]
15004    pub fn work_token(&self) -> Option<SyntaxToken> {
15005        support::token(&self.syntax, SyntaxKind::WORK_KW)
15006    }
15007}
15008
15009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15010pub struct Row {
15011    pub(crate) syntax: SyntaxNode,
15012}
15013impl Row {
15014    #[inline]
15015    pub fn exprs(&self) -> AstChildren<Expr> {
15016        support::children(&self.syntax)
15017    }
15018}
15019
15020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15021pub struct RowList {
15022    pub(crate) syntax: SyntaxNode,
15023}
15024impl RowList {
15025    #[inline]
15026    pub fn rows(&self) -> AstChildren<Row> {
15027        support::children(&self.syntax)
15028    }
15029}
15030
15031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15032pub struct RowsFuncOption {
15033    pub(crate) syntax: SyntaxNode,
15034}
15035impl RowsFuncOption {
15036    #[inline]
15037    pub fn rows_token(&self) -> Option<SyntaxToken> {
15038        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15039    }
15040}
15041
15042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15043pub struct Savepoint {
15044    pub(crate) syntax: SyntaxNode,
15045}
15046impl Savepoint {
15047    #[inline]
15048    pub fn name(&self) -> Option<Name> {
15049        support::child(&self.syntax)
15050    }
15051    #[inline]
15052    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15053        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15054    }
15055}
15056
15057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15058pub struct SecurityFuncOption {
15059    pub(crate) syntax: SyntaxNode,
15060}
15061impl SecurityFuncOption {
15062    #[inline]
15063    pub fn definer_token(&self) -> Option<SyntaxToken> {
15064        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15065    }
15066    #[inline]
15067    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15068        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15069    }
15070    #[inline]
15071    pub fn security_token(&self) -> Option<SyntaxToken> {
15072        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15073    }
15074}
15075
15076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15077pub struct SecurityLabel {
15078    pub(crate) syntax: SyntaxNode,
15079}
15080impl SecurityLabel {
15081    #[inline]
15082    pub fn aggregate(&self) -> Option<Aggregate> {
15083        support::child(&self.syntax)
15084    }
15085    #[inline]
15086    pub fn for_provider(&self) -> Option<ForProvider> {
15087        support::child(&self.syntax)
15088    }
15089    #[inline]
15090    pub fn function_sig(&self) -> Option<FunctionSig> {
15091        support::child(&self.syntax)
15092    }
15093    #[inline]
15094    pub fn literal(&self) -> Option<Literal> {
15095        support::child(&self.syntax)
15096    }
15097    #[inline]
15098    pub fn path(&self) -> Option<Path> {
15099        support::child(&self.syntax)
15100    }
15101    #[inline]
15102    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15103        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15104    }
15105    #[inline]
15106    pub fn column_token(&self) -> Option<SyntaxToken> {
15107        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15108    }
15109    #[inline]
15110    pub fn database_token(&self) -> Option<SyntaxToken> {
15111        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15112    }
15113    #[inline]
15114    pub fn domain_token(&self) -> Option<SyntaxToken> {
15115        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15116    }
15117    #[inline]
15118    pub fn event_token(&self) -> Option<SyntaxToken> {
15119        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15120    }
15121    #[inline]
15122    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15123        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15124    }
15125    #[inline]
15126    pub fn function_token(&self) -> Option<SyntaxToken> {
15127        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15128    }
15129    #[inline]
15130    pub fn is_token(&self) -> Option<SyntaxToken> {
15131        support::token(&self.syntax, SyntaxKind::IS_KW)
15132    }
15133    #[inline]
15134    pub fn label_token(&self) -> Option<SyntaxToken> {
15135        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15136    }
15137    #[inline]
15138    pub fn language_token(&self) -> Option<SyntaxToken> {
15139        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15140    }
15141    #[inline]
15142    pub fn large_token(&self) -> Option<SyntaxToken> {
15143        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15144    }
15145    #[inline]
15146    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15147        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15148    }
15149    #[inline]
15150    pub fn null_token(&self) -> Option<SyntaxToken> {
15151        support::token(&self.syntax, SyntaxKind::NULL_KW)
15152    }
15153    #[inline]
15154    pub fn object_token(&self) -> Option<SyntaxToken> {
15155        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15156    }
15157    #[inline]
15158    pub fn on_token(&self) -> Option<SyntaxToken> {
15159        support::token(&self.syntax, SyntaxKind::ON_KW)
15160    }
15161    #[inline]
15162    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15163        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15164    }
15165    #[inline]
15166    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15167        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15168    }
15169    #[inline]
15170    pub fn publication_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15172    }
15173    #[inline]
15174    pub fn role_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15176    }
15177    #[inline]
15178    pub fn routine_token(&self) -> Option<SyntaxToken> {
15179        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15180    }
15181    #[inline]
15182    pub fn schema_token(&self) -> Option<SyntaxToken> {
15183        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15184    }
15185    #[inline]
15186    pub fn security_token(&self) -> Option<SyntaxToken> {
15187        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15188    }
15189    #[inline]
15190    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15191        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15192    }
15193    #[inline]
15194    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15195        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15196    }
15197    #[inline]
15198    pub fn table_token(&self) -> Option<SyntaxToken> {
15199        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15200    }
15201    #[inline]
15202    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15203        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15204    }
15205    #[inline]
15206    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15207        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15208    }
15209    #[inline]
15210    pub fn type_token(&self) -> Option<SyntaxToken> {
15211        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15212    }
15213    #[inline]
15214    pub fn view_token(&self) -> Option<SyntaxToken> {
15215        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15216    }
15217}
15218
15219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15220pub struct Select {
15221    pub(crate) syntax: SyntaxNode,
15222}
15223impl Select {
15224    #[inline]
15225    pub fn fetch_clause(&self) -> Option<FetchClause> {
15226        support::child(&self.syntax)
15227    }
15228    #[inline]
15229    pub fn filter_clause(&self) -> Option<FilterClause> {
15230        support::child(&self.syntax)
15231    }
15232    #[inline]
15233    pub fn from_clause(&self) -> Option<FromClause> {
15234        support::child(&self.syntax)
15235    }
15236    #[inline]
15237    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15238        support::child(&self.syntax)
15239    }
15240    #[inline]
15241    pub fn having_clause(&self) -> Option<HavingClause> {
15242        support::child(&self.syntax)
15243    }
15244    #[inline]
15245    pub fn limit_clause(&self) -> Option<LimitClause> {
15246        support::child(&self.syntax)
15247    }
15248    #[inline]
15249    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15250        support::children(&self.syntax)
15251    }
15252    #[inline]
15253    pub fn offset_clause(&self) -> Option<OffsetClause> {
15254        support::child(&self.syntax)
15255    }
15256    #[inline]
15257    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15258        support::child(&self.syntax)
15259    }
15260    #[inline]
15261    pub fn select_clause(&self) -> Option<SelectClause> {
15262        support::child(&self.syntax)
15263    }
15264    #[inline]
15265    pub fn where_clause(&self) -> Option<WhereClause> {
15266        support::child(&self.syntax)
15267    }
15268    #[inline]
15269    pub fn window_clause(&self) -> Option<WindowClause> {
15270        support::child(&self.syntax)
15271    }
15272    #[inline]
15273    pub fn with_clause(&self) -> Option<WithClause> {
15274        support::child(&self.syntax)
15275    }
15276}
15277
15278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15279pub struct SelectClause {
15280    pub(crate) syntax: SyntaxNode,
15281}
15282impl SelectClause {
15283    #[inline]
15284    pub fn distinct_clause(&self) -> Option<DistinctClause> {
15285        support::child(&self.syntax)
15286    }
15287    #[inline]
15288    pub fn target_list(&self) -> Option<TargetList> {
15289        support::child(&self.syntax)
15290    }
15291    #[inline]
15292    pub fn all_token(&self) -> Option<SyntaxToken> {
15293        support::token(&self.syntax, SyntaxKind::ALL_KW)
15294    }
15295    #[inline]
15296    pub fn select_token(&self) -> Option<SyntaxToken> {
15297        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15298    }
15299}
15300
15301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15302pub struct SelectInto {
15303    pub(crate) syntax: SyntaxNode,
15304}
15305impl SelectInto {
15306    #[inline]
15307    pub fn filter_clause(&self) -> Option<FilterClause> {
15308        support::child(&self.syntax)
15309    }
15310    #[inline]
15311    pub fn from_clause(&self) -> Option<FromClause> {
15312        support::child(&self.syntax)
15313    }
15314    #[inline]
15315    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15316        support::child(&self.syntax)
15317    }
15318    #[inline]
15319    pub fn having_clause(&self) -> Option<HavingClause> {
15320        support::child(&self.syntax)
15321    }
15322    #[inline]
15323    pub fn into_clause(&self) -> Option<IntoClause> {
15324        support::child(&self.syntax)
15325    }
15326    #[inline]
15327    pub fn limit_clause(&self) -> Option<LimitClause> {
15328        support::child(&self.syntax)
15329    }
15330    #[inline]
15331    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15332        support::children(&self.syntax)
15333    }
15334    #[inline]
15335    pub fn offset_clause(&self) -> Option<OffsetClause> {
15336        support::child(&self.syntax)
15337    }
15338    #[inline]
15339    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15340        support::child(&self.syntax)
15341    }
15342    #[inline]
15343    pub fn select_clause(&self) -> Option<SelectClause> {
15344        support::child(&self.syntax)
15345    }
15346    #[inline]
15347    pub fn where_clause(&self) -> Option<WhereClause> {
15348        support::child(&self.syntax)
15349    }
15350    #[inline]
15351    pub fn window_clause(&self) -> Option<WindowClause> {
15352        support::child(&self.syntax)
15353    }
15354    #[inline]
15355    pub fn with_clause(&self) -> Option<WithClause> {
15356        support::child(&self.syntax)
15357    }
15358}
15359
15360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15361pub struct SequenceOption {
15362    pub(crate) syntax: SyntaxNode,
15363}
15364impl SequenceOption {
15365    #[inline]
15366    pub fn literal(&self) -> Option<Literal> {
15367        support::child(&self.syntax)
15368    }
15369    #[inline]
15370    pub fn name_ref(&self) -> Option<NameRef> {
15371        support::child(&self.syntax)
15372    }
15373    #[inline]
15374    pub fn path(&self) -> Option<Path> {
15375        support::child(&self.syntax)
15376    }
15377    #[inline]
15378    pub fn ty(&self) -> Option<Type> {
15379        support::child(&self.syntax)
15380    }
15381    #[inline]
15382    pub fn as_token(&self) -> Option<SyntaxToken> {
15383        support::token(&self.syntax, SyntaxKind::AS_KW)
15384    }
15385    #[inline]
15386    pub fn by_token(&self) -> Option<SyntaxToken> {
15387        support::token(&self.syntax, SyntaxKind::BY_KW)
15388    }
15389    #[inline]
15390    pub fn cycle_token(&self) -> Option<SyntaxToken> {
15391        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
15392    }
15393    #[inline]
15394    pub fn increment_token(&self) -> Option<SyntaxToken> {
15395        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
15396    }
15397    #[inline]
15398    pub fn logged_token(&self) -> Option<SyntaxToken> {
15399        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15400    }
15401    #[inline]
15402    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
15403        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
15404    }
15405    #[inline]
15406    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
15407        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
15408    }
15409    #[inline]
15410    pub fn name_token(&self) -> Option<SyntaxToken> {
15411        support::token(&self.syntax, SyntaxKind::NAME_KW)
15412    }
15413    #[inline]
15414    pub fn no_token(&self) -> Option<SyntaxToken> {
15415        support::token(&self.syntax, SyntaxKind::NO_KW)
15416    }
15417    #[inline]
15418    pub fn none_token(&self) -> Option<SyntaxToken> {
15419        support::token(&self.syntax, SyntaxKind::NONE_KW)
15420    }
15421    #[inline]
15422    pub fn owned_token(&self) -> Option<SyntaxToken> {
15423        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15424    }
15425    #[inline]
15426    pub fn restart_token(&self) -> Option<SyntaxToken> {
15427        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15428    }
15429    #[inline]
15430    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15431        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15432    }
15433    #[inline]
15434    pub fn start_token(&self) -> Option<SyntaxToken> {
15435        support::token(&self.syntax, SyntaxKind::START_KW)
15436    }
15437    #[inline]
15438    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
15439        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
15440    }
15441    #[inline]
15442    pub fn with_token(&self) -> Option<SyntaxToken> {
15443        support::token(&self.syntax, SyntaxKind::WITH_KW)
15444    }
15445}
15446
15447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15448pub struct SequenceOptionList {
15449    pub(crate) syntax: SyntaxNode,
15450}
15451impl SequenceOptionList {
15452    #[inline]
15453    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
15454        support::children(&self.syntax)
15455    }
15456    #[inline]
15457    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15458        support::token(&self.syntax, SyntaxKind::L_PAREN)
15459    }
15460    #[inline]
15461    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15462        support::token(&self.syntax, SyntaxKind::R_PAREN)
15463    }
15464}
15465
15466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15467pub struct Serializable {
15468    pub(crate) syntax: SyntaxNode,
15469}
15470impl Serializable {
15471    #[inline]
15472    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15473        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15474    }
15475    #[inline]
15476    pub fn level_token(&self) -> Option<SyntaxToken> {
15477        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15478    }
15479    #[inline]
15480    pub fn serializable_token(&self) -> Option<SyntaxToken> {
15481        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
15482    }
15483}
15484
15485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15486pub struct ServerName {
15487    pub(crate) syntax: SyntaxNode,
15488}
15489impl ServerName {
15490    #[inline]
15491    pub fn name_ref(&self) -> Option<NameRef> {
15492        support::child(&self.syntax)
15493    }
15494    #[inline]
15495    pub fn server_token(&self) -> Option<SyntaxToken> {
15496        support::token(&self.syntax, SyntaxKind::SERVER_KW)
15497    }
15498}
15499
15500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15501pub struct Set {
15502    pub(crate) syntax: SyntaxNode,
15503}
15504impl Set {
15505    #[inline]
15506    pub fn config_value(&self) -> Option<ConfigValue> {
15507        support::child(&self.syntax)
15508    }
15509    #[inline]
15510    pub fn config_values(&self) -> AstChildren<ConfigValue> {
15511        support::children(&self.syntax)
15512    }
15513    #[inline]
15514    pub fn literal(&self) -> Option<Literal> {
15515        support::child(&self.syntax)
15516    }
15517    #[inline]
15518    pub fn path(&self) -> Option<Path> {
15519        support::child(&self.syntax)
15520    }
15521    #[inline]
15522    pub fn eq_token(&self) -> Option<SyntaxToken> {
15523        support::token(&self.syntax, SyntaxKind::EQ)
15524    }
15525    #[inline]
15526    pub fn catalog_token(&self) -> Option<SyntaxToken> {
15527        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
15528    }
15529    #[inline]
15530    pub fn content_token(&self) -> Option<SyntaxToken> {
15531        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15532    }
15533    #[inline]
15534    pub fn current_token(&self) -> Option<SyntaxToken> {
15535        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15536    }
15537    #[inline]
15538    pub fn default_token(&self) -> Option<SyntaxToken> {
15539        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15540    }
15541    #[inline]
15542    pub fn document_token(&self) -> Option<SyntaxToken> {
15543        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15544    }
15545    #[inline]
15546    pub fn from_token(&self) -> Option<SyntaxToken> {
15547        support::token(&self.syntax, SyntaxKind::FROM_KW)
15548    }
15549    #[inline]
15550    pub fn local_token(&self) -> Option<SyntaxToken> {
15551        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15552    }
15553    #[inline]
15554    pub fn option_token(&self) -> Option<SyntaxToken> {
15555        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15556    }
15557    #[inline]
15558    pub fn schema_token(&self) -> Option<SyntaxToken> {
15559        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15560    }
15561    #[inline]
15562    pub fn session_token(&self) -> Option<SyntaxToken> {
15563        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15564    }
15565    #[inline]
15566    pub fn set_token(&self) -> Option<SyntaxToken> {
15567        support::token(&self.syntax, SyntaxKind::SET_KW)
15568    }
15569    #[inline]
15570    pub fn time_token(&self) -> Option<SyntaxToken> {
15571        support::token(&self.syntax, SyntaxKind::TIME_KW)
15572    }
15573    #[inline]
15574    pub fn to_token(&self) -> Option<SyntaxToken> {
15575        support::token(&self.syntax, SyntaxKind::TO_KW)
15576    }
15577    #[inline]
15578    pub fn xml_token(&self) -> Option<SyntaxToken> {
15579        support::token(&self.syntax, SyntaxKind::XML_KW)
15580    }
15581    #[inline]
15582    pub fn zone_token(&self) -> Option<SyntaxToken> {
15583        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15584    }
15585}
15586
15587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15588pub struct SetAccessMethod {
15589    pub(crate) syntax: SyntaxNode,
15590}
15591impl SetAccessMethod {
15592    #[inline]
15593    pub fn name_ref(&self) -> Option<NameRef> {
15594        support::child(&self.syntax)
15595    }
15596    #[inline]
15597    pub fn access_token(&self) -> Option<SyntaxToken> {
15598        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
15599    }
15600    #[inline]
15601    pub fn method_token(&self) -> Option<SyntaxToken> {
15602        support::token(&self.syntax, SyntaxKind::METHOD_KW)
15603    }
15604    #[inline]
15605    pub fn set_token(&self) -> Option<SyntaxToken> {
15606        support::token(&self.syntax, SyntaxKind::SET_KW)
15607    }
15608}
15609
15610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15611pub struct SetClause {
15612    pub(crate) syntax: SyntaxNode,
15613}
15614impl SetClause {
15615    #[inline]
15616    pub fn set_column_list(&self) -> Option<SetColumnList> {
15617        support::child(&self.syntax)
15618    }
15619    #[inline]
15620    pub fn set_token(&self) -> Option<SyntaxToken> {
15621        support::token(&self.syntax, SyntaxKind::SET_KW)
15622    }
15623}
15624
15625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15626pub struct SetColumnList {
15627    pub(crate) syntax: SyntaxNode,
15628}
15629impl SetColumnList {
15630    #[inline]
15631    pub fn set_columns(&self) -> AstChildren<SetColumn> {
15632        support::children(&self.syntax)
15633    }
15634}
15635
15636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15637pub struct SetCompression {
15638    pub(crate) syntax: SyntaxNode,
15639}
15640impl SetCompression {
15641    #[inline]
15642    pub fn compression_token(&self) -> Option<SyntaxToken> {
15643        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
15644    }
15645    #[inline]
15646    pub fn set_token(&self) -> Option<SyntaxToken> {
15647        support::token(&self.syntax, SyntaxKind::SET_KW)
15648    }
15649}
15650
15651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15652pub struct SetConfigParam {
15653    pub(crate) syntax: SyntaxNode,
15654}
15655impl SetConfigParam {
15656    #[inline]
15657    pub fn path(&self) -> Option<Path> {
15658        support::child(&self.syntax)
15659    }
15660    #[inline]
15661    pub fn set_token(&self) -> Option<SyntaxToken> {
15662        support::token(&self.syntax, SyntaxKind::SET_KW)
15663    }
15664}
15665
15666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15667pub struct SetConstraints {
15668    pub(crate) syntax: SyntaxNode,
15669}
15670impl SetConstraints {
15671    #[inline]
15672    pub fn paths(&self) -> AstChildren<Path> {
15673        support::children(&self.syntax)
15674    }
15675    #[inline]
15676    pub fn all_token(&self) -> Option<SyntaxToken> {
15677        support::token(&self.syntax, SyntaxKind::ALL_KW)
15678    }
15679    #[inline]
15680    pub fn constraints_token(&self) -> Option<SyntaxToken> {
15681        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
15682    }
15683    #[inline]
15684    pub fn deferred_token(&self) -> Option<SyntaxToken> {
15685        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
15686    }
15687    #[inline]
15688    pub fn immediate_token(&self) -> Option<SyntaxToken> {
15689        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
15690    }
15691    #[inline]
15692    pub fn set_token(&self) -> Option<SyntaxToken> {
15693        support::token(&self.syntax, SyntaxKind::SET_KW)
15694    }
15695}
15696
15697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15698pub struct SetDefault {
15699    pub(crate) syntax: SyntaxNode,
15700}
15701impl SetDefault {
15702    #[inline]
15703    pub fn expr(&self) -> Option<Expr> {
15704        support::child(&self.syntax)
15705    }
15706    #[inline]
15707    pub fn default_token(&self) -> Option<SyntaxToken> {
15708        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15709    }
15710    #[inline]
15711    pub fn set_token(&self) -> Option<SyntaxToken> {
15712        support::token(&self.syntax, SyntaxKind::SET_KW)
15713    }
15714}
15715
15716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15717pub struct SetDefaultColumns {
15718    pub(crate) syntax: SyntaxNode,
15719}
15720impl SetDefaultColumns {
15721    #[inline]
15722    pub fn column_list(&self) -> Option<ColumnList> {
15723        support::child(&self.syntax)
15724    }
15725    #[inline]
15726    pub fn default_token(&self) -> Option<SyntaxToken> {
15727        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15728    }
15729    #[inline]
15730    pub fn set_token(&self) -> Option<SyntaxToken> {
15731        support::token(&self.syntax, SyntaxKind::SET_KW)
15732    }
15733}
15734
15735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15736pub struct SetExpr {
15737    pub(crate) syntax: SyntaxNode,
15738}
15739impl SetExpr {
15740    #[inline]
15741    pub fn expr(&self) -> Option<Expr> {
15742        support::child(&self.syntax)
15743    }
15744    #[inline]
15745    pub fn default_token(&self) -> Option<SyntaxToken> {
15746        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15747    }
15748}
15749
15750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15751pub struct SetExprList {
15752    pub(crate) syntax: SyntaxNode,
15753}
15754impl SetExprList {
15755    #[inline]
15756    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
15757        support::children(&self.syntax)
15758    }
15759    #[inline]
15760    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15761        support::token(&self.syntax, SyntaxKind::L_PAREN)
15762    }
15763    #[inline]
15764    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15765        support::token(&self.syntax, SyntaxKind::R_PAREN)
15766    }
15767    #[inline]
15768    pub fn row_token(&self) -> Option<SyntaxToken> {
15769        support::token(&self.syntax, SyntaxKind::ROW_KW)
15770    }
15771}
15772
15773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15774pub struct SetExpression {
15775    pub(crate) syntax: SyntaxNode,
15776}
15777impl SetExpression {
15778    #[inline]
15779    pub fn expr(&self) -> Option<Expr> {
15780        support::child(&self.syntax)
15781    }
15782    #[inline]
15783    pub fn expression_token(&self) -> Option<SyntaxToken> {
15784        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
15785    }
15786    #[inline]
15787    pub fn set_token(&self) -> Option<SyntaxToken> {
15788        support::token(&self.syntax, SyntaxKind::SET_KW)
15789    }
15790}
15791
15792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15793pub struct SetFuncOption {
15794    pub(crate) syntax: SyntaxNode,
15795}
15796impl SetFuncOption {
15797    #[inline]
15798    pub fn set_token(&self) -> Option<SyntaxToken> {
15799        support::token(&self.syntax, SyntaxKind::SET_KW)
15800    }
15801}
15802
15803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15804pub struct SetGenerated {
15805    pub(crate) syntax: SyntaxNode,
15806}
15807impl SetGenerated {
15808    #[inline]
15809    pub fn set_token(&self) -> Option<SyntaxToken> {
15810        support::token(&self.syntax, SyntaxKind::SET_KW)
15811    }
15812}
15813
15814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15815pub struct SetGeneratedOptions {
15816    pub(crate) syntax: SyntaxNode,
15817}
15818impl SetGeneratedOptions {
15819    #[inline]
15820    pub fn generated_token(&self) -> Option<SyntaxToken> {
15821        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
15822    }
15823    #[inline]
15824    pub fn set_token(&self) -> Option<SyntaxToken> {
15825        support::token(&self.syntax, SyntaxKind::SET_KW)
15826    }
15827}
15828
15829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15830pub struct SetLogged {
15831    pub(crate) syntax: SyntaxNode,
15832}
15833impl SetLogged {
15834    #[inline]
15835    pub fn logged_token(&self) -> Option<SyntaxToken> {
15836        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15837    }
15838    #[inline]
15839    pub fn set_token(&self) -> Option<SyntaxToken> {
15840        support::token(&self.syntax, SyntaxKind::SET_KW)
15841    }
15842}
15843
15844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15845pub struct SetMultipleColumns {
15846    pub(crate) syntax: SyntaxNode,
15847}
15848impl SetMultipleColumns {
15849    #[inline]
15850    pub fn column_list(&self) -> Option<ColumnList> {
15851        support::child(&self.syntax)
15852    }
15853    #[inline]
15854    pub fn paren_select(&self) -> Option<ParenSelect> {
15855        support::child(&self.syntax)
15856    }
15857    #[inline]
15858    pub fn set_expr_list(&self) -> Option<SetExprList> {
15859        support::child(&self.syntax)
15860    }
15861    #[inline]
15862    pub fn eq_token(&self) -> Option<SyntaxToken> {
15863        support::token(&self.syntax, SyntaxKind::EQ)
15864    }
15865}
15866
15867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15868pub struct SetNotNull {
15869    pub(crate) syntax: SyntaxNode,
15870}
15871impl SetNotNull {
15872    #[inline]
15873    pub fn not_token(&self) -> Option<SyntaxToken> {
15874        support::token(&self.syntax, SyntaxKind::NOT_KW)
15875    }
15876    #[inline]
15877    pub fn null_token(&self) -> Option<SyntaxToken> {
15878        support::token(&self.syntax, SyntaxKind::NULL_KW)
15879    }
15880    #[inline]
15881    pub fn set_token(&self) -> Option<SyntaxToken> {
15882        support::token(&self.syntax, SyntaxKind::SET_KW)
15883    }
15884}
15885
15886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15887pub struct SetNullColumns {
15888    pub(crate) syntax: SyntaxNode,
15889}
15890impl SetNullColumns {
15891    #[inline]
15892    pub fn column_list(&self) -> Option<ColumnList> {
15893        support::child(&self.syntax)
15894    }
15895    #[inline]
15896    pub fn null_token(&self) -> Option<SyntaxToken> {
15897        support::token(&self.syntax, SyntaxKind::NULL_KW)
15898    }
15899    #[inline]
15900    pub fn set_token(&self) -> Option<SyntaxToken> {
15901        support::token(&self.syntax, SyntaxKind::SET_KW)
15902    }
15903}
15904
15905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15906pub struct SetOptions {
15907    pub(crate) syntax: SyntaxNode,
15908}
15909impl SetOptions {
15910    #[inline]
15911    pub fn attribute_list(&self) -> Option<AttributeList> {
15912        support::child(&self.syntax)
15913    }
15914    #[inline]
15915    pub fn set_token(&self) -> Option<SyntaxToken> {
15916        support::token(&self.syntax, SyntaxKind::SET_KW)
15917    }
15918}
15919
15920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15921pub struct SetOptionsList {
15922    pub(crate) syntax: SyntaxNode,
15923}
15924impl SetOptionsList {
15925    #[inline]
15926    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
15927        support::child(&self.syntax)
15928    }
15929    #[inline]
15930    pub fn options_token(&self) -> Option<SyntaxToken> {
15931        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15932    }
15933    #[inline]
15934    pub fn set_token(&self) -> Option<SyntaxToken> {
15935        support::token(&self.syntax, SyntaxKind::SET_KW)
15936    }
15937}
15938
15939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15940pub struct SetRole {
15941    pub(crate) syntax: SyntaxNode,
15942}
15943impl SetRole {
15944    #[inline]
15945    pub fn role_ref(&self) -> Option<RoleRef> {
15946        support::child(&self.syntax)
15947    }
15948    #[inline]
15949    pub fn local_token(&self) -> Option<SyntaxToken> {
15950        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15951    }
15952    #[inline]
15953    pub fn none_token(&self) -> Option<SyntaxToken> {
15954        support::token(&self.syntax, SyntaxKind::NONE_KW)
15955    }
15956    #[inline]
15957    pub fn reset_token(&self) -> Option<SyntaxToken> {
15958        support::token(&self.syntax, SyntaxKind::RESET_KW)
15959    }
15960    #[inline]
15961    pub fn role_token(&self) -> Option<SyntaxToken> {
15962        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15963    }
15964    #[inline]
15965    pub fn session_token(&self) -> Option<SyntaxToken> {
15966        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15967    }
15968    #[inline]
15969    pub fn set_token(&self) -> Option<SyntaxToken> {
15970        support::token(&self.syntax, SyntaxKind::SET_KW)
15971    }
15972}
15973
15974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15975pub struct SetSchema {
15976    pub(crate) syntax: SyntaxNode,
15977}
15978impl SetSchema {
15979    #[inline]
15980    pub fn name_ref(&self) -> Option<NameRef> {
15981        support::child(&self.syntax)
15982    }
15983    #[inline]
15984    pub fn schema_token(&self) -> Option<SyntaxToken> {
15985        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15986    }
15987    #[inline]
15988    pub fn set_token(&self) -> Option<SyntaxToken> {
15989        support::token(&self.syntax, SyntaxKind::SET_KW)
15990    }
15991}
15992
15993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15994pub struct SetSequenceOption {
15995    pub(crate) syntax: SyntaxNode,
15996}
15997impl SetSequenceOption {
15998    #[inline]
15999    pub fn set_token(&self) -> Option<SyntaxToken> {
16000        support::token(&self.syntax, SyntaxKind::SET_KW)
16001    }
16002}
16003
16004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16005pub struct SetSessionAuth {
16006    pub(crate) syntax: SyntaxNode,
16007}
16008impl SetSessionAuth {
16009    #[inline]
16010    pub fn literal(&self) -> Option<Literal> {
16011        support::child(&self.syntax)
16012    }
16013    #[inline]
16014    pub fn role_ref(&self) -> Option<RoleRef> {
16015        support::child(&self.syntax)
16016    }
16017    #[inline]
16018    pub fn authorization_token(&self) -> Option<SyntaxToken> {
16019        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
16020    }
16021    #[inline]
16022    pub fn default_token(&self) -> Option<SyntaxToken> {
16023        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16024    }
16025    #[inline]
16026    pub fn local_token(&self) -> Option<SyntaxToken> {
16027        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16028    }
16029    #[inline]
16030    pub fn session_token(&self) -> Option<SyntaxToken> {
16031        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16032    }
16033    #[inline]
16034    pub fn set_token(&self) -> Option<SyntaxToken> {
16035        support::token(&self.syntax, SyntaxKind::SET_KW)
16036    }
16037}
16038
16039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16040pub struct SetSingleColumn {
16041    pub(crate) syntax: SyntaxNode,
16042}
16043impl SetSingleColumn {
16044    #[inline]
16045    pub fn column(&self) -> Option<Column> {
16046        support::child(&self.syntax)
16047    }
16048    #[inline]
16049    pub fn set_expr(&self) -> Option<SetExpr> {
16050        support::child(&self.syntax)
16051    }
16052    #[inline]
16053    pub fn eq_token(&self) -> Option<SyntaxToken> {
16054        support::token(&self.syntax, SyntaxKind::EQ)
16055    }
16056}
16057
16058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16059pub struct SetStatistics {
16060    pub(crate) syntax: SyntaxNode,
16061}
16062impl SetStatistics {
16063    #[inline]
16064    pub fn set_token(&self) -> Option<SyntaxToken> {
16065        support::token(&self.syntax, SyntaxKind::SET_KW)
16066    }
16067    #[inline]
16068    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16069        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16070    }
16071}
16072
16073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16074pub struct SetStorage {
16075    pub(crate) syntax: SyntaxNode,
16076}
16077impl SetStorage {
16078    #[inline]
16079    pub fn set_token(&self) -> Option<SyntaxToken> {
16080        support::token(&self.syntax, SyntaxKind::SET_KW)
16081    }
16082    #[inline]
16083    pub fn storage_token(&self) -> Option<SyntaxToken> {
16084        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16085    }
16086}
16087
16088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16089pub struct SetTablespace {
16090    pub(crate) syntax: SyntaxNode,
16091}
16092impl SetTablespace {
16093    #[inline]
16094    pub fn path(&self) -> Option<Path> {
16095        support::child(&self.syntax)
16096    }
16097    #[inline]
16098    pub fn set_token(&self) -> Option<SyntaxToken> {
16099        support::token(&self.syntax, SyntaxKind::SET_KW)
16100    }
16101    #[inline]
16102    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16103        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16104    }
16105}
16106
16107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16108pub struct SetTransaction {
16109    pub(crate) syntax: SyntaxNode,
16110}
16111impl SetTransaction {
16112    #[inline]
16113    pub fn literal(&self) -> Option<Literal> {
16114        support::child(&self.syntax)
16115    }
16116    #[inline]
16117    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16118        support::child(&self.syntax)
16119    }
16120    #[inline]
16121    pub fn as_token(&self) -> Option<SyntaxToken> {
16122        support::token(&self.syntax, SyntaxKind::AS_KW)
16123    }
16124    #[inline]
16125    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16126        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16127    }
16128    #[inline]
16129    pub fn session_token(&self) -> Option<SyntaxToken> {
16130        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16131    }
16132    #[inline]
16133    pub fn set_token(&self) -> Option<SyntaxToken> {
16134        support::token(&self.syntax, SyntaxKind::SET_KW)
16135    }
16136    #[inline]
16137    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16138        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16139    }
16140    #[inline]
16141    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16143    }
16144}
16145
16146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16147pub struct SetType {
16148    pub(crate) syntax: SyntaxNode,
16149}
16150impl SetType {
16151    #[inline]
16152    pub fn collate(&self) -> Option<Collate> {
16153        support::child(&self.syntax)
16154    }
16155    #[inline]
16156    pub fn ty(&self) -> Option<Type> {
16157        support::child(&self.syntax)
16158    }
16159    #[inline]
16160    pub fn set_token(&self) -> Option<SyntaxToken> {
16161        support::token(&self.syntax, SyntaxKind::SET_KW)
16162    }
16163    #[inline]
16164    pub fn type_token(&self) -> Option<SyntaxToken> {
16165        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16166    }
16167}
16168
16169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16170pub struct SetUnlogged {
16171    pub(crate) syntax: SyntaxNode,
16172}
16173impl SetUnlogged {
16174    #[inline]
16175    pub fn set_token(&self) -> Option<SyntaxToken> {
16176        support::token(&self.syntax, SyntaxKind::SET_KW)
16177    }
16178    #[inline]
16179    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16180        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16181    }
16182}
16183
16184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16185pub struct SetWithoutCluster {
16186    pub(crate) syntax: SyntaxNode,
16187}
16188impl SetWithoutCluster {
16189    #[inline]
16190    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16191        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16192    }
16193    #[inline]
16194    pub fn set_token(&self) -> Option<SyntaxToken> {
16195        support::token(&self.syntax, SyntaxKind::SET_KW)
16196    }
16197    #[inline]
16198    pub fn without_token(&self) -> Option<SyntaxToken> {
16199        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16200    }
16201}
16202
16203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16204pub struct SetWithoutOids {
16205    pub(crate) syntax: SyntaxNode,
16206}
16207impl SetWithoutOids {
16208    #[inline]
16209    pub fn oids_token(&self) -> Option<SyntaxToken> {
16210        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16211    }
16212    #[inline]
16213    pub fn set_token(&self) -> Option<SyntaxToken> {
16214        support::token(&self.syntax, SyntaxKind::SET_KW)
16215    }
16216    #[inline]
16217    pub fn without_token(&self) -> Option<SyntaxToken> {
16218        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16219    }
16220}
16221
16222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16223pub struct Show {
16224    pub(crate) syntax: SyntaxNode,
16225}
16226impl Show {
16227    #[inline]
16228    pub fn show_token(&self) -> Option<SyntaxToken> {
16229        support::token(&self.syntax, SyntaxKind::SHOW_KW)
16230    }
16231}
16232
16233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16234pub struct SimilarTo {
16235    pub(crate) syntax: SyntaxNode,
16236}
16237impl SimilarTo {
16238    #[inline]
16239    pub fn similar_token(&self) -> Option<SyntaxToken> {
16240        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16241    }
16242    #[inline]
16243    pub fn to_token(&self) -> Option<SyntaxToken> {
16244        support::token(&self.syntax, SyntaxKind::TO_KW)
16245    }
16246}
16247
16248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16249pub struct SliceExpr {
16250    pub(crate) syntax: SyntaxNode,
16251}
16252impl SliceExpr {
16253    #[inline]
16254    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
16255        support::token(&self.syntax, SyntaxKind::L_BRACK)
16256    }
16257    #[inline]
16258    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
16259        support::token(&self.syntax, SyntaxKind::R_BRACK)
16260    }
16261    #[inline]
16262    pub fn colon_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::COLON)
16264    }
16265}
16266
16267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16268pub struct SomeFn {
16269    pub(crate) syntax: SyntaxNode,
16270}
16271impl SomeFn {
16272    #[inline]
16273    pub fn expr(&self) -> Option<Expr> {
16274        support::child(&self.syntax)
16275    }
16276    #[inline]
16277    pub fn select_variant(&self) -> Option<SelectVariant> {
16278        support::child(&self.syntax)
16279    }
16280    #[inline]
16281    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16282        support::token(&self.syntax, SyntaxKind::L_PAREN)
16283    }
16284    #[inline]
16285    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16286        support::token(&self.syntax, SyntaxKind::R_PAREN)
16287    }
16288    #[inline]
16289    pub fn some_token(&self) -> Option<SyntaxToken> {
16290        support::token(&self.syntax, SyntaxKind::SOME_KW)
16291    }
16292}
16293
16294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16295pub struct SortAsc {
16296    pub(crate) syntax: SyntaxNode,
16297}
16298impl SortAsc {
16299    #[inline]
16300    pub fn asc_token(&self) -> Option<SyntaxToken> {
16301        support::token(&self.syntax, SyntaxKind::ASC_KW)
16302    }
16303}
16304
16305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16306pub struct SortBy {
16307    pub(crate) syntax: SyntaxNode,
16308}
16309impl SortBy {
16310    #[inline]
16311    pub fn expr(&self) -> Option<Expr> {
16312        support::child(&self.syntax)
16313    }
16314    #[inline]
16315    pub fn nulls_first(&self) -> Option<NullsFirst> {
16316        support::child(&self.syntax)
16317    }
16318    #[inline]
16319    pub fn nulls_last(&self) -> Option<NullsLast> {
16320        support::child(&self.syntax)
16321    }
16322    #[inline]
16323    pub fn sort_asc(&self) -> Option<SortAsc> {
16324        support::child(&self.syntax)
16325    }
16326    #[inline]
16327    pub fn sort_desc(&self) -> Option<SortDesc> {
16328        support::child(&self.syntax)
16329    }
16330    #[inline]
16331    pub fn sort_using(&self) -> Option<SortUsing> {
16332        support::child(&self.syntax)
16333    }
16334}
16335
16336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16337pub struct SortByList {
16338    pub(crate) syntax: SyntaxNode,
16339}
16340impl SortByList {
16341    #[inline]
16342    pub fn sort_bys(&self) -> AstChildren<SortBy> {
16343        support::children(&self.syntax)
16344    }
16345}
16346
16347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16348pub struct SortDesc {
16349    pub(crate) syntax: SyntaxNode,
16350}
16351impl SortDesc {
16352    #[inline]
16353    pub fn desc_token(&self) -> Option<SyntaxToken> {
16354        support::token(&self.syntax, SyntaxKind::DESC_KW)
16355    }
16356}
16357
16358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16359pub struct SortUsing {
16360    pub(crate) syntax: SyntaxNode,
16361}
16362impl SortUsing {
16363    #[inline]
16364    pub fn op(&self) -> Option<Op> {
16365        support::child(&self.syntax)
16366    }
16367    #[inline]
16368    pub fn using_token(&self) -> Option<SyntaxToken> {
16369        support::token(&self.syntax, SyntaxKind::USING_KW)
16370    }
16371}
16372
16373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16374pub struct SourceFile {
16375    pub(crate) syntax: SyntaxNode,
16376}
16377impl SourceFile {
16378    #[inline]
16379    pub fn stmts(&self) -> AstChildren<Stmt> {
16380        support::children(&self.syntax)
16381    }
16382}
16383
16384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16385pub struct SourceVertexTable {
16386    pub(crate) syntax: SyntaxNode,
16387}
16388impl SourceVertexTable {
16389    #[inline]
16390    pub fn column_list(&self) -> Option<ColumnList> {
16391        support::child(&self.syntax)
16392    }
16393    #[inline]
16394    pub fn name_ref(&self) -> Option<NameRef> {
16395        support::child(&self.syntax)
16396    }
16397    #[inline]
16398    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16399        support::token(&self.syntax, SyntaxKind::L_PAREN)
16400    }
16401    #[inline]
16402    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16403        support::token(&self.syntax, SyntaxKind::R_PAREN)
16404    }
16405    #[inline]
16406    pub fn key_token(&self) -> Option<SyntaxToken> {
16407        support::token(&self.syntax, SyntaxKind::KEY_KW)
16408    }
16409    #[inline]
16410    pub fn references_token(&self) -> Option<SyntaxToken> {
16411        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
16412    }
16413    #[inline]
16414    pub fn source_token(&self) -> Option<SyntaxToken> {
16415        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
16416    }
16417}
16418
16419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16420pub struct SplitPartition {
16421    pub(crate) syntax: SyntaxNode,
16422}
16423impl SplitPartition {
16424    #[inline]
16425    pub fn partition_list(&self) -> Option<PartitionList> {
16426        support::child(&self.syntax)
16427    }
16428    #[inline]
16429    pub fn into_token(&self) -> Option<SyntaxToken> {
16430        support::token(&self.syntax, SyntaxKind::INTO_KW)
16431    }
16432    #[inline]
16433    pub fn partition_token(&self) -> Option<SyntaxToken> {
16434        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16435    }
16436    #[inline]
16437    pub fn split_token(&self) -> Option<SyntaxToken> {
16438        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
16439    }
16440}
16441
16442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16443pub struct Storage {
16444    pub(crate) syntax: SyntaxNode,
16445}
16446impl Storage {
16447    #[inline]
16448    pub fn default_token(&self) -> Option<SyntaxToken> {
16449        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16450    }
16451    #[inline]
16452    pub fn external_token(&self) -> Option<SyntaxToken> {
16453        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
16454    }
16455    #[inline]
16456    pub fn ident_token(&self) -> Option<SyntaxToken> {
16457        support::token(&self.syntax, SyntaxKind::IDENT)
16458    }
16459    #[inline]
16460    pub fn storage_token(&self) -> Option<SyntaxToken> {
16461        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16462    }
16463}
16464
16465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16466pub struct StrictFuncOption {
16467    pub(crate) syntax: SyntaxNode,
16468}
16469impl StrictFuncOption {
16470    #[inline]
16471    pub fn called_token(&self) -> Option<SyntaxToken> {
16472        support::token(&self.syntax, SyntaxKind::CALLED_KW)
16473    }
16474    #[inline]
16475    pub fn input_token(&self) -> Option<SyntaxToken> {
16476        support::token(&self.syntax, SyntaxKind::INPUT_KW)
16477    }
16478    #[inline]
16479    pub fn null_token(&self) -> Option<SyntaxToken> {
16480        support::token(&self.syntax, SyntaxKind::NULL_KW)
16481    }
16482    #[inline]
16483    pub fn on_token(&self) -> Option<SyntaxToken> {
16484        support::token(&self.syntax, SyntaxKind::ON_KW)
16485    }
16486    #[inline]
16487    pub fn returns_token(&self) -> Option<SyntaxToken> {
16488        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
16489    }
16490    #[inline]
16491    pub fn strict_token(&self) -> Option<SyntaxToken> {
16492        support::token(&self.syntax, SyntaxKind::STRICT_KW)
16493    }
16494}
16495
16496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16497pub struct SubstringFn {
16498    pub(crate) syntax: SyntaxNode,
16499}
16500impl SubstringFn {
16501    #[inline]
16502    pub fn expr(&self) -> Option<Expr> {
16503        support::child(&self.syntax)
16504    }
16505    #[inline]
16506    pub fn exprs(&self) -> AstChildren<Expr> {
16507        support::children(&self.syntax)
16508    }
16509    #[inline]
16510    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16511        support::token(&self.syntax, SyntaxKind::L_PAREN)
16512    }
16513    #[inline]
16514    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16515        support::token(&self.syntax, SyntaxKind::R_PAREN)
16516    }
16517    #[inline]
16518    pub fn escape_token(&self) -> Option<SyntaxToken> {
16519        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
16520    }
16521    #[inline]
16522    pub fn for_token(&self) -> Option<SyntaxToken> {
16523        support::token(&self.syntax, SyntaxKind::FOR_KW)
16524    }
16525    #[inline]
16526    pub fn from_token(&self) -> Option<SyntaxToken> {
16527        support::token(&self.syntax, SyntaxKind::FROM_KW)
16528    }
16529    #[inline]
16530    pub fn similar_token(&self) -> Option<SyntaxToken> {
16531        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16532    }
16533    #[inline]
16534    pub fn substring_token(&self) -> Option<SyntaxToken> {
16535        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
16536    }
16537}
16538
16539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16540pub struct SupportFuncOption {
16541    pub(crate) syntax: SyntaxNode,
16542}
16543impl SupportFuncOption {
16544    #[inline]
16545    pub fn support_token(&self) -> Option<SyntaxToken> {
16546        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
16547    }
16548}
16549
16550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16551pub struct Table {
16552    pub(crate) syntax: SyntaxNode,
16553}
16554impl Table {
16555    #[inline]
16556    pub fn relation_name(&self) -> Option<RelationName> {
16557        support::child(&self.syntax)
16558    }
16559    #[inline]
16560    pub fn with_clause(&self) -> Option<WithClause> {
16561        support::child(&self.syntax)
16562    }
16563    #[inline]
16564    pub fn table_token(&self) -> Option<SyntaxToken> {
16565        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16566    }
16567}
16568
16569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16570pub struct TableAndColumns {
16571    pub(crate) syntax: SyntaxNode,
16572}
16573impl TableAndColumns {
16574    #[inline]
16575    pub fn column_list(&self) -> Option<ColumnList> {
16576        support::child(&self.syntax)
16577    }
16578    #[inline]
16579    pub fn relation_name(&self) -> Option<RelationName> {
16580        support::child(&self.syntax)
16581    }
16582}
16583
16584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16585pub struct TableAndColumnsList {
16586    pub(crate) syntax: SyntaxNode,
16587}
16588impl TableAndColumnsList {
16589    #[inline]
16590    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
16591        support::children(&self.syntax)
16592    }
16593}
16594
16595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16596pub struct TableArgList {
16597    pub(crate) syntax: SyntaxNode,
16598}
16599impl TableArgList {
16600    #[inline]
16601    pub fn args(&self) -> AstChildren<TableArg> {
16602        support::children(&self.syntax)
16603    }
16604    #[inline]
16605    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16606        support::token(&self.syntax, SyntaxKind::L_PAREN)
16607    }
16608    #[inline]
16609    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16610        support::token(&self.syntax, SyntaxKind::R_PAREN)
16611    }
16612}
16613
16614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16615pub struct TableList {
16616    pub(crate) syntax: SyntaxNode,
16617}
16618impl TableList {
16619    #[inline]
16620    pub fn relation_names(&self) -> AstChildren<RelationName> {
16621        support::children(&self.syntax)
16622    }
16623}
16624
16625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16626pub struct TablesampleClause {
16627    pub(crate) syntax: SyntaxNode,
16628}
16629impl TablesampleClause {
16630    #[inline]
16631    pub fn call_expr(&self) -> Option<CallExpr> {
16632        support::child(&self.syntax)
16633    }
16634    #[inline]
16635    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
16636        support::child(&self.syntax)
16637    }
16638    #[inline]
16639    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
16640        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
16641    }
16642}
16643
16644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16645pub struct Tablespace {
16646    pub(crate) syntax: SyntaxNode,
16647}
16648impl Tablespace {
16649    #[inline]
16650    pub fn name_ref(&self) -> Option<NameRef> {
16651        support::child(&self.syntax)
16652    }
16653    #[inline]
16654    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16655        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16656    }
16657}
16658
16659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16660pub struct Target {
16661    pub(crate) syntax: SyntaxNode,
16662}
16663impl Target {
16664    #[inline]
16665    pub fn as_name(&self) -> Option<AsName> {
16666        support::child(&self.syntax)
16667    }
16668    #[inline]
16669    pub fn expr(&self) -> Option<Expr> {
16670        support::child(&self.syntax)
16671    }
16672    #[inline]
16673    pub fn star_token(&self) -> Option<SyntaxToken> {
16674        support::token(&self.syntax, SyntaxKind::STAR)
16675    }
16676}
16677
16678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16679pub struct TargetList {
16680    pub(crate) syntax: SyntaxNode,
16681}
16682impl TargetList {
16683    #[inline]
16684    pub fn targets(&self) -> AstChildren<Target> {
16685        support::children(&self.syntax)
16686    }
16687}
16688
16689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16690pub struct Temp {
16691    pub(crate) syntax: SyntaxNode,
16692}
16693impl Temp {
16694    #[inline]
16695    pub fn global_token(&self) -> Option<SyntaxToken> {
16696        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
16697    }
16698    #[inline]
16699    pub fn local_token(&self) -> Option<SyntaxToken> {
16700        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16701    }
16702    #[inline]
16703    pub fn temp_token(&self) -> Option<SyntaxToken> {
16704        support::token(&self.syntax, SyntaxKind::TEMP_KW)
16705    }
16706    #[inline]
16707    pub fn temporary_token(&self) -> Option<SyntaxToken> {
16708        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
16709    }
16710}
16711
16712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16713pub struct TimeType {
16714    pub(crate) syntax: SyntaxNode,
16715}
16716impl TimeType {
16717    #[inline]
16718    pub fn literal(&self) -> Option<Literal> {
16719        support::child(&self.syntax)
16720    }
16721    #[inline]
16722    pub fn timezone(&self) -> Option<Timezone> {
16723        support::child(&self.syntax)
16724    }
16725    #[inline]
16726    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16727        support::token(&self.syntax, SyntaxKind::L_PAREN)
16728    }
16729    #[inline]
16730    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16731        support::token(&self.syntax, SyntaxKind::R_PAREN)
16732    }
16733    #[inline]
16734    pub fn setof_token(&self) -> Option<SyntaxToken> {
16735        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16736    }
16737    #[inline]
16738    pub fn time_token(&self) -> Option<SyntaxToken> {
16739        support::token(&self.syntax, SyntaxKind::TIME_KW)
16740    }
16741    #[inline]
16742    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
16743        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
16744    }
16745}
16746
16747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16748pub struct Timing {
16749    pub(crate) syntax: SyntaxNode,
16750}
16751impl Timing {
16752    #[inline]
16753    pub fn after_token(&self) -> Option<SyntaxToken> {
16754        support::token(&self.syntax, SyntaxKind::AFTER_KW)
16755    }
16756    #[inline]
16757    pub fn before_token(&self) -> Option<SyntaxToken> {
16758        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
16759    }
16760    #[inline]
16761    pub fn instead_token(&self) -> Option<SyntaxToken> {
16762        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
16763    }
16764    #[inline]
16765    pub fn of_token(&self) -> Option<SyntaxToken> {
16766        support::token(&self.syntax, SyntaxKind::OF_KW)
16767    }
16768}
16769
16770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16771pub struct TransactionModeList {
16772    pub(crate) syntax: SyntaxNode,
16773}
16774impl TransactionModeList {
16775    #[inline]
16776    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
16777        support::children(&self.syntax)
16778    }
16779}
16780
16781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16782pub struct TransformFromFunc {
16783    pub(crate) syntax: SyntaxNode,
16784}
16785impl TransformFromFunc {
16786    #[inline]
16787    pub fn function_sig(&self) -> Option<FunctionSig> {
16788        support::child(&self.syntax)
16789    }
16790    #[inline]
16791    pub fn from_token(&self) -> Option<SyntaxToken> {
16792        support::token(&self.syntax, SyntaxKind::FROM_KW)
16793    }
16794    #[inline]
16795    pub fn function_token(&self) -> Option<SyntaxToken> {
16796        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16797    }
16798    #[inline]
16799    pub fn sql_token(&self) -> Option<SyntaxToken> {
16800        support::token(&self.syntax, SyntaxKind::SQL_KW)
16801    }
16802    #[inline]
16803    pub fn with_token(&self) -> Option<SyntaxToken> {
16804        support::token(&self.syntax, SyntaxKind::WITH_KW)
16805    }
16806}
16807
16808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16809pub struct TransformFuncOption {
16810    pub(crate) syntax: SyntaxNode,
16811}
16812impl TransformFuncOption {
16813    #[inline]
16814    pub fn transform_token(&self) -> Option<SyntaxToken> {
16815        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
16816    }
16817}
16818
16819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16820pub struct TransformToFunc {
16821    pub(crate) syntax: SyntaxNode,
16822}
16823impl TransformToFunc {
16824    #[inline]
16825    pub fn function_sig(&self) -> Option<FunctionSig> {
16826        support::child(&self.syntax)
16827    }
16828    #[inline]
16829    pub fn function_token(&self) -> Option<SyntaxToken> {
16830        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16831    }
16832    #[inline]
16833    pub fn sql_token(&self) -> Option<SyntaxToken> {
16834        support::token(&self.syntax, SyntaxKind::SQL_KW)
16835    }
16836    #[inline]
16837    pub fn to_token(&self) -> Option<SyntaxToken> {
16838        support::token(&self.syntax, SyntaxKind::TO_KW)
16839    }
16840    #[inline]
16841    pub fn with_token(&self) -> Option<SyntaxToken> {
16842        support::token(&self.syntax, SyntaxKind::WITH_KW)
16843    }
16844}
16845
16846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16847pub struct TriggerEvent {
16848    pub(crate) syntax: SyntaxNode,
16849}
16850impl TriggerEvent {
16851    #[inline]
16852    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
16853        support::child(&self.syntax)
16854    }
16855    #[inline]
16856    pub fn delete_token(&self) -> Option<SyntaxToken> {
16857        support::token(&self.syntax, SyntaxKind::DELETE_KW)
16858    }
16859    #[inline]
16860    pub fn insert_token(&self) -> Option<SyntaxToken> {
16861        support::token(&self.syntax, SyntaxKind::INSERT_KW)
16862    }
16863    #[inline]
16864    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16865        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16866    }
16867}
16868
16869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16870pub struct TriggerEventList {
16871    pub(crate) syntax: SyntaxNode,
16872}
16873impl TriggerEventList {
16874    #[inline]
16875    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
16876        support::children(&self.syntax)
16877    }
16878}
16879
16880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16881pub struct TriggerEventUpdate {
16882    pub(crate) syntax: SyntaxNode,
16883}
16884impl TriggerEventUpdate {
16885    #[inline]
16886    pub fn name_refs(&self) -> AstChildren<NameRef> {
16887        support::children(&self.syntax)
16888    }
16889    #[inline]
16890    pub fn of_token(&self) -> Option<SyntaxToken> {
16891        support::token(&self.syntax, SyntaxKind::OF_KW)
16892    }
16893    #[inline]
16894    pub fn update_token(&self) -> Option<SyntaxToken> {
16895        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
16896    }
16897}
16898
16899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16900pub struct TrimFn {
16901    pub(crate) syntax: SyntaxNode,
16902}
16903impl TrimFn {
16904    #[inline]
16905    pub fn expr(&self) -> Option<Expr> {
16906        support::child(&self.syntax)
16907    }
16908    #[inline]
16909    pub fn exprs(&self) -> AstChildren<Expr> {
16910        support::children(&self.syntax)
16911    }
16912    #[inline]
16913    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16914        support::token(&self.syntax, SyntaxKind::L_PAREN)
16915    }
16916    #[inline]
16917    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16918        support::token(&self.syntax, SyntaxKind::R_PAREN)
16919    }
16920    #[inline]
16921    pub fn both_token(&self) -> Option<SyntaxToken> {
16922        support::token(&self.syntax, SyntaxKind::BOTH_KW)
16923    }
16924    #[inline]
16925    pub fn from_token(&self) -> Option<SyntaxToken> {
16926        support::token(&self.syntax, SyntaxKind::FROM_KW)
16927    }
16928    #[inline]
16929    pub fn leading_token(&self) -> Option<SyntaxToken> {
16930        support::token(&self.syntax, SyntaxKind::LEADING_KW)
16931    }
16932    #[inline]
16933    pub fn trailing_token(&self) -> Option<SyntaxToken> {
16934        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
16935    }
16936    #[inline]
16937    pub fn trim_token(&self) -> Option<SyntaxToken> {
16938        support::token(&self.syntax, SyntaxKind::TRIM_KW)
16939    }
16940}
16941
16942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16943pub struct Truncate {
16944    pub(crate) syntax: SyntaxNode,
16945}
16946impl Truncate {
16947    #[inline]
16948    pub fn table_list(&self) -> Option<TableList> {
16949        support::child(&self.syntax)
16950    }
16951    #[inline]
16952    pub fn cascade_token(&self) -> Option<SyntaxToken> {
16953        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
16954    }
16955    #[inline]
16956    pub fn continue_token(&self) -> Option<SyntaxToken> {
16957        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
16958    }
16959    #[inline]
16960    pub fn identity_token(&self) -> Option<SyntaxToken> {
16961        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
16962    }
16963    #[inline]
16964    pub fn restart_token(&self) -> Option<SyntaxToken> {
16965        support::token(&self.syntax, SyntaxKind::RESTART_KW)
16966    }
16967    #[inline]
16968    pub fn restrict_token(&self) -> Option<SyntaxToken> {
16969        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
16970    }
16971    #[inline]
16972    pub fn table_token(&self) -> Option<SyntaxToken> {
16973        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16974    }
16975    #[inline]
16976    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16977        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16978    }
16979}
16980
16981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16982pub struct TupleExpr {
16983    pub(crate) syntax: SyntaxNode,
16984}
16985impl TupleExpr {
16986    #[inline]
16987    pub fn exprs(&self) -> AstChildren<Expr> {
16988        support::children(&self.syntax)
16989    }
16990    #[inline]
16991    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16992        support::token(&self.syntax, SyntaxKind::L_PAREN)
16993    }
16994    #[inline]
16995    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16996        support::token(&self.syntax, SyntaxKind::R_PAREN)
16997    }
16998}
16999
17000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17001pub struct UnicodeNormalForm {
17002    pub(crate) syntax: SyntaxNode,
17003}
17004impl UnicodeNormalForm {
17005    #[inline]
17006    pub fn nfc_token(&self) -> Option<SyntaxToken> {
17007        support::token(&self.syntax, SyntaxKind::NFC_KW)
17008    }
17009    #[inline]
17010    pub fn nfd_token(&self) -> Option<SyntaxToken> {
17011        support::token(&self.syntax, SyntaxKind::NFD_KW)
17012    }
17013    #[inline]
17014    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
17015        support::token(&self.syntax, SyntaxKind::NFKC_KW)
17016    }
17017    #[inline]
17018    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17019        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17020    }
17021}
17022
17023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17024pub struct UniqueConstraint {
17025    pub(crate) syntax: SyntaxNode,
17026}
17027impl UniqueConstraint {
17028    #[inline]
17029    pub fn column_list(&self) -> Option<ColumnList> {
17030        support::child(&self.syntax)
17031    }
17032    #[inline]
17033    pub fn constraint_name(&self) -> Option<ConstraintName> {
17034        support::child(&self.syntax)
17035    }
17036    #[inline]
17037    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17038        support::child(&self.syntax)
17039    }
17040    #[inline]
17041    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17042        support::child(&self.syntax)
17043    }
17044    #[inline]
17045    pub fn using_index(&self) -> Option<UsingIndex> {
17046        support::child(&self.syntax)
17047    }
17048    #[inline]
17049    pub fn unique_token(&self) -> Option<SyntaxToken> {
17050        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17051    }
17052}
17053
17054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17055pub struct Unlisten {
17056    pub(crate) syntax: SyntaxNode,
17057}
17058impl Unlisten {
17059    #[inline]
17060    pub fn name_ref(&self) -> Option<NameRef> {
17061        support::child(&self.syntax)
17062    }
17063    #[inline]
17064    pub fn star_token(&self) -> Option<SyntaxToken> {
17065        support::token(&self.syntax, SyntaxKind::STAR)
17066    }
17067    #[inline]
17068    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17069        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17070    }
17071}
17072
17073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17074pub struct Unlogged {
17075    pub(crate) syntax: SyntaxNode,
17076}
17077impl Unlogged {
17078    #[inline]
17079    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17080        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17081    }
17082}
17083
17084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17085pub struct Update {
17086    pub(crate) syntax: SyntaxNode,
17087}
17088impl Update {
17089    #[inline]
17090    pub fn alias(&self) -> Option<Alias> {
17091        support::child(&self.syntax)
17092    }
17093    #[inline]
17094    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
17095        support::child(&self.syntax)
17096    }
17097    #[inline]
17098    pub fn from_clause(&self) -> Option<FromClause> {
17099        support::child(&self.syntax)
17100    }
17101    #[inline]
17102    pub fn relation_name(&self) -> Option<RelationName> {
17103        support::child(&self.syntax)
17104    }
17105    #[inline]
17106    pub fn returning_clause(&self) -> Option<ReturningClause> {
17107        support::child(&self.syntax)
17108    }
17109    #[inline]
17110    pub fn set_clause(&self) -> Option<SetClause> {
17111        support::child(&self.syntax)
17112    }
17113    #[inline]
17114    pub fn where_clause(&self) -> Option<WhereClause> {
17115        support::child(&self.syntax)
17116    }
17117    #[inline]
17118    pub fn with_clause(&self) -> Option<WithClause> {
17119        support::child(&self.syntax)
17120    }
17121    #[inline]
17122    pub fn update_token(&self) -> Option<SyntaxToken> {
17123        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17124    }
17125}
17126
17127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17128pub struct UsingClause {
17129    pub(crate) syntax: SyntaxNode,
17130}
17131impl UsingClause {
17132    #[inline]
17133    pub fn from_items(&self) -> AstChildren<FromItem> {
17134        support::children(&self.syntax)
17135    }
17136    #[inline]
17137    pub fn using_token(&self) -> Option<SyntaxToken> {
17138        support::token(&self.syntax, SyntaxKind::USING_KW)
17139    }
17140}
17141
17142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17143pub struct UsingExprClause {
17144    pub(crate) syntax: SyntaxNode,
17145}
17146impl UsingExprClause {
17147    #[inline]
17148    pub fn expr(&self) -> Option<Expr> {
17149        support::child(&self.syntax)
17150    }
17151    #[inline]
17152    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17153        support::token(&self.syntax, SyntaxKind::L_PAREN)
17154    }
17155    #[inline]
17156    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17157        support::token(&self.syntax, SyntaxKind::R_PAREN)
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 UsingIndex {
17167    pub(crate) syntax: SyntaxNode,
17168}
17169impl UsingIndex {
17170    #[inline]
17171    pub fn name_ref(&self) -> Option<NameRef> {
17172        support::child(&self.syntax)
17173    }
17174    #[inline]
17175    pub fn index_token(&self) -> Option<SyntaxToken> {
17176        support::token(&self.syntax, SyntaxKind::INDEX_KW)
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 UsingMethod {
17186    pub(crate) syntax: SyntaxNode,
17187}
17188impl UsingMethod {
17189    #[inline]
17190    pub fn name_ref(&self) -> Option<NameRef> {
17191        support::child(&self.syntax)
17192    }
17193    #[inline]
17194    pub fn using_token(&self) -> Option<SyntaxToken> {
17195        support::token(&self.syntax, SyntaxKind::USING_KW)
17196    }
17197}
17198
17199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17200pub struct UsingOnClause {
17201    pub(crate) syntax: SyntaxNode,
17202}
17203impl UsingOnClause {
17204    #[inline]
17205    pub fn from_item(&self) -> Option<FromItem> {
17206        support::child(&self.syntax)
17207    }
17208    #[inline]
17209    pub fn on_clause(&self) -> Option<OnClause> {
17210        support::child(&self.syntax)
17211    }
17212    #[inline]
17213    pub fn using_token(&self) -> Option<SyntaxToken> {
17214        support::token(&self.syntax, SyntaxKind::USING_KW)
17215    }
17216}
17217
17218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17219pub struct Vacuum {
17220    pub(crate) syntax: SyntaxNode,
17221}
17222impl Vacuum {
17223    #[inline]
17224    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17225        support::child(&self.syntax)
17226    }
17227    #[inline]
17228    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
17229        support::child(&self.syntax)
17230    }
17231    #[inline]
17232    pub fn analyse_token(&self) -> Option<SyntaxToken> {
17233        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
17234    }
17235    #[inline]
17236    pub fn analyze_token(&self) -> Option<SyntaxToken> {
17237        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
17238    }
17239    #[inline]
17240    pub fn freeze_token(&self) -> Option<SyntaxToken> {
17241        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
17242    }
17243    #[inline]
17244    pub fn full_token(&self) -> Option<SyntaxToken> {
17245        support::token(&self.syntax, SyntaxKind::FULL_KW)
17246    }
17247    #[inline]
17248    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
17249        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
17250    }
17251    #[inline]
17252    pub fn verbose_token(&self) -> Option<SyntaxToken> {
17253        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
17254    }
17255}
17256
17257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17258pub struct VacuumOption {
17259    pub(crate) syntax: SyntaxNode,
17260}
17261impl VacuumOption {
17262    #[inline]
17263    pub fn literal(&self) -> Option<Literal> {
17264        support::child(&self.syntax)
17265    }
17266}
17267
17268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17269pub struct VacuumOptionList {
17270    pub(crate) syntax: SyntaxNode,
17271}
17272impl VacuumOptionList {
17273    #[inline]
17274    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
17275        support::children(&self.syntax)
17276    }
17277    #[inline]
17278    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17279        support::token(&self.syntax, SyntaxKind::L_PAREN)
17280    }
17281    #[inline]
17282    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17283        support::token(&self.syntax, SyntaxKind::R_PAREN)
17284    }
17285}
17286
17287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17288pub struct ValidateConstraint {
17289    pub(crate) syntax: SyntaxNode,
17290}
17291impl ValidateConstraint {
17292    #[inline]
17293    pub fn name_ref(&self) -> Option<NameRef> {
17294        support::child(&self.syntax)
17295    }
17296    #[inline]
17297    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17298        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17299    }
17300    #[inline]
17301    pub fn validate_token(&self) -> Option<SyntaxToken> {
17302        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
17303    }
17304}
17305
17306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17307pub struct Values {
17308    pub(crate) syntax: SyntaxNode,
17309}
17310impl Values {
17311    #[inline]
17312    pub fn row_list(&self) -> Option<RowList> {
17313        support::child(&self.syntax)
17314    }
17315    #[inline]
17316    pub fn with_clause(&self) -> Option<WithClause> {
17317        support::child(&self.syntax)
17318    }
17319    #[inline]
17320    pub fn values_token(&self) -> Option<SyntaxToken> {
17321        support::token(&self.syntax, SyntaxKind::VALUES_KW)
17322    }
17323}
17324
17325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17326pub struct Variant {
17327    pub(crate) syntax: SyntaxNode,
17328}
17329impl Variant {
17330    #[inline]
17331    pub fn literal(&self) -> Option<Literal> {
17332        support::child(&self.syntax)
17333    }
17334}
17335
17336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17337pub struct VariantList {
17338    pub(crate) syntax: SyntaxNode,
17339}
17340impl VariantList {
17341    #[inline]
17342    pub fn variants(&self) -> AstChildren<Variant> {
17343        support::children(&self.syntax)
17344    }
17345    #[inline]
17346    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17347        support::token(&self.syntax, SyntaxKind::L_PAREN)
17348    }
17349    #[inline]
17350    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17351        support::token(&self.syntax, SyntaxKind::R_PAREN)
17352    }
17353}
17354
17355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17356pub struct VertexPattern {
17357    pub(crate) syntax: SyntaxNode,
17358}
17359impl VertexPattern {
17360    #[inline]
17361    pub fn is_label(&self) -> Option<IsLabel> {
17362        support::child(&self.syntax)
17363    }
17364    #[inline]
17365    pub fn name(&self) -> Option<Name> {
17366        support::child(&self.syntax)
17367    }
17368    #[inline]
17369    pub fn where_clause(&self) -> Option<WhereClause> {
17370        support::child(&self.syntax)
17371    }
17372    #[inline]
17373    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17374        support::token(&self.syntax, SyntaxKind::L_PAREN)
17375    }
17376    #[inline]
17377    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17378        support::token(&self.syntax, SyntaxKind::R_PAREN)
17379    }
17380}
17381
17382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17383pub struct VertexTableDef {
17384    pub(crate) syntax: SyntaxNode,
17385}
17386impl VertexTableDef {
17387    #[inline]
17388    pub fn column_list(&self) -> Option<ColumnList> {
17389        support::child(&self.syntax)
17390    }
17391    #[inline]
17392    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
17393        support::child(&self.syntax)
17394    }
17395    #[inline]
17396    pub fn name(&self) -> Option<Name> {
17397        support::child(&self.syntax)
17398    }
17399    #[inline]
17400    pub fn path(&self) -> Option<Path> {
17401        support::child(&self.syntax)
17402    }
17403    #[inline]
17404    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17405        support::token(&self.syntax, SyntaxKind::L_PAREN)
17406    }
17407    #[inline]
17408    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17409        support::token(&self.syntax, SyntaxKind::R_PAREN)
17410    }
17411    #[inline]
17412    pub fn as_token(&self) -> Option<SyntaxToken> {
17413        support::token(&self.syntax, SyntaxKind::AS_KW)
17414    }
17415    #[inline]
17416    pub fn key_token(&self) -> Option<SyntaxToken> {
17417        support::token(&self.syntax, SyntaxKind::KEY_KW)
17418    }
17419}
17420
17421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17422pub struct VertexTables {
17423    pub(crate) syntax: SyntaxNode,
17424}
17425impl VertexTables {
17426    #[inline]
17427    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
17428        support::children(&self.syntax)
17429    }
17430    #[inline]
17431    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17432        support::token(&self.syntax, SyntaxKind::L_PAREN)
17433    }
17434    #[inline]
17435    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17436        support::token(&self.syntax, SyntaxKind::R_PAREN)
17437    }
17438    #[inline]
17439    pub fn node_token(&self) -> Option<SyntaxToken> {
17440        support::token(&self.syntax, SyntaxKind::NODE_KW)
17441    }
17442    #[inline]
17443    pub fn tables_token(&self) -> Option<SyntaxToken> {
17444        support::token(&self.syntax, SyntaxKind::TABLES_KW)
17445    }
17446    #[inline]
17447    pub fn vertex_token(&self) -> Option<SyntaxToken> {
17448        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
17449    }
17450}
17451
17452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17453pub struct VolatilityFuncOption {
17454    pub(crate) syntax: SyntaxNode,
17455}
17456impl VolatilityFuncOption {
17457    #[inline]
17458    pub fn immutable_token(&self) -> Option<SyntaxToken> {
17459        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
17460    }
17461    #[inline]
17462    pub fn stable_token(&self) -> Option<SyntaxToken> {
17463        support::token(&self.syntax, SyntaxKind::STABLE_KW)
17464    }
17465    #[inline]
17466    pub fn volatile_token(&self) -> Option<SyntaxToken> {
17467        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
17468    }
17469}
17470
17471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17472pub struct WhenClause {
17473    pub(crate) syntax: SyntaxNode,
17474}
17475impl WhenClause {
17476    #[inline]
17477    pub fn then_token(&self) -> Option<SyntaxToken> {
17478        support::token(&self.syntax, SyntaxKind::THEN_KW)
17479    }
17480    #[inline]
17481    pub fn when_token(&self) -> Option<SyntaxToken> {
17482        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17483    }
17484}
17485
17486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17487pub struct WhenClauseList {
17488    pub(crate) syntax: SyntaxNode,
17489}
17490impl WhenClauseList {
17491    #[inline]
17492    pub fn when_clause(&self) -> Option<WhenClause> {
17493        support::child(&self.syntax)
17494    }
17495    #[inline]
17496    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
17497        support::children(&self.syntax)
17498    }
17499}
17500
17501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17502pub struct WhenCondition {
17503    pub(crate) syntax: SyntaxNode,
17504}
17505impl WhenCondition {
17506    #[inline]
17507    pub fn expr(&self) -> Option<Expr> {
17508        support::child(&self.syntax)
17509    }
17510    #[inline]
17511    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17512        support::token(&self.syntax, SyntaxKind::L_PAREN)
17513    }
17514    #[inline]
17515    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17516        support::token(&self.syntax, SyntaxKind::R_PAREN)
17517    }
17518    #[inline]
17519    pub fn when_token(&self) -> Option<SyntaxToken> {
17520        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17521    }
17522}
17523
17524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17525pub struct WhereClause {
17526    pub(crate) syntax: SyntaxNode,
17527}
17528impl WhereClause {
17529    #[inline]
17530    pub fn expr(&self) -> Option<Expr> {
17531        support::child(&self.syntax)
17532    }
17533    #[inline]
17534    pub fn where_token(&self) -> Option<SyntaxToken> {
17535        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17536    }
17537}
17538
17539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17540pub struct WhereConditionClause {
17541    pub(crate) syntax: SyntaxNode,
17542}
17543impl WhereConditionClause {
17544    #[inline]
17545    pub fn expr(&self) -> Option<Expr> {
17546        support::child(&self.syntax)
17547    }
17548    #[inline]
17549    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17550        support::token(&self.syntax, SyntaxKind::L_PAREN)
17551    }
17552    #[inline]
17553    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17554        support::token(&self.syntax, SyntaxKind::R_PAREN)
17555    }
17556    #[inline]
17557    pub fn where_token(&self) -> Option<SyntaxToken> {
17558        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17559    }
17560}
17561
17562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17563pub struct WhereCurrentOf {
17564    pub(crate) syntax: SyntaxNode,
17565}
17566impl WhereCurrentOf {
17567    #[inline]
17568    pub fn name_ref(&self) -> Option<NameRef> {
17569        support::child(&self.syntax)
17570    }
17571    #[inline]
17572    pub fn current_token(&self) -> Option<SyntaxToken> {
17573        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
17574    }
17575    #[inline]
17576    pub fn of_token(&self) -> Option<SyntaxToken> {
17577        support::token(&self.syntax, SyntaxKind::OF_KW)
17578    }
17579    #[inline]
17580    pub fn where_token(&self) -> Option<SyntaxToken> {
17581        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17582    }
17583}
17584
17585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17586pub struct WindowClause {
17587    pub(crate) syntax: SyntaxNode,
17588}
17589impl WindowClause {
17590    #[inline]
17591    pub fn window_defs(&self) -> AstChildren<WindowDef> {
17592        support::children(&self.syntax)
17593    }
17594    #[inline]
17595    pub fn window_token(&self) -> Option<SyntaxToken> {
17596        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17597    }
17598}
17599
17600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17601pub struct WindowDef {
17602    pub(crate) syntax: SyntaxNode,
17603}
17604impl WindowDef {
17605    #[inline]
17606    pub fn name(&self) -> Option<Name> {
17607        support::child(&self.syntax)
17608    }
17609    #[inline]
17610    pub fn window_spec(&self) -> Option<WindowSpec> {
17611        support::child(&self.syntax)
17612    }
17613    #[inline]
17614    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17615        support::token(&self.syntax, SyntaxKind::L_PAREN)
17616    }
17617    #[inline]
17618    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17619        support::token(&self.syntax, SyntaxKind::R_PAREN)
17620    }
17621    #[inline]
17622    pub fn as_token(&self) -> Option<SyntaxToken> {
17623        support::token(&self.syntax, SyntaxKind::AS_KW)
17624    }
17625}
17626
17627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17628pub struct WindowFuncOption {
17629    pub(crate) syntax: SyntaxNode,
17630}
17631impl WindowFuncOption {
17632    #[inline]
17633    pub fn window_token(&self) -> Option<SyntaxToken> {
17634        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17635    }
17636}
17637
17638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17639pub struct WindowSpec {
17640    pub(crate) syntax: SyntaxNode,
17641}
17642impl WindowSpec {
17643    #[inline]
17644    pub fn exprs(&self) -> AstChildren<Expr> {
17645        support::children(&self.syntax)
17646    }
17647    #[inline]
17648    pub fn frame_clause(&self) -> Option<FrameClause> {
17649        support::child(&self.syntax)
17650    }
17651    #[inline]
17652    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17653        support::child(&self.syntax)
17654    }
17655    #[inline]
17656    pub fn by_token(&self) -> Option<SyntaxToken> {
17657        support::token(&self.syntax, SyntaxKind::BY_KW)
17658    }
17659    #[inline]
17660    pub fn ident_token(&self) -> Option<SyntaxToken> {
17661        support::token(&self.syntax, SyntaxKind::IDENT)
17662    }
17663    #[inline]
17664    pub fn partition_token(&self) -> Option<SyntaxToken> {
17665        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17666    }
17667}
17668
17669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17670pub struct WithCheckExprClause {
17671    pub(crate) syntax: SyntaxNode,
17672}
17673impl WithCheckExprClause {
17674    #[inline]
17675    pub fn expr(&self) -> Option<Expr> {
17676        support::child(&self.syntax)
17677    }
17678    #[inline]
17679    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17680        support::token(&self.syntax, SyntaxKind::L_PAREN)
17681    }
17682    #[inline]
17683    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17684        support::token(&self.syntax, SyntaxKind::R_PAREN)
17685    }
17686    #[inline]
17687    pub fn check_token(&self) -> Option<SyntaxToken> {
17688        support::token(&self.syntax, SyntaxKind::CHECK_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 WithClause {
17698    pub(crate) syntax: SyntaxNode,
17699}
17700impl WithClause {
17701    #[inline]
17702    pub fn with_tables(&self) -> AstChildren<WithTable> {
17703        support::children(&self.syntax)
17704    }
17705    #[inline]
17706    pub fn recursive_token(&self) -> Option<SyntaxToken> {
17707        support::token(&self.syntax, SyntaxKind::RECURSIVE_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 WithData {
17717    pub(crate) syntax: SyntaxNode,
17718}
17719impl WithData {
17720    #[inline]
17721    pub fn data_token(&self) -> Option<SyntaxToken> {
17722        support::token(&self.syntax, SyntaxKind::DATA_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 WithNoData {
17732    pub(crate) syntax: SyntaxNode,
17733}
17734impl WithNoData {
17735    #[inline]
17736    pub fn data_token(&self) -> Option<SyntaxToken> {
17737        support::token(&self.syntax, SyntaxKind::DATA_KW)
17738    }
17739    #[inline]
17740    pub fn no_token(&self) -> Option<SyntaxToken> {
17741        support::token(&self.syntax, SyntaxKind::NO_KW)
17742    }
17743    #[inline]
17744    pub fn with_token(&self) -> Option<SyntaxToken> {
17745        support::token(&self.syntax, SyntaxKind::WITH_KW)
17746    }
17747}
17748
17749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17750pub struct WithOptions {
17751    pub(crate) syntax: SyntaxNode,
17752}
17753impl WithOptions {
17754    #[inline]
17755    pub fn options_token(&self) -> Option<SyntaxToken> {
17756        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
17757    }
17758    #[inline]
17759    pub fn with_token(&self) -> Option<SyntaxToken> {
17760        support::token(&self.syntax, SyntaxKind::WITH_KW)
17761    }
17762}
17763
17764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17765pub struct WithParams {
17766    pub(crate) syntax: SyntaxNode,
17767}
17768impl WithParams {
17769    #[inline]
17770    pub fn attribute_list(&self) -> Option<AttributeList> {
17771        support::child(&self.syntax)
17772    }
17773    #[inline]
17774    pub fn with_token(&self) -> Option<SyntaxToken> {
17775        support::token(&self.syntax, SyntaxKind::WITH_KW)
17776    }
17777}
17778
17779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17780pub struct WithTable {
17781    pub(crate) syntax: SyntaxNode,
17782}
17783impl WithTable {
17784    #[inline]
17785    pub fn column_list(&self) -> Option<ColumnList> {
17786        support::child(&self.syntax)
17787    }
17788    #[inline]
17789    pub fn materialized(&self) -> Option<Materialized> {
17790        support::child(&self.syntax)
17791    }
17792    #[inline]
17793    pub fn name(&self) -> Option<Name> {
17794        support::child(&self.syntax)
17795    }
17796    #[inline]
17797    pub fn not_materialized(&self) -> Option<NotMaterialized> {
17798        support::child(&self.syntax)
17799    }
17800    #[inline]
17801    pub fn query(&self) -> Option<WithQuery> {
17802        support::child(&self.syntax)
17803    }
17804    #[inline]
17805    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17806        support::token(&self.syntax, SyntaxKind::L_PAREN)
17807    }
17808    #[inline]
17809    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17810        support::token(&self.syntax, SyntaxKind::R_PAREN)
17811    }
17812    #[inline]
17813    pub fn as_token(&self) -> Option<SyntaxToken> {
17814        support::token(&self.syntax, SyntaxKind::AS_KW)
17815    }
17816}
17817
17818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17819pub struct WithTimezone {
17820    pub(crate) syntax: SyntaxNode,
17821}
17822impl WithTimezone {
17823    #[inline]
17824    pub fn time_token(&self) -> Option<SyntaxToken> {
17825        support::token(&self.syntax, SyntaxKind::TIME_KW)
17826    }
17827    #[inline]
17828    pub fn with_token(&self) -> Option<SyntaxToken> {
17829        support::token(&self.syntax, SyntaxKind::WITH_KW)
17830    }
17831    #[inline]
17832    pub fn zone_token(&self) -> Option<SyntaxToken> {
17833        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17834    }
17835}
17836
17837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17838pub struct WithinClause {
17839    pub(crate) syntax: SyntaxNode,
17840}
17841impl WithinClause {
17842    #[inline]
17843    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17844        support::child(&self.syntax)
17845    }
17846    #[inline]
17847    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17848        support::token(&self.syntax, SyntaxKind::L_PAREN)
17849    }
17850    #[inline]
17851    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17852        support::token(&self.syntax, SyntaxKind::R_PAREN)
17853    }
17854    #[inline]
17855    pub fn group_token(&self) -> Option<SyntaxToken> {
17856        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17857    }
17858    #[inline]
17859    pub fn within_token(&self) -> Option<SyntaxToken> {
17860        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
17861    }
17862}
17863
17864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17865pub struct WithoutOids {
17866    pub(crate) syntax: SyntaxNode,
17867}
17868impl WithoutOids {
17869    #[inline]
17870    pub fn oids_token(&self) -> Option<SyntaxToken> {
17871        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17872    }
17873    #[inline]
17874    pub fn without_token(&self) -> Option<SyntaxToken> {
17875        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17876    }
17877}
17878
17879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17880pub struct WithoutTimezone {
17881    pub(crate) syntax: SyntaxNode,
17882}
17883impl WithoutTimezone {
17884    #[inline]
17885    pub fn time_token(&self) -> Option<SyntaxToken> {
17886        support::token(&self.syntax, SyntaxKind::TIME_KW)
17887    }
17888    #[inline]
17889    pub fn without_token(&self) -> Option<SyntaxToken> {
17890        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17891    }
17892    #[inline]
17893    pub fn zone_token(&self) -> Option<SyntaxToken> {
17894        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17895    }
17896}
17897
17898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17899pub struct XmlColumnOption {
17900    pub(crate) syntax: SyntaxNode,
17901}
17902impl XmlColumnOption {
17903    #[inline]
17904    pub fn expr(&self) -> Option<Expr> {
17905        support::child(&self.syntax)
17906    }
17907    #[inline]
17908    pub fn default_token(&self) -> Option<SyntaxToken> {
17909        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17910    }
17911    #[inline]
17912    pub fn ident_token(&self) -> Option<SyntaxToken> {
17913        support::token(&self.syntax, SyntaxKind::IDENT)
17914    }
17915    #[inline]
17916    pub fn not_token(&self) -> Option<SyntaxToken> {
17917        support::token(&self.syntax, SyntaxKind::NOT_KW)
17918    }
17919    #[inline]
17920    pub fn null_token(&self) -> Option<SyntaxToken> {
17921        support::token(&self.syntax, SyntaxKind::NULL_KW)
17922    }
17923    #[inline]
17924    pub fn path_token(&self) -> Option<SyntaxToken> {
17925        support::token(&self.syntax, SyntaxKind::PATH_KW)
17926    }
17927}
17928
17929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17930pub struct XmlColumnOptionList {
17931    pub(crate) syntax: SyntaxNode,
17932}
17933impl XmlColumnOptionList {
17934    #[inline]
17935    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
17936        support::child(&self.syntax)
17937    }
17938    #[inline]
17939    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
17940        support::children(&self.syntax)
17941    }
17942}
17943
17944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17945pub struct XmlElementFn {
17946    pub(crate) syntax: SyntaxNode,
17947}
17948impl XmlElementFn {
17949    #[inline]
17950    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17951        support::child(&self.syntax)
17952    }
17953    #[inline]
17954    pub fn exprs(&self) -> AstChildren<Expr> {
17955        support::children(&self.syntax)
17956    }
17957    #[inline]
17958    pub fn name(&self) -> Option<Name> {
17959        support::child(&self.syntax)
17960    }
17961    #[inline]
17962    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17963        support::token(&self.syntax, SyntaxKind::L_PAREN)
17964    }
17965    #[inline]
17966    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17967        support::token(&self.syntax, SyntaxKind::R_PAREN)
17968    }
17969    #[inline]
17970    pub fn comma_token(&self) -> Option<SyntaxToken> {
17971        support::token(&self.syntax, SyntaxKind::COMMA)
17972    }
17973    #[inline]
17974    pub fn name_token(&self) -> Option<SyntaxToken> {
17975        support::token(&self.syntax, SyntaxKind::NAME_KW)
17976    }
17977    #[inline]
17978    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
17979        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
17980    }
17981    #[inline]
17982    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
17983        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
17984    }
17985}
17986
17987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17988pub struct XmlExistsFn {
17989    pub(crate) syntax: SyntaxNode,
17990}
17991impl XmlExistsFn {
17992    #[inline]
17993    pub fn expr(&self) -> Option<Expr> {
17994        support::child(&self.syntax)
17995    }
17996    #[inline]
17997    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
17998        support::child(&self.syntax)
17999    }
18000    #[inline]
18001    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18002        support::token(&self.syntax, SyntaxKind::L_PAREN)
18003    }
18004    #[inline]
18005    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18006        support::token(&self.syntax, SyntaxKind::R_PAREN)
18007    }
18008    #[inline]
18009    pub fn passing_token(&self) -> Option<SyntaxToken> {
18010        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18011    }
18012    #[inline]
18013    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
18014        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
18015    }
18016}
18017
18018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18019pub struct XmlForestFn {
18020    pub(crate) syntax: SyntaxNode,
18021}
18022impl XmlForestFn {
18023    #[inline]
18024    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18025        support::child(&self.syntax)
18026    }
18027    #[inline]
18028    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18029        support::token(&self.syntax, SyntaxKind::L_PAREN)
18030    }
18031    #[inline]
18032    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18033        support::token(&self.syntax, SyntaxKind::R_PAREN)
18034    }
18035    #[inline]
18036    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18037        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18038    }
18039}
18040
18041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18042pub struct XmlNamespace {
18043    pub(crate) syntax: SyntaxNode,
18044}
18045impl XmlNamespace {
18046    #[inline]
18047    pub fn expr(&self) -> Option<Expr> {
18048        support::child(&self.syntax)
18049    }
18050    #[inline]
18051    pub fn name(&self) -> Option<Name> {
18052        support::child(&self.syntax)
18053    }
18054    #[inline]
18055    pub fn as_token(&self) -> Option<SyntaxToken> {
18056        support::token(&self.syntax, SyntaxKind::AS_KW)
18057    }
18058    #[inline]
18059    pub fn default_token(&self) -> Option<SyntaxToken> {
18060        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18061    }
18062}
18063
18064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18065pub struct XmlNamespaceList {
18066    pub(crate) syntax: SyntaxNode,
18067}
18068impl XmlNamespaceList {
18069    #[inline]
18070    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18071        support::children(&self.syntax)
18072    }
18073    #[inline]
18074    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18075        support::token(&self.syntax, SyntaxKind::L_PAREN)
18076    }
18077    #[inline]
18078    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18079        support::token(&self.syntax, SyntaxKind::R_PAREN)
18080    }
18081}
18082
18083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18084pub struct XmlParseFn {
18085    pub(crate) syntax: SyntaxNode,
18086}
18087impl XmlParseFn {
18088    #[inline]
18089    pub fn expr(&self) -> Option<Expr> {
18090        support::child(&self.syntax)
18091    }
18092    #[inline]
18093    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18094        support::token(&self.syntax, SyntaxKind::L_PAREN)
18095    }
18096    #[inline]
18097    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18098        support::token(&self.syntax, SyntaxKind::R_PAREN)
18099    }
18100    #[inline]
18101    pub fn content_token(&self) -> Option<SyntaxToken> {
18102        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18103    }
18104    #[inline]
18105    pub fn document_token(&self) -> Option<SyntaxToken> {
18106        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18107    }
18108    #[inline]
18109    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18110        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18111    }
18112    #[inline]
18113    pub fn strip_token(&self) -> Option<SyntaxToken> {
18114        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18115    }
18116    #[inline]
18117    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18118        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18119    }
18120    #[inline]
18121    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18122        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18123    }
18124}
18125
18126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18127pub struct XmlPassingMech {
18128    pub(crate) syntax: SyntaxNode,
18129}
18130impl XmlPassingMech {
18131    #[inline]
18132    pub fn by_token(&self) -> Option<SyntaxToken> {
18133        support::token(&self.syntax, SyntaxKind::BY_KW)
18134    }
18135    #[inline]
18136    pub fn ref_token(&self) -> Option<SyntaxToken> {
18137        support::token(&self.syntax, SyntaxKind::REF_KW)
18138    }
18139    #[inline]
18140    pub fn value_token(&self) -> Option<SyntaxToken> {
18141        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18142    }
18143}
18144
18145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18146pub struct XmlPiFn {
18147    pub(crate) syntax: SyntaxNode,
18148}
18149impl XmlPiFn {
18150    #[inline]
18151    pub fn expr(&self) -> Option<Expr> {
18152        support::child(&self.syntax)
18153    }
18154    #[inline]
18155    pub fn name(&self) -> Option<Name> {
18156        support::child(&self.syntax)
18157    }
18158    #[inline]
18159    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18160        support::token(&self.syntax, SyntaxKind::L_PAREN)
18161    }
18162    #[inline]
18163    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18164        support::token(&self.syntax, SyntaxKind::R_PAREN)
18165    }
18166    #[inline]
18167    pub fn comma_token(&self) -> Option<SyntaxToken> {
18168        support::token(&self.syntax, SyntaxKind::COMMA)
18169    }
18170    #[inline]
18171    pub fn name_token(&self) -> Option<SyntaxToken> {
18172        support::token(&self.syntax, SyntaxKind::NAME_KW)
18173    }
18174    #[inline]
18175    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
18176        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
18177    }
18178}
18179
18180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18181pub struct XmlRootFn {
18182    pub(crate) syntax: SyntaxNode,
18183}
18184impl XmlRootFn {
18185    #[inline]
18186    pub fn expr(&self) -> Option<Expr> {
18187        support::child(&self.syntax)
18188    }
18189    #[inline]
18190    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18191        support::token(&self.syntax, SyntaxKind::L_PAREN)
18192    }
18193    #[inline]
18194    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18195        support::token(&self.syntax, SyntaxKind::R_PAREN)
18196    }
18197    #[inline]
18198    pub fn comma_token(&self) -> Option<SyntaxToken> {
18199        support::token(&self.syntax, SyntaxKind::COMMA)
18200    }
18201    #[inline]
18202    pub fn no_token(&self) -> Option<SyntaxToken> {
18203        support::token(&self.syntax, SyntaxKind::NO_KW)
18204    }
18205    #[inline]
18206    pub fn standalone_token(&self) -> Option<SyntaxToken> {
18207        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
18208    }
18209    #[inline]
18210    pub fn value_token(&self) -> Option<SyntaxToken> {
18211        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18212    }
18213    #[inline]
18214    pub fn version_token(&self) -> Option<SyntaxToken> {
18215        support::token(&self.syntax, SyntaxKind::VERSION_KW)
18216    }
18217    #[inline]
18218    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
18219        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
18220    }
18221    #[inline]
18222    pub fn yes_token(&self) -> Option<SyntaxToken> {
18223        support::token(&self.syntax, SyntaxKind::YES_KW)
18224    }
18225}
18226
18227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18228pub struct XmlRowPassingClause {
18229    pub(crate) syntax: SyntaxNode,
18230}
18231impl XmlRowPassingClause {
18232    #[inline]
18233    pub fn expr(&self) -> Option<Expr> {
18234        support::child(&self.syntax)
18235    }
18236    #[inline]
18237    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18238        support::child(&self.syntax)
18239    }
18240    #[inline]
18241    pub fn passing_token(&self) -> Option<SyntaxToken> {
18242        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18243    }
18244}
18245
18246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18247pub struct XmlSerializeFn {
18248    pub(crate) syntax: SyntaxNode,
18249}
18250impl XmlSerializeFn {
18251    #[inline]
18252    pub fn expr(&self) -> Option<Expr> {
18253        support::child(&self.syntax)
18254    }
18255    #[inline]
18256    pub fn ty(&self) -> Option<Type> {
18257        support::child(&self.syntax)
18258    }
18259    #[inline]
18260    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18261        support::token(&self.syntax, SyntaxKind::L_PAREN)
18262    }
18263    #[inline]
18264    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18265        support::token(&self.syntax, SyntaxKind::R_PAREN)
18266    }
18267    #[inline]
18268    pub fn as_token(&self) -> Option<SyntaxToken> {
18269        support::token(&self.syntax, SyntaxKind::AS_KW)
18270    }
18271    #[inline]
18272    pub fn content_token(&self) -> Option<SyntaxToken> {
18273        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18274    }
18275    #[inline]
18276    pub fn document_token(&self) -> Option<SyntaxToken> {
18277        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18278    }
18279    #[inline]
18280    pub fn indent_token(&self) -> Option<SyntaxToken> {
18281        support::token(&self.syntax, SyntaxKind::INDENT_KW)
18282    }
18283    #[inline]
18284    pub fn no_token(&self) -> Option<SyntaxToken> {
18285        support::token(&self.syntax, SyntaxKind::NO_KW)
18286    }
18287    #[inline]
18288    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
18289        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
18290    }
18291}
18292
18293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18294pub struct XmlTable {
18295    pub(crate) syntax: SyntaxNode,
18296}
18297impl XmlTable {
18298    #[inline]
18299    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
18300        support::child(&self.syntax)
18301    }
18302    #[inline]
18303    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
18304        support::child(&self.syntax)
18305    }
18306    #[inline]
18307    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
18308        support::child(&self.syntax)
18309    }
18310    #[inline]
18311    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18312        support::token(&self.syntax, SyntaxKind::L_PAREN)
18313    }
18314    #[inline]
18315    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18316        support::token(&self.syntax, SyntaxKind::R_PAREN)
18317    }
18318    #[inline]
18319    pub fn comma_token(&self) -> Option<SyntaxToken> {
18320        support::token(&self.syntax, SyntaxKind::COMMA)
18321    }
18322    #[inline]
18323    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
18324        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
18325    }
18326    #[inline]
18327    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
18328        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
18329    }
18330}
18331
18332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18333pub struct XmlTableColumn {
18334    pub(crate) syntax: SyntaxNode,
18335}
18336impl XmlTableColumn {
18337    #[inline]
18338    pub fn name(&self) -> Option<Name> {
18339        support::child(&self.syntax)
18340    }
18341    #[inline]
18342    pub fn ty(&self) -> Option<Type> {
18343        support::child(&self.syntax)
18344    }
18345    #[inline]
18346    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
18347        support::child(&self.syntax)
18348    }
18349    #[inline]
18350    pub fn for_token(&self) -> Option<SyntaxToken> {
18351        support::token(&self.syntax, SyntaxKind::FOR_KW)
18352    }
18353    #[inline]
18354    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
18355        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
18356    }
18357}
18358
18359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18360pub struct XmlTableColumnList {
18361    pub(crate) syntax: SyntaxNode,
18362}
18363impl XmlTableColumnList {
18364    #[inline]
18365    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
18366        support::children(&self.syntax)
18367    }
18368    #[inline]
18369    pub fn columns_token(&self) -> Option<SyntaxToken> {
18370        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
18371    }
18372}
18373
18374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18375pub enum AlterColumnOption {
18376    AddGenerated(AddGenerated),
18377    DropDefault(DropDefault),
18378    DropExpression(DropExpression),
18379    DropIdentity(DropIdentity),
18380    DropNotNull(DropNotNull),
18381    Inherit(Inherit),
18382    NoInherit(NoInherit),
18383    ResetOptions(ResetOptions),
18384    Restart(Restart),
18385    SetCompression(SetCompression),
18386    SetDefault(SetDefault),
18387    SetExpression(SetExpression),
18388    SetGenerated(SetGenerated),
18389    SetGeneratedOptions(SetGeneratedOptions),
18390    SetNotNull(SetNotNull),
18391    SetOptions(SetOptions),
18392    SetOptionsList(SetOptionsList),
18393    SetSequenceOption(SetSequenceOption),
18394    SetStatistics(SetStatistics),
18395    SetStorage(SetStorage),
18396    SetType(SetType),
18397}
18398
18399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18400pub enum AlterDomainAction {
18401    AddConstraint(AddConstraint),
18402    DropConstraint(DropConstraint),
18403    DropDefault(DropDefault),
18404    DropNotNull(DropNotNull),
18405    OwnerTo(OwnerTo),
18406    RenameConstraint(RenameConstraint),
18407    RenameTo(RenameTo),
18408    SetDefault(SetDefault),
18409    SetNotNull(SetNotNull),
18410    SetSchema(SetSchema),
18411    ValidateConstraint(ValidateConstraint),
18412}
18413
18414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18415pub enum AlterIndexAction {
18416    AlterSetStatistics(AlterSetStatistics),
18417    AttachPartition(AttachPartition),
18418    DependsOnExtension(DependsOnExtension),
18419    NoDependsOnExtension(NoDependsOnExtension),
18420    RenameTo(RenameTo),
18421    ResetOptions(ResetOptions),
18422    SetOptions(SetOptions),
18423    SetTablespace(SetTablespace),
18424}
18425
18426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18427pub enum AlterMaterializedViewAction {
18428    DependsOnExtension(DependsOnExtension),
18429    NoDependsOnExtension(NoDependsOnExtension),
18430    RenameColumn(RenameColumn),
18431    RenameTo(RenameTo),
18432    SetSchema(SetSchema),
18433    AlterTableAction(AlterTableAction),
18434}
18435
18436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18437pub enum AlterPropertyGraphAction {
18438    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
18439    AddVertexEdgeTables(AddVertexEdgeTables),
18440    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
18441    DropEdgeTables(DropEdgeTables),
18442    DropVertexEdgeLabel(DropVertexEdgeLabel),
18443    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
18444    DropVertexTables(DropVertexTables),
18445    OwnerTo(OwnerTo),
18446    RenameTo(RenameTo),
18447    SetSchema(SetSchema),
18448}
18449
18450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18451pub enum AlterTableAction {
18452    AddColumn(AddColumn),
18453    AddConstraint(AddConstraint),
18454    AlterColumn(AlterColumn),
18455    AlterConstraint(AlterConstraint),
18456    AttachPartition(AttachPartition),
18457    ClusterOn(ClusterOn),
18458    DetachPartition(DetachPartition),
18459    DisableRls(DisableRls),
18460    DisableRule(DisableRule),
18461    DisableTrigger(DisableTrigger),
18462    DropColumn(DropColumn),
18463    DropConstraint(DropConstraint),
18464    EnableAlwaysRule(EnableAlwaysRule),
18465    EnableAlwaysTrigger(EnableAlwaysTrigger),
18466    EnableReplicaRule(EnableReplicaRule),
18467    EnableReplicaTrigger(EnableReplicaTrigger),
18468    EnableRls(EnableRls),
18469    EnableRule(EnableRule),
18470    EnableTrigger(EnableTrigger),
18471    ForceRls(ForceRls),
18472    InheritTable(InheritTable),
18473    MergePartitions(MergePartitions),
18474    NoForceRls(NoForceRls),
18475    NoInheritTable(NoInheritTable),
18476    NotOf(NotOf),
18477    OfType(OfType),
18478    OptionItemList(OptionItemList),
18479    OwnerTo(OwnerTo),
18480    RenameColumn(RenameColumn),
18481    RenameConstraint(RenameConstraint),
18482    RenameTo(RenameTo),
18483    ReplicaIdentity(ReplicaIdentity),
18484    ResetOptions(ResetOptions),
18485    SetAccessMethod(SetAccessMethod),
18486    SetLogged(SetLogged),
18487    SetOptions(SetOptions),
18488    SetSchema(SetSchema),
18489    SetTablespace(SetTablespace),
18490    SetUnlogged(SetUnlogged),
18491    SetWithoutCluster(SetWithoutCluster),
18492    SetWithoutOids(SetWithoutOids),
18493    SplitPartition(SplitPartition),
18494    ValidateConstraint(ValidateConstraint),
18495}
18496
18497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18498pub enum AlterTypeAction {
18499    AddAttribute(AddAttribute),
18500    AlterAttribute(AlterAttribute),
18501    DropAttribute(DropAttribute),
18502}
18503
18504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18505pub enum ColumnConstraint {
18506    CheckConstraint(CheckConstraint),
18507    DefaultConstraint(DefaultConstraint),
18508    ExcludeConstraint(ExcludeConstraint),
18509    NotNullConstraint(NotNullConstraint),
18510    PrimaryKeyConstraint(PrimaryKeyConstraint),
18511    ReferencesConstraint(ReferencesConstraint),
18512    UniqueConstraint(UniqueConstraint),
18513}
18514
18515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18516pub enum ConfigValue {
18517    Literal(Literal),
18518    NameRef(NameRef),
18519}
18520
18521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18522pub enum ConflictAction {
18523    ConflictDoNothing(ConflictDoNothing),
18524    ConflictDoSelect(ConflictDoSelect),
18525    ConflictDoUpdateSet(ConflictDoUpdateSet),
18526}
18527
18528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18529pub enum ConflictTarget {
18530    ConflictOnConstraint(ConflictOnConstraint),
18531    ConflictOnIndex(ConflictOnIndex),
18532}
18533
18534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18535pub enum Constraint {
18536    CheckConstraint(CheckConstraint),
18537    DefaultConstraint(DefaultConstraint),
18538    ForeignKeyConstraint(ForeignKeyConstraint),
18539    GeneratedConstraint(GeneratedConstraint),
18540    NotNullConstraint(NotNullConstraint),
18541    NullConstraint(NullConstraint),
18542    PrimaryKeyConstraint(PrimaryKeyConstraint),
18543    ReferencesConstraint(ReferencesConstraint),
18544    UniqueConstraint(UniqueConstraint),
18545}
18546
18547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18548pub enum ElementTableLabelAndProperties {
18549    LabelAndPropertiesList(LabelAndPropertiesList),
18550    ElementTableProperties(ElementTableProperties),
18551}
18552
18553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18554pub enum ElementTableProperties {
18555    AllProperties(AllProperties),
18556    NoProperties(NoProperties),
18557    PropertiesList(PropertiesList),
18558}
18559
18560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18561pub enum ExplainStmt {
18562    CompoundSelect(CompoundSelect),
18563    CreateMaterializedView(CreateMaterializedView),
18564    CreateTableAs(CreateTableAs),
18565    Declare(Declare),
18566    Delete(Delete),
18567    Execute(Execute),
18568    Insert(Insert),
18569    Merge(Merge),
18570    ParenSelect(ParenSelect),
18571    Select(Select),
18572    SelectInto(SelectInto),
18573    Table(Table),
18574    Update(Update),
18575    Values(Values),
18576}
18577
18578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18579pub enum Expr {
18580    ArrayExpr(ArrayExpr),
18581    BetweenExpr(BetweenExpr),
18582    BinExpr(BinExpr),
18583    CallExpr(CallExpr),
18584    CaseExpr(CaseExpr),
18585    CastExpr(CastExpr),
18586    FieldExpr(FieldExpr),
18587    IndexExpr(IndexExpr),
18588    Literal(Literal),
18589    NameRef(NameRef),
18590    ParenExpr(ParenExpr),
18591    PostfixExpr(PostfixExpr),
18592    PrefixExpr(PrefixExpr),
18593    SliceExpr(SliceExpr),
18594    TupleExpr(TupleExpr),
18595}
18596
18597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18598pub enum FuncOption {
18599    AsFuncOption(AsFuncOption),
18600    BeginFuncOptionList(BeginFuncOptionList),
18601    CostFuncOption(CostFuncOption),
18602    LanguageFuncOption(LanguageFuncOption),
18603    LeakproofFuncOption(LeakproofFuncOption),
18604    ParallelFuncOption(ParallelFuncOption),
18605    ResetFuncOption(ResetFuncOption),
18606    ReturnFuncOption(ReturnFuncOption),
18607    RowsFuncOption(RowsFuncOption),
18608    SecurityFuncOption(SecurityFuncOption),
18609    SetFuncOption(SetFuncOption),
18610    StrictFuncOption(StrictFuncOption),
18611    SupportFuncOption(SupportFuncOption),
18612    TransformFuncOption(TransformFuncOption),
18613    VolatilityFuncOption(VolatilityFuncOption),
18614    WindowFuncOption(WindowFuncOption),
18615}
18616
18617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18618pub enum GroupBy {
18619    GroupingCube(GroupingCube),
18620    GroupingExpr(GroupingExpr),
18621    GroupingRollup(GroupingRollup),
18622    GroupingSets(GroupingSets),
18623}
18624
18625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18626pub enum JoinType {
18627    JoinCross(JoinCross),
18628    JoinFull(JoinFull),
18629    JoinInner(JoinInner),
18630    JoinLeft(JoinLeft),
18631    JoinRight(JoinRight),
18632}
18633
18634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18635pub enum JsonBehavior {
18636    JsonBehaviorDefault(JsonBehaviorDefault),
18637    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
18638    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
18639    JsonBehaviorError(JsonBehaviorError),
18640    JsonBehaviorFalse(JsonBehaviorFalse),
18641    JsonBehaviorNull(JsonBehaviorNull),
18642    JsonBehaviorTrue(JsonBehaviorTrue),
18643    JsonBehaviorUnknown(JsonBehaviorUnknown),
18644}
18645
18646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18647pub enum MatchType {
18648    MatchFull(MatchFull),
18649    MatchPartial(MatchPartial),
18650    MatchSimple(MatchSimple),
18651}
18652
18653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18654pub enum MergeAction {
18655    MergeDelete(MergeDelete),
18656    MergeDoNothing(MergeDoNothing),
18657    MergeInsert(MergeInsert),
18658    MergeUpdate(MergeUpdate),
18659}
18660
18661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18662pub enum MergeWhenClause {
18663    MergeWhenMatched(MergeWhenMatched),
18664    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
18665    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
18666}
18667
18668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18669pub enum OnCommitAction {
18670    DeleteRows(DeleteRows),
18671    Drop(Drop),
18672    PreserveRows(PreserveRows),
18673}
18674
18675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18676pub enum ParamMode {
18677    ParamIn(ParamIn),
18678    ParamInOut(ParamInOut),
18679    ParamOut(ParamOut),
18680    ParamVariadic(ParamVariadic),
18681}
18682
18683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18684pub enum PartitionType {
18685    PartitionDefault(PartitionDefault),
18686    PartitionForValuesFrom(PartitionForValuesFrom),
18687    PartitionForValuesIn(PartitionForValuesIn),
18688    PartitionForValuesWith(PartitionForValuesWith),
18689}
18690
18691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18692pub enum PathPrimary {
18693    EdgeAny(EdgeAny),
18694    EdgeLeft(EdgeLeft),
18695    EdgeRight(EdgeRight),
18696    ParenGraphPattern(ParenGraphPattern),
18697    VertexPattern(VertexPattern),
18698}
18699
18700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18701pub enum Persistence {
18702    Temp(Temp),
18703    Unlogged(Unlogged),
18704}
18705
18706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18707pub enum PreparableStmt {
18708    CompoundSelect(CompoundSelect),
18709    Delete(Delete),
18710    Insert(Insert),
18711    Merge(Merge),
18712    Select(Select),
18713    SelectInto(SelectInto),
18714    Table(Table),
18715    Update(Update),
18716    Values(Values),
18717}
18718
18719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18720pub enum RefAction {
18721    Cascade(Cascade),
18722    NoAction(NoAction),
18723    Restrict(Restrict),
18724    SetDefaultColumns(SetDefaultColumns),
18725    SetNullColumns(SetNullColumns),
18726}
18727
18728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18729pub enum SchemaElement {
18730    CreateIndex(CreateIndex),
18731    CreateSequence(CreateSequence),
18732    CreateTable(CreateTable),
18733    CreateTrigger(CreateTrigger),
18734    CreateView(CreateView),
18735    Grant(Grant),
18736}
18737
18738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18739pub enum SelectVariant {
18740    CompoundSelect(CompoundSelect),
18741    ParenSelect(ParenSelect),
18742    Select(Select),
18743    SelectInto(SelectInto),
18744    Table(Table),
18745    Values(Values),
18746}
18747
18748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18749pub enum SetColumn {
18750    SetMultipleColumns(SetMultipleColumns),
18751    SetSingleColumn(SetSingleColumn),
18752}
18753
18754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18755pub enum Stmt {
18756    AlterAggregate(AlterAggregate),
18757    AlterCollation(AlterCollation),
18758    AlterConversion(AlterConversion),
18759    AlterDatabase(AlterDatabase),
18760    AlterDefaultPrivileges(AlterDefaultPrivileges),
18761    AlterDomain(AlterDomain),
18762    AlterEventTrigger(AlterEventTrigger),
18763    AlterExtension(AlterExtension),
18764    AlterForeignDataWrapper(AlterForeignDataWrapper),
18765    AlterForeignTable(AlterForeignTable),
18766    AlterFunction(AlterFunction),
18767    AlterGroup(AlterGroup),
18768    AlterIndex(AlterIndex),
18769    AlterLanguage(AlterLanguage),
18770    AlterLargeObject(AlterLargeObject),
18771    AlterMaterializedView(AlterMaterializedView),
18772    AlterOperator(AlterOperator),
18773    AlterOperatorClass(AlterOperatorClass),
18774    AlterOperatorFamily(AlterOperatorFamily),
18775    AlterPolicy(AlterPolicy),
18776    AlterProcedure(AlterProcedure),
18777    AlterPropertyGraph(AlterPropertyGraph),
18778    AlterPublication(AlterPublication),
18779    AlterRole(AlterRole),
18780    AlterRoutine(AlterRoutine),
18781    AlterRule(AlterRule),
18782    AlterSchema(AlterSchema),
18783    AlterSequence(AlterSequence),
18784    AlterServer(AlterServer),
18785    AlterStatistics(AlterStatistics),
18786    AlterSubscription(AlterSubscription),
18787    AlterSystem(AlterSystem),
18788    AlterTable(AlterTable),
18789    AlterTablespace(AlterTablespace),
18790    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
18791    AlterTextSearchDictionary(AlterTextSearchDictionary),
18792    AlterTextSearchParser(AlterTextSearchParser),
18793    AlterTextSearchTemplate(AlterTextSearchTemplate),
18794    AlterTrigger(AlterTrigger),
18795    AlterType(AlterType),
18796    AlterUser(AlterUser),
18797    AlterUserMapping(AlterUserMapping),
18798    AlterView(AlterView),
18799    Analyze(Analyze),
18800    Begin(Begin),
18801    Call(Call),
18802    Checkpoint(Checkpoint),
18803    Close(Close),
18804    Cluster(Cluster),
18805    CommentOn(CommentOn),
18806    Commit(Commit),
18807    Copy(Copy),
18808    CreateAccessMethod(CreateAccessMethod),
18809    CreateAggregate(CreateAggregate),
18810    CreateCast(CreateCast),
18811    CreateCollation(CreateCollation),
18812    CreateConversion(CreateConversion),
18813    CreateDatabase(CreateDatabase),
18814    CreateDomain(CreateDomain),
18815    CreateEventTrigger(CreateEventTrigger),
18816    CreateExtension(CreateExtension),
18817    CreateForeignDataWrapper(CreateForeignDataWrapper),
18818    CreateForeignTable(CreateForeignTable),
18819    CreateFunction(CreateFunction),
18820    CreateGroup(CreateGroup),
18821    CreateIndex(CreateIndex),
18822    CreateLanguage(CreateLanguage),
18823    CreateMaterializedView(CreateMaterializedView),
18824    CreateOperator(CreateOperator),
18825    CreateOperatorClass(CreateOperatorClass),
18826    CreateOperatorFamily(CreateOperatorFamily),
18827    CreatePolicy(CreatePolicy),
18828    CreateProcedure(CreateProcedure),
18829    CreatePropertyGraph(CreatePropertyGraph),
18830    CreatePublication(CreatePublication),
18831    CreateRole(CreateRole),
18832    CreateRule(CreateRule),
18833    CreateSchema(CreateSchema),
18834    CreateSequence(CreateSequence),
18835    CreateServer(CreateServer),
18836    CreateStatistics(CreateStatistics),
18837    CreateSubscription(CreateSubscription),
18838    CreateTable(CreateTable),
18839    CreateTableAs(CreateTableAs),
18840    CreateTablespace(CreateTablespace),
18841    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
18842    CreateTextSearchDictionary(CreateTextSearchDictionary),
18843    CreateTextSearchParser(CreateTextSearchParser),
18844    CreateTextSearchTemplate(CreateTextSearchTemplate),
18845    CreateTransform(CreateTransform),
18846    CreateTrigger(CreateTrigger),
18847    CreateType(CreateType),
18848    CreateUser(CreateUser),
18849    CreateUserMapping(CreateUserMapping),
18850    CreateView(CreateView),
18851    Deallocate(Deallocate),
18852    Declare(Declare),
18853    Delete(Delete),
18854    Discard(Discard),
18855    Do(Do),
18856    DropAccessMethod(DropAccessMethod),
18857    DropAggregate(DropAggregate),
18858    DropCast(DropCast),
18859    DropCollation(DropCollation),
18860    DropConversion(DropConversion),
18861    DropDatabase(DropDatabase),
18862    DropDomain(DropDomain),
18863    DropEventTrigger(DropEventTrigger),
18864    DropExtension(DropExtension),
18865    DropForeignDataWrapper(DropForeignDataWrapper),
18866    DropForeignTable(DropForeignTable),
18867    DropFunction(DropFunction),
18868    DropGroup(DropGroup),
18869    DropIndex(DropIndex),
18870    DropLanguage(DropLanguage),
18871    DropMaterializedView(DropMaterializedView),
18872    DropOperator(DropOperator),
18873    DropOperatorClass(DropOperatorClass),
18874    DropOperatorFamily(DropOperatorFamily),
18875    DropOwned(DropOwned),
18876    DropPolicy(DropPolicy),
18877    DropProcedure(DropProcedure),
18878    DropPropertyGraph(DropPropertyGraph),
18879    DropPublication(DropPublication),
18880    DropRole(DropRole),
18881    DropRoutine(DropRoutine),
18882    DropRule(DropRule),
18883    DropSchema(DropSchema),
18884    DropSequence(DropSequence),
18885    DropServer(DropServer),
18886    DropStatistics(DropStatistics),
18887    DropSubscription(DropSubscription),
18888    DropTable(DropTable),
18889    DropTablespace(DropTablespace),
18890    DropTextSearchConfig(DropTextSearchConfig),
18891    DropTextSearchDict(DropTextSearchDict),
18892    DropTextSearchParser(DropTextSearchParser),
18893    DropTextSearchTemplate(DropTextSearchTemplate),
18894    DropTransform(DropTransform),
18895    DropTrigger(DropTrigger),
18896    DropType(DropType),
18897    DropUser(DropUser),
18898    DropUserMapping(DropUserMapping),
18899    DropView(DropView),
18900    Execute(Execute),
18901    Explain(Explain),
18902    Fetch(Fetch),
18903    Grant(Grant),
18904    ImportForeignSchema(ImportForeignSchema),
18905    Insert(Insert),
18906    Listen(Listen),
18907    Load(Load),
18908    Lock(Lock),
18909    Merge(Merge),
18910    Move(Move),
18911    Notify(Notify),
18912    ParenSelect(ParenSelect),
18913    Prepare(Prepare),
18914    PrepareTransaction(PrepareTransaction),
18915    Reassign(Reassign),
18916    Refresh(Refresh),
18917    Reindex(Reindex),
18918    ReleaseSavepoint(ReleaseSavepoint),
18919    Repack(Repack),
18920    Reset(Reset),
18921    ResetSessionAuth(ResetSessionAuth),
18922    Revoke(Revoke),
18923    Rollback(Rollback),
18924    Savepoint(Savepoint),
18925    SecurityLabel(SecurityLabel),
18926    Select(Select),
18927    SelectInto(SelectInto),
18928    Set(Set),
18929    SetConstraints(SetConstraints),
18930    SetRole(SetRole),
18931    SetSessionAuth(SetSessionAuth),
18932    SetTransaction(SetTransaction),
18933    Show(Show),
18934    Table(Table),
18935    Truncate(Truncate),
18936    Unlisten(Unlisten),
18937    Update(Update),
18938    Vacuum(Vacuum),
18939    Values(Values),
18940}
18941
18942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18943pub enum TableArg {
18944    Column(Column),
18945    LikeClause(LikeClause),
18946    TableConstraint(TableConstraint),
18947}
18948
18949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18950pub enum TableConstraint {
18951    CheckConstraint(CheckConstraint),
18952    ExcludeConstraint(ExcludeConstraint),
18953    ForeignKeyConstraint(ForeignKeyConstraint),
18954    PrimaryKeyConstraint(PrimaryKeyConstraint),
18955    UniqueConstraint(UniqueConstraint),
18956}
18957
18958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18959pub enum Timezone {
18960    WithTimezone(WithTimezone),
18961    WithoutTimezone(WithoutTimezone),
18962}
18963
18964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18965pub enum TransactionMode {
18966    Deferrable(Deferrable),
18967    NotDeferrable(NotDeferrable),
18968    ReadCommitted(ReadCommitted),
18969    ReadOnly(ReadOnly),
18970    ReadUncommitted(ReadUncommitted),
18971    ReadWrite(ReadWrite),
18972    RepeatableRead(RepeatableRead),
18973    Serializable(Serializable),
18974}
18975
18976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18977pub enum Type {
18978    ArrayType(ArrayType),
18979    BitType(BitType),
18980    CharType(CharType),
18981    DoubleType(DoubleType),
18982    ExprType(ExprType),
18983    IntervalType(IntervalType),
18984    PathType(PathType),
18985    PercentType(PercentType),
18986    TimeType(TimeType),
18987}
18988
18989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18990pub enum ValuePosition {
18991    AfterValue(AfterValue),
18992    BeforeValue(BeforeValue),
18993}
18994
18995#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18996pub enum WithQuery {
18997    CompoundSelect(CompoundSelect),
18998    Delete(Delete),
18999    Insert(Insert),
19000    Merge(Merge),
19001    ParenSelect(ParenSelect),
19002    Select(Select),
19003    Table(Table),
19004    Update(Update),
19005    Values(Values),
19006}
19007impl AstNode for AddAttribute {
19008    #[inline]
19009    fn can_cast(kind: SyntaxKind) -> bool {
19010        kind == SyntaxKind::ADD_ATTRIBUTE
19011    }
19012    #[inline]
19013    fn cast(syntax: SyntaxNode) -> Option<Self> {
19014        if Self::can_cast(syntax.kind()) {
19015            Some(Self { syntax })
19016        } else {
19017            None
19018        }
19019    }
19020    #[inline]
19021    fn syntax(&self) -> &SyntaxNode {
19022        &self.syntax
19023    }
19024}
19025impl AstNode for AddColumn {
19026    #[inline]
19027    fn can_cast(kind: SyntaxKind) -> bool {
19028        kind == SyntaxKind::ADD_COLUMN
19029    }
19030    #[inline]
19031    fn cast(syntax: SyntaxNode) -> Option<Self> {
19032        if Self::can_cast(syntax.kind()) {
19033            Some(Self { syntax })
19034        } else {
19035            None
19036        }
19037    }
19038    #[inline]
19039    fn syntax(&self) -> &SyntaxNode {
19040        &self.syntax
19041    }
19042}
19043impl AstNode for AddConstraint {
19044    #[inline]
19045    fn can_cast(kind: SyntaxKind) -> bool {
19046        kind == SyntaxKind::ADD_CONSTRAINT
19047    }
19048    #[inline]
19049    fn cast(syntax: SyntaxNode) -> Option<Self> {
19050        if Self::can_cast(syntax.kind()) {
19051            Some(Self { syntax })
19052        } else {
19053            None
19054        }
19055    }
19056    #[inline]
19057    fn syntax(&self) -> &SyntaxNode {
19058        &self.syntax
19059    }
19060}
19061impl AstNode for AddGenerated {
19062    #[inline]
19063    fn can_cast(kind: SyntaxKind) -> bool {
19064        kind == SyntaxKind::ADD_GENERATED
19065    }
19066    #[inline]
19067    fn cast(syntax: SyntaxNode) -> Option<Self> {
19068        if Self::can_cast(syntax.kind()) {
19069            Some(Self { syntax })
19070        } else {
19071            None
19072        }
19073    }
19074    #[inline]
19075    fn syntax(&self) -> &SyntaxNode {
19076        &self.syntax
19077    }
19078}
19079impl AstNode for AddLabel {
19080    #[inline]
19081    fn can_cast(kind: SyntaxKind) -> bool {
19082        kind == SyntaxKind::ADD_LABEL
19083    }
19084    #[inline]
19085    fn cast(syntax: SyntaxNode) -> Option<Self> {
19086        if Self::can_cast(syntax.kind()) {
19087            Some(Self { syntax })
19088        } else {
19089            None
19090        }
19091    }
19092    #[inline]
19093    fn syntax(&self) -> &SyntaxNode {
19094        &self.syntax
19095    }
19096}
19097impl AstNode for AddOpClassOptions {
19098    #[inline]
19099    fn can_cast(kind: SyntaxKind) -> bool {
19100        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19101    }
19102    #[inline]
19103    fn cast(syntax: SyntaxNode) -> Option<Self> {
19104        if Self::can_cast(syntax.kind()) {
19105            Some(Self { syntax })
19106        } else {
19107            None
19108        }
19109    }
19110    #[inline]
19111    fn syntax(&self) -> &SyntaxNode {
19112        &self.syntax
19113    }
19114}
19115impl AstNode for AddValue {
19116    #[inline]
19117    fn can_cast(kind: SyntaxKind) -> bool {
19118        kind == SyntaxKind::ADD_VALUE
19119    }
19120    #[inline]
19121    fn cast(syntax: SyntaxNode) -> Option<Self> {
19122        if Self::can_cast(syntax.kind()) {
19123            Some(Self { syntax })
19124        } else {
19125            None
19126        }
19127    }
19128    #[inline]
19129    fn syntax(&self) -> &SyntaxNode {
19130        &self.syntax
19131    }
19132}
19133impl AstNode for AddVertexEdgeLabelProperties {
19134    #[inline]
19135    fn can_cast(kind: SyntaxKind) -> bool {
19136        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19137    }
19138    #[inline]
19139    fn cast(syntax: SyntaxNode) -> Option<Self> {
19140        if Self::can_cast(syntax.kind()) {
19141            Some(Self { syntax })
19142        } else {
19143            None
19144        }
19145    }
19146    #[inline]
19147    fn syntax(&self) -> &SyntaxNode {
19148        &self.syntax
19149    }
19150}
19151impl AstNode for AddVertexEdgeTables {
19152    #[inline]
19153    fn can_cast(kind: SyntaxKind) -> bool {
19154        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
19155    }
19156    #[inline]
19157    fn cast(syntax: SyntaxNode) -> Option<Self> {
19158        if Self::can_cast(syntax.kind()) {
19159            Some(Self { syntax })
19160        } else {
19161            None
19162        }
19163    }
19164    #[inline]
19165    fn syntax(&self) -> &SyntaxNode {
19166        &self.syntax
19167    }
19168}
19169impl AstNode for AfterValue {
19170    #[inline]
19171    fn can_cast(kind: SyntaxKind) -> bool {
19172        kind == SyntaxKind::AFTER_VALUE
19173    }
19174    #[inline]
19175    fn cast(syntax: SyntaxNode) -> Option<Self> {
19176        if Self::can_cast(syntax.kind()) {
19177            Some(Self { syntax })
19178        } else {
19179            None
19180        }
19181    }
19182    #[inline]
19183    fn syntax(&self) -> &SyntaxNode {
19184        &self.syntax
19185    }
19186}
19187impl AstNode for Aggregate {
19188    #[inline]
19189    fn can_cast(kind: SyntaxKind) -> bool {
19190        kind == SyntaxKind::AGGREGATE
19191    }
19192    #[inline]
19193    fn cast(syntax: SyntaxNode) -> Option<Self> {
19194        if Self::can_cast(syntax.kind()) {
19195            Some(Self { syntax })
19196        } else {
19197            None
19198        }
19199    }
19200    #[inline]
19201    fn syntax(&self) -> &SyntaxNode {
19202        &self.syntax
19203    }
19204}
19205impl AstNode for Alias {
19206    #[inline]
19207    fn can_cast(kind: SyntaxKind) -> bool {
19208        kind == SyntaxKind::ALIAS
19209    }
19210    #[inline]
19211    fn cast(syntax: SyntaxNode) -> Option<Self> {
19212        if Self::can_cast(syntax.kind()) {
19213            Some(Self { syntax })
19214        } else {
19215            None
19216        }
19217    }
19218    #[inline]
19219    fn syntax(&self) -> &SyntaxNode {
19220        &self.syntax
19221    }
19222}
19223impl AstNode for AllFn {
19224    #[inline]
19225    fn can_cast(kind: SyntaxKind) -> bool {
19226        kind == SyntaxKind::ALL_FN
19227    }
19228    #[inline]
19229    fn cast(syntax: SyntaxNode) -> Option<Self> {
19230        if Self::can_cast(syntax.kind()) {
19231            Some(Self { syntax })
19232        } else {
19233            None
19234        }
19235    }
19236    #[inline]
19237    fn syntax(&self) -> &SyntaxNode {
19238        &self.syntax
19239    }
19240}
19241impl AstNode for AllProperties {
19242    #[inline]
19243    fn can_cast(kind: SyntaxKind) -> bool {
19244        kind == SyntaxKind::ALL_PROPERTIES
19245    }
19246    #[inline]
19247    fn cast(syntax: SyntaxNode) -> Option<Self> {
19248        if Self::can_cast(syntax.kind()) {
19249            Some(Self { syntax })
19250        } else {
19251            None
19252        }
19253    }
19254    #[inline]
19255    fn syntax(&self) -> &SyntaxNode {
19256        &self.syntax
19257    }
19258}
19259impl AstNode for AlterAggregate {
19260    #[inline]
19261    fn can_cast(kind: SyntaxKind) -> bool {
19262        kind == SyntaxKind::ALTER_AGGREGATE
19263    }
19264    #[inline]
19265    fn cast(syntax: SyntaxNode) -> Option<Self> {
19266        if Self::can_cast(syntax.kind()) {
19267            Some(Self { syntax })
19268        } else {
19269            None
19270        }
19271    }
19272    #[inline]
19273    fn syntax(&self) -> &SyntaxNode {
19274        &self.syntax
19275    }
19276}
19277impl AstNode for AlterAttribute {
19278    #[inline]
19279    fn can_cast(kind: SyntaxKind) -> bool {
19280        kind == SyntaxKind::ALTER_ATTRIBUTE
19281    }
19282    #[inline]
19283    fn cast(syntax: SyntaxNode) -> Option<Self> {
19284        if Self::can_cast(syntax.kind()) {
19285            Some(Self { syntax })
19286        } else {
19287            None
19288        }
19289    }
19290    #[inline]
19291    fn syntax(&self) -> &SyntaxNode {
19292        &self.syntax
19293    }
19294}
19295impl AstNode for AlterCollation {
19296    #[inline]
19297    fn can_cast(kind: SyntaxKind) -> bool {
19298        kind == SyntaxKind::ALTER_COLLATION
19299    }
19300    #[inline]
19301    fn cast(syntax: SyntaxNode) -> Option<Self> {
19302        if Self::can_cast(syntax.kind()) {
19303            Some(Self { syntax })
19304        } else {
19305            None
19306        }
19307    }
19308    #[inline]
19309    fn syntax(&self) -> &SyntaxNode {
19310        &self.syntax
19311    }
19312}
19313impl AstNode for AlterColumn {
19314    #[inline]
19315    fn can_cast(kind: SyntaxKind) -> bool {
19316        kind == SyntaxKind::ALTER_COLUMN
19317    }
19318    #[inline]
19319    fn cast(syntax: SyntaxNode) -> Option<Self> {
19320        if Self::can_cast(syntax.kind()) {
19321            Some(Self { syntax })
19322        } else {
19323            None
19324        }
19325    }
19326    #[inline]
19327    fn syntax(&self) -> &SyntaxNode {
19328        &self.syntax
19329    }
19330}
19331impl AstNode for AlterConstraint {
19332    #[inline]
19333    fn can_cast(kind: SyntaxKind) -> bool {
19334        kind == SyntaxKind::ALTER_CONSTRAINT
19335    }
19336    #[inline]
19337    fn cast(syntax: SyntaxNode) -> Option<Self> {
19338        if Self::can_cast(syntax.kind()) {
19339            Some(Self { syntax })
19340        } else {
19341            None
19342        }
19343    }
19344    #[inline]
19345    fn syntax(&self) -> &SyntaxNode {
19346        &self.syntax
19347    }
19348}
19349impl AstNode for AlterConversion {
19350    #[inline]
19351    fn can_cast(kind: SyntaxKind) -> bool {
19352        kind == SyntaxKind::ALTER_CONVERSION
19353    }
19354    #[inline]
19355    fn cast(syntax: SyntaxNode) -> Option<Self> {
19356        if Self::can_cast(syntax.kind()) {
19357            Some(Self { syntax })
19358        } else {
19359            None
19360        }
19361    }
19362    #[inline]
19363    fn syntax(&self) -> &SyntaxNode {
19364        &self.syntax
19365    }
19366}
19367impl AstNode for AlterDatabase {
19368    #[inline]
19369    fn can_cast(kind: SyntaxKind) -> bool {
19370        kind == SyntaxKind::ALTER_DATABASE
19371    }
19372    #[inline]
19373    fn cast(syntax: SyntaxNode) -> Option<Self> {
19374        if Self::can_cast(syntax.kind()) {
19375            Some(Self { syntax })
19376        } else {
19377            None
19378        }
19379    }
19380    #[inline]
19381    fn syntax(&self) -> &SyntaxNode {
19382        &self.syntax
19383    }
19384}
19385impl AstNode for AlterDefaultPrivileges {
19386    #[inline]
19387    fn can_cast(kind: SyntaxKind) -> bool {
19388        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
19389    }
19390    #[inline]
19391    fn cast(syntax: SyntaxNode) -> Option<Self> {
19392        if Self::can_cast(syntax.kind()) {
19393            Some(Self { syntax })
19394        } else {
19395            None
19396        }
19397    }
19398    #[inline]
19399    fn syntax(&self) -> &SyntaxNode {
19400        &self.syntax
19401    }
19402}
19403impl AstNode for AlterDomain {
19404    #[inline]
19405    fn can_cast(kind: SyntaxKind) -> bool {
19406        kind == SyntaxKind::ALTER_DOMAIN
19407    }
19408    #[inline]
19409    fn cast(syntax: SyntaxNode) -> Option<Self> {
19410        if Self::can_cast(syntax.kind()) {
19411            Some(Self { syntax })
19412        } else {
19413            None
19414        }
19415    }
19416    #[inline]
19417    fn syntax(&self) -> &SyntaxNode {
19418        &self.syntax
19419    }
19420}
19421impl AstNode for AlterEventTrigger {
19422    #[inline]
19423    fn can_cast(kind: SyntaxKind) -> bool {
19424        kind == SyntaxKind::ALTER_EVENT_TRIGGER
19425    }
19426    #[inline]
19427    fn cast(syntax: SyntaxNode) -> Option<Self> {
19428        if Self::can_cast(syntax.kind()) {
19429            Some(Self { syntax })
19430        } else {
19431            None
19432        }
19433    }
19434    #[inline]
19435    fn syntax(&self) -> &SyntaxNode {
19436        &self.syntax
19437    }
19438}
19439impl AstNode for AlterExtension {
19440    #[inline]
19441    fn can_cast(kind: SyntaxKind) -> bool {
19442        kind == SyntaxKind::ALTER_EXTENSION
19443    }
19444    #[inline]
19445    fn cast(syntax: SyntaxNode) -> Option<Self> {
19446        if Self::can_cast(syntax.kind()) {
19447            Some(Self { syntax })
19448        } else {
19449            None
19450        }
19451    }
19452    #[inline]
19453    fn syntax(&self) -> &SyntaxNode {
19454        &self.syntax
19455    }
19456}
19457impl AstNode for AlterForeignDataWrapper {
19458    #[inline]
19459    fn can_cast(kind: SyntaxKind) -> bool {
19460        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
19461    }
19462    #[inline]
19463    fn cast(syntax: SyntaxNode) -> Option<Self> {
19464        if Self::can_cast(syntax.kind()) {
19465            Some(Self { syntax })
19466        } else {
19467            None
19468        }
19469    }
19470    #[inline]
19471    fn syntax(&self) -> &SyntaxNode {
19472        &self.syntax
19473    }
19474}
19475impl AstNode for AlterForeignTable {
19476    #[inline]
19477    fn can_cast(kind: SyntaxKind) -> bool {
19478        kind == SyntaxKind::ALTER_FOREIGN_TABLE
19479    }
19480    #[inline]
19481    fn cast(syntax: SyntaxNode) -> Option<Self> {
19482        if Self::can_cast(syntax.kind()) {
19483            Some(Self { syntax })
19484        } else {
19485            None
19486        }
19487    }
19488    #[inline]
19489    fn syntax(&self) -> &SyntaxNode {
19490        &self.syntax
19491    }
19492}
19493impl AstNode for AlterFunction {
19494    #[inline]
19495    fn can_cast(kind: SyntaxKind) -> bool {
19496        kind == SyntaxKind::ALTER_FUNCTION
19497    }
19498    #[inline]
19499    fn cast(syntax: SyntaxNode) -> Option<Self> {
19500        if Self::can_cast(syntax.kind()) {
19501            Some(Self { syntax })
19502        } else {
19503            None
19504        }
19505    }
19506    #[inline]
19507    fn syntax(&self) -> &SyntaxNode {
19508        &self.syntax
19509    }
19510}
19511impl AstNode for AlterGroup {
19512    #[inline]
19513    fn can_cast(kind: SyntaxKind) -> bool {
19514        kind == SyntaxKind::ALTER_GROUP
19515    }
19516    #[inline]
19517    fn cast(syntax: SyntaxNode) -> Option<Self> {
19518        if Self::can_cast(syntax.kind()) {
19519            Some(Self { syntax })
19520        } else {
19521            None
19522        }
19523    }
19524    #[inline]
19525    fn syntax(&self) -> &SyntaxNode {
19526        &self.syntax
19527    }
19528}
19529impl AstNode for AlterIndex {
19530    #[inline]
19531    fn can_cast(kind: SyntaxKind) -> bool {
19532        kind == SyntaxKind::ALTER_INDEX
19533    }
19534    #[inline]
19535    fn cast(syntax: SyntaxNode) -> Option<Self> {
19536        if Self::can_cast(syntax.kind()) {
19537            Some(Self { syntax })
19538        } else {
19539            None
19540        }
19541    }
19542    #[inline]
19543    fn syntax(&self) -> &SyntaxNode {
19544        &self.syntax
19545    }
19546}
19547impl AstNode for AlterLanguage {
19548    #[inline]
19549    fn can_cast(kind: SyntaxKind) -> bool {
19550        kind == SyntaxKind::ALTER_LANGUAGE
19551    }
19552    #[inline]
19553    fn cast(syntax: SyntaxNode) -> Option<Self> {
19554        if Self::can_cast(syntax.kind()) {
19555            Some(Self { syntax })
19556        } else {
19557            None
19558        }
19559    }
19560    #[inline]
19561    fn syntax(&self) -> &SyntaxNode {
19562        &self.syntax
19563    }
19564}
19565impl AstNode for AlterLargeObject {
19566    #[inline]
19567    fn can_cast(kind: SyntaxKind) -> bool {
19568        kind == SyntaxKind::ALTER_LARGE_OBJECT
19569    }
19570    #[inline]
19571    fn cast(syntax: SyntaxNode) -> Option<Self> {
19572        if Self::can_cast(syntax.kind()) {
19573            Some(Self { syntax })
19574        } else {
19575            None
19576        }
19577    }
19578    #[inline]
19579    fn syntax(&self) -> &SyntaxNode {
19580        &self.syntax
19581    }
19582}
19583impl AstNode for AlterMaterializedView {
19584    #[inline]
19585    fn can_cast(kind: SyntaxKind) -> bool {
19586        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
19587    }
19588    #[inline]
19589    fn cast(syntax: SyntaxNode) -> Option<Self> {
19590        if Self::can_cast(syntax.kind()) {
19591            Some(Self { syntax })
19592        } else {
19593            None
19594        }
19595    }
19596    #[inline]
19597    fn syntax(&self) -> &SyntaxNode {
19598        &self.syntax
19599    }
19600}
19601impl AstNode for AlterOperator {
19602    #[inline]
19603    fn can_cast(kind: SyntaxKind) -> bool {
19604        kind == SyntaxKind::ALTER_OPERATOR
19605    }
19606    #[inline]
19607    fn cast(syntax: SyntaxNode) -> Option<Self> {
19608        if Self::can_cast(syntax.kind()) {
19609            Some(Self { syntax })
19610        } else {
19611            None
19612        }
19613    }
19614    #[inline]
19615    fn syntax(&self) -> &SyntaxNode {
19616        &self.syntax
19617    }
19618}
19619impl AstNode for AlterOperatorClass {
19620    #[inline]
19621    fn can_cast(kind: SyntaxKind) -> bool {
19622        kind == SyntaxKind::ALTER_OPERATOR_CLASS
19623    }
19624    #[inline]
19625    fn cast(syntax: SyntaxNode) -> Option<Self> {
19626        if Self::can_cast(syntax.kind()) {
19627            Some(Self { syntax })
19628        } else {
19629            None
19630        }
19631    }
19632    #[inline]
19633    fn syntax(&self) -> &SyntaxNode {
19634        &self.syntax
19635    }
19636}
19637impl AstNode for AlterOperatorFamily {
19638    #[inline]
19639    fn can_cast(kind: SyntaxKind) -> bool {
19640        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
19641    }
19642    #[inline]
19643    fn cast(syntax: SyntaxNode) -> Option<Self> {
19644        if Self::can_cast(syntax.kind()) {
19645            Some(Self { syntax })
19646        } else {
19647            None
19648        }
19649    }
19650    #[inline]
19651    fn syntax(&self) -> &SyntaxNode {
19652        &self.syntax
19653    }
19654}
19655impl AstNode for AlterOption {
19656    #[inline]
19657    fn can_cast(kind: SyntaxKind) -> bool {
19658        kind == SyntaxKind::ALTER_OPTION
19659    }
19660    #[inline]
19661    fn cast(syntax: SyntaxNode) -> Option<Self> {
19662        if Self::can_cast(syntax.kind()) {
19663            Some(Self { syntax })
19664        } else {
19665            None
19666        }
19667    }
19668    #[inline]
19669    fn syntax(&self) -> &SyntaxNode {
19670        &self.syntax
19671    }
19672}
19673impl AstNode for AlterOptionList {
19674    #[inline]
19675    fn can_cast(kind: SyntaxKind) -> bool {
19676        kind == SyntaxKind::ALTER_OPTION_LIST
19677    }
19678    #[inline]
19679    fn cast(syntax: SyntaxNode) -> Option<Self> {
19680        if Self::can_cast(syntax.kind()) {
19681            Some(Self { syntax })
19682        } else {
19683            None
19684        }
19685    }
19686    #[inline]
19687    fn syntax(&self) -> &SyntaxNode {
19688        &self.syntax
19689    }
19690}
19691impl AstNode for AlterPolicy {
19692    #[inline]
19693    fn can_cast(kind: SyntaxKind) -> bool {
19694        kind == SyntaxKind::ALTER_POLICY
19695    }
19696    #[inline]
19697    fn cast(syntax: SyntaxNode) -> Option<Self> {
19698        if Self::can_cast(syntax.kind()) {
19699            Some(Self { syntax })
19700        } else {
19701            None
19702        }
19703    }
19704    #[inline]
19705    fn syntax(&self) -> &SyntaxNode {
19706        &self.syntax
19707    }
19708}
19709impl AstNode for AlterProcedure {
19710    #[inline]
19711    fn can_cast(kind: SyntaxKind) -> bool {
19712        kind == SyntaxKind::ALTER_PROCEDURE
19713    }
19714    #[inline]
19715    fn cast(syntax: SyntaxNode) -> Option<Self> {
19716        if Self::can_cast(syntax.kind()) {
19717            Some(Self { syntax })
19718        } else {
19719            None
19720        }
19721    }
19722    #[inline]
19723    fn syntax(&self) -> &SyntaxNode {
19724        &self.syntax
19725    }
19726}
19727impl AstNode for AlterPropertyGraph {
19728    #[inline]
19729    fn can_cast(kind: SyntaxKind) -> bool {
19730        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
19731    }
19732    #[inline]
19733    fn cast(syntax: SyntaxNode) -> Option<Self> {
19734        if Self::can_cast(syntax.kind()) {
19735            Some(Self { syntax })
19736        } else {
19737            None
19738        }
19739    }
19740    #[inline]
19741    fn syntax(&self) -> &SyntaxNode {
19742        &self.syntax
19743    }
19744}
19745impl AstNode for AlterPublication {
19746    #[inline]
19747    fn can_cast(kind: SyntaxKind) -> bool {
19748        kind == SyntaxKind::ALTER_PUBLICATION
19749    }
19750    #[inline]
19751    fn cast(syntax: SyntaxNode) -> Option<Self> {
19752        if Self::can_cast(syntax.kind()) {
19753            Some(Self { syntax })
19754        } else {
19755            None
19756        }
19757    }
19758    #[inline]
19759    fn syntax(&self) -> &SyntaxNode {
19760        &self.syntax
19761    }
19762}
19763impl AstNode for AlterRole {
19764    #[inline]
19765    fn can_cast(kind: SyntaxKind) -> bool {
19766        kind == SyntaxKind::ALTER_ROLE
19767    }
19768    #[inline]
19769    fn cast(syntax: SyntaxNode) -> Option<Self> {
19770        if Self::can_cast(syntax.kind()) {
19771            Some(Self { syntax })
19772        } else {
19773            None
19774        }
19775    }
19776    #[inline]
19777    fn syntax(&self) -> &SyntaxNode {
19778        &self.syntax
19779    }
19780}
19781impl AstNode for AlterRoutine {
19782    #[inline]
19783    fn can_cast(kind: SyntaxKind) -> bool {
19784        kind == SyntaxKind::ALTER_ROUTINE
19785    }
19786    #[inline]
19787    fn cast(syntax: SyntaxNode) -> Option<Self> {
19788        if Self::can_cast(syntax.kind()) {
19789            Some(Self { syntax })
19790        } else {
19791            None
19792        }
19793    }
19794    #[inline]
19795    fn syntax(&self) -> &SyntaxNode {
19796        &self.syntax
19797    }
19798}
19799impl AstNode for AlterRule {
19800    #[inline]
19801    fn can_cast(kind: SyntaxKind) -> bool {
19802        kind == SyntaxKind::ALTER_RULE
19803    }
19804    #[inline]
19805    fn cast(syntax: SyntaxNode) -> Option<Self> {
19806        if Self::can_cast(syntax.kind()) {
19807            Some(Self { syntax })
19808        } else {
19809            None
19810        }
19811    }
19812    #[inline]
19813    fn syntax(&self) -> &SyntaxNode {
19814        &self.syntax
19815    }
19816}
19817impl AstNode for AlterSchema {
19818    #[inline]
19819    fn can_cast(kind: SyntaxKind) -> bool {
19820        kind == SyntaxKind::ALTER_SCHEMA
19821    }
19822    #[inline]
19823    fn cast(syntax: SyntaxNode) -> Option<Self> {
19824        if Self::can_cast(syntax.kind()) {
19825            Some(Self { syntax })
19826        } else {
19827            None
19828        }
19829    }
19830    #[inline]
19831    fn syntax(&self) -> &SyntaxNode {
19832        &self.syntax
19833    }
19834}
19835impl AstNode for AlterSequence {
19836    #[inline]
19837    fn can_cast(kind: SyntaxKind) -> bool {
19838        kind == SyntaxKind::ALTER_SEQUENCE
19839    }
19840    #[inline]
19841    fn cast(syntax: SyntaxNode) -> Option<Self> {
19842        if Self::can_cast(syntax.kind()) {
19843            Some(Self { syntax })
19844        } else {
19845            None
19846        }
19847    }
19848    #[inline]
19849    fn syntax(&self) -> &SyntaxNode {
19850        &self.syntax
19851    }
19852}
19853impl AstNode for AlterServer {
19854    #[inline]
19855    fn can_cast(kind: SyntaxKind) -> bool {
19856        kind == SyntaxKind::ALTER_SERVER
19857    }
19858    #[inline]
19859    fn cast(syntax: SyntaxNode) -> Option<Self> {
19860        if Self::can_cast(syntax.kind()) {
19861            Some(Self { syntax })
19862        } else {
19863            None
19864        }
19865    }
19866    #[inline]
19867    fn syntax(&self) -> &SyntaxNode {
19868        &self.syntax
19869    }
19870}
19871impl AstNode for AlterSetStatistics {
19872    #[inline]
19873    fn can_cast(kind: SyntaxKind) -> bool {
19874        kind == SyntaxKind::ALTER_SET_STATISTICS
19875    }
19876    #[inline]
19877    fn cast(syntax: SyntaxNode) -> Option<Self> {
19878        if Self::can_cast(syntax.kind()) {
19879            Some(Self { syntax })
19880        } else {
19881            None
19882        }
19883    }
19884    #[inline]
19885    fn syntax(&self) -> &SyntaxNode {
19886        &self.syntax
19887    }
19888}
19889impl AstNode for AlterStatistics {
19890    #[inline]
19891    fn can_cast(kind: SyntaxKind) -> bool {
19892        kind == SyntaxKind::ALTER_STATISTICS
19893    }
19894    #[inline]
19895    fn cast(syntax: SyntaxNode) -> Option<Self> {
19896        if Self::can_cast(syntax.kind()) {
19897            Some(Self { syntax })
19898        } else {
19899            None
19900        }
19901    }
19902    #[inline]
19903    fn syntax(&self) -> &SyntaxNode {
19904        &self.syntax
19905    }
19906}
19907impl AstNode for AlterSubscription {
19908    #[inline]
19909    fn can_cast(kind: SyntaxKind) -> bool {
19910        kind == SyntaxKind::ALTER_SUBSCRIPTION
19911    }
19912    #[inline]
19913    fn cast(syntax: SyntaxNode) -> Option<Self> {
19914        if Self::can_cast(syntax.kind()) {
19915            Some(Self { syntax })
19916        } else {
19917            None
19918        }
19919    }
19920    #[inline]
19921    fn syntax(&self) -> &SyntaxNode {
19922        &self.syntax
19923    }
19924}
19925impl AstNode for AlterSystem {
19926    #[inline]
19927    fn can_cast(kind: SyntaxKind) -> bool {
19928        kind == SyntaxKind::ALTER_SYSTEM
19929    }
19930    #[inline]
19931    fn cast(syntax: SyntaxNode) -> Option<Self> {
19932        if Self::can_cast(syntax.kind()) {
19933            Some(Self { syntax })
19934        } else {
19935            None
19936        }
19937    }
19938    #[inline]
19939    fn syntax(&self) -> &SyntaxNode {
19940        &self.syntax
19941    }
19942}
19943impl AstNode for AlterTable {
19944    #[inline]
19945    fn can_cast(kind: SyntaxKind) -> bool {
19946        kind == SyntaxKind::ALTER_TABLE
19947    }
19948    #[inline]
19949    fn cast(syntax: SyntaxNode) -> Option<Self> {
19950        if Self::can_cast(syntax.kind()) {
19951            Some(Self { syntax })
19952        } else {
19953            None
19954        }
19955    }
19956    #[inline]
19957    fn syntax(&self) -> &SyntaxNode {
19958        &self.syntax
19959    }
19960}
19961impl AstNode for AlterTablespace {
19962    #[inline]
19963    fn can_cast(kind: SyntaxKind) -> bool {
19964        kind == SyntaxKind::ALTER_TABLESPACE
19965    }
19966    #[inline]
19967    fn cast(syntax: SyntaxNode) -> Option<Self> {
19968        if Self::can_cast(syntax.kind()) {
19969            Some(Self { syntax })
19970        } else {
19971            None
19972        }
19973    }
19974    #[inline]
19975    fn syntax(&self) -> &SyntaxNode {
19976        &self.syntax
19977    }
19978}
19979impl AstNode for AlterTextSearchConfiguration {
19980    #[inline]
19981    fn can_cast(kind: SyntaxKind) -> bool {
19982        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
19983    }
19984    #[inline]
19985    fn cast(syntax: SyntaxNode) -> Option<Self> {
19986        if Self::can_cast(syntax.kind()) {
19987            Some(Self { syntax })
19988        } else {
19989            None
19990        }
19991    }
19992    #[inline]
19993    fn syntax(&self) -> &SyntaxNode {
19994        &self.syntax
19995    }
19996}
19997impl AstNode for AlterTextSearchDictionary {
19998    #[inline]
19999    fn can_cast(kind: SyntaxKind) -> bool {
20000        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20001    }
20002    #[inline]
20003    fn cast(syntax: SyntaxNode) -> Option<Self> {
20004        if Self::can_cast(syntax.kind()) {
20005            Some(Self { syntax })
20006        } else {
20007            None
20008        }
20009    }
20010    #[inline]
20011    fn syntax(&self) -> &SyntaxNode {
20012        &self.syntax
20013    }
20014}
20015impl AstNode for AlterTextSearchParser {
20016    #[inline]
20017    fn can_cast(kind: SyntaxKind) -> bool {
20018        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20019    }
20020    #[inline]
20021    fn cast(syntax: SyntaxNode) -> Option<Self> {
20022        if Self::can_cast(syntax.kind()) {
20023            Some(Self { syntax })
20024        } else {
20025            None
20026        }
20027    }
20028    #[inline]
20029    fn syntax(&self) -> &SyntaxNode {
20030        &self.syntax
20031    }
20032}
20033impl AstNode for AlterTextSearchTemplate {
20034    #[inline]
20035    fn can_cast(kind: SyntaxKind) -> bool {
20036        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20037    }
20038    #[inline]
20039    fn cast(syntax: SyntaxNode) -> Option<Self> {
20040        if Self::can_cast(syntax.kind()) {
20041            Some(Self { syntax })
20042        } else {
20043            None
20044        }
20045    }
20046    #[inline]
20047    fn syntax(&self) -> &SyntaxNode {
20048        &self.syntax
20049    }
20050}
20051impl AstNode for AlterTrigger {
20052    #[inline]
20053    fn can_cast(kind: SyntaxKind) -> bool {
20054        kind == SyntaxKind::ALTER_TRIGGER
20055    }
20056    #[inline]
20057    fn cast(syntax: SyntaxNode) -> Option<Self> {
20058        if Self::can_cast(syntax.kind()) {
20059            Some(Self { syntax })
20060        } else {
20061            None
20062        }
20063    }
20064    #[inline]
20065    fn syntax(&self) -> &SyntaxNode {
20066        &self.syntax
20067    }
20068}
20069impl AstNode for AlterType {
20070    #[inline]
20071    fn can_cast(kind: SyntaxKind) -> bool {
20072        kind == SyntaxKind::ALTER_TYPE
20073    }
20074    #[inline]
20075    fn cast(syntax: SyntaxNode) -> Option<Self> {
20076        if Self::can_cast(syntax.kind()) {
20077            Some(Self { syntax })
20078        } else {
20079            None
20080        }
20081    }
20082    #[inline]
20083    fn syntax(&self) -> &SyntaxNode {
20084        &self.syntax
20085    }
20086}
20087impl AstNode for AlterUser {
20088    #[inline]
20089    fn can_cast(kind: SyntaxKind) -> bool {
20090        kind == SyntaxKind::ALTER_USER
20091    }
20092    #[inline]
20093    fn cast(syntax: SyntaxNode) -> Option<Self> {
20094        if Self::can_cast(syntax.kind()) {
20095            Some(Self { syntax })
20096        } else {
20097            None
20098        }
20099    }
20100    #[inline]
20101    fn syntax(&self) -> &SyntaxNode {
20102        &self.syntax
20103    }
20104}
20105impl AstNode for AlterUserMapping {
20106    #[inline]
20107    fn can_cast(kind: SyntaxKind) -> bool {
20108        kind == SyntaxKind::ALTER_USER_MAPPING
20109    }
20110    #[inline]
20111    fn cast(syntax: SyntaxNode) -> Option<Self> {
20112        if Self::can_cast(syntax.kind()) {
20113            Some(Self { syntax })
20114        } else {
20115            None
20116        }
20117    }
20118    #[inline]
20119    fn syntax(&self) -> &SyntaxNode {
20120        &self.syntax
20121    }
20122}
20123impl AstNode for AlterVertexEdgeLabels {
20124    #[inline]
20125    fn can_cast(kind: SyntaxKind) -> bool {
20126        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20127    }
20128    #[inline]
20129    fn cast(syntax: SyntaxNode) -> Option<Self> {
20130        if Self::can_cast(syntax.kind()) {
20131            Some(Self { syntax })
20132        } else {
20133            None
20134        }
20135    }
20136    #[inline]
20137    fn syntax(&self) -> &SyntaxNode {
20138        &self.syntax
20139    }
20140}
20141impl AstNode for AlterView {
20142    #[inline]
20143    fn can_cast(kind: SyntaxKind) -> bool {
20144        kind == SyntaxKind::ALTER_VIEW
20145    }
20146    #[inline]
20147    fn cast(syntax: SyntaxNode) -> Option<Self> {
20148        if Self::can_cast(syntax.kind()) {
20149            Some(Self { syntax })
20150        } else {
20151            None
20152        }
20153    }
20154    #[inline]
20155    fn syntax(&self) -> &SyntaxNode {
20156        &self.syntax
20157    }
20158}
20159impl AstNode for Analyze {
20160    #[inline]
20161    fn can_cast(kind: SyntaxKind) -> bool {
20162        kind == SyntaxKind::ANALYZE
20163    }
20164    #[inline]
20165    fn cast(syntax: SyntaxNode) -> Option<Self> {
20166        if Self::can_cast(syntax.kind()) {
20167            Some(Self { syntax })
20168        } else {
20169            None
20170        }
20171    }
20172    #[inline]
20173    fn syntax(&self) -> &SyntaxNode {
20174        &self.syntax
20175    }
20176}
20177impl AstNode for AnyFn {
20178    #[inline]
20179    fn can_cast(kind: SyntaxKind) -> bool {
20180        kind == SyntaxKind::ANY_FN
20181    }
20182    #[inline]
20183    fn cast(syntax: SyntaxNode) -> Option<Self> {
20184        if Self::can_cast(syntax.kind()) {
20185            Some(Self { syntax })
20186        } else {
20187            None
20188        }
20189    }
20190    #[inline]
20191    fn syntax(&self) -> &SyntaxNode {
20192        &self.syntax
20193    }
20194}
20195impl AstNode for Arg {
20196    #[inline]
20197    fn can_cast(kind: SyntaxKind) -> bool {
20198        kind == SyntaxKind::ARG
20199    }
20200    #[inline]
20201    fn cast(syntax: SyntaxNode) -> Option<Self> {
20202        if Self::can_cast(syntax.kind()) {
20203            Some(Self { syntax })
20204        } else {
20205            None
20206        }
20207    }
20208    #[inline]
20209    fn syntax(&self) -> &SyntaxNode {
20210        &self.syntax
20211    }
20212}
20213impl AstNode for ArgList {
20214    #[inline]
20215    fn can_cast(kind: SyntaxKind) -> bool {
20216        kind == SyntaxKind::ARG_LIST
20217    }
20218    #[inline]
20219    fn cast(syntax: SyntaxNode) -> Option<Self> {
20220        if Self::can_cast(syntax.kind()) {
20221            Some(Self { syntax })
20222        } else {
20223            None
20224        }
20225    }
20226    #[inline]
20227    fn syntax(&self) -> &SyntaxNode {
20228        &self.syntax
20229    }
20230}
20231impl AstNode for ArrayExpr {
20232    #[inline]
20233    fn can_cast(kind: SyntaxKind) -> bool {
20234        kind == SyntaxKind::ARRAY_EXPR
20235    }
20236    #[inline]
20237    fn cast(syntax: SyntaxNode) -> Option<Self> {
20238        if Self::can_cast(syntax.kind()) {
20239            Some(Self { syntax })
20240        } else {
20241            None
20242        }
20243    }
20244    #[inline]
20245    fn syntax(&self) -> &SyntaxNode {
20246        &self.syntax
20247    }
20248}
20249impl AstNode for ArrayType {
20250    #[inline]
20251    fn can_cast(kind: SyntaxKind) -> bool {
20252        kind == SyntaxKind::ARRAY_TYPE
20253    }
20254    #[inline]
20255    fn cast(syntax: SyntaxNode) -> Option<Self> {
20256        if Self::can_cast(syntax.kind()) {
20257            Some(Self { syntax })
20258        } else {
20259            None
20260        }
20261    }
20262    #[inline]
20263    fn syntax(&self) -> &SyntaxNode {
20264        &self.syntax
20265    }
20266}
20267impl AstNode for AsFuncOption {
20268    #[inline]
20269    fn can_cast(kind: SyntaxKind) -> bool {
20270        kind == SyntaxKind::AS_FUNC_OPTION
20271    }
20272    #[inline]
20273    fn cast(syntax: SyntaxNode) -> Option<Self> {
20274        if Self::can_cast(syntax.kind()) {
20275            Some(Self { syntax })
20276        } else {
20277            None
20278        }
20279    }
20280    #[inline]
20281    fn syntax(&self) -> &SyntaxNode {
20282        &self.syntax
20283    }
20284}
20285impl AstNode for AsName {
20286    #[inline]
20287    fn can_cast(kind: SyntaxKind) -> bool {
20288        kind == SyntaxKind::AS_NAME
20289    }
20290    #[inline]
20291    fn cast(syntax: SyntaxNode) -> Option<Self> {
20292        if Self::can_cast(syntax.kind()) {
20293            Some(Self { syntax })
20294        } else {
20295            None
20296        }
20297    }
20298    #[inline]
20299    fn syntax(&self) -> &SyntaxNode {
20300        &self.syntax
20301    }
20302}
20303impl AstNode for AsPolicyType {
20304    #[inline]
20305    fn can_cast(kind: SyntaxKind) -> bool {
20306        kind == SyntaxKind::AS_POLICY_TYPE
20307    }
20308    #[inline]
20309    fn cast(syntax: SyntaxNode) -> Option<Self> {
20310        if Self::can_cast(syntax.kind()) {
20311            Some(Self { syntax })
20312        } else {
20313            None
20314        }
20315    }
20316    #[inline]
20317    fn syntax(&self) -> &SyntaxNode {
20318        &self.syntax
20319    }
20320}
20321impl AstNode for AtTimeZone {
20322    #[inline]
20323    fn can_cast(kind: SyntaxKind) -> bool {
20324        kind == SyntaxKind::AT_TIME_ZONE
20325    }
20326    #[inline]
20327    fn cast(syntax: SyntaxNode) -> Option<Self> {
20328        if Self::can_cast(syntax.kind()) {
20329            Some(Self { syntax })
20330        } else {
20331            None
20332        }
20333    }
20334    #[inline]
20335    fn syntax(&self) -> &SyntaxNode {
20336        &self.syntax
20337    }
20338}
20339impl AstNode for AttachPartition {
20340    #[inline]
20341    fn can_cast(kind: SyntaxKind) -> bool {
20342        kind == SyntaxKind::ATTACH_PARTITION
20343    }
20344    #[inline]
20345    fn cast(syntax: SyntaxNode) -> Option<Self> {
20346        if Self::can_cast(syntax.kind()) {
20347            Some(Self { syntax })
20348        } else {
20349            None
20350        }
20351    }
20352    #[inline]
20353    fn syntax(&self) -> &SyntaxNode {
20354        &self.syntax
20355    }
20356}
20357impl AstNode for AttributeList {
20358    #[inline]
20359    fn can_cast(kind: SyntaxKind) -> bool {
20360        kind == SyntaxKind::ATTRIBUTE_LIST
20361    }
20362    #[inline]
20363    fn cast(syntax: SyntaxNode) -> Option<Self> {
20364        if Self::can_cast(syntax.kind()) {
20365            Some(Self { syntax })
20366        } else {
20367            None
20368        }
20369    }
20370    #[inline]
20371    fn syntax(&self) -> &SyntaxNode {
20372        &self.syntax
20373    }
20374}
20375impl AstNode for AttributeOption {
20376    #[inline]
20377    fn can_cast(kind: SyntaxKind) -> bool {
20378        kind == SyntaxKind::ATTRIBUTE_OPTION
20379    }
20380    #[inline]
20381    fn cast(syntax: SyntaxNode) -> Option<Self> {
20382        if Self::can_cast(syntax.kind()) {
20383            Some(Self { syntax })
20384        } else {
20385            None
20386        }
20387    }
20388    #[inline]
20389    fn syntax(&self) -> &SyntaxNode {
20390        &self.syntax
20391    }
20392}
20393impl AstNode for AttributeValue {
20394    #[inline]
20395    fn can_cast(kind: SyntaxKind) -> bool {
20396        kind == SyntaxKind::ATTRIBUTE_VALUE
20397    }
20398    #[inline]
20399    fn cast(syntax: SyntaxNode) -> Option<Self> {
20400        if Self::can_cast(syntax.kind()) {
20401            Some(Self { syntax })
20402        } else {
20403            None
20404        }
20405    }
20406    #[inline]
20407    fn syntax(&self) -> &SyntaxNode {
20408        &self.syntax
20409    }
20410}
20411impl AstNode for BeforeValue {
20412    #[inline]
20413    fn can_cast(kind: SyntaxKind) -> bool {
20414        kind == SyntaxKind::BEFORE_VALUE
20415    }
20416    #[inline]
20417    fn cast(syntax: SyntaxNode) -> Option<Self> {
20418        if Self::can_cast(syntax.kind()) {
20419            Some(Self { syntax })
20420        } else {
20421            None
20422        }
20423    }
20424    #[inline]
20425    fn syntax(&self) -> &SyntaxNode {
20426        &self.syntax
20427    }
20428}
20429impl AstNode for Begin {
20430    #[inline]
20431    fn can_cast(kind: SyntaxKind) -> bool {
20432        kind == SyntaxKind::BEGIN
20433    }
20434    #[inline]
20435    fn cast(syntax: SyntaxNode) -> Option<Self> {
20436        if Self::can_cast(syntax.kind()) {
20437            Some(Self { syntax })
20438        } else {
20439            None
20440        }
20441    }
20442    #[inline]
20443    fn syntax(&self) -> &SyntaxNode {
20444        &self.syntax
20445    }
20446}
20447impl AstNode for BeginFuncOption {
20448    #[inline]
20449    fn can_cast(kind: SyntaxKind) -> bool {
20450        kind == SyntaxKind::BEGIN_FUNC_OPTION
20451    }
20452    #[inline]
20453    fn cast(syntax: SyntaxNode) -> Option<Self> {
20454        if Self::can_cast(syntax.kind()) {
20455            Some(Self { syntax })
20456        } else {
20457            None
20458        }
20459    }
20460    #[inline]
20461    fn syntax(&self) -> &SyntaxNode {
20462        &self.syntax
20463    }
20464}
20465impl AstNode for BeginFuncOptionList {
20466    #[inline]
20467    fn can_cast(kind: SyntaxKind) -> bool {
20468        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
20469    }
20470    #[inline]
20471    fn cast(syntax: SyntaxNode) -> Option<Self> {
20472        if Self::can_cast(syntax.kind()) {
20473            Some(Self { syntax })
20474        } else {
20475            None
20476        }
20477    }
20478    #[inline]
20479    fn syntax(&self) -> &SyntaxNode {
20480        &self.syntax
20481    }
20482}
20483impl AstNode for BetweenExpr {
20484    #[inline]
20485    fn can_cast(kind: SyntaxKind) -> bool {
20486        kind == SyntaxKind::BETWEEN_EXPR
20487    }
20488    #[inline]
20489    fn cast(syntax: SyntaxNode) -> Option<Self> {
20490        if Self::can_cast(syntax.kind()) {
20491            Some(Self { syntax })
20492        } else {
20493            None
20494        }
20495    }
20496    #[inline]
20497    fn syntax(&self) -> &SyntaxNode {
20498        &self.syntax
20499    }
20500}
20501impl AstNode for BinExpr {
20502    #[inline]
20503    fn can_cast(kind: SyntaxKind) -> bool {
20504        kind == SyntaxKind::BIN_EXPR
20505    }
20506    #[inline]
20507    fn cast(syntax: SyntaxNode) -> Option<Self> {
20508        if Self::can_cast(syntax.kind()) {
20509            Some(Self { syntax })
20510        } else {
20511            None
20512        }
20513    }
20514    #[inline]
20515    fn syntax(&self) -> &SyntaxNode {
20516        &self.syntax
20517    }
20518}
20519impl AstNode for BitType {
20520    #[inline]
20521    fn can_cast(kind: SyntaxKind) -> bool {
20522        kind == SyntaxKind::BIT_TYPE
20523    }
20524    #[inline]
20525    fn cast(syntax: SyntaxNode) -> Option<Self> {
20526        if Self::can_cast(syntax.kind()) {
20527            Some(Self { syntax })
20528        } else {
20529            None
20530        }
20531    }
20532    #[inline]
20533    fn syntax(&self) -> &SyntaxNode {
20534        &self.syntax
20535    }
20536}
20537impl AstNode for Call {
20538    #[inline]
20539    fn can_cast(kind: SyntaxKind) -> bool {
20540        kind == SyntaxKind::CALL
20541    }
20542    #[inline]
20543    fn cast(syntax: SyntaxNode) -> Option<Self> {
20544        if Self::can_cast(syntax.kind()) {
20545            Some(Self { syntax })
20546        } else {
20547            None
20548        }
20549    }
20550    #[inline]
20551    fn syntax(&self) -> &SyntaxNode {
20552        &self.syntax
20553    }
20554}
20555impl AstNode for CallExpr {
20556    #[inline]
20557    fn can_cast(kind: SyntaxKind) -> bool {
20558        kind == SyntaxKind::CALL_EXPR
20559    }
20560    #[inline]
20561    fn cast(syntax: SyntaxNode) -> Option<Self> {
20562        if Self::can_cast(syntax.kind()) {
20563            Some(Self { syntax })
20564        } else {
20565            None
20566        }
20567    }
20568    #[inline]
20569    fn syntax(&self) -> &SyntaxNode {
20570        &self.syntax
20571    }
20572}
20573impl AstNode for Cascade {
20574    #[inline]
20575    fn can_cast(kind: SyntaxKind) -> bool {
20576        kind == SyntaxKind::CASCADE
20577    }
20578    #[inline]
20579    fn cast(syntax: SyntaxNode) -> Option<Self> {
20580        if Self::can_cast(syntax.kind()) {
20581            Some(Self { syntax })
20582        } else {
20583            None
20584        }
20585    }
20586    #[inline]
20587    fn syntax(&self) -> &SyntaxNode {
20588        &self.syntax
20589    }
20590}
20591impl AstNode for CaseExpr {
20592    #[inline]
20593    fn can_cast(kind: SyntaxKind) -> bool {
20594        kind == SyntaxKind::CASE_EXPR
20595    }
20596    #[inline]
20597    fn cast(syntax: SyntaxNode) -> Option<Self> {
20598        if Self::can_cast(syntax.kind()) {
20599            Some(Self { syntax })
20600        } else {
20601            None
20602        }
20603    }
20604    #[inline]
20605    fn syntax(&self) -> &SyntaxNode {
20606        &self.syntax
20607    }
20608}
20609impl AstNode for CastExpr {
20610    #[inline]
20611    fn can_cast(kind: SyntaxKind) -> bool {
20612        kind == SyntaxKind::CAST_EXPR
20613    }
20614    #[inline]
20615    fn cast(syntax: SyntaxNode) -> Option<Self> {
20616        if Self::can_cast(syntax.kind()) {
20617            Some(Self { syntax })
20618        } else {
20619            None
20620        }
20621    }
20622    #[inline]
20623    fn syntax(&self) -> &SyntaxNode {
20624        &self.syntax
20625    }
20626}
20627impl AstNode for CastSig {
20628    #[inline]
20629    fn can_cast(kind: SyntaxKind) -> bool {
20630        kind == SyntaxKind::CAST_SIG
20631    }
20632    #[inline]
20633    fn cast(syntax: SyntaxNode) -> Option<Self> {
20634        if Self::can_cast(syntax.kind()) {
20635            Some(Self { syntax })
20636        } else {
20637            None
20638        }
20639    }
20640    #[inline]
20641    fn syntax(&self) -> &SyntaxNode {
20642        &self.syntax
20643    }
20644}
20645impl AstNode for CharType {
20646    #[inline]
20647    fn can_cast(kind: SyntaxKind) -> bool {
20648        kind == SyntaxKind::CHAR_TYPE
20649    }
20650    #[inline]
20651    fn cast(syntax: SyntaxNode) -> Option<Self> {
20652        if Self::can_cast(syntax.kind()) {
20653            Some(Self { syntax })
20654        } else {
20655            None
20656        }
20657    }
20658    #[inline]
20659    fn syntax(&self) -> &SyntaxNode {
20660        &self.syntax
20661    }
20662}
20663impl AstNode for CheckConstraint {
20664    #[inline]
20665    fn can_cast(kind: SyntaxKind) -> bool {
20666        kind == SyntaxKind::CHECK_CONSTRAINT
20667    }
20668    #[inline]
20669    fn cast(syntax: SyntaxNode) -> Option<Self> {
20670        if Self::can_cast(syntax.kind()) {
20671            Some(Self { syntax })
20672        } else {
20673            None
20674        }
20675    }
20676    #[inline]
20677    fn syntax(&self) -> &SyntaxNode {
20678        &self.syntax
20679    }
20680}
20681impl AstNode for Checkpoint {
20682    #[inline]
20683    fn can_cast(kind: SyntaxKind) -> bool {
20684        kind == SyntaxKind::CHECKPOINT
20685    }
20686    #[inline]
20687    fn cast(syntax: SyntaxNode) -> Option<Self> {
20688        if Self::can_cast(syntax.kind()) {
20689            Some(Self { syntax })
20690        } else {
20691            None
20692        }
20693    }
20694    #[inline]
20695    fn syntax(&self) -> &SyntaxNode {
20696        &self.syntax
20697    }
20698}
20699impl AstNode for Close {
20700    #[inline]
20701    fn can_cast(kind: SyntaxKind) -> bool {
20702        kind == SyntaxKind::CLOSE
20703    }
20704    #[inline]
20705    fn cast(syntax: SyntaxNode) -> Option<Self> {
20706        if Self::can_cast(syntax.kind()) {
20707            Some(Self { syntax })
20708        } else {
20709            None
20710        }
20711    }
20712    #[inline]
20713    fn syntax(&self) -> &SyntaxNode {
20714        &self.syntax
20715    }
20716}
20717impl AstNode for Cluster {
20718    #[inline]
20719    fn can_cast(kind: SyntaxKind) -> bool {
20720        kind == SyntaxKind::CLUSTER
20721    }
20722    #[inline]
20723    fn cast(syntax: SyntaxNode) -> Option<Self> {
20724        if Self::can_cast(syntax.kind()) {
20725            Some(Self { syntax })
20726        } else {
20727            None
20728        }
20729    }
20730    #[inline]
20731    fn syntax(&self) -> &SyntaxNode {
20732        &self.syntax
20733    }
20734}
20735impl AstNode for ClusterOn {
20736    #[inline]
20737    fn can_cast(kind: SyntaxKind) -> bool {
20738        kind == SyntaxKind::CLUSTER_ON
20739    }
20740    #[inline]
20741    fn cast(syntax: SyntaxNode) -> Option<Self> {
20742        if Self::can_cast(syntax.kind()) {
20743            Some(Self { syntax })
20744        } else {
20745            None
20746        }
20747    }
20748    #[inline]
20749    fn syntax(&self) -> &SyntaxNode {
20750        &self.syntax
20751    }
20752}
20753impl AstNode for Collate {
20754    #[inline]
20755    fn can_cast(kind: SyntaxKind) -> bool {
20756        kind == SyntaxKind::COLLATE
20757    }
20758    #[inline]
20759    fn cast(syntax: SyntaxNode) -> Option<Self> {
20760        if Self::can_cast(syntax.kind()) {
20761            Some(Self { syntax })
20762        } else {
20763            None
20764        }
20765    }
20766    #[inline]
20767    fn syntax(&self) -> &SyntaxNode {
20768        &self.syntax
20769    }
20770}
20771impl AstNode for CollationForFn {
20772    #[inline]
20773    fn can_cast(kind: SyntaxKind) -> bool {
20774        kind == SyntaxKind::COLLATION_FOR_FN
20775    }
20776    #[inline]
20777    fn cast(syntax: SyntaxNode) -> Option<Self> {
20778        if Self::can_cast(syntax.kind()) {
20779            Some(Self { syntax })
20780        } else {
20781            None
20782        }
20783    }
20784    #[inline]
20785    fn syntax(&self) -> &SyntaxNode {
20786        &self.syntax
20787    }
20788}
20789impl AstNode for ColonColon {
20790    #[inline]
20791    fn can_cast(kind: SyntaxKind) -> bool {
20792        kind == SyntaxKind::COLON_COLON
20793    }
20794    #[inline]
20795    fn cast(syntax: SyntaxNode) -> Option<Self> {
20796        if Self::can_cast(syntax.kind()) {
20797            Some(Self { syntax })
20798        } else {
20799            None
20800        }
20801    }
20802    #[inline]
20803    fn syntax(&self) -> &SyntaxNode {
20804        &self.syntax
20805    }
20806}
20807impl AstNode for ColonEq {
20808    #[inline]
20809    fn can_cast(kind: SyntaxKind) -> bool {
20810        kind == SyntaxKind::COLON_EQ
20811    }
20812    #[inline]
20813    fn cast(syntax: SyntaxNode) -> Option<Self> {
20814        if Self::can_cast(syntax.kind()) {
20815            Some(Self { syntax })
20816        } else {
20817            None
20818        }
20819    }
20820    #[inline]
20821    fn syntax(&self) -> &SyntaxNode {
20822        &self.syntax
20823    }
20824}
20825impl AstNode for Column {
20826    #[inline]
20827    fn can_cast(kind: SyntaxKind) -> bool {
20828        kind == SyntaxKind::COLUMN
20829    }
20830    #[inline]
20831    fn cast(syntax: SyntaxNode) -> Option<Self> {
20832        if Self::can_cast(syntax.kind()) {
20833            Some(Self { syntax })
20834        } else {
20835            None
20836        }
20837    }
20838    #[inline]
20839    fn syntax(&self) -> &SyntaxNode {
20840        &self.syntax
20841    }
20842}
20843impl AstNode for ColumnList {
20844    #[inline]
20845    fn can_cast(kind: SyntaxKind) -> bool {
20846        kind == SyntaxKind::COLUMN_LIST
20847    }
20848    #[inline]
20849    fn cast(syntax: SyntaxNode) -> Option<Self> {
20850        if Self::can_cast(syntax.kind()) {
20851            Some(Self { syntax })
20852        } else {
20853            None
20854        }
20855    }
20856    #[inline]
20857    fn syntax(&self) -> &SyntaxNode {
20858        &self.syntax
20859    }
20860}
20861impl AstNode for CommentOn {
20862    #[inline]
20863    fn can_cast(kind: SyntaxKind) -> bool {
20864        kind == SyntaxKind::COMMENT_ON
20865    }
20866    #[inline]
20867    fn cast(syntax: SyntaxNode) -> Option<Self> {
20868        if Self::can_cast(syntax.kind()) {
20869            Some(Self { syntax })
20870        } else {
20871            None
20872        }
20873    }
20874    #[inline]
20875    fn syntax(&self) -> &SyntaxNode {
20876        &self.syntax
20877    }
20878}
20879impl AstNode for Commit {
20880    #[inline]
20881    fn can_cast(kind: SyntaxKind) -> bool {
20882        kind == SyntaxKind::COMMIT
20883    }
20884    #[inline]
20885    fn cast(syntax: SyntaxNode) -> Option<Self> {
20886        if Self::can_cast(syntax.kind()) {
20887            Some(Self { syntax })
20888        } else {
20889            None
20890        }
20891    }
20892    #[inline]
20893    fn syntax(&self) -> &SyntaxNode {
20894        &self.syntax
20895    }
20896}
20897impl AstNode for CompoundSelect {
20898    #[inline]
20899    fn can_cast(kind: SyntaxKind) -> bool {
20900        kind == SyntaxKind::COMPOUND_SELECT
20901    }
20902    #[inline]
20903    fn cast(syntax: SyntaxNode) -> Option<Self> {
20904        if Self::can_cast(syntax.kind()) {
20905            Some(Self { syntax })
20906        } else {
20907            None
20908        }
20909    }
20910    #[inline]
20911    fn syntax(&self) -> &SyntaxNode {
20912        &self.syntax
20913    }
20914}
20915impl AstNode for CompressionMethod {
20916    #[inline]
20917    fn can_cast(kind: SyntaxKind) -> bool {
20918        kind == SyntaxKind::COMPRESSION_METHOD
20919    }
20920    #[inline]
20921    fn cast(syntax: SyntaxNode) -> Option<Self> {
20922        if Self::can_cast(syntax.kind()) {
20923            Some(Self { syntax })
20924        } else {
20925            None
20926        }
20927    }
20928    #[inline]
20929    fn syntax(&self) -> &SyntaxNode {
20930        &self.syntax
20931    }
20932}
20933impl AstNode for ConflictDoNothing {
20934    #[inline]
20935    fn can_cast(kind: SyntaxKind) -> bool {
20936        kind == SyntaxKind::CONFLICT_DO_NOTHING
20937    }
20938    #[inline]
20939    fn cast(syntax: SyntaxNode) -> Option<Self> {
20940        if Self::can_cast(syntax.kind()) {
20941            Some(Self { syntax })
20942        } else {
20943            None
20944        }
20945    }
20946    #[inline]
20947    fn syntax(&self) -> &SyntaxNode {
20948        &self.syntax
20949    }
20950}
20951impl AstNode for ConflictDoSelect {
20952    #[inline]
20953    fn can_cast(kind: SyntaxKind) -> bool {
20954        kind == SyntaxKind::CONFLICT_DO_SELECT
20955    }
20956    #[inline]
20957    fn cast(syntax: SyntaxNode) -> Option<Self> {
20958        if Self::can_cast(syntax.kind()) {
20959            Some(Self { syntax })
20960        } else {
20961            None
20962        }
20963    }
20964    #[inline]
20965    fn syntax(&self) -> &SyntaxNode {
20966        &self.syntax
20967    }
20968}
20969impl AstNode for ConflictDoUpdateSet {
20970    #[inline]
20971    fn can_cast(kind: SyntaxKind) -> bool {
20972        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
20973    }
20974    #[inline]
20975    fn cast(syntax: SyntaxNode) -> Option<Self> {
20976        if Self::can_cast(syntax.kind()) {
20977            Some(Self { syntax })
20978        } else {
20979            None
20980        }
20981    }
20982    #[inline]
20983    fn syntax(&self) -> &SyntaxNode {
20984        &self.syntax
20985    }
20986}
20987impl AstNode for ConflictIndexItem {
20988    #[inline]
20989    fn can_cast(kind: SyntaxKind) -> bool {
20990        kind == SyntaxKind::CONFLICT_INDEX_ITEM
20991    }
20992    #[inline]
20993    fn cast(syntax: SyntaxNode) -> Option<Self> {
20994        if Self::can_cast(syntax.kind()) {
20995            Some(Self { syntax })
20996        } else {
20997            None
20998        }
20999    }
21000    #[inline]
21001    fn syntax(&self) -> &SyntaxNode {
21002        &self.syntax
21003    }
21004}
21005impl AstNode for ConflictIndexItemList {
21006    #[inline]
21007    fn can_cast(kind: SyntaxKind) -> bool {
21008        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
21009    }
21010    #[inline]
21011    fn cast(syntax: SyntaxNode) -> Option<Self> {
21012        if Self::can_cast(syntax.kind()) {
21013            Some(Self { syntax })
21014        } else {
21015            None
21016        }
21017    }
21018    #[inline]
21019    fn syntax(&self) -> &SyntaxNode {
21020        &self.syntax
21021    }
21022}
21023impl AstNode for ConflictOnConstraint {
21024    #[inline]
21025    fn can_cast(kind: SyntaxKind) -> bool {
21026        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
21027    }
21028    #[inline]
21029    fn cast(syntax: SyntaxNode) -> Option<Self> {
21030        if Self::can_cast(syntax.kind()) {
21031            Some(Self { syntax })
21032        } else {
21033            None
21034        }
21035    }
21036    #[inline]
21037    fn syntax(&self) -> &SyntaxNode {
21038        &self.syntax
21039    }
21040}
21041impl AstNode for ConflictOnIndex {
21042    #[inline]
21043    fn can_cast(kind: SyntaxKind) -> bool {
21044        kind == SyntaxKind::CONFLICT_ON_INDEX
21045    }
21046    #[inline]
21047    fn cast(syntax: SyntaxNode) -> Option<Self> {
21048        if Self::can_cast(syntax.kind()) {
21049            Some(Self { syntax })
21050        } else {
21051            None
21052        }
21053    }
21054    #[inline]
21055    fn syntax(&self) -> &SyntaxNode {
21056        &self.syntax
21057    }
21058}
21059impl AstNode for ConstraintExclusion {
21060    #[inline]
21061    fn can_cast(kind: SyntaxKind) -> bool {
21062        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21063    }
21064    #[inline]
21065    fn cast(syntax: SyntaxNode) -> Option<Self> {
21066        if Self::can_cast(syntax.kind()) {
21067            Some(Self { syntax })
21068        } else {
21069            None
21070        }
21071    }
21072    #[inline]
21073    fn syntax(&self) -> &SyntaxNode {
21074        &self.syntax
21075    }
21076}
21077impl AstNode for ConstraintExclusionList {
21078    #[inline]
21079    fn can_cast(kind: SyntaxKind) -> bool {
21080        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21081    }
21082    #[inline]
21083    fn cast(syntax: SyntaxNode) -> Option<Self> {
21084        if Self::can_cast(syntax.kind()) {
21085            Some(Self { syntax })
21086        } else {
21087            None
21088        }
21089    }
21090    #[inline]
21091    fn syntax(&self) -> &SyntaxNode {
21092        &self.syntax
21093    }
21094}
21095impl AstNode for ConstraintIncludeClause {
21096    #[inline]
21097    fn can_cast(kind: SyntaxKind) -> bool {
21098        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21099    }
21100    #[inline]
21101    fn cast(syntax: SyntaxNode) -> Option<Self> {
21102        if Self::can_cast(syntax.kind()) {
21103            Some(Self { syntax })
21104        } else {
21105            None
21106        }
21107    }
21108    #[inline]
21109    fn syntax(&self) -> &SyntaxNode {
21110        &self.syntax
21111    }
21112}
21113impl AstNode for ConstraintIndexMethod {
21114    #[inline]
21115    fn can_cast(kind: SyntaxKind) -> bool {
21116        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21117    }
21118    #[inline]
21119    fn cast(syntax: SyntaxNode) -> Option<Self> {
21120        if Self::can_cast(syntax.kind()) {
21121            Some(Self { syntax })
21122        } else {
21123            None
21124        }
21125    }
21126    #[inline]
21127    fn syntax(&self) -> &SyntaxNode {
21128        &self.syntax
21129    }
21130}
21131impl AstNode for ConstraintIndexTablespace {
21132    #[inline]
21133    fn can_cast(kind: SyntaxKind) -> bool {
21134        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21135    }
21136    #[inline]
21137    fn cast(syntax: SyntaxNode) -> Option<Self> {
21138        if Self::can_cast(syntax.kind()) {
21139            Some(Self { syntax })
21140        } else {
21141            None
21142        }
21143    }
21144    #[inline]
21145    fn syntax(&self) -> &SyntaxNode {
21146        &self.syntax
21147    }
21148}
21149impl AstNode for ConstraintName {
21150    #[inline]
21151    fn can_cast(kind: SyntaxKind) -> bool {
21152        kind == SyntaxKind::CONSTRAINT_NAME
21153    }
21154    #[inline]
21155    fn cast(syntax: SyntaxNode) -> Option<Self> {
21156        if Self::can_cast(syntax.kind()) {
21157            Some(Self { syntax })
21158        } else {
21159            None
21160        }
21161    }
21162    #[inline]
21163    fn syntax(&self) -> &SyntaxNode {
21164        &self.syntax
21165    }
21166}
21167impl AstNode for Copy {
21168    #[inline]
21169    fn can_cast(kind: SyntaxKind) -> bool {
21170        kind == SyntaxKind::COPY
21171    }
21172    #[inline]
21173    fn cast(syntax: SyntaxNode) -> Option<Self> {
21174        if Self::can_cast(syntax.kind()) {
21175            Some(Self { syntax })
21176        } else {
21177            None
21178        }
21179    }
21180    #[inline]
21181    fn syntax(&self) -> &SyntaxNode {
21182        &self.syntax
21183    }
21184}
21185impl AstNode for CopyOption {
21186    #[inline]
21187    fn can_cast(kind: SyntaxKind) -> bool {
21188        kind == SyntaxKind::COPY_OPTION
21189    }
21190    #[inline]
21191    fn cast(syntax: SyntaxNode) -> Option<Self> {
21192        if Self::can_cast(syntax.kind()) {
21193            Some(Self { syntax })
21194        } else {
21195            None
21196        }
21197    }
21198    #[inline]
21199    fn syntax(&self) -> &SyntaxNode {
21200        &self.syntax
21201    }
21202}
21203impl AstNode for CopyOptionList {
21204    #[inline]
21205    fn can_cast(kind: SyntaxKind) -> bool {
21206        kind == SyntaxKind::COPY_OPTION_LIST
21207    }
21208    #[inline]
21209    fn cast(syntax: SyntaxNode) -> Option<Self> {
21210        if Self::can_cast(syntax.kind()) {
21211            Some(Self { syntax })
21212        } else {
21213            None
21214        }
21215    }
21216    #[inline]
21217    fn syntax(&self) -> &SyntaxNode {
21218        &self.syntax
21219    }
21220}
21221impl AstNode for CostFuncOption {
21222    #[inline]
21223    fn can_cast(kind: SyntaxKind) -> bool {
21224        kind == SyntaxKind::COST_FUNC_OPTION
21225    }
21226    #[inline]
21227    fn cast(syntax: SyntaxNode) -> Option<Self> {
21228        if Self::can_cast(syntax.kind()) {
21229            Some(Self { syntax })
21230        } else {
21231            None
21232        }
21233    }
21234    #[inline]
21235    fn syntax(&self) -> &SyntaxNode {
21236        &self.syntax
21237    }
21238}
21239impl AstNode for CreateAccessMethod {
21240    #[inline]
21241    fn can_cast(kind: SyntaxKind) -> bool {
21242        kind == SyntaxKind::CREATE_ACCESS_METHOD
21243    }
21244    #[inline]
21245    fn cast(syntax: SyntaxNode) -> Option<Self> {
21246        if Self::can_cast(syntax.kind()) {
21247            Some(Self { syntax })
21248        } else {
21249            None
21250        }
21251    }
21252    #[inline]
21253    fn syntax(&self) -> &SyntaxNode {
21254        &self.syntax
21255    }
21256}
21257impl AstNode for CreateAggregate {
21258    #[inline]
21259    fn can_cast(kind: SyntaxKind) -> bool {
21260        kind == SyntaxKind::CREATE_AGGREGATE
21261    }
21262    #[inline]
21263    fn cast(syntax: SyntaxNode) -> Option<Self> {
21264        if Self::can_cast(syntax.kind()) {
21265            Some(Self { syntax })
21266        } else {
21267            None
21268        }
21269    }
21270    #[inline]
21271    fn syntax(&self) -> &SyntaxNode {
21272        &self.syntax
21273    }
21274}
21275impl AstNode for CreateCast {
21276    #[inline]
21277    fn can_cast(kind: SyntaxKind) -> bool {
21278        kind == SyntaxKind::CREATE_CAST
21279    }
21280    #[inline]
21281    fn cast(syntax: SyntaxNode) -> Option<Self> {
21282        if Self::can_cast(syntax.kind()) {
21283            Some(Self { syntax })
21284        } else {
21285            None
21286        }
21287    }
21288    #[inline]
21289    fn syntax(&self) -> &SyntaxNode {
21290        &self.syntax
21291    }
21292}
21293impl AstNode for CreateCollation {
21294    #[inline]
21295    fn can_cast(kind: SyntaxKind) -> bool {
21296        kind == SyntaxKind::CREATE_COLLATION
21297    }
21298    #[inline]
21299    fn cast(syntax: SyntaxNode) -> Option<Self> {
21300        if Self::can_cast(syntax.kind()) {
21301            Some(Self { syntax })
21302        } else {
21303            None
21304        }
21305    }
21306    #[inline]
21307    fn syntax(&self) -> &SyntaxNode {
21308        &self.syntax
21309    }
21310}
21311impl AstNode for CreateConversion {
21312    #[inline]
21313    fn can_cast(kind: SyntaxKind) -> bool {
21314        kind == SyntaxKind::CREATE_CONVERSION
21315    }
21316    #[inline]
21317    fn cast(syntax: SyntaxNode) -> Option<Self> {
21318        if Self::can_cast(syntax.kind()) {
21319            Some(Self { syntax })
21320        } else {
21321            None
21322        }
21323    }
21324    #[inline]
21325    fn syntax(&self) -> &SyntaxNode {
21326        &self.syntax
21327    }
21328}
21329impl AstNode for CreateDatabase {
21330    #[inline]
21331    fn can_cast(kind: SyntaxKind) -> bool {
21332        kind == SyntaxKind::CREATE_DATABASE
21333    }
21334    #[inline]
21335    fn cast(syntax: SyntaxNode) -> Option<Self> {
21336        if Self::can_cast(syntax.kind()) {
21337            Some(Self { syntax })
21338        } else {
21339            None
21340        }
21341    }
21342    #[inline]
21343    fn syntax(&self) -> &SyntaxNode {
21344        &self.syntax
21345    }
21346}
21347impl AstNode for CreateDatabaseOption {
21348    #[inline]
21349    fn can_cast(kind: SyntaxKind) -> bool {
21350        kind == SyntaxKind::CREATE_DATABASE_OPTION
21351    }
21352    #[inline]
21353    fn cast(syntax: SyntaxNode) -> Option<Self> {
21354        if Self::can_cast(syntax.kind()) {
21355            Some(Self { syntax })
21356        } else {
21357            None
21358        }
21359    }
21360    #[inline]
21361    fn syntax(&self) -> &SyntaxNode {
21362        &self.syntax
21363    }
21364}
21365impl AstNode for CreateDatabaseOptionList {
21366    #[inline]
21367    fn can_cast(kind: SyntaxKind) -> bool {
21368        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
21369    }
21370    #[inline]
21371    fn cast(syntax: SyntaxNode) -> Option<Self> {
21372        if Self::can_cast(syntax.kind()) {
21373            Some(Self { syntax })
21374        } else {
21375            None
21376        }
21377    }
21378    #[inline]
21379    fn syntax(&self) -> &SyntaxNode {
21380        &self.syntax
21381    }
21382}
21383impl AstNode for CreateDomain {
21384    #[inline]
21385    fn can_cast(kind: SyntaxKind) -> bool {
21386        kind == SyntaxKind::CREATE_DOMAIN
21387    }
21388    #[inline]
21389    fn cast(syntax: SyntaxNode) -> Option<Self> {
21390        if Self::can_cast(syntax.kind()) {
21391            Some(Self { syntax })
21392        } else {
21393            None
21394        }
21395    }
21396    #[inline]
21397    fn syntax(&self) -> &SyntaxNode {
21398        &self.syntax
21399    }
21400}
21401impl AstNode for CreateEventTrigger {
21402    #[inline]
21403    fn can_cast(kind: SyntaxKind) -> bool {
21404        kind == SyntaxKind::CREATE_EVENT_TRIGGER
21405    }
21406    #[inline]
21407    fn cast(syntax: SyntaxNode) -> Option<Self> {
21408        if Self::can_cast(syntax.kind()) {
21409            Some(Self { syntax })
21410        } else {
21411            None
21412        }
21413    }
21414    #[inline]
21415    fn syntax(&self) -> &SyntaxNode {
21416        &self.syntax
21417    }
21418}
21419impl AstNode for CreateExtension {
21420    #[inline]
21421    fn can_cast(kind: SyntaxKind) -> bool {
21422        kind == SyntaxKind::CREATE_EXTENSION
21423    }
21424    #[inline]
21425    fn cast(syntax: SyntaxNode) -> Option<Self> {
21426        if Self::can_cast(syntax.kind()) {
21427            Some(Self { syntax })
21428        } else {
21429            None
21430        }
21431    }
21432    #[inline]
21433    fn syntax(&self) -> &SyntaxNode {
21434        &self.syntax
21435    }
21436}
21437impl AstNode for CreateForeignDataWrapper {
21438    #[inline]
21439    fn can_cast(kind: SyntaxKind) -> bool {
21440        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21441    }
21442    #[inline]
21443    fn cast(syntax: SyntaxNode) -> Option<Self> {
21444        if Self::can_cast(syntax.kind()) {
21445            Some(Self { syntax })
21446        } else {
21447            None
21448        }
21449    }
21450    #[inline]
21451    fn syntax(&self) -> &SyntaxNode {
21452        &self.syntax
21453    }
21454}
21455impl AstNode for CreateForeignTable {
21456    #[inline]
21457    fn can_cast(kind: SyntaxKind) -> bool {
21458        kind == SyntaxKind::CREATE_FOREIGN_TABLE
21459    }
21460    #[inline]
21461    fn cast(syntax: SyntaxNode) -> Option<Self> {
21462        if Self::can_cast(syntax.kind()) {
21463            Some(Self { syntax })
21464        } else {
21465            None
21466        }
21467    }
21468    #[inline]
21469    fn syntax(&self) -> &SyntaxNode {
21470        &self.syntax
21471    }
21472}
21473impl AstNode for CreateFunction {
21474    #[inline]
21475    fn can_cast(kind: SyntaxKind) -> bool {
21476        kind == SyntaxKind::CREATE_FUNCTION
21477    }
21478    #[inline]
21479    fn cast(syntax: SyntaxNode) -> Option<Self> {
21480        if Self::can_cast(syntax.kind()) {
21481            Some(Self { syntax })
21482        } else {
21483            None
21484        }
21485    }
21486    #[inline]
21487    fn syntax(&self) -> &SyntaxNode {
21488        &self.syntax
21489    }
21490}
21491impl AstNode for CreateGroup {
21492    #[inline]
21493    fn can_cast(kind: SyntaxKind) -> bool {
21494        kind == SyntaxKind::CREATE_GROUP
21495    }
21496    #[inline]
21497    fn cast(syntax: SyntaxNode) -> Option<Self> {
21498        if Self::can_cast(syntax.kind()) {
21499            Some(Self { syntax })
21500        } else {
21501            None
21502        }
21503    }
21504    #[inline]
21505    fn syntax(&self) -> &SyntaxNode {
21506        &self.syntax
21507    }
21508}
21509impl AstNode for CreateIndex {
21510    #[inline]
21511    fn can_cast(kind: SyntaxKind) -> bool {
21512        kind == SyntaxKind::CREATE_INDEX
21513    }
21514    #[inline]
21515    fn cast(syntax: SyntaxNode) -> Option<Self> {
21516        if Self::can_cast(syntax.kind()) {
21517            Some(Self { syntax })
21518        } else {
21519            None
21520        }
21521    }
21522    #[inline]
21523    fn syntax(&self) -> &SyntaxNode {
21524        &self.syntax
21525    }
21526}
21527impl AstNode for CreateLanguage {
21528    #[inline]
21529    fn can_cast(kind: SyntaxKind) -> bool {
21530        kind == SyntaxKind::CREATE_LANGUAGE
21531    }
21532    #[inline]
21533    fn cast(syntax: SyntaxNode) -> Option<Self> {
21534        if Self::can_cast(syntax.kind()) {
21535            Some(Self { syntax })
21536        } else {
21537            None
21538        }
21539    }
21540    #[inline]
21541    fn syntax(&self) -> &SyntaxNode {
21542        &self.syntax
21543    }
21544}
21545impl AstNode for CreateMaterializedView {
21546    #[inline]
21547    fn can_cast(kind: SyntaxKind) -> bool {
21548        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
21549    }
21550    #[inline]
21551    fn cast(syntax: SyntaxNode) -> Option<Self> {
21552        if Self::can_cast(syntax.kind()) {
21553            Some(Self { syntax })
21554        } else {
21555            None
21556        }
21557    }
21558    #[inline]
21559    fn syntax(&self) -> &SyntaxNode {
21560        &self.syntax
21561    }
21562}
21563impl AstNode for CreateOperator {
21564    #[inline]
21565    fn can_cast(kind: SyntaxKind) -> bool {
21566        kind == SyntaxKind::CREATE_OPERATOR
21567    }
21568    #[inline]
21569    fn cast(syntax: SyntaxNode) -> Option<Self> {
21570        if Self::can_cast(syntax.kind()) {
21571            Some(Self { syntax })
21572        } else {
21573            None
21574        }
21575    }
21576    #[inline]
21577    fn syntax(&self) -> &SyntaxNode {
21578        &self.syntax
21579    }
21580}
21581impl AstNode for CreateOperatorClass {
21582    #[inline]
21583    fn can_cast(kind: SyntaxKind) -> bool {
21584        kind == SyntaxKind::CREATE_OPERATOR_CLASS
21585    }
21586    #[inline]
21587    fn cast(syntax: SyntaxNode) -> Option<Self> {
21588        if Self::can_cast(syntax.kind()) {
21589            Some(Self { syntax })
21590        } else {
21591            None
21592        }
21593    }
21594    #[inline]
21595    fn syntax(&self) -> &SyntaxNode {
21596        &self.syntax
21597    }
21598}
21599impl AstNode for CreateOperatorFamily {
21600    #[inline]
21601    fn can_cast(kind: SyntaxKind) -> bool {
21602        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
21603    }
21604    #[inline]
21605    fn cast(syntax: SyntaxNode) -> Option<Self> {
21606        if Self::can_cast(syntax.kind()) {
21607            Some(Self { syntax })
21608        } else {
21609            None
21610        }
21611    }
21612    #[inline]
21613    fn syntax(&self) -> &SyntaxNode {
21614        &self.syntax
21615    }
21616}
21617impl AstNode for CreatePolicy {
21618    #[inline]
21619    fn can_cast(kind: SyntaxKind) -> bool {
21620        kind == SyntaxKind::CREATE_POLICY
21621    }
21622    #[inline]
21623    fn cast(syntax: SyntaxNode) -> Option<Self> {
21624        if Self::can_cast(syntax.kind()) {
21625            Some(Self { syntax })
21626        } else {
21627            None
21628        }
21629    }
21630    #[inline]
21631    fn syntax(&self) -> &SyntaxNode {
21632        &self.syntax
21633    }
21634}
21635impl AstNode for CreateProcedure {
21636    #[inline]
21637    fn can_cast(kind: SyntaxKind) -> bool {
21638        kind == SyntaxKind::CREATE_PROCEDURE
21639    }
21640    #[inline]
21641    fn cast(syntax: SyntaxNode) -> Option<Self> {
21642        if Self::can_cast(syntax.kind()) {
21643            Some(Self { syntax })
21644        } else {
21645            None
21646        }
21647    }
21648    #[inline]
21649    fn syntax(&self) -> &SyntaxNode {
21650        &self.syntax
21651    }
21652}
21653impl AstNode for CreatePropertyGraph {
21654    #[inline]
21655    fn can_cast(kind: SyntaxKind) -> bool {
21656        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
21657    }
21658    #[inline]
21659    fn cast(syntax: SyntaxNode) -> Option<Self> {
21660        if Self::can_cast(syntax.kind()) {
21661            Some(Self { syntax })
21662        } else {
21663            None
21664        }
21665    }
21666    #[inline]
21667    fn syntax(&self) -> &SyntaxNode {
21668        &self.syntax
21669    }
21670}
21671impl AstNode for CreatePublication {
21672    #[inline]
21673    fn can_cast(kind: SyntaxKind) -> bool {
21674        kind == SyntaxKind::CREATE_PUBLICATION
21675    }
21676    #[inline]
21677    fn cast(syntax: SyntaxNode) -> Option<Self> {
21678        if Self::can_cast(syntax.kind()) {
21679            Some(Self { syntax })
21680        } else {
21681            None
21682        }
21683    }
21684    #[inline]
21685    fn syntax(&self) -> &SyntaxNode {
21686        &self.syntax
21687    }
21688}
21689impl AstNode for CreateRole {
21690    #[inline]
21691    fn can_cast(kind: SyntaxKind) -> bool {
21692        kind == SyntaxKind::CREATE_ROLE
21693    }
21694    #[inline]
21695    fn cast(syntax: SyntaxNode) -> Option<Self> {
21696        if Self::can_cast(syntax.kind()) {
21697            Some(Self { syntax })
21698        } else {
21699            None
21700        }
21701    }
21702    #[inline]
21703    fn syntax(&self) -> &SyntaxNode {
21704        &self.syntax
21705    }
21706}
21707impl AstNode for CreateRule {
21708    #[inline]
21709    fn can_cast(kind: SyntaxKind) -> bool {
21710        kind == SyntaxKind::CREATE_RULE
21711    }
21712    #[inline]
21713    fn cast(syntax: SyntaxNode) -> Option<Self> {
21714        if Self::can_cast(syntax.kind()) {
21715            Some(Self { syntax })
21716        } else {
21717            None
21718        }
21719    }
21720    #[inline]
21721    fn syntax(&self) -> &SyntaxNode {
21722        &self.syntax
21723    }
21724}
21725impl AstNode for CreateSchema {
21726    #[inline]
21727    fn can_cast(kind: SyntaxKind) -> bool {
21728        kind == SyntaxKind::CREATE_SCHEMA
21729    }
21730    #[inline]
21731    fn cast(syntax: SyntaxNode) -> Option<Self> {
21732        if Self::can_cast(syntax.kind()) {
21733            Some(Self { syntax })
21734        } else {
21735            None
21736        }
21737    }
21738    #[inline]
21739    fn syntax(&self) -> &SyntaxNode {
21740        &self.syntax
21741    }
21742}
21743impl AstNode for CreateSequence {
21744    #[inline]
21745    fn can_cast(kind: SyntaxKind) -> bool {
21746        kind == SyntaxKind::CREATE_SEQUENCE
21747    }
21748    #[inline]
21749    fn cast(syntax: SyntaxNode) -> Option<Self> {
21750        if Self::can_cast(syntax.kind()) {
21751            Some(Self { syntax })
21752        } else {
21753            None
21754        }
21755    }
21756    #[inline]
21757    fn syntax(&self) -> &SyntaxNode {
21758        &self.syntax
21759    }
21760}
21761impl AstNode for CreateServer {
21762    #[inline]
21763    fn can_cast(kind: SyntaxKind) -> bool {
21764        kind == SyntaxKind::CREATE_SERVER
21765    }
21766    #[inline]
21767    fn cast(syntax: SyntaxNode) -> Option<Self> {
21768        if Self::can_cast(syntax.kind()) {
21769            Some(Self { syntax })
21770        } else {
21771            None
21772        }
21773    }
21774    #[inline]
21775    fn syntax(&self) -> &SyntaxNode {
21776        &self.syntax
21777    }
21778}
21779impl AstNode for CreateStatistics {
21780    #[inline]
21781    fn can_cast(kind: SyntaxKind) -> bool {
21782        kind == SyntaxKind::CREATE_STATISTICS
21783    }
21784    #[inline]
21785    fn cast(syntax: SyntaxNode) -> Option<Self> {
21786        if Self::can_cast(syntax.kind()) {
21787            Some(Self { syntax })
21788        } else {
21789            None
21790        }
21791    }
21792    #[inline]
21793    fn syntax(&self) -> &SyntaxNode {
21794        &self.syntax
21795    }
21796}
21797impl AstNode for CreateSubscription {
21798    #[inline]
21799    fn can_cast(kind: SyntaxKind) -> bool {
21800        kind == SyntaxKind::CREATE_SUBSCRIPTION
21801    }
21802    #[inline]
21803    fn cast(syntax: SyntaxNode) -> Option<Self> {
21804        if Self::can_cast(syntax.kind()) {
21805            Some(Self { syntax })
21806        } else {
21807            None
21808        }
21809    }
21810    #[inline]
21811    fn syntax(&self) -> &SyntaxNode {
21812        &self.syntax
21813    }
21814}
21815impl AstNode for CreateTable {
21816    #[inline]
21817    fn can_cast(kind: SyntaxKind) -> bool {
21818        kind == SyntaxKind::CREATE_TABLE
21819    }
21820    #[inline]
21821    fn cast(syntax: SyntaxNode) -> Option<Self> {
21822        if Self::can_cast(syntax.kind()) {
21823            Some(Self { syntax })
21824        } else {
21825            None
21826        }
21827    }
21828    #[inline]
21829    fn syntax(&self) -> &SyntaxNode {
21830        &self.syntax
21831    }
21832}
21833impl AstNode for CreateTableAs {
21834    #[inline]
21835    fn can_cast(kind: SyntaxKind) -> bool {
21836        kind == SyntaxKind::CREATE_TABLE_AS
21837    }
21838    #[inline]
21839    fn cast(syntax: SyntaxNode) -> Option<Self> {
21840        if Self::can_cast(syntax.kind()) {
21841            Some(Self { syntax })
21842        } else {
21843            None
21844        }
21845    }
21846    #[inline]
21847    fn syntax(&self) -> &SyntaxNode {
21848        &self.syntax
21849    }
21850}
21851impl AstNode for CreateTablespace {
21852    #[inline]
21853    fn can_cast(kind: SyntaxKind) -> bool {
21854        kind == SyntaxKind::CREATE_TABLESPACE
21855    }
21856    #[inline]
21857    fn cast(syntax: SyntaxNode) -> Option<Self> {
21858        if Self::can_cast(syntax.kind()) {
21859            Some(Self { syntax })
21860        } else {
21861            None
21862        }
21863    }
21864    #[inline]
21865    fn syntax(&self) -> &SyntaxNode {
21866        &self.syntax
21867    }
21868}
21869impl AstNode for CreateTextSearchConfiguration {
21870    #[inline]
21871    fn can_cast(kind: SyntaxKind) -> bool {
21872        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21873    }
21874    #[inline]
21875    fn cast(syntax: SyntaxNode) -> Option<Self> {
21876        if Self::can_cast(syntax.kind()) {
21877            Some(Self { syntax })
21878        } else {
21879            None
21880        }
21881    }
21882    #[inline]
21883    fn syntax(&self) -> &SyntaxNode {
21884        &self.syntax
21885    }
21886}
21887impl AstNode for CreateTextSearchDictionary {
21888    #[inline]
21889    fn can_cast(kind: SyntaxKind) -> bool {
21890        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21891    }
21892    #[inline]
21893    fn cast(syntax: SyntaxNode) -> Option<Self> {
21894        if Self::can_cast(syntax.kind()) {
21895            Some(Self { syntax })
21896        } else {
21897            None
21898        }
21899    }
21900    #[inline]
21901    fn syntax(&self) -> &SyntaxNode {
21902        &self.syntax
21903    }
21904}
21905impl AstNode for CreateTextSearchParser {
21906    #[inline]
21907    fn can_cast(kind: SyntaxKind) -> bool {
21908        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21909    }
21910    #[inline]
21911    fn cast(syntax: SyntaxNode) -> Option<Self> {
21912        if Self::can_cast(syntax.kind()) {
21913            Some(Self { syntax })
21914        } else {
21915            None
21916        }
21917    }
21918    #[inline]
21919    fn syntax(&self) -> &SyntaxNode {
21920        &self.syntax
21921    }
21922}
21923impl AstNode for CreateTextSearchTemplate {
21924    #[inline]
21925    fn can_cast(kind: SyntaxKind) -> bool {
21926        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
21927    }
21928    #[inline]
21929    fn cast(syntax: SyntaxNode) -> Option<Self> {
21930        if Self::can_cast(syntax.kind()) {
21931            Some(Self { syntax })
21932        } else {
21933            None
21934        }
21935    }
21936    #[inline]
21937    fn syntax(&self) -> &SyntaxNode {
21938        &self.syntax
21939    }
21940}
21941impl AstNode for CreateTransform {
21942    #[inline]
21943    fn can_cast(kind: SyntaxKind) -> bool {
21944        kind == SyntaxKind::CREATE_TRANSFORM
21945    }
21946    #[inline]
21947    fn cast(syntax: SyntaxNode) -> Option<Self> {
21948        if Self::can_cast(syntax.kind()) {
21949            Some(Self { syntax })
21950        } else {
21951            None
21952        }
21953    }
21954    #[inline]
21955    fn syntax(&self) -> &SyntaxNode {
21956        &self.syntax
21957    }
21958}
21959impl AstNode for CreateTrigger {
21960    #[inline]
21961    fn can_cast(kind: SyntaxKind) -> bool {
21962        kind == SyntaxKind::CREATE_TRIGGER
21963    }
21964    #[inline]
21965    fn cast(syntax: SyntaxNode) -> Option<Self> {
21966        if Self::can_cast(syntax.kind()) {
21967            Some(Self { syntax })
21968        } else {
21969            None
21970        }
21971    }
21972    #[inline]
21973    fn syntax(&self) -> &SyntaxNode {
21974        &self.syntax
21975    }
21976}
21977impl AstNode for CreateType {
21978    #[inline]
21979    fn can_cast(kind: SyntaxKind) -> bool {
21980        kind == SyntaxKind::CREATE_TYPE
21981    }
21982    #[inline]
21983    fn cast(syntax: SyntaxNode) -> Option<Self> {
21984        if Self::can_cast(syntax.kind()) {
21985            Some(Self { syntax })
21986        } else {
21987            None
21988        }
21989    }
21990    #[inline]
21991    fn syntax(&self) -> &SyntaxNode {
21992        &self.syntax
21993    }
21994}
21995impl AstNode for CreateUser {
21996    #[inline]
21997    fn can_cast(kind: SyntaxKind) -> bool {
21998        kind == SyntaxKind::CREATE_USER
21999    }
22000    #[inline]
22001    fn cast(syntax: SyntaxNode) -> Option<Self> {
22002        if Self::can_cast(syntax.kind()) {
22003            Some(Self { syntax })
22004        } else {
22005            None
22006        }
22007    }
22008    #[inline]
22009    fn syntax(&self) -> &SyntaxNode {
22010        &self.syntax
22011    }
22012}
22013impl AstNode for CreateUserMapping {
22014    #[inline]
22015    fn can_cast(kind: SyntaxKind) -> bool {
22016        kind == SyntaxKind::CREATE_USER_MAPPING
22017    }
22018    #[inline]
22019    fn cast(syntax: SyntaxNode) -> Option<Self> {
22020        if Self::can_cast(syntax.kind()) {
22021            Some(Self { syntax })
22022        } else {
22023            None
22024        }
22025    }
22026    #[inline]
22027    fn syntax(&self) -> &SyntaxNode {
22028        &self.syntax
22029    }
22030}
22031impl AstNode for CreateView {
22032    #[inline]
22033    fn can_cast(kind: SyntaxKind) -> bool {
22034        kind == SyntaxKind::CREATE_VIEW
22035    }
22036    #[inline]
22037    fn cast(syntax: SyntaxNode) -> Option<Self> {
22038        if Self::can_cast(syntax.kind()) {
22039            Some(Self { syntax })
22040        } else {
22041            None
22042        }
22043    }
22044    #[inline]
22045    fn syntax(&self) -> &SyntaxNode {
22046        &self.syntax
22047    }
22048}
22049impl AstNode for CustomOp {
22050    #[inline]
22051    fn can_cast(kind: SyntaxKind) -> bool {
22052        kind == SyntaxKind::CUSTOM_OP
22053    }
22054    #[inline]
22055    fn cast(syntax: SyntaxNode) -> Option<Self> {
22056        if Self::can_cast(syntax.kind()) {
22057            Some(Self { syntax })
22058        } else {
22059            None
22060        }
22061    }
22062    #[inline]
22063    fn syntax(&self) -> &SyntaxNode {
22064        &self.syntax
22065    }
22066}
22067impl AstNode for Deallocate {
22068    #[inline]
22069    fn can_cast(kind: SyntaxKind) -> bool {
22070        kind == SyntaxKind::DEALLOCATE
22071    }
22072    #[inline]
22073    fn cast(syntax: SyntaxNode) -> Option<Self> {
22074        if Self::can_cast(syntax.kind()) {
22075            Some(Self { syntax })
22076        } else {
22077            None
22078        }
22079    }
22080    #[inline]
22081    fn syntax(&self) -> &SyntaxNode {
22082        &self.syntax
22083    }
22084}
22085impl AstNode for Declare {
22086    #[inline]
22087    fn can_cast(kind: SyntaxKind) -> bool {
22088        kind == SyntaxKind::DECLARE
22089    }
22090    #[inline]
22091    fn cast(syntax: SyntaxNode) -> Option<Self> {
22092        if Self::can_cast(syntax.kind()) {
22093            Some(Self { syntax })
22094        } else {
22095            None
22096        }
22097    }
22098    #[inline]
22099    fn syntax(&self) -> &SyntaxNode {
22100        &self.syntax
22101    }
22102}
22103impl AstNode for DefaultConstraint {
22104    #[inline]
22105    fn can_cast(kind: SyntaxKind) -> bool {
22106        kind == SyntaxKind::DEFAULT_CONSTRAINT
22107    }
22108    #[inline]
22109    fn cast(syntax: SyntaxNode) -> Option<Self> {
22110        if Self::can_cast(syntax.kind()) {
22111            Some(Self { syntax })
22112        } else {
22113            None
22114        }
22115    }
22116    #[inline]
22117    fn syntax(&self) -> &SyntaxNode {
22118        &self.syntax
22119    }
22120}
22121impl AstNode for Deferrable {
22122    #[inline]
22123    fn can_cast(kind: SyntaxKind) -> bool {
22124        kind == SyntaxKind::DEFERRABLE
22125    }
22126    #[inline]
22127    fn cast(syntax: SyntaxNode) -> Option<Self> {
22128        if Self::can_cast(syntax.kind()) {
22129            Some(Self { syntax })
22130        } else {
22131            None
22132        }
22133    }
22134    #[inline]
22135    fn syntax(&self) -> &SyntaxNode {
22136        &self.syntax
22137    }
22138}
22139impl AstNode for DeferrableConstraintOption {
22140    #[inline]
22141    fn can_cast(kind: SyntaxKind) -> bool {
22142        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22143    }
22144    #[inline]
22145    fn cast(syntax: SyntaxNode) -> Option<Self> {
22146        if Self::can_cast(syntax.kind()) {
22147            Some(Self { syntax })
22148        } else {
22149            None
22150        }
22151    }
22152    #[inline]
22153    fn syntax(&self) -> &SyntaxNode {
22154        &self.syntax
22155    }
22156}
22157impl AstNode for Delete {
22158    #[inline]
22159    fn can_cast(kind: SyntaxKind) -> bool {
22160        kind == SyntaxKind::DELETE
22161    }
22162    #[inline]
22163    fn cast(syntax: SyntaxNode) -> Option<Self> {
22164        if Self::can_cast(syntax.kind()) {
22165            Some(Self { syntax })
22166        } else {
22167            None
22168        }
22169    }
22170    #[inline]
22171    fn syntax(&self) -> &SyntaxNode {
22172        &self.syntax
22173    }
22174}
22175impl AstNode for DeleteRows {
22176    #[inline]
22177    fn can_cast(kind: SyntaxKind) -> bool {
22178        kind == SyntaxKind::DELETE_ROWS
22179    }
22180    #[inline]
22181    fn cast(syntax: SyntaxNode) -> Option<Self> {
22182        if Self::can_cast(syntax.kind()) {
22183            Some(Self { syntax })
22184        } else {
22185            None
22186        }
22187    }
22188    #[inline]
22189    fn syntax(&self) -> &SyntaxNode {
22190        &self.syntax
22191    }
22192}
22193impl AstNode for DependsOnExtension {
22194    #[inline]
22195    fn can_cast(kind: SyntaxKind) -> bool {
22196        kind == SyntaxKind::DEPENDS_ON_EXTENSION
22197    }
22198    #[inline]
22199    fn cast(syntax: SyntaxNode) -> Option<Self> {
22200        if Self::can_cast(syntax.kind()) {
22201            Some(Self { syntax })
22202        } else {
22203            None
22204        }
22205    }
22206    #[inline]
22207    fn syntax(&self) -> &SyntaxNode {
22208        &self.syntax
22209    }
22210}
22211impl AstNode for DestVertexTable {
22212    #[inline]
22213    fn can_cast(kind: SyntaxKind) -> bool {
22214        kind == SyntaxKind::DEST_VERTEX_TABLE
22215    }
22216    #[inline]
22217    fn cast(syntax: SyntaxNode) -> Option<Self> {
22218        if Self::can_cast(syntax.kind()) {
22219            Some(Self { syntax })
22220        } else {
22221            None
22222        }
22223    }
22224    #[inline]
22225    fn syntax(&self) -> &SyntaxNode {
22226        &self.syntax
22227    }
22228}
22229impl AstNode for DetachPartition {
22230    #[inline]
22231    fn can_cast(kind: SyntaxKind) -> bool {
22232        kind == SyntaxKind::DETACH_PARTITION
22233    }
22234    #[inline]
22235    fn cast(syntax: SyntaxNode) -> Option<Self> {
22236        if Self::can_cast(syntax.kind()) {
22237            Some(Self { syntax })
22238        } else {
22239            None
22240        }
22241    }
22242    #[inline]
22243    fn syntax(&self) -> &SyntaxNode {
22244        &self.syntax
22245    }
22246}
22247impl AstNode for DisableRls {
22248    #[inline]
22249    fn can_cast(kind: SyntaxKind) -> bool {
22250        kind == SyntaxKind::DISABLE_RLS
22251    }
22252    #[inline]
22253    fn cast(syntax: SyntaxNode) -> Option<Self> {
22254        if Self::can_cast(syntax.kind()) {
22255            Some(Self { syntax })
22256        } else {
22257            None
22258        }
22259    }
22260    #[inline]
22261    fn syntax(&self) -> &SyntaxNode {
22262        &self.syntax
22263    }
22264}
22265impl AstNode for DisableRule {
22266    #[inline]
22267    fn can_cast(kind: SyntaxKind) -> bool {
22268        kind == SyntaxKind::DISABLE_RULE
22269    }
22270    #[inline]
22271    fn cast(syntax: SyntaxNode) -> Option<Self> {
22272        if Self::can_cast(syntax.kind()) {
22273            Some(Self { syntax })
22274        } else {
22275            None
22276        }
22277    }
22278    #[inline]
22279    fn syntax(&self) -> &SyntaxNode {
22280        &self.syntax
22281    }
22282}
22283impl AstNode for DisableTrigger {
22284    #[inline]
22285    fn can_cast(kind: SyntaxKind) -> bool {
22286        kind == SyntaxKind::DISABLE_TRIGGER
22287    }
22288    #[inline]
22289    fn cast(syntax: SyntaxNode) -> Option<Self> {
22290        if Self::can_cast(syntax.kind()) {
22291            Some(Self { syntax })
22292        } else {
22293            None
22294        }
22295    }
22296    #[inline]
22297    fn syntax(&self) -> &SyntaxNode {
22298        &self.syntax
22299    }
22300}
22301impl AstNode for Discard {
22302    #[inline]
22303    fn can_cast(kind: SyntaxKind) -> bool {
22304        kind == SyntaxKind::DISCARD
22305    }
22306    #[inline]
22307    fn cast(syntax: SyntaxNode) -> Option<Self> {
22308        if Self::can_cast(syntax.kind()) {
22309            Some(Self { syntax })
22310        } else {
22311            None
22312        }
22313    }
22314    #[inline]
22315    fn syntax(&self) -> &SyntaxNode {
22316        &self.syntax
22317    }
22318}
22319impl AstNode for DistinctClause {
22320    #[inline]
22321    fn can_cast(kind: SyntaxKind) -> bool {
22322        kind == SyntaxKind::DISTINCT_CLAUSE
22323    }
22324    #[inline]
22325    fn cast(syntax: SyntaxNode) -> Option<Self> {
22326        if Self::can_cast(syntax.kind()) {
22327            Some(Self { syntax })
22328        } else {
22329            None
22330        }
22331    }
22332    #[inline]
22333    fn syntax(&self) -> &SyntaxNode {
22334        &self.syntax
22335    }
22336}
22337impl AstNode for Do {
22338    #[inline]
22339    fn can_cast(kind: SyntaxKind) -> bool {
22340        kind == SyntaxKind::DO
22341    }
22342    #[inline]
22343    fn cast(syntax: SyntaxNode) -> Option<Self> {
22344        if Self::can_cast(syntax.kind()) {
22345            Some(Self { syntax })
22346        } else {
22347            None
22348        }
22349    }
22350    #[inline]
22351    fn syntax(&self) -> &SyntaxNode {
22352        &self.syntax
22353    }
22354}
22355impl AstNode for DoubleType {
22356    #[inline]
22357    fn can_cast(kind: SyntaxKind) -> bool {
22358        kind == SyntaxKind::DOUBLE_TYPE
22359    }
22360    #[inline]
22361    fn cast(syntax: SyntaxNode) -> Option<Self> {
22362        if Self::can_cast(syntax.kind()) {
22363            Some(Self { syntax })
22364        } else {
22365            None
22366        }
22367    }
22368    #[inline]
22369    fn syntax(&self) -> &SyntaxNode {
22370        &self.syntax
22371    }
22372}
22373impl AstNode for Drop {
22374    #[inline]
22375    fn can_cast(kind: SyntaxKind) -> bool {
22376        kind == SyntaxKind::DROP
22377    }
22378    #[inline]
22379    fn cast(syntax: SyntaxNode) -> Option<Self> {
22380        if Self::can_cast(syntax.kind()) {
22381            Some(Self { syntax })
22382        } else {
22383            None
22384        }
22385    }
22386    #[inline]
22387    fn syntax(&self) -> &SyntaxNode {
22388        &self.syntax
22389    }
22390}
22391impl AstNode for DropAccessMethod {
22392    #[inline]
22393    fn can_cast(kind: SyntaxKind) -> bool {
22394        kind == SyntaxKind::DROP_ACCESS_METHOD
22395    }
22396    #[inline]
22397    fn cast(syntax: SyntaxNode) -> Option<Self> {
22398        if Self::can_cast(syntax.kind()) {
22399            Some(Self { syntax })
22400        } else {
22401            None
22402        }
22403    }
22404    #[inline]
22405    fn syntax(&self) -> &SyntaxNode {
22406        &self.syntax
22407    }
22408}
22409impl AstNode for DropAggregate {
22410    #[inline]
22411    fn can_cast(kind: SyntaxKind) -> bool {
22412        kind == SyntaxKind::DROP_AGGREGATE
22413    }
22414    #[inline]
22415    fn cast(syntax: SyntaxNode) -> Option<Self> {
22416        if Self::can_cast(syntax.kind()) {
22417            Some(Self { syntax })
22418        } else {
22419            None
22420        }
22421    }
22422    #[inline]
22423    fn syntax(&self) -> &SyntaxNode {
22424        &self.syntax
22425    }
22426}
22427impl AstNode for DropAttribute {
22428    #[inline]
22429    fn can_cast(kind: SyntaxKind) -> bool {
22430        kind == SyntaxKind::DROP_ATTRIBUTE
22431    }
22432    #[inline]
22433    fn cast(syntax: SyntaxNode) -> Option<Self> {
22434        if Self::can_cast(syntax.kind()) {
22435            Some(Self { syntax })
22436        } else {
22437            None
22438        }
22439    }
22440    #[inline]
22441    fn syntax(&self) -> &SyntaxNode {
22442        &self.syntax
22443    }
22444}
22445impl AstNode for DropCast {
22446    #[inline]
22447    fn can_cast(kind: SyntaxKind) -> bool {
22448        kind == SyntaxKind::DROP_CAST
22449    }
22450    #[inline]
22451    fn cast(syntax: SyntaxNode) -> Option<Self> {
22452        if Self::can_cast(syntax.kind()) {
22453            Some(Self { syntax })
22454        } else {
22455            None
22456        }
22457    }
22458    #[inline]
22459    fn syntax(&self) -> &SyntaxNode {
22460        &self.syntax
22461    }
22462}
22463impl AstNode for DropCollation {
22464    #[inline]
22465    fn can_cast(kind: SyntaxKind) -> bool {
22466        kind == SyntaxKind::DROP_COLLATION
22467    }
22468    #[inline]
22469    fn cast(syntax: SyntaxNode) -> Option<Self> {
22470        if Self::can_cast(syntax.kind()) {
22471            Some(Self { syntax })
22472        } else {
22473            None
22474        }
22475    }
22476    #[inline]
22477    fn syntax(&self) -> &SyntaxNode {
22478        &self.syntax
22479    }
22480}
22481impl AstNode for DropColumn {
22482    #[inline]
22483    fn can_cast(kind: SyntaxKind) -> bool {
22484        kind == SyntaxKind::DROP_COLUMN
22485    }
22486    #[inline]
22487    fn cast(syntax: SyntaxNode) -> Option<Self> {
22488        if Self::can_cast(syntax.kind()) {
22489            Some(Self { syntax })
22490        } else {
22491            None
22492        }
22493    }
22494    #[inline]
22495    fn syntax(&self) -> &SyntaxNode {
22496        &self.syntax
22497    }
22498}
22499impl AstNode for DropConstraint {
22500    #[inline]
22501    fn can_cast(kind: SyntaxKind) -> bool {
22502        kind == SyntaxKind::DROP_CONSTRAINT
22503    }
22504    #[inline]
22505    fn cast(syntax: SyntaxNode) -> Option<Self> {
22506        if Self::can_cast(syntax.kind()) {
22507            Some(Self { syntax })
22508        } else {
22509            None
22510        }
22511    }
22512    #[inline]
22513    fn syntax(&self) -> &SyntaxNode {
22514        &self.syntax
22515    }
22516}
22517impl AstNode for DropConversion {
22518    #[inline]
22519    fn can_cast(kind: SyntaxKind) -> bool {
22520        kind == SyntaxKind::DROP_CONVERSION
22521    }
22522    #[inline]
22523    fn cast(syntax: SyntaxNode) -> Option<Self> {
22524        if Self::can_cast(syntax.kind()) {
22525            Some(Self { syntax })
22526        } else {
22527            None
22528        }
22529    }
22530    #[inline]
22531    fn syntax(&self) -> &SyntaxNode {
22532        &self.syntax
22533    }
22534}
22535impl AstNode for DropDatabase {
22536    #[inline]
22537    fn can_cast(kind: SyntaxKind) -> bool {
22538        kind == SyntaxKind::DROP_DATABASE
22539    }
22540    #[inline]
22541    fn cast(syntax: SyntaxNode) -> Option<Self> {
22542        if Self::can_cast(syntax.kind()) {
22543            Some(Self { syntax })
22544        } else {
22545            None
22546        }
22547    }
22548    #[inline]
22549    fn syntax(&self) -> &SyntaxNode {
22550        &self.syntax
22551    }
22552}
22553impl AstNode for DropDefault {
22554    #[inline]
22555    fn can_cast(kind: SyntaxKind) -> bool {
22556        kind == SyntaxKind::DROP_DEFAULT
22557    }
22558    #[inline]
22559    fn cast(syntax: SyntaxNode) -> Option<Self> {
22560        if Self::can_cast(syntax.kind()) {
22561            Some(Self { syntax })
22562        } else {
22563            None
22564        }
22565    }
22566    #[inline]
22567    fn syntax(&self) -> &SyntaxNode {
22568        &self.syntax
22569    }
22570}
22571impl AstNode for DropDomain {
22572    #[inline]
22573    fn can_cast(kind: SyntaxKind) -> bool {
22574        kind == SyntaxKind::DROP_DOMAIN
22575    }
22576    #[inline]
22577    fn cast(syntax: SyntaxNode) -> Option<Self> {
22578        if Self::can_cast(syntax.kind()) {
22579            Some(Self { syntax })
22580        } else {
22581            None
22582        }
22583    }
22584    #[inline]
22585    fn syntax(&self) -> &SyntaxNode {
22586        &self.syntax
22587    }
22588}
22589impl AstNode for DropEdgeTables {
22590    #[inline]
22591    fn can_cast(kind: SyntaxKind) -> bool {
22592        kind == SyntaxKind::DROP_EDGE_TABLES
22593    }
22594    #[inline]
22595    fn cast(syntax: SyntaxNode) -> Option<Self> {
22596        if Self::can_cast(syntax.kind()) {
22597            Some(Self { syntax })
22598        } else {
22599            None
22600        }
22601    }
22602    #[inline]
22603    fn syntax(&self) -> &SyntaxNode {
22604        &self.syntax
22605    }
22606}
22607impl AstNode for DropEventTrigger {
22608    #[inline]
22609    fn can_cast(kind: SyntaxKind) -> bool {
22610        kind == SyntaxKind::DROP_EVENT_TRIGGER
22611    }
22612    #[inline]
22613    fn cast(syntax: SyntaxNode) -> Option<Self> {
22614        if Self::can_cast(syntax.kind()) {
22615            Some(Self { syntax })
22616        } else {
22617            None
22618        }
22619    }
22620    #[inline]
22621    fn syntax(&self) -> &SyntaxNode {
22622        &self.syntax
22623    }
22624}
22625impl AstNode for DropExpression {
22626    #[inline]
22627    fn can_cast(kind: SyntaxKind) -> bool {
22628        kind == SyntaxKind::DROP_EXPRESSION
22629    }
22630    #[inline]
22631    fn cast(syntax: SyntaxNode) -> Option<Self> {
22632        if Self::can_cast(syntax.kind()) {
22633            Some(Self { syntax })
22634        } else {
22635            None
22636        }
22637    }
22638    #[inline]
22639    fn syntax(&self) -> &SyntaxNode {
22640        &self.syntax
22641    }
22642}
22643impl AstNode for DropExtension {
22644    #[inline]
22645    fn can_cast(kind: SyntaxKind) -> bool {
22646        kind == SyntaxKind::DROP_EXTENSION
22647    }
22648    #[inline]
22649    fn cast(syntax: SyntaxNode) -> Option<Self> {
22650        if Self::can_cast(syntax.kind()) {
22651            Some(Self { syntax })
22652        } else {
22653            None
22654        }
22655    }
22656    #[inline]
22657    fn syntax(&self) -> &SyntaxNode {
22658        &self.syntax
22659    }
22660}
22661impl AstNode for DropForeignDataWrapper {
22662    #[inline]
22663    fn can_cast(kind: SyntaxKind) -> bool {
22664        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22665    }
22666    #[inline]
22667    fn cast(syntax: SyntaxNode) -> Option<Self> {
22668        if Self::can_cast(syntax.kind()) {
22669            Some(Self { syntax })
22670        } else {
22671            None
22672        }
22673    }
22674    #[inline]
22675    fn syntax(&self) -> &SyntaxNode {
22676        &self.syntax
22677    }
22678}
22679impl AstNode for DropForeignTable {
22680    #[inline]
22681    fn can_cast(kind: SyntaxKind) -> bool {
22682        kind == SyntaxKind::DROP_FOREIGN_TABLE
22683    }
22684    #[inline]
22685    fn cast(syntax: SyntaxNode) -> Option<Self> {
22686        if Self::can_cast(syntax.kind()) {
22687            Some(Self { syntax })
22688        } else {
22689            None
22690        }
22691    }
22692    #[inline]
22693    fn syntax(&self) -> &SyntaxNode {
22694        &self.syntax
22695    }
22696}
22697impl AstNode for DropFunction {
22698    #[inline]
22699    fn can_cast(kind: SyntaxKind) -> bool {
22700        kind == SyntaxKind::DROP_FUNCTION
22701    }
22702    #[inline]
22703    fn cast(syntax: SyntaxNode) -> Option<Self> {
22704        if Self::can_cast(syntax.kind()) {
22705            Some(Self { syntax })
22706        } else {
22707            None
22708        }
22709    }
22710    #[inline]
22711    fn syntax(&self) -> &SyntaxNode {
22712        &self.syntax
22713    }
22714}
22715impl AstNode for DropGroup {
22716    #[inline]
22717    fn can_cast(kind: SyntaxKind) -> bool {
22718        kind == SyntaxKind::DROP_GROUP
22719    }
22720    #[inline]
22721    fn cast(syntax: SyntaxNode) -> Option<Self> {
22722        if Self::can_cast(syntax.kind()) {
22723            Some(Self { syntax })
22724        } else {
22725            None
22726        }
22727    }
22728    #[inline]
22729    fn syntax(&self) -> &SyntaxNode {
22730        &self.syntax
22731    }
22732}
22733impl AstNode for DropIdentity {
22734    #[inline]
22735    fn can_cast(kind: SyntaxKind) -> bool {
22736        kind == SyntaxKind::DROP_IDENTITY
22737    }
22738    #[inline]
22739    fn cast(syntax: SyntaxNode) -> Option<Self> {
22740        if Self::can_cast(syntax.kind()) {
22741            Some(Self { syntax })
22742        } else {
22743            None
22744        }
22745    }
22746    #[inline]
22747    fn syntax(&self) -> &SyntaxNode {
22748        &self.syntax
22749    }
22750}
22751impl AstNode for DropIndex {
22752    #[inline]
22753    fn can_cast(kind: SyntaxKind) -> bool {
22754        kind == SyntaxKind::DROP_INDEX
22755    }
22756    #[inline]
22757    fn cast(syntax: SyntaxNode) -> Option<Self> {
22758        if Self::can_cast(syntax.kind()) {
22759            Some(Self { syntax })
22760        } else {
22761            None
22762        }
22763    }
22764    #[inline]
22765    fn syntax(&self) -> &SyntaxNode {
22766        &self.syntax
22767    }
22768}
22769impl AstNode for DropLanguage {
22770    #[inline]
22771    fn can_cast(kind: SyntaxKind) -> bool {
22772        kind == SyntaxKind::DROP_LANGUAGE
22773    }
22774    #[inline]
22775    fn cast(syntax: SyntaxNode) -> Option<Self> {
22776        if Self::can_cast(syntax.kind()) {
22777            Some(Self { syntax })
22778        } else {
22779            None
22780        }
22781    }
22782    #[inline]
22783    fn syntax(&self) -> &SyntaxNode {
22784        &self.syntax
22785    }
22786}
22787impl AstNode for DropMaterializedView {
22788    #[inline]
22789    fn can_cast(kind: SyntaxKind) -> bool {
22790        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
22791    }
22792    #[inline]
22793    fn cast(syntax: SyntaxNode) -> Option<Self> {
22794        if Self::can_cast(syntax.kind()) {
22795            Some(Self { syntax })
22796        } else {
22797            None
22798        }
22799    }
22800    #[inline]
22801    fn syntax(&self) -> &SyntaxNode {
22802        &self.syntax
22803    }
22804}
22805impl AstNode for DropNotNull {
22806    #[inline]
22807    fn can_cast(kind: SyntaxKind) -> bool {
22808        kind == SyntaxKind::DROP_NOT_NULL
22809    }
22810    #[inline]
22811    fn cast(syntax: SyntaxNode) -> Option<Self> {
22812        if Self::can_cast(syntax.kind()) {
22813            Some(Self { syntax })
22814        } else {
22815            None
22816        }
22817    }
22818    #[inline]
22819    fn syntax(&self) -> &SyntaxNode {
22820        &self.syntax
22821    }
22822}
22823impl AstNode for DropOpClassOption {
22824    #[inline]
22825    fn can_cast(kind: SyntaxKind) -> bool {
22826        kind == SyntaxKind::DROP_OP_CLASS_OPTION
22827    }
22828    #[inline]
22829    fn cast(syntax: SyntaxNode) -> Option<Self> {
22830        if Self::can_cast(syntax.kind()) {
22831            Some(Self { syntax })
22832        } else {
22833            None
22834        }
22835    }
22836    #[inline]
22837    fn syntax(&self) -> &SyntaxNode {
22838        &self.syntax
22839    }
22840}
22841impl AstNode for DropOpClassOptionList {
22842    #[inline]
22843    fn can_cast(kind: SyntaxKind) -> bool {
22844        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
22845    }
22846    #[inline]
22847    fn cast(syntax: SyntaxNode) -> Option<Self> {
22848        if Self::can_cast(syntax.kind()) {
22849            Some(Self { syntax })
22850        } else {
22851            None
22852        }
22853    }
22854    #[inline]
22855    fn syntax(&self) -> &SyntaxNode {
22856        &self.syntax
22857    }
22858}
22859impl AstNode for DropOpClassOptions {
22860    #[inline]
22861    fn can_cast(kind: SyntaxKind) -> bool {
22862        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
22863    }
22864    #[inline]
22865    fn cast(syntax: SyntaxNode) -> Option<Self> {
22866        if Self::can_cast(syntax.kind()) {
22867            Some(Self { syntax })
22868        } else {
22869            None
22870        }
22871    }
22872    #[inline]
22873    fn syntax(&self) -> &SyntaxNode {
22874        &self.syntax
22875    }
22876}
22877impl AstNode for DropOperator {
22878    #[inline]
22879    fn can_cast(kind: SyntaxKind) -> bool {
22880        kind == SyntaxKind::DROP_OPERATOR
22881    }
22882    #[inline]
22883    fn cast(syntax: SyntaxNode) -> Option<Self> {
22884        if Self::can_cast(syntax.kind()) {
22885            Some(Self { syntax })
22886        } else {
22887            None
22888        }
22889    }
22890    #[inline]
22891    fn syntax(&self) -> &SyntaxNode {
22892        &self.syntax
22893    }
22894}
22895impl AstNode for DropOperatorClass {
22896    #[inline]
22897    fn can_cast(kind: SyntaxKind) -> bool {
22898        kind == SyntaxKind::DROP_OPERATOR_CLASS
22899    }
22900    #[inline]
22901    fn cast(syntax: SyntaxNode) -> Option<Self> {
22902        if Self::can_cast(syntax.kind()) {
22903            Some(Self { syntax })
22904        } else {
22905            None
22906        }
22907    }
22908    #[inline]
22909    fn syntax(&self) -> &SyntaxNode {
22910        &self.syntax
22911    }
22912}
22913impl AstNode for DropOperatorFamily {
22914    #[inline]
22915    fn can_cast(kind: SyntaxKind) -> bool {
22916        kind == SyntaxKind::DROP_OPERATOR_FAMILY
22917    }
22918    #[inline]
22919    fn cast(syntax: SyntaxNode) -> Option<Self> {
22920        if Self::can_cast(syntax.kind()) {
22921            Some(Self { syntax })
22922        } else {
22923            None
22924        }
22925    }
22926    #[inline]
22927    fn syntax(&self) -> &SyntaxNode {
22928        &self.syntax
22929    }
22930}
22931impl AstNode for DropOwned {
22932    #[inline]
22933    fn can_cast(kind: SyntaxKind) -> bool {
22934        kind == SyntaxKind::DROP_OWNED
22935    }
22936    #[inline]
22937    fn cast(syntax: SyntaxNode) -> Option<Self> {
22938        if Self::can_cast(syntax.kind()) {
22939            Some(Self { syntax })
22940        } else {
22941            None
22942        }
22943    }
22944    #[inline]
22945    fn syntax(&self) -> &SyntaxNode {
22946        &self.syntax
22947    }
22948}
22949impl AstNode for DropPolicy {
22950    #[inline]
22951    fn can_cast(kind: SyntaxKind) -> bool {
22952        kind == SyntaxKind::DROP_POLICY
22953    }
22954    #[inline]
22955    fn cast(syntax: SyntaxNode) -> Option<Self> {
22956        if Self::can_cast(syntax.kind()) {
22957            Some(Self { syntax })
22958        } else {
22959            None
22960        }
22961    }
22962    #[inline]
22963    fn syntax(&self) -> &SyntaxNode {
22964        &self.syntax
22965    }
22966}
22967impl AstNode for DropProcedure {
22968    #[inline]
22969    fn can_cast(kind: SyntaxKind) -> bool {
22970        kind == SyntaxKind::DROP_PROCEDURE
22971    }
22972    #[inline]
22973    fn cast(syntax: SyntaxNode) -> Option<Self> {
22974        if Self::can_cast(syntax.kind()) {
22975            Some(Self { syntax })
22976        } else {
22977            None
22978        }
22979    }
22980    #[inline]
22981    fn syntax(&self) -> &SyntaxNode {
22982        &self.syntax
22983    }
22984}
22985impl AstNode for DropPropertyGraph {
22986    #[inline]
22987    fn can_cast(kind: SyntaxKind) -> bool {
22988        kind == SyntaxKind::DROP_PROPERTY_GRAPH
22989    }
22990    #[inline]
22991    fn cast(syntax: SyntaxNode) -> Option<Self> {
22992        if Self::can_cast(syntax.kind()) {
22993            Some(Self { syntax })
22994        } else {
22995            None
22996        }
22997    }
22998    #[inline]
22999    fn syntax(&self) -> &SyntaxNode {
23000        &self.syntax
23001    }
23002}
23003impl AstNode for DropPublication {
23004    #[inline]
23005    fn can_cast(kind: SyntaxKind) -> bool {
23006        kind == SyntaxKind::DROP_PUBLICATION
23007    }
23008    #[inline]
23009    fn cast(syntax: SyntaxNode) -> Option<Self> {
23010        if Self::can_cast(syntax.kind()) {
23011            Some(Self { syntax })
23012        } else {
23013            None
23014        }
23015    }
23016    #[inline]
23017    fn syntax(&self) -> &SyntaxNode {
23018        &self.syntax
23019    }
23020}
23021impl AstNode for DropRole {
23022    #[inline]
23023    fn can_cast(kind: SyntaxKind) -> bool {
23024        kind == SyntaxKind::DROP_ROLE
23025    }
23026    #[inline]
23027    fn cast(syntax: SyntaxNode) -> Option<Self> {
23028        if Self::can_cast(syntax.kind()) {
23029            Some(Self { syntax })
23030        } else {
23031            None
23032        }
23033    }
23034    #[inline]
23035    fn syntax(&self) -> &SyntaxNode {
23036        &self.syntax
23037    }
23038}
23039impl AstNode for DropRoutine {
23040    #[inline]
23041    fn can_cast(kind: SyntaxKind) -> bool {
23042        kind == SyntaxKind::DROP_ROUTINE
23043    }
23044    #[inline]
23045    fn cast(syntax: SyntaxNode) -> Option<Self> {
23046        if Self::can_cast(syntax.kind()) {
23047            Some(Self { syntax })
23048        } else {
23049            None
23050        }
23051    }
23052    #[inline]
23053    fn syntax(&self) -> &SyntaxNode {
23054        &self.syntax
23055    }
23056}
23057impl AstNode for DropRule {
23058    #[inline]
23059    fn can_cast(kind: SyntaxKind) -> bool {
23060        kind == SyntaxKind::DROP_RULE
23061    }
23062    #[inline]
23063    fn cast(syntax: SyntaxNode) -> Option<Self> {
23064        if Self::can_cast(syntax.kind()) {
23065            Some(Self { syntax })
23066        } else {
23067            None
23068        }
23069    }
23070    #[inline]
23071    fn syntax(&self) -> &SyntaxNode {
23072        &self.syntax
23073    }
23074}
23075impl AstNode for DropSchema {
23076    #[inline]
23077    fn can_cast(kind: SyntaxKind) -> bool {
23078        kind == SyntaxKind::DROP_SCHEMA
23079    }
23080    #[inline]
23081    fn cast(syntax: SyntaxNode) -> Option<Self> {
23082        if Self::can_cast(syntax.kind()) {
23083            Some(Self { syntax })
23084        } else {
23085            None
23086        }
23087    }
23088    #[inline]
23089    fn syntax(&self) -> &SyntaxNode {
23090        &self.syntax
23091    }
23092}
23093impl AstNode for DropSequence {
23094    #[inline]
23095    fn can_cast(kind: SyntaxKind) -> bool {
23096        kind == SyntaxKind::DROP_SEQUENCE
23097    }
23098    #[inline]
23099    fn cast(syntax: SyntaxNode) -> Option<Self> {
23100        if Self::can_cast(syntax.kind()) {
23101            Some(Self { syntax })
23102        } else {
23103            None
23104        }
23105    }
23106    #[inline]
23107    fn syntax(&self) -> &SyntaxNode {
23108        &self.syntax
23109    }
23110}
23111impl AstNode for DropServer {
23112    #[inline]
23113    fn can_cast(kind: SyntaxKind) -> bool {
23114        kind == SyntaxKind::DROP_SERVER
23115    }
23116    #[inline]
23117    fn cast(syntax: SyntaxNode) -> Option<Self> {
23118        if Self::can_cast(syntax.kind()) {
23119            Some(Self { syntax })
23120        } else {
23121            None
23122        }
23123    }
23124    #[inline]
23125    fn syntax(&self) -> &SyntaxNode {
23126        &self.syntax
23127    }
23128}
23129impl AstNode for DropStatistics {
23130    #[inline]
23131    fn can_cast(kind: SyntaxKind) -> bool {
23132        kind == SyntaxKind::DROP_STATISTICS
23133    }
23134    #[inline]
23135    fn cast(syntax: SyntaxNode) -> Option<Self> {
23136        if Self::can_cast(syntax.kind()) {
23137            Some(Self { syntax })
23138        } else {
23139            None
23140        }
23141    }
23142    #[inline]
23143    fn syntax(&self) -> &SyntaxNode {
23144        &self.syntax
23145    }
23146}
23147impl AstNode for DropSubscription {
23148    #[inline]
23149    fn can_cast(kind: SyntaxKind) -> bool {
23150        kind == SyntaxKind::DROP_SUBSCRIPTION
23151    }
23152    #[inline]
23153    fn cast(syntax: SyntaxNode) -> Option<Self> {
23154        if Self::can_cast(syntax.kind()) {
23155            Some(Self { syntax })
23156        } else {
23157            None
23158        }
23159    }
23160    #[inline]
23161    fn syntax(&self) -> &SyntaxNode {
23162        &self.syntax
23163    }
23164}
23165impl AstNode for DropTable {
23166    #[inline]
23167    fn can_cast(kind: SyntaxKind) -> bool {
23168        kind == SyntaxKind::DROP_TABLE
23169    }
23170    #[inline]
23171    fn cast(syntax: SyntaxNode) -> Option<Self> {
23172        if Self::can_cast(syntax.kind()) {
23173            Some(Self { syntax })
23174        } else {
23175            None
23176        }
23177    }
23178    #[inline]
23179    fn syntax(&self) -> &SyntaxNode {
23180        &self.syntax
23181    }
23182}
23183impl AstNode for DropTablespace {
23184    #[inline]
23185    fn can_cast(kind: SyntaxKind) -> bool {
23186        kind == SyntaxKind::DROP_TABLESPACE
23187    }
23188    #[inline]
23189    fn cast(syntax: SyntaxNode) -> Option<Self> {
23190        if Self::can_cast(syntax.kind()) {
23191            Some(Self { syntax })
23192        } else {
23193            None
23194        }
23195    }
23196    #[inline]
23197    fn syntax(&self) -> &SyntaxNode {
23198        &self.syntax
23199    }
23200}
23201impl AstNode for DropTextSearchConfig {
23202    #[inline]
23203    fn can_cast(kind: SyntaxKind) -> bool {
23204        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23205    }
23206    #[inline]
23207    fn cast(syntax: SyntaxNode) -> Option<Self> {
23208        if Self::can_cast(syntax.kind()) {
23209            Some(Self { syntax })
23210        } else {
23211            None
23212        }
23213    }
23214    #[inline]
23215    fn syntax(&self) -> &SyntaxNode {
23216        &self.syntax
23217    }
23218}
23219impl AstNode for DropTextSearchDict {
23220    #[inline]
23221    fn can_cast(kind: SyntaxKind) -> bool {
23222        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
23223    }
23224    #[inline]
23225    fn cast(syntax: SyntaxNode) -> Option<Self> {
23226        if Self::can_cast(syntax.kind()) {
23227            Some(Self { syntax })
23228        } else {
23229            None
23230        }
23231    }
23232    #[inline]
23233    fn syntax(&self) -> &SyntaxNode {
23234        &self.syntax
23235    }
23236}
23237impl AstNode for DropTextSearchParser {
23238    #[inline]
23239    fn can_cast(kind: SyntaxKind) -> bool {
23240        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
23241    }
23242    #[inline]
23243    fn cast(syntax: SyntaxNode) -> Option<Self> {
23244        if Self::can_cast(syntax.kind()) {
23245            Some(Self { syntax })
23246        } else {
23247            None
23248        }
23249    }
23250    #[inline]
23251    fn syntax(&self) -> &SyntaxNode {
23252        &self.syntax
23253    }
23254}
23255impl AstNode for DropTextSearchTemplate {
23256    #[inline]
23257    fn can_cast(kind: SyntaxKind) -> bool {
23258        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23259    }
23260    #[inline]
23261    fn cast(syntax: SyntaxNode) -> Option<Self> {
23262        if Self::can_cast(syntax.kind()) {
23263            Some(Self { syntax })
23264        } else {
23265            None
23266        }
23267    }
23268    #[inline]
23269    fn syntax(&self) -> &SyntaxNode {
23270        &self.syntax
23271    }
23272}
23273impl AstNode for DropTransform {
23274    #[inline]
23275    fn can_cast(kind: SyntaxKind) -> bool {
23276        kind == SyntaxKind::DROP_TRANSFORM
23277    }
23278    #[inline]
23279    fn cast(syntax: SyntaxNode) -> Option<Self> {
23280        if Self::can_cast(syntax.kind()) {
23281            Some(Self { syntax })
23282        } else {
23283            None
23284        }
23285    }
23286    #[inline]
23287    fn syntax(&self) -> &SyntaxNode {
23288        &self.syntax
23289    }
23290}
23291impl AstNode for DropTrigger {
23292    #[inline]
23293    fn can_cast(kind: SyntaxKind) -> bool {
23294        kind == SyntaxKind::DROP_TRIGGER
23295    }
23296    #[inline]
23297    fn cast(syntax: SyntaxNode) -> Option<Self> {
23298        if Self::can_cast(syntax.kind()) {
23299            Some(Self { syntax })
23300        } else {
23301            None
23302        }
23303    }
23304    #[inline]
23305    fn syntax(&self) -> &SyntaxNode {
23306        &self.syntax
23307    }
23308}
23309impl AstNode for DropType {
23310    #[inline]
23311    fn can_cast(kind: SyntaxKind) -> bool {
23312        kind == SyntaxKind::DROP_TYPE
23313    }
23314    #[inline]
23315    fn cast(syntax: SyntaxNode) -> Option<Self> {
23316        if Self::can_cast(syntax.kind()) {
23317            Some(Self { syntax })
23318        } else {
23319            None
23320        }
23321    }
23322    #[inline]
23323    fn syntax(&self) -> &SyntaxNode {
23324        &self.syntax
23325    }
23326}
23327impl AstNode for DropUser {
23328    #[inline]
23329    fn can_cast(kind: SyntaxKind) -> bool {
23330        kind == SyntaxKind::DROP_USER
23331    }
23332    #[inline]
23333    fn cast(syntax: SyntaxNode) -> Option<Self> {
23334        if Self::can_cast(syntax.kind()) {
23335            Some(Self { syntax })
23336        } else {
23337            None
23338        }
23339    }
23340    #[inline]
23341    fn syntax(&self) -> &SyntaxNode {
23342        &self.syntax
23343    }
23344}
23345impl AstNode for DropUserMapping {
23346    #[inline]
23347    fn can_cast(kind: SyntaxKind) -> bool {
23348        kind == SyntaxKind::DROP_USER_MAPPING
23349    }
23350    #[inline]
23351    fn cast(syntax: SyntaxNode) -> Option<Self> {
23352        if Self::can_cast(syntax.kind()) {
23353            Some(Self { syntax })
23354        } else {
23355            None
23356        }
23357    }
23358    #[inline]
23359    fn syntax(&self) -> &SyntaxNode {
23360        &self.syntax
23361    }
23362}
23363impl AstNode for DropVertexEdgeLabel {
23364    #[inline]
23365    fn can_cast(kind: SyntaxKind) -> bool {
23366        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
23367    }
23368    #[inline]
23369    fn cast(syntax: SyntaxNode) -> Option<Self> {
23370        if Self::can_cast(syntax.kind()) {
23371            Some(Self { syntax })
23372        } else {
23373            None
23374        }
23375    }
23376    #[inline]
23377    fn syntax(&self) -> &SyntaxNode {
23378        &self.syntax
23379    }
23380}
23381impl AstNode for DropVertexEdgeLabelProperties {
23382    #[inline]
23383    fn can_cast(kind: SyntaxKind) -> bool {
23384        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
23385    }
23386    #[inline]
23387    fn cast(syntax: SyntaxNode) -> Option<Self> {
23388        if Self::can_cast(syntax.kind()) {
23389            Some(Self { syntax })
23390        } else {
23391            None
23392        }
23393    }
23394    #[inline]
23395    fn syntax(&self) -> &SyntaxNode {
23396        &self.syntax
23397    }
23398}
23399impl AstNode for DropVertexTables {
23400    #[inline]
23401    fn can_cast(kind: SyntaxKind) -> bool {
23402        kind == SyntaxKind::DROP_VERTEX_TABLES
23403    }
23404    #[inline]
23405    fn cast(syntax: SyntaxNode) -> Option<Self> {
23406        if Self::can_cast(syntax.kind()) {
23407            Some(Self { syntax })
23408        } else {
23409            None
23410        }
23411    }
23412    #[inline]
23413    fn syntax(&self) -> &SyntaxNode {
23414        &self.syntax
23415    }
23416}
23417impl AstNode for DropView {
23418    #[inline]
23419    fn can_cast(kind: SyntaxKind) -> bool {
23420        kind == SyntaxKind::DROP_VIEW
23421    }
23422    #[inline]
23423    fn cast(syntax: SyntaxNode) -> Option<Self> {
23424        if Self::can_cast(syntax.kind()) {
23425            Some(Self { syntax })
23426        } else {
23427            None
23428        }
23429    }
23430    #[inline]
23431    fn syntax(&self) -> &SyntaxNode {
23432        &self.syntax
23433    }
23434}
23435impl AstNode for EdgeAny {
23436    #[inline]
23437    fn can_cast(kind: SyntaxKind) -> bool {
23438        kind == SyntaxKind::EDGE_ANY
23439    }
23440    #[inline]
23441    fn cast(syntax: SyntaxNode) -> Option<Self> {
23442        if Self::can_cast(syntax.kind()) {
23443            Some(Self { syntax })
23444        } else {
23445            None
23446        }
23447    }
23448    #[inline]
23449    fn syntax(&self) -> &SyntaxNode {
23450        &self.syntax
23451    }
23452}
23453impl AstNode for EdgeLeft {
23454    #[inline]
23455    fn can_cast(kind: SyntaxKind) -> bool {
23456        kind == SyntaxKind::EDGE_LEFT
23457    }
23458    #[inline]
23459    fn cast(syntax: SyntaxNode) -> Option<Self> {
23460        if Self::can_cast(syntax.kind()) {
23461            Some(Self { syntax })
23462        } else {
23463            None
23464        }
23465    }
23466    #[inline]
23467    fn syntax(&self) -> &SyntaxNode {
23468        &self.syntax
23469    }
23470}
23471impl AstNode for EdgeRight {
23472    #[inline]
23473    fn can_cast(kind: SyntaxKind) -> bool {
23474        kind == SyntaxKind::EDGE_RIGHT
23475    }
23476    #[inline]
23477    fn cast(syntax: SyntaxNode) -> Option<Self> {
23478        if Self::can_cast(syntax.kind()) {
23479            Some(Self { syntax })
23480        } else {
23481            None
23482        }
23483    }
23484    #[inline]
23485    fn syntax(&self) -> &SyntaxNode {
23486        &self.syntax
23487    }
23488}
23489impl AstNode for EdgeTableDef {
23490    #[inline]
23491    fn can_cast(kind: SyntaxKind) -> bool {
23492        kind == SyntaxKind::EDGE_TABLE_DEF
23493    }
23494    #[inline]
23495    fn cast(syntax: SyntaxNode) -> Option<Self> {
23496        if Self::can_cast(syntax.kind()) {
23497            Some(Self { syntax })
23498        } else {
23499            None
23500        }
23501    }
23502    #[inline]
23503    fn syntax(&self) -> &SyntaxNode {
23504        &self.syntax
23505    }
23506}
23507impl AstNode for EdgeTables {
23508    #[inline]
23509    fn can_cast(kind: SyntaxKind) -> bool {
23510        kind == SyntaxKind::EDGE_TABLES
23511    }
23512    #[inline]
23513    fn cast(syntax: SyntaxNode) -> Option<Self> {
23514        if Self::can_cast(syntax.kind()) {
23515            Some(Self { syntax })
23516        } else {
23517            None
23518        }
23519    }
23520    #[inline]
23521    fn syntax(&self) -> &SyntaxNode {
23522        &self.syntax
23523    }
23524}
23525impl AstNode for ElseClause {
23526    #[inline]
23527    fn can_cast(kind: SyntaxKind) -> bool {
23528        kind == SyntaxKind::ELSE_CLAUSE
23529    }
23530    #[inline]
23531    fn cast(syntax: SyntaxNode) -> Option<Self> {
23532        if Self::can_cast(syntax.kind()) {
23533            Some(Self { syntax })
23534        } else {
23535            None
23536        }
23537    }
23538    #[inline]
23539    fn syntax(&self) -> &SyntaxNode {
23540        &self.syntax
23541    }
23542}
23543impl AstNode for EnableAlwaysRule {
23544    #[inline]
23545    fn can_cast(kind: SyntaxKind) -> bool {
23546        kind == SyntaxKind::ENABLE_ALWAYS_RULE
23547    }
23548    #[inline]
23549    fn cast(syntax: SyntaxNode) -> Option<Self> {
23550        if Self::can_cast(syntax.kind()) {
23551            Some(Self { syntax })
23552        } else {
23553            None
23554        }
23555    }
23556    #[inline]
23557    fn syntax(&self) -> &SyntaxNode {
23558        &self.syntax
23559    }
23560}
23561impl AstNode for EnableAlwaysTrigger {
23562    #[inline]
23563    fn can_cast(kind: SyntaxKind) -> bool {
23564        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
23565    }
23566    #[inline]
23567    fn cast(syntax: SyntaxNode) -> Option<Self> {
23568        if Self::can_cast(syntax.kind()) {
23569            Some(Self { syntax })
23570        } else {
23571            None
23572        }
23573    }
23574    #[inline]
23575    fn syntax(&self) -> &SyntaxNode {
23576        &self.syntax
23577    }
23578}
23579impl AstNode for EnableReplicaRule {
23580    #[inline]
23581    fn can_cast(kind: SyntaxKind) -> bool {
23582        kind == SyntaxKind::ENABLE_REPLICA_RULE
23583    }
23584    #[inline]
23585    fn cast(syntax: SyntaxNode) -> Option<Self> {
23586        if Self::can_cast(syntax.kind()) {
23587            Some(Self { syntax })
23588        } else {
23589            None
23590        }
23591    }
23592    #[inline]
23593    fn syntax(&self) -> &SyntaxNode {
23594        &self.syntax
23595    }
23596}
23597impl AstNode for EnableReplicaTrigger {
23598    #[inline]
23599    fn can_cast(kind: SyntaxKind) -> bool {
23600        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
23601    }
23602    #[inline]
23603    fn cast(syntax: SyntaxNode) -> Option<Self> {
23604        if Self::can_cast(syntax.kind()) {
23605            Some(Self { syntax })
23606        } else {
23607            None
23608        }
23609    }
23610    #[inline]
23611    fn syntax(&self) -> &SyntaxNode {
23612        &self.syntax
23613    }
23614}
23615impl AstNode for EnableRls {
23616    #[inline]
23617    fn can_cast(kind: SyntaxKind) -> bool {
23618        kind == SyntaxKind::ENABLE_RLS
23619    }
23620    #[inline]
23621    fn cast(syntax: SyntaxNode) -> Option<Self> {
23622        if Self::can_cast(syntax.kind()) {
23623            Some(Self { syntax })
23624        } else {
23625            None
23626        }
23627    }
23628    #[inline]
23629    fn syntax(&self) -> &SyntaxNode {
23630        &self.syntax
23631    }
23632}
23633impl AstNode for EnableRule {
23634    #[inline]
23635    fn can_cast(kind: SyntaxKind) -> bool {
23636        kind == SyntaxKind::ENABLE_RULE
23637    }
23638    #[inline]
23639    fn cast(syntax: SyntaxNode) -> Option<Self> {
23640        if Self::can_cast(syntax.kind()) {
23641            Some(Self { syntax })
23642        } else {
23643            None
23644        }
23645    }
23646    #[inline]
23647    fn syntax(&self) -> &SyntaxNode {
23648        &self.syntax
23649    }
23650}
23651impl AstNode for EnableTrigger {
23652    #[inline]
23653    fn can_cast(kind: SyntaxKind) -> bool {
23654        kind == SyntaxKind::ENABLE_TRIGGER
23655    }
23656    #[inline]
23657    fn cast(syntax: SyntaxNode) -> Option<Self> {
23658        if Self::can_cast(syntax.kind()) {
23659            Some(Self { syntax })
23660        } else {
23661            None
23662        }
23663    }
23664    #[inline]
23665    fn syntax(&self) -> &SyntaxNode {
23666        &self.syntax
23667    }
23668}
23669impl AstNode for Enforced {
23670    #[inline]
23671    fn can_cast(kind: SyntaxKind) -> bool {
23672        kind == SyntaxKind::ENFORCED
23673    }
23674    #[inline]
23675    fn cast(syntax: SyntaxNode) -> Option<Self> {
23676        if Self::can_cast(syntax.kind()) {
23677            Some(Self { syntax })
23678        } else {
23679            None
23680        }
23681    }
23682    #[inline]
23683    fn syntax(&self) -> &SyntaxNode {
23684        &self.syntax
23685    }
23686}
23687impl AstNode for EventTriggerWhen {
23688    #[inline]
23689    fn can_cast(kind: SyntaxKind) -> bool {
23690        kind == SyntaxKind::EVENT_TRIGGER_WHEN
23691    }
23692    #[inline]
23693    fn cast(syntax: SyntaxNode) -> Option<Self> {
23694        if Self::can_cast(syntax.kind()) {
23695            Some(Self { syntax })
23696        } else {
23697            None
23698        }
23699    }
23700    #[inline]
23701    fn syntax(&self) -> &SyntaxNode {
23702        &self.syntax
23703    }
23704}
23705impl AstNode for EventTriggerWhenClause {
23706    #[inline]
23707    fn can_cast(kind: SyntaxKind) -> bool {
23708        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
23709    }
23710    #[inline]
23711    fn cast(syntax: SyntaxNode) -> Option<Self> {
23712        if Self::can_cast(syntax.kind()) {
23713            Some(Self { syntax })
23714        } else {
23715            None
23716        }
23717    }
23718    #[inline]
23719    fn syntax(&self) -> &SyntaxNode {
23720        &self.syntax
23721    }
23722}
23723impl AstNode for ExceptTableClause {
23724    #[inline]
23725    fn can_cast(kind: SyntaxKind) -> bool {
23726        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
23727    }
23728    #[inline]
23729    fn cast(syntax: SyntaxNode) -> Option<Self> {
23730        if Self::can_cast(syntax.kind()) {
23731            Some(Self { syntax })
23732        } else {
23733            None
23734        }
23735    }
23736    #[inline]
23737    fn syntax(&self) -> &SyntaxNode {
23738        &self.syntax
23739    }
23740}
23741impl AstNode for ExceptTables {
23742    #[inline]
23743    fn can_cast(kind: SyntaxKind) -> bool {
23744        kind == SyntaxKind::EXCEPT_TABLES
23745    }
23746    #[inline]
23747    fn cast(syntax: SyntaxNode) -> Option<Self> {
23748        if Self::can_cast(syntax.kind()) {
23749            Some(Self { syntax })
23750        } else {
23751            None
23752        }
23753    }
23754    #[inline]
23755    fn syntax(&self) -> &SyntaxNode {
23756        &self.syntax
23757    }
23758}
23759impl AstNode for ExcludeConstraint {
23760    #[inline]
23761    fn can_cast(kind: SyntaxKind) -> bool {
23762        kind == SyntaxKind::EXCLUDE_CONSTRAINT
23763    }
23764    #[inline]
23765    fn cast(syntax: SyntaxNode) -> Option<Self> {
23766        if Self::can_cast(syntax.kind()) {
23767            Some(Self { syntax })
23768        } else {
23769            None
23770        }
23771    }
23772    #[inline]
23773    fn syntax(&self) -> &SyntaxNode {
23774        &self.syntax
23775    }
23776}
23777impl AstNode for Execute {
23778    #[inline]
23779    fn can_cast(kind: SyntaxKind) -> bool {
23780        kind == SyntaxKind::EXECUTE
23781    }
23782    #[inline]
23783    fn cast(syntax: SyntaxNode) -> Option<Self> {
23784        if Self::can_cast(syntax.kind()) {
23785            Some(Self { syntax })
23786        } else {
23787            None
23788        }
23789    }
23790    #[inline]
23791    fn syntax(&self) -> &SyntaxNode {
23792        &self.syntax
23793    }
23794}
23795impl AstNode for ExistsFn {
23796    #[inline]
23797    fn can_cast(kind: SyntaxKind) -> bool {
23798        kind == SyntaxKind::EXISTS_FN
23799    }
23800    #[inline]
23801    fn cast(syntax: SyntaxNode) -> Option<Self> {
23802        if Self::can_cast(syntax.kind()) {
23803            Some(Self { syntax })
23804        } else {
23805            None
23806        }
23807    }
23808    #[inline]
23809    fn syntax(&self) -> &SyntaxNode {
23810        &self.syntax
23811    }
23812}
23813impl AstNode for Explain {
23814    #[inline]
23815    fn can_cast(kind: SyntaxKind) -> bool {
23816        kind == SyntaxKind::EXPLAIN
23817    }
23818    #[inline]
23819    fn cast(syntax: SyntaxNode) -> Option<Self> {
23820        if Self::can_cast(syntax.kind()) {
23821            Some(Self { syntax })
23822        } else {
23823            None
23824        }
23825    }
23826    #[inline]
23827    fn syntax(&self) -> &SyntaxNode {
23828        &self.syntax
23829    }
23830}
23831impl AstNode for ExprAsName {
23832    #[inline]
23833    fn can_cast(kind: SyntaxKind) -> bool {
23834        kind == SyntaxKind::EXPR_AS_NAME
23835    }
23836    #[inline]
23837    fn cast(syntax: SyntaxNode) -> Option<Self> {
23838        if Self::can_cast(syntax.kind()) {
23839            Some(Self { syntax })
23840        } else {
23841            None
23842        }
23843    }
23844    #[inline]
23845    fn syntax(&self) -> &SyntaxNode {
23846        &self.syntax
23847    }
23848}
23849impl AstNode for ExprAsNameList {
23850    #[inline]
23851    fn can_cast(kind: SyntaxKind) -> bool {
23852        kind == SyntaxKind::EXPR_AS_NAME_LIST
23853    }
23854    #[inline]
23855    fn cast(syntax: SyntaxNode) -> Option<Self> {
23856        if Self::can_cast(syntax.kind()) {
23857            Some(Self { syntax })
23858        } else {
23859            None
23860        }
23861    }
23862    #[inline]
23863    fn syntax(&self) -> &SyntaxNode {
23864        &self.syntax
23865    }
23866}
23867impl AstNode for ExprType {
23868    #[inline]
23869    fn can_cast(kind: SyntaxKind) -> bool {
23870        kind == SyntaxKind::EXPR_TYPE
23871    }
23872    #[inline]
23873    fn cast(syntax: SyntaxNode) -> Option<Self> {
23874        if Self::can_cast(syntax.kind()) {
23875            Some(Self { syntax })
23876        } else {
23877            None
23878        }
23879    }
23880    #[inline]
23881    fn syntax(&self) -> &SyntaxNode {
23882        &self.syntax
23883    }
23884}
23885impl AstNode for ExtractFn {
23886    #[inline]
23887    fn can_cast(kind: SyntaxKind) -> bool {
23888        kind == SyntaxKind::EXTRACT_FN
23889    }
23890    #[inline]
23891    fn cast(syntax: SyntaxNode) -> Option<Self> {
23892        if Self::can_cast(syntax.kind()) {
23893            Some(Self { syntax })
23894        } else {
23895            None
23896        }
23897    }
23898    #[inline]
23899    fn syntax(&self) -> &SyntaxNode {
23900        &self.syntax
23901    }
23902}
23903impl AstNode for FatArrow {
23904    #[inline]
23905    fn can_cast(kind: SyntaxKind) -> bool {
23906        kind == SyntaxKind::FAT_ARROW
23907    }
23908    #[inline]
23909    fn cast(syntax: SyntaxNode) -> Option<Self> {
23910        if Self::can_cast(syntax.kind()) {
23911            Some(Self { syntax })
23912        } else {
23913            None
23914        }
23915    }
23916    #[inline]
23917    fn syntax(&self) -> &SyntaxNode {
23918        &self.syntax
23919    }
23920}
23921impl AstNode for FdwOption {
23922    #[inline]
23923    fn can_cast(kind: SyntaxKind) -> bool {
23924        kind == SyntaxKind::FDW_OPTION
23925    }
23926    #[inline]
23927    fn cast(syntax: SyntaxNode) -> Option<Self> {
23928        if Self::can_cast(syntax.kind()) {
23929            Some(Self { syntax })
23930        } else {
23931            None
23932        }
23933    }
23934    #[inline]
23935    fn syntax(&self) -> &SyntaxNode {
23936        &self.syntax
23937    }
23938}
23939impl AstNode for FdwOptionList {
23940    #[inline]
23941    fn can_cast(kind: SyntaxKind) -> bool {
23942        kind == SyntaxKind::FDW_OPTION_LIST
23943    }
23944    #[inline]
23945    fn cast(syntax: SyntaxNode) -> Option<Self> {
23946        if Self::can_cast(syntax.kind()) {
23947            Some(Self { syntax })
23948        } else {
23949            None
23950        }
23951    }
23952    #[inline]
23953    fn syntax(&self) -> &SyntaxNode {
23954        &self.syntax
23955    }
23956}
23957impl AstNode for Fetch {
23958    #[inline]
23959    fn can_cast(kind: SyntaxKind) -> bool {
23960        kind == SyntaxKind::FETCH
23961    }
23962    #[inline]
23963    fn cast(syntax: SyntaxNode) -> Option<Self> {
23964        if Self::can_cast(syntax.kind()) {
23965            Some(Self { syntax })
23966        } else {
23967            None
23968        }
23969    }
23970    #[inline]
23971    fn syntax(&self) -> &SyntaxNode {
23972        &self.syntax
23973    }
23974}
23975impl AstNode for FetchClause {
23976    #[inline]
23977    fn can_cast(kind: SyntaxKind) -> bool {
23978        kind == SyntaxKind::FETCH_CLAUSE
23979    }
23980    #[inline]
23981    fn cast(syntax: SyntaxNode) -> Option<Self> {
23982        if Self::can_cast(syntax.kind()) {
23983            Some(Self { syntax })
23984        } else {
23985            None
23986        }
23987    }
23988    #[inline]
23989    fn syntax(&self) -> &SyntaxNode {
23990        &self.syntax
23991    }
23992}
23993impl AstNode for FieldExpr {
23994    #[inline]
23995    fn can_cast(kind: SyntaxKind) -> bool {
23996        kind == SyntaxKind::FIELD_EXPR
23997    }
23998    #[inline]
23999    fn cast(syntax: SyntaxNode) -> Option<Self> {
24000        if Self::can_cast(syntax.kind()) {
24001            Some(Self { syntax })
24002        } else {
24003            None
24004        }
24005    }
24006    #[inline]
24007    fn syntax(&self) -> &SyntaxNode {
24008        &self.syntax
24009    }
24010}
24011impl AstNode for FilterClause {
24012    #[inline]
24013    fn can_cast(kind: SyntaxKind) -> bool {
24014        kind == SyntaxKind::FILTER_CLAUSE
24015    }
24016    #[inline]
24017    fn cast(syntax: SyntaxNode) -> Option<Self> {
24018        if Self::can_cast(syntax.kind()) {
24019            Some(Self { syntax })
24020        } else {
24021            None
24022        }
24023    }
24024    #[inline]
24025    fn syntax(&self) -> &SyntaxNode {
24026        &self.syntax
24027    }
24028}
24029impl AstNode for ForPortionOf {
24030    #[inline]
24031    fn can_cast(kind: SyntaxKind) -> bool {
24032        kind == SyntaxKind::FOR_PORTION_OF
24033    }
24034    #[inline]
24035    fn cast(syntax: SyntaxNode) -> Option<Self> {
24036        if Self::can_cast(syntax.kind()) {
24037            Some(Self { syntax })
24038        } else {
24039            None
24040        }
24041    }
24042    #[inline]
24043    fn syntax(&self) -> &SyntaxNode {
24044        &self.syntax
24045    }
24046}
24047impl AstNode for ForProvider {
24048    #[inline]
24049    fn can_cast(kind: SyntaxKind) -> bool {
24050        kind == SyntaxKind::FOR_PROVIDER
24051    }
24052    #[inline]
24053    fn cast(syntax: SyntaxNode) -> Option<Self> {
24054        if Self::can_cast(syntax.kind()) {
24055            Some(Self { syntax })
24056        } else {
24057            None
24058        }
24059    }
24060    #[inline]
24061    fn syntax(&self) -> &SyntaxNode {
24062        &self.syntax
24063    }
24064}
24065impl AstNode for ForceRls {
24066    #[inline]
24067    fn can_cast(kind: SyntaxKind) -> bool {
24068        kind == SyntaxKind::FORCE_RLS
24069    }
24070    #[inline]
24071    fn cast(syntax: SyntaxNode) -> Option<Self> {
24072        if Self::can_cast(syntax.kind()) {
24073            Some(Self { syntax })
24074        } else {
24075            None
24076        }
24077    }
24078    #[inline]
24079    fn syntax(&self) -> &SyntaxNode {
24080        &self.syntax
24081    }
24082}
24083impl AstNode for ForeignKeyConstraint {
24084    #[inline]
24085    fn can_cast(kind: SyntaxKind) -> bool {
24086        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24087    }
24088    #[inline]
24089    fn cast(syntax: SyntaxNode) -> Option<Self> {
24090        if Self::can_cast(syntax.kind()) {
24091            Some(Self { syntax })
24092        } else {
24093            None
24094        }
24095    }
24096    #[inline]
24097    fn syntax(&self) -> &SyntaxNode {
24098        &self.syntax
24099    }
24100}
24101impl AstNode for FrameClause {
24102    #[inline]
24103    fn can_cast(kind: SyntaxKind) -> bool {
24104        kind == SyntaxKind::FRAME_CLAUSE
24105    }
24106    #[inline]
24107    fn cast(syntax: SyntaxNode) -> Option<Self> {
24108        if Self::can_cast(syntax.kind()) {
24109            Some(Self { syntax })
24110        } else {
24111            None
24112        }
24113    }
24114    #[inline]
24115    fn syntax(&self) -> &SyntaxNode {
24116        &self.syntax
24117    }
24118}
24119impl AstNode for FromClause {
24120    #[inline]
24121    fn can_cast(kind: SyntaxKind) -> bool {
24122        kind == SyntaxKind::FROM_CLAUSE
24123    }
24124    #[inline]
24125    fn cast(syntax: SyntaxNode) -> Option<Self> {
24126        if Self::can_cast(syntax.kind()) {
24127            Some(Self { syntax })
24128        } else {
24129            None
24130        }
24131    }
24132    #[inline]
24133    fn syntax(&self) -> &SyntaxNode {
24134        &self.syntax
24135    }
24136}
24137impl AstNode for FromItem {
24138    #[inline]
24139    fn can_cast(kind: SyntaxKind) -> bool {
24140        kind == SyntaxKind::FROM_ITEM
24141    }
24142    #[inline]
24143    fn cast(syntax: SyntaxNode) -> Option<Self> {
24144        if Self::can_cast(syntax.kind()) {
24145            Some(Self { syntax })
24146        } else {
24147            None
24148        }
24149    }
24150    #[inline]
24151    fn syntax(&self) -> &SyntaxNode {
24152        &self.syntax
24153    }
24154}
24155impl AstNode for FromTable {
24156    #[inline]
24157    fn can_cast(kind: SyntaxKind) -> bool {
24158        kind == SyntaxKind::FROM_TABLE
24159    }
24160    #[inline]
24161    fn cast(syntax: SyntaxNode) -> Option<Self> {
24162        if Self::can_cast(syntax.kind()) {
24163            Some(Self { syntax })
24164        } else {
24165            None
24166        }
24167    }
24168    #[inline]
24169    fn syntax(&self) -> &SyntaxNode {
24170        &self.syntax
24171    }
24172}
24173impl AstNode for FuncOptionList {
24174    #[inline]
24175    fn can_cast(kind: SyntaxKind) -> bool {
24176        kind == SyntaxKind::FUNC_OPTION_LIST
24177    }
24178    #[inline]
24179    fn cast(syntax: SyntaxNode) -> Option<Self> {
24180        if Self::can_cast(syntax.kind()) {
24181            Some(Self { syntax })
24182        } else {
24183            None
24184        }
24185    }
24186    #[inline]
24187    fn syntax(&self) -> &SyntaxNode {
24188        &self.syntax
24189    }
24190}
24191impl AstNode for FunctionSig {
24192    #[inline]
24193    fn can_cast(kind: SyntaxKind) -> bool {
24194        kind == SyntaxKind::FUNCTION_SIG
24195    }
24196    #[inline]
24197    fn cast(syntax: SyntaxNode) -> Option<Self> {
24198        if Self::can_cast(syntax.kind()) {
24199            Some(Self { syntax })
24200        } else {
24201            None
24202        }
24203    }
24204    #[inline]
24205    fn syntax(&self) -> &SyntaxNode {
24206        &self.syntax
24207    }
24208}
24209impl AstNode for FunctionSigList {
24210    #[inline]
24211    fn can_cast(kind: SyntaxKind) -> bool {
24212        kind == SyntaxKind::FUNCTION_SIG_LIST
24213    }
24214    #[inline]
24215    fn cast(syntax: SyntaxNode) -> Option<Self> {
24216        if Self::can_cast(syntax.kind()) {
24217            Some(Self { syntax })
24218        } else {
24219            None
24220        }
24221    }
24222    #[inline]
24223    fn syntax(&self) -> &SyntaxNode {
24224        &self.syntax
24225    }
24226}
24227impl AstNode for GeneratedConstraint {
24228    #[inline]
24229    fn can_cast(kind: SyntaxKind) -> bool {
24230        kind == SyntaxKind::GENERATED_CONSTRAINT
24231    }
24232    #[inline]
24233    fn cast(syntax: SyntaxNode) -> Option<Self> {
24234        if Self::can_cast(syntax.kind()) {
24235            Some(Self { syntax })
24236        } else {
24237            None
24238        }
24239    }
24240    #[inline]
24241    fn syntax(&self) -> &SyntaxNode {
24242        &self.syntax
24243    }
24244}
24245impl AstNode for Grant {
24246    #[inline]
24247    fn can_cast(kind: SyntaxKind) -> bool {
24248        kind == SyntaxKind::GRANT
24249    }
24250    #[inline]
24251    fn cast(syntax: SyntaxNode) -> Option<Self> {
24252        if Self::can_cast(syntax.kind()) {
24253            Some(Self { syntax })
24254        } else {
24255            None
24256        }
24257    }
24258    #[inline]
24259    fn syntax(&self) -> &SyntaxNode {
24260        &self.syntax
24261    }
24262}
24263impl AstNode for GrantDefaultPrivileges {
24264    #[inline]
24265    fn can_cast(kind: SyntaxKind) -> bool {
24266        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
24267    }
24268    #[inline]
24269    fn cast(syntax: SyntaxNode) -> Option<Self> {
24270        if Self::can_cast(syntax.kind()) {
24271            Some(Self { syntax })
24272        } else {
24273            None
24274        }
24275    }
24276    #[inline]
24277    fn syntax(&self) -> &SyntaxNode {
24278        &self.syntax
24279    }
24280}
24281impl AstNode for GraphPatternQualifier {
24282    #[inline]
24283    fn can_cast(kind: SyntaxKind) -> bool {
24284        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
24285    }
24286    #[inline]
24287    fn cast(syntax: SyntaxNode) -> Option<Self> {
24288        if Self::can_cast(syntax.kind()) {
24289            Some(Self { syntax })
24290        } else {
24291            None
24292        }
24293    }
24294    #[inline]
24295    fn syntax(&self) -> &SyntaxNode {
24296        &self.syntax
24297    }
24298}
24299impl AstNode for GraphTableFn {
24300    #[inline]
24301    fn can_cast(kind: SyntaxKind) -> bool {
24302        kind == SyntaxKind::GRAPH_TABLE_FN
24303    }
24304    #[inline]
24305    fn cast(syntax: SyntaxNode) -> Option<Self> {
24306        if Self::can_cast(syntax.kind()) {
24307            Some(Self { syntax })
24308        } else {
24309            None
24310        }
24311    }
24312    #[inline]
24313    fn syntax(&self) -> &SyntaxNode {
24314        &self.syntax
24315    }
24316}
24317impl AstNode for GroupByClause {
24318    #[inline]
24319    fn can_cast(kind: SyntaxKind) -> bool {
24320        kind == SyntaxKind::GROUP_BY_CLAUSE
24321    }
24322    #[inline]
24323    fn cast(syntax: SyntaxNode) -> Option<Self> {
24324        if Self::can_cast(syntax.kind()) {
24325            Some(Self { syntax })
24326        } else {
24327            None
24328        }
24329    }
24330    #[inline]
24331    fn syntax(&self) -> &SyntaxNode {
24332        &self.syntax
24333    }
24334}
24335impl AstNode for GroupByList {
24336    #[inline]
24337    fn can_cast(kind: SyntaxKind) -> bool {
24338        kind == SyntaxKind::GROUP_BY_LIST
24339    }
24340    #[inline]
24341    fn cast(syntax: SyntaxNode) -> Option<Self> {
24342        if Self::can_cast(syntax.kind()) {
24343            Some(Self { syntax })
24344        } else {
24345            None
24346        }
24347    }
24348    #[inline]
24349    fn syntax(&self) -> &SyntaxNode {
24350        &self.syntax
24351    }
24352}
24353impl AstNode for GroupingCube {
24354    #[inline]
24355    fn can_cast(kind: SyntaxKind) -> bool {
24356        kind == SyntaxKind::GROUPING_CUBE
24357    }
24358    #[inline]
24359    fn cast(syntax: SyntaxNode) -> Option<Self> {
24360        if Self::can_cast(syntax.kind()) {
24361            Some(Self { syntax })
24362        } else {
24363            None
24364        }
24365    }
24366    #[inline]
24367    fn syntax(&self) -> &SyntaxNode {
24368        &self.syntax
24369    }
24370}
24371impl AstNode for GroupingExpr {
24372    #[inline]
24373    fn can_cast(kind: SyntaxKind) -> bool {
24374        kind == SyntaxKind::GROUPING_EXPR
24375    }
24376    #[inline]
24377    fn cast(syntax: SyntaxNode) -> Option<Self> {
24378        if Self::can_cast(syntax.kind()) {
24379            Some(Self { syntax })
24380        } else {
24381            None
24382        }
24383    }
24384    #[inline]
24385    fn syntax(&self) -> &SyntaxNode {
24386        &self.syntax
24387    }
24388}
24389impl AstNode for GroupingRollup {
24390    #[inline]
24391    fn can_cast(kind: SyntaxKind) -> bool {
24392        kind == SyntaxKind::GROUPING_ROLLUP
24393    }
24394    #[inline]
24395    fn cast(syntax: SyntaxNode) -> Option<Self> {
24396        if Self::can_cast(syntax.kind()) {
24397            Some(Self { syntax })
24398        } else {
24399            None
24400        }
24401    }
24402    #[inline]
24403    fn syntax(&self) -> &SyntaxNode {
24404        &self.syntax
24405    }
24406}
24407impl AstNode for GroupingSets {
24408    #[inline]
24409    fn can_cast(kind: SyntaxKind) -> bool {
24410        kind == SyntaxKind::GROUPING_SETS
24411    }
24412    #[inline]
24413    fn cast(syntax: SyntaxNode) -> Option<Self> {
24414        if Self::can_cast(syntax.kind()) {
24415            Some(Self { syntax })
24416        } else {
24417            None
24418        }
24419    }
24420    #[inline]
24421    fn syntax(&self) -> &SyntaxNode {
24422        &self.syntax
24423    }
24424}
24425impl AstNode for Gteq {
24426    #[inline]
24427    fn can_cast(kind: SyntaxKind) -> bool {
24428        kind == SyntaxKind::GTEQ
24429    }
24430    #[inline]
24431    fn cast(syntax: SyntaxNode) -> Option<Self> {
24432        if Self::can_cast(syntax.kind()) {
24433            Some(Self { syntax })
24434        } else {
24435            None
24436        }
24437    }
24438    #[inline]
24439    fn syntax(&self) -> &SyntaxNode {
24440        &self.syntax
24441    }
24442}
24443impl AstNode for HandlerClause {
24444    #[inline]
24445    fn can_cast(kind: SyntaxKind) -> bool {
24446        kind == SyntaxKind::HANDLER_CLAUSE
24447    }
24448    #[inline]
24449    fn cast(syntax: SyntaxNode) -> Option<Self> {
24450        if Self::can_cast(syntax.kind()) {
24451            Some(Self { syntax })
24452        } else {
24453            None
24454        }
24455    }
24456    #[inline]
24457    fn syntax(&self) -> &SyntaxNode {
24458        &self.syntax
24459    }
24460}
24461impl AstNode for HavingClause {
24462    #[inline]
24463    fn can_cast(kind: SyntaxKind) -> bool {
24464        kind == SyntaxKind::HAVING_CLAUSE
24465    }
24466    #[inline]
24467    fn cast(syntax: SyntaxNode) -> Option<Self> {
24468        if Self::can_cast(syntax.kind()) {
24469            Some(Self { syntax })
24470        } else {
24471            None
24472        }
24473    }
24474    #[inline]
24475    fn syntax(&self) -> &SyntaxNode {
24476        &self.syntax
24477    }
24478}
24479impl AstNode for IfExists {
24480    #[inline]
24481    fn can_cast(kind: SyntaxKind) -> bool {
24482        kind == SyntaxKind::IF_EXISTS
24483    }
24484    #[inline]
24485    fn cast(syntax: SyntaxNode) -> Option<Self> {
24486        if Self::can_cast(syntax.kind()) {
24487            Some(Self { syntax })
24488        } else {
24489            None
24490        }
24491    }
24492    #[inline]
24493    fn syntax(&self) -> &SyntaxNode {
24494        &self.syntax
24495    }
24496}
24497impl AstNode for IfNotExists {
24498    #[inline]
24499    fn can_cast(kind: SyntaxKind) -> bool {
24500        kind == SyntaxKind::IF_NOT_EXISTS
24501    }
24502    #[inline]
24503    fn cast(syntax: SyntaxNode) -> Option<Self> {
24504        if Self::can_cast(syntax.kind()) {
24505            Some(Self { syntax })
24506        } else {
24507            None
24508        }
24509    }
24510    #[inline]
24511    fn syntax(&self) -> &SyntaxNode {
24512        &self.syntax
24513    }
24514}
24515impl AstNode for ImportForeignSchema {
24516    #[inline]
24517    fn can_cast(kind: SyntaxKind) -> bool {
24518        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
24519    }
24520    #[inline]
24521    fn cast(syntax: SyntaxNode) -> Option<Self> {
24522        if Self::can_cast(syntax.kind()) {
24523            Some(Self { syntax })
24524        } else {
24525            None
24526        }
24527    }
24528    #[inline]
24529    fn syntax(&self) -> &SyntaxNode {
24530        &self.syntax
24531    }
24532}
24533impl AstNode for IndexExpr {
24534    #[inline]
24535    fn can_cast(kind: SyntaxKind) -> bool {
24536        kind == SyntaxKind::INDEX_EXPR
24537    }
24538    #[inline]
24539    fn cast(syntax: SyntaxNode) -> Option<Self> {
24540        if Self::can_cast(syntax.kind()) {
24541            Some(Self { syntax })
24542        } else {
24543            None
24544        }
24545    }
24546    #[inline]
24547    fn syntax(&self) -> &SyntaxNode {
24548        &self.syntax
24549    }
24550}
24551impl AstNode for Inherit {
24552    #[inline]
24553    fn can_cast(kind: SyntaxKind) -> bool {
24554        kind == SyntaxKind::INHERIT
24555    }
24556    #[inline]
24557    fn cast(syntax: SyntaxNode) -> Option<Self> {
24558        if Self::can_cast(syntax.kind()) {
24559            Some(Self { syntax })
24560        } else {
24561            None
24562        }
24563    }
24564    #[inline]
24565    fn syntax(&self) -> &SyntaxNode {
24566        &self.syntax
24567    }
24568}
24569impl AstNode for InheritTable {
24570    #[inline]
24571    fn can_cast(kind: SyntaxKind) -> bool {
24572        kind == SyntaxKind::INHERIT_TABLE
24573    }
24574    #[inline]
24575    fn cast(syntax: SyntaxNode) -> Option<Self> {
24576        if Self::can_cast(syntax.kind()) {
24577            Some(Self { syntax })
24578        } else {
24579            None
24580        }
24581    }
24582    #[inline]
24583    fn syntax(&self) -> &SyntaxNode {
24584        &self.syntax
24585    }
24586}
24587impl AstNode for Inherits {
24588    #[inline]
24589    fn can_cast(kind: SyntaxKind) -> bool {
24590        kind == SyntaxKind::INHERITS
24591    }
24592    #[inline]
24593    fn cast(syntax: SyntaxNode) -> Option<Self> {
24594        if Self::can_cast(syntax.kind()) {
24595            Some(Self { syntax })
24596        } else {
24597            None
24598        }
24599    }
24600    #[inline]
24601    fn syntax(&self) -> &SyntaxNode {
24602        &self.syntax
24603    }
24604}
24605impl AstNode for InitiallyDeferredConstraintOption {
24606    #[inline]
24607    fn can_cast(kind: SyntaxKind) -> bool {
24608        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
24609    }
24610    #[inline]
24611    fn cast(syntax: SyntaxNode) -> Option<Self> {
24612        if Self::can_cast(syntax.kind()) {
24613            Some(Self { syntax })
24614        } else {
24615            None
24616        }
24617    }
24618    #[inline]
24619    fn syntax(&self) -> &SyntaxNode {
24620        &self.syntax
24621    }
24622}
24623impl AstNode for InitiallyImmediateConstraintOption {
24624    #[inline]
24625    fn can_cast(kind: SyntaxKind) -> bool {
24626        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
24627    }
24628    #[inline]
24629    fn cast(syntax: SyntaxNode) -> Option<Self> {
24630        if Self::can_cast(syntax.kind()) {
24631            Some(Self { syntax })
24632        } else {
24633            None
24634        }
24635    }
24636    #[inline]
24637    fn syntax(&self) -> &SyntaxNode {
24638        &self.syntax
24639    }
24640}
24641impl AstNode for Insert {
24642    #[inline]
24643    fn can_cast(kind: SyntaxKind) -> bool {
24644        kind == SyntaxKind::INSERT
24645    }
24646    #[inline]
24647    fn cast(syntax: SyntaxNode) -> Option<Self> {
24648        if Self::can_cast(syntax.kind()) {
24649            Some(Self { syntax })
24650        } else {
24651            None
24652        }
24653    }
24654    #[inline]
24655    fn syntax(&self) -> &SyntaxNode {
24656        &self.syntax
24657    }
24658}
24659impl AstNode for IntervalType {
24660    #[inline]
24661    fn can_cast(kind: SyntaxKind) -> bool {
24662        kind == SyntaxKind::INTERVAL_TYPE
24663    }
24664    #[inline]
24665    fn cast(syntax: SyntaxNode) -> Option<Self> {
24666        if Self::can_cast(syntax.kind()) {
24667            Some(Self { syntax })
24668        } else {
24669            None
24670        }
24671    }
24672    #[inline]
24673    fn syntax(&self) -> &SyntaxNode {
24674        &self.syntax
24675    }
24676}
24677impl AstNode for IntoClause {
24678    #[inline]
24679    fn can_cast(kind: SyntaxKind) -> bool {
24680        kind == SyntaxKind::INTO_CLAUSE
24681    }
24682    #[inline]
24683    fn cast(syntax: SyntaxNode) -> Option<Self> {
24684        if Self::can_cast(syntax.kind()) {
24685            Some(Self { syntax })
24686        } else {
24687            None
24688        }
24689    }
24690    #[inline]
24691    fn syntax(&self) -> &SyntaxNode {
24692        &self.syntax
24693    }
24694}
24695impl AstNode for IntoSchema {
24696    #[inline]
24697    fn can_cast(kind: SyntaxKind) -> bool {
24698        kind == SyntaxKind::INTO_SCHEMA
24699    }
24700    #[inline]
24701    fn cast(syntax: SyntaxNode) -> Option<Self> {
24702        if Self::can_cast(syntax.kind()) {
24703            Some(Self { syntax })
24704        } else {
24705            None
24706        }
24707    }
24708    #[inline]
24709    fn syntax(&self) -> &SyntaxNode {
24710        &self.syntax
24711    }
24712}
24713impl AstNode for IsDistinctFrom {
24714    #[inline]
24715    fn can_cast(kind: SyntaxKind) -> bool {
24716        kind == SyntaxKind::IS_DISTINCT_FROM
24717    }
24718    #[inline]
24719    fn cast(syntax: SyntaxNode) -> Option<Self> {
24720        if Self::can_cast(syntax.kind()) {
24721            Some(Self { syntax })
24722        } else {
24723            None
24724        }
24725    }
24726    #[inline]
24727    fn syntax(&self) -> &SyntaxNode {
24728        &self.syntax
24729    }
24730}
24731impl AstNode for IsJson {
24732    #[inline]
24733    fn can_cast(kind: SyntaxKind) -> bool {
24734        kind == SyntaxKind::IS_JSON
24735    }
24736    #[inline]
24737    fn cast(syntax: SyntaxNode) -> Option<Self> {
24738        if Self::can_cast(syntax.kind()) {
24739            Some(Self { syntax })
24740        } else {
24741            None
24742        }
24743    }
24744    #[inline]
24745    fn syntax(&self) -> &SyntaxNode {
24746        &self.syntax
24747    }
24748}
24749impl AstNode for IsJsonArray {
24750    #[inline]
24751    fn can_cast(kind: SyntaxKind) -> bool {
24752        kind == SyntaxKind::IS_JSON_ARRAY
24753    }
24754    #[inline]
24755    fn cast(syntax: SyntaxNode) -> Option<Self> {
24756        if Self::can_cast(syntax.kind()) {
24757            Some(Self { syntax })
24758        } else {
24759            None
24760        }
24761    }
24762    #[inline]
24763    fn syntax(&self) -> &SyntaxNode {
24764        &self.syntax
24765    }
24766}
24767impl AstNode for IsJsonObject {
24768    #[inline]
24769    fn can_cast(kind: SyntaxKind) -> bool {
24770        kind == SyntaxKind::IS_JSON_OBJECT
24771    }
24772    #[inline]
24773    fn cast(syntax: SyntaxNode) -> Option<Self> {
24774        if Self::can_cast(syntax.kind()) {
24775            Some(Self { syntax })
24776        } else {
24777            None
24778        }
24779    }
24780    #[inline]
24781    fn syntax(&self) -> &SyntaxNode {
24782        &self.syntax
24783    }
24784}
24785impl AstNode for IsJsonScalar {
24786    #[inline]
24787    fn can_cast(kind: SyntaxKind) -> bool {
24788        kind == SyntaxKind::IS_JSON_SCALAR
24789    }
24790    #[inline]
24791    fn cast(syntax: SyntaxNode) -> Option<Self> {
24792        if Self::can_cast(syntax.kind()) {
24793            Some(Self { syntax })
24794        } else {
24795            None
24796        }
24797    }
24798    #[inline]
24799    fn syntax(&self) -> &SyntaxNode {
24800        &self.syntax
24801    }
24802}
24803impl AstNode for IsJsonValue {
24804    #[inline]
24805    fn can_cast(kind: SyntaxKind) -> bool {
24806        kind == SyntaxKind::IS_JSON_VALUE
24807    }
24808    #[inline]
24809    fn cast(syntax: SyntaxNode) -> Option<Self> {
24810        if Self::can_cast(syntax.kind()) {
24811            Some(Self { syntax })
24812        } else {
24813            None
24814        }
24815    }
24816    #[inline]
24817    fn syntax(&self) -> &SyntaxNode {
24818        &self.syntax
24819    }
24820}
24821impl AstNode for IsLabel {
24822    #[inline]
24823    fn can_cast(kind: SyntaxKind) -> bool {
24824        kind == SyntaxKind::IS_LABEL
24825    }
24826    #[inline]
24827    fn cast(syntax: SyntaxNode) -> Option<Self> {
24828        if Self::can_cast(syntax.kind()) {
24829            Some(Self { syntax })
24830        } else {
24831            None
24832        }
24833    }
24834    #[inline]
24835    fn syntax(&self) -> &SyntaxNode {
24836        &self.syntax
24837    }
24838}
24839impl AstNode for IsNormalized {
24840    #[inline]
24841    fn can_cast(kind: SyntaxKind) -> bool {
24842        kind == SyntaxKind::IS_NORMALIZED
24843    }
24844    #[inline]
24845    fn cast(syntax: SyntaxNode) -> Option<Self> {
24846        if Self::can_cast(syntax.kind()) {
24847            Some(Self { syntax })
24848        } else {
24849            None
24850        }
24851    }
24852    #[inline]
24853    fn syntax(&self) -> &SyntaxNode {
24854        &self.syntax
24855    }
24856}
24857impl AstNode for IsNot {
24858    #[inline]
24859    fn can_cast(kind: SyntaxKind) -> bool {
24860        kind == SyntaxKind::IS_NOT
24861    }
24862    #[inline]
24863    fn cast(syntax: SyntaxNode) -> Option<Self> {
24864        if Self::can_cast(syntax.kind()) {
24865            Some(Self { syntax })
24866        } else {
24867            None
24868        }
24869    }
24870    #[inline]
24871    fn syntax(&self) -> &SyntaxNode {
24872        &self.syntax
24873    }
24874}
24875impl AstNode for IsNotDistinctFrom {
24876    #[inline]
24877    fn can_cast(kind: SyntaxKind) -> bool {
24878        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
24879    }
24880    #[inline]
24881    fn cast(syntax: SyntaxNode) -> Option<Self> {
24882        if Self::can_cast(syntax.kind()) {
24883            Some(Self { syntax })
24884        } else {
24885            None
24886        }
24887    }
24888    #[inline]
24889    fn syntax(&self) -> &SyntaxNode {
24890        &self.syntax
24891    }
24892}
24893impl AstNode for IsNotJson {
24894    #[inline]
24895    fn can_cast(kind: SyntaxKind) -> bool {
24896        kind == SyntaxKind::IS_NOT_JSON
24897    }
24898    #[inline]
24899    fn cast(syntax: SyntaxNode) -> Option<Self> {
24900        if Self::can_cast(syntax.kind()) {
24901            Some(Self { syntax })
24902        } else {
24903            None
24904        }
24905    }
24906    #[inline]
24907    fn syntax(&self) -> &SyntaxNode {
24908        &self.syntax
24909    }
24910}
24911impl AstNode for IsNotJsonArray {
24912    #[inline]
24913    fn can_cast(kind: SyntaxKind) -> bool {
24914        kind == SyntaxKind::IS_NOT_JSON_ARRAY
24915    }
24916    #[inline]
24917    fn cast(syntax: SyntaxNode) -> Option<Self> {
24918        if Self::can_cast(syntax.kind()) {
24919            Some(Self { syntax })
24920        } else {
24921            None
24922        }
24923    }
24924    #[inline]
24925    fn syntax(&self) -> &SyntaxNode {
24926        &self.syntax
24927    }
24928}
24929impl AstNode for IsNotJsonObject {
24930    #[inline]
24931    fn can_cast(kind: SyntaxKind) -> bool {
24932        kind == SyntaxKind::IS_NOT_JSON_OBJECT
24933    }
24934    #[inline]
24935    fn cast(syntax: SyntaxNode) -> Option<Self> {
24936        if Self::can_cast(syntax.kind()) {
24937            Some(Self { syntax })
24938        } else {
24939            None
24940        }
24941    }
24942    #[inline]
24943    fn syntax(&self) -> &SyntaxNode {
24944        &self.syntax
24945    }
24946}
24947impl AstNode for IsNotJsonScalar {
24948    #[inline]
24949    fn can_cast(kind: SyntaxKind) -> bool {
24950        kind == SyntaxKind::IS_NOT_JSON_SCALAR
24951    }
24952    #[inline]
24953    fn cast(syntax: SyntaxNode) -> Option<Self> {
24954        if Self::can_cast(syntax.kind()) {
24955            Some(Self { syntax })
24956        } else {
24957            None
24958        }
24959    }
24960    #[inline]
24961    fn syntax(&self) -> &SyntaxNode {
24962        &self.syntax
24963    }
24964}
24965impl AstNode for IsNotJsonValue {
24966    #[inline]
24967    fn can_cast(kind: SyntaxKind) -> bool {
24968        kind == SyntaxKind::IS_NOT_JSON_VALUE
24969    }
24970    #[inline]
24971    fn cast(syntax: SyntaxNode) -> Option<Self> {
24972        if Self::can_cast(syntax.kind()) {
24973            Some(Self { syntax })
24974        } else {
24975            None
24976        }
24977    }
24978    #[inline]
24979    fn syntax(&self) -> &SyntaxNode {
24980        &self.syntax
24981    }
24982}
24983impl AstNode for IsNotNormalized {
24984    #[inline]
24985    fn can_cast(kind: SyntaxKind) -> bool {
24986        kind == SyntaxKind::IS_NOT_NORMALIZED
24987    }
24988    #[inline]
24989    fn cast(syntax: SyntaxNode) -> Option<Self> {
24990        if Self::can_cast(syntax.kind()) {
24991            Some(Self { syntax })
24992        } else {
24993            None
24994        }
24995    }
24996    #[inline]
24997    fn syntax(&self) -> &SyntaxNode {
24998        &self.syntax
24999    }
25000}
25001impl AstNode for Join {
25002    #[inline]
25003    fn can_cast(kind: SyntaxKind) -> bool {
25004        kind == SyntaxKind::JOIN
25005    }
25006    #[inline]
25007    fn cast(syntax: SyntaxNode) -> Option<Self> {
25008        if Self::can_cast(syntax.kind()) {
25009            Some(Self { syntax })
25010        } else {
25011            None
25012        }
25013    }
25014    #[inline]
25015    fn syntax(&self) -> &SyntaxNode {
25016        &self.syntax
25017    }
25018}
25019impl AstNode for JoinCross {
25020    #[inline]
25021    fn can_cast(kind: SyntaxKind) -> bool {
25022        kind == SyntaxKind::JOIN_CROSS
25023    }
25024    #[inline]
25025    fn cast(syntax: SyntaxNode) -> Option<Self> {
25026        if Self::can_cast(syntax.kind()) {
25027            Some(Self { syntax })
25028        } else {
25029            None
25030        }
25031    }
25032    #[inline]
25033    fn syntax(&self) -> &SyntaxNode {
25034        &self.syntax
25035    }
25036}
25037impl AstNode for JoinExpr {
25038    #[inline]
25039    fn can_cast(kind: SyntaxKind) -> bool {
25040        kind == SyntaxKind::JOIN_EXPR
25041    }
25042    #[inline]
25043    fn cast(syntax: SyntaxNode) -> Option<Self> {
25044        if Self::can_cast(syntax.kind()) {
25045            Some(Self { syntax })
25046        } else {
25047            None
25048        }
25049    }
25050    #[inline]
25051    fn syntax(&self) -> &SyntaxNode {
25052        &self.syntax
25053    }
25054}
25055impl AstNode for JoinFull {
25056    #[inline]
25057    fn can_cast(kind: SyntaxKind) -> bool {
25058        kind == SyntaxKind::JOIN_FULL
25059    }
25060    #[inline]
25061    fn cast(syntax: SyntaxNode) -> Option<Self> {
25062        if Self::can_cast(syntax.kind()) {
25063            Some(Self { syntax })
25064        } else {
25065            None
25066        }
25067    }
25068    #[inline]
25069    fn syntax(&self) -> &SyntaxNode {
25070        &self.syntax
25071    }
25072}
25073impl AstNode for JoinInner {
25074    #[inline]
25075    fn can_cast(kind: SyntaxKind) -> bool {
25076        kind == SyntaxKind::JOIN_INNER
25077    }
25078    #[inline]
25079    fn cast(syntax: SyntaxNode) -> Option<Self> {
25080        if Self::can_cast(syntax.kind()) {
25081            Some(Self { syntax })
25082        } else {
25083            None
25084        }
25085    }
25086    #[inline]
25087    fn syntax(&self) -> &SyntaxNode {
25088        &self.syntax
25089    }
25090}
25091impl AstNode for JoinLeft {
25092    #[inline]
25093    fn can_cast(kind: SyntaxKind) -> bool {
25094        kind == SyntaxKind::JOIN_LEFT
25095    }
25096    #[inline]
25097    fn cast(syntax: SyntaxNode) -> Option<Self> {
25098        if Self::can_cast(syntax.kind()) {
25099            Some(Self { syntax })
25100        } else {
25101            None
25102        }
25103    }
25104    #[inline]
25105    fn syntax(&self) -> &SyntaxNode {
25106        &self.syntax
25107    }
25108}
25109impl AstNode for JoinRight {
25110    #[inline]
25111    fn can_cast(kind: SyntaxKind) -> bool {
25112        kind == SyntaxKind::JOIN_RIGHT
25113    }
25114    #[inline]
25115    fn cast(syntax: SyntaxNode) -> Option<Self> {
25116        if Self::can_cast(syntax.kind()) {
25117            Some(Self { syntax })
25118        } else {
25119            None
25120        }
25121    }
25122    #[inline]
25123    fn syntax(&self) -> &SyntaxNode {
25124        &self.syntax
25125    }
25126}
25127impl AstNode for JoinUsingClause {
25128    #[inline]
25129    fn can_cast(kind: SyntaxKind) -> bool {
25130        kind == SyntaxKind::JOIN_USING_CLAUSE
25131    }
25132    #[inline]
25133    fn cast(syntax: SyntaxNode) -> Option<Self> {
25134        if Self::can_cast(syntax.kind()) {
25135            Some(Self { syntax })
25136        } else {
25137            None
25138        }
25139    }
25140    #[inline]
25141    fn syntax(&self) -> &SyntaxNode {
25142        &self.syntax
25143    }
25144}
25145impl AstNode for JsonArrayAggFn {
25146    #[inline]
25147    fn can_cast(kind: SyntaxKind) -> bool {
25148        kind == SyntaxKind::JSON_ARRAY_AGG_FN
25149    }
25150    #[inline]
25151    fn cast(syntax: SyntaxNode) -> Option<Self> {
25152        if Self::can_cast(syntax.kind()) {
25153            Some(Self { syntax })
25154        } else {
25155            None
25156        }
25157    }
25158    #[inline]
25159    fn syntax(&self) -> &SyntaxNode {
25160        &self.syntax
25161    }
25162}
25163impl AstNode for JsonArrayFn {
25164    #[inline]
25165    fn can_cast(kind: SyntaxKind) -> bool {
25166        kind == SyntaxKind::JSON_ARRAY_FN
25167    }
25168    #[inline]
25169    fn cast(syntax: SyntaxNode) -> Option<Self> {
25170        if Self::can_cast(syntax.kind()) {
25171            Some(Self { syntax })
25172        } else {
25173            None
25174        }
25175    }
25176    #[inline]
25177    fn syntax(&self) -> &SyntaxNode {
25178        &self.syntax
25179    }
25180}
25181impl AstNode for JsonBehaviorClause {
25182    #[inline]
25183    fn can_cast(kind: SyntaxKind) -> bool {
25184        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
25185    }
25186    #[inline]
25187    fn cast(syntax: SyntaxNode) -> Option<Self> {
25188        if Self::can_cast(syntax.kind()) {
25189            Some(Self { syntax })
25190        } else {
25191            None
25192        }
25193    }
25194    #[inline]
25195    fn syntax(&self) -> &SyntaxNode {
25196        &self.syntax
25197    }
25198}
25199impl AstNode for JsonBehaviorDefault {
25200    #[inline]
25201    fn can_cast(kind: SyntaxKind) -> bool {
25202        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
25203    }
25204    #[inline]
25205    fn cast(syntax: SyntaxNode) -> Option<Self> {
25206        if Self::can_cast(syntax.kind()) {
25207            Some(Self { syntax })
25208        } else {
25209            None
25210        }
25211    }
25212    #[inline]
25213    fn syntax(&self) -> &SyntaxNode {
25214        &self.syntax
25215    }
25216}
25217impl AstNode for JsonBehaviorEmptyArray {
25218    #[inline]
25219    fn can_cast(kind: SyntaxKind) -> bool {
25220        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
25221    }
25222    #[inline]
25223    fn cast(syntax: SyntaxNode) -> Option<Self> {
25224        if Self::can_cast(syntax.kind()) {
25225            Some(Self { syntax })
25226        } else {
25227            None
25228        }
25229    }
25230    #[inline]
25231    fn syntax(&self) -> &SyntaxNode {
25232        &self.syntax
25233    }
25234}
25235impl AstNode for JsonBehaviorEmptyObject {
25236    #[inline]
25237    fn can_cast(kind: SyntaxKind) -> bool {
25238        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
25239    }
25240    #[inline]
25241    fn cast(syntax: SyntaxNode) -> Option<Self> {
25242        if Self::can_cast(syntax.kind()) {
25243            Some(Self { syntax })
25244        } else {
25245            None
25246        }
25247    }
25248    #[inline]
25249    fn syntax(&self) -> &SyntaxNode {
25250        &self.syntax
25251    }
25252}
25253impl AstNode for JsonBehaviorError {
25254    #[inline]
25255    fn can_cast(kind: SyntaxKind) -> bool {
25256        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
25257    }
25258    #[inline]
25259    fn cast(syntax: SyntaxNode) -> Option<Self> {
25260        if Self::can_cast(syntax.kind()) {
25261            Some(Self { syntax })
25262        } else {
25263            None
25264        }
25265    }
25266    #[inline]
25267    fn syntax(&self) -> &SyntaxNode {
25268        &self.syntax
25269    }
25270}
25271impl AstNode for JsonBehaviorFalse {
25272    #[inline]
25273    fn can_cast(kind: SyntaxKind) -> bool {
25274        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
25275    }
25276    #[inline]
25277    fn cast(syntax: SyntaxNode) -> Option<Self> {
25278        if Self::can_cast(syntax.kind()) {
25279            Some(Self { syntax })
25280        } else {
25281            None
25282        }
25283    }
25284    #[inline]
25285    fn syntax(&self) -> &SyntaxNode {
25286        &self.syntax
25287    }
25288}
25289impl AstNode for JsonBehaviorNull {
25290    #[inline]
25291    fn can_cast(kind: SyntaxKind) -> bool {
25292        kind == SyntaxKind::JSON_BEHAVIOR_NULL
25293    }
25294    #[inline]
25295    fn cast(syntax: SyntaxNode) -> Option<Self> {
25296        if Self::can_cast(syntax.kind()) {
25297            Some(Self { syntax })
25298        } else {
25299            None
25300        }
25301    }
25302    #[inline]
25303    fn syntax(&self) -> &SyntaxNode {
25304        &self.syntax
25305    }
25306}
25307impl AstNode for JsonBehaviorTrue {
25308    #[inline]
25309    fn can_cast(kind: SyntaxKind) -> bool {
25310        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
25311    }
25312    #[inline]
25313    fn cast(syntax: SyntaxNode) -> Option<Self> {
25314        if Self::can_cast(syntax.kind()) {
25315            Some(Self { syntax })
25316        } else {
25317            None
25318        }
25319    }
25320    #[inline]
25321    fn syntax(&self) -> &SyntaxNode {
25322        &self.syntax
25323    }
25324}
25325impl AstNode for JsonBehaviorUnknown {
25326    #[inline]
25327    fn can_cast(kind: SyntaxKind) -> bool {
25328        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
25329    }
25330    #[inline]
25331    fn cast(syntax: SyntaxNode) -> Option<Self> {
25332        if Self::can_cast(syntax.kind()) {
25333            Some(Self { syntax })
25334        } else {
25335            None
25336        }
25337    }
25338    #[inline]
25339    fn syntax(&self) -> &SyntaxNode {
25340        &self.syntax
25341    }
25342}
25343impl AstNode for JsonEncodingClause {
25344    #[inline]
25345    fn can_cast(kind: SyntaxKind) -> bool {
25346        kind == SyntaxKind::JSON_ENCODING_CLAUSE
25347    }
25348    #[inline]
25349    fn cast(syntax: SyntaxNode) -> Option<Self> {
25350        if Self::can_cast(syntax.kind()) {
25351            Some(Self { syntax })
25352        } else {
25353            None
25354        }
25355    }
25356    #[inline]
25357    fn syntax(&self) -> &SyntaxNode {
25358        &self.syntax
25359    }
25360}
25361impl AstNode for JsonExistsFn {
25362    #[inline]
25363    fn can_cast(kind: SyntaxKind) -> bool {
25364        kind == SyntaxKind::JSON_EXISTS_FN
25365    }
25366    #[inline]
25367    fn cast(syntax: SyntaxNode) -> Option<Self> {
25368        if Self::can_cast(syntax.kind()) {
25369            Some(Self { syntax })
25370        } else {
25371            None
25372        }
25373    }
25374    #[inline]
25375    fn syntax(&self) -> &SyntaxNode {
25376        &self.syntax
25377    }
25378}
25379impl AstNode for JsonExprFormat {
25380    #[inline]
25381    fn can_cast(kind: SyntaxKind) -> bool {
25382        kind == SyntaxKind::JSON_EXPR_FORMAT
25383    }
25384    #[inline]
25385    fn cast(syntax: SyntaxNode) -> Option<Self> {
25386        if Self::can_cast(syntax.kind()) {
25387            Some(Self { syntax })
25388        } else {
25389            None
25390        }
25391    }
25392    #[inline]
25393    fn syntax(&self) -> &SyntaxNode {
25394        &self.syntax
25395    }
25396}
25397impl AstNode for JsonFn {
25398    #[inline]
25399    fn can_cast(kind: SyntaxKind) -> bool {
25400        kind == SyntaxKind::JSON_FN
25401    }
25402    #[inline]
25403    fn cast(syntax: SyntaxNode) -> Option<Self> {
25404        if Self::can_cast(syntax.kind()) {
25405            Some(Self { syntax })
25406        } else {
25407            None
25408        }
25409    }
25410    #[inline]
25411    fn syntax(&self) -> &SyntaxNode {
25412        &self.syntax
25413    }
25414}
25415impl AstNode for JsonFormatClause {
25416    #[inline]
25417    fn can_cast(kind: SyntaxKind) -> bool {
25418        kind == SyntaxKind::JSON_FORMAT_CLAUSE
25419    }
25420    #[inline]
25421    fn cast(syntax: SyntaxNode) -> Option<Self> {
25422        if Self::can_cast(syntax.kind()) {
25423            Some(Self { syntax })
25424        } else {
25425            None
25426        }
25427    }
25428    #[inline]
25429    fn syntax(&self) -> &SyntaxNode {
25430        &self.syntax
25431    }
25432}
25433impl AstNode for JsonKeyValue {
25434    #[inline]
25435    fn can_cast(kind: SyntaxKind) -> bool {
25436        kind == SyntaxKind::JSON_KEY_VALUE
25437    }
25438    #[inline]
25439    fn cast(syntax: SyntaxNode) -> Option<Self> {
25440        if Self::can_cast(syntax.kind()) {
25441            Some(Self { syntax })
25442        } else {
25443            None
25444        }
25445    }
25446    #[inline]
25447    fn syntax(&self) -> &SyntaxNode {
25448        &self.syntax
25449    }
25450}
25451impl AstNode for JsonKeysUniqueClause {
25452    #[inline]
25453    fn can_cast(kind: SyntaxKind) -> bool {
25454        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
25455    }
25456    #[inline]
25457    fn cast(syntax: SyntaxNode) -> Option<Self> {
25458        if Self::can_cast(syntax.kind()) {
25459            Some(Self { syntax })
25460        } else {
25461            None
25462        }
25463    }
25464    #[inline]
25465    fn syntax(&self) -> &SyntaxNode {
25466        &self.syntax
25467    }
25468}
25469impl AstNode for JsonNullClause {
25470    #[inline]
25471    fn can_cast(kind: SyntaxKind) -> bool {
25472        kind == SyntaxKind::JSON_NULL_CLAUSE
25473    }
25474    #[inline]
25475    fn cast(syntax: SyntaxNode) -> Option<Self> {
25476        if Self::can_cast(syntax.kind()) {
25477            Some(Self { syntax })
25478        } else {
25479            None
25480        }
25481    }
25482    #[inline]
25483    fn syntax(&self) -> &SyntaxNode {
25484        &self.syntax
25485    }
25486}
25487impl AstNode for JsonObjectAggFn {
25488    #[inline]
25489    fn can_cast(kind: SyntaxKind) -> bool {
25490        kind == SyntaxKind::JSON_OBJECT_AGG_FN
25491    }
25492    #[inline]
25493    fn cast(syntax: SyntaxNode) -> Option<Self> {
25494        if Self::can_cast(syntax.kind()) {
25495            Some(Self { syntax })
25496        } else {
25497            None
25498        }
25499    }
25500    #[inline]
25501    fn syntax(&self) -> &SyntaxNode {
25502        &self.syntax
25503    }
25504}
25505impl AstNode for JsonObjectFn {
25506    #[inline]
25507    fn can_cast(kind: SyntaxKind) -> bool {
25508        kind == SyntaxKind::JSON_OBJECT_FN
25509    }
25510    #[inline]
25511    fn cast(syntax: SyntaxNode) -> Option<Self> {
25512        if Self::can_cast(syntax.kind()) {
25513            Some(Self { syntax })
25514        } else {
25515            None
25516        }
25517    }
25518    #[inline]
25519    fn syntax(&self) -> &SyntaxNode {
25520        &self.syntax
25521    }
25522}
25523impl AstNode for JsonOnEmptyClause {
25524    #[inline]
25525    fn can_cast(kind: SyntaxKind) -> bool {
25526        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
25527    }
25528    #[inline]
25529    fn cast(syntax: SyntaxNode) -> Option<Self> {
25530        if Self::can_cast(syntax.kind()) {
25531            Some(Self { syntax })
25532        } else {
25533            None
25534        }
25535    }
25536    #[inline]
25537    fn syntax(&self) -> &SyntaxNode {
25538        &self.syntax
25539    }
25540}
25541impl AstNode for JsonOnErrorClause {
25542    #[inline]
25543    fn can_cast(kind: SyntaxKind) -> bool {
25544        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
25545    }
25546    #[inline]
25547    fn cast(syntax: SyntaxNode) -> Option<Self> {
25548        if Self::can_cast(syntax.kind()) {
25549            Some(Self { syntax })
25550        } else {
25551            None
25552        }
25553    }
25554    #[inline]
25555    fn syntax(&self) -> &SyntaxNode {
25556        &self.syntax
25557    }
25558}
25559impl AstNode for JsonPassingArg {
25560    #[inline]
25561    fn can_cast(kind: SyntaxKind) -> bool {
25562        kind == SyntaxKind::JSON_PASSING_ARG
25563    }
25564    #[inline]
25565    fn cast(syntax: SyntaxNode) -> Option<Self> {
25566        if Self::can_cast(syntax.kind()) {
25567            Some(Self { syntax })
25568        } else {
25569            None
25570        }
25571    }
25572    #[inline]
25573    fn syntax(&self) -> &SyntaxNode {
25574        &self.syntax
25575    }
25576}
25577impl AstNode for JsonPassingClause {
25578    #[inline]
25579    fn can_cast(kind: SyntaxKind) -> bool {
25580        kind == SyntaxKind::JSON_PASSING_CLAUSE
25581    }
25582    #[inline]
25583    fn cast(syntax: SyntaxNode) -> Option<Self> {
25584        if Self::can_cast(syntax.kind()) {
25585            Some(Self { syntax })
25586        } else {
25587            None
25588        }
25589    }
25590    #[inline]
25591    fn syntax(&self) -> &SyntaxNode {
25592        &self.syntax
25593    }
25594}
25595impl AstNode for JsonPathClause {
25596    #[inline]
25597    fn can_cast(kind: SyntaxKind) -> bool {
25598        kind == SyntaxKind::JSON_PATH_CLAUSE
25599    }
25600    #[inline]
25601    fn cast(syntax: SyntaxNode) -> Option<Self> {
25602        if Self::can_cast(syntax.kind()) {
25603            Some(Self { syntax })
25604        } else {
25605            None
25606        }
25607    }
25608    #[inline]
25609    fn syntax(&self) -> &SyntaxNode {
25610        &self.syntax
25611    }
25612}
25613impl AstNode for JsonQueryFn {
25614    #[inline]
25615    fn can_cast(kind: SyntaxKind) -> bool {
25616        kind == SyntaxKind::JSON_QUERY_FN
25617    }
25618    #[inline]
25619    fn cast(syntax: SyntaxNode) -> Option<Self> {
25620        if Self::can_cast(syntax.kind()) {
25621            Some(Self { syntax })
25622        } else {
25623            None
25624        }
25625    }
25626    #[inline]
25627    fn syntax(&self) -> &SyntaxNode {
25628        &self.syntax
25629    }
25630}
25631impl AstNode for JsonQuotesClause {
25632    #[inline]
25633    fn can_cast(kind: SyntaxKind) -> bool {
25634        kind == SyntaxKind::JSON_QUOTES_CLAUSE
25635    }
25636    #[inline]
25637    fn cast(syntax: SyntaxNode) -> Option<Self> {
25638        if Self::can_cast(syntax.kind()) {
25639            Some(Self { syntax })
25640        } else {
25641            None
25642        }
25643    }
25644    #[inline]
25645    fn syntax(&self) -> &SyntaxNode {
25646        &self.syntax
25647    }
25648}
25649impl AstNode for JsonReturningClause {
25650    #[inline]
25651    fn can_cast(kind: SyntaxKind) -> bool {
25652        kind == SyntaxKind::JSON_RETURNING_CLAUSE
25653    }
25654    #[inline]
25655    fn cast(syntax: SyntaxNode) -> Option<Self> {
25656        if Self::can_cast(syntax.kind()) {
25657            Some(Self { syntax })
25658        } else {
25659            None
25660        }
25661    }
25662    #[inline]
25663    fn syntax(&self) -> &SyntaxNode {
25664        &self.syntax
25665    }
25666}
25667impl AstNode for JsonScalarFn {
25668    #[inline]
25669    fn can_cast(kind: SyntaxKind) -> bool {
25670        kind == SyntaxKind::JSON_SCALAR_FN
25671    }
25672    #[inline]
25673    fn cast(syntax: SyntaxNode) -> Option<Self> {
25674        if Self::can_cast(syntax.kind()) {
25675            Some(Self { syntax })
25676        } else {
25677            None
25678        }
25679    }
25680    #[inline]
25681    fn syntax(&self) -> &SyntaxNode {
25682        &self.syntax
25683    }
25684}
25685impl AstNode for JsonSelectFormat {
25686    #[inline]
25687    fn can_cast(kind: SyntaxKind) -> bool {
25688        kind == SyntaxKind::JSON_SELECT_FORMAT
25689    }
25690    #[inline]
25691    fn cast(syntax: SyntaxNode) -> Option<Self> {
25692        if Self::can_cast(syntax.kind()) {
25693            Some(Self { syntax })
25694        } else {
25695            None
25696        }
25697    }
25698    #[inline]
25699    fn syntax(&self) -> &SyntaxNode {
25700        &self.syntax
25701    }
25702}
25703impl AstNode for JsonSerializeFn {
25704    #[inline]
25705    fn can_cast(kind: SyntaxKind) -> bool {
25706        kind == SyntaxKind::JSON_SERIALIZE_FN
25707    }
25708    #[inline]
25709    fn cast(syntax: SyntaxNode) -> Option<Self> {
25710        if Self::can_cast(syntax.kind()) {
25711            Some(Self { syntax })
25712        } else {
25713            None
25714        }
25715    }
25716    #[inline]
25717    fn syntax(&self) -> &SyntaxNode {
25718        &self.syntax
25719    }
25720}
25721impl AstNode for JsonTable {
25722    #[inline]
25723    fn can_cast(kind: SyntaxKind) -> bool {
25724        kind == SyntaxKind::JSON_TABLE
25725    }
25726    #[inline]
25727    fn cast(syntax: SyntaxNode) -> Option<Self> {
25728        if Self::can_cast(syntax.kind()) {
25729            Some(Self { syntax })
25730        } else {
25731            None
25732        }
25733    }
25734    #[inline]
25735    fn syntax(&self) -> &SyntaxNode {
25736        &self.syntax
25737    }
25738}
25739impl AstNode for JsonTableColumn {
25740    #[inline]
25741    fn can_cast(kind: SyntaxKind) -> bool {
25742        kind == SyntaxKind::JSON_TABLE_COLUMN
25743    }
25744    #[inline]
25745    fn cast(syntax: SyntaxNode) -> Option<Self> {
25746        if Self::can_cast(syntax.kind()) {
25747            Some(Self { syntax })
25748        } else {
25749            None
25750        }
25751    }
25752    #[inline]
25753    fn syntax(&self) -> &SyntaxNode {
25754        &self.syntax
25755    }
25756}
25757impl AstNode for JsonTableColumnList {
25758    #[inline]
25759    fn can_cast(kind: SyntaxKind) -> bool {
25760        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
25761    }
25762    #[inline]
25763    fn cast(syntax: SyntaxNode) -> Option<Self> {
25764        if Self::can_cast(syntax.kind()) {
25765            Some(Self { syntax })
25766        } else {
25767            None
25768        }
25769    }
25770    #[inline]
25771    fn syntax(&self) -> &SyntaxNode {
25772        &self.syntax
25773    }
25774}
25775impl AstNode for JsonValueExpr {
25776    #[inline]
25777    fn can_cast(kind: SyntaxKind) -> bool {
25778        kind == SyntaxKind::JSON_VALUE_EXPR
25779    }
25780    #[inline]
25781    fn cast(syntax: SyntaxNode) -> Option<Self> {
25782        if Self::can_cast(syntax.kind()) {
25783            Some(Self { syntax })
25784        } else {
25785            None
25786        }
25787    }
25788    #[inline]
25789    fn syntax(&self) -> &SyntaxNode {
25790        &self.syntax
25791    }
25792}
25793impl AstNode for JsonValueFn {
25794    #[inline]
25795    fn can_cast(kind: SyntaxKind) -> bool {
25796        kind == SyntaxKind::JSON_VALUE_FN
25797    }
25798    #[inline]
25799    fn cast(syntax: SyntaxNode) -> Option<Self> {
25800        if Self::can_cast(syntax.kind()) {
25801            Some(Self { syntax })
25802        } else {
25803            None
25804        }
25805    }
25806    #[inline]
25807    fn syntax(&self) -> &SyntaxNode {
25808        &self.syntax
25809    }
25810}
25811impl AstNode for JsonWrapperBehaviorClause {
25812    #[inline]
25813    fn can_cast(kind: SyntaxKind) -> bool {
25814        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
25815    }
25816    #[inline]
25817    fn cast(syntax: SyntaxNode) -> Option<Self> {
25818        if Self::can_cast(syntax.kind()) {
25819            Some(Self { syntax })
25820        } else {
25821            None
25822        }
25823    }
25824    #[inline]
25825    fn syntax(&self) -> &SyntaxNode {
25826        &self.syntax
25827    }
25828}
25829impl AstNode for LabelAndProperties {
25830    #[inline]
25831    fn can_cast(kind: SyntaxKind) -> bool {
25832        kind == SyntaxKind::LABEL_AND_PROPERTIES
25833    }
25834    #[inline]
25835    fn cast(syntax: SyntaxNode) -> Option<Self> {
25836        if Self::can_cast(syntax.kind()) {
25837            Some(Self { syntax })
25838        } else {
25839            None
25840        }
25841    }
25842    #[inline]
25843    fn syntax(&self) -> &SyntaxNode {
25844        &self.syntax
25845    }
25846}
25847impl AstNode for LabelAndPropertiesList {
25848    #[inline]
25849    fn can_cast(kind: SyntaxKind) -> bool {
25850        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
25851    }
25852    #[inline]
25853    fn cast(syntax: SyntaxNode) -> Option<Self> {
25854        if Self::can_cast(syntax.kind()) {
25855            Some(Self { syntax })
25856        } else {
25857            None
25858        }
25859    }
25860    #[inline]
25861    fn syntax(&self) -> &SyntaxNode {
25862        &self.syntax
25863    }
25864}
25865impl AstNode for LanguageFuncOption {
25866    #[inline]
25867    fn can_cast(kind: SyntaxKind) -> bool {
25868        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
25869    }
25870    #[inline]
25871    fn cast(syntax: SyntaxNode) -> Option<Self> {
25872        if Self::can_cast(syntax.kind()) {
25873            Some(Self { syntax })
25874        } else {
25875            None
25876        }
25877    }
25878    #[inline]
25879    fn syntax(&self) -> &SyntaxNode {
25880        &self.syntax
25881    }
25882}
25883impl AstNode for LeakproofFuncOption {
25884    #[inline]
25885    fn can_cast(kind: SyntaxKind) -> bool {
25886        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
25887    }
25888    #[inline]
25889    fn cast(syntax: SyntaxNode) -> Option<Self> {
25890        if Self::can_cast(syntax.kind()) {
25891            Some(Self { syntax })
25892        } else {
25893            None
25894        }
25895    }
25896    #[inline]
25897    fn syntax(&self) -> &SyntaxNode {
25898        &self.syntax
25899    }
25900}
25901impl AstNode for LikeClause {
25902    #[inline]
25903    fn can_cast(kind: SyntaxKind) -> bool {
25904        kind == SyntaxKind::LIKE_CLAUSE
25905    }
25906    #[inline]
25907    fn cast(syntax: SyntaxNode) -> Option<Self> {
25908        if Self::can_cast(syntax.kind()) {
25909            Some(Self { syntax })
25910        } else {
25911            None
25912        }
25913    }
25914    #[inline]
25915    fn syntax(&self) -> &SyntaxNode {
25916        &self.syntax
25917    }
25918}
25919impl AstNode for LikeOption {
25920    #[inline]
25921    fn can_cast(kind: SyntaxKind) -> bool {
25922        kind == SyntaxKind::LIKE_OPTION
25923    }
25924    #[inline]
25925    fn cast(syntax: SyntaxNode) -> Option<Self> {
25926        if Self::can_cast(syntax.kind()) {
25927            Some(Self { syntax })
25928        } else {
25929            None
25930        }
25931    }
25932    #[inline]
25933    fn syntax(&self) -> &SyntaxNode {
25934        &self.syntax
25935    }
25936}
25937impl AstNode for LimitClause {
25938    #[inline]
25939    fn can_cast(kind: SyntaxKind) -> bool {
25940        kind == SyntaxKind::LIMIT_CLAUSE
25941    }
25942    #[inline]
25943    fn cast(syntax: SyntaxNode) -> Option<Self> {
25944        if Self::can_cast(syntax.kind()) {
25945            Some(Self { syntax })
25946        } else {
25947            None
25948        }
25949    }
25950    #[inline]
25951    fn syntax(&self) -> &SyntaxNode {
25952        &self.syntax
25953    }
25954}
25955impl AstNode for LimitToTables {
25956    #[inline]
25957    fn can_cast(kind: SyntaxKind) -> bool {
25958        kind == SyntaxKind::LIMIT_TO_TABLES
25959    }
25960    #[inline]
25961    fn cast(syntax: SyntaxNode) -> Option<Self> {
25962        if Self::can_cast(syntax.kind()) {
25963            Some(Self { syntax })
25964        } else {
25965            None
25966        }
25967    }
25968    #[inline]
25969    fn syntax(&self) -> &SyntaxNode {
25970        &self.syntax
25971    }
25972}
25973impl AstNode for Listen {
25974    #[inline]
25975    fn can_cast(kind: SyntaxKind) -> bool {
25976        kind == SyntaxKind::LISTEN
25977    }
25978    #[inline]
25979    fn cast(syntax: SyntaxNode) -> Option<Self> {
25980        if Self::can_cast(syntax.kind()) {
25981            Some(Self { syntax })
25982        } else {
25983            None
25984        }
25985    }
25986    #[inline]
25987    fn syntax(&self) -> &SyntaxNode {
25988        &self.syntax
25989    }
25990}
25991impl AstNode for Literal {
25992    #[inline]
25993    fn can_cast(kind: SyntaxKind) -> bool {
25994        kind == SyntaxKind::LITERAL
25995    }
25996    #[inline]
25997    fn cast(syntax: SyntaxNode) -> Option<Self> {
25998        if Self::can_cast(syntax.kind()) {
25999            Some(Self { syntax })
26000        } else {
26001            None
26002        }
26003    }
26004    #[inline]
26005    fn syntax(&self) -> &SyntaxNode {
26006        &self.syntax
26007    }
26008}
26009impl AstNode for Load {
26010    #[inline]
26011    fn can_cast(kind: SyntaxKind) -> bool {
26012        kind == SyntaxKind::LOAD
26013    }
26014    #[inline]
26015    fn cast(syntax: SyntaxNode) -> Option<Self> {
26016        if Self::can_cast(syntax.kind()) {
26017            Some(Self { syntax })
26018        } else {
26019            None
26020        }
26021    }
26022    #[inline]
26023    fn syntax(&self) -> &SyntaxNode {
26024        &self.syntax
26025    }
26026}
26027impl AstNode for Lock {
26028    #[inline]
26029    fn can_cast(kind: SyntaxKind) -> bool {
26030        kind == SyntaxKind::LOCK
26031    }
26032    #[inline]
26033    fn cast(syntax: SyntaxNode) -> Option<Self> {
26034        if Self::can_cast(syntax.kind()) {
26035            Some(Self { syntax })
26036        } else {
26037            None
26038        }
26039    }
26040    #[inline]
26041    fn syntax(&self) -> &SyntaxNode {
26042        &self.syntax
26043    }
26044}
26045impl AstNode for LockingClause {
26046    #[inline]
26047    fn can_cast(kind: SyntaxKind) -> bool {
26048        kind == SyntaxKind::LOCKING_CLAUSE
26049    }
26050    #[inline]
26051    fn cast(syntax: SyntaxNode) -> Option<Self> {
26052        if Self::can_cast(syntax.kind()) {
26053            Some(Self { syntax })
26054        } else {
26055            None
26056        }
26057    }
26058    #[inline]
26059    fn syntax(&self) -> &SyntaxNode {
26060        &self.syntax
26061    }
26062}
26063impl AstNode for Lteq {
26064    #[inline]
26065    fn can_cast(kind: SyntaxKind) -> bool {
26066        kind == SyntaxKind::LTEQ
26067    }
26068    #[inline]
26069    fn cast(syntax: SyntaxNode) -> Option<Self> {
26070        if Self::can_cast(syntax.kind()) {
26071            Some(Self { syntax })
26072        } else {
26073            None
26074        }
26075    }
26076    #[inline]
26077    fn syntax(&self) -> &SyntaxNode {
26078        &self.syntax
26079    }
26080}
26081impl AstNode for MatchFull {
26082    #[inline]
26083    fn can_cast(kind: SyntaxKind) -> bool {
26084        kind == SyntaxKind::MATCH_FULL
26085    }
26086    #[inline]
26087    fn cast(syntax: SyntaxNode) -> Option<Self> {
26088        if Self::can_cast(syntax.kind()) {
26089            Some(Self { syntax })
26090        } else {
26091            None
26092        }
26093    }
26094    #[inline]
26095    fn syntax(&self) -> &SyntaxNode {
26096        &self.syntax
26097    }
26098}
26099impl AstNode for MatchPartial {
26100    #[inline]
26101    fn can_cast(kind: SyntaxKind) -> bool {
26102        kind == SyntaxKind::MATCH_PARTIAL
26103    }
26104    #[inline]
26105    fn cast(syntax: SyntaxNode) -> Option<Self> {
26106        if Self::can_cast(syntax.kind()) {
26107            Some(Self { syntax })
26108        } else {
26109            None
26110        }
26111    }
26112    #[inline]
26113    fn syntax(&self) -> &SyntaxNode {
26114        &self.syntax
26115    }
26116}
26117impl AstNode for MatchSimple {
26118    #[inline]
26119    fn can_cast(kind: SyntaxKind) -> bool {
26120        kind == SyntaxKind::MATCH_SIMPLE
26121    }
26122    #[inline]
26123    fn cast(syntax: SyntaxNode) -> Option<Self> {
26124        if Self::can_cast(syntax.kind()) {
26125            Some(Self { syntax })
26126        } else {
26127            None
26128        }
26129    }
26130    #[inline]
26131    fn syntax(&self) -> &SyntaxNode {
26132        &self.syntax
26133    }
26134}
26135impl AstNode for Materialized {
26136    #[inline]
26137    fn can_cast(kind: SyntaxKind) -> bool {
26138        kind == SyntaxKind::MATERIALIZED
26139    }
26140    #[inline]
26141    fn cast(syntax: SyntaxNode) -> Option<Self> {
26142        if Self::can_cast(syntax.kind()) {
26143            Some(Self { syntax })
26144        } else {
26145            None
26146        }
26147    }
26148    #[inline]
26149    fn syntax(&self) -> &SyntaxNode {
26150        &self.syntax
26151    }
26152}
26153impl AstNode for Merge {
26154    #[inline]
26155    fn can_cast(kind: SyntaxKind) -> bool {
26156        kind == SyntaxKind::MERGE
26157    }
26158    #[inline]
26159    fn cast(syntax: SyntaxNode) -> Option<Self> {
26160        if Self::can_cast(syntax.kind()) {
26161            Some(Self { syntax })
26162        } else {
26163            None
26164        }
26165    }
26166    #[inline]
26167    fn syntax(&self) -> &SyntaxNode {
26168        &self.syntax
26169    }
26170}
26171impl AstNode for MergeDelete {
26172    #[inline]
26173    fn can_cast(kind: SyntaxKind) -> bool {
26174        kind == SyntaxKind::MERGE_DELETE
26175    }
26176    #[inline]
26177    fn cast(syntax: SyntaxNode) -> Option<Self> {
26178        if Self::can_cast(syntax.kind()) {
26179            Some(Self { syntax })
26180        } else {
26181            None
26182        }
26183    }
26184    #[inline]
26185    fn syntax(&self) -> &SyntaxNode {
26186        &self.syntax
26187    }
26188}
26189impl AstNode for MergeDoNothing {
26190    #[inline]
26191    fn can_cast(kind: SyntaxKind) -> bool {
26192        kind == SyntaxKind::MERGE_DO_NOTHING
26193    }
26194    #[inline]
26195    fn cast(syntax: SyntaxNode) -> Option<Self> {
26196        if Self::can_cast(syntax.kind()) {
26197            Some(Self { syntax })
26198        } else {
26199            None
26200        }
26201    }
26202    #[inline]
26203    fn syntax(&self) -> &SyntaxNode {
26204        &self.syntax
26205    }
26206}
26207impl AstNode for MergeInsert {
26208    #[inline]
26209    fn can_cast(kind: SyntaxKind) -> bool {
26210        kind == SyntaxKind::MERGE_INSERT
26211    }
26212    #[inline]
26213    fn cast(syntax: SyntaxNode) -> Option<Self> {
26214        if Self::can_cast(syntax.kind()) {
26215            Some(Self { syntax })
26216        } else {
26217            None
26218        }
26219    }
26220    #[inline]
26221    fn syntax(&self) -> &SyntaxNode {
26222        &self.syntax
26223    }
26224}
26225impl AstNode for MergePartitions {
26226    #[inline]
26227    fn can_cast(kind: SyntaxKind) -> bool {
26228        kind == SyntaxKind::MERGE_PARTITIONS
26229    }
26230    #[inline]
26231    fn cast(syntax: SyntaxNode) -> Option<Self> {
26232        if Self::can_cast(syntax.kind()) {
26233            Some(Self { syntax })
26234        } else {
26235            None
26236        }
26237    }
26238    #[inline]
26239    fn syntax(&self) -> &SyntaxNode {
26240        &self.syntax
26241    }
26242}
26243impl AstNode for MergeUpdate {
26244    #[inline]
26245    fn can_cast(kind: SyntaxKind) -> bool {
26246        kind == SyntaxKind::MERGE_UPDATE
26247    }
26248    #[inline]
26249    fn cast(syntax: SyntaxNode) -> Option<Self> {
26250        if Self::can_cast(syntax.kind()) {
26251            Some(Self { syntax })
26252        } else {
26253            None
26254        }
26255    }
26256    #[inline]
26257    fn syntax(&self) -> &SyntaxNode {
26258        &self.syntax
26259    }
26260}
26261impl AstNode for MergeWhenMatched {
26262    #[inline]
26263    fn can_cast(kind: SyntaxKind) -> bool {
26264        kind == SyntaxKind::MERGE_WHEN_MATCHED
26265    }
26266    #[inline]
26267    fn cast(syntax: SyntaxNode) -> Option<Self> {
26268        if Self::can_cast(syntax.kind()) {
26269            Some(Self { syntax })
26270        } else {
26271            None
26272        }
26273    }
26274    #[inline]
26275    fn syntax(&self) -> &SyntaxNode {
26276        &self.syntax
26277    }
26278}
26279impl AstNode for MergeWhenNotMatchedSource {
26280    #[inline]
26281    fn can_cast(kind: SyntaxKind) -> bool {
26282        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
26283    }
26284    #[inline]
26285    fn cast(syntax: SyntaxNode) -> Option<Self> {
26286        if Self::can_cast(syntax.kind()) {
26287            Some(Self { syntax })
26288        } else {
26289            None
26290        }
26291    }
26292    #[inline]
26293    fn syntax(&self) -> &SyntaxNode {
26294        &self.syntax
26295    }
26296}
26297impl AstNode for MergeWhenNotMatchedTarget {
26298    #[inline]
26299    fn can_cast(kind: SyntaxKind) -> bool {
26300        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
26301    }
26302    #[inline]
26303    fn cast(syntax: SyntaxNode) -> Option<Self> {
26304        if Self::can_cast(syntax.kind()) {
26305            Some(Self { syntax })
26306        } else {
26307            None
26308        }
26309    }
26310    #[inline]
26311    fn syntax(&self) -> &SyntaxNode {
26312        &self.syntax
26313    }
26314}
26315impl AstNode for Move {
26316    #[inline]
26317    fn can_cast(kind: SyntaxKind) -> bool {
26318        kind == SyntaxKind::MOVE
26319    }
26320    #[inline]
26321    fn cast(syntax: SyntaxNode) -> Option<Self> {
26322        if Self::can_cast(syntax.kind()) {
26323            Some(Self { syntax })
26324        } else {
26325            None
26326        }
26327    }
26328    #[inline]
26329    fn syntax(&self) -> &SyntaxNode {
26330        &self.syntax
26331    }
26332}
26333impl AstNode for Name {
26334    #[inline]
26335    fn can_cast(kind: SyntaxKind) -> bool {
26336        kind == SyntaxKind::NAME
26337    }
26338    #[inline]
26339    fn cast(syntax: SyntaxNode) -> Option<Self> {
26340        if Self::can_cast(syntax.kind()) {
26341            Some(Self { syntax })
26342        } else {
26343            None
26344        }
26345    }
26346    #[inline]
26347    fn syntax(&self) -> &SyntaxNode {
26348        &self.syntax
26349    }
26350}
26351impl AstNode for NameRef {
26352    #[inline]
26353    fn can_cast(kind: SyntaxKind) -> bool {
26354        kind == SyntaxKind::NAME_REF
26355    }
26356    #[inline]
26357    fn cast(syntax: SyntaxNode) -> Option<Self> {
26358        if Self::can_cast(syntax.kind()) {
26359            Some(Self { syntax })
26360        } else {
26361            None
26362        }
26363    }
26364    #[inline]
26365    fn syntax(&self) -> &SyntaxNode {
26366        &self.syntax
26367    }
26368}
26369impl AstNode for NamedArg {
26370    #[inline]
26371    fn can_cast(kind: SyntaxKind) -> bool {
26372        kind == SyntaxKind::NAMED_ARG
26373    }
26374    #[inline]
26375    fn cast(syntax: SyntaxNode) -> Option<Self> {
26376        if Self::can_cast(syntax.kind()) {
26377            Some(Self { syntax })
26378        } else {
26379            None
26380        }
26381    }
26382    #[inline]
26383    fn syntax(&self) -> &SyntaxNode {
26384        &self.syntax
26385    }
26386}
26387impl AstNode for Neq {
26388    #[inline]
26389    fn can_cast(kind: SyntaxKind) -> bool {
26390        kind == SyntaxKind::NEQ
26391    }
26392    #[inline]
26393    fn cast(syntax: SyntaxNode) -> Option<Self> {
26394        if Self::can_cast(syntax.kind()) {
26395            Some(Self { syntax })
26396        } else {
26397            None
26398        }
26399    }
26400    #[inline]
26401    fn syntax(&self) -> &SyntaxNode {
26402        &self.syntax
26403    }
26404}
26405impl AstNode for Neqb {
26406    #[inline]
26407    fn can_cast(kind: SyntaxKind) -> bool {
26408        kind == SyntaxKind::NEQB
26409    }
26410    #[inline]
26411    fn cast(syntax: SyntaxNode) -> Option<Self> {
26412        if Self::can_cast(syntax.kind()) {
26413            Some(Self { syntax })
26414        } else {
26415            None
26416        }
26417    }
26418    #[inline]
26419    fn syntax(&self) -> &SyntaxNode {
26420        &self.syntax
26421    }
26422}
26423impl AstNode for NoAction {
26424    #[inline]
26425    fn can_cast(kind: SyntaxKind) -> bool {
26426        kind == SyntaxKind::NO_ACTION
26427    }
26428    #[inline]
26429    fn cast(syntax: SyntaxNode) -> Option<Self> {
26430        if Self::can_cast(syntax.kind()) {
26431            Some(Self { syntax })
26432        } else {
26433            None
26434        }
26435    }
26436    #[inline]
26437    fn syntax(&self) -> &SyntaxNode {
26438        &self.syntax
26439    }
26440}
26441impl AstNode for NoDependsOnExtension {
26442    #[inline]
26443    fn can_cast(kind: SyntaxKind) -> bool {
26444        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
26445    }
26446    #[inline]
26447    fn cast(syntax: SyntaxNode) -> Option<Self> {
26448        if Self::can_cast(syntax.kind()) {
26449            Some(Self { syntax })
26450        } else {
26451            None
26452        }
26453    }
26454    #[inline]
26455    fn syntax(&self) -> &SyntaxNode {
26456        &self.syntax
26457    }
26458}
26459impl AstNode for NoForceRls {
26460    #[inline]
26461    fn can_cast(kind: SyntaxKind) -> bool {
26462        kind == SyntaxKind::NO_FORCE_RLS
26463    }
26464    #[inline]
26465    fn cast(syntax: SyntaxNode) -> Option<Self> {
26466        if Self::can_cast(syntax.kind()) {
26467            Some(Self { syntax })
26468        } else {
26469            None
26470        }
26471    }
26472    #[inline]
26473    fn syntax(&self) -> &SyntaxNode {
26474        &self.syntax
26475    }
26476}
26477impl AstNode for NoInherit {
26478    #[inline]
26479    fn can_cast(kind: SyntaxKind) -> bool {
26480        kind == SyntaxKind::NO_INHERIT
26481    }
26482    #[inline]
26483    fn cast(syntax: SyntaxNode) -> Option<Self> {
26484        if Self::can_cast(syntax.kind()) {
26485            Some(Self { syntax })
26486        } else {
26487            None
26488        }
26489    }
26490    #[inline]
26491    fn syntax(&self) -> &SyntaxNode {
26492        &self.syntax
26493    }
26494}
26495impl AstNode for NoInheritTable {
26496    #[inline]
26497    fn can_cast(kind: SyntaxKind) -> bool {
26498        kind == SyntaxKind::NO_INHERIT_TABLE
26499    }
26500    #[inline]
26501    fn cast(syntax: SyntaxNode) -> Option<Self> {
26502        if Self::can_cast(syntax.kind()) {
26503            Some(Self { syntax })
26504        } else {
26505            None
26506        }
26507    }
26508    #[inline]
26509    fn syntax(&self) -> &SyntaxNode {
26510        &self.syntax
26511    }
26512}
26513impl AstNode for NoProperties {
26514    #[inline]
26515    fn can_cast(kind: SyntaxKind) -> bool {
26516        kind == SyntaxKind::NO_PROPERTIES
26517    }
26518    #[inline]
26519    fn cast(syntax: SyntaxNode) -> Option<Self> {
26520        if Self::can_cast(syntax.kind()) {
26521            Some(Self { syntax })
26522        } else {
26523            None
26524        }
26525    }
26526    #[inline]
26527    fn syntax(&self) -> &SyntaxNode {
26528        &self.syntax
26529    }
26530}
26531impl AstNode for NonStandardParam {
26532    #[inline]
26533    fn can_cast(kind: SyntaxKind) -> bool {
26534        kind == SyntaxKind::NON_STANDARD_PARAM
26535    }
26536    #[inline]
26537    fn cast(syntax: SyntaxNode) -> Option<Self> {
26538        if Self::can_cast(syntax.kind()) {
26539            Some(Self { syntax })
26540        } else {
26541            None
26542        }
26543    }
26544    #[inline]
26545    fn syntax(&self) -> &SyntaxNode {
26546        &self.syntax
26547    }
26548}
26549impl AstNode for NotDeferrable {
26550    #[inline]
26551    fn can_cast(kind: SyntaxKind) -> bool {
26552        kind == SyntaxKind::NOT_DEFERRABLE
26553    }
26554    #[inline]
26555    fn cast(syntax: SyntaxNode) -> Option<Self> {
26556        if Self::can_cast(syntax.kind()) {
26557            Some(Self { syntax })
26558        } else {
26559            None
26560        }
26561    }
26562    #[inline]
26563    fn syntax(&self) -> &SyntaxNode {
26564        &self.syntax
26565    }
26566}
26567impl AstNode for NotDeferrableConstraintOption {
26568    #[inline]
26569    fn can_cast(kind: SyntaxKind) -> bool {
26570        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
26571    }
26572    #[inline]
26573    fn cast(syntax: SyntaxNode) -> Option<Self> {
26574        if Self::can_cast(syntax.kind()) {
26575            Some(Self { syntax })
26576        } else {
26577            None
26578        }
26579    }
26580    #[inline]
26581    fn syntax(&self) -> &SyntaxNode {
26582        &self.syntax
26583    }
26584}
26585impl AstNode for NotEnforced {
26586    #[inline]
26587    fn can_cast(kind: SyntaxKind) -> bool {
26588        kind == SyntaxKind::NOT_ENFORCED
26589    }
26590    #[inline]
26591    fn cast(syntax: SyntaxNode) -> Option<Self> {
26592        if Self::can_cast(syntax.kind()) {
26593            Some(Self { syntax })
26594        } else {
26595            None
26596        }
26597    }
26598    #[inline]
26599    fn syntax(&self) -> &SyntaxNode {
26600        &self.syntax
26601    }
26602}
26603impl AstNode for NotIlike {
26604    #[inline]
26605    fn can_cast(kind: SyntaxKind) -> bool {
26606        kind == SyntaxKind::NOT_ILIKE
26607    }
26608    #[inline]
26609    fn cast(syntax: SyntaxNode) -> Option<Self> {
26610        if Self::can_cast(syntax.kind()) {
26611            Some(Self { syntax })
26612        } else {
26613            None
26614        }
26615    }
26616    #[inline]
26617    fn syntax(&self) -> &SyntaxNode {
26618        &self.syntax
26619    }
26620}
26621impl AstNode for NotIn {
26622    #[inline]
26623    fn can_cast(kind: SyntaxKind) -> bool {
26624        kind == SyntaxKind::NOT_IN
26625    }
26626    #[inline]
26627    fn cast(syntax: SyntaxNode) -> Option<Self> {
26628        if Self::can_cast(syntax.kind()) {
26629            Some(Self { syntax })
26630        } else {
26631            None
26632        }
26633    }
26634    #[inline]
26635    fn syntax(&self) -> &SyntaxNode {
26636        &self.syntax
26637    }
26638}
26639impl AstNode for NotLike {
26640    #[inline]
26641    fn can_cast(kind: SyntaxKind) -> bool {
26642        kind == SyntaxKind::NOT_LIKE
26643    }
26644    #[inline]
26645    fn cast(syntax: SyntaxNode) -> Option<Self> {
26646        if Self::can_cast(syntax.kind()) {
26647            Some(Self { syntax })
26648        } else {
26649            None
26650        }
26651    }
26652    #[inline]
26653    fn syntax(&self) -> &SyntaxNode {
26654        &self.syntax
26655    }
26656}
26657impl AstNode for NotMaterialized {
26658    #[inline]
26659    fn can_cast(kind: SyntaxKind) -> bool {
26660        kind == SyntaxKind::NOT_MATERIALIZED
26661    }
26662    #[inline]
26663    fn cast(syntax: SyntaxNode) -> Option<Self> {
26664        if Self::can_cast(syntax.kind()) {
26665            Some(Self { syntax })
26666        } else {
26667            None
26668        }
26669    }
26670    #[inline]
26671    fn syntax(&self) -> &SyntaxNode {
26672        &self.syntax
26673    }
26674}
26675impl AstNode for NotNullConstraint {
26676    #[inline]
26677    fn can_cast(kind: SyntaxKind) -> bool {
26678        kind == SyntaxKind::NOT_NULL_CONSTRAINT
26679    }
26680    #[inline]
26681    fn cast(syntax: SyntaxNode) -> Option<Self> {
26682        if Self::can_cast(syntax.kind()) {
26683            Some(Self { syntax })
26684        } else {
26685            None
26686        }
26687    }
26688    #[inline]
26689    fn syntax(&self) -> &SyntaxNode {
26690        &self.syntax
26691    }
26692}
26693impl AstNode for NotOf {
26694    #[inline]
26695    fn can_cast(kind: SyntaxKind) -> bool {
26696        kind == SyntaxKind::NOT_OF
26697    }
26698    #[inline]
26699    fn cast(syntax: SyntaxNode) -> Option<Self> {
26700        if Self::can_cast(syntax.kind()) {
26701            Some(Self { syntax })
26702        } else {
26703            None
26704        }
26705    }
26706    #[inline]
26707    fn syntax(&self) -> &SyntaxNode {
26708        &self.syntax
26709    }
26710}
26711impl AstNode for NotSimilarTo {
26712    #[inline]
26713    fn can_cast(kind: SyntaxKind) -> bool {
26714        kind == SyntaxKind::NOT_SIMILAR_TO
26715    }
26716    #[inline]
26717    fn cast(syntax: SyntaxNode) -> Option<Self> {
26718        if Self::can_cast(syntax.kind()) {
26719            Some(Self { syntax })
26720        } else {
26721            None
26722        }
26723    }
26724    #[inline]
26725    fn syntax(&self) -> &SyntaxNode {
26726        &self.syntax
26727    }
26728}
26729impl AstNode for NotValid {
26730    #[inline]
26731    fn can_cast(kind: SyntaxKind) -> bool {
26732        kind == SyntaxKind::NOT_VALID
26733    }
26734    #[inline]
26735    fn cast(syntax: SyntaxNode) -> Option<Self> {
26736        if Self::can_cast(syntax.kind()) {
26737            Some(Self { syntax })
26738        } else {
26739            None
26740        }
26741    }
26742    #[inline]
26743    fn syntax(&self) -> &SyntaxNode {
26744        &self.syntax
26745    }
26746}
26747impl AstNode for Notify {
26748    #[inline]
26749    fn can_cast(kind: SyntaxKind) -> bool {
26750        kind == SyntaxKind::NOTIFY
26751    }
26752    #[inline]
26753    fn cast(syntax: SyntaxNode) -> Option<Self> {
26754        if Self::can_cast(syntax.kind()) {
26755            Some(Self { syntax })
26756        } else {
26757            None
26758        }
26759    }
26760    #[inline]
26761    fn syntax(&self) -> &SyntaxNode {
26762        &self.syntax
26763    }
26764}
26765impl AstNode for NullConstraint {
26766    #[inline]
26767    fn can_cast(kind: SyntaxKind) -> bool {
26768        kind == SyntaxKind::NULL_CONSTRAINT
26769    }
26770    #[inline]
26771    fn cast(syntax: SyntaxNode) -> Option<Self> {
26772        if Self::can_cast(syntax.kind()) {
26773            Some(Self { syntax })
26774        } else {
26775            None
26776        }
26777    }
26778    #[inline]
26779    fn syntax(&self) -> &SyntaxNode {
26780        &self.syntax
26781    }
26782}
26783impl AstNode for NullsDistinct {
26784    #[inline]
26785    fn can_cast(kind: SyntaxKind) -> bool {
26786        kind == SyntaxKind::NULLS_DISTINCT
26787    }
26788    #[inline]
26789    fn cast(syntax: SyntaxNode) -> Option<Self> {
26790        if Self::can_cast(syntax.kind()) {
26791            Some(Self { syntax })
26792        } else {
26793            None
26794        }
26795    }
26796    #[inline]
26797    fn syntax(&self) -> &SyntaxNode {
26798        &self.syntax
26799    }
26800}
26801impl AstNode for NullsFirst {
26802    #[inline]
26803    fn can_cast(kind: SyntaxKind) -> bool {
26804        kind == SyntaxKind::NULLS_FIRST
26805    }
26806    #[inline]
26807    fn cast(syntax: SyntaxNode) -> Option<Self> {
26808        if Self::can_cast(syntax.kind()) {
26809            Some(Self { syntax })
26810        } else {
26811            None
26812        }
26813    }
26814    #[inline]
26815    fn syntax(&self) -> &SyntaxNode {
26816        &self.syntax
26817    }
26818}
26819impl AstNode for NullsLast {
26820    #[inline]
26821    fn can_cast(kind: SyntaxKind) -> bool {
26822        kind == SyntaxKind::NULLS_LAST
26823    }
26824    #[inline]
26825    fn cast(syntax: SyntaxNode) -> Option<Self> {
26826        if Self::can_cast(syntax.kind()) {
26827            Some(Self { syntax })
26828        } else {
26829            None
26830        }
26831    }
26832    #[inline]
26833    fn syntax(&self) -> &SyntaxNode {
26834        &self.syntax
26835    }
26836}
26837impl AstNode for NullsNotDistinct {
26838    #[inline]
26839    fn can_cast(kind: SyntaxKind) -> bool {
26840        kind == SyntaxKind::NULLS_NOT_DISTINCT
26841    }
26842    #[inline]
26843    fn cast(syntax: SyntaxNode) -> Option<Self> {
26844        if Self::can_cast(syntax.kind()) {
26845            Some(Self { syntax })
26846        } else {
26847            None
26848        }
26849    }
26850    #[inline]
26851    fn syntax(&self) -> &SyntaxNode {
26852        &self.syntax
26853    }
26854}
26855impl AstNode for OfType {
26856    #[inline]
26857    fn can_cast(kind: SyntaxKind) -> bool {
26858        kind == SyntaxKind::OF_TYPE
26859    }
26860    #[inline]
26861    fn cast(syntax: SyntaxNode) -> Option<Self> {
26862        if Self::can_cast(syntax.kind()) {
26863            Some(Self { syntax })
26864        } else {
26865            None
26866        }
26867    }
26868    #[inline]
26869    fn syntax(&self) -> &SyntaxNode {
26870        &self.syntax
26871    }
26872}
26873impl AstNode for OffsetClause {
26874    #[inline]
26875    fn can_cast(kind: SyntaxKind) -> bool {
26876        kind == SyntaxKind::OFFSET_CLAUSE
26877    }
26878    #[inline]
26879    fn cast(syntax: SyntaxNode) -> Option<Self> {
26880        if Self::can_cast(syntax.kind()) {
26881            Some(Self { syntax })
26882        } else {
26883            None
26884        }
26885    }
26886    #[inline]
26887    fn syntax(&self) -> &SyntaxNode {
26888        &self.syntax
26889    }
26890}
26891impl AstNode for OnClause {
26892    #[inline]
26893    fn can_cast(kind: SyntaxKind) -> bool {
26894        kind == SyntaxKind::ON_CLAUSE
26895    }
26896    #[inline]
26897    fn cast(syntax: SyntaxNode) -> Option<Self> {
26898        if Self::can_cast(syntax.kind()) {
26899            Some(Self { syntax })
26900        } else {
26901            None
26902        }
26903    }
26904    #[inline]
26905    fn syntax(&self) -> &SyntaxNode {
26906        &self.syntax
26907    }
26908}
26909impl AstNode for OnCommit {
26910    #[inline]
26911    fn can_cast(kind: SyntaxKind) -> bool {
26912        kind == SyntaxKind::ON_COMMIT
26913    }
26914    #[inline]
26915    fn cast(syntax: SyntaxNode) -> Option<Self> {
26916        if Self::can_cast(syntax.kind()) {
26917            Some(Self { syntax })
26918        } else {
26919            None
26920        }
26921    }
26922    #[inline]
26923    fn syntax(&self) -> &SyntaxNode {
26924        &self.syntax
26925    }
26926}
26927impl AstNode for OnConflictClause {
26928    #[inline]
26929    fn can_cast(kind: SyntaxKind) -> bool {
26930        kind == SyntaxKind::ON_CONFLICT_CLAUSE
26931    }
26932    #[inline]
26933    fn cast(syntax: SyntaxNode) -> Option<Self> {
26934        if Self::can_cast(syntax.kind()) {
26935            Some(Self { syntax })
26936        } else {
26937            None
26938        }
26939    }
26940    #[inline]
26941    fn syntax(&self) -> &SyntaxNode {
26942        &self.syntax
26943    }
26944}
26945impl AstNode for OnDeleteAction {
26946    #[inline]
26947    fn can_cast(kind: SyntaxKind) -> bool {
26948        kind == SyntaxKind::ON_DELETE_ACTION
26949    }
26950    #[inline]
26951    fn cast(syntax: SyntaxNode) -> Option<Self> {
26952        if Self::can_cast(syntax.kind()) {
26953            Some(Self { syntax })
26954        } else {
26955            None
26956        }
26957    }
26958    #[inline]
26959    fn syntax(&self) -> &SyntaxNode {
26960        &self.syntax
26961    }
26962}
26963impl AstNode for OnTable {
26964    #[inline]
26965    fn can_cast(kind: SyntaxKind) -> bool {
26966        kind == SyntaxKind::ON_TABLE
26967    }
26968    #[inline]
26969    fn cast(syntax: SyntaxNode) -> Option<Self> {
26970        if Self::can_cast(syntax.kind()) {
26971            Some(Self { syntax })
26972        } else {
26973            None
26974        }
26975    }
26976    #[inline]
26977    fn syntax(&self) -> &SyntaxNode {
26978        &self.syntax
26979    }
26980}
26981impl AstNode for OnUpdateAction {
26982    #[inline]
26983    fn can_cast(kind: SyntaxKind) -> bool {
26984        kind == SyntaxKind::ON_UPDATE_ACTION
26985    }
26986    #[inline]
26987    fn cast(syntax: SyntaxNode) -> Option<Self> {
26988        if Self::can_cast(syntax.kind()) {
26989            Some(Self { syntax })
26990        } else {
26991            None
26992        }
26993    }
26994    #[inline]
26995    fn syntax(&self) -> &SyntaxNode {
26996        &self.syntax
26997    }
26998}
26999impl AstNode for Op {
27000    #[inline]
27001    fn can_cast(kind: SyntaxKind) -> bool {
27002        kind == SyntaxKind::OP
27003    }
27004    #[inline]
27005    fn cast(syntax: SyntaxNode) -> Option<Self> {
27006        if Self::can_cast(syntax.kind()) {
27007            Some(Self { syntax })
27008        } else {
27009            None
27010        }
27011    }
27012    #[inline]
27013    fn syntax(&self) -> &SyntaxNode {
27014        &self.syntax
27015    }
27016}
27017impl AstNode for OpClassOption {
27018    #[inline]
27019    fn can_cast(kind: SyntaxKind) -> bool {
27020        kind == SyntaxKind::OP_CLASS_OPTION
27021    }
27022    #[inline]
27023    fn cast(syntax: SyntaxNode) -> Option<Self> {
27024        if Self::can_cast(syntax.kind()) {
27025            Some(Self { syntax })
27026        } else {
27027            None
27028        }
27029    }
27030    #[inline]
27031    fn syntax(&self) -> &SyntaxNode {
27032        &self.syntax
27033    }
27034}
27035impl AstNode for OpSig {
27036    #[inline]
27037    fn can_cast(kind: SyntaxKind) -> bool {
27038        kind == SyntaxKind::OP_SIG
27039    }
27040    #[inline]
27041    fn cast(syntax: SyntaxNode) -> Option<Self> {
27042        if Self::can_cast(syntax.kind()) {
27043            Some(Self { syntax })
27044        } else {
27045            None
27046        }
27047    }
27048    #[inline]
27049    fn syntax(&self) -> &SyntaxNode {
27050        &self.syntax
27051    }
27052}
27053impl AstNode for OpSigList {
27054    #[inline]
27055    fn can_cast(kind: SyntaxKind) -> bool {
27056        kind == SyntaxKind::OP_SIG_LIST
27057    }
27058    #[inline]
27059    fn cast(syntax: SyntaxNode) -> Option<Self> {
27060        if Self::can_cast(syntax.kind()) {
27061            Some(Self { syntax })
27062        } else {
27063            None
27064        }
27065    }
27066    #[inline]
27067    fn syntax(&self) -> &SyntaxNode {
27068        &self.syntax
27069    }
27070}
27071impl AstNode for OperatorCall {
27072    #[inline]
27073    fn can_cast(kind: SyntaxKind) -> bool {
27074        kind == SyntaxKind::OPERATOR_CALL
27075    }
27076    #[inline]
27077    fn cast(syntax: SyntaxNode) -> Option<Self> {
27078        if Self::can_cast(syntax.kind()) {
27079            Some(Self { syntax })
27080        } else {
27081            None
27082        }
27083    }
27084    #[inline]
27085    fn syntax(&self) -> &SyntaxNode {
27086        &self.syntax
27087    }
27088}
27089impl AstNode for OperatorClassOptionList {
27090    #[inline]
27091    fn can_cast(kind: SyntaxKind) -> bool {
27092        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27093    }
27094    #[inline]
27095    fn cast(syntax: SyntaxNode) -> Option<Self> {
27096        if Self::can_cast(syntax.kind()) {
27097            Some(Self { syntax })
27098        } else {
27099            None
27100        }
27101    }
27102    #[inline]
27103    fn syntax(&self) -> &SyntaxNode {
27104        &self.syntax
27105    }
27106}
27107impl AstNode for OptionItem {
27108    #[inline]
27109    fn can_cast(kind: SyntaxKind) -> bool {
27110        kind == SyntaxKind::OPTION_ITEM
27111    }
27112    #[inline]
27113    fn cast(syntax: SyntaxNode) -> Option<Self> {
27114        if Self::can_cast(syntax.kind()) {
27115            Some(Self { syntax })
27116        } else {
27117            None
27118        }
27119    }
27120    #[inline]
27121    fn syntax(&self) -> &SyntaxNode {
27122        &self.syntax
27123    }
27124}
27125impl AstNode for OptionItemList {
27126    #[inline]
27127    fn can_cast(kind: SyntaxKind) -> bool {
27128        kind == SyntaxKind::OPTION_ITEM_LIST
27129    }
27130    #[inline]
27131    fn cast(syntax: SyntaxNode) -> Option<Self> {
27132        if Self::can_cast(syntax.kind()) {
27133            Some(Self { syntax })
27134        } else {
27135            None
27136        }
27137    }
27138    #[inline]
27139    fn syntax(&self) -> &SyntaxNode {
27140        &self.syntax
27141    }
27142}
27143impl AstNode for OrReplace {
27144    #[inline]
27145    fn can_cast(kind: SyntaxKind) -> bool {
27146        kind == SyntaxKind::OR_REPLACE
27147    }
27148    #[inline]
27149    fn cast(syntax: SyntaxNode) -> Option<Self> {
27150        if Self::can_cast(syntax.kind()) {
27151            Some(Self { syntax })
27152        } else {
27153            None
27154        }
27155    }
27156    #[inline]
27157    fn syntax(&self) -> &SyntaxNode {
27158        &self.syntax
27159    }
27160}
27161impl AstNode for OrderByClause {
27162    #[inline]
27163    fn can_cast(kind: SyntaxKind) -> bool {
27164        kind == SyntaxKind::ORDER_BY_CLAUSE
27165    }
27166    #[inline]
27167    fn cast(syntax: SyntaxNode) -> Option<Self> {
27168        if Self::can_cast(syntax.kind()) {
27169            Some(Self { syntax })
27170        } else {
27171            None
27172        }
27173    }
27174    #[inline]
27175    fn syntax(&self) -> &SyntaxNode {
27176        &self.syntax
27177    }
27178}
27179impl AstNode for OverClause {
27180    #[inline]
27181    fn can_cast(kind: SyntaxKind) -> bool {
27182        kind == SyntaxKind::OVER_CLAUSE
27183    }
27184    #[inline]
27185    fn cast(syntax: SyntaxNode) -> Option<Self> {
27186        if Self::can_cast(syntax.kind()) {
27187            Some(Self { syntax })
27188        } else {
27189            None
27190        }
27191    }
27192    #[inline]
27193    fn syntax(&self) -> &SyntaxNode {
27194        &self.syntax
27195    }
27196}
27197impl AstNode for OverlayFn {
27198    #[inline]
27199    fn can_cast(kind: SyntaxKind) -> bool {
27200        kind == SyntaxKind::OVERLAY_FN
27201    }
27202    #[inline]
27203    fn cast(syntax: SyntaxNode) -> Option<Self> {
27204        if Self::can_cast(syntax.kind()) {
27205            Some(Self { syntax })
27206        } else {
27207            None
27208        }
27209    }
27210    #[inline]
27211    fn syntax(&self) -> &SyntaxNode {
27212        &self.syntax
27213    }
27214}
27215impl AstNode for OwnedByRoles {
27216    #[inline]
27217    fn can_cast(kind: SyntaxKind) -> bool {
27218        kind == SyntaxKind::OWNED_BY_ROLES
27219    }
27220    #[inline]
27221    fn cast(syntax: SyntaxNode) -> Option<Self> {
27222        if Self::can_cast(syntax.kind()) {
27223            Some(Self { syntax })
27224        } else {
27225            None
27226        }
27227    }
27228    #[inline]
27229    fn syntax(&self) -> &SyntaxNode {
27230        &self.syntax
27231    }
27232}
27233impl AstNode for OwnerTo {
27234    #[inline]
27235    fn can_cast(kind: SyntaxKind) -> bool {
27236        kind == SyntaxKind::OWNER_TO
27237    }
27238    #[inline]
27239    fn cast(syntax: SyntaxNode) -> Option<Self> {
27240        if Self::can_cast(syntax.kind()) {
27241            Some(Self { syntax })
27242        } else {
27243            None
27244        }
27245    }
27246    #[inline]
27247    fn syntax(&self) -> &SyntaxNode {
27248        &self.syntax
27249    }
27250}
27251impl AstNode for ParallelFuncOption {
27252    #[inline]
27253    fn can_cast(kind: SyntaxKind) -> bool {
27254        kind == SyntaxKind::PARALLEL_FUNC_OPTION
27255    }
27256    #[inline]
27257    fn cast(syntax: SyntaxNode) -> Option<Self> {
27258        if Self::can_cast(syntax.kind()) {
27259            Some(Self { syntax })
27260        } else {
27261            None
27262        }
27263    }
27264    #[inline]
27265    fn syntax(&self) -> &SyntaxNode {
27266        &self.syntax
27267    }
27268}
27269impl AstNode for Param {
27270    #[inline]
27271    fn can_cast(kind: SyntaxKind) -> bool {
27272        kind == SyntaxKind::PARAM
27273    }
27274    #[inline]
27275    fn cast(syntax: SyntaxNode) -> Option<Self> {
27276        if Self::can_cast(syntax.kind()) {
27277            Some(Self { syntax })
27278        } else {
27279            None
27280        }
27281    }
27282    #[inline]
27283    fn syntax(&self) -> &SyntaxNode {
27284        &self.syntax
27285    }
27286}
27287impl AstNode for ParamDefault {
27288    #[inline]
27289    fn can_cast(kind: SyntaxKind) -> bool {
27290        kind == SyntaxKind::PARAM_DEFAULT
27291    }
27292    #[inline]
27293    fn cast(syntax: SyntaxNode) -> Option<Self> {
27294        if Self::can_cast(syntax.kind()) {
27295            Some(Self { syntax })
27296        } else {
27297            None
27298        }
27299    }
27300    #[inline]
27301    fn syntax(&self) -> &SyntaxNode {
27302        &self.syntax
27303    }
27304}
27305impl AstNode for ParamIn {
27306    #[inline]
27307    fn can_cast(kind: SyntaxKind) -> bool {
27308        kind == SyntaxKind::PARAM_IN
27309    }
27310    #[inline]
27311    fn cast(syntax: SyntaxNode) -> Option<Self> {
27312        if Self::can_cast(syntax.kind()) {
27313            Some(Self { syntax })
27314        } else {
27315            None
27316        }
27317    }
27318    #[inline]
27319    fn syntax(&self) -> &SyntaxNode {
27320        &self.syntax
27321    }
27322}
27323impl AstNode for ParamInOut {
27324    #[inline]
27325    fn can_cast(kind: SyntaxKind) -> bool {
27326        kind == SyntaxKind::PARAM_IN_OUT
27327    }
27328    #[inline]
27329    fn cast(syntax: SyntaxNode) -> Option<Self> {
27330        if Self::can_cast(syntax.kind()) {
27331            Some(Self { syntax })
27332        } else {
27333            None
27334        }
27335    }
27336    #[inline]
27337    fn syntax(&self) -> &SyntaxNode {
27338        &self.syntax
27339    }
27340}
27341impl AstNode for ParamList {
27342    #[inline]
27343    fn can_cast(kind: SyntaxKind) -> bool {
27344        kind == SyntaxKind::PARAM_LIST
27345    }
27346    #[inline]
27347    fn cast(syntax: SyntaxNode) -> Option<Self> {
27348        if Self::can_cast(syntax.kind()) {
27349            Some(Self { syntax })
27350        } else {
27351            None
27352        }
27353    }
27354    #[inline]
27355    fn syntax(&self) -> &SyntaxNode {
27356        &self.syntax
27357    }
27358}
27359impl AstNode for ParamOut {
27360    #[inline]
27361    fn can_cast(kind: SyntaxKind) -> bool {
27362        kind == SyntaxKind::PARAM_OUT
27363    }
27364    #[inline]
27365    fn cast(syntax: SyntaxNode) -> Option<Self> {
27366        if Self::can_cast(syntax.kind()) {
27367            Some(Self { syntax })
27368        } else {
27369            None
27370        }
27371    }
27372    #[inline]
27373    fn syntax(&self) -> &SyntaxNode {
27374        &self.syntax
27375    }
27376}
27377impl AstNode for ParamVariadic {
27378    #[inline]
27379    fn can_cast(kind: SyntaxKind) -> bool {
27380        kind == SyntaxKind::PARAM_VARIADIC
27381    }
27382    #[inline]
27383    fn cast(syntax: SyntaxNode) -> Option<Self> {
27384        if Self::can_cast(syntax.kind()) {
27385            Some(Self { syntax })
27386        } else {
27387            None
27388        }
27389    }
27390    #[inline]
27391    fn syntax(&self) -> &SyntaxNode {
27392        &self.syntax
27393    }
27394}
27395impl AstNode for ParenExpr {
27396    #[inline]
27397    fn can_cast(kind: SyntaxKind) -> bool {
27398        kind == SyntaxKind::PAREN_EXPR
27399    }
27400    #[inline]
27401    fn cast(syntax: SyntaxNode) -> Option<Self> {
27402        if Self::can_cast(syntax.kind()) {
27403            Some(Self { syntax })
27404        } else {
27405            None
27406        }
27407    }
27408    #[inline]
27409    fn syntax(&self) -> &SyntaxNode {
27410        &self.syntax
27411    }
27412}
27413impl AstNode for ParenGraphPattern {
27414    #[inline]
27415    fn can_cast(kind: SyntaxKind) -> bool {
27416        kind == SyntaxKind::PAREN_GRAPH_PATTERN
27417    }
27418    #[inline]
27419    fn cast(syntax: SyntaxNode) -> Option<Self> {
27420        if Self::can_cast(syntax.kind()) {
27421            Some(Self { syntax })
27422        } else {
27423            None
27424        }
27425    }
27426    #[inline]
27427    fn syntax(&self) -> &SyntaxNode {
27428        &self.syntax
27429    }
27430}
27431impl AstNode for ParenSelect {
27432    #[inline]
27433    fn can_cast(kind: SyntaxKind) -> bool {
27434        kind == SyntaxKind::PAREN_SELECT
27435    }
27436    #[inline]
27437    fn cast(syntax: SyntaxNode) -> Option<Self> {
27438        if Self::can_cast(syntax.kind()) {
27439            Some(Self { syntax })
27440        } else {
27441            None
27442        }
27443    }
27444    #[inline]
27445    fn syntax(&self) -> &SyntaxNode {
27446        &self.syntax
27447    }
27448}
27449impl AstNode for Partition {
27450    #[inline]
27451    fn can_cast(kind: SyntaxKind) -> bool {
27452        kind == SyntaxKind::PARTITION
27453    }
27454    #[inline]
27455    fn cast(syntax: SyntaxNode) -> Option<Self> {
27456        if Self::can_cast(syntax.kind()) {
27457            Some(Self { syntax })
27458        } else {
27459            None
27460        }
27461    }
27462    #[inline]
27463    fn syntax(&self) -> &SyntaxNode {
27464        &self.syntax
27465    }
27466}
27467impl AstNode for PartitionBy {
27468    #[inline]
27469    fn can_cast(kind: SyntaxKind) -> bool {
27470        kind == SyntaxKind::PARTITION_BY
27471    }
27472    #[inline]
27473    fn cast(syntax: SyntaxNode) -> Option<Self> {
27474        if Self::can_cast(syntax.kind()) {
27475            Some(Self { syntax })
27476        } else {
27477            None
27478        }
27479    }
27480    #[inline]
27481    fn syntax(&self) -> &SyntaxNode {
27482        &self.syntax
27483    }
27484}
27485impl AstNode for PartitionDefault {
27486    #[inline]
27487    fn can_cast(kind: SyntaxKind) -> bool {
27488        kind == SyntaxKind::PARTITION_DEFAULT
27489    }
27490    #[inline]
27491    fn cast(syntax: SyntaxNode) -> Option<Self> {
27492        if Self::can_cast(syntax.kind()) {
27493            Some(Self { syntax })
27494        } else {
27495            None
27496        }
27497    }
27498    #[inline]
27499    fn syntax(&self) -> &SyntaxNode {
27500        &self.syntax
27501    }
27502}
27503impl AstNode for PartitionForValuesFrom {
27504    #[inline]
27505    fn can_cast(kind: SyntaxKind) -> bool {
27506        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
27507    }
27508    #[inline]
27509    fn cast(syntax: SyntaxNode) -> Option<Self> {
27510        if Self::can_cast(syntax.kind()) {
27511            Some(Self { syntax })
27512        } else {
27513            None
27514        }
27515    }
27516    #[inline]
27517    fn syntax(&self) -> &SyntaxNode {
27518        &self.syntax
27519    }
27520}
27521impl AstNode for PartitionForValuesIn {
27522    #[inline]
27523    fn can_cast(kind: SyntaxKind) -> bool {
27524        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
27525    }
27526    #[inline]
27527    fn cast(syntax: SyntaxNode) -> Option<Self> {
27528        if Self::can_cast(syntax.kind()) {
27529            Some(Self { syntax })
27530        } else {
27531            None
27532        }
27533    }
27534    #[inline]
27535    fn syntax(&self) -> &SyntaxNode {
27536        &self.syntax
27537    }
27538}
27539impl AstNode for PartitionForValuesWith {
27540    #[inline]
27541    fn can_cast(kind: SyntaxKind) -> bool {
27542        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
27543    }
27544    #[inline]
27545    fn cast(syntax: SyntaxNode) -> Option<Self> {
27546        if Self::can_cast(syntax.kind()) {
27547            Some(Self { syntax })
27548        } else {
27549            None
27550        }
27551    }
27552    #[inline]
27553    fn syntax(&self) -> &SyntaxNode {
27554        &self.syntax
27555    }
27556}
27557impl AstNode for PartitionItem {
27558    #[inline]
27559    fn can_cast(kind: SyntaxKind) -> bool {
27560        kind == SyntaxKind::PARTITION_ITEM
27561    }
27562    #[inline]
27563    fn cast(syntax: SyntaxNode) -> Option<Self> {
27564        if Self::can_cast(syntax.kind()) {
27565            Some(Self { syntax })
27566        } else {
27567            None
27568        }
27569    }
27570    #[inline]
27571    fn syntax(&self) -> &SyntaxNode {
27572        &self.syntax
27573    }
27574}
27575impl AstNode for PartitionItemList {
27576    #[inline]
27577    fn can_cast(kind: SyntaxKind) -> bool {
27578        kind == SyntaxKind::PARTITION_ITEM_LIST
27579    }
27580    #[inline]
27581    fn cast(syntax: SyntaxNode) -> Option<Self> {
27582        if Self::can_cast(syntax.kind()) {
27583            Some(Self { syntax })
27584        } else {
27585            None
27586        }
27587    }
27588    #[inline]
27589    fn syntax(&self) -> &SyntaxNode {
27590        &self.syntax
27591    }
27592}
27593impl AstNode for PartitionList {
27594    #[inline]
27595    fn can_cast(kind: SyntaxKind) -> bool {
27596        kind == SyntaxKind::PARTITION_LIST
27597    }
27598    #[inline]
27599    fn cast(syntax: SyntaxNode) -> Option<Self> {
27600        if Self::can_cast(syntax.kind()) {
27601            Some(Self { syntax })
27602        } else {
27603            None
27604        }
27605    }
27606    #[inline]
27607    fn syntax(&self) -> &SyntaxNode {
27608        &self.syntax
27609    }
27610}
27611impl AstNode for PartitionOf {
27612    #[inline]
27613    fn can_cast(kind: SyntaxKind) -> bool {
27614        kind == SyntaxKind::PARTITION_OF
27615    }
27616    #[inline]
27617    fn cast(syntax: SyntaxNode) -> Option<Self> {
27618        if Self::can_cast(syntax.kind()) {
27619            Some(Self { syntax })
27620        } else {
27621            None
27622        }
27623    }
27624    #[inline]
27625    fn syntax(&self) -> &SyntaxNode {
27626        &self.syntax
27627    }
27628}
27629impl AstNode for Path {
27630    #[inline]
27631    fn can_cast(kind: SyntaxKind) -> bool {
27632        kind == SyntaxKind::PATH
27633    }
27634    #[inline]
27635    fn cast(syntax: SyntaxNode) -> Option<Self> {
27636        if Self::can_cast(syntax.kind()) {
27637            Some(Self { syntax })
27638        } else {
27639            None
27640        }
27641    }
27642    #[inline]
27643    fn syntax(&self) -> &SyntaxNode {
27644        &self.syntax
27645    }
27646}
27647impl AstNode for PathFactor {
27648    #[inline]
27649    fn can_cast(kind: SyntaxKind) -> bool {
27650        kind == SyntaxKind::PATH_FACTOR
27651    }
27652    #[inline]
27653    fn cast(syntax: SyntaxNode) -> Option<Self> {
27654        if Self::can_cast(syntax.kind()) {
27655            Some(Self { syntax })
27656        } else {
27657            None
27658        }
27659    }
27660    #[inline]
27661    fn syntax(&self) -> &SyntaxNode {
27662        &self.syntax
27663    }
27664}
27665impl AstNode for PathPattern {
27666    #[inline]
27667    fn can_cast(kind: SyntaxKind) -> bool {
27668        kind == SyntaxKind::PATH_PATTERN
27669    }
27670    #[inline]
27671    fn cast(syntax: SyntaxNode) -> Option<Self> {
27672        if Self::can_cast(syntax.kind()) {
27673            Some(Self { syntax })
27674        } else {
27675            None
27676        }
27677    }
27678    #[inline]
27679    fn syntax(&self) -> &SyntaxNode {
27680        &self.syntax
27681    }
27682}
27683impl AstNode for PathPatternList {
27684    #[inline]
27685    fn can_cast(kind: SyntaxKind) -> bool {
27686        kind == SyntaxKind::PATH_PATTERN_LIST
27687    }
27688    #[inline]
27689    fn cast(syntax: SyntaxNode) -> Option<Self> {
27690        if Self::can_cast(syntax.kind()) {
27691            Some(Self { syntax })
27692        } else {
27693            None
27694        }
27695    }
27696    #[inline]
27697    fn syntax(&self) -> &SyntaxNode {
27698        &self.syntax
27699    }
27700}
27701impl AstNode for PathSegment {
27702    #[inline]
27703    fn can_cast(kind: SyntaxKind) -> bool {
27704        kind == SyntaxKind::PATH_SEGMENT
27705    }
27706    #[inline]
27707    fn cast(syntax: SyntaxNode) -> Option<Self> {
27708        if Self::can_cast(syntax.kind()) {
27709            Some(Self { syntax })
27710        } else {
27711            None
27712        }
27713    }
27714    #[inline]
27715    fn syntax(&self) -> &SyntaxNode {
27716        &self.syntax
27717    }
27718}
27719impl AstNode for PathType {
27720    #[inline]
27721    fn can_cast(kind: SyntaxKind) -> bool {
27722        kind == SyntaxKind::PATH_TYPE
27723    }
27724    #[inline]
27725    fn cast(syntax: SyntaxNode) -> Option<Self> {
27726        if Self::can_cast(syntax.kind()) {
27727            Some(Self { syntax })
27728        } else {
27729            None
27730        }
27731    }
27732    #[inline]
27733    fn syntax(&self) -> &SyntaxNode {
27734        &self.syntax
27735    }
27736}
27737impl AstNode for PercentType {
27738    #[inline]
27739    fn can_cast(kind: SyntaxKind) -> bool {
27740        kind == SyntaxKind::PERCENT_TYPE
27741    }
27742    #[inline]
27743    fn cast(syntax: SyntaxNode) -> Option<Self> {
27744        if Self::can_cast(syntax.kind()) {
27745            Some(Self { syntax })
27746        } else {
27747            None
27748        }
27749    }
27750    #[inline]
27751    fn syntax(&self) -> &SyntaxNode {
27752        &self.syntax
27753    }
27754}
27755impl AstNode for PercentTypeClause {
27756    #[inline]
27757    fn can_cast(kind: SyntaxKind) -> bool {
27758        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
27759    }
27760    #[inline]
27761    fn cast(syntax: SyntaxNode) -> Option<Self> {
27762        if Self::can_cast(syntax.kind()) {
27763            Some(Self { syntax })
27764        } else {
27765            None
27766        }
27767    }
27768    #[inline]
27769    fn syntax(&self) -> &SyntaxNode {
27770        &self.syntax
27771    }
27772}
27773impl AstNode for PositionFn {
27774    #[inline]
27775    fn can_cast(kind: SyntaxKind) -> bool {
27776        kind == SyntaxKind::POSITION_FN
27777    }
27778    #[inline]
27779    fn cast(syntax: SyntaxNode) -> Option<Self> {
27780        if Self::can_cast(syntax.kind()) {
27781            Some(Self { syntax })
27782        } else {
27783            None
27784        }
27785    }
27786    #[inline]
27787    fn syntax(&self) -> &SyntaxNode {
27788        &self.syntax
27789    }
27790}
27791impl AstNode for PostfixExpr {
27792    #[inline]
27793    fn can_cast(kind: SyntaxKind) -> bool {
27794        kind == SyntaxKind::POSTFIX_EXPR
27795    }
27796    #[inline]
27797    fn cast(syntax: SyntaxNode) -> Option<Self> {
27798        if Self::can_cast(syntax.kind()) {
27799            Some(Self { syntax })
27800        } else {
27801            None
27802        }
27803    }
27804    #[inline]
27805    fn syntax(&self) -> &SyntaxNode {
27806        &self.syntax
27807    }
27808}
27809impl AstNode for PrefixExpr {
27810    #[inline]
27811    fn can_cast(kind: SyntaxKind) -> bool {
27812        kind == SyntaxKind::PREFIX_EXPR
27813    }
27814    #[inline]
27815    fn cast(syntax: SyntaxNode) -> Option<Self> {
27816        if Self::can_cast(syntax.kind()) {
27817            Some(Self { syntax })
27818        } else {
27819            None
27820        }
27821    }
27822    #[inline]
27823    fn syntax(&self) -> &SyntaxNode {
27824        &self.syntax
27825    }
27826}
27827impl AstNode for Prepare {
27828    #[inline]
27829    fn can_cast(kind: SyntaxKind) -> bool {
27830        kind == SyntaxKind::PREPARE
27831    }
27832    #[inline]
27833    fn cast(syntax: SyntaxNode) -> Option<Self> {
27834        if Self::can_cast(syntax.kind()) {
27835            Some(Self { syntax })
27836        } else {
27837            None
27838        }
27839    }
27840    #[inline]
27841    fn syntax(&self) -> &SyntaxNode {
27842        &self.syntax
27843    }
27844}
27845impl AstNode for PrepareTransaction {
27846    #[inline]
27847    fn can_cast(kind: SyntaxKind) -> bool {
27848        kind == SyntaxKind::PREPARE_TRANSACTION
27849    }
27850    #[inline]
27851    fn cast(syntax: SyntaxNode) -> Option<Self> {
27852        if Self::can_cast(syntax.kind()) {
27853            Some(Self { syntax })
27854        } else {
27855            None
27856        }
27857    }
27858    #[inline]
27859    fn syntax(&self) -> &SyntaxNode {
27860        &self.syntax
27861    }
27862}
27863impl AstNode for PreserveRows {
27864    #[inline]
27865    fn can_cast(kind: SyntaxKind) -> bool {
27866        kind == SyntaxKind::PRESERVE_ROWS
27867    }
27868    #[inline]
27869    fn cast(syntax: SyntaxNode) -> Option<Self> {
27870        if Self::can_cast(syntax.kind()) {
27871            Some(Self { syntax })
27872        } else {
27873            None
27874        }
27875    }
27876    #[inline]
27877    fn syntax(&self) -> &SyntaxNode {
27878        &self.syntax
27879    }
27880}
27881impl AstNode for PrimaryKeyConstraint {
27882    #[inline]
27883    fn can_cast(kind: SyntaxKind) -> bool {
27884        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
27885    }
27886    #[inline]
27887    fn cast(syntax: SyntaxNode) -> Option<Self> {
27888        if Self::can_cast(syntax.kind()) {
27889            Some(Self { syntax })
27890        } else {
27891            None
27892        }
27893    }
27894    #[inline]
27895    fn syntax(&self) -> &SyntaxNode {
27896        &self.syntax
27897    }
27898}
27899impl AstNode for PrivilegeTarget {
27900    #[inline]
27901    fn can_cast(kind: SyntaxKind) -> bool {
27902        kind == SyntaxKind::PRIVILEGE_TARGET
27903    }
27904    #[inline]
27905    fn cast(syntax: SyntaxNode) -> Option<Self> {
27906        if Self::can_cast(syntax.kind()) {
27907            Some(Self { syntax })
27908        } else {
27909            None
27910        }
27911    }
27912    #[inline]
27913    fn syntax(&self) -> &SyntaxNode {
27914        &self.syntax
27915    }
27916}
27917impl AstNode for Privileges {
27918    #[inline]
27919    fn can_cast(kind: SyntaxKind) -> bool {
27920        kind == SyntaxKind::PRIVILEGES
27921    }
27922    #[inline]
27923    fn cast(syntax: SyntaxNode) -> Option<Self> {
27924        if Self::can_cast(syntax.kind()) {
27925            Some(Self { syntax })
27926        } else {
27927            None
27928        }
27929    }
27930    #[inline]
27931    fn syntax(&self) -> &SyntaxNode {
27932        &self.syntax
27933    }
27934}
27935impl AstNode for PropertiesList {
27936    #[inline]
27937    fn can_cast(kind: SyntaxKind) -> bool {
27938        kind == SyntaxKind::PROPERTIES_LIST
27939    }
27940    #[inline]
27941    fn cast(syntax: SyntaxNode) -> Option<Self> {
27942        if Self::can_cast(syntax.kind()) {
27943            Some(Self { syntax })
27944        } else {
27945            None
27946        }
27947    }
27948    #[inline]
27949    fn syntax(&self) -> &SyntaxNode {
27950        &self.syntax
27951    }
27952}
27953impl AstNode for PublicationObject {
27954    #[inline]
27955    fn can_cast(kind: SyntaxKind) -> bool {
27956        kind == SyntaxKind::PUBLICATION_OBJECT
27957    }
27958    #[inline]
27959    fn cast(syntax: SyntaxNode) -> Option<Self> {
27960        if Self::can_cast(syntax.kind()) {
27961            Some(Self { syntax })
27962        } else {
27963            None
27964        }
27965    }
27966    #[inline]
27967    fn syntax(&self) -> &SyntaxNode {
27968        &self.syntax
27969    }
27970}
27971impl AstNode for ReadCommitted {
27972    #[inline]
27973    fn can_cast(kind: SyntaxKind) -> bool {
27974        kind == SyntaxKind::READ_COMMITTED
27975    }
27976    #[inline]
27977    fn cast(syntax: SyntaxNode) -> Option<Self> {
27978        if Self::can_cast(syntax.kind()) {
27979            Some(Self { syntax })
27980        } else {
27981            None
27982        }
27983    }
27984    #[inline]
27985    fn syntax(&self) -> &SyntaxNode {
27986        &self.syntax
27987    }
27988}
27989impl AstNode for ReadOnly {
27990    #[inline]
27991    fn can_cast(kind: SyntaxKind) -> bool {
27992        kind == SyntaxKind::READ_ONLY
27993    }
27994    #[inline]
27995    fn cast(syntax: SyntaxNode) -> Option<Self> {
27996        if Self::can_cast(syntax.kind()) {
27997            Some(Self { syntax })
27998        } else {
27999            None
28000        }
28001    }
28002    #[inline]
28003    fn syntax(&self) -> &SyntaxNode {
28004        &self.syntax
28005    }
28006}
28007impl AstNode for ReadUncommitted {
28008    #[inline]
28009    fn can_cast(kind: SyntaxKind) -> bool {
28010        kind == SyntaxKind::READ_UNCOMMITTED
28011    }
28012    #[inline]
28013    fn cast(syntax: SyntaxNode) -> Option<Self> {
28014        if Self::can_cast(syntax.kind()) {
28015            Some(Self { syntax })
28016        } else {
28017            None
28018        }
28019    }
28020    #[inline]
28021    fn syntax(&self) -> &SyntaxNode {
28022        &self.syntax
28023    }
28024}
28025impl AstNode for ReadWrite {
28026    #[inline]
28027    fn can_cast(kind: SyntaxKind) -> bool {
28028        kind == SyntaxKind::READ_WRITE
28029    }
28030    #[inline]
28031    fn cast(syntax: SyntaxNode) -> Option<Self> {
28032        if Self::can_cast(syntax.kind()) {
28033            Some(Self { syntax })
28034        } else {
28035            None
28036        }
28037    }
28038    #[inline]
28039    fn syntax(&self) -> &SyntaxNode {
28040        &self.syntax
28041    }
28042}
28043impl AstNode for Reassign {
28044    #[inline]
28045    fn can_cast(kind: SyntaxKind) -> bool {
28046        kind == SyntaxKind::REASSIGN
28047    }
28048    #[inline]
28049    fn cast(syntax: SyntaxNode) -> Option<Self> {
28050        if Self::can_cast(syntax.kind()) {
28051            Some(Self { syntax })
28052        } else {
28053            None
28054        }
28055    }
28056    #[inline]
28057    fn syntax(&self) -> &SyntaxNode {
28058        &self.syntax
28059    }
28060}
28061impl AstNode for ReferencesConstraint {
28062    #[inline]
28063    fn can_cast(kind: SyntaxKind) -> bool {
28064        kind == SyntaxKind::REFERENCES_CONSTRAINT
28065    }
28066    #[inline]
28067    fn cast(syntax: SyntaxNode) -> Option<Self> {
28068        if Self::can_cast(syntax.kind()) {
28069            Some(Self { syntax })
28070        } else {
28071            None
28072        }
28073    }
28074    #[inline]
28075    fn syntax(&self) -> &SyntaxNode {
28076        &self.syntax
28077    }
28078}
28079impl AstNode for Referencing {
28080    #[inline]
28081    fn can_cast(kind: SyntaxKind) -> bool {
28082        kind == SyntaxKind::REFERENCING
28083    }
28084    #[inline]
28085    fn cast(syntax: SyntaxNode) -> Option<Self> {
28086        if Self::can_cast(syntax.kind()) {
28087            Some(Self { syntax })
28088        } else {
28089            None
28090        }
28091    }
28092    #[inline]
28093    fn syntax(&self) -> &SyntaxNode {
28094        &self.syntax
28095    }
28096}
28097impl AstNode for ReferencingTable {
28098    #[inline]
28099    fn can_cast(kind: SyntaxKind) -> bool {
28100        kind == SyntaxKind::REFERENCING_TABLE
28101    }
28102    #[inline]
28103    fn cast(syntax: SyntaxNode) -> Option<Self> {
28104        if Self::can_cast(syntax.kind()) {
28105            Some(Self { syntax })
28106        } else {
28107            None
28108        }
28109    }
28110    #[inline]
28111    fn syntax(&self) -> &SyntaxNode {
28112        &self.syntax
28113    }
28114}
28115impl AstNode for Refresh {
28116    #[inline]
28117    fn can_cast(kind: SyntaxKind) -> bool {
28118        kind == SyntaxKind::REFRESH
28119    }
28120    #[inline]
28121    fn cast(syntax: SyntaxNode) -> Option<Self> {
28122        if Self::can_cast(syntax.kind()) {
28123            Some(Self { syntax })
28124        } else {
28125            None
28126        }
28127    }
28128    #[inline]
28129    fn syntax(&self) -> &SyntaxNode {
28130        &self.syntax
28131    }
28132}
28133impl AstNode for RefreshCollationVersion {
28134    #[inline]
28135    fn can_cast(kind: SyntaxKind) -> bool {
28136        kind == SyntaxKind::REFRESH_COLLATION_VERSION
28137    }
28138    #[inline]
28139    fn cast(syntax: SyntaxNode) -> Option<Self> {
28140        if Self::can_cast(syntax.kind()) {
28141            Some(Self { syntax })
28142        } else {
28143            None
28144        }
28145    }
28146    #[inline]
28147    fn syntax(&self) -> &SyntaxNode {
28148        &self.syntax
28149    }
28150}
28151impl AstNode for RefreshVersion {
28152    #[inline]
28153    fn can_cast(kind: SyntaxKind) -> bool {
28154        kind == SyntaxKind::REFRESH_VERSION
28155    }
28156    #[inline]
28157    fn cast(syntax: SyntaxNode) -> Option<Self> {
28158        if Self::can_cast(syntax.kind()) {
28159            Some(Self { syntax })
28160        } else {
28161            None
28162        }
28163    }
28164    #[inline]
28165    fn syntax(&self) -> &SyntaxNode {
28166        &self.syntax
28167    }
28168}
28169impl AstNode for Reindex {
28170    #[inline]
28171    fn can_cast(kind: SyntaxKind) -> bool {
28172        kind == SyntaxKind::REINDEX
28173    }
28174    #[inline]
28175    fn cast(syntax: SyntaxNode) -> Option<Self> {
28176        if Self::can_cast(syntax.kind()) {
28177            Some(Self { syntax })
28178        } else {
28179            None
28180        }
28181    }
28182    #[inline]
28183    fn syntax(&self) -> &SyntaxNode {
28184        &self.syntax
28185    }
28186}
28187impl AstNode for RelationName {
28188    #[inline]
28189    fn can_cast(kind: SyntaxKind) -> bool {
28190        kind == SyntaxKind::RELATION_NAME
28191    }
28192    #[inline]
28193    fn cast(syntax: SyntaxNode) -> Option<Self> {
28194        if Self::can_cast(syntax.kind()) {
28195            Some(Self { syntax })
28196        } else {
28197            None
28198        }
28199    }
28200    #[inline]
28201    fn syntax(&self) -> &SyntaxNode {
28202        &self.syntax
28203    }
28204}
28205impl AstNode for ReleaseSavepoint {
28206    #[inline]
28207    fn can_cast(kind: SyntaxKind) -> bool {
28208        kind == SyntaxKind::RELEASE_SAVEPOINT
28209    }
28210    #[inline]
28211    fn cast(syntax: SyntaxNode) -> Option<Self> {
28212        if Self::can_cast(syntax.kind()) {
28213            Some(Self { syntax })
28214        } else {
28215            None
28216        }
28217    }
28218    #[inline]
28219    fn syntax(&self) -> &SyntaxNode {
28220        &self.syntax
28221    }
28222}
28223impl AstNode for RenameAttribute {
28224    #[inline]
28225    fn can_cast(kind: SyntaxKind) -> bool {
28226        kind == SyntaxKind::RENAME_ATTRIBUTE
28227    }
28228    #[inline]
28229    fn cast(syntax: SyntaxNode) -> Option<Self> {
28230        if Self::can_cast(syntax.kind()) {
28231            Some(Self { syntax })
28232        } else {
28233            None
28234        }
28235    }
28236    #[inline]
28237    fn syntax(&self) -> &SyntaxNode {
28238        &self.syntax
28239    }
28240}
28241impl AstNode for RenameColumn {
28242    #[inline]
28243    fn can_cast(kind: SyntaxKind) -> bool {
28244        kind == SyntaxKind::RENAME_COLUMN
28245    }
28246    #[inline]
28247    fn cast(syntax: SyntaxNode) -> Option<Self> {
28248        if Self::can_cast(syntax.kind()) {
28249            Some(Self { syntax })
28250        } else {
28251            None
28252        }
28253    }
28254    #[inline]
28255    fn syntax(&self) -> &SyntaxNode {
28256        &self.syntax
28257    }
28258}
28259impl AstNode for RenameConstraint {
28260    #[inline]
28261    fn can_cast(kind: SyntaxKind) -> bool {
28262        kind == SyntaxKind::RENAME_CONSTRAINT
28263    }
28264    #[inline]
28265    fn cast(syntax: SyntaxNode) -> Option<Self> {
28266        if Self::can_cast(syntax.kind()) {
28267            Some(Self { syntax })
28268        } else {
28269            None
28270        }
28271    }
28272    #[inline]
28273    fn syntax(&self) -> &SyntaxNode {
28274        &self.syntax
28275    }
28276}
28277impl AstNode for RenameTo {
28278    #[inline]
28279    fn can_cast(kind: SyntaxKind) -> bool {
28280        kind == SyntaxKind::RENAME_TO
28281    }
28282    #[inline]
28283    fn cast(syntax: SyntaxNode) -> Option<Self> {
28284        if Self::can_cast(syntax.kind()) {
28285            Some(Self { syntax })
28286        } else {
28287            None
28288        }
28289    }
28290    #[inline]
28291    fn syntax(&self) -> &SyntaxNode {
28292        &self.syntax
28293    }
28294}
28295impl AstNode for RenameValue {
28296    #[inline]
28297    fn can_cast(kind: SyntaxKind) -> bool {
28298        kind == SyntaxKind::RENAME_VALUE
28299    }
28300    #[inline]
28301    fn cast(syntax: SyntaxNode) -> Option<Self> {
28302        if Self::can_cast(syntax.kind()) {
28303            Some(Self { syntax })
28304        } else {
28305            None
28306        }
28307    }
28308    #[inline]
28309    fn syntax(&self) -> &SyntaxNode {
28310        &self.syntax
28311    }
28312}
28313impl AstNode for Repack {
28314    #[inline]
28315    fn can_cast(kind: SyntaxKind) -> bool {
28316        kind == SyntaxKind::REPACK
28317    }
28318    #[inline]
28319    fn cast(syntax: SyntaxNode) -> Option<Self> {
28320        if Self::can_cast(syntax.kind()) {
28321            Some(Self { syntax })
28322        } else {
28323            None
28324        }
28325    }
28326    #[inline]
28327    fn syntax(&self) -> &SyntaxNode {
28328        &self.syntax
28329    }
28330}
28331impl AstNode for RepeatableClause {
28332    #[inline]
28333    fn can_cast(kind: SyntaxKind) -> bool {
28334        kind == SyntaxKind::REPEATABLE_CLAUSE
28335    }
28336    #[inline]
28337    fn cast(syntax: SyntaxNode) -> Option<Self> {
28338        if Self::can_cast(syntax.kind()) {
28339            Some(Self { syntax })
28340        } else {
28341            None
28342        }
28343    }
28344    #[inline]
28345    fn syntax(&self) -> &SyntaxNode {
28346        &self.syntax
28347    }
28348}
28349impl AstNode for RepeatableRead {
28350    #[inline]
28351    fn can_cast(kind: SyntaxKind) -> bool {
28352        kind == SyntaxKind::REPEATABLE_READ
28353    }
28354    #[inline]
28355    fn cast(syntax: SyntaxNode) -> Option<Self> {
28356        if Self::can_cast(syntax.kind()) {
28357            Some(Self { syntax })
28358        } else {
28359            None
28360        }
28361    }
28362    #[inline]
28363    fn syntax(&self) -> &SyntaxNode {
28364        &self.syntax
28365    }
28366}
28367impl AstNode for ReplicaIdentity {
28368    #[inline]
28369    fn can_cast(kind: SyntaxKind) -> bool {
28370        kind == SyntaxKind::REPLICA_IDENTITY
28371    }
28372    #[inline]
28373    fn cast(syntax: SyntaxNode) -> Option<Self> {
28374        if Self::can_cast(syntax.kind()) {
28375            Some(Self { syntax })
28376        } else {
28377            None
28378        }
28379    }
28380    #[inline]
28381    fn syntax(&self) -> &SyntaxNode {
28382        &self.syntax
28383    }
28384}
28385impl AstNode for Reset {
28386    #[inline]
28387    fn can_cast(kind: SyntaxKind) -> bool {
28388        kind == SyntaxKind::RESET
28389    }
28390    #[inline]
28391    fn cast(syntax: SyntaxNode) -> Option<Self> {
28392        if Self::can_cast(syntax.kind()) {
28393            Some(Self { syntax })
28394        } else {
28395            None
28396        }
28397    }
28398    #[inline]
28399    fn syntax(&self) -> &SyntaxNode {
28400        &self.syntax
28401    }
28402}
28403impl AstNode for ResetConfigParam {
28404    #[inline]
28405    fn can_cast(kind: SyntaxKind) -> bool {
28406        kind == SyntaxKind::RESET_CONFIG_PARAM
28407    }
28408    #[inline]
28409    fn cast(syntax: SyntaxNode) -> Option<Self> {
28410        if Self::can_cast(syntax.kind()) {
28411            Some(Self { syntax })
28412        } else {
28413            None
28414        }
28415    }
28416    #[inline]
28417    fn syntax(&self) -> &SyntaxNode {
28418        &self.syntax
28419    }
28420}
28421impl AstNode for ResetFuncOption {
28422    #[inline]
28423    fn can_cast(kind: SyntaxKind) -> bool {
28424        kind == SyntaxKind::RESET_FUNC_OPTION
28425    }
28426    #[inline]
28427    fn cast(syntax: SyntaxNode) -> Option<Self> {
28428        if Self::can_cast(syntax.kind()) {
28429            Some(Self { syntax })
28430        } else {
28431            None
28432        }
28433    }
28434    #[inline]
28435    fn syntax(&self) -> &SyntaxNode {
28436        &self.syntax
28437    }
28438}
28439impl AstNode for ResetOptions {
28440    #[inline]
28441    fn can_cast(kind: SyntaxKind) -> bool {
28442        kind == SyntaxKind::RESET_OPTIONS
28443    }
28444    #[inline]
28445    fn cast(syntax: SyntaxNode) -> Option<Self> {
28446        if Self::can_cast(syntax.kind()) {
28447            Some(Self { syntax })
28448        } else {
28449            None
28450        }
28451    }
28452    #[inline]
28453    fn syntax(&self) -> &SyntaxNode {
28454        &self.syntax
28455    }
28456}
28457impl AstNode for ResetSessionAuth {
28458    #[inline]
28459    fn can_cast(kind: SyntaxKind) -> bool {
28460        kind == SyntaxKind::RESET_SESSION_AUTH
28461    }
28462    #[inline]
28463    fn cast(syntax: SyntaxNode) -> Option<Self> {
28464        if Self::can_cast(syntax.kind()) {
28465            Some(Self { syntax })
28466        } else {
28467            None
28468        }
28469    }
28470    #[inline]
28471    fn syntax(&self) -> &SyntaxNode {
28472        &self.syntax
28473    }
28474}
28475impl AstNode for Restart {
28476    #[inline]
28477    fn can_cast(kind: SyntaxKind) -> bool {
28478        kind == SyntaxKind::RESTART
28479    }
28480    #[inline]
28481    fn cast(syntax: SyntaxNode) -> Option<Self> {
28482        if Self::can_cast(syntax.kind()) {
28483            Some(Self { syntax })
28484        } else {
28485            None
28486        }
28487    }
28488    #[inline]
28489    fn syntax(&self) -> &SyntaxNode {
28490        &self.syntax
28491    }
28492}
28493impl AstNode for Restrict {
28494    #[inline]
28495    fn can_cast(kind: SyntaxKind) -> bool {
28496        kind == SyntaxKind::RESTRICT
28497    }
28498    #[inline]
28499    fn cast(syntax: SyntaxNode) -> Option<Self> {
28500        if Self::can_cast(syntax.kind()) {
28501            Some(Self { syntax })
28502        } else {
28503            None
28504        }
28505    }
28506    #[inline]
28507    fn syntax(&self) -> &SyntaxNode {
28508        &self.syntax
28509    }
28510}
28511impl AstNode for RetType {
28512    #[inline]
28513    fn can_cast(kind: SyntaxKind) -> bool {
28514        kind == SyntaxKind::RET_TYPE
28515    }
28516    #[inline]
28517    fn cast(syntax: SyntaxNode) -> Option<Self> {
28518        if Self::can_cast(syntax.kind()) {
28519            Some(Self { syntax })
28520        } else {
28521            None
28522        }
28523    }
28524    #[inline]
28525    fn syntax(&self) -> &SyntaxNode {
28526        &self.syntax
28527    }
28528}
28529impl AstNode for ReturnFuncOption {
28530    #[inline]
28531    fn can_cast(kind: SyntaxKind) -> bool {
28532        kind == SyntaxKind::RETURN_FUNC_OPTION
28533    }
28534    #[inline]
28535    fn cast(syntax: SyntaxNode) -> Option<Self> {
28536        if Self::can_cast(syntax.kind()) {
28537            Some(Self { syntax })
28538        } else {
28539            None
28540        }
28541    }
28542    #[inline]
28543    fn syntax(&self) -> &SyntaxNode {
28544        &self.syntax
28545    }
28546}
28547impl AstNode for ReturningClause {
28548    #[inline]
28549    fn can_cast(kind: SyntaxKind) -> bool {
28550        kind == SyntaxKind::RETURNING_CLAUSE
28551    }
28552    #[inline]
28553    fn cast(syntax: SyntaxNode) -> Option<Self> {
28554        if Self::can_cast(syntax.kind()) {
28555            Some(Self { syntax })
28556        } else {
28557            None
28558        }
28559    }
28560    #[inline]
28561    fn syntax(&self) -> &SyntaxNode {
28562        &self.syntax
28563    }
28564}
28565impl AstNode for ReturningOption {
28566    #[inline]
28567    fn can_cast(kind: SyntaxKind) -> bool {
28568        kind == SyntaxKind::RETURNING_OPTION
28569    }
28570    #[inline]
28571    fn cast(syntax: SyntaxNode) -> Option<Self> {
28572        if Self::can_cast(syntax.kind()) {
28573            Some(Self { syntax })
28574        } else {
28575            None
28576        }
28577    }
28578    #[inline]
28579    fn syntax(&self) -> &SyntaxNode {
28580        &self.syntax
28581    }
28582}
28583impl AstNode for ReturningOptionList {
28584    #[inline]
28585    fn can_cast(kind: SyntaxKind) -> bool {
28586        kind == SyntaxKind::RETURNING_OPTION_LIST
28587    }
28588    #[inline]
28589    fn cast(syntax: SyntaxNode) -> Option<Self> {
28590        if Self::can_cast(syntax.kind()) {
28591            Some(Self { syntax })
28592        } else {
28593            None
28594        }
28595    }
28596    #[inline]
28597    fn syntax(&self) -> &SyntaxNode {
28598        &self.syntax
28599    }
28600}
28601impl AstNode for Revoke {
28602    #[inline]
28603    fn can_cast(kind: SyntaxKind) -> bool {
28604        kind == SyntaxKind::REVOKE
28605    }
28606    #[inline]
28607    fn cast(syntax: SyntaxNode) -> Option<Self> {
28608        if Self::can_cast(syntax.kind()) {
28609            Some(Self { syntax })
28610        } else {
28611            None
28612        }
28613    }
28614    #[inline]
28615    fn syntax(&self) -> &SyntaxNode {
28616        &self.syntax
28617    }
28618}
28619impl AstNode for RevokeCommand {
28620    #[inline]
28621    fn can_cast(kind: SyntaxKind) -> bool {
28622        kind == SyntaxKind::REVOKE_COMMAND
28623    }
28624    #[inline]
28625    fn cast(syntax: SyntaxNode) -> Option<Self> {
28626        if Self::can_cast(syntax.kind()) {
28627            Some(Self { syntax })
28628        } else {
28629            None
28630        }
28631    }
28632    #[inline]
28633    fn syntax(&self) -> &SyntaxNode {
28634        &self.syntax
28635    }
28636}
28637impl AstNode for RevokeCommandList {
28638    #[inline]
28639    fn can_cast(kind: SyntaxKind) -> bool {
28640        kind == SyntaxKind::REVOKE_COMMAND_LIST
28641    }
28642    #[inline]
28643    fn cast(syntax: SyntaxNode) -> Option<Self> {
28644        if Self::can_cast(syntax.kind()) {
28645            Some(Self { syntax })
28646        } else {
28647            None
28648        }
28649    }
28650    #[inline]
28651    fn syntax(&self) -> &SyntaxNode {
28652        &self.syntax
28653    }
28654}
28655impl AstNode for RevokeDefaultPrivileges {
28656    #[inline]
28657    fn can_cast(kind: SyntaxKind) -> bool {
28658        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
28659    }
28660    #[inline]
28661    fn cast(syntax: SyntaxNode) -> Option<Self> {
28662        if Self::can_cast(syntax.kind()) {
28663            Some(Self { syntax })
28664        } else {
28665            None
28666        }
28667    }
28668    #[inline]
28669    fn syntax(&self) -> &SyntaxNode {
28670        &self.syntax
28671    }
28672}
28673impl AstNode for Role {
28674    #[inline]
28675    fn can_cast(kind: SyntaxKind) -> bool {
28676        kind == SyntaxKind::ROLE
28677    }
28678    #[inline]
28679    fn cast(syntax: SyntaxNode) -> Option<Self> {
28680        if Self::can_cast(syntax.kind()) {
28681            Some(Self { syntax })
28682        } else {
28683            None
28684        }
28685    }
28686    #[inline]
28687    fn syntax(&self) -> &SyntaxNode {
28688        &self.syntax
28689    }
28690}
28691impl AstNode for RoleOption {
28692    #[inline]
28693    fn can_cast(kind: SyntaxKind) -> bool {
28694        kind == SyntaxKind::ROLE_OPTION
28695    }
28696    #[inline]
28697    fn cast(syntax: SyntaxNode) -> Option<Self> {
28698        if Self::can_cast(syntax.kind()) {
28699            Some(Self { syntax })
28700        } else {
28701            None
28702        }
28703    }
28704    #[inline]
28705    fn syntax(&self) -> &SyntaxNode {
28706        &self.syntax
28707    }
28708}
28709impl AstNode for RoleOptionList {
28710    #[inline]
28711    fn can_cast(kind: SyntaxKind) -> bool {
28712        kind == SyntaxKind::ROLE_OPTION_LIST
28713    }
28714    #[inline]
28715    fn cast(syntax: SyntaxNode) -> Option<Self> {
28716        if Self::can_cast(syntax.kind()) {
28717            Some(Self { syntax })
28718        } else {
28719            None
28720        }
28721    }
28722    #[inline]
28723    fn syntax(&self) -> &SyntaxNode {
28724        &self.syntax
28725    }
28726}
28727impl AstNode for RoleRef {
28728    #[inline]
28729    fn can_cast(kind: SyntaxKind) -> bool {
28730        kind == SyntaxKind::ROLE_REF
28731    }
28732    #[inline]
28733    fn cast(syntax: SyntaxNode) -> Option<Self> {
28734        if Self::can_cast(syntax.kind()) {
28735            Some(Self { syntax })
28736        } else {
28737            None
28738        }
28739    }
28740    #[inline]
28741    fn syntax(&self) -> &SyntaxNode {
28742        &self.syntax
28743    }
28744}
28745impl AstNode for RoleRefList {
28746    #[inline]
28747    fn can_cast(kind: SyntaxKind) -> bool {
28748        kind == SyntaxKind::ROLE_REF_LIST
28749    }
28750    #[inline]
28751    fn cast(syntax: SyntaxNode) -> Option<Self> {
28752        if Self::can_cast(syntax.kind()) {
28753            Some(Self { syntax })
28754        } else {
28755            None
28756        }
28757    }
28758    #[inline]
28759    fn syntax(&self) -> &SyntaxNode {
28760        &self.syntax
28761    }
28762}
28763impl AstNode for Rollback {
28764    #[inline]
28765    fn can_cast(kind: SyntaxKind) -> bool {
28766        kind == SyntaxKind::ROLLBACK
28767    }
28768    #[inline]
28769    fn cast(syntax: SyntaxNode) -> Option<Self> {
28770        if Self::can_cast(syntax.kind()) {
28771            Some(Self { syntax })
28772        } else {
28773            None
28774        }
28775    }
28776    #[inline]
28777    fn syntax(&self) -> &SyntaxNode {
28778        &self.syntax
28779    }
28780}
28781impl AstNode for Row {
28782    #[inline]
28783    fn can_cast(kind: SyntaxKind) -> bool {
28784        kind == SyntaxKind::ROW
28785    }
28786    #[inline]
28787    fn cast(syntax: SyntaxNode) -> Option<Self> {
28788        if Self::can_cast(syntax.kind()) {
28789            Some(Self { syntax })
28790        } else {
28791            None
28792        }
28793    }
28794    #[inline]
28795    fn syntax(&self) -> &SyntaxNode {
28796        &self.syntax
28797    }
28798}
28799impl AstNode for RowList {
28800    #[inline]
28801    fn can_cast(kind: SyntaxKind) -> bool {
28802        kind == SyntaxKind::ROW_LIST
28803    }
28804    #[inline]
28805    fn cast(syntax: SyntaxNode) -> Option<Self> {
28806        if Self::can_cast(syntax.kind()) {
28807            Some(Self { syntax })
28808        } else {
28809            None
28810        }
28811    }
28812    #[inline]
28813    fn syntax(&self) -> &SyntaxNode {
28814        &self.syntax
28815    }
28816}
28817impl AstNode for RowsFuncOption {
28818    #[inline]
28819    fn can_cast(kind: SyntaxKind) -> bool {
28820        kind == SyntaxKind::ROWS_FUNC_OPTION
28821    }
28822    #[inline]
28823    fn cast(syntax: SyntaxNode) -> Option<Self> {
28824        if Self::can_cast(syntax.kind()) {
28825            Some(Self { syntax })
28826        } else {
28827            None
28828        }
28829    }
28830    #[inline]
28831    fn syntax(&self) -> &SyntaxNode {
28832        &self.syntax
28833    }
28834}
28835impl AstNode for Savepoint {
28836    #[inline]
28837    fn can_cast(kind: SyntaxKind) -> bool {
28838        kind == SyntaxKind::SAVEPOINT
28839    }
28840    #[inline]
28841    fn cast(syntax: SyntaxNode) -> Option<Self> {
28842        if Self::can_cast(syntax.kind()) {
28843            Some(Self { syntax })
28844        } else {
28845            None
28846        }
28847    }
28848    #[inline]
28849    fn syntax(&self) -> &SyntaxNode {
28850        &self.syntax
28851    }
28852}
28853impl AstNode for SecurityFuncOption {
28854    #[inline]
28855    fn can_cast(kind: SyntaxKind) -> bool {
28856        kind == SyntaxKind::SECURITY_FUNC_OPTION
28857    }
28858    #[inline]
28859    fn cast(syntax: SyntaxNode) -> Option<Self> {
28860        if Self::can_cast(syntax.kind()) {
28861            Some(Self { syntax })
28862        } else {
28863            None
28864        }
28865    }
28866    #[inline]
28867    fn syntax(&self) -> &SyntaxNode {
28868        &self.syntax
28869    }
28870}
28871impl AstNode for SecurityLabel {
28872    #[inline]
28873    fn can_cast(kind: SyntaxKind) -> bool {
28874        kind == SyntaxKind::SECURITY_LABEL
28875    }
28876    #[inline]
28877    fn cast(syntax: SyntaxNode) -> Option<Self> {
28878        if Self::can_cast(syntax.kind()) {
28879            Some(Self { syntax })
28880        } else {
28881            None
28882        }
28883    }
28884    #[inline]
28885    fn syntax(&self) -> &SyntaxNode {
28886        &self.syntax
28887    }
28888}
28889impl AstNode for Select {
28890    #[inline]
28891    fn can_cast(kind: SyntaxKind) -> bool {
28892        kind == SyntaxKind::SELECT
28893    }
28894    #[inline]
28895    fn cast(syntax: SyntaxNode) -> Option<Self> {
28896        if Self::can_cast(syntax.kind()) {
28897            Some(Self { syntax })
28898        } else {
28899            None
28900        }
28901    }
28902    #[inline]
28903    fn syntax(&self) -> &SyntaxNode {
28904        &self.syntax
28905    }
28906}
28907impl AstNode for SelectClause {
28908    #[inline]
28909    fn can_cast(kind: SyntaxKind) -> bool {
28910        kind == SyntaxKind::SELECT_CLAUSE
28911    }
28912    #[inline]
28913    fn cast(syntax: SyntaxNode) -> Option<Self> {
28914        if Self::can_cast(syntax.kind()) {
28915            Some(Self { syntax })
28916        } else {
28917            None
28918        }
28919    }
28920    #[inline]
28921    fn syntax(&self) -> &SyntaxNode {
28922        &self.syntax
28923    }
28924}
28925impl AstNode for SelectInto {
28926    #[inline]
28927    fn can_cast(kind: SyntaxKind) -> bool {
28928        kind == SyntaxKind::SELECT_INTO
28929    }
28930    #[inline]
28931    fn cast(syntax: SyntaxNode) -> Option<Self> {
28932        if Self::can_cast(syntax.kind()) {
28933            Some(Self { syntax })
28934        } else {
28935            None
28936        }
28937    }
28938    #[inline]
28939    fn syntax(&self) -> &SyntaxNode {
28940        &self.syntax
28941    }
28942}
28943impl AstNode for SequenceOption {
28944    #[inline]
28945    fn can_cast(kind: SyntaxKind) -> bool {
28946        kind == SyntaxKind::SEQUENCE_OPTION
28947    }
28948    #[inline]
28949    fn cast(syntax: SyntaxNode) -> Option<Self> {
28950        if Self::can_cast(syntax.kind()) {
28951            Some(Self { syntax })
28952        } else {
28953            None
28954        }
28955    }
28956    #[inline]
28957    fn syntax(&self) -> &SyntaxNode {
28958        &self.syntax
28959    }
28960}
28961impl AstNode for SequenceOptionList {
28962    #[inline]
28963    fn can_cast(kind: SyntaxKind) -> bool {
28964        kind == SyntaxKind::SEQUENCE_OPTION_LIST
28965    }
28966    #[inline]
28967    fn cast(syntax: SyntaxNode) -> Option<Self> {
28968        if Self::can_cast(syntax.kind()) {
28969            Some(Self { syntax })
28970        } else {
28971            None
28972        }
28973    }
28974    #[inline]
28975    fn syntax(&self) -> &SyntaxNode {
28976        &self.syntax
28977    }
28978}
28979impl AstNode for Serializable {
28980    #[inline]
28981    fn can_cast(kind: SyntaxKind) -> bool {
28982        kind == SyntaxKind::SERIALIZABLE
28983    }
28984    #[inline]
28985    fn cast(syntax: SyntaxNode) -> Option<Self> {
28986        if Self::can_cast(syntax.kind()) {
28987            Some(Self { syntax })
28988        } else {
28989            None
28990        }
28991    }
28992    #[inline]
28993    fn syntax(&self) -> &SyntaxNode {
28994        &self.syntax
28995    }
28996}
28997impl AstNode for ServerName {
28998    #[inline]
28999    fn can_cast(kind: SyntaxKind) -> bool {
29000        kind == SyntaxKind::SERVER_NAME
29001    }
29002    #[inline]
29003    fn cast(syntax: SyntaxNode) -> Option<Self> {
29004        if Self::can_cast(syntax.kind()) {
29005            Some(Self { syntax })
29006        } else {
29007            None
29008        }
29009    }
29010    #[inline]
29011    fn syntax(&self) -> &SyntaxNode {
29012        &self.syntax
29013    }
29014}
29015impl AstNode for Set {
29016    #[inline]
29017    fn can_cast(kind: SyntaxKind) -> bool {
29018        kind == SyntaxKind::SET
29019    }
29020    #[inline]
29021    fn cast(syntax: SyntaxNode) -> Option<Self> {
29022        if Self::can_cast(syntax.kind()) {
29023            Some(Self { syntax })
29024        } else {
29025            None
29026        }
29027    }
29028    #[inline]
29029    fn syntax(&self) -> &SyntaxNode {
29030        &self.syntax
29031    }
29032}
29033impl AstNode for SetAccessMethod {
29034    #[inline]
29035    fn can_cast(kind: SyntaxKind) -> bool {
29036        kind == SyntaxKind::SET_ACCESS_METHOD
29037    }
29038    #[inline]
29039    fn cast(syntax: SyntaxNode) -> Option<Self> {
29040        if Self::can_cast(syntax.kind()) {
29041            Some(Self { syntax })
29042        } else {
29043            None
29044        }
29045    }
29046    #[inline]
29047    fn syntax(&self) -> &SyntaxNode {
29048        &self.syntax
29049    }
29050}
29051impl AstNode for SetClause {
29052    #[inline]
29053    fn can_cast(kind: SyntaxKind) -> bool {
29054        kind == SyntaxKind::SET_CLAUSE
29055    }
29056    #[inline]
29057    fn cast(syntax: SyntaxNode) -> Option<Self> {
29058        if Self::can_cast(syntax.kind()) {
29059            Some(Self { syntax })
29060        } else {
29061            None
29062        }
29063    }
29064    #[inline]
29065    fn syntax(&self) -> &SyntaxNode {
29066        &self.syntax
29067    }
29068}
29069impl AstNode for SetColumnList {
29070    #[inline]
29071    fn can_cast(kind: SyntaxKind) -> bool {
29072        kind == SyntaxKind::SET_COLUMN_LIST
29073    }
29074    #[inline]
29075    fn cast(syntax: SyntaxNode) -> Option<Self> {
29076        if Self::can_cast(syntax.kind()) {
29077            Some(Self { syntax })
29078        } else {
29079            None
29080        }
29081    }
29082    #[inline]
29083    fn syntax(&self) -> &SyntaxNode {
29084        &self.syntax
29085    }
29086}
29087impl AstNode for SetCompression {
29088    #[inline]
29089    fn can_cast(kind: SyntaxKind) -> bool {
29090        kind == SyntaxKind::SET_COMPRESSION
29091    }
29092    #[inline]
29093    fn cast(syntax: SyntaxNode) -> Option<Self> {
29094        if Self::can_cast(syntax.kind()) {
29095            Some(Self { syntax })
29096        } else {
29097            None
29098        }
29099    }
29100    #[inline]
29101    fn syntax(&self) -> &SyntaxNode {
29102        &self.syntax
29103    }
29104}
29105impl AstNode for SetConfigParam {
29106    #[inline]
29107    fn can_cast(kind: SyntaxKind) -> bool {
29108        kind == SyntaxKind::SET_CONFIG_PARAM
29109    }
29110    #[inline]
29111    fn cast(syntax: SyntaxNode) -> Option<Self> {
29112        if Self::can_cast(syntax.kind()) {
29113            Some(Self { syntax })
29114        } else {
29115            None
29116        }
29117    }
29118    #[inline]
29119    fn syntax(&self) -> &SyntaxNode {
29120        &self.syntax
29121    }
29122}
29123impl AstNode for SetConstraints {
29124    #[inline]
29125    fn can_cast(kind: SyntaxKind) -> bool {
29126        kind == SyntaxKind::SET_CONSTRAINTS
29127    }
29128    #[inline]
29129    fn cast(syntax: SyntaxNode) -> Option<Self> {
29130        if Self::can_cast(syntax.kind()) {
29131            Some(Self { syntax })
29132        } else {
29133            None
29134        }
29135    }
29136    #[inline]
29137    fn syntax(&self) -> &SyntaxNode {
29138        &self.syntax
29139    }
29140}
29141impl AstNode for SetDefault {
29142    #[inline]
29143    fn can_cast(kind: SyntaxKind) -> bool {
29144        kind == SyntaxKind::SET_DEFAULT
29145    }
29146    #[inline]
29147    fn cast(syntax: SyntaxNode) -> Option<Self> {
29148        if Self::can_cast(syntax.kind()) {
29149            Some(Self { syntax })
29150        } else {
29151            None
29152        }
29153    }
29154    #[inline]
29155    fn syntax(&self) -> &SyntaxNode {
29156        &self.syntax
29157    }
29158}
29159impl AstNode for SetDefaultColumns {
29160    #[inline]
29161    fn can_cast(kind: SyntaxKind) -> bool {
29162        kind == SyntaxKind::SET_DEFAULT_COLUMNS
29163    }
29164    #[inline]
29165    fn cast(syntax: SyntaxNode) -> Option<Self> {
29166        if Self::can_cast(syntax.kind()) {
29167            Some(Self { syntax })
29168        } else {
29169            None
29170        }
29171    }
29172    #[inline]
29173    fn syntax(&self) -> &SyntaxNode {
29174        &self.syntax
29175    }
29176}
29177impl AstNode for SetExpr {
29178    #[inline]
29179    fn can_cast(kind: SyntaxKind) -> bool {
29180        kind == SyntaxKind::SET_EXPR
29181    }
29182    #[inline]
29183    fn cast(syntax: SyntaxNode) -> Option<Self> {
29184        if Self::can_cast(syntax.kind()) {
29185            Some(Self { syntax })
29186        } else {
29187            None
29188        }
29189    }
29190    #[inline]
29191    fn syntax(&self) -> &SyntaxNode {
29192        &self.syntax
29193    }
29194}
29195impl AstNode for SetExprList {
29196    #[inline]
29197    fn can_cast(kind: SyntaxKind) -> bool {
29198        kind == SyntaxKind::SET_EXPR_LIST
29199    }
29200    #[inline]
29201    fn cast(syntax: SyntaxNode) -> Option<Self> {
29202        if Self::can_cast(syntax.kind()) {
29203            Some(Self { syntax })
29204        } else {
29205            None
29206        }
29207    }
29208    #[inline]
29209    fn syntax(&self) -> &SyntaxNode {
29210        &self.syntax
29211    }
29212}
29213impl AstNode for SetExpression {
29214    #[inline]
29215    fn can_cast(kind: SyntaxKind) -> bool {
29216        kind == SyntaxKind::SET_EXPRESSION
29217    }
29218    #[inline]
29219    fn cast(syntax: SyntaxNode) -> Option<Self> {
29220        if Self::can_cast(syntax.kind()) {
29221            Some(Self { syntax })
29222        } else {
29223            None
29224        }
29225    }
29226    #[inline]
29227    fn syntax(&self) -> &SyntaxNode {
29228        &self.syntax
29229    }
29230}
29231impl AstNode for SetFuncOption {
29232    #[inline]
29233    fn can_cast(kind: SyntaxKind) -> bool {
29234        kind == SyntaxKind::SET_FUNC_OPTION
29235    }
29236    #[inline]
29237    fn cast(syntax: SyntaxNode) -> Option<Self> {
29238        if Self::can_cast(syntax.kind()) {
29239            Some(Self { syntax })
29240        } else {
29241            None
29242        }
29243    }
29244    #[inline]
29245    fn syntax(&self) -> &SyntaxNode {
29246        &self.syntax
29247    }
29248}
29249impl AstNode for SetGenerated {
29250    #[inline]
29251    fn can_cast(kind: SyntaxKind) -> bool {
29252        kind == SyntaxKind::SET_GENERATED
29253    }
29254    #[inline]
29255    fn cast(syntax: SyntaxNode) -> Option<Self> {
29256        if Self::can_cast(syntax.kind()) {
29257            Some(Self { syntax })
29258        } else {
29259            None
29260        }
29261    }
29262    #[inline]
29263    fn syntax(&self) -> &SyntaxNode {
29264        &self.syntax
29265    }
29266}
29267impl AstNode for SetGeneratedOptions {
29268    #[inline]
29269    fn can_cast(kind: SyntaxKind) -> bool {
29270        kind == SyntaxKind::SET_GENERATED_OPTIONS
29271    }
29272    #[inline]
29273    fn cast(syntax: SyntaxNode) -> Option<Self> {
29274        if Self::can_cast(syntax.kind()) {
29275            Some(Self { syntax })
29276        } else {
29277            None
29278        }
29279    }
29280    #[inline]
29281    fn syntax(&self) -> &SyntaxNode {
29282        &self.syntax
29283    }
29284}
29285impl AstNode for SetLogged {
29286    #[inline]
29287    fn can_cast(kind: SyntaxKind) -> bool {
29288        kind == SyntaxKind::SET_LOGGED
29289    }
29290    #[inline]
29291    fn cast(syntax: SyntaxNode) -> Option<Self> {
29292        if Self::can_cast(syntax.kind()) {
29293            Some(Self { syntax })
29294        } else {
29295            None
29296        }
29297    }
29298    #[inline]
29299    fn syntax(&self) -> &SyntaxNode {
29300        &self.syntax
29301    }
29302}
29303impl AstNode for SetMultipleColumns {
29304    #[inline]
29305    fn can_cast(kind: SyntaxKind) -> bool {
29306        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
29307    }
29308    #[inline]
29309    fn cast(syntax: SyntaxNode) -> Option<Self> {
29310        if Self::can_cast(syntax.kind()) {
29311            Some(Self { syntax })
29312        } else {
29313            None
29314        }
29315    }
29316    #[inline]
29317    fn syntax(&self) -> &SyntaxNode {
29318        &self.syntax
29319    }
29320}
29321impl AstNode for SetNotNull {
29322    #[inline]
29323    fn can_cast(kind: SyntaxKind) -> bool {
29324        kind == SyntaxKind::SET_NOT_NULL
29325    }
29326    #[inline]
29327    fn cast(syntax: SyntaxNode) -> Option<Self> {
29328        if Self::can_cast(syntax.kind()) {
29329            Some(Self { syntax })
29330        } else {
29331            None
29332        }
29333    }
29334    #[inline]
29335    fn syntax(&self) -> &SyntaxNode {
29336        &self.syntax
29337    }
29338}
29339impl AstNode for SetNullColumns {
29340    #[inline]
29341    fn can_cast(kind: SyntaxKind) -> bool {
29342        kind == SyntaxKind::SET_NULL_COLUMNS
29343    }
29344    #[inline]
29345    fn cast(syntax: SyntaxNode) -> Option<Self> {
29346        if Self::can_cast(syntax.kind()) {
29347            Some(Self { syntax })
29348        } else {
29349            None
29350        }
29351    }
29352    #[inline]
29353    fn syntax(&self) -> &SyntaxNode {
29354        &self.syntax
29355    }
29356}
29357impl AstNode for SetOptions {
29358    #[inline]
29359    fn can_cast(kind: SyntaxKind) -> bool {
29360        kind == SyntaxKind::SET_OPTIONS
29361    }
29362    #[inline]
29363    fn cast(syntax: SyntaxNode) -> Option<Self> {
29364        if Self::can_cast(syntax.kind()) {
29365            Some(Self { syntax })
29366        } else {
29367            None
29368        }
29369    }
29370    #[inline]
29371    fn syntax(&self) -> &SyntaxNode {
29372        &self.syntax
29373    }
29374}
29375impl AstNode for SetOptionsList {
29376    #[inline]
29377    fn can_cast(kind: SyntaxKind) -> bool {
29378        kind == SyntaxKind::SET_OPTIONS_LIST
29379    }
29380    #[inline]
29381    fn cast(syntax: SyntaxNode) -> Option<Self> {
29382        if Self::can_cast(syntax.kind()) {
29383            Some(Self { syntax })
29384        } else {
29385            None
29386        }
29387    }
29388    #[inline]
29389    fn syntax(&self) -> &SyntaxNode {
29390        &self.syntax
29391    }
29392}
29393impl AstNode for SetRole {
29394    #[inline]
29395    fn can_cast(kind: SyntaxKind) -> bool {
29396        kind == SyntaxKind::SET_ROLE
29397    }
29398    #[inline]
29399    fn cast(syntax: SyntaxNode) -> Option<Self> {
29400        if Self::can_cast(syntax.kind()) {
29401            Some(Self { syntax })
29402        } else {
29403            None
29404        }
29405    }
29406    #[inline]
29407    fn syntax(&self) -> &SyntaxNode {
29408        &self.syntax
29409    }
29410}
29411impl AstNode for SetSchema {
29412    #[inline]
29413    fn can_cast(kind: SyntaxKind) -> bool {
29414        kind == SyntaxKind::SET_SCHEMA
29415    }
29416    #[inline]
29417    fn cast(syntax: SyntaxNode) -> Option<Self> {
29418        if Self::can_cast(syntax.kind()) {
29419            Some(Self { syntax })
29420        } else {
29421            None
29422        }
29423    }
29424    #[inline]
29425    fn syntax(&self) -> &SyntaxNode {
29426        &self.syntax
29427    }
29428}
29429impl AstNode for SetSequenceOption {
29430    #[inline]
29431    fn can_cast(kind: SyntaxKind) -> bool {
29432        kind == SyntaxKind::SET_SEQUENCE_OPTION
29433    }
29434    #[inline]
29435    fn cast(syntax: SyntaxNode) -> Option<Self> {
29436        if Self::can_cast(syntax.kind()) {
29437            Some(Self { syntax })
29438        } else {
29439            None
29440        }
29441    }
29442    #[inline]
29443    fn syntax(&self) -> &SyntaxNode {
29444        &self.syntax
29445    }
29446}
29447impl AstNode for SetSessionAuth {
29448    #[inline]
29449    fn can_cast(kind: SyntaxKind) -> bool {
29450        kind == SyntaxKind::SET_SESSION_AUTH
29451    }
29452    #[inline]
29453    fn cast(syntax: SyntaxNode) -> Option<Self> {
29454        if Self::can_cast(syntax.kind()) {
29455            Some(Self { syntax })
29456        } else {
29457            None
29458        }
29459    }
29460    #[inline]
29461    fn syntax(&self) -> &SyntaxNode {
29462        &self.syntax
29463    }
29464}
29465impl AstNode for SetSingleColumn {
29466    #[inline]
29467    fn can_cast(kind: SyntaxKind) -> bool {
29468        kind == SyntaxKind::SET_SINGLE_COLUMN
29469    }
29470    #[inline]
29471    fn cast(syntax: SyntaxNode) -> Option<Self> {
29472        if Self::can_cast(syntax.kind()) {
29473            Some(Self { syntax })
29474        } else {
29475            None
29476        }
29477    }
29478    #[inline]
29479    fn syntax(&self) -> &SyntaxNode {
29480        &self.syntax
29481    }
29482}
29483impl AstNode for SetStatistics {
29484    #[inline]
29485    fn can_cast(kind: SyntaxKind) -> bool {
29486        kind == SyntaxKind::SET_STATISTICS
29487    }
29488    #[inline]
29489    fn cast(syntax: SyntaxNode) -> Option<Self> {
29490        if Self::can_cast(syntax.kind()) {
29491            Some(Self { syntax })
29492        } else {
29493            None
29494        }
29495    }
29496    #[inline]
29497    fn syntax(&self) -> &SyntaxNode {
29498        &self.syntax
29499    }
29500}
29501impl AstNode for SetStorage {
29502    #[inline]
29503    fn can_cast(kind: SyntaxKind) -> bool {
29504        kind == SyntaxKind::SET_STORAGE
29505    }
29506    #[inline]
29507    fn cast(syntax: SyntaxNode) -> Option<Self> {
29508        if Self::can_cast(syntax.kind()) {
29509            Some(Self { syntax })
29510        } else {
29511            None
29512        }
29513    }
29514    #[inline]
29515    fn syntax(&self) -> &SyntaxNode {
29516        &self.syntax
29517    }
29518}
29519impl AstNode for SetTablespace {
29520    #[inline]
29521    fn can_cast(kind: SyntaxKind) -> bool {
29522        kind == SyntaxKind::SET_TABLESPACE
29523    }
29524    #[inline]
29525    fn cast(syntax: SyntaxNode) -> Option<Self> {
29526        if Self::can_cast(syntax.kind()) {
29527            Some(Self { syntax })
29528        } else {
29529            None
29530        }
29531    }
29532    #[inline]
29533    fn syntax(&self) -> &SyntaxNode {
29534        &self.syntax
29535    }
29536}
29537impl AstNode for SetTransaction {
29538    #[inline]
29539    fn can_cast(kind: SyntaxKind) -> bool {
29540        kind == SyntaxKind::SET_TRANSACTION
29541    }
29542    #[inline]
29543    fn cast(syntax: SyntaxNode) -> Option<Self> {
29544        if Self::can_cast(syntax.kind()) {
29545            Some(Self { syntax })
29546        } else {
29547            None
29548        }
29549    }
29550    #[inline]
29551    fn syntax(&self) -> &SyntaxNode {
29552        &self.syntax
29553    }
29554}
29555impl AstNode for SetType {
29556    #[inline]
29557    fn can_cast(kind: SyntaxKind) -> bool {
29558        kind == SyntaxKind::SET_TYPE
29559    }
29560    #[inline]
29561    fn cast(syntax: SyntaxNode) -> Option<Self> {
29562        if Self::can_cast(syntax.kind()) {
29563            Some(Self { syntax })
29564        } else {
29565            None
29566        }
29567    }
29568    #[inline]
29569    fn syntax(&self) -> &SyntaxNode {
29570        &self.syntax
29571    }
29572}
29573impl AstNode for SetUnlogged {
29574    #[inline]
29575    fn can_cast(kind: SyntaxKind) -> bool {
29576        kind == SyntaxKind::SET_UNLOGGED
29577    }
29578    #[inline]
29579    fn cast(syntax: SyntaxNode) -> Option<Self> {
29580        if Self::can_cast(syntax.kind()) {
29581            Some(Self { syntax })
29582        } else {
29583            None
29584        }
29585    }
29586    #[inline]
29587    fn syntax(&self) -> &SyntaxNode {
29588        &self.syntax
29589    }
29590}
29591impl AstNode for SetWithoutCluster {
29592    #[inline]
29593    fn can_cast(kind: SyntaxKind) -> bool {
29594        kind == SyntaxKind::SET_WITHOUT_CLUSTER
29595    }
29596    #[inline]
29597    fn cast(syntax: SyntaxNode) -> Option<Self> {
29598        if Self::can_cast(syntax.kind()) {
29599            Some(Self { syntax })
29600        } else {
29601            None
29602        }
29603    }
29604    #[inline]
29605    fn syntax(&self) -> &SyntaxNode {
29606        &self.syntax
29607    }
29608}
29609impl AstNode for SetWithoutOids {
29610    #[inline]
29611    fn can_cast(kind: SyntaxKind) -> bool {
29612        kind == SyntaxKind::SET_WITHOUT_OIDS
29613    }
29614    #[inline]
29615    fn cast(syntax: SyntaxNode) -> Option<Self> {
29616        if Self::can_cast(syntax.kind()) {
29617            Some(Self { syntax })
29618        } else {
29619            None
29620        }
29621    }
29622    #[inline]
29623    fn syntax(&self) -> &SyntaxNode {
29624        &self.syntax
29625    }
29626}
29627impl AstNode for Show {
29628    #[inline]
29629    fn can_cast(kind: SyntaxKind) -> bool {
29630        kind == SyntaxKind::SHOW
29631    }
29632    #[inline]
29633    fn cast(syntax: SyntaxNode) -> Option<Self> {
29634        if Self::can_cast(syntax.kind()) {
29635            Some(Self { syntax })
29636        } else {
29637            None
29638        }
29639    }
29640    #[inline]
29641    fn syntax(&self) -> &SyntaxNode {
29642        &self.syntax
29643    }
29644}
29645impl AstNode for SimilarTo {
29646    #[inline]
29647    fn can_cast(kind: SyntaxKind) -> bool {
29648        kind == SyntaxKind::SIMILAR_TO
29649    }
29650    #[inline]
29651    fn cast(syntax: SyntaxNode) -> Option<Self> {
29652        if Self::can_cast(syntax.kind()) {
29653            Some(Self { syntax })
29654        } else {
29655            None
29656        }
29657    }
29658    #[inline]
29659    fn syntax(&self) -> &SyntaxNode {
29660        &self.syntax
29661    }
29662}
29663impl AstNode for SliceExpr {
29664    #[inline]
29665    fn can_cast(kind: SyntaxKind) -> bool {
29666        kind == SyntaxKind::SLICE_EXPR
29667    }
29668    #[inline]
29669    fn cast(syntax: SyntaxNode) -> Option<Self> {
29670        if Self::can_cast(syntax.kind()) {
29671            Some(Self { syntax })
29672        } else {
29673            None
29674        }
29675    }
29676    #[inline]
29677    fn syntax(&self) -> &SyntaxNode {
29678        &self.syntax
29679    }
29680}
29681impl AstNode for SomeFn {
29682    #[inline]
29683    fn can_cast(kind: SyntaxKind) -> bool {
29684        kind == SyntaxKind::SOME_FN
29685    }
29686    #[inline]
29687    fn cast(syntax: SyntaxNode) -> Option<Self> {
29688        if Self::can_cast(syntax.kind()) {
29689            Some(Self { syntax })
29690        } else {
29691            None
29692        }
29693    }
29694    #[inline]
29695    fn syntax(&self) -> &SyntaxNode {
29696        &self.syntax
29697    }
29698}
29699impl AstNode for SortAsc {
29700    #[inline]
29701    fn can_cast(kind: SyntaxKind) -> bool {
29702        kind == SyntaxKind::SORT_ASC
29703    }
29704    #[inline]
29705    fn cast(syntax: SyntaxNode) -> Option<Self> {
29706        if Self::can_cast(syntax.kind()) {
29707            Some(Self { syntax })
29708        } else {
29709            None
29710        }
29711    }
29712    #[inline]
29713    fn syntax(&self) -> &SyntaxNode {
29714        &self.syntax
29715    }
29716}
29717impl AstNode for SortBy {
29718    #[inline]
29719    fn can_cast(kind: SyntaxKind) -> bool {
29720        kind == SyntaxKind::SORT_BY
29721    }
29722    #[inline]
29723    fn cast(syntax: SyntaxNode) -> Option<Self> {
29724        if Self::can_cast(syntax.kind()) {
29725            Some(Self { syntax })
29726        } else {
29727            None
29728        }
29729    }
29730    #[inline]
29731    fn syntax(&self) -> &SyntaxNode {
29732        &self.syntax
29733    }
29734}
29735impl AstNode for SortByList {
29736    #[inline]
29737    fn can_cast(kind: SyntaxKind) -> bool {
29738        kind == SyntaxKind::SORT_BY_LIST
29739    }
29740    #[inline]
29741    fn cast(syntax: SyntaxNode) -> Option<Self> {
29742        if Self::can_cast(syntax.kind()) {
29743            Some(Self { syntax })
29744        } else {
29745            None
29746        }
29747    }
29748    #[inline]
29749    fn syntax(&self) -> &SyntaxNode {
29750        &self.syntax
29751    }
29752}
29753impl AstNode for SortDesc {
29754    #[inline]
29755    fn can_cast(kind: SyntaxKind) -> bool {
29756        kind == SyntaxKind::SORT_DESC
29757    }
29758    #[inline]
29759    fn cast(syntax: SyntaxNode) -> Option<Self> {
29760        if Self::can_cast(syntax.kind()) {
29761            Some(Self { syntax })
29762        } else {
29763            None
29764        }
29765    }
29766    #[inline]
29767    fn syntax(&self) -> &SyntaxNode {
29768        &self.syntax
29769    }
29770}
29771impl AstNode for SortUsing {
29772    #[inline]
29773    fn can_cast(kind: SyntaxKind) -> bool {
29774        kind == SyntaxKind::SORT_USING
29775    }
29776    #[inline]
29777    fn cast(syntax: SyntaxNode) -> Option<Self> {
29778        if Self::can_cast(syntax.kind()) {
29779            Some(Self { syntax })
29780        } else {
29781            None
29782        }
29783    }
29784    #[inline]
29785    fn syntax(&self) -> &SyntaxNode {
29786        &self.syntax
29787    }
29788}
29789impl AstNode for SourceFile {
29790    #[inline]
29791    fn can_cast(kind: SyntaxKind) -> bool {
29792        kind == SyntaxKind::SOURCE_FILE
29793    }
29794    #[inline]
29795    fn cast(syntax: SyntaxNode) -> Option<Self> {
29796        if Self::can_cast(syntax.kind()) {
29797            Some(Self { syntax })
29798        } else {
29799            None
29800        }
29801    }
29802    #[inline]
29803    fn syntax(&self) -> &SyntaxNode {
29804        &self.syntax
29805    }
29806}
29807impl AstNode for SourceVertexTable {
29808    #[inline]
29809    fn can_cast(kind: SyntaxKind) -> bool {
29810        kind == SyntaxKind::SOURCE_VERTEX_TABLE
29811    }
29812    #[inline]
29813    fn cast(syntax: SyntaxNode) -> Option<Self> {
29814        if Self::can_cast(syntax.kind()) {
29815            Some(Self { syntax })
29816        } else {
29817            None
29818        }
29819    }
29820    #[inline]
29821    fn syntax(&self) -> &SyntaxNode {
29822        &self.syntax
29823    }
29824}
29825impl AstNode for SplitPartition {
29826    #[inline]
29827    fn can_cast(kind: SyntaxKind) -> bool {
29828        kind == SyntaxKind::SPLIT_PARTITION
29829    }
29830    #[inline]
29831    fn cast(syntax: SyntaxNode) -> Option<Self> {
29832        if Self::can_cast(syntax.kind()) {
29833            Some(Self { syntax })
29834        } else {
29835            None
29836        }
29837    }
29838    #[inline]
29839    fn syntax(&self) -> &SyntaxNode {
29840        &self.syntax
29841    }
29842}
29843impl AstNode for Storage {
29844    #[inline]
29845    fn can_cast(kind: SyntaxKind) -> bool {
29846        kind == SyntaxKind::STORAGE
29847    }
29848    #[inline]
29849    fn cast(syntax: SyntaxNode) -> Option<Self> {
29850        if Self::can_cast(syntax.kind()) {
29851            Some(Self { syntax })
29852        } else {
29853            None
29854        }
29855    }
29856    #[inline]
29857    fn syntax(&self) -> &SyntaxNode {
29858        &self.syntax
29859    }
29860}
29861impl AstNode for StrictFuncOption {
29862    #[inline]
29863    fn can_cast(kind: SyntaxKind) -> bool {
29864        kind == SyntaxKind::STRICT_FUNC_OPTION
29865    }
29866    #[inline]
29867    fn cast(syntax: SyntaxNode) -> Option<Self> {
29868        if Self::can_cast(syntax.kind()) {
29869            Some(Self { syntax })
29870        } else {
29871            None
29872        }
29873    }
29874    #[inline]
29875    fn syntax(&self) -> &SyntaxNode {
29876        &self.syntax
29877    }
29878}
29879impl AstNode for SubstringFn {
29880    #[inline]
29881    fn can_cast(kind: SyntaxKind) -> bool {
29882        kind == SyntaxKind::SUBSTRING_FN
29883    }
29884    #[inline]
29885    fn cast(syntax: SyntaxNode) -> Option<Self> {
29886        if Self::can_cast(syntax.kind()) {
29887            Some(Self { syntax })
29888        } else {
29889            None
29890        }
29891    }
29892    #[inline]
29893    fn syntax(&self) -> &SyntaxNode {
29894        &self.syntax
29895    }
29896}
29897impl AstNode for SupportFuncOption {
29898    #[inline]
29899    fn can_cast(kind: SyntaxKind) -> bool {
29900        kind == SyntaxKind::SUPPORT_FUNC_OPTION
29901    }
29902    #[inline]
29903    fn cast(syntax: SyntaxNode) -> Option<Self> {
29904        if Self::can_cast(syntax.kind()) {
29905            Some(Self { syntax })
29906        } else {
29907            None
29908        }
29909    }
29910    #[inline]
29911    fn syntax(&self) -> &SyntaxNode {
29912        &self.syntax
29913    }
29914}
29915impl AstNode for Table {
29916    #[inline]
29917    fn can_cast(kind: SyntaxKind) -> bool {
29918        kind == SyntaxKind::TABLE
29919    }
29920    #[inline]
29921    fn cast(syntax: SyntaxNode) -> Option<Self> {
29922        if Self::can_cast(syntax.kind()) {
29923            Some(Self { syntax })
29924        } else {
29925            None
29926        }
29927    }
29928    #[inline]
29929    fn syntax(&self) -> &SyntaxNode {
29930        &self.syntax
29931    }
29932}
29933impl AstNode for TableAndColumns {
29934    #[inline]
29935    fn can_cast(kind: SyntaxKind) -> bool {
29936        kind == SyntaxKind::TABLE_AND_COLUMNS
29937    }
29938    #[inline]
29939    fn cast(syntax: SyntaxNode) -> Option<Self> {
29940        if Self::can_cast(syntax.kind()) {
29941            Some(Self { syntax })
29942        } else {
29943            None
29944        }
29945    }
29946    #[inline]
29947    fn syntax(&self) -> &SyntaxNode {
29948        &self.syntax
29949    }
29950}
29951impl AstNode for TableAndColumnsList {
29952    #[inline]
29953    fn can_cast(kind: SyntaxKind) -> bool {
29954        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
29955    }
29956    #[inline]
29957    fn cast(syntax: SyntaxNode) -> Option<Self> {
29958        if Self::can_cast(syntax.kind()) {
29959            Some(Self { syntax })
29960        } else {
29961            None
29962        }
29963    }
29964    #[inline]
29965    fn syntax(&self) -> &SyntaxNode {
29966        &self.syntax
29967    }
29968}
29969impl AstNode for TableArgList {
29970    #[inline]
29971    fn can_cast(kind: SyntaxKind) -> bool {
29972        kind == SyntaxKind::TABLE_ARG_LIST
29973    }
29974    #[inline]
29975    fn cast(syntax: SyntaxNode) -> Option<Self> {
29976        if Self::can_cast(syntax.kind()) {
29977            Some(Self { syntax })
29978        } else {
29979            None
29980        }
29981    }
29982    #[inline]
29983    fn syntax(&self) -> &SyntaxNode {
29984        &self.syntax
29985    }
29986}
29987impl AstNode for TableList {
29988    #[inline]
29989    fn can_cast(kind: SyntaxKind) -> bool {
29990        kind == SyntaxKind::TABLE_LIST
29991    }
29992    #[inline]
29993    fn cast(syntax: SyntaxNode) -> Option<Self> {
29994        if Self::can_cast(syntax.kind()) {
29995            Some(Self { syntax })
29996        } else {
29997            None
29998        }
29999    }
30000    #[inline]
30001    fn syntax(&self) -> &SyntaxNode {
30002        &self.syntax
30003    }
30004}
30005impl AstNode for TablesampleClause {
30006    #[inline]
30007    fn can_cast(kind: SyntaxKind) -> bool {
30008        kind == SyntaxKind::TABLESAMPLE_CLAUSE
30009    }
30010    #[inline]
30011    fn cast(syntax: SyntaxNode) -> Option<Self> {
30012        if Self::can_cast(syntax.kind()) {
30013            Some(Self { syntax })
30014        } else {
30015            None
30016        }
30017    }
30018    #[inline]
30019    fn syntax(&self) -> &SyntaxNode {
30020        &self.syntax
30021    }
30022}
30023impl AstNode for Tablespace {
30024    #[inline]
30025    fn can_cast(kind: SyntaxKind) -> bool {
30026        kind == SyntaxKind::TABLESPACE
30027    }
30028    #[inline]
30029    fn cast(syntax: SyntaxNode) -> Option<Self> {
30030        if Self::can_cast(syntax.kind()) {
30031            Some(Self { syntax })
30032        } else {
30033            None
30034        }
30035    }
30036    #[inline]
30037    fn syntax(&self) -> &SyntaxNode {
30038        &self.syntax
30039    }
30040}
30041impl AstNode for Target {
30042    #[inline]
30043    fn can_cast(kind: SyntaxKind) -> bool {
30044        kind == SyntaxKind::TARGET
30045    }
30046    #[inline]
30047    fn cast(syntax: SyntaxNode) -> Option<Self> {
30048        if Self::can_cast(syntax.kind()) {
30049            Some(Self { syntax })
30050        } else {
30051            None
30052        }
30053    }
30054    #[inline]
30055    fn syntax(&self) -> &SyntaxNode {
30056        &self.syntax
30057    }
30058}
30059impl AstNode for TargetList {
30060    #[inline]
30061    fn can_cast(kind: SyntaxKind) -> bool {
30062        kind == SyntaxKind::TARGET_LIST
30063    }
30064    #[inline]
30065    fn cast(syntax: SyntaxNode) -> Option<Self> {
30066        if Self::can_cast(syntax.kind()) {
30067            Some(Self { syntax })
30068        } else {
30069            None
30070        }
30071    }
30072    #[inline]
30073    fn syntax(&self) -> &SyntaxNode {
30074        &self.syntax
30075    }
30076}
30077impl AstNode for Temp {
30078    #[inline]
30079    fn can_cast(kind: SyntaxKind) -> bool {
30080        kind == SyntaxKind::TEMP
30081    }
30082    #[inline]
30083    fn cast(syntax: SyntaxNode) -> Option<Self> {
30084        if Self::can_cast(syntax.kind()) {
30085            Some(Self { syntax })
30086        } else {
30087            None
30088        }
30089    }
30090    #[inline]
30091    fn syntax(&self) -> &SyntaxNode {
30092        &self.syntax
30093    }
30094}
30095impl AstNode for TimeType {
30096    #[inline]
30097    fn can_cast(kind: SyntaxKind) -> bool {
30098        kind == SyntaxKind::TIME_TYPE
30099    }
30100    #[inline]
30101    fn cast(syntax: SyntaxNode) -> Option<Self> {
30102        if Self::can_cast(syntax.kind()) {
30103            Some(Self { syntax })
30104        } else {
30105            None
30106        }
30107    }
30108    #[inline]
30109    fn syntax(&self) -> &SyntaxNode {
30110        &self.syntax
30111    }
30112}
30113impl AstNode for Timing {
30114    #[inline]
30115    fn can_cast(kind: SyntaxKind) -> bool {
30116        kind == SyntaxKind::TIMING
30117    }
30118    #[inline]
30119    fn cast(syntax: SyntaxNode) -> Option<Self> {
30120        if Self::can_cast(syntax.kind()) {
30121            Some(Self { syntax })
30122        } else {
30123            None
30124        }
30125    }
30126    #[inline]
30127    fn syntax(&self) -> &SyntaxNode {
30128        &self.syntax
30129    }
30130}
30131impl AstNode for TransactionModeList {
30132    #[inline]
30133    fn can_cast(kind: SyntaxKind) -> bool {
30134        kind == SyntaxKind::TRANSACTION_MODE_LIST
30135    }
30136    #[inline]
30137    fn cast(syntax: SyntaxNode) -> Option<Self> {
30138        if Self::can_cast(syntax.kind()) {
30139            Some(Self { syntax })
30140        } else {
30141            None
30142        }
30143    }
30144    #[inline]
30145    fn syntax(&self) -> &SyntaxNode {
30146        &self.syntax
30147    }
30148}
30149impl AstNode for TransformFromFunc {
30150    #[inline]
30151    fn can_cast(kind: SyntaxKind) -> bool {
30152        kind == SyntaxKind::TRANSFORM_FROM_FUNC
30153    }
30154    #[inline]
30155    fn cast(syntax: SyntaxNode) -> Option<Self> {
30156        if Self::can_cast(syntax.kind()) {
30157            Some(Self { syntax })
30158        } else {
30159            None
30160        }
30161    }
30162    #[inline]
30163    fn syntax(&self) -> &SyntaxNode {
30164        &self.syntax
30165    }
30166}
30167impl AstNode for TransformFuncOption {
30168    #[inline]
30169    fn can_cast(kind: SyntaxKind) -> bool {
30170        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
30171    }
30172    #[inline]
30173    fn cast(syntax: SyntaxNode) -> Option<Self> {
30174        if Self::can_cast(syntax.kind()) {
30175            Some(Self { syntax })
30176        } else {
30177            None
30178        }
30179    }
30180    #[inline]
30181    fn syntax(&self) -> &SyntaxNode {
30182        &self.syntax
30183    }
30184}
30185impl AstNode for TransformToFunc {
30186    #[inline]
30187    fn can_cast(kind: SyntaxKind) -> bool {
30188        kind == SyntaxKind::TRANSFORM_TO_FUNC
30189    }
30190    #[inline]
30191    fn cast(syntax: SyntaxNode) -> Option<Self> {
30192        if Self::can_cast(syntax.kind()) {
30193            Some(Self { syntax })
30194        } else {
30195            None
30196        }
30197    }
30198    #[inline]
30199    fn syntax(&self) -> &SyntaxNode {
30200        &self.syntax
30201    }
30202}
30203impl AstNode for TriggerEvent {
30204    #[inline]
30205    fn can_cast(kind: SyntaxKind) -> bool {
30206        kind == SyntaxKind::TRIGGER_EVENT
30207    }
30208    #[inline]
30209    fn cast(syntax: SyntaxNode) -> Option<Self> {
30210        if Self::can_cast(syntax.kind()) {
30211            Some(Self { syntax })
30212        } else {
30213            None
30214        }
30215    }
30216    #[inline]
30217    fn syntax(&self) -> &SyntaxNode {
30218        &self.syntax
30219    }
30220}
30221impl AstNode for TriggerEventList {
30222    #[inline]
30223    fn can_cast(kind: SyntaxKind) -> bool {
30224        kind == SyntaxKind::TRIGGER_EVENT_LIST
30225    }
30226    #[inline]
30227    fn cast(syntax: SyntaxNode) -> Option<Self> {
30228        if Self::can_cast(syntax.kind()) {
30229            Some(Self { syntax })
30230        } else {
30231            None
30232        }
30233    }
30234    #[inline]
30235    fn syntax(&self) -> &SyntaxNode {
30236        &self.syntax
30237    }
30238}
30239impl AstNode for TriggerEventUpdate {
30240    #[inline]
30241    fn can_cast(kind: SyntaxKind) -> bool {
30242        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
30243    }
30244    #[inline]
30245    fn cast(syntax: SyntaxNode) -> Option<Self> {
30246        if Self::can_cast(syntax.kind()) {
30247            Some(Self { syntax })
30248        } else {
30249            None
30250        }
30251    }
30252    #[inline]
30253    fn syntax(&self) -> &SyntaxNode {
30254        &self.syntax
30255    }
30256}
30257impl AstNode for TrimFn {
30258    #[inline]
30259    fn can_cast(kind: SyntaxKind) -> bool {
30260        kind == SyntaxKind::TRIM_FN
30261    }
30262    #[inline]
30263    fn cast(syntax: SyntaxNode) -> Option<Self> {
30264        if Self::can_cast(syntax.kind()) {
30265            Some(Self { syntax })
30266        } else {
30267            None
30268        }
30269    }
30270    #[inline]
30271    fn syntax(&self) -> &SyntaxNode {
30272        &self.syntax
30273    }
30274}
30275impl AstNode for Truncate {
30276    #[inline]
30277    fn can_cast(kind: SyntaxKind) -> bool {
30278        kind == SyntaxKind::TRUNCATE
30279    }
30280    #[inline]
30281    fn cast(syntax: SyntaxNode) -> Option<Self> {
30282        if Self::can_cast(syntax.kind()) {
30283            Some(Self { syntax })
30284        } else {
30285            None
30286        }
30287    }
30288    #[inline]
30289    fn syntax(&self) -> &SyntaxNode {
30290        &self.syntax
30291    }
30292}
30293impl AstNode for TupleExpr {
30294    #[inline]
30295    fn can_cast(kind: SyntaxKind) -> bool {
30296        kind == SyntaxKind::TUPLE_EXPR
30297    }
30298    #[inline]
30299    fn cast(syntax: SyntaxNode) -> Option<Self> {
30300        if Self::can_cast(syntax.kind()) {
30301            Some(Self { syntax })
30302        } else {
30303            None
30304        }
30305    }
30306    #[inline]
30307    fn syntax(&self) -> &SyntaxNode {
30308        &self.syntax
30309    }
30310}
30311impl AstNode for UnicodeNormalForm {
30312    #[inline]
30313    fn can_cast(kind: SyntaxKind) -> bool {
30314        kind == SyntaxKind::UNICODE_NORMAL_FORM
30315    }
30316    #[inline]
30317    fn cast(syntax: SyntaxNode) -> Option<Self> {
30318        if Self::can_cast(syntax.kind()) {
30319            Some(Self { syntax })
30320        } else {
30321            None
30322        }
30323    }
30324    #[inline]
30325    fn syntax(&self) -> &SyntaxNode {
30326        &self.syntax
30327    }
30328}
30329impl AstNode for UniqueConstraint {
30330    #[inline]
30331    fn can_cast(kind: SyntaxKind) -> bool {
30332        kind == SyntaxKind::UNIQUE_CONSTRAINT
30333    }
30334    #[inline]
30335    fn cast(syntax: SyntaxNode) -> Option<Self> {
30336        if Self::can_cast(syntax.kind()) {
30337            Some(Self { syntax })
30338        } else {
30339            None
30340        }
30341    }
30342    #[inline]
30343    fn syntax(&self) -> &SyntaxNode {
30344        &self.syntax
30345    }
30346}
30347impl AstNode for Unlisten {
30348    #[inline]
30349    fn can_cast(kind: SyntaxKind) -> bool {
30350        kind == SyntaxKind::UNLISTEN
30351    }
30352    #[inline]
30353    fn cast(syntax: SyntaxNode) -> Option<Self> {
30354        if Self::can_cast(syntax.kind()) {
30355            Some(Self { syntax })
30356        } else {
30357            None
30358        }
30359    }
30360    #[inline]
30361    fn syntax(&self) -> &SyntaxNode {
30362        &self.syntax
30363    }
30364}
30365impl AstNode for Unlogged {
30366    #[inline]
30367    fn can_cast(kind: SyntaxKind) -> bool {
30368        kind == SyntaxKind::UNLOGGED
30369    }
30370    #[inline]
30371    fn cast(syntax: SyntaxNode) -> Option<Self> {
30372        if Self::can_cast(syntax.kind()) {
30373            Some(Self { syntax })
30374        } else {
30375            None
30376        }
30377    }
30378    #[inline]
30379    fn syntax(&self) -> &SyntaxNode {
30380        &self.syntax
30381    }
30382}
30383impl AstNode for Update {
30384    #[inline]
30385    fn can_cast(kind: SyntaxKind) -> bool {
30386        kind == SyntaxKind::UPDATE
30387    }
30388    #[inline]
30389    fn cast(syntax: SyntaxNode) -> Option<Self> {
30390        if Self::can_cast(syntax.kind()) {
30391            Some(Self { syntax })
30392        } else {
30393            None
30394        }
30395    }
30396    #[inline]
30397    fn syntax(&self) -> &SyntaxNode {
30398        &self.syntax
30399    }
30400}
30401impl AstNode for UsingClause {
30402    #[inline]
30403    fn can_cast(kind: SyntaxKind) -> bool {
30404        kind == SyntaxKind::USING_CLAUSE
30405    }
30406    #[inline]
30407    fn cast(syntax: SyntaxNode) -> Option<Self> {
30408        if Self::can_cast(syntax.kind()) {
30409            Some(Self { syntax })
30410        } else {
30411            None
30412        }
30413    }
30414    #[inline]
30415    fn syntax(&self) -> &SyntaxNode {
30416        &self.syntax
30417    }
30418}
30419impl AstNode for UsingExprClause {
30420    #[inline]
30421    fn can_cast(kind: SyntaxKind) -> bool {
30422        kind == SyntaxKind::USING_EXPR_CLAUSE
30423    }
30424    #[inline]
30425    fn cast(syntax: SyntaxNode) -> Option<Self> {
30426        if Self::can_cast(syntax.kind()) {
30427            Some(Self { syntax })
30428        } else {
30429            None
30430        }
30431    }
30432    #[inline]
30433    fn syntax(&self) -> &SyntaxNode {
30434        &self.syntax
30435    }
30436}
30437impl AstNode for UsingIndex {
30438    #[inline]
30439    fn can_cast(kind: SyntaxKind) -> bool {
30440        kind == SyntaxKind::USING_INDEX
30441    }
30442    #[inline]
30443    fn cast(syntax: SyntaxNode) -> Option<Self> {
30444        if Self::can_cast(syntax.kind()) {
30445            Some(Self { syntax })
30446        } else {
30447            None
30448        }
30449    }
30450    #[inline]
30451    fn syntax(&self) -> &SyntaxNode {
30452        &self.syntax
30453    }
30454}
30455impl AstNode for UsingMethod {
30456    #[inline]
30457    fn can_cast(kind: SyntaxKind) -> bool {
30458        kind == SyntaxKind::USING_METHOD
30459    }
30460    #[inline]
30461    fn cast(syntax: SyntaxNode) -> Option<Self> {
30462        if Self::can_cast(syntax.kind()) {
30463            Some(Self { syntax })
30464        } else {
30465            None
30466        }
30467    }
30468    #[inline]
30469    fn syntax(&self) -> &SyntaxNode {
30470        &self.syntax
30471    }
30472}
30473impl AstNode for UsingOnClause {
30474    #[inline]
30475    fn can_cast(kind: SyntaxKind) -> bool {
30476        kind == SyntaxKind::USING_ON_CLAUSE
30477    }
30478    #[inline]
30479    fn cast(syntax: SyntaxNode) -> Option<Self> {
30480        if Self::can_cast(syntax.kind()) {
30481            Some(Self { syntax })
30482        } else {
30483            None
30484        }
30485    }
30486    #[inline]
30487    fn syntax(&self) -> &SyntaxNode {
30488        &self.syntax
30489    }
30490}
30491impl AstNode for Vacuum {
30492    #[inline]
30493    fn can_cast(kind: SyntaxKind) -> bool {
30494        kind == SyntaxKind::VACUUM
30495    }
30496    #[inline]
30497    fn cast(syntax: SyntaxNode) -> Option<Self> {
30498        if Self::can_cast(syntax.kind()) {
30499            Some(Self { syntax })
30500        } else {
30501            None
30502        }
30503    }
30504    #[inline]
30505    fn syntax(&self) -> &SyntaxNode {
30506        &self.syntax
30507    }
30508}
30509impl AstNode for VacuumOption {
30510    #[inline]
30511    fn can_cast(kind: SyntaxKind) -> bool {
30512        kind == SyntaxKind::VACUUM_OPTION
30513    }
30514    #[inline]
30515    fn cast(syntax: SyntaxNode) -> Option<Self> {
30516        if Self::can_cast(syntax.kind()) {
30517            Some(Self { syntax })
30518        } else {
30519            None
30520        }
30521    }
30522    #[inline]
30523    fn syntax(&self) -> &SyntaxNode {
30524        &self.syntax
30525    }
30526}
30527impl AstNode for VacuumOptionList {
30528    #[inline]
30529    fn can_cast(kind: SyntaxKind) -> bool {
30530        kind == SyntaxKind::VACUUM_OPTION_LIST
30531    }
30532    #[inline]
30533    fn cast(syntax: SyntaxNode) -> Option<Self> {
30534        if Self::can_cast(syntax.kind()) {
30535            Some(Self { syntax })
30536        } else {
30537            None
30538        }
30539    }
30540    #[inline]
30541    fn syntax(&self) -> &SyntaxNode {
30542        &self.syntax
30543    }
30544}
30545impl AstNode for ValidateConstraint {
30546    #[inline]
30547    fn can_cast(kind: SyntaxKind) -> bool {
30548        kind == SyntaxKind::VALIDATE_CONSTRAINT
30549    }
30550    #[inline]
30551    fn cast(syntax: SyntaxNode) -> Option<Self> {
30552        if Self::can_cast(syntax.kind()) {
30553            Some(Self { syntax })
30554        } else {
30555            None
30556        }
30557    }
30558    #[inline]
30559    fn syntax(&self) -> &SyntaxNode {
30560        &self.syntax
30561    }
30562}
30563impl AstNode for Values {
30564    #[inline]
30565    fn can_cast(kind: SyntaxKind) -> bool {
30566        kind == SyntaxKind::VALUES
30567    }
30568    #[inline]
30569    fn cast(syntax: SyntaxNode) -> Option<Self> {
30570        if Self::can_cast(syntax.kind()) {
30571            Some(Self { syntax })
30572        } else {
30573            None
30574        }
30575    }
30576    #[inline]
30577    fn syntax(&self) -> &SyntaxNode {
30578        &self.syntax
30579    }
30580}
30581impl AstNode for Variant {
30582    #[inline]
30583    fn can_cast(kind: SyntaxKind) -> bool {
30584        kind == SyntaxKind::VARIANT
30585    }
30586    #[inline]
30587    fn cast(syntax: SyntaxNode) -> Option<Self> {
30588        if Self::can_cast(syntax.kind()) {
30589            Some(Self { syntax })
30590        } else {
30591            None
30592        }
30593    }
30594    #[inline]
30595    fn syntax(&self) -> &SyntaxNode {
30596        &self.syntax
30597    }
30598}
30599impl AstNode for VariantList {
30600    #[inline]
30601    fn can_cast(kind: SyntaxKind) -> bool {
30602        kind == SyntaxKind::VARIANT_LIST
30603    }
30604    #[inline]
30605    fn cast(syntax: SyntaxNode) -> Option<Self> {
30606        if Self::can_cast(syntax.kind()) {
30607            Some(Self { syntax })
30608        } else {
30609            None
30610        }
30611    }
30612    #[inline]
30613    fn syntax(&self) -> &SyntaxNode {
30614        &self.syntax
30615    }
30616}
30617impl AstNode for VertexPattern {
30618    #[inline]
30619    fn can_cast(kind: SyntaxKind) -> bool {
30620        kind == SyntaxKind::VERTEX_PATTERN
30621    }
30622    #[inline]
30623    fn cast(syntax: SyntaxNode) -> Option<Self> {
30624        if Self::can_cast(syntax.kind()) {
30625            Some(Self { syntax })
30626        } else {
30627            None
30628        }
30629    }
30630    #[inline]
30631    fn syntax(&self) -> &SyntaxNode {
30632        &self.syntax
30633    }
30634}
30635impl AstNode for VertexTableDef {
30636    #[inline]
30637    fn can_cast(kind: SyntaxKind) -> bool {
30638        kind == SyntaxKind::VERTEX_TABLE_DEF
30639    }
30640    #[inline]
30641    fn cast(syntax: SyntaxNode) -> Option<Self> {
30642        if Self::can_cast(syntax.kind()) {
30643            Some(Self { syntax })
30644        } else {
30645            None
30646        }
30647    }
30648    #[inline]
30649    fn syntax(&self) -> &SyntaxNode {
30650        &self.syntax
30651    }
30652}
30653impl AstNode for VertexTables {
30654    #[inline]
30655    fn can_cast(kind: SyntaxKind) -> bool {
30656        kind == SyntaxKind::VERTEX_TABLES
30657    }
30658    #[inline]
30659    fn cast(syntax: SyntaxNode) -> Option<Self> {
30660        if Self::can_cast(syntax.kind()) {
30661            Some(Self { syntax })
30662        } else {
30663            None
30664        }
30665    }
30666    #[inline]
30667    fn syntax(&self) -> &SyntaxNode {
30668        &self.syntax
30669    }
30670}
30671impl AstNode for VolatilityFuncOption {
30672    #[inline]
30673    fn can_cast(kind: SyntaxKind) -> bool {
30674        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
30675    }
30676    #[inline]
30677    fn cast(syntax: SyntaxNode) -> Option<Self> {
30678        if Self::can_cast(syntax.kind()) {
30679            Some(Self { syntax })
30680        } else {
30681            None
30682        }
30683    }
30684    #[inline]
30685    fn syntax(&self) -> &SyntaxNode {
30686        &self.syntax
30687    }
30688}
30689impl AstNode for WhenClause {
30690    #[inline]
30691    fn can_cast(kind: SyntaxKind) -> bool {
30692        kind == SyntaxKind::WHEN_CLAUSE
30693    }
30694    #[inline]
30695    fn cast(syntax: SyntaxNode) -> Option<Self> {
30696        if Self::can_cast(syntax.kind()) {
30697            Some(Self { syntax })
30698        } else {
30699            None
30700        }
30701    }
30702    #[inline]
30703    fn syntax(&self) -> &SyntaxNode {
30704        &self.syntax
30705    }
30706}
30707impl AstNode for WhenClauseList {
30708    #[inline]
30709    fn can_cast(kind: SyntaxKind) -> bool {
30710        kind == SyntaxKind::WHEN_CLAUSE_LIST
30711    }
30712    #[inline]
30713    fn cast(syntax: SyntaxNode) -> Option<Self> {
30714        if Self::can_cast(syntax.kind()) {
30715            Some(Self { syntax })
30716        } else {
30717            None
30718        }
30719    }
30720    #[inline]
30721    fn syntax(&self) -> &SyntaxNode {
30722        &self.syntax
30723    }
30724}
30725impl AstNode for WhenCondition {
30726    #[inline]
30727    fn can_cast(kind: SyntaxKind) -> bool {
30728        kind == SyntaxKind::WHEN_CONDITION
30729    }
30730    #[inline]
30731    fn cast(syntax: SyntaxNode) -> Option<Self> {
30732        if Self::can_cast(syntax.kind()) {
30733            Some(Self { syntax })
30734        } else {
30735            None
30736        }
30737    }
30738    #[inline]
30739    fn syntax(&self) -> &SyntaxNode {
30740        &self.syntax
30741    }
30742}
30743impl AstNode for WhereClause {
30744    #[inline]
30745    fn can_cast(kind: SyntaxKind) -> bool {
30746        kind == SyntaxKind::WHERE_CLAUSE
30747    }
30748    #[inline]
30749    fn cast(syntax: SyntaxNode) -> Option<Self> {
30750        if Self::can_cast(syntax.kind()) {
30751            Some(Self { syntax })
30752        } else {
30753            None
30754        }
30755    }
30756    #[inline]
30757    fn syntax(&self) -> &SyntaxNode {
30758        &self.syntax
30759    }
30760}
30761impl AstNode for WhereConditionClause {
30762    #[inline]
30763    fn can_cast(kind: SyntaxKind) -> bool {
30764        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
30765    }
30766    #[inline]
30767    fn cast(syntax: SyntaxNode) -> Option<Self> {
30768        if Self::can_cast(syntax.kind()) {
30769            Some(Self { syntax })
30770        } else {
30771            None
30772        }
30773    }
30774    #[inline]
30775    fn syntax(&self) -> &SyntaxNode {
30776        &self.syntax
30777    }
30778}
30779impl AstNode for WhereCurrentOf {
30780    #[inline]
30781    fn can_cast(kind: SyntaxKind) -> bool {
30782        kind == SyntaxKind::WHERE_CURRENT_OF
30783    }
30784    #[inline]
30785    fn cast(syntax: SyntaxNode) -> Option<Self> {
30786        if Self::can_cast(syntax.kind()) {
30787            Some(Self { syntax })
30788        } else {
30789            None
30790        }
30791    }
30792    #[inline]
30793    fn syntax(&self) -> &SyntaxNode {
30794        &self.syntax
30795    }
30796}
30797impl AstNode for WindowClause {
30798    #[inline]
30799    fn can_cast(kind: SyntaxKind) -> bool {
30800        kind == SyntaxKind::WINDOW_CLAUSE
30801    }
30802    #[inline]
30803    fn cast(syntax: SyntaxNode) -> Option<Self> {
30804        if Self::can_cast(syntax.kind()) {
30805            Some(Self { syntax })
30806        } else {
30807            None
30808        }
30809    }
30810    #[inline]
30811    fn syntax(&self) -> &SyntaxNode {
30812        &self.syntax
30813    }
30814}
30815impl AstNode for WindowDef {
30816    #[inline]
30817    fn can_cast(kind: SyntaxKind) -> bool {
30818        kind == SyntaxKind::WINDOW_DEF
30819    }
30820    #[inline]
30821    fn cast(syntax: SyntaxNode) -> Option<Self> {
30822        if Self::can_cast(syntax.kind()) {
30823            Some(Self { syntax })
30824        } else {
30825            None
30826        }
30827    }
30828    #[inline]
30829    fn syntax(&self) -> &SyntaxNode {
30830        &self.syntax
30831    }
30832}
30833impl AstNode for WindowFuncOption {
30834    #[inline]
30835    fn can_cast(kind: SyntaxKind) -> bool {
30836        kind == SyntaxKind::WINDOW_FUNC_OPTION
30837    }
30838    #[inline]
30839    fn cast(syntax: SyntaxNode) -> Option<Self> {
30840        if Self::can_cast(syntax.kind()) {
30841            Some(Self { syntax })
30842        } else {
30843            None
30844        }
30845    }
30846    #[inline]
30847    fn syntax(&self) -> &SyntaxNode {
30848        &self.syntax
30849    }
30850}
30851impl AstNode for WindowSpec {
30852    #[inline]
30853    fn can_cast(kind: SyntaxKind) -> bool {
30854        kind == SyntaxKind::WINDOW_SPEC
30855    }
30856    #[inline]
30857    fn cast(syntax: SyntaxNode) -> Option<Self> {
30858        if Self::can_cast(syntax.kind()) {
30859            Some(Self { syntax })
30860        } else {
30861            None
30862        }
30863    }
30864    #[inline]
30865    fn syntax(&self) -> &SyntaxNode {
30866        &self.syntax
30867    }
30868}
30869impl AstNode for WithCheckExprClause {
30870    #[inline]
30871    fn can_cast(kind: SyntaxKind) -> bool {
30872        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
30873    }
30874    #[inline]
30875    fn cast(syntax: SyntaxNode) -> Option<Self> {
30876        if Self::can_cast(syntax.kind()) {
30877            Some(Self { syntax })
30878        } else {
30879            None
30880        }
30881    }
30882    #[inline]
30883    fn syntax(&self) -> &SyntaxNode {
30884        &self.syntax
30885    }
30886}
30887impl AstNode for WithClause {
30888    #[inline]
30889    fn can_cast(kind: SyntaxKind) -> bool {
30890        kind == SyntaxKind::WITH_CLAUSE
30891    }
30892    #[inline]
30893    fn cast(syntax: SyntaxNode) -> Option<Self> {
30894        if Self::can_cast(syntax.kind()) {
30895            Some(Self { syntax })
30896        } else {
30897            None
30898        }
30899    }
30900    #[inline]
30901    fn syntax(&self) -> &SyntaxNode {
30902        &self.syntax
30903    }
30904}
30905impl AstNode for WithData {
30906    #[inline]
30907    fn can_cast(kind: SyntaxKind) -> bool {
30908        kind == SyntaxKind::WITH_DATA
30909    }
30910    #[inline]
30911    fn cast(syntax: SyntaxNode) -> Option<Self> {
30912        if Self::can_cast(syntax.kind()) {
30913            Some(Self { syntax })
30914        } else {
30915            None
30916        }
30917    }
30918    #[inline]
30919    fn syntax(&self) -> &SyntaxNode {
30920        &self.syntax
30921    }
30922}
30923impl AstNode for WithNoData {
30924    #[inline]
30925    fn can_cast(kind: SyntaxKind) -> bool {
30926        kind == SyntaxKind::WITH_NO_DATA
30927    }
30928    #[inline]
30929    fn cast(syntax: SyntaxNode) -> Option<Self> {
30930        if Self::can_cast(syntax.kind()) {
30931            Some(Self { syntax })
30932        } else {
30933            None
30934        }
30935    }
30936    #[inline]
30937    fn syntax(&self) -> &SyntaxNode {
30938        &self.syntax
30939    }
30940}
30941impl AstNode for WithOptions {
30942    #[inline]
30943    fn can_cast(kind: SyntaxKind) -> bool {
30944        kind == SyntaxKind::WITH_OPTIONS
30945    }
30946    #[inline]
30947    fn cast(syntax: SyntaxNode) -> Option<Self> {
30948        if Self::can_cast(syntax.kind()) {
30949            Some(Self { syntax })
30950        } else {
30951            None
30952        }
30953    }
30954    #[inline]
30955    fn syntax(&self) -> &SyntaxNode {
30956        &self.syntax
30957    }
30958}
30959impl AstNode for WithParams {
30960    #[inline]
30961    fn can_cast(kind: SyntaxKind) -> bool {
30962        kind == SyntaxKind::WITH_PARAMS
30963    }
30964    #[inline]
30965    fn cast(syntax: SyntaxNode) -> Option<Self> {
30966        if Self::can_cast(syntax.kind()) {
30967            Some(Self { syntax })
30968        } else {
30969            None
30970        }
30971    }
30972    #[inline]
30973    fn syntax(&self) -> &SyntaxNode {
30974        &self.syntax
30975    }
30976}
30977impl AstNode for WithTable {
30978    #[inline]
30979    fn can_cast(kind: SyntaxKind) -> bool {
30980        kind == SyntaxKind::WITH_TABLE
30981    }
30982    #[inline]
30983    fn cast(syntax: SyntaxNode) -> Option<Self> {
30984        if Self::can_cast(syntax.kind()) {
30985            Some(Self { syntax })
30986        } else {
30987            None
30988        }
30989    }
30990    #[inline]
30991    fn syntax(&self) -> &SyntaxNode {
30992        &self.syntax
30993    }
30994}
30995impl AstNode for WithTimezone {
30996    #[inline]
30997    fn can_cast(kind: SyntaxKind) -> bool {
30998        kind == SyntaxKind::WITH_TIMEZONE
30999    }
31000    #[inline]
31001    fn cast(syntax: SyntaxNode) -> Option<Self> {
31002        if Self::can_cast(syntax.kind()) {
31003            Some(Self { syntax })
31004        } else {
31005            None
31006        }
31007    }
31008    #[inline]
31009    fn syntax(&self) -> &SyntaxNode {
31010        &self.syntax
31011    }
31012}
31013impl AstNode for WithinClause {
31014    #[inline]
31015    fn can_cast(kind: SyntaxKind) -> bool {
31016        kind == SyntaxKind::WITHIN_CLAUSE
31017    }
31018    #[inline]
31019    fn cast(syntax: SyntaxNode) -> Option<Self> {
31020        if Self::can_cast(syntax.kind()) {
31021            Some(Self { syntax })
31022        } else {
31023            None
31024        }
31025    }
31026    #[inline]
31027    fn syntax(&self) -> &SyntaxNode {
31028        &self.syntax
31029    }
31030}
31031impl AstNode for WithoutOids {
31032    #[inline]
31033    fn can_cast(kind: SyntaxKind) -> bool {
31034        kind == SyntaxKind::WITHOUT_OIDS
31035    }
31036    #[inline]
31037    fn cast(syntax: SyntaxNode) -> Option<Self> {
31038        if Self::can_cast(syntax.kind()) {
31039            Some(Self { syntax })
31040        } else {
31041            None
31042        }
31043    }
31044    #[inline]
31045    fn syntax(&self) -> &SyntaxNode {
31046        &self.syntax
31047    }
31048}
31049impl AstNode for WithoutTimezone {
31050    #[inline]
31051    fn can_cast(kind: SyntaxKind) -> bool {
31052        kind == SyntaxKind::WITHOUT_TIMEZONE
31053    }
31054    #[inline]
31055    fn cast(syntax: SyntaxNode) -> Option<Self> {
31056        if Self::can_cast(syntax.kind()) {
31057            Some(Self { syntax })
31058        } else {
31059            None
31060        }
31061    }
31062    #[inline]
31063    fn syntax(&self) -> &SyntaxNode {
31064        &self.syntax
31065    }
31066}
31067impl AstNode for XmlColumnOption {
31068    #[inline]
31069    fn can_cast(kind: SyntaxKind) -> bool {
31070        kind == SyntaxKind::XML_COLUMN_OPTION
31071    }
31072    #[inline]
31073    fn cast(syntax: SyntaxNode) -> Option<Self> {
31074        if Self::can_cast(syntax.kind()) {
31075            Some(Self { syntax })
31076        } else {
31077            None
31078        }
31079    }
31080    #[inline]
31081    fn syntax(&self) -> &SyntaxNode {
31082        &self.syntax
31083    }
31084}
31085impl AstNode for XmlColumnOptionList {
31086    #[inline]
31087    fn can_cast(kind: SyntaxKind) -> bool {
31088        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
31089    }
31090    #[inline]
31091    fn cast(syntax: SyntaxNode) -> Option<Self> {
31092        if Self::can_cast(syntax.kind()) {
31093            Some(Self { syntax })
31094        } else {
31095            None
31096        }
31097    }
31098    #[inline]
31099    fn syntax(&self) -> &SyntaxNode {
31100        &self.syntax
31101    }
31102}
31103impl AstNode for XmlElementFn {
31104    #[inline]
31105    fn can_cast(kind: SyntaxKind) -> bool {
31106        kind == SyntaxKind::XML_ELEMENT_FN
31107    }
31108    #[inline]
31109    fn cast(syntax: SyntaxNode) -> Option<Self> {
31110        if Self::can_cast(syntax.kind()) {
31111            Some(Self { syntax })
31112        } else {
31113            None
31114        }
31115    }
31116    #[inline]
31117    fn syntax(&self) -> &SyntaxNode {
31118        &self.syntax
31119    }
31120}
31121impl AstNode for XmlExistsFn {
31122    #[inline]
31123    fn can_cast(kind: SyntaxKind) -> bool {
31124        kind == SyntaxKind::XML_EXISTS_FN
31125    }
31126    #[inline]
31127    fn cast(syntax: SyntaxNode) -> Option<Self> {
31128        if Self::can_cast(syntax.kind()) {
31129            Some(Self { syntax })
31130        } else {
31131            None
31132        }
31133    }
31134    #[inline]
31135    fn syntax(&self) -> &SyntaxNode {
31136        &self.syntax
31137    }
31138}
31139impl AstNode for XmlForestFn {
31140    #[inline]
31141    fn can_cast(kind: SyntaxKind) -> bool {
31142        kind == SyntaxKind::XML_FOREST_FN
31143    }
31144    #[inline]
31145    fn cast(syntax: SyntaxNode) -> Option<Self> {
31146        if Self::can_cast(syntax.kind()) {
31147            Some(Self { syntax })
31148        } else {
31149            None
31150        }
31151    }
31152    #[inline]
31153    fn syntax(&self) -> &SyntaxNode {
31154        &self.syntax
31155    }
31156}
31157impl AstNode for XmlNamespace {
31158    #[inline]
31159    fn can_cast(kind: SyntaxKind) -> bool {
31160        kind == SyntaxKind::XML_NAMESPACE
31161    }
31162    #[inline]
31163    fn cast(syntax: SyntaxNode) -> Option<Self> {
31164        if Self::can_cast(syntax.kind()) {
31165            Some(Self { syntax })
31166        } else {
31167            None
31168        }
31169    }
31170    #[inline]
31171    fn syntax(&self) -> &SyntaxNode {
31172        &self.syntax
31173    }
31174}
31175impl AstNode for XmlNamespaceList {
31176    #[inline]
31177    fn can_cast(kind: SyntaxKind) -> bool {
31178        kind == SyntaxKind::XML_NAMESPACE_LIST
31179    }
31180    #[inline]
31181    fn cast(syntax: SyntaxNode) -> Option<Self> {
31182        if Self::can_cast(syntax.kind()) {
31183            Some(Self { syntax })
31184        } else {
31185            None
31186        }
31187    }
31188    #[inline]
31189    fn syntax(&self) -> &SyntaxNode {
31190        &self.syntax
31191    }
31192}
31193impl AstNode for XmlParseFn {
31194    #[inline]
31195    fn can_cast(kind: SyntaxKind) -> bool {
31196        kind == SyntaxKind::XML_PARSE_FN
31197    }
31198    #[inline]
31199    fn cast(syntax: SyntaxNode) -> Option<Self> {
31200        if Self::can_cast(syntax.kind()) {
31201            Some(Self { syntax })
31202        } else {
31203            None
31204        }
31205    }
31206    #[inline]
31207    fn syntax(&self) -> &SyntaxNode {
31208        &self.syntax
31209    }
31210}
31211impl AstNode for XmlPassingMech {
31212    #[inline]
31213    fn can_cast(kind: SyntaxKind) -> bool {
31214        kind == SyntaxKind::XML_PASSING_MECH
31215    }
31216    #[inline]
31217    fn cast(syntax: SyntaxNode) -> Option<Self> {
31218        if Self::can_cast(syntax.kind()) {
31219            Some(Self { syntax })
31220        } else {
31221            None
31222        }
31223    }
31224    #[inline]
31225    fn syntax(&self) -> &SyntaxNode {
31226        &self.syntax
31227    }
31228}
31229impl AstNode for XmlPiFn {
31230    #[inline]
31231    fn can_cast(kind: SyntaxKind) -> bool {
31232        kind == SyntaxKind::XML_PI_FN
31233    }
31234    #[inline]
31235    fn cast(syntax: SyntaxNode) -> Option<Self> {
31236        if Self::can_cast(syntax.kind()) {
31237            Some(Self { syntax })
31238        } else {
31239            None
31240        }
31241    }
31242    #[inline]
31243    fn syntax(&self) -> &SyntaxNode {
31244        &self.syntax
31245    }
31246}
31247impl AstNode for XmlRootFn {
31248    #[inline]
31249    fn can_cast(kind: SyntaxKind) -> bool {
31250        kind == SyntaxKind::XML_ROOT_FN
31251    }
31252    #[inline]
31253    fn cast(syntax: SyntaxNode) -> Option<Self> {
31254        if Self::can_cast(syntax.kind()) {
31255            Some(Self { syntax })
31256        } else {
31257            None
31258        }
31259    }
31260    #[inline]
31261    fn syntax(&self) -> &SyntaxNode {
31262        &self.syntax
31263    }
31264}
31265impl AstNode for XmlRowPassingClause {
31266    #[inline]
31267    fn can_cast(kind: SyntaxKind) -> bool {
31268        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
31269    }
31270    #[inline]
31271    fn cast(syntax: SyntaxNode) -> Option<Self> {
31272        if Self::can_cast(syntax.kind()) {
31273            Some(Self { syntax })
31274        } else {
31275            None
31276        }
31277    }
31278    #[inline]
31279    fn syntax(&self) -> &SyntaxNode {
31280        &self.syntax
31281    }
31282}
31283impl AstNode for XmlSerializeFn {
31284    #[inline]
31285    fn can_cast(kind: SyntaxKind) -> bool {
31286        kind == SyntaxKind::XML_SERIALIZE_FN
31287    }
31288    #[inline]
31289    fn cast(syntax: SyntaxNode) -> Option<Self> {
31290        if Self::can_cast(syntax.kind()) {
31291            Some(Self { syntax })
31292        } else {
31293            None
31294        }
31295    }
31296    #[inline]
31297    fn syntax(&self) -> &SyntaxNode {
31298        &self.syntax
31299    }
31300}
31301impl AstNode for XmlTable {
31302    #[inline]
31303    fn can_cast(kind: SyntaxKind) -> bool {
31304        kind == SyntaxKind::XML_TABLE
31305    }
31306    #[inline]
31307    fn cast(syntax: SyntaxNode) -> Option<Self> {
31308        if Self::can_cast(syntax.kind()) {
31309            Some(Self { syntax })
31310        } else {
31311            None
31312        }
31313    }
31314    #[inline]
31315    fn syntax(&self) -> &SyntaxNode {
31316        &self.syntax
31317    }
31318}
31319impl AstNode for XmlTableColumn {
31320    #[inline]
31321    fn can_cast(kind: SyntaxKind) -> bool {
31322        kind == SyntaxKind::XML_TABLE_COLUMN
31323    }
31324    #[inline]
31325    fn cast(syntax: SyntaxNode) -> Option<Self> {
31326        if Self::can_cast(syntax.kind()) {
31327            Some(Self { syntax })
31328        } else {
31329            None
31330        }
31331    }
31332    #[inline]
31333    fn syntax(&self) -> &SyntaxNode {
31334        &self.syntax
31335    }
31336}
31337impl AstNode for XmlTableColumnList {
31338    #[inline]
31339    fn can_cast(kind: SyntaxKind) -> bool {
31340        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
31341    }
31342    #[inline]
31343    fn cast(syntax: SyntaxNode) -> Option<Self> {
31344        if Self::can_cast(syntax.kind()) {
31345            Some(Self { syntax })
31346        } else {
31347            None
31348        }
31349    }
31350    #[inline]
31351    fn syntax(&self) -> &SyntaxNode {
31352        &self.syntax
31353    }
31354}
31355impl AstNode for AlterColumnOption {
31356    #[inline]
31357    fn can_cast(kind: SyntaxKind) -> bool {
31358        matches!(
31359            kind,
31360            SyntaxKind::ADD_GENERATED
31361                | SyntaxKind::DROP_DEFAULT
31362                | SyntaxKind::DROP_EXPRESSION
31363                | SyntaxKind::DROP_IDENTITY
31364                | SyntaxKind::DROP_NOT_NULL
31365                | SyntaxKind::INHERIT
31366                | SyntaxKind::NO_INHERIT
31367                | SyntaxKind::RESET_OPTIONS
31368                | SyntaxKind::RESTART
31369                | SyntaxKind::SET_COMPRESSION
31370                | SyntaxKind::SET_DEFAULT
31371                | SyntaxKind::SET_EXPRESSION
31372                | SyntaxKind::SET_GENERATED
31373                | SyntaxKind::SET_GENERATED_OPTIONS
31374                | SyntaxKind::SET_NOT_NULL
31375                | SyntaxKind::SET_OPTIONS
31376                | SyntaxKind::SET_OPTIONS_LIST
31377                | SyntaxKind::SET_SEQUENCE_OPTION
31378                | SyntaxKind::SET_STATISTICS
31379                | SyntaxKind::SET_STORAGE
31380                | SyntaxKind::SET_TYPE
31381        )
31382    }
31383    #[inline]
31384    fn cast(syntax: SyntaxNode) -> Option<Self> {
31385        let res = match syntax.kind() {
31386            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
31387            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
31388            SyntaxKind::DROP_EXPRESSION => {
31389                AlterColumnOption::DropExpression(DropExpression { syntax })
31390            }
31391            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
31392            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
31393            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
31394            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
31395            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
31396            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
31397            SyntaxKind::SET_COMPRESSION => {
31398                AlterColumnOption::SetCompression(SetCompression { syntax })
31399            }
31400            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
31401            SyntaxKind::SET_EXPRESSION => {
31402                AlterColumnOption::SetExpression(SetExpression { syntax })
31403            }
31404            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
31405            SyntaxKind::SET_GENERATED_OPTIONS => {
31406                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
31407            }
31408            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
31409            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
31410            SyntaxKind::SET_OPTIONS_LIST => {
31411                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
31412            }
31413            SyntaxKind::SET_SEQUENCE_OPTION => {
31414                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
31415            }
31416            SyntaxKind::SET_STATISTICS => {
31417                AlterColumnOption::SetStatistics(SetStatistics { syntax })
31418            }
31419            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
31420            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
31421            _ => {
31422                return None;
31423            }
31424        };
31425        Some(res)
31426    }
31427    #[inline]
31428    fn syntax(&self) -> &SyntaxNode {
31429        match self {
31430            AlterColumnOption::AddGenerated(it) => &it.syntax,
31431            AlterColumnOption::DropDefault(it) => &it.syntax,
31432            AlterColumnOption::DropExpression(it) => &it.syntax,
31433            AlterColumnOption::DropIdentity(it) => &it.syntax,
31434            AlterColumnOption::DropNotNull(it) => &it.syntax,
31435            AlterColumnOption::Inherit(it) => &it.syntax,
31436            AlterColumnOption::NoInherit(it) => &it.syntax,
31437            AlterColumnOption::ResetOptions(it) => &it.syntax,
31438            AlterColumnOption::Restart(it) => &it.syntax,
31439            AlterColumnOption::SetCompression(it) => &it.syntax,
31440            AlterColumnOption::SetDefault(it) => &it.syntax,
31441            AlterColumnOption::SetExpression(it) => &it.syntax,
31442            AlterColumnOption::SetGenerated(it) => &it.syntax,
31443            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
31444            AlterColumnOption::SetNotNull(it) => &it.syntax,
31445            AlterColumnOption::SetOptions(it) => &it.syntax,
31446            AlterColumnOption::SetOptionsList(it) => &it.syntax,
31447            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
31448            AlterColumnOption::SetStatistics(it) => &it.syntax,
31449            AlterColumnOption::SetStorage(it) => &it.syntax,
31450            AlterColumnOption::SetType(it) => &it.syntax,
31451        }
31452    }
31453}
31454impl From<AddGenerated> for AlterColumnOption {
31455    #[inline]
31456    fn from(node: AddGenerated) -> AlterColumnOption {
31457        AlterColumnOption::AddGenerated(node)
31458    }
31459}
31460impl From<DropDefault> for AlterColumnOption {
31461    #[inline]
31462    fn from(node: DropDefault) -> AlterColumnOption {
31463        AlterColumnOption::DropDefault(node)
31464    }
31465}
31466impl From<DropExpression> for AlterColumnOption {
31467    #[inline]
31468    fn from(node: DropExpression) -> AlterColumnOption {
31469        AlterColumnOption::DropExpression(node)
31470    }
31471}
31472impl From<DropIdentity> for AlterColumnOption {
31473    #[inline]
31474    fn from(node: DropIdentity) -> AlterColumnOption {
31475        AlterColumnOption::DropIdentity(node)
31476    }
31477}
31478impl From<DropNotNull> for AlterColumnOption {
31479    #[inline]
31480    fn from(node: DropNotNull) -> AlterColumnOption {
31481        AlterColumnOption::DropNotNull(node)
31482    }
31483}
31484impl From<Inherit> for AlterColumnOption {
31485    #[inline]
31486    fn from(node: Inherit) -> AlterColumnOption {
31487        AlterColumnOption::Inherit(node)
31488    }
31489}
31490impl From<NoInherit> for AlterColumnOption {
31491    #[inline]
31492    fn from(node: NoInherit) -> AlterColumnOption {
31493        AlterColumnOption::NoInherit(node)
31494    }
31495}
31496impl From<ResetOptions> for AlterColumnOption {
31497    #[inline]
31498    fn from(node: ResetOptions) -> AlterColumnOption {
31499        AlterColumnOption::ResetOptions(node)
31500    }
31501}
31502impl From<Restart> for AlterColumnOption {
31503    #[inline]
31504    fn from(node: Restart) -> AlterColumnOption {
31505        AlterColumnOption::Restart(node)
31506    }
31507}
31508impl From<SetCompression> for AlterColumnOption {
31509    #[inline]
31510    fn from(node: SetCompression) -> AlterColumnOption {
31511        AlterColumnOption::SetCompression(node)
31512    }
31513}
31514impl From<SetDefault> for AlterColumnOption {
31515    #[inline]
31516    fn from(node: SetDefault) -> AlterColumnOption {
31517        AlterColumnOption::SetDefault(node)
31518    }
31519}
31520impl From<SetExpression> for AlterColumnOption {
31521    #[inline]
31522    fn from(node: SetExpression) -> AlterColumnOption {
31523        AlterColumnOption::SetExpression(node)
31524    }
31525}
31526impl From<SetGenerated> for AlterColumnOption {
31527    #[inline]
31528    fn from(node: SetGenerated) -> AlterColumnOption {
31529        AlterColumnOption::SetGenerated(node)
31530    }
31531}
31532impl From<SetGeneratedOptions> for AlterColumnOption {
31533    #[inline]
31534    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
31535        AlterColumnOption::SetGeneratedOptions(node)
31536    }
31537}
31538impl From<SetNotNull> for AlterColumnOption {
31539    #[inline]
31540    fn from(node: SetNotNull) -> AlterColumnOption {
31541        AlterColumnOption::SetNotNull(node)
31542    }
31543}
31544impl From<SetOptions> for AlterColumnOption {
31545    #[inline]
31546    fn from(node: SetOptions) -> AlterColumnOption {
31547        AlterColumnOption::SetOptions(node)
31548    }
31549}
31550impl From<SetOptionsList> for AlterColumnOption {
31551    #[inline]
31552    fn from(node: SetOptionsList) -> AlterColumnOption {
31553        AlterColumnOption::SetOptionsList(node)
31554    }
31555}
31556impl From<SetSequenceOption> for AlterColumnOption {
31557    #[inline]
31558    fn from(node: SetSequenceOption) -> AlterColumnOption {
31559        AlterColumnOption::SetSequenceOption(node)
31560    }
31561}
31562impl From<SetStatistics> for AlterColumnOption {
31563    #[inline]
31564    fn from(node: SetStatistics) -> AlterColumnOption {
31565        AlterColumnOption::SetStatistics(node)
31566    }
31567}
31568impl From<SetStorage> for AlterColumnOption {
31569    #[inline]
31570    fn from(node: SetStorage) -> AlterColumnOption {
31571        AlterColumnOption::SetStorage(node)
31572    }
31573}
31574impl From<SetType> for AlterColumnOption {
31575    #[inline]
31576    fn from(node: SetType) -> AlterColumnOption {
31577        AlterColumnOption::SetType(node)
31578    }
31579}
31580impl AstNode for AlterDomainAction {
31581    #[inline]
31582    fn can_cast(kind: SyntaxKind) -> bool {
31583        matches!(
31584            kind,
31585            SyntaxKind::ADD_CONSTRAINT
31586                | SyntaxKind::DROP_CONSTRAINT
31587                | SyntaxKind::DROP_DEFAULT
31588                | SyntaxKind::DROP_NOT_NULL
31589                | SyntaxKind::OWNER_TO
31590                | SyntaxKind::RENAME_CONSTRAINT
31591                | SyntaxKind::RENAME_TO
31592                | SyntaxKind::SET_DEFAULT
31593                | SyntaxKind::SET_NOT_NULL
31594                | SyntaxKind::SET_SCHEMA
31595                | SyntaxKind::VALIDATE_CONSTRAINT
31596        )
31597    }
31598    #[inline]
31599    fn cast(syntax: SyntaxNode) -> Option<Self> {
31600        let res = match syntax.kind() {
31601            SyntaxKind::ADD_CONSTRAINT => {
31602                AlterDomainAction::AddConstraint(AddConstraint { syntax })
31603            }
31604            SyntaxKind::DROP_CONSTRAINT => {
31605                AlterDomainAction::DropConstraint(DropConstraint { syntax })
31606            }
31607            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
31608            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
31609            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
31610            SyntaxKind::RENAME_CONSTRAINT => {
31611                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
31612            }
31613            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
31614            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
31615            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
31616            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
31617            SyntaxKind::VALIDATE_CONSTRAINT => {
31618                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
31619            }
31620            _ => {
31621                return None;
31622            }
31623        };
31624        Some(res)
31625    }
31626    #[inline]
31627    fn syntax(&self) -> &SyntaxNode {
31628        match self {
31629            AlterDomainAction::AddConstraint(it) => &it.syntax,
31630            AlterDomainAction::DropConstraint(it) => &it.syntax,
31631            AlterDomainAction::DropDefault(it) => &it.syntax,
31632            AlterDomainAction::DropNotNull(it) => &it.syntax,
31633            AlterDomainAction::OwnerTo(it) => &it.syntax,
31634            AlterDomainAction::RenameConstraint(it) => &it.syntax,
31635            AlterDomainAction::RenameTo(it) => &it.syntax,
31636            AlterDomainAction::SetDefault(it) => &it.syntax,
31637            AlterDomainAction::SetNotNull(it) => &it.syntax,
31638            AlterDomainAction::SetSchema(it) => &it.syntax,
31639            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
31640        }
31641    }
31642}
31643impl From<AddConstraint> for AlterDomainAction {
31644    #[inline]
31645    fn from(node: AddConstraint) -> AlterDomainAction {
31646        AlterDomainAction::AddConstraint(node)
31647    }
31648}
31649impl From<DropConstraint> for AlterDomainAction {
31650    #[inline]
31651    fn from(node: DropConstraint) -> AlterDomainAction {
31652        AlterDomainAction::DropConstraint(node)
31653    }
31654}
31655impl From<DropDefault> for AlterDomainAction {
31656    #[inline]
31657    fn from(node: DropDefault) -> AlterDomainAction {
31658        AlterDomainAction::DropDefault(node)
31659    }
31660}
31661impl From<DropNotNull> for AlterDomainAction {
31662    #[inline]
31663    fn from(node: DropNotNull) -> AlterDomainAction {
31664        AlterDomainAction::DropNotNull(node)
31665    }
31666}
31667impl From<OwnerTo> for AlterDomainAction {
31668    #[inline]
31669    fn from(node: OwnerTo) -> AlterDomainAction {
31670        AlterDomainAction::OwnerTo(node)
31671    }
31672}
31673impl From<RenameConstraint> for AlterDomainAction {
31674    #[inline]
31675    fn from(node: RenameConstraint) -> AlterDomainAction {
31676        AlterDomainAction::RenameConstraint(node)
31677    }
31678}
31679impl From<RenameTo> for AlterDomainAction {
31680    #[inline]
31681    fn from(node: RenameTo) -> AlterDomainAction {
31682        AlterDomainAction::RenameTo(node)
31683    }
31684}
31685impl From<SetDefault> for AlterDomainAction {
31686    #[inline]
31687    fn from(node: SetDefault) -> AlterDomainAction {
31688        AlterDomainAction::SetDefault(node)
31689    }
31690}
31691impl From<SetNotNull> for AlterDomainAction {
31692    #[inline]
31693    fn from(node: SetNotNull) -> AlterDomainAction {
31694        AlterDomainAction::SetNotNull(node)
31695    }
31696}
31697impl From<SetSchema> for AlterDomainAction {
31698    #[inline]
31699    fn from(node: SetSchema) -> AlterDomainAction {
31700        AlterDomainAction::SetSchema(node)
31701    }
31702}
31703impl From<ValidateConstraint> for AlterDomainAction {
31704    #[inline]
31705    fn from(node: ValidateConstraint) -> AlterDomainAction {
31706        AlterDomainAction::ValidateConstraint(node)
31707    }
31708}
31709impl AstNode for AlterIndexAction {
31710    #[inline]
31711    fn can_cast(kind: SyntaxKind) -> bool {
31712        matches!(
31713            kind,
31714            SyntaxKind::ALTER_SET_STATISTICS
31715                | SyntaxKind::ATTACH_PARTITION
31716                | SyntaxKind::DEPENDS_ON_EXTENSION
31717                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31718                | SyntaxKind::RENAME_TO
31719                | SyntaxKind::RESET_OPTIONS
31720                | SyntaxKind::SET_OPTIONS
31721                | SyntaxKind::SET_TABLESPACE
31722        )
31723    }
31724    #[inline]
31725    fn cast(syntax: SyntaxNode) -> Option<Self> {
31726        let res = match syntax.kind() {
31727            SyntaxKind::ALTER_SET_STATISTICS => {
31728                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
31729            }
31730            SyntaxKind::ATTACH_PARTITION => {
31731                AlterIndexAction::AttachPartition(AttachPartition { syntax })
31732            }
31733            SyntaxKind::DEPENDS_ON_EXTENSION => {
31734                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
31735            }
31736            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31737                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31738            }
31739            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
31740            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
31741            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
31742            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
31743            _ => {
31744                return None;
31745            }
31746        };
31747        Some(res)
31748    }
31749    #[inline]
31750    fn syntax(&self) -> &SyntaxNode {
31751        match self {
31752            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
31753            AlterIndexAction::AttachPartition(it) => &it.syntax,
31754            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
31755            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
31756            AlterIndexAction::RenameTo(it) => &it.syntax,
31757            AlterIndexAction::ResetOptions(it) => &it.syntax,
31758            AlterIndexAction::SetOptions(it) => &it.syntax,
31759            AlterIndexAction::SetTablespace(it) => &it.syntax,
31760        }
31761    }
31762}
31763impl From<AlterSetStatistics> for AlterIndexAction {
31764    #[inline]
31765    fn from(node: AlterSetStatistics) -> AlterIndexAction {
31766        AlterIndexAction::AlterSetStatistics(node)
31767    }
31768}
31769impl From<AttachPartition> for AlterIndexAction {
31770    #[inline]
31771    fn from(node: AttachPartition) -> AlterIndexAction {
31772        AlterIndexAction::AttachPartition(node)
31773    }
31774}
31775impl From<DependsOnExtension> for AlterIndexAction {
31776    #[inline]
31777    fn from(node: DependsOnExtension) -> AlterIndexAction {
31778        AlterIndexAction::DependsOnExtension(node)
31779    }
31780}
31781impl From<NoDependsOnExtension> for AlterIndexAction {
31782    #[inline]
31783    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
31784        AlterIndexAction::NoDependsOnExtension(node)
31785    }
31786}
31787impl From<RenameTo> for AlterIndexAction {
31788    #[inline]
31789    fn from(node: RenameTo) -> AlterIndexAction {
31790        AlterIndexAction::RenameTo(node)
31791    }
31792}
31793impl From<ResetOptions> for AlterIndexAction {
31794    #[inline]
31795    fn from(node: ResetOptions) -> AlterIndexAction {
31796        AlterIndexAction::ResetOptions(node)
31797    }
31798}
31799impl From<SetOptions> for AlterIndexAction {
31800    #[inline]
31801    fn from(node: SetOptions) -> AlterIndexAction {
31802        AlterIndexAction::SetOptions(node)
31803    }
31804}
31805impl From<SetTablespace> for AlterIndexAction {
31806    #[inline]
31807    fn from(node: SetTablespace) -> AlterIndexAction {
31808        AlterIndexAction::SetTablespace(node)
31809    }
31810}
31811impl AstNode for AlterMaterializedViewAction {
31812    #[inline]
31813    fn can_cast(kind: SyntaxKind) -> bool {
31814        matches!(
31815            kind,
31816            SyntaxKind::DEPENDS_ON_EXTENSION
31817                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31818                | SyntaxKind::RENAME_COLUMN
31819                | SyntaxKind::RENAME_TO
31820                | SyntaxKind::SET_SCHEMA
31821        )
31822    }
31823    #[inline]
31824    fn cast(syntax: SyntaxNode) -> Option<Self> {
31825        let res = match syntax.kind() {
31826            SyntaxKind::DEPENDS_ON_EXTENSION => {
31827                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
31828            }
31829            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31830                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31831            }
31832            SyntaxKind::RENAME_COLUMN => {
31833                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
31834            }
31835            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
31836            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
31837            _ => {
31838                if let Some(result) = AlterTableAction::cast(syntax) {
31839                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
31840                }
31841                return None;
31842            }
31843        };
31844        Some(res)
31845    }
31846    #[inline]
31847    fn syntax(&self) -> &SyntaxNode {
31848        match self {
31849            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
31850            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
31851            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
31852            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
31853            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
31854            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
31855        }
31856    }
31857}
31858impl From<DependsOnExtension> for AlterMaterializedViewAction {
31859    #[inline]
31860    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
31861        AlterMaterializedViewAction::DependsOnExtension(node)
31862    }
31863}
31864impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
31865    #[inline]
31866    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
31867        AlterMaterializedViewAction::NoDependsOnExtension(node)
31868    }
31869}
31870impl From<RenameColumn> for AlterMaterializedViewAction {
31871    #[inline]
31872    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
31873        AlterMaterializedViewAction::RenameColumn(node)
31874    }
31875}
31876impl From<RenameTo> for AlterMaterializedViewAction {
31877    #[inline]
31878    fn from(node: RenameTo) -> AlterMaterializedViewAction {
31879        AlterMaterializedViewAction::RenameTo(node)
31880    }
31881}
31882impl From<SetSchema> for AlterMaterializedViewAction {
31883    #[inline]
31884    fn from(node: SetSchema) -> AlterMaterializedViewAction {
31885        AlterMaterializedViewAction::SetSchema(node)
31886    }
31887}
31888impl AstNode for AlterPropertyGraphAction {
31889    #[inline]
31890    fn can_cast(kind: SyntaxKind) -> bool {
31891        matches!(
31892            kind,
31893            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
31894                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
31895                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
31896                | SyntaxKind::DROP_EDGE_TABLES
31897                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
31898                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
31899                | SyntaxKind::DROP_VERTEX_TABLES
31900                | SyntaxKind::OWNER_TO
31901                | SyntaxKind::RENAME_TO
31902                | SyntaxKind::SET_SCHEMA
31903        )
31904    }
31905    #[inline]
31906    fn cast(syntax: SyntaxNode) -> Option<Self> {
31907        let res = match syntax.kind() {
31908            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
31909                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
31910                    AddVertexEdgeLabelProperties { syntax },
31911                )
31912            }
31913            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
31914                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
31915            }
31916            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
31917                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
31918            }
31919            SyntaxKind::DROP_EDGE_TABLES => {
31920                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
31921            }
31922            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
31923                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
31924            }
31925            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
31926                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
31927                    DropVertexEdgeLabelProperties { syntax },
31928                )
31929            }
31930            SyntaxKind::DROP_VERTEX_TABLES => {
31931                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
31932            }
31933            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
31934            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
31935            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
31936            _ => {
31937                return None;
31938            }
31939        };
31940        Some(res)
31941    }
31942    #[inline]
31943    fn syntax(&self) -> &SyntaxNode {
31944        match self {
31945            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
31946            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
31947            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
31948            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
31949            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
31950            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
31951            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
31952            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
31953            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
31954            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
31955        }
31956    }
31957}
31958impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31959    #[inline]
31960    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31961        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
31962    }
31963}
31964impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
31965    #[inline]
31966    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
31967        AlterPropertyGraphAction::AddVertexEdgeTables(node)
31968    }
31969}
31970impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
31971    #[inline]
31972    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
31973        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
31974    }
31975}
31976impl From<DropEdgeTables> for AlterPropertyGraphAction {
31977    #[inline]
31978    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
31979        AlterPropertyGraphAction::DropEdgeTables(node)
31980    }
31981}
31982impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
31983    #[inline]
31984    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
31985        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
31986    }
31987}
31988impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31989    #[inline]
31990    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31991        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
31992    }
31993}
31994impl From<DropVertexTables> for AlterPropertyGraphAction {
31995    #[inline]
31996    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
31997        AlterPropertyGraphAction::DropVertexTables(node)
31998    }
31999}
32000impl From<OwnerTo> for AlterPropertyGraphAction {
32001    #[inline]
32002    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
32003        AlterPropertyGraphAction::OwnerTo(node)
32004    }
32005}
32006impl From<RenameTo> for AlterPropertyGraphAction {
32007    #[inline]
32008    fn from(node: RenameTo) -> AlterPropertyGraphAction {
32009        AlterPropertyGraphAction::RenameTo(node)
32010    }
32011}
32012impl From<SetSchema> for AlterPropertyGraphAction {
32013    #[inline]
32014    fn from(node: SetSchema) -> AlterPropertyGraphAction {
32015        AlterPropertyGraphAction::SetSchema(node)
32016    }
32017}
32018impl AstNode for AlterTableAction {
32019    #[inline]
32020    fn can_cast(kind: SyntaxKind) -> bool {
32021        matches!(
32022            kind,
32023            SyntaxKind::ADD_COLUMN
32024                | SyntaxKind::ADD_CONSTRAINT
32025                | SyntaxKind::ALTER_COLUMN
32026                | SyntaxKind::ALTER_CONSTRAINT
32027                | SyntaxKind::ATTACH_PARTITION
32028                | SyntaxKind::CLUSTER_ON
32029                | SyntaxKind::DETACH_PARTITION
32030                | SyntaxKind::DISABLE_RLS
32031                | SyntaxKind::DISABLE_RULE
32032                | SyntaxKind::DISABLE_TRIGGER
32033                | SyntaxKind::DROP_COLUMN
32034                | SyntaxKind::DROP_CONSTRAINT
32035                | SyntaxKind::ENABLE_ALWAYS_RULE
32036                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
32037                | SyntaxKind::ENABLE_REPLICA_RULE
32038                | SyntaxKind::ENABLE_REPLICA_TRIGGER
32039                | SyntaxKind::ENABLE_RLS
32040                | SyntaxKind::ENABLE_RULE
32041                | SyntaxKind::ENABLE_TRIGGER
32042                | SyntaxKind::FORCE_RLS
32043                | SyntaxKind::INHERIT_TABLE
32044                | SyntaxKind::MERGE_PARTITIONS
32045                | SyntaxKind::NO_FORCE_RLS
32046                | SyntaxKind::NO_INHERIT_TABLE
32047                | SyntaxKind::NOT_OF
32048                | SyntaxKind::OF_TYPE
32049                | SyntaxKind::OPTION_ITEM_LIST
32050                | SyntaxKind::OWNER_TO
32051                | SyntaxKind::RENAME_COLUMN
32052                | SyntaxKind::RENAME_CONSTRAINT
32053                | SyntaxKind::RENAME_TO
32054                | SyntaxKind::REPLICA_IDENTITY
32055                | SyntaxKind::RESET_OPTIONS
32056                | SyntaxKind::SET_ACCESS_METHOD
32057                | SyntaxKind::SET_LOGGED
32058                | SyntaxKind::SET_OPTIONS
32059                | SyntaxKind::SET_SCHEMA
32060                | SyntaxKind::SET_TABLESPACE
32061                | SyntaxKind::SET_UNLOGGED
32062                | SyntaxKind::SET_WITHOUT_CLUSTER
32063                | SyntaxKind::SET_WITHOUT_OIDS
32064                | SyntaxKind::SPLIT_PARTITION
32065                | SyntaxKind::VALIDATE_CONSTRAINT
32066        )
32067    }
32068    #[inline]
32069    fn cast(syntax: SyntaxNode) -> Option<Self> {
32070        let res = match syntax.kind() {
32071            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
32072            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
32073            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
32074            SyntaxKind::ALTER_CONSTRAINT => {
32075                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
32076            }
32077            SyntaxKind::ATTACH_PARTITION => {
32078                AlterTableAction::AttachPartition(AttachPartition { syntax })
32079            }
32080            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
32081            SyntaxKind::DETACH_PARTITION => {
32082                AlterTableAction::DetachPartition(DetachPartition { syntax })
32083            }
32084            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
32085            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
32086            SyntaxKind::DISABLE_TRIGGER => {
32087                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
32088            }
32089            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
32090            SyntaxKind::DROP_CONSTRAINT => {
32091                AlterTableAction::DropConstraint(DropConstraint { syntax })
32092            }
32093            SyntaxKind::ENABLE_ALWAYS_RULE => {
32094                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
32095            }
32096            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
32097                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
32098            }
32099            SyntaxKind::ENABLE_REPLICA_RULE => {
32100                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
32101            }
32102            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
32103                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
32104            }
32105            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
32106            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
32107            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
32108            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
32109            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
32110            SyntaxKind::MERGE_PARTITIONS => {
32111                AlterTableAction::MergePartitions(MergePartitions { syntax })
32112            }
32113            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
32114            SyntaxKind::NO_INHERIT_TABLE => {
32115                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
32116            }
32117            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
32118            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
32119            SyntaxKind::OPTION_ITEM_LIST => {
32120                AlterTableAction::OptionItemList(OptionItemList { syntax })
32121            }
32122            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
32123            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
32124            SyntaxKind::RENAME_CONSTRAINT => {
32125                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
32126            }
32127            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
32128            SyntaxKind::REPLICA_IDENTITY => {
32129                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
32130            }
32131            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
32132            SyntaxKind::SET_ACCESS_METHOD => {
32133                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
32134            }
32135            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
32136            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
32137            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
32138            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
32139            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
32140            SyntaxKind::SET_WITHOUT_CLUSTER => {
32141                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
32142            }
32143            SyntaxKind::SET_WITHOUT_OIDS => {
32144                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
32145            }
32146            SyntaxKind::SPLIT_PARTITION => {
32147                AlterTableAction::SplitPartition(SplitPartition { syntax })
32148            }
32149            SyntaxKind::VALIDATE_CONSTRAINT => {
32150                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
32151            }
32152            _ => {
32153                return None;
32154            }
32155        };
32156        Some(res)
32157    }
32158    #[inline]
32159    fn syntax(&self) -> &SyntaxNode {
32160        match self {
32161            AlterTableAction::AddColumn(it) => &it.syntax,
32162            AlterTableAction::AddConstraint(it) => &it.syntax,
32163            AlterTableAction::AlterColumn(it) => &it.syntax,
32164            AlterTableAction::AlterConstraint(it) => &it.syntax,
32165            AlterTableAction::AttachPartition(it) => &it.syntax,
32166            AlterTableAction::ClusterOn(it) => &it.syntax,
32167            AlterTableAction::DetachPartition(it) => &it.syntax,
32168            AlterTableAction::DisableRls(it) => &it.syntax,
32169            AlterTableAction::DisableRule(it) => &it.syntax,
32170            AlterTableAction::DisableTrigger(it) => &it.syntax,
32171            AlterTableAction::DropColumn(it) => &it.syntax,
32172            AlterTableAction::DropConstraint(it) => &it.syntax,
32173            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
32174            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
32175            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
32176            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
32177            AlterTableAction::EnableRls(it) => &it.syntax,
32178            AlterTableAction::EnableRule(it) => &it.syntax,
32179            AlterTableAction::EnableTrigger(it) => &it.syntax,
32180            AlterTableAction::ForceRls(it) => &it.syntax,
32181            AlterTableAction::InheritTable(it) => &it.syntax,
32182            AlterTableAction::MergePartitions(it) => &it.syntax,
32183            AlterTableAction::NoForceRls(it) => &it.syntax,
32184            AlterTableAction::NoInheritTable(it) => &it.syntax,
32185            AlterTableAction::NotOf(it) => &it.syntax,
32186            AlterTableAction::OfType(it) => &it.syntax,
32187            AlterTableAction::OptionItemList(it) => &it.syntax,
32188            AlterTableAction::OwnerTo(it) => &it.syntax,
32189            AlterTableAction::RenameColumn(it) => &it.syntax,
32190            AlterTableAction::RenameConstraint(it) => &it.syntax,
32191            AlterTableAction::RenameTo(it) => &it.syntax,
32192            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
32193            AlterTableAction::ResetOptions(it) => &it.syntax,
32194            AlterTableAction::SetAccessMethod(it) => &it.syntax,
32195            AlterTableAction::SetLogged(it) => &it.syntax,
32196            AlterTableAction::SetOptions(it) => &it.syntax,
32197            AlterTableAction::SetSchema(it) => &it.syntax,
32198            AlterTableAction::SetTablespace(it) => &it.syntax,
32199            AlterTableAction::SetUnlogged(it) => &it.syntax,
32200            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
32201            AlterTableAction::SetWithoutOids(it) => &it.syntax,
32202            AlterTableAction::SplitPartition(it) => &it.syntax,
32203            AlterTableAction::ValidateConstraint(it) => &it.syntax,
32204        }
32205    }
32206}
32207impl From<AddColumn> for AlterTableAction {
32208    #[inline]
32209    fn from(node: AddColumn) -> AlterTableAction {
32210        AlterTableAction::AddColumn(node)
32211    }
32212}
32213impl From<AddConstraint> for AlterTableAction {
32214    #[inline]
32215    fn from(node: AddConstraint) -> AlterTableAction {
32216        AlterTableAction::AddConstraint(node)
32217    }
32218}
32219impl From<AlterColumn> for AlterTableAction {
32220    #[inline]
32221    fn from(node: AlterColumn) -> AlterTableAction {
32222        AlterTableAction::AlterColumn(node)
32223    }
32224}
32225impl From<AlterConstraint> for AlterTableAction {
32226    #[inline]
32227    fn from(node: AlterConstraint) -> AlterTableAction {
32228        AlterTableAction::AlterConstraint(node)
32229    }
32230}
32231impl From<AttachPartition> for AlterTableAction {
32232    #[inline]
32233    fn from(node: AttachPartition) -> AlterTableAction {
32234        AlterTableAction::AttachPartition(node)
32235    }
32236}
32237impl From<ClusterOn> for AlterTableAction {
32238    #[inline]
32239    fn from(node: ClusterOn) -> AlterTableAction {
32240        AlterTableAction::ClusterOn(node)
32241    }
32242}
32243impl From<DetachPartition> for AlterTableAction {
32244    #[inline]
32245    fn from(node: DetachPartition) -> AlterTableAction {
32246        AlterTableAction::DetachPartition(node)
32247    }
32248}
32249impl From<DisableRls> for AlterTableAction {
32250    #[inline]
32251    fn from(node: DisableRls) -> AlterTableAction {
32252        AlterTableAction::DisableRls(node)
32253    }
32254}
32255impl From<DisableRule> for AlterTableAction {
32256    #[inline]
32257    fn from(node: DisableRule) -> AlterTableAction {
32258        AlterTableAction::DisableRule(node)
32259    }
32260}
32261impl From<DisableTrigger> for AlterTableAction {
32262    #[inline]
32263    fn from(node: DisableTrigger) -> AlterTableAction {
32264        AlterTableAction::DisableTrigger(node)
32265    }
32266}
32267impl From<DropColumn> for AlterTableAction {
32268    #[inline]
32269    fn from(node: DropColumn) -> AlterTableAction {
32270        AlterTableAction::DropColumn(node)
32271    }
32272}
32273impl From<DropConstraint> for AlterTableAction {
32274    #[inline]
32275    fn from(node: DropConstraint) -> AlterTableAction {
32276        AlterTableAction::DropConstraint(node)
32277    }
32278}
32279impl From<EnableAlwaysRule> for AlterTableAction {
32280    #[inline]
32281    fn from(node: EnableAlwaysRule) -> AlterTableAction {
32282        AlterTableAction::EnableAlwaysRule(node)
32283    }
32284}
32285impl From<EnableAlwaysTrigger> for AlterTableAction {
32286    #[inline]
32287    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
32288        AlterTableAction::EnableAlwaysTrigger(node)
32289    }
32290}
32291impl From<EnableReplicaRule> for AlterTableAction {
32292    #[inline]
32293    fn from(node: EnableReplicaRule) -> AlterTableAction {
32294        AlterTableAction::EnableReplicaRule(node)
32295    }
32296}
32297impl From<EnableReplicaTrigger> for AlterTableAction {
32298    #[inline]
32299    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
32300        AlterTableAction::EnableReplicaTrigger(node)
32301    }
32302}
32303impl From<EnableRls> for AlterTableAction {
32304    #[inline]
32305    fn from(node: EnableRls) -> AlterTableAction {
32306        AlterTableAction::EnableRls(node)
32307    }
32308}
32309impl From<EnableRule> for AlterTableAction {
32310    #[inline]
32311    fn from(node: EnableRule) -> AlterTableAction {
32312        AlterTableAction::EnableRule(node)
32313    }
32314}
32315impl From<EnableTrigger> for AlterTableAction {
32316    #[inline]
32317    fn from(node: EnableTrigger) -> AlterTableAction {
32318        AlterTableAction::EnableTrigger(node)
32319    }
32320}
32321impl From<ForceRls> for AlterTableAction {
32322    #[inline]
32323    fn from(node: ForceRls) -> AlterTableAction {
32324        AlterTableAction::ForceRls(node)
32325    }
32326}
32327impl From<InheritTable> for AlterTableAction {
32328    #[inline]
32329    fn from(node: InheritTable) -> AlterTableAction {
32330        AlterTableAction::InheritTable(node)
32331    }
32332}
32333impl From<MergePartitions> for AlterTableAction {
32334    #[inline]
32335    fn from(node: MergePartitions) -> AlterTableAction {
32336        AlterTableAction::MergePartitions(node)
32337    }
32338}
32339impl From<NoForceRls> for AlterTableAction {
32340    #[inline]
32341    fn from(node: NoForceRls) -> AlterTableAction {
32342        AlterTableAction::NoForceRls(node)
32343    }
32344}
32345impl From<NoInheritTable> for AlterTableAction {
32346    #[inline]
32347    fn from(node: NoInheritTable) -> AlterTableAction {
32348        AlterTableAction::NoInheritTable(node)
32349    }
32350}
32351impl From<NotOf> for AlterTableAction {
32352    #[inline]
32353    fn from(node: NotOf) -> AlterTableAction {
32354        AlterTableAction::NotOf(node)
32355    }
32356}
32357impl From<OfType> for AlterTableAction {
32358    #[inline]
32359    fn from(node: OfType) -> AlterTableAction {
32360        AlterTableAction::OfType(node)
32361    }
32362}
32363impl From<OptionItemList> for AlterTableAction {
32364    #[inline]
32365    fn from(node: OptionItemList) -> AlterTableAction {
32366        AlterTableAction::OptionItemList(node)
32367    }
32368}
32369impl From<OwnerTo> for AlterTableAction {
32370    #[inline]
32371    fn from(node: OwnerTo) -> AlterTableAction {
32372        AlterTableAction::OwnerTo(node)
32373    }
32374}
32375impl From<RenameColumn> for AlterTableAction {
32376    #[inline]
32377    fn from(node: RenameColumn) -> AlterTableAction {
32378        AlterTableAction::RenameColumn(node)
32379    }
32380}
32381impl From<RenameConstraint> for AlterTableAction {
32382    #[inline]
32383    fn from(node: RenameConstraint) -> AlterTableAction {
32384        AlterTableAction::RenameConstraint(node)
32385    }
32386}
32387impl From<RenameTo> for AlterTableAction {
32388    #[inline]
32389    fn from(node: RenameTo) -> AlterTableAction {
32390        AlterTableAction::RenameTo(node)
32391    }
32392}
32393impl From<ReplicaIdentity> for AlterTableAction {
32394    #[inline]
32395    fn from(node: ReplicaIdentity) -> AlterTableAction {
32396        AlterTableAction::ReplicaIdentity(node)
32397    }
32398}
32399impl From<ResetOptions> for AlterTableAction {
32400    #[inline]
32401    fn from(node: ResetOptions) -> AlterTableAction {
32402        AlterTableAction::ResetOptions(node)
32403    }
32404}
32405impl From<SetAccessMethod> for AlterTableAction {
32406    #[inline]
32407    fn from(node: SetAccessMethod) -> AlterTableAction {
32408        AlterTableAction::SetAccessMethod(node)
32409    }
32410}
32411impl From<SetLogged> for AlterTableAction {
32412    #[inline]
32413    fn from(node: SetLogged) -> AlterTableAction {
32414        AlterTableAction::SetLogged(node)
32415    }
32416}
32417impl From<SetOptions> for AlterTableAction {
32418    #[inline]
32419    fn from(node: SetOptions) -> AlterTableAction {
32420        AlterTableAction::SetOptions(node)
32421    }
32422}
32423impl From<SetSchema> for AlterTableAction {
32424    #[inline]
32425    fn from(node: SetSchema) -> AlterTableAction {
32426        AlterTableAction::SetSchema(node)
32427    }
32428}
32429impl From<SetTablespace> for AlterTableAction {
32430    #[inline]
32431    fn from(node: SetTablespace) -> AlterTableAction {
32432        AlterTableAction::SetTablespace(node)
32433    }
32434}
32435impl From<SetUnlogged> for AlterTableAction {
32436    #[inline]
32437    fn from(node: SetUnlogged) -> AlterTableAction {
32438        AlterTableAction::SetUnlogged(node)
32439    }
32440}
32441impl From<SetWithoutCluster> for AlterTableAction {
32442    #[inline]
32443    fn from(node: SetWithoutCluster) -> AlterTableAction {
32444        AlterTableAction::SetWithoutCluster(node)
32445    }
32446}
32447impl From<SetWithoutOids> for AlterTableAction {
32448    #[inline]
32449    fn from(node: SetWithoutOids) -> AlterTableAction {
32450        AlterTableAction::SetWithoutOids(node)
32451    }
32452}
32453impl From<SplitPartition> for AlterTableAction {
32454    #[inline]
32455    fn from(node: SplitPartition) -> AlterTableAction {
32456        AlterTableAction::SplitPartition(node)
32457    }
32458}
32459impl From<ValidateConstraint> for AlterTableAction {
32460    #[inline]
32461    fn from(node: ValidateConstraint) -> AlterTableAction {
32462        AlterTableAction::ValidateConstraint(node)
32463    }
32464}
32465impl AstNode for AlterTypeAction {
32466    #[inline]
32467    fn can_cast(kind: SyntaxKind) -> bool {
32468        matches!(
32469            kind,
32470            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
32471        )
32472    }
32473    #[inline]
32474    fn cast(syntax: SyntaxNode) -> Option<Self> {
32475        let res = match syntax.kind() {
32476            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
32477            SyntaxKind::ALTER_ATTRIBUTE => {
32478                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
32479            }
32480            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
32481            _ => {
32482                return None;
32483            }
32484        };
32485        Some(res)
32486    }
32487    #[inline]
32488    fn syntax(&self) -> &SyntaxNode {
32489        match self {
32490            AlterTypeAction::AddAttribute(it) => &it.syntax,
32491            AlterTypeAction::AlterAttribute(it) => &it.syntax,
32492            AlterTypeAction::DropAttribute(it) => &it.syntax,
32493        }
32494    }
32495}
32496impl From<AddAttribute> for AlterTypeAction {
32497    #[inline]
32498    fn from(node: AddAttribute) -> AlterTypeAction {
32499        AlterTypeAction::AddAttribute(node)
32500    }
32501}
32502impl From<AlterAttribute> for AlterTypeAction {
32503    #[inline]
32504    fn from(node: AlterAttribute) -> AlterTypeAction {
32505        AlterTypeAction::AlterAttribute(node)
32506    }
32507}
32508impl From<DropAttribute> for AlterTypeAction {
32509    #[inline]
32510    fn from(node: DropAttribute) -> AlterTypeAction {
32511        AlterTypeAction::DropAttribute(node)
32512    }
32513}
32514impl AstNode for ColumnConstraint {
32515    #[inline]
32516    fn can_cast(kind: SyntaxKind) -> bool {
32517        matches!(
32518            kind,
32519            SyntaxKind::CHECK_CONSTRAINT
32520                | SyntaxKind::DEFAULT_CONSTRAINT
32521                | SyntaxKind::EXCLUDE_CONSTRAINT
32522                | SyntaxKind::NOT_NULL_CONSTRAINT
32523                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32524                | SyntaxKind::REFERENCES_CONSTRAINT
32525                | SyntaxKind::UNIQUE_CONSTRAINT
32526        )
32527    }
32528    #[inline]
32529    fn cast(syntax: SyntaxNode) -> Option<Self> {
32530        let res = match syntax.kind() {
32531            SyntaxKind::CHECK_CONSTRAINT => {
32532                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
32533            }
32534            SyntaxKind::DEFAULT_CONSTRAINT => {
32535                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
32536            }
32537            SyntaxKind::EXCLUDE_CONSTRAINT => {
32538                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32539            }
32540            SyntaxKind::NOT_NULL_CONSTRAINT => {
32541                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
32542            }
32543            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32544                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32545            }
32546            SyntaxKind::REFERENCES_CONSTRAINT => {
32547                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
32548            }
32549            SyntaxKind::UNIQUE_CONSTRAINT => {
32550                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
32551            }
32552            _ => {
32553                return None;
32554            }
32555        };
32556        Some(res)
32557    }
32558    #[inline]
32559    fn syntax(&self) -> &SyntaxNode {
32560        match self {
32561            ColumnConstraint::CheckConstraint(it) => &it.syntax,
32562            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
32563            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
32564            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
32565            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32566            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
32567            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
32568        }
32569    }
32570}
32571impl From<CheckConstraint> for ColumnConstraint {
32572    #[inline]
32573    fn from(node: CheckConstraint) -> ColumnConstraint {
32574        ColumnConstraint::CheckConstraint(node)
32575    }
32576}
32577impl From<DefaultConstraint> for ColumnConstraint {
32578    #[inline]
32579    fn from(node: DefaultConstraint) -> ColumnConstraint {
32580        ColumnConstraint::DefaultConstraint(node)
32581    }
32582}
32583impl From<ExcludeConstraint> for ColumnConstraint {
32584    #[inline]
32585    fn from(node: ExcludeConstraint) -> ColumnConstraint {
32586        ColumnConstraint::ExcludeConstraint(node)
32587    }
32588}
32589impl From<NotNullConstraint> for ColumnConstraint {
32590    #[inline]
32591    fn from(node: NotNullConstraint) -> ColumnConstraint {
32592        ColumnConstraint::NotNullConstraint(node)
32593    }
32594}
32595impl From<PrimaryKeyConstraint> for ColumnConstraint {
32596    #[inline]
32597    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
32598        ColumnConstraint::PrimaryKeyConstraint(node)
32599    }
32600}
32601impl From<ReferencesConstraint> for ColumnConstraint {
32602    #[inline]
32603    fn from(node: ReferencesConstraint) -> ColumnConstraint {
32604        ColumnConstraint::ReferencesConstraint(node)
32605    }
32606}
32607impl From<UniqueConstraint> for ColumnConstraint {
32608    #[inline]
32609    fn from(node: UniqueConstraint) -> ColumnConstraint {
32610        ColumnConstraint::UniqueConstraint(node)
32611    }
32612}
32613impl AstNode for ConfigValue {
32614    #[inline]
32615    fn can_cast(kind: SyntaxKind) -> bool {
32616        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
32617    }
32618    #[inline]
32619    fn cast(syntax: SyntaxNode) -> Option<Self> {
32620        let res = match syntax.kind() {
32621            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
32622            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
32623            _ => {
32624                return None;
32625            }
32626        };
32627        Some(res)
32628    }
32629    #[inline]
32630    fn syntax(&self) -> &SyntaxNode {
32631        match self {
32632            ConfigValue::Literal(it) => &it.syntax,
32633            ConfigValue::NameRef(it) => &it.syntax,
32634        }
32635    }
32636}
32637impl From<Literal> for ConfigValue {
32638    #[inline]
32639    fn from(node: Literal) -> ConfigValue {
32640        ConfigValue::Literal(node)
32641    }
32642}
32643impl From<NameRef> for ConfigValue {
32644    #[inline]
32645    fn from(node: NameRef) -> ConfigValue {
32646        ConfigValue::NameRef(node)
32647    }
32648}
32649impl AstNode for ConflictAction {
32650    #[inline]
32651    fn can_cast(kind: SyntaxKind) -> bool {
32652        matches!(
32653            kind,
32654            SyntaxKind::CONFLICT_DO_NOTHING
32655                | SyntaxKind::CONFLICT_DO_SELECT
32656                | SyntaxKind::CONFLICT_DO_UPDATE_SET
32657        )
32658    }
32659    #[inline]
32660    fn cast(syntax: SyntaxNode) -> Option<Self> {
32661        let res = match syntax.kind() {
32662            SyntaxKind::CONFLICT_DO_NOTHING => {
32663                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
32664            }
32665            SyntaxKind::CONFLICT_DO_SELECT => {
32666                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
32667            }
32668            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
32669                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
32670            }
32671            _ => {
32672                return None;
32673            }
32674        };
32675        Some(res)
32676    }
32677    #[inline]
32678    fn syntax(&self) -> &SyntaxNode {
32679        match self {
32680            ConflictAction::ConflictDoNothing(it) => &it.syntax,
32681            ConflictAction::ConflictDoSelect(it) => &it.syntax,
32682            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
32683        }
32684    }
32685}
32686impl From<ConflictDoNothing> for ConflictAction {
32687    #[inline]
32688    fn from(node: ConflictDoNothing) -> ConflictAction {
32689        ConflictAction::ConflictDoNothing(node)
32690    }
32691}
32692impl From<ConflictDoSelect> for ConflictAction {
32693    #[inline]
32694    fn from(node: ConflictDoSelect) -> ConflictAction {
32695        ConflictAction::ConflictDoSelect(node)
32696    }
32697}
32698impl From<ConflictDoUpdateSet> for ConflictAction {
32699    #[inline]
32700    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
32701        ConflictAction::ConflictDoUpdateSet(node)
32702    }
32703}
32704impl AstNode for ConflictTarget {
32705    #[inline]
32706    fn can_cast(kind: SyntaxKind) -> bool {
32707        matches!(
32708            kind,
32709            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
32710        )
32711    }
32712    #[inline]
32713    fn cast(syntax: SyntaxNode) -> Option<Self> {
32714        let res = match syntax.kind() {
32715            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
32716                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
32717            }
32718            SyntaxKind::CONFLICT_ON_INDEX => {
32719                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
32720            }
32721            _ => {
32722                return None;
32723            }
32724        };
32725        Some(res)
32726    }
32727    #[inline]
32728    fn syntax(&self) -> &SyntaxNode {
32729        match self {
32730            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
32731            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
32732        }
32733    }
32734}
32735impl From<ConflictOnConstraint> for ConflictTarget {
32736    #[inline]
32737    fn from(node: ConflictOnConstraint) -> ConflictTarget {
32738        ConflictTarget::ConflictOnConstraint(node)
32739    }
32740}
32741impl From<ConflictOnIndex> for ConflictTarget {
32742    #[inline]
32743    fn from(node: ConflictOnIndex) -> ConflictTarget {
32744        ConflictTarget::ConflictOnIndex(node)
32745    }
32746}
32747impl AstNode for Constraint {
32748    #[inline]
32749    fn can_cast(kind: SyntaxKind) -> bool {
32750        matches!(
32751            kind,
32752            SyntaxKind::CHECK_CONSTRAINT
32753                | SyntaxKind::DEFAULT_CONSTRAINT
32754                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32755                | SyntaxKind::GENERATED_CONSTRAINT
32756                | SyntaxKind::NOT_NULL_CONSTRAINT
32757                | SyntaxKind::NULL_CONSTRAINT
32758                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32759                | SyntaxKind::REFERENCES_CONSTRAINT
32760                | SyntaxKind::UNIQUE_CONSTRAINT
32761        )
32762    }
32763    #[inline]
32764    fn cast(syntax: SyntaxNode) -> Option<Self> {
32765        let res = match syntax.kind() {
32766            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
32767            SyntaxKind::DEFAULT_CONSTRAINT => {
32768                Constraint::DefaultConstraint(DefaultConstraint { syntax })
32769            }
32770            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32771                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32772            }
32773            SyntaxKind::GENERATED_CONSTRAINT => {
32774                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
32775            }
32776            SyntaxKind::NOT_NULL_CONSTRAINT => {
32777                Constraint::NotNullConstraint(NotNullConstraint { syntax })
32778            }
32779            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
32780            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32781                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32782            }
32783            SyntaxKind::REFERENCES_CONSTRAINT => {
32784                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
32785            }
32786            SyntaxKind::UNIQUE_CONSTRAINT => {
32787                Constraint::UniqueConstraint(UniqueConstraint { syntax })
32788            }
32789            _ => {
32790                return None;
32791            }
32792        };
32793        Some(res)
32794    }
32795    #[inline]
32796    fn syntax(&self) -> &SyntaxNode {
32797        match self {
32798            Constraint::CheckConstraint(it) => &it.syntax,
32799            Constraint::DefaultConstraint(it) => &it.syntax,
32800            Constraint::ForeignKeyConstraint(it) => &it.syntax,
32801            Constraint::GeneratedConstraint(it) => &it.syntax,
32802            Constraint::NotNullConstraint(it) => &it.syntax,
32803            Constraint::NullConstraint(it) => &it.syntax,
32804            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
32805            Constraint::ReferencesConstraint(it) => &it.syntax,
32806            Constraint::UniqueConstraint(it) => &it.syntax,
32807        }
32808    }
32809}
32810impl From<CheckConstraint> for Constraint {
32811    #[inline]
32812    fn from(node: CheckConstraint) -> Constraint {
32813        Constraint::CheckConstraint(node)
32814    }
32815}
32816impl From<DefaultConstraint> for Constraint {
32817    #[inline]
32818    fn from(node: DefaultConstraint) -> Constraint {
32819        Constraint::DefaultConstraint(node)
32820    }
32821}
32822impl From<ForeignKeyConstraint> for Constraint {
32823    #[inline]
32824    fn from(node: ForeignKeyConstraint) -> Constraint {
32825        Constraint::ForeignKeyConstraint(node)
32826    }
32827}
32828impl From<GeneratedConstraint> for Constraint {
32829    #[inline]
32830    fn from(node: GeneratedConstraint) -> Constraint {
32831        Constraint::GeneratedConstraint(node)
32832    }
32833}
32834impl From<NotNullConstraint> for Constraint {
32835    #[inline]
32836    fn from(node: NotNullConstraint) -> Constraint {
32837        Constraint::NotNullConstraint(node)
32838    }
32839}
32840impl From<NullConstraint> for Constraint {
32841    #[inline]
32842    fn from(node: NullConstraint) -> Constraint {
32843        Constraint::NullConstraint(node)
32844    }
32845}
32846impl From<PrimaryKeyConstraint> for Constraint {
32847    #[inline]
32848    fn from(node: PrimaryKeyConstraint) -> Constraint {
32849        Constraint::PrimaryKeyConstraint(node)
32850    }
32851}
32852impl From<ReferencesConstraint> for Constraint {
32853    #[inline]
32854    fn from(node: ReferencesConstraint) -> Constraint {
32855        Constraint::ReferencesConstraint(node)
32856    }
32857}
32858impl From<UniqueConstraint> for Constraint {
32859    #[inline]
32860    fn from(node: UniqueConstraint) -> Constraint {
32861        Constraint::UniqueConstraint(node)
32862    }
32863}
32864impl AstNode for ElementTableLabelAndProperties {
32865    #[inline]
32866    fn can_cast(kind: SyntaxKind) -> bool {
32867        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
32868    }
32869    #[inline]
32870    fn cast(syntax: SyntaxNode) -> Option<Self> {
32871        let res = match syntax.kind() {
32872            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
32873                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
32874                    syntax,
32875                })
32876            }
32877            _ => {
32878                if let Some(result) = ElementTableProperties::cast(syntax) {
32879                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
32880                        result,
32881                    ));
32882                }
32883                return None;
32884            }
32885        };
32886        Some(res)
32887    }
32888    #[inline]
32889    fn syntax(&self) -> &SyntaxNode {
32890        match self {
32891            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
32892            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
32893        }
32894    }
32895}
32896impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
32897    #[inline]
32898    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
32899        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
32900    }
32901}
32902impl AstNode for ElementTableProperties {
32903    #[inline]
32904    fn can_cast(kind: SyntaxKind) -> bool {
32905        matches!(
32906            kind,
32907            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES_LIST
32908        )
32909    }
32910    #[inline]
32911    fn cast(syntax: SyntaxNode) -> Option<Self> {
32912        let res = match syntax.kind() {
32913            SyntaxKind::ALL_PROPERTIES => {
32914                ElementTableProperties::AllProperties(AllProperties { syntax })
32915            }
32916            SyntaxKind::NO_PROPERTIES => {
32917                ElementTableProperties::NoProperties(NoProperties { syntax })
32918            }
32919            SyntaxKind::PROPERTIES_LIST => {
32920                ElementTableProperties::PropertiesList(PropertiesList { syntax })
32921            }
32922            _ => {
32923                return None;
32924            }
32925        };
32926        Some(res)
32927    }
32928    #[inline]
32929    fn syntax(&self) -> &SyntaxNode {
32930        match self {
32931            ElementTableProperties::AllProperties(it) => &it.syntax,
32932            ElementTableProperties::NoProperties(it) => &it.syntax,
32933            ElementTableProperties::PropertiesList(it) => &it.syntax,
32934        }
32935    }
32936}
32937impl From<AllProperties> for ElementTableProperties {
32938    #[inline]
32939    fn from(node: AllProperties) -> ElementTableProperties {
32940        ElementTableProperties::AllProperties(node)
32941    }
32942}
32943impl From<NoProperties> for ElementTableProperties {
32944    #[inline]
32945    fn from(node: NoProperties) -> ElementTableProperties {
32946        ElementTableProperties::NoProperties(node)
32947    }
32948}
32949impl From<PropertiesList> for ElementTableProperties {
32950    #[inline]
32951    fn from(node: PropertiesList) -> ElementTableProperties {
32952        ElementTableProperties::PropertiesList(node)
32953    }
32954}
32955impl AstNode for ExplainStmt {
32956    #[inline]
32957    fn can_cast(kind: SyntaxKind) -> bool {
32958        matches!(
32959            kind,
32960            SyntaxKind::COMPOUND_SELECT
32961                | SyntaxKind::CREATE_MATERIALIZED_VIEW
32962                | SyntaxKind::CREATE_TABLE_AS
32963                | SyntaxKind::DECLARE
32964                | SyntaxKind::DELETE
32965                | SyntaxKind::EXECUTE
32966                | SyntaxKind::INSERT
32967                | SyntaxKind::MERGE
32968                | SyntaxKind::PAREN_SELECT
32969                | SyntaxKind::SELECT
32970                | SyntaxKind::SELECT_INTO
32971                | SyntaxKind::TABLE
32972                | SyntaxKind::UPDATE
32973                | SyntaxKind::VALUES
32974        )
32975    }
32976    #[inline]
32977    fn cast(syntax: SyntaxNode) -> Option<Self> {
32978        let res = match syntax.kind() {
32979            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
32980            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
32981                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
32982            }
32983            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
32984            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
32985            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
32986            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
32987            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
32988            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
32989            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
32990            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
32991            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
32992            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
32993            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
32994            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
32995            _ => {
32996                return None;
32997            }
32998        };
32999        Some(res)
33000    }
33001    #[inline]
33002    fn syntax(&self) -> &SyntaxNode {
33003        match self {
33004            ExplainStmt::CompoundSelect(it) => &it.syntax,
33005            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
33006            ExplainStmt::CreateTableAs(it) => &it.syntax,
33007            ExplainStmt::Declare(it) => &it.syntax,
33008            ExplainStmt::Delete(it) => &it.syntax,
33009            ExplainStmt::Execute(it) => &it.syntax,
33010            ExplainStmt::Insert(it) => &it.syntax,
33011            ExplainStmt::Merge(it) => &it.syntax,
33012            ExplainStmt::ParenSelect(it) => &it.syntax,
33013            ExplainStmt::Select(it) => &it.syntax,
33014            ExplainStmt::SelectInto(it) => &it.syntax,
33015            ExplainStmt::Table(it) => &it.syntax,
33016            ExplainStmt::Update(it) => &it.syntax,
33017            ExplainStmt::Values(it) => &it.syntax,
33018        }
33019    }
33020}
33021impl From<CompoundSelect> for ExplainStmt {
33022    #[inline]
33023    fn from(node: CompoundSelect) -> ExplainStmt {
33024        ExplainStmt::CompoundSelect(node)
33025    }
33026}
33027impl From<CreateMaterializedView> for ExplainStmt {
33028    #[inline]
33029    fn from(node: CreateMaterializedView) -> ExplainStmt {
33030        ExplainStmt::CreateMaterializedView(node)
33031    }
33032}
33033impl From<CreateTableAs> for ExplainStmt {
33034    #[inline]
33035    fn from(node: CreateTableAs) -> ExplainStmt {
33036        ExplainStmt::CreateTableAs(node)
33037    }
33038}
33039impl From<Declare> for ExplainStmt {
33040    #[inline]
33041    fn from(node: Declare) -> ExplainStmt {
33042        ExplainStmt::Declare(node)
33043    }
33044}
33045impl From<Delete> for ExplainStmt {
33046    #[inline]
33047    fn from(node: Delete) -> ExplainStmt {
33048        ExplainStmt::Delete(node)
33049    }
33050}
33051impl From<Execute> for ExplainStmt {
33052    #[inline]
33053    fn from(node: Execute) -> ExplainStmt {
33054        ExplainStmt::Execute(node)
33055    }
33056}
33057impl From<Insert> for ExplainStmt {
33058    #[inline]
33059    fn from(node: Insert) -> ExplainStmt {
33060        ExplainStmt::Insert(node)
33061    }
33062}
33063impl From<Merge> for ExplainStmt {
33064    #[inline]
33065    fn from(node: Merge) -> ExplainStmt {
33066        ExplainStmt::Merge(node)
33067    }
33068}
33069impl From<ParenSelect> for ExplainStmt {
33070    #[inline]
33071    fn from(node: ParenSelect) -> ExplainStmt {
33072        ExplainStmt::ParenSelect(node)
33073    }
33074}
33075impl From<Select> for ExplainStmt {
33076    #[inline]
33077    fn from(node: Select) -> ExplainStmt {
33078        ExplainStmt::Select(node)
33079    }
33080}
33081impl From<SelectInto> for ExplainStmt {
33082    #[inline]
33083    fn from(node: SelectInto) -> ExplainStmt {
33084        ExplainStmt::SelectInto(node)
33085    }
33086}
33087impl From<Table> for ExplainStmt {
33088    #[inline]
33089    fn from(node: Table) -> ExplainStmt {
33090        ExplainStmt::Table(node)
33091    }
33092}
33093impl From<Update> for ExplainStmt {
33094    #[inline]
33095    fn from(node: Update) -> ExplainStmt {
33096        ExplainStmt::Update(node)
33097    }
33098}
33099impl From<Values> for ExplainStmt {
33100    #[inline]
33101    fn from(node: Values) -> ExplainStmt {
33102        ExplainStmt::Values(node)
33103    }
33104}
33105impl AstNode for Expr {
33106    #[inline]
33107    fn can_cast(kind: SyntaxKind) -> bool {
33108        matches!(
33109            kind,
33110            SyntaxKind::ARRAY_EXPR
33111                | SyntaxKind::BETWEEN_EXPR
33112                | SyntaxKind::BIN_EXPR
33113                | SyntaxKind::CALL_EXPR
33114                | SyntaxKind::CASE_EXPR
33115                | SyntaxKind::CAST_EXPR
33116                | SyntaxKind::FIELD_EXPR
33117                | SyntaxKind::INDEX_EXPR
33118                | SyntaxKind::LITERAL
33119                | SyntaxKind::NAME_REF
33120                | SyntaxKind::PAREN_EXPR
33121                | SyntaxKind::POSTFIX_EXPR
33122                | SyntaxKind::PREFIX_EXPR
33123                | SyntaxKind::SLICE_EXPR
33124                | SyntaxKind::TUPLE_EXPR
33125        )
33126    }
33127    #[inline]
33128    fn cast(syntax: SyntaxNode) -> Option<Self> {
33129        let res = match syntax.kind() {
33130            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
33131            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
33132            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
33133            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
33134            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
33135            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
33136            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
33137            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
33138            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
33139            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
33140            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
33141            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
33142            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
33143            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
33144            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
33145            _ => {
33146                return None;
33147            }
33148        };
33149        Some(res)
33150    }
33151    #[inline]
33152    fn syntax(&self) -> &SyntaxNode {
33153        match self {
33154            Expr::ArrayExpr(it) => &it.syntax,
33155            Expr::BetweenExpr(it) => &it.syntax,
33156            Expr::BinExpr(it) => &it.syntax,
33157            Expr::CallExpr(it) => &it.syntax,
33158            Expr::CaseExpr(it) => &it.syntax,
33159            Expr::CastExpr(it) => &it.syntax,
33160            Expr::FieldExpr(it) => &it.syntax,
33161            Expr::IndexExpr(it) => &it.syntax,
33162            Expr::Literal(it) => &it.syntax,
33163            Expr::NameRef(it) => &it.syntax,
33164            Expr::ParenExpr(it) => &it.syntax,
33165            Expr::PostfixExpr(it) => &it.syntax,
33166            Expr::PrefixExpr(it) => &it.syntax,
33167            Expr::SliceExpr(it) => &it.syntax,
33168            Expr::TupleExpr(it) => &it.syntax,
33169        }
33170    }
33171}
33172impl From<ArrayExpr> for Expr {
33173    #[inline]
33174    fn from(node: ArrayExpr) -> Expr {
33175        Expr::ArrayExpr(node)
33176    }
33177}
33178impl From<BetweenExpr> for Expr {
33179    #[inline]
33180    fn from(node: BetweenExpr) -> Expr {
33181        Expr::BetweenExpr(node)
33182    }
33183}
33184impl From<BinExpr> for Expr {
33185    #[inline]
33186    fn from(node: BinExpr) -> Expr {
33187        Expr::BinExpr(node)
33188    }
33189}
33190impl From<CallExpr> for Expr {
33191    #[inline]
33192    fn from(node: CallExpr) -> Expr {
33193        Expr::CallExpr(node)
33194    }
33195}
33196impl From<CaseExpr> for Expr {
33197    #[inline]
33198    fn from(node: CaseExpr) -> Expr {
33199        Expr::CaseExpr(node)
33200    }
33201}
33202impl From<CastExpr> for Expr {
33203    #[inline]
33204    fn from(node: CastExpr) -> Expr {
33205        Expr::CastExpr(node)
33206    }
33207}
33208impl From<FieldExpr> for Expr {
33209    #[inline]
33210    fn from(node: FieldExpr) -> Expr {
33211        Expr::FieldExpr(node)
33212    }
33213}
33214impl From<IndexExpr> for Expr {
33215    #[inline]
33216    fn from(node: IndexExpr) -> Expr {
33217        Expr::IndexExpr(node)
33218    }
33219}
33220impl From<Literal> for Expr {
33221    #[inline]
33222    fn from(node: Literal) -> Expr {
33223        Expr::Literal(node)
33224    }
33225}
33226impl From<NameRef> for Expr {
33227    #[inline]
33228    fn from(node: NameRef) -> Expr {
33229        Expr::NameRef(node)
33230    }
33231}
33232impl From<ParenExpr> for Expr {
33233    #[inline]
33234    fn from(node: ParenExpr) -> Expr {
33235        Expr::ParenExpr(node)
33236    }
33237}
33238impl From<PostfixExpr> for Expr {
33239    #[inline]
33240    fn from(node: PostfixExpr) -> Expr {
33241        Expr::PostfixExpr(node)
33242    }
33243}
33244impl From<PrefixExpr> for Expr {
33245    #[inline]
33246    fn from(node: PrefixExpr) -> Expr {
33247        Expr::PrefixExpr(node)
33248    }
33249}
33250impl From<SliceExpr> for Expr {
33251    #[inline]
33252    fn from(node: SliceExpr) -> Expr {
33253        Expr::SliceExpr(node)
33254    }
33255}
33256impl From<TupleExpr> for Expr {
33257    #[inline]
33258    fn from(node: TupleExpr) -> Expr {
33259        Expr::TupleExpr(node)
33260    }
33261}
33262impl AstNode for FuncOption {
33263    #[inline]
33264    fn can_cast(kind: SyntaxKind) -> bool {
33265        matches!(
33266            kind,
33267            SyntaxKind::AS_FUNC_OPTION
33268                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
33269                | SyntaxKind::COST_FUNC_OPTION
33270                | SyntaxKind::LANGUAGE_FUNC_OPTION
33271                | SyntaxKind::LEAKPROOF_FUNC_OPTION
33272                | SyntaxKind::PARALLEL_FUNC_OPTION
33273                | SyntaxKind::RESET_FUNC_OPTION
33274                | SyntaxKind::RETURN_FUNC_OPTION
33275                | SyntaxKind::ROWS_FUNC_OPTION
33276                | SyntaxKind::SECURITY_FUNC_OPTION
33277                | SyntaxKind::SET_FUNC_OPTION
33278                | SyntaxKind::STRICT_FUNC_OPTION
33279                | SyntaxKind::SUPPORT_FUNC_OPTION
33280                | SyntaxKind::TRANSFORM_FUNC_OPTION
33281                | SyntaxKind::VOLATILITY_FUNC_OPTION
33282                | SyntaxKind::WINDOW_FUNC_OPTION
33283        )
33284    }
33285    #[inline]
33286    fn cast(syntax: SyntaxNode) -> Option<Self> {
33287        let res = match syntax.kind() {
33288            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
33289            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
33290                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
33291            }
33292            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
33293            SyntaxKind::LANGUAGE_FUNC_OPTION => {
33294                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
33295            }
33296            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
33297                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
33298            }
33299            SyntaxKind::PARALLEL_FUNC_OPTION => {
33300                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
33301            }
33302            SyntaxKind::RESET_FUNC_OPTION => {
33303                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
33304            }
33305            SyntaxKind::RETURN_FUNC_OPTION => {
33306                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33307            }
33308            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
33309            SyntaxKind::SECURITY_FUNC_OPTION => {
33310                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
33311            }
33312            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
33313            SyntaxKind::STRICT_FUNC_OPTION => {
33314                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
33315            }
33316            SyntaxKind::SUPPORT_FUNC_OPTION => {
33317                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
33318            }
33319            SyntaxKind::TRANSFORM_FUNC_OPTION => {
33320                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
33321            }
33322            SyntaxKind::VOLATILITY_FUNC_OPTION => {
33323                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
33324            }
33325            SyntaxKind::WINDOW_FUNC_OPTION => {
33326                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
33327            }
33328            _ => {
33329                return None;
33330            }
33331        };
33332        Some(res)
33333    }
33334    #[inline]
33335    fn syntax(&self) -> &SyntaxNode {
33336        match self {
33337            FuncOption::AsFuncOption(it) => &it.syntax,
33338            FuncOption::BeginFuncOptionList(it) => &it.syntax,
33339            FuncOption::CostFuncOption(it) => &it.syntax,
33340            FuncOption::LanguageFuncOption(it) => &it.syntax,
33341            FuncOption::LeakproofFuncOption(it) => &it.syntax,
33342            FuncOption::ParallelFuncOption(it) => &it.syntax,
33343            FuncOption::ResetFuncOption(it) => &it.syntax,
33344            FuncOption::ReturnFuncOption(it) => &it.syntax,
33345            FuncOption::RowsFuncOption(it) => &it.syntax,
33346            FuncOption::SecurityFuncOption(it) => &it.syntax,
33347            FuncOption::SetFuncOption(it) => &it.syntax,
33348            FuncOption::StrictFuncOption(it) => &it.syntax,
33349            FuncOption::SupportFuncOption(it) => &it.syntax,
33350            FuncOption::TransformFuncOption(it) => &it.syntax,
33351            FuncOption::VolatilityFuncOption(it) => &it.syntax,
33352            FuncOption::WindowFuncOption(it) => &it.syntax,
33353        }
33354    }
33355}
33356impl From<AsFuncOption> for FuncOption {
33357    #[inline]
33358    fn from(node: AsFuncOption) -> FuncOption {
33359        FuncOption::AsFuncOption(node)
33360    }
33361}
33362impl From<BeginFuncOptionList> for FuncOption {
33363    #[inline]
33364    fn from(node: BeginFuncOptionList) -> FuncOption {
33365        FuncOption::BeginFuncOptionList(node)
33366    }
33367}
33368impl From<CostFuncOption> for FuncOption {
33369    #[inline]
33370    fn from(node: CostFuncOption) -> FuncOption {
33371        FuncOption::CostFuncOption(node)
33372    }
33373}
33374impl From<LanguageFuncOption> for FuncOption {
33375    #[inline]
33376    fn from(node: LanguageFuncOption) -> FuncOption {
33377        FuncOption::LanguageFuncOption(node)
33378    }
33379}
33380impl From<LeakproofFuncOption> for FuncOption {
33381    #[inline]
33382    fn from(node: LeakproofFuncOption) -> FuncOption {
33383        FuncOption::LeakproofFuncOption(node)
33384    }
33385}
33386impl From<ParallelFuncOption> for FuncOption {
33387    #[inline]
33388    fn from(node: ParallelFuncOption) -> FuncOption {
33389        FuncOption::ParallelFuncOption(node)
33390    }
33391}
33392impl From<ResetFuncOption> for FuncOption {
33393    #[inline]
33394    fn from(node: ResetFuncOption) -> FuncOption {
33395        FuncOption::ResetFuncOption(node)
33396    }
33397}
33398impl From<ReturnFuncOption> for FuncOption {
33399    #[inline]
33400    fn from(node: ReturnFuncOption) -> FuncOption {
33401        FuncOption::ReturnFuncOption(node)
33402    }
33403}
33404impl From<RowsFuncOption> for FuncOption {
33405    #[inline]
33406    fn from(node: RowsFuncOption) -> FuncOption {
33407        FuncOption::RowsFuncOption(node)
33408    }
33409}
33410impl From<SecurityFuncOption> for FuncOption {
33411    #[inline]
33412    fn from(node: SecurityFuncOption) -> FuncOption {
33413        FuncOption::SecurityFuncOption(node)
33414    }
33415}
33416impl From<SetFuncOption> for FuncOption {
33417    #[inline]
33418    fn from(node: SetFuncOption) -> FuncOption {
33419        FuncOption::SetFuncOption(node)
33420    }
33421}
33422impl From<StrictFuncOption> for FuncOption {
33423    #[inline]
33424    fn from(node: StrictFuncOption) -> FuncOption {
33425        FuncOption::StrictFuncOption(node)
33426    }
33427}
33428impl From<SupportFuncOption> for FuncOption {
33429    #[inline]
33430    fn from(node: SupportFuncOption) -> FuncOption {
33431        FuncOption::SupportFuncOption(node)
33432    }
33433}
33434impl From<TransformFuncOption> for FuncOption {
33435    #[inline]
33436    fn from(node: TransformFuncOption) -> FuncOption {
33437        FuncOption::TransformFuncOption(node)
33438    }
33439}
33440impl From<VolatilityFuncOption> for FuncOption {
33441    #[inline]
33442    fn from(node: VolatilityFuncOption) -> FuncOption {
33443        FuncOption::VolatilityFuncOption(node)
33444    }
33445}
33446impl From<WindowFuncOption> for FuncOption {
33447    #[inline]
33448    fn from(node: WindowFuncOption) -> FuncOption {
33449        FuncOption::WindowFuncOption(node)
33450    }
33451}
33452impl AstNode for GroupBy {
33453    #[inline]
33454    fn can_cast(kind: SyntaxKind) -> bool {
33455        matches!(
33456            kind,
33457            SyntaxKind::GROUPING_CUBE
33458                | SyntaxKind::GROUPING_EXPR
33459                | SyntaxKind::GROUPING_ROLLUP
33460                | SyntaxKind::GROUPING_SETS
33461        )
33462    }
33463    #[inline]
33464    fn cast(syntax: SyntaxNode) -> Option<Self> {
33465        let res = match syntax.kind() {
33466            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
33467            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
33468            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
33469            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
33470            _ => {
33471                return None;
33472            }
33473        };
33474        Some(res)
33475    }
33476    #[inline]
33477    fn syntax(&self) -> &SyntaxNode {
33478        match self {
33479            GroupBy::GroupingCube(it) => &it.syntax,
33480            GroupBy::GroupingExpr(it) => &it.syntax,
33481            GroupBy::GroupingRollup(it) => &it.syntax,
33482            GroupBy::GroupingSets(it) => &it.syntax,
33483        }
33484    }
33485}
33486impl From<GroupingCube> for GroupBy {
33487    #[inline]
33488    fn from(node: GroupingCube) -> GroupBy {
33489        GroupBy::GroupingCube(node)
33490    }
33491}
33492impl From<GroupingExpr> for GroupBy {
33493    #[inline]
33494    fn from(node: GroupingExpr) -> GroupBy {
33495        GroupBy::GroupingExpr(node)
33496    }
33497}
33498impl From<GroupingRollup> for GroupBy {
33499    #[inline]
33500    fn from(node: GroupingRollup) -> GroupBy {
33501        GroupBy::GroupingRollup(node)
33502    }
33503}
33504impl From<GroupingSets> for GroupBy {
33505    #[inline]
33506    fn from(node: GroupingSets) -> GroupBy {
33507        GroupBy::GroupingSets(node)
33508    }
33509}
33510impl AstNode for JoinType {
33511    #[inline]
33512    fn can_cast(kind: SyntaxKind) -> bool {
33513        matches!(
33514            kind,
33515            SyntaxKind::JOIN_CROSS
33516                | SyntaxKind::JOIN_FULL
33517                | SyntaxKind::JOIN_INNER
33518                | SyntaxKind::JOIN_LEFT
33519                | SyntaxKind::JOIN_RIGHT
33520        )
33521    }
33522    #[inline]
33523    fn cast(syntax: SyntaxNode) -> Option<Self> {
33524        let res = match syntax.kind() {
33525            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
33526            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
33527            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
33528            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
33529            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
33530            _ => {
33531                return None;
33532            }
33533        };
33534        Some(res)
33535    }
33536    #[inline]
33537    fn syntax(&self) -> &SyntaxNode {
33538        match self {
33539            JoinType::JoinCross(it) => &it.syntax,
33540            JoinType::JoinFull(it) => &it.syntax,
33541            JoinType::JoinInner(it) => &it.syntax,
33542            JoinType::JoinLeft(it) => &it.syntax,
33543            JoinType::JoinRight(it) => &it.syntax,
33544        }
33545    }
33546}
33547impl From<JoinCross> for JoinType {
33548    #[inline]
33549    fn from(node: JoinCross) -> JoinType {
33550        JoinType::JoinCross(node)
33551    }
33552}
33553impl From<JoinFull> for JoinType {
33554    #[inline]
33555    fn from(node: JoinFull) -> JoinType {
33556        JoinType::JoinFull(node)
33557    }
33558}
33559impl From<JoinInner> for JoinType {
33560    #[inline]
33561    fn from(node: JoinInner) -> JoinType {
33562        JoinType::JoinInner(node)
33563    }
33564}
33565impl From<JoinLeft> for JoinType {
33566    #[inline]
33567    fn from(node: JoinLeft) -> JoinType {
33568        JoinType::JoinLeft(node)
33569    }
33570}
33571impl From<JoinRight> for JoinType {
33572    #[inline]
33573    fn from(node: JoinRight) -> JoinType {
33574        JoinType::JoinRight(node)
33575    }
33576}
33577impl AstNode for JsonBehavior {
33578    #[inline]
33579    fn can_cast(kind: SyntaxKind) -> bool {
33580        matches!(
33581            kind,
33582            SyntaxKind::JSON_BEHAVIOR_DEFAULT
33583                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
33584                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
33585                | SyntaxKind::JSON_BEHAVIOR_ERROR
33586                | SyntaxKind::JSON_BEHAVIOR_FALSE
33587                | SyntaxKind::JSON_BEHAVIOR_NULL
33588                | SyntaxKind::JSON_BEHAVIOR_TRUE
33589                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
33590        )
33591    }
33592    #[inline]
33593    fn cast(syntax: SyntaxNode) -> Option<Self> {
33594        let res = match syntax.kind() {
33595            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
33596                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
33597            }
33598            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
33599                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
33600            }
33601            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
33602                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
33603            }
33604            SyntaxKind::JSON_BEHAVIOR_ERROR => {
33605                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
33606            }
33607            SyntaxKind::JSON_BEHAVIOR_FALSE => {
33608                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
33609            }
33610            SyntaxKind::JSON_BEHAVIOR_NULL => {
33611                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
33612            }
33613            SyntaxKind::JSON_BEHAVIOR_TRUE => {
33614                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
33615            }
33616            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
33617                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
33618            }
33619            _ => {
33620                return None;
33621            }
33622        };
33623        Some(res)
33624    }
33625    #[inline]
33626    fn syntax(&self) -> &SyntaxNode {
33627        match self {
33628            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
33629            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
33630            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
33631            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
33632            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
33633            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
33634            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
33635            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
33636        }
33637    }
33638}
33639impl From<JsonBehaviorDefault> for JsonBehavior {
33640    #[inline]
33641    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
33642        JsonBehavior::JsonBehaviorDefault(node)
33643    }
33644}
33645impl From<JsonBehaviorEmptyArray> for JsonBehavior {
33646    #[inline]
33647    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
33648        JsonBehavior::JsonBehaviorEmptyArray(node)
33649    }
33650}
33651impl From<JsonBehaviorEmptyObject> for JsonBehavior {
33652    #[inline]
33653    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
33654        JsonBehavior::JsonBehaviorEmptyObject(node)
33655    }
33656}
33657impl From<JsonBehaviorError> for JsonBehavior {
33658    #[inline]
33659    fn from(node: JsonBehaviorError) -> JsonBehavior {
33660        JsonBehavior::JsonBehaviorError(node)
33661    }
33662}
33663impl From<JsonBehaviorFalse> for JsonBehavior {
33664    #[inline]
33665    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
33666        JsonBehavior::JsonBehaviorFalse(node)
33667    }
33668}
33669impl From<JsonBehaviorNull> for JsonBehavior {
33670    #[inline]
33671    fn from(node: JsonBehaviorNull) -> JsonBehavior {
33672        JsonBehavior::JsonBehaviorNull(node)
33673    }
33674}
33675impl From<JsonBehaviorTrue> for JsonBehavior {
33676    #[inline]
33677    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
33678        JsonBehavior::JsonBehaviorTrue(node)
33679    }
33680}
33681impl From<JsonBehaviorUnknown> for JsonBehavior {
33682    #[inline]
33683    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
33684        JsonBehavior::JsonBehaviorUnknown(node)
33685    }
33686}
33687impl AstNode for MatchType {
33688    #[inline]
33689    fn can_cast(kind: SyntaxKind) -> bool {
33690        matches!(
33691            kind,
33692            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
33693        )
33694    }
33695    #[inline]
33696    fn cast(syntax: SyntaxNode) -> Option<Self> {
33697        let res = match syntax.kind() {
33698            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
33699            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
33700            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
33701            _ => {
33702                return None;
33703            }
33704        };
33705        Some(res)
33706    }
33707    #[inline]
33708    fn syntax(&self) -> &SyntaxNode {
33709        match self {
33710            MatchType::MatchFull(it) => &it.syntax,
33711            MatchType::MatchPartial(it) => &it.syntax,
33712            MatchType::MatchSimple(it) => &it.syntax,
33713        }
33714    }
33715}
33716impl From<MatchFull> for MatchType {
33717    #[inline]
33718    fn from(node: MatchFull) -> MatchType {
33719        MatchType::MatchFull(node)
33720    }
33721}
33722impl From<MatchPartial> for MatchType {
33723    #[inline]
33724    fn from(node: MatchPartial) -> MatchType {
33725        MatchType::MatchPartial(node)
33726    }
33727}
33728impl From<MatchSimple> for MatchType {
33729    #[inline]
33730    fn from(node: MatchSimple) -> MatchType {
33731        MatchType::MatchSimple(node)
33732    }
33733}
33734impl AstNode for MergeAction {
33735    #[inline]
33736    fn can_cast(kind: SyntaxKind) -> bool {
33737        matches!(
33738            kind,
33739            SyntaxKind::MERGE_DELETE
33740                | SyntaxKind::MERGE_DO_NOTHING
33741                | SyntaxKind::MERGE_INSERT
33742                | SyntaxKind::MERGE_UPDATE
33743        )
33744    }
33745    #[inline]
33746    fn cast(syntax: SyntaxNode) -> Option<Self> {
33747        let res = match syntax.kind() {
33748            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
33749            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
33750            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
33751            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
33752            _ => {
33753                return None;
33754            }
33755        };
33756        Some(res)
33757    }
33758    #[inline]
33759    fn syntax(&self) -> &SyntaxNode {
33760        match self {
33761            MergeAction::MergeDelete(it) => &it.syntax,
33762            MergeAction::MergeDoNothing(it) => &it.syntax,
33763            MergeAction::MergeInsert(it) => &it.syntax,
33764            MergeAction::MergeUpdate(it) => &it.syntax,
33765        }
33766    }
33767}
33768impl From<MergeDelete> for MergeAction {
33769    #[inline]
33770    fn from(node: MergeDelete) -> MergeAction {
33771        MergeAction::MergeDelete(node)
33772    }
33773}
33774impl From<MergeDoNothing> for MergeAction {
33775    #[inline]
33776    fn from(node: MergeDoNothing) -> MergeAction {
33777        MergeAction::MergeDoNothing(node)
33778    }
33779}
33780impl From<MergeInsert> for MergeAction {
33781    #[inline]
33782    fn from(node: MergeInsert) -> MergeAction {
33783        MergeAction::MergeInsert(node)
33784    }
33785}
33786impl From<MergeUpdate> for MergeAction {
33787    #[inline]
33788    fn from(node: MergeUpdate) -> MergeAction {
33789        MergeAction::MergeUpdate(node)
33790    }
33791}
33792impl AstNode for MergeWhenClause {
33793    #[inline]
33794    fn can_cast(kind: SyntaxKind) -> bool {
33795        matches!(
33796            kind,
33797            SyntaxKind::MERGE_WHEN_MATCHED
33798                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
33799                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
33800        )
33801    }
33802    #[inline]
33803    fn cast(syntax: SyntaxNode) -> Option<Self> {
33804        let res = match syntax.kind() {
33805            SyntaxKind::MERGE_WHEN_MATCHED => {
33806                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
33807            }
33808            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
33809                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
33810            }
33811            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
33812                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
33813            }
33814            _ => {
33815                return None;
33816            }
33817        };
33818        Some(res)
33819    }
33820    #[inline]
33821    fn syntax(&self) -> &SyntaxNode {
33822        match self {
33823            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
33824            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
33825            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
33826        }
33827    }
33828}
33829impl From<MergeWhenMatched> for MergeWhenClause {
33830    #[inline]
33831    fn from(node: MergeWhenMatched) -> MergeWhenClause {
33832        MergeWhenClause::MergeWhenMatched(node)
33833    }
33834}
33835impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
33836    #[inline]
33837    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
33838        MergeWhenClause::MergeWhenNotMatchedSource(node)
33839    }
33840}
33841impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
33842    #[inline]
33843    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
33844        MergeWhenClause::MergeWhenNotMatchedTarget(node)
33845    }
33846}
33847impl AstNode for OnCommitAction {
33848    #[inline]
33849    fn can_cast(kind: SyntaxKind) -> bool {
33850        matches!(
33851            kind,
33852            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
33853        )
33854    }
33855    #[inline]
33856    fn cast(syntax: SyntaxNode) -> Option<Self> {
33857        let res = match syntax.kind() {
33858            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
33859            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
33860            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
33861            _ => {
33862                return None;
33863            }
33864        };
33865        Some(res)
33866    }
33867    #[inline]
33868    fn syntax(&self) -> &SyntaxNode {
33869        match self {
33870            OnCommitAction::DeleteRows(it) => &it.syntax,
33871            OnCommitAction::Drop(it) => &it.syntax,
33872            OnCommitAction::PreserveRows(it) => &it.syntax,
33873        }
33874    }
33875}
33876impl From<DeleteRows> for OnCommitAction {
33877    #[inline]
33878    fn from(node: DeleteRows) -> OnCommitAction {
33879        OnCommitAction::DeleteRows(node)
33880    }
33881}
33882impl From<Drop> for OnCommitAction {
33883    #[inline]
33884    fn from(node: Drop) -> OnCommitAction {
33885        OnCommitAction::Drop(node)
33886    }
33887}
33888impl From<PreserveRows> for OnCommitAction {
33889    #[inline]
33890    fn from(node: PreserveRows) -> OnCommitAction {
33891        OnCommitAction::PreserveRows(node)
33892    }
33893}
33894impl AstNode for ParamMode {
33895    #[inline]
33896    fn can_cast(kind: SyntaxKind) -> bool {
33897        matches!(
33898            kind,
33899            SyntaxKind::PARAM_IN
33900                | SyntaxKind::PARAM_IN_OUT
33901                | SyntaxKind::PARAM_OUT
33902                | SyntaxKind::PARAM_VARIADIC
33903        )
33904    }
33905    #[inline]
33906    fn cast(syntax: SyntaxNode) -> Option<Self> {
33907        let res = match syntax.kind() {
33908            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
33909            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
33910            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
33911            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
33912            _ => {
33913                return None;
33914            }
33915        };
33916        Some(res)
33917    }
33918    #[inline]
33919    fn syntax(&self) -> &SyntaxNode {
33920        match self {
33921            ParamMode::ParamIn(it) => &it.syntax,
33922            ParamMode::ParamInOut(it) => &it.syntax,
33923            ParamMode::ParamOut(it) => &it.syntax,
33924            ParamMode::ParamVariadic(it) => &it.syntax,
33925        }
33926    }
33927}
33928impl From<ParamIn> for ParamMode {
33929    #[inline]
33930    fn from(node: ParamIn) -> ParamMode {
33931        ParamMode::ParamIn(node)
33932    }
33933}
33934impl From<ParamInOut> for ParamMode {
33935    #[inline]
33936    fn from(node: ParamInOut) -> ParamMode {
33937        ParamMode::ParamInOut(node)
33938    }
33939}
33940impl From<ParamOut> for ParamMode {
33941    #[inline]
33942    fn from(node: ParamOut) -> ParamMode {
33943        ParamMode::ParamOut(node)
33944    }
33945}
33946impl From<ParamVariadic> for ParamMode {
33947    #[inline]
33948    fn from(node: ParamVariadic) -> ParamMode {
33949        ParamMode::ParamVariadic(node)
33950    }
33951}
33952impl AstNode for PartitionType {
33953    #[inline]
33954    fn can_cast(kind: SyntaxKind) -> bool {
33955        matches!(
33956            kind,
33957            SyntaxKind::PARTITION_DEFAULT
33958                | SyntaxKind::PARTITION_FOR_VALUES_FROM
33959                | SyntaxKind::PARTITION_FOR_VALUES_IN
33960                | SyntaxKind::PARTITION_FOR_VALUES_WITH
33961        )
33962    }
33963    #[inline]
33964    fn cast(syntax: SyntaxNode) -> Option<Self> {
33965        let res = match syntax.kind() {
33966            SyntaxKind::PARTITION_DEFAULT => {
33967                PartitionType::PartitionDefault(PartitionDefault { syntax })
33968            }
33969            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
33970                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
33971            }
33972            SyntaxKind::PARTITION_FOR_VALUES_IN => {
33973                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
33974            }
33975            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
33976                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
33977            }
33978            _ => {
33979                return None;
33980            }
33981        };
33982        Some(res)
33983    }
33984    #[inline]
33985    fn syntax(&self) -> &SyntaxNode {
33986        match self {
33987            PartitionType::PartitionDefault(it) => &it.syntax,
33988            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
33989            PartitionType::PartitionForValuesIn(it) => &it.syntax,
33990            PartitionType::PartitionForValuesWith(it) => &it.syntax,
33991        }
33992    }
33993}
33994impl From<PartitionDefault> for PartitionType {
33995    #[inline]
33996    fn from(node: PartitionDefault) -> PartitionType {
33997        PartitionType::PartitionDefault(node)
33998    }
33999}
34000impl From<PartitionForValuesFrom> for PartitionType {
34001    #[inline]
34002    fn from(node: PartitionForValuesFrom) -> PartitionType {
34003        PartitionType::PartitionForValuesFrom(node)
34004    }
34005}
34006impl From<PartitionForValuesIn> for PartitionType {
34007    #[inline]
34008    fn from(node: PartitionForValuesIn) -> PartitionType {
34009        PartitionType::PartitionForValuesIn(node)
34010    }
34011}
34012impl From<PartitionForValuesWith> for PartitionType {
34013    #[inline]
34014    fn from(node: PartitionForValuesWith) -> PartitionType {
34015        PartitionType::PartitionForValuesWith(node)
34016    }
34017}
34018impl AstNode for PathPrimary {
34019    #[inline]
34020    fn can_cast(kind: SyntaxKind) -> bool {
34021        matches!(
34022            kind,
34023            SyntaxKind::EDGE_ANY
34024                | SyntaxKind::EDGE_LEFT
34025                | SyntaxKind::EDGE_RIGHT
34026                | SyntaxKind::PAREN_GRAPH_PATTERN
34027                | SyntaxKind::VERTEX_PATTERN
34028        )
34029    }
34030    #[inline]
34031    fn cast(syntax: SyntaxNode) -> Option<Self> {
34032        let res = match syntax.kind() {
34033            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
34034            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
34035            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
34036            SyntaxKind::PAREN_GRAPH_PATTERN => {
34037                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
34038            }
34039            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
34040            _ => {
34041                return None;
34042            }
34043        };
34044        Some(res)
34045    }
34046    #[inline]
34047    fn syntax(&self) -> &SyntaxNode {
34048        match self {
34049            PathPrimary::EdgeAny(it) => &it.syntax,
34050            PathPrimary::EdgeLeft(it) => &it.syntax,
34051            PathPrimary::EdgeRight(it) => &it.syntax,
34052            PathPrimary::ParenGraphPattern(it) => &it.syntax,
34053            PathPrimary::VertexPattern(it) => &it.syntax,
34054        }
34055    }
34056}
34057impl From<EdgeAny> for PathPrimary {
34058    #[inline]
34059    fn from(node: EdgeAny) -> PathPrimary {
34060        PathPrimary::EdgeAny(node)
34061    }
34062}
34063impl From<EdgeLeft> for PathPrimary {
34064    #[inline]
34065    fn from(node: EdgeLeft) -> PathPrimary {
34066        PathPrimary::EdgeLeft(node)
34067    }
34068}
34069impl From<EdgeRight> for PathPrimary {
34070    #[inline]
34071    fn from(node: EdgeRight) -> PathPrimary {
34072        PathPrimary::EdgeRight(node)
34073    }
34074}
34075impl From<ParenGraphPattern> for PathPrimary {
34076    #[inline]
34077    fn from(node: ParenGraphPattern) -> PathPrimary {
34078        PathPrimary::ParenGraphPattern(node)
34079    }
34080}
34081impl From<VertexPattern> for PathPrimary {
34082    #[inline]
34083    fn from(node: VertexPattern) -> PathPrimary {
34084        PathPrimary::VertexPattern(node)
34085    }
34086}
34087impl AstNode for Persistence {
34088    #[inline]
34089    fn can_cast(kind: SyntaxKind) -> bool {
34090        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
34091    }
34092    #[inline]
34093    fn cast(syntax: SyntaxNode) -> Option<Self> {
34094        let res = match syntax.kind() {
34095            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
34096            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
34097            _ => {
34098                return None;
34099            }
34100        };
34101        Some(res)
34102    }
34103    #[inline]
34104    fn syntax(&self) -> &SyntaxNode {
34105        match self {
34106            Persistence::Temp(it) => &it.syntax,
34107            Persistence::Unlogged(it) => &it.syntax,
34108        }
34109    }
34110}
34111impl From<Temp> for Persistence {
34112    #[inline]
34113    fn from(node: Temp) -> Persistence {
34114        Persistence::Temp(node)
34115    }
34116}
34117impl From<Unlogged> for Persistence {
34118    #[inline]
34119    fn from(node: Unlogged) -> Persistence {
34120        Persistence::Unlogged(node)
34121    }
34122}
34123impl AstNode for PreparableStmt {
34124    #[inline]
34125    fn can_cast(kind: SyntaxKind) -> bool {
34126        matches!(
34127            kind,
34128            SyntaxKind::COMPOUND_SELECT
34129                | SyntaxKind::DELETE
34130                | SyntaxKind::INSERT
34131                | SyntaxKind::MERGE
34132                | SyntaxKind::SELECT
34133                | SyntaxKind::SELECT_INTO
34134                | SyntaxKind::TABLE
34135                | SyntaxKind::UPDATE
34136                | SyntaxKind::VALUES
34137        )
34138    }
34139    #[inline]
34140    fn cast(syntax: SyntaxNode) -> Option<Self> {
34141        let res = match syntax.kind() {
34142            SyntaxKind::COMPOUND_SELECT => {
34143                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
34144            }
34145            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
34146            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
34147            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
34148            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
34149            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
34150            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
34151            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
34152            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
34153            _ => {
34154                return None;
34155            }
34156        };
34157        Some(res)
34158    }
34159    #[inline]
34160    fn syntax(&self) -> &SyntaxNode {
34161        match self {
34162            PreparableStmt::CompoundSelect(it) => &it.syntax,
34163            PreparableStmt::Delete(it) => &it.syntax,
34164            PreparableStmt::Insert(it) => &it.syntax,
34165            PreparableStmt::Merge(it) => &it.syntax,
34166            PreparableStmt::Select(it) => &it.syntax,
34167            PreparableStmt::SelectInto(it) => &it.syntax,
34168            PreparableStmt::Table(it) => &it.syntax,
34169            PreparableStmt::Update(it) => &it.syntax,
34170            PreparableStmt::Values(it) => &it.syntax,
34171        }
34172    }
34173}
34174impl From<CompoundSelect> for PreparableStmt {
34175    #[inline]
34176    fn from(node: CompoundSelect) -> PreparableStmt {
34177        PreparableStmt::CompoundSelect(node)
34178    }
34179}
34180impl From<Delete> for PreparableStmt {
34181    #[inline]
34182    fn from(node: Delete) -> PreparableStmt {
34183        PreparableStmt::Delete(node)
34184    }
34185}
34186impl From<Insert> for PreparableStmt {
34187    #[inline]
34188    fn from(node: Insert) -> PreparableStmt {
34189        PreparableStmt::Insert(node)
34190    }
34191}
34192impl From<Merge> for PreparableStmt {
34193    #[inline]
34194    fn from(node: Merge) -> PreparableStmt {
34195        PreparableStmt::Merge(node)
34196    }
34197}
34198impl From<Select> for PreparableStmt {
34199    #[inline]
34200    fn from(node: Select) -> PreparableStmt {
34201        PreparableStmt::Select(node)
34202    }
34203}
34204impl From<SelectInto> for PreparableStmt {
34205    #[inline]
34206    fn from(node: SelectInto) -> PreparableStmt {
34207        PreparableStmt::SelectInto(node)
34208    }
34209}
34210impl From<Table> for PreparableStmt {
34211    #[inline]
34212    fn from(node: Table) -> PreparableStmt {
34213        PreparableStmt::Table(node)
34214    }
34215}
34216impl From<Update> for PreparableStmt {
34217    #[inline]
34218    fn from(node: Update) -> PreparableStmt {
34219        PreparableStmt::Update(node)
34220    }
34221}
34222impl From<Values> for PreparableStmt {
34223    #[inline]
34224    fn from(node: Values) -> PreparableStmt {
34225        PreparableStmt::Values(node)
34226    }
34227}
34228impl AstNode for RefAction {
34229    #[inline]
34230    fn can_cast(kind: SyntaxKind) -> bool {
34231        matches!(
34232            kind,
34233            SyntaxKind::CASCADE
34234                | SyntaxKind::NO_ACTION
34235                | SyntaxKind::RESTRICT
34236                | SyntaxKind::SET_DEFAULT_COLUMNS
34237                | SyntaxKind::SET_NULL_COLUMNS
34238        )
34239    }
34240    #[inline]
34241    fn cast(syntax: SyntaxNode) -> Option<Self> {
34242        let res = match syntax.kind() {
34243            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
34244            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
34245            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
34246            SyntaxKind::SET_DEFAULT_COLUMNS => {
34247                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
34248            }
34249            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
34250            _ => {
34251                return None;
34252            }
34253        };
34254        Some(res)
34255    }
34256    #[inline]
34257    fn syntax(&self) -> &SyntaxNode {
34258        match self {
34259            RefAction::Cascade(it) => &it.syntax,
34260            RefAction::NoAction(it) => &it.syntax,
34261            RefAction::Restrict(it) => &it.syntax,
34262            RefAction::SetDefaultColumns(it) => &it.syntax,
34263            RefAction::SetNullColumns(it) => &it.syntax,
34264        }
34265    }
34266}
34267impl From<Cascade> for RefAction {
34268    #[inline]
34269    fn from(node: Cascade) -> RefAction {
34270        RefAction::Cascade(node)
34271    }
34272}
34273impl From<NoAction> for RefAction {
34274    #[inline]
34275    fn from(node: NoAction) -> RefAction {
34276        RefAction::NoAction(node)
34277    }
34278}
34279impl From<Restrict> for RefAction {
34280    #[inline]
34281    fn from(node: Restrict) -> RefAction {
34282        RefAction::Restrict(node)
34283    }
34284}
34285impl From<SetDefaultColumns> for RefAction {
34286    #[inline]
34287    fn from(node: SetDefaultColumns) -> RefAction {
34288        RefAction::SetDefaultColumns(node)
34289    }
34290}
34291impl From<SetNullColumns> for RefAction {
34292    #[inline]
34293    fn from(node: SetNullColumns) -> RefAction {
34294        RefAction::SetNullColumns(node)
34295    }
34296}
34297impl AstNode for SchemaElement {
34298    #[inline]
34299    fn can_cast(kind: SyntaxKind) -> bool {
34300        matches!(
34301            kind,
34302            SyntaxKind::CREATE_INDEX
34303                | SyntaxKind::CREATE_SEQUENCE
34304                | SyntaxKind::CREATE_TABLE
34305                | SyntaxKind::CREATE_TRIGGER
34306                | SyntaxKind::CREATE_VIEW
34307                | SyntaxKind::GRANT
34308        )
34309    }
34310    #[inline]
34311    fn cast(syntax: SyntaxNode) -> Option<Self> {
34312        let res = match syntax.kind() {
34313            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
34314            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
34315            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
34316            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
34317            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
34318            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
34319            _ => {
34320                return None;
34321            }
34322        };
34323        Some(res)
34324    }
34325    #[inline]
34326    fn syntax(&self) -> &SyntaxNode {
34327        match self {
34328            SchemaElement::CreateIndex(it) => &it.syntax,
34329            SchemaElement::CreateSequence(it) => &it.syntax,
34330            SchemaElement::CreateTable(it) => &it.syntax,
34331            SchemaElement::CreateTrigger(it) => &it.syntax,
34332            SchemaElement::CreateView(it) => &it.syntax,
34333            SchemaElement::Grant(it) => &it.syntax,
34334        }
34335    }
34336}
34337impl From<CreateIndex> for SchemaElement {
34338    #[inline]
34339    fn from(node: CreateIndex) -> SchemaElement {
34340        SchemaElement::CreateIndex(node)
34341    }
34342}
34343impl From<CreateSequence> for SchemaElement {
34344    #[inline]
34345    fn from(node: CreateSequence) -> SchemaElement {
34346        SchemaElement::CreateSequence(node)
34347    }
34348}
34349impl From<CreateTable> for SchemaElement {
34350    #[inline]
34351    fn from(node: CreateTable) -> SchemaElement {
34352        SchemaElement::CreateTable(node)
34353    }
34354}
34355impl From<CreateTrigger> for SchemaElement {
34356    #[inline]
34357    fn from(node: CreateTrigger) -> SchemaElement {
34358        SchemaElement::CreateTrigger(node)
34359    }
34360}
34361impl From<CreateView> for SchemaElement {
34362    #[inline]
34363    fn from(node: CreateView) -> SchemaElement {
34364        SchemaElement::CreateView(node)
34365    }
34366}
34367impl From<Grant> for SchemaElement {
34368    #[inline]
34369    fn from(node: Grant) -> SchemaElement {
34370        SchemaElement::Grant(node)
34371    }
34372}
34373impl AstNode for SelectVariant {
34374    #[inline]
34375    fn can_cast(kind: SyntaxKind) -> bool {
34376        matches!(
34377            kind,
34378            SyntaxKind::COMPOUND_SELECT
34379                | SyntaxKind::PAREN_SELECT
34380                | SyntaxKind::SELECT
34381                | SyntaxKind::SELECT_INTO
34382                | SyntaxKind::TABLE
34383                | SyntaxKind::VALUES
34384        )
34385    }
34386    #[inline]
34387    fn cast(syntax: SyntaxNode) -> Option<Self> {
34388        let res = match syntax.kind() {
34389            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
34390            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
34391            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
34392            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
34393            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
34394            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
34395            _ => {
34396                return None;
34397            }
34398        };
34399        Some(res)
34400    }
34401    #[inline]
34402    fn syntax(&self) -> &SyntaxNode {
34403        match self {
34404            SelectVariant::CompoundSelect(it) => &it.syntax,
34405            SelectVariant::ParenSelect(it) => &it.syntax,
34406            SelectVariant::Select(it) => &it.syntax,
34407            SelectVariant::SelectInto(it) => &it.syntax,
34408            SelectVariant::Table(it) => &it.syntax,
34409            SelectVariant::Values(it) => &it.syntax,
34410        }
34411    }
34412}
34413impl From<CompoundSelect> for SelectVariant {
34414    #[inline]
34415    fn from(node: CompoundSelect) -> SelectVariant {
34416        SelectVariant::CompoundSelect(node)
34417    }
34418}
34419impl From<ParenSelect> for SelectVariant {
34420    #[inline]
34421    fn from(node: ParenSelect) -> SelectVariant {
34422        SelectVariant::ParenSelect(node)
34423    }
34424}
34425impl From<Select> for SelectVariant {
34426    #[inline]
34427    fn from(node: Select) -> SelectVariant {
34428        SelectVariant::Select(node)
34429    }
34430}
34431impl From<SelectInto> for SelectVariant {
34432    #[inline]
34433    fn from(node: SelectInto) -> SelectVariant {
34434        SelectVariant::SelectInto(node)
34435    }
34436}
34437impl From<Table> for SelectVariant {
34438    #[inline]
34439    fn from(node: Table) -> SelectVariant {
34440        SelectVariant::Table(node)
34441    }
34442}
34443impl From<Values> for SelectVariant {
34444    #[inline]
34445    fn from(node: Values) -> SelectVariant {
34446        SelectVariant::Values(node)
34447    }
34448}
34449impl AstNode for SetColumn {
34450    #[inline]
34451    fn can_cast(kind: SyntaxKind) -> bool {
34452        matches!(
34453            kind,
34454            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
34455        )
34456    }
34457    #[inline]
34458    fn cast(syntax: SyntaxNode) -> Option<Self> {
34459        let res = match syntax.kind() {
34460            SyntaxKind::SET_MULTIPLE_COLUMNS => {
34461                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
34462            }
34463            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
34464            _ => {
34465                return None;
34466            }
34467        };
34468        Some(res)
34469    }
34470    #[inline]
34471    fn syntax(&self) -> &SyntaxNode {
34472        match self {
34473            SetColumn::SetMultipleColumns(it) => &it.syntax,
34474            SetColumn::SetSingleColumn(it) => &it.syntax,
34475        }
34476    }
34477}
34478impl From<SetMultipleColumns> for SetColumn {
34479    #[inline]
34480    fn from(node: SetMultipleColumns) -> SetColumn {
34481        SetColumn::SetMultipleColumns(node)
34482    }
34483}
34484impl From<SetSingleColumn> for SetColumn {
34485    #[inline]
34486    fn from(node: SetSingleColumn) -> SetColumn {
34487        SetColumn::SetSingleColumn(node)
34488    }
34489}
34490impl AstNode for Stmt {
34491    #[inline]
34492    fn can_cast(kind: SyntaxKind) -> bool {
34493        matches!(
34494            kind,
34495            SyntaxKind::ALTER_AGGREGATE
34496                | SyntaxKind::ALTER_COLLATION
34497                | SyntaxKind::ALTER_CONVERSION
34498                | SyntaxKind::ALTER_DATABASE
34499                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
34500                | SyntaxKind::ALTER_DOMAIN
34501                | SyntaxKind::ALTER_EVENT_TRIGGER
34502                | SyntaxKind::ALTER_EXTENSION
34503                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
34504                | SyntaxKind::ALTER_FOREIGN_TABLE
34505                | SyntaxKind::ALTER_FUNCTION
34506                | SyntaxKind::ALTER_GROUP
34507                | SyntaxKind::ALTER_INDEX
34508                | SyntaxKind::ALTER_LANGUAGE
34509                | SyntaxKind::ALTER_LARGE_OBJECT
34510                | SyntaxKind::ALTER_MATERIALIZED_VIEW
34511                | SyntaxKind::ALTER_OPERATOR
34512                | SyntaxKind::ALTER_OPERATOR_CLASS
34513                | SyntaxKind::ALTER_OPERATOR_FAMILY
34514                | SyntaxKind::ALTER_POLICY
34515                | SyntaxKind::ALTER_PROCEDURE
34516                | SyntaxKind::ALTER_PROPERTY_GRAPH
34517                | SyntaxKind::ALTER_PUBLICATION
34518                | SyntaxKind::ALTER_ROLE
34519                | SyntaxKind::ALTER_ROUTINE
34520                | SyntaxKind::ALTER_RULE
34521                | SyntaxKind::ALTER_SCHEMA
34522                | SyntaxKind::ALTER_SEQUENCE
34523                | SyntaxKind::ALTER_SERVER
34524                | SyntaxKind::ALTER_STATISTICS
34525                | SyntaxKind::ALTER_SUBSCRIPTION
34526                | SyntaxKind::ALTER_SYSTEM
34527                | SyntaxKind::ALTER_TABLE
34528                | SyntaxKind::ALTER_TABLESPACE
34529                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
34530                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
34531                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
34532                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
34533                | SyntaxKind::ALTER_TRIGGER
34534                | SyntaxKind::ALTER_TYPE
34535                | SyntaxKind::ALTER_USER
34536                | SyntaxKind::ALTER_USER_MAPPING
34537                | SyntaxKind::ALTER_VIEW
34538                | SyntaxKind::ANALYZE
34539                | SyntaxKind::BEGIN
34540                | SyntaxKind::CALL
34541                | SyntaxKind::CHECKPOINT
34542                | SyntaxKind::CLOSE
34543                | SyntaxKind::CLUSTER
34544                | SyntaxKind::COMMENT_ON
34545                | SyntaxKind::COMMIT
34546                | SyntaxKind::COPY
34547                | SyntaxKind::CREATE_ACCESS_METHOD
34548                | SyntaxKind::CREATE_AGGREGATE
34549                | SyntaxKind::CREATE_CAST
34550                | SyntaxKind::CREATE_COLLATION
34551                | SyntaxKind::CREATE_CONVERSION
34552                | SyntaxKind::CREATE_DATABASE
34553                | SyntaxKind::CREATE_DOMAIN
34554                | SyntaxKind::CREATE_EVENT_TRIGGER
34555                | SyntaxKind::CREATE_EXTENSION
34556                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
34557                | SyntaxKind::CREATE_FOREIGN_TABLE
34558                | SyntaxKind::CREATE_FUNCTION
34559                | SyntaxKind::CREATE_GROUP
34560                | SyntaxKind::CREATE_INDEX
34561                | SyntaxKind::CREATE_LANGUAGE
34562                | SyntaxKind::CREATE_MATERIALIZED_VIEW
34563                | SyntaxKind::CREATE_OPERATOR
34564                | SyntaxKind::CREATE_OPERATOR_CLASS
34565                | SyntaxKind::CREATE_OPERATOR_FAMILY
34566                | SyntaxKind::CREATE_POLICY
34567                | SyntaxKind::CREATE_PROCEDURE
34568                | SyntaxKind::CREATE_PROPERTY_GRAPH
34569                | SyntaxKind::CREATE_PUBLICATION
34570                | SyntaxKind::CREATE_ROLE
34571                | SyntaxKind::CREATE_RULE
34572                | SyntaxKind::CREATE_SCHEMA
34573                | SyntaxKind::CREATE_SEQUENCE
34574                | SyntaxKind::CREATE_SERVER
34575                | SyntaxKind::CREATE_STATISTICS
34576                | SyntaxKind::CREATE_SUBSCRIPTION
34577                | SyntaxKind::CREATE_TABLE
34578                | SyntaxKind::CREATE_TABLE_AS
34579                | SyntaxKind::CREATE_TABLESPACE
34580                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
34581                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
34582                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
34583                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
34584                | SyntaxKind::CREATE_TRANSFORM
34585                | SyntaxKind::CREATE_TRIGGER
34586                | SyntaxKind::CREATE_TYPE
34587                | SyntaxKind::CREATE_USER
34588                | SyntaxKind::CREATE_USER_MAPPING
34589                | SyntaxKind::CREATE_VIEW
34590                | SyntaxKind::DEALLOCATE
34591                | SyntaxKind::DECLARE
34592                | SyntaxKind::DELETE
34593                | SyntaxKind::DISCARD
34594                | SyntaxKind::DO
34595                | SyntaxKind::DROP_ACCESS_METHOD
34596                | SyntaxKind::DROP_AGGREGATE
34597                | SyntaxKind::DROP_CAST
34598                | SyntaxKind::DROP_COLLATION
34599                | SyntaxKind::DROP_CONVERSION
34600                | SyntaxKind::DROP_DATABASE
34601                | SyntaxKind::DROP_DOMAIN
34602                | SyntaxKind::DROP_EVENT_TRIGGER
34603                | SyntaxKind::DROP_EXTENSION
34604                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
34605                | SyntaxKind::DROP_FOREIGN_TABLE
34606                | SyntaxKind::DROP_FUNCTION
34607                | SyntaxKind::DROP_GROUP
34608                | SyntaxKind::DROP_INDEX
34609                | SyntaxKind::DROP_LANGUAGE
34610                | SyntaxKind::DROP_MATERIALIZED_VIEW
34611                | SyntaxKind::DROP_OPERATOR
34612                | SyntaxKind::DROP_OPERATOR_CLASS
34613                | SyntaxKind::DROP_OPERATOR_FAMILY
34614                | SyntaxKind::DROP_OWNED
34615                | SyntaxKind::DROP_POLICY
34616                | SyntaxKind::DROP_PROCEDURE
34617                | SyntaxKind::DROP_PROPERTY_GRAPH
34618                | SyntaxKind::DROP_PUBLICATION
34619                | SyntaxKind::DROP_ROLE
34620                | SyntaxKind::DROP_ROUTINE
34621                | SyntaxKind::DROP_RULE
34622                | SyntaxKind::DROP_SCHEMA
34623                | SyntaxKind::DROP_SEQUENCE
34624                | SyntaxKind::DROP_SERVER
34625                | SyntaxKind::DROP_STATISTICS
34626                | SyntaxKind::DROP_SUBSCRIPTION
34627                | SyntaxKind::DROP_TABLE
34628                | SyntaxKind::DROP_TABLESPACE
34629                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
34630                | SyntaxKind::DROP_TEXT_SEARCH_DICT
34631                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
34632                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
34633                | SyntaxKind::DROP_TRANSFORM
34634                | SyntaxKind::DROP_TRIGGER
34635                | SyntaxKind::DROP_TYPE
34636                | SyntaxKind::DROP_USER
34637                | SyntaxKind::DROP_USER_MAPPING
34638                | SyntaxKind::DROP_VIEW
34639                | SyntaxKind::EXECUTE
34640                | SyntaxKind::EXPLAIN
34641                | SyntaxKind::FETCH
34642                | SyntaxKind::GRANT
34643                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
34644                | SyntaxKind::INSERT
34645                | SyntaxKind::LISTEN
34646                | SyntaxKind::LOAD
34647                | SyntaxKind::LOCK
34648                | SyntaxKind::MERGE
34649                | SyntaxKind::MOVE
34650                | SyntaxKind::NOTIFY
34651                | SyntaxKind::PAREN_SELECT
34652                | SyntaxKind::PREPARE
34653                | SyntaxKind::PREPARE_TRANSACTION
34654                | SyntaxKind::REASSIGN
34655                | SyntaxKind::REFRESH
34656                | SyntaxKind::REINDEX
34657                | SyntaxKind::RELEASE_SAVEPOINT
34658                | SyntaxKind::REPACK
34659                | SyntaxKind::RESET
34660                | SyntaxKind::RESET_SESSION_AUTH
34661                | SyntaxKind::REVOKE
34662                | SyntaxKind::ROLLBACK
34663                | SyntaxKind::SAVEPOINT
34664                | SyntaxKind::SECURITY_LABEL
34665                | SyntaxKind::SELECT
34666                | SyntaxKind::SELECT_INTO
34667                | SyntaxKind::SET
34668                | SyntaxKind::SET_CONSTRAINTS
34669                | SyntaxKind::SET_ROLE
34670                | SyntaxKind::SET_SESSION_AUTH
34671                | SyntaxKind::SET_TRANSACTION
34672                | SyntaxKind::SHOW
34673                | SyntaxKind::TABLE
34674                | SyntaxKind::TRUNCATE
34675                | SyntaxKind::UNLISTEN
34676                | SyntaxKind::UPDATE
34677                | SyntaxKind::VACUUM
34678                | SyntaxKind::VALUES
34679        )
34680    }
34681    #[inline]
34682    fn cast(syntax: SyntaxNode) -> Option<Self> {
34683        let res = match syntax.kind() {
34684            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
34685            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
34686            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
34687            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
34688            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
34689                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
34690            }
34691            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
34692            SyntaxKind::ALTER_EVENT_TRIGGER => {
34693                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
34694            }
34695            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
34696            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
34697                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
34698            }
34699            SyntaxKind::ALTER_FOREIGN_TABLE => {
34700                Stmt::AlterForeignTable(AlterForeignTable { syntax })
34701            }
34702            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
34703            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
34704            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
34705            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
34706            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
34707            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
34708                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
34709            }
34710            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
34711            SyntaxKind::ALTER_OPERATOR_CLASS => {
34712                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
34713            }
34714            SyntaxKind::ALTER_OPERATOR_FAMILY => {
34715                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
34716            }
34717            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
34718            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
34719            SyntaxKind::ALTER_PROPERTY_GRAPH => {
34720                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
34721            }
34722            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
34723            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
34724            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
34725            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
34726            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
34727            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
34728            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
34729            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
34730            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
34731            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
34732            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
34733            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
34734            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
34735                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
34736            }
34737            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
34738                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
34739            }
34740            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
34741                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
34742            }
34743            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
34744                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
34745            }
34746            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
34747            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
34748            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
34749            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
34750            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
34751            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
34752            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
34753            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
34754            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
34755            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
34756            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
34757            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
34758            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
34759            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
34760            SyntaxKind::CREATE_ACCESS_METHOD => {
34761                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
34762            }
34763            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
34764            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
34765            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
34766            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
34767            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
34768            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
34769            SyntaxKind::CREATE_EVENT_TRIGGER => {
34770                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
34771            }
34772            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
34773            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
34774                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
34775            }
34776            SyntaxKind::CREATE_FOREIGN_TABLE => {
34777                Stmt::CreateForeignTable(CreateForeignTable { syntax })
34778            }
34779            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
34780            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
34781            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
34782            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
34783            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
34784                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
34785            }
34786            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
34787            SyntaxKind::CREATE_OPERATOR_CLASS => {
34788                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
34789            }
34790            SyntaxKind::CREATE_OPERATOR_FAMILY => {
34791                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
34792            }
34793            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
34794            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
34795            SyntaxKind::CREATE_PROPERTY_GRAPH => {
34796                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
34797            }
34798            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
34799            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
34800            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
34801            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
34802            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
34803            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
34804            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
34805            SyntaxKind::CREATE_SUBSCRIPTION => {
34806                Stmt::CreateSubscription(CreateSubscription { syntax })
34807            }
34808            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
34809            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
34810            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
34811            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
34812                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
34813            }
34814            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
34815                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
34816            }
34817            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
34818                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
34819            }
34820            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
34821                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
34822            }
34823            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
34824            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
34825            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
34826            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
34827            SyntaxKind::CREATE_USER_MAPPING => {
34828                Stmt::CreateUserMapping(CreateUserMapping { syntax })
34829            }
34830            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
34831            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
34832            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
34833            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
34834            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
34835            SyntaxKind::DO => Stmt::Do(Do { syntax }),
34836            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
34837            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
34838            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
34839            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
34840            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
34841            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
34842            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
34843            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
34844            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
34845            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
34846                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
34847            }
34848            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
34849            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
34850            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
34851            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
34852            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
34853            SyntaxKind::DROP_MATERIALIZED_VIEW => {
34854                Stmt::DropMaterializedView(DropMaterializedView { syntax })
34855            }
34856            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
34857            SyntaxKind::DROP_OPERATOR_CLASS => {
34858                Stmt::DropOperatorClass(DropOperatorClass { syntax })
34859            }
34860            SyntaxKind::DROP_OPERATOR_FAMILY => {
34861                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
34862            }
34863            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
34864            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
34865            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
34866            SyntaxKind::DROP_PROPERTY_GRAPH => {
34867                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
34868            }
34869            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
34870            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
34871            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
34872            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
34873            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
34874            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
34875            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
34876            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
34877            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
34878            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
34879            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
34880            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
34881                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
34882            }
34883            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
34884                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
34885            }
34886            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
34887                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
34888            }
34889            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
34890                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
34891            }
34892            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
34893            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
34894            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
34895            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
34896            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
34897            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
34898            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
34899            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
34900            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
34901            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
34902            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
34903                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
34904            }
34905            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
34906            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
34907            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
34908            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
34909            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
34910            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
34911            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
34912            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
34913            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
34914            SyntaxKind::PREPARE_TRANSACTION => {
34915                Stmt::PrepareTransaction(PrepareTransaction { syntax })
34916            }
34917            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
34918            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
34919            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
34920            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
34921            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
34922            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
34923            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
34924            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
34925            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
34926            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
34927            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
34928            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
34929            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
34930            SyntaxKind::SET => Stmt::Set(Set { syntax }),
34931            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
34932            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
34933            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
34934            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
34935            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
34936            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
34937            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
34938            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
34939            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
34940            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
34941            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
34942            _ => {
34943                return None;
34944            }
34945        };
34946        Some(res)
34947    }
34948    #[inline]
34949    fn syntax(&self) -> &SyntaxNode {
34950        match self {
34951            Stmt::AlterAggregate(it) => &it.syntax,
34952            Stmt::AlterCollation(it) => &it.syntax,
34953            Stmt::AlterConversion(it) => &it.syntax,
34954            Stmt::AlterDatabase(it) => &it.syntax,
34955            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
34956            Stmt::AlterDomain(it) => &it.syntax,
34957            Stmt::AlterEventTrigger(it) => &it.syntax,
34958            Stmt::AlterExtension(it) => &it.syntax,
34959            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
34960            Stmt::AlterForeignTable(it) => &it.syntax,
34961            Stmt::AlterFunction(it) => &it.syntax,
34962            Stmt::AlterGroup(it) => &it.syntax,
34963            Stmt::AlterIndex(it) => &it.syntax,
34964            Stmt::AlterLanguage(it) => &it.syntax,
34965            Stmt::AlterLargeObject(it) => &it.syntax,
34966            Stmt::AlterMaterializedView(it) => &it.syntax,
34967            Stmt::AlterOperator(it) => &it.syntax,
34968            Stmt::AlterOperatorClass(it) => &it.syntax,
34969            Stmt::AlterOperatorFamily(it) => &it.syntax,
34970            Stmt::AlterPolicy(it) => &it.syntax,
34971            Stmt::AlterProcedure(it) => &it.syntax,
34972            Stmt::AlterPropertyGraph(it) => &it.syntax,
34973            Stmt::AlterPublication(it) => &it.syntax,
34974            Stmt::AlterRole(it) => &it.syntax,
34975            Stmt::AlterRoutine(it) => &it.syntax,
34976            Stmt::AlterRule(it) => &it.syntax,
34977            Stmt::AlterSchema(it) => &it.syntax,
34978            Stmt::AlterSequence(it) => &it.syntax,
34979            Stmt::AlterServer(it) => &it.syntax,
34980            Stmt::AlterStatistics(it) => &it.syntax,
34981            Stmt::AlterSubscription(it) => &it.syntax,
34982            Stmt::AlterSystem(it) => &it.syntax,
34983            Stmt::AlterTable(it) => &it.syntax,
34984            Stmt::AlterTablespace(it) => &it.syntax,
34985            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
34986            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
34987            Stmt::AlterTextSearchParser(it) => &it.syntax,
34988            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
34989            Stmt::AlterTrigger(it) => &it.syntax,
34990            Stmt::AlterType(it) => &it.syntax,
34991            Stmt::AlterUser(it) => &it.syntax,
34992            Stmt::AlterUserMapping(it) => &it.syntax,
34993            Stmt::AlterView(it) => &it.syntax,
34994            Stmt::Analyze(it) => &it.syntax,
34995            Stmt::Begin(it) => &it.syntax,
34996            Stmt::Call(it) => &it.syntax,
34997            Stmt::Checkpoint(it) => &it.syntax,
34998            Stmt::Close(it) => &it.syntax,
34999            Stmt::Cluster(it) => &it.syntax,
35000            Stmt::CommentOn(it) => &it.syntax,
35001            Stmt::Commit(it) => &it.syntax,
35002            Stmt::Copy(it) => &it.syntax,
35003            Stmt::CreateAccessMethod(it) => &it.syntax,
35004            Stmt::CreateAggregate(it) => &it.syntax,
35005            Stmt::CreateCast(it) => &it.syntax,
35006            Stmt::CreateCollation(it) => &it.syntax,
35007            Stmt::CreateConversion(it) => &it.syntax,
35008            Stmt::CreateDatabase(it) => &it.syntax,
35009            Stmt::CreateDomain(it) => &it.syntax,
35010            Stmt::CreateEventTrigger(it) => &it.syntax,
35011            Stmt::CreateExtension(it) => &it.syntax,
35012            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
35013            Stmt::CreateForeignTable(it) => &it.syntax,
35014            Stmt::CreateFunction(it) => &it.syntax,
35015            Stmt::CreateGroup(it) => &it.syntax,
35016            Stmt::CreateIndex(it) => &it.syntax,
35017            Stmt::CreateLanguage(it) => &it.syntax,
35018            Stmt::CreateMaterializedView(it) => &it.syntax,
35019            Stmt::CreateOperator(it) => &it.syntax,
35020            Stmt::CreateOperatorClass(it) => &it.syntax,
35021            Stmt::CreateOperatorFamily(it) => &it.syntax,
35022            Stmt::CreatePolicy(it) => &it.syntax,
35023            Stmt::CreateProcedure(it) => &it.syntax,
35024            Stmt::CreatePropertyGraph(it) => &it.syntax,
35025            Stmt::CreatePublication(it) => &it.syntax,
35026            Stmt::CreateRole(it) => &it.syntax,
35027            Stmt::CreateRule(it) => &it.syntax,
35028            Stmt::CreateSchema(it) => &it.syntax,
35029            Stmt::CreateSequence(it) => &it.syntax,
35030            Stmt::CreateServer(it) => &it.syntax,
35031            Stmt::CreateStatistics(it) => &it.syntax,
35032            Stmt::CreateSubscription(it) => &it.syntax,
35033            Stmt::CreateTable(it) => &it.syntax,
35034            Stmt::CreateTableAs(it) => &it.syntax,
35035            Stmt::CreateTablespace(it) => &it.syntax,
35036            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
35037            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
35038            Stmt::CreateTextSearchParser(it) => &it.syntax,
35039            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
35040            Stmt::CreateTransform(it) => &it.syntax,
35041            Stmt::CreateTrigger(it) => &it.syntax,
35042            Stmt::CreateType(it) => &it.syntax,
35043            Stmt::CreateUser(it) => &it.syntax,
35044            Stmt::CreateUserMapping(it) => &it.syntax,
35045            Stmt::CreateView(it) => &it.syntax,
35046            Stmt::Deallocate(it) => &it.syntax,
35047            Stmt::Declare(it) => &it.syntax,
35048            Stmt::Delete(it) => &it.syntax,
35049            Stmt::Discard(it) => &it.syntax,
35050            Stmt::Do(it) => &it.syntax,
35051            Stmt::DropAccessMethod(it) => &it.syntax,
35052            Stmt::DropAggregate(it) => &it.syntax,
35053            Stmt::DropCast(it) => &it.syntax,
35054            Stmt::DropCollation(it) => &it.syntax,
35055            Stmt::DropConversion(it) => &it.syntax,
35056            Stmt::DropDatabase(it) => &it.syntax,
35057            Stmt::DropDomain(it) => &it.syntax,
35058            Stmt::DropEventTrigger(it) => &it.syntax,
35059            Stmt::DropExtension(it) => &it.syntax,
35060            Stmt::DropForeignDataWrapper(it) => &it.syntax,
35061            Stmt::DropForeignTable(it) => &it.syntax,
35062            Stmt::DropFunction(it) => &it.syntax,
35063            Stmt::DropGroup(it) => &it.syntax,
35064            Stmt::DropIndex(it) => &it.syntax,
35065            Stmt::DropLanguage(it) => &it.syntax,
35066            Stmt::DropMaterializedView(it) => &it.syntax,
35067            Stmt::DropOperator(it) => &it.syntax,
35068            Stmt::DropOperatorClass(it) => &it.syntax,
35069            Stmt::DropOperatorFamily(it) => &it.syntax,
35070            Stmt::DropOwned(it) => &it.syntax,
35071            Stmt::DropPolicy(it) => &it.syntax,
35072            Stmt::DropProcedure(it) => &it.syntax,
35073            Stmt::DropPropertyGraph(it) => &it.syntax,
35074            Stmt::DropPublication(it) => &it.syntax,
35075            Stmt::DropRole(it) => &it.syntax,
35076            Stmt::DropRoutine(it) => &it.syntax,
35077            Stmt::DropRule(it) => &it.syntax,
35078            Stmt::DropSchema(it) => &it.syntax,
35079            Stmt::DropSequence(it) => &it.syntax,
35080            Stmt::DropServer(it) => &it.syntax,
35081            Stmt::DropStatistics(it) => &it.syntax,
35082            Stmt::DropSubscription(it) => &it.syntax,
35083            Stmt::DropTable(it) => &it.syntax,
35084            Stmt::DropTablespace(it) => &it.syntax,
35085            Stmt::DropTextSearchConfig(it) => &it.syntax,
35086            Stmt::DropTextSearchDict(it) => &it.syntax,
35087            Stmt::DropTextSearchParser(it) => &it.syntax,
35088            Stmt::DropTextSearchTemplate(it) => &it.syntax,
35089            Stmt::DropTransform(it) => &it.syntax,
35090            Stmt::DropTrigger(it) => &it.syntax,
35091            Stmt::DropType(it) => &it.syntax,
35092            Stmt::DropUser(it) => &it.syntax,
35093            Stmt::DropUserMapping(it) => &it.syntax,
35094            Stmt::DropView(it) => &it.syntax,
35095            Stmt::Execute(it) => &it.syntax,
35096            Stmt::Explain(it) => &it.syntax,
35097            Stmt::Fetch(it) => &it.syntax,
35098            Stmt::Grant(it) => &it.syntax,
35099            Stmt::ImportForeignSchema(it) => &it.syntax,
35100            Stmt::Insert(it) => &it.syntax,
35101            Stmt::Listen(it) => &it.syntax,
35102            Stmt::Load(it) => &it.syntax,
35103            Stmt::Lock(it) => &it.syntax,
35104            Stmt::Merge(it) => &it.syntax,
35105            Stmt::Move(it) => &it.syntax,
35106            Stmt::Notify(it) => &it.syntax,
35107            Stmt::ParenSelect(it) => &it.syntax,
35108            Stmt::Prepare(it) => &it.syntax,
35109            Stmt::PrepareTransaction(it) => &it.syntax,
35110            Stmt::Reassign(it) => &it.syntax,
35111            Stmt::Refresh(it) => &it.syntax,
35112            Stmt::Reindex(it) => &it.syntax,
35113            Stmt::ReleaseSavepoint(it) => &it.syntax,
35114            Stmt::Repack(it) => &it.syntax,
35115            Stmt::Reset(it) => &it.syntax,
35116            Stmt::ResetSessionAuth(it) => &it.syntax,
35117            Stmt::Revoke(it) => &it.syntax,
35118            Stmt::Rollback(it) => &it.syntax,
35119            Stmt::Savepoint(it) => &it.syntax,
35120            Stmt::SecurityLabel(it) => &it.syntax,
35121            Stmt::Select(it) => &it.syntax,
35122            Stmt::SelectInto(it) => &it.syntax,
35123            Stmt::Set(it) => &it.syntax,
35124            Stmt::SetConstraints(it) => &it.syntax,
35125            Stmt::SetRole(it) => &it.syntax,
35126            Stmt::SetSessionAuth(it) => &it.syntax,
35127            Stmt::SetTransaction(it) => &it.syntax,
35128            Stmt::Show(it) => &it.syntax,
35129            Stmt::Table(it) => &it.syntax,
35130            Stmt::Truncate(it) => &it.syntax,
35131            Stmt::Unlisten(it) => &it.syntax,
35132            Stmt::Update(it) => &it.syntax,
35133            Stmt::Vacuum(it) => &it.syntax,
35134            Stmt::Values(it) => &it.syntax,
35135        }
35136    }
35137}
35138impl From<AlterAggregate> for Stmt {
35139    #[inline]
35140    fn from(node: AlterAggregate) -> Stmt {
35141        Stmt::AlterAggregate(node)
35142    }
35143}
35144impl From<AlterCollation> for Stmt {
35145    #[inline]
35146    fn from(node: AlterCollation) -> Stmt {
35147        Stmt::AlterCollation(node)
35148    }
35149}
35150impl From<AlterConversion> for Stmt {
35151    #[inline]
35152    fn from(node: AlterConversion) -> Stmt {
35153        Stmt::AlterConversion(node)
35154    }
35155}
35156impl From<AlterDatabase> for Stmt {
35157    #[inline]
35158    fn from(node: AlterDatabase) -> Stmt {
35159        Stmt::AlterDatabase(node)
35160    }
35161}
35162impl From<AlterDefaultPrivileges> for Stmt {
35163    #[inline]
35164    fn from(node: AlterDefaultPrivileges) -> Stmt {
35165        Stmt::AlterDefaultPrivileges(node)
35166    }
35167}
35168impl From<AlterDomain> for Stmt {
35169    #[inline]
35170    fn from(node: AlterDomain) -> Stmt {
35171        Stmt::AlterDomain(node)
35172    }
35173}
35174impl From<AlterEventTrigger> for Stmt {
35175    #[inline]
35176    fn from(node: AlterEventTrigger) -> Stmt {
35177        Stmt::AlterEventTrigger(node)
35178    }
35179}
35180impl From<AlterExtension> for Stmt {
35181    #[inline]
35182    fn from(node: AlterExtension) -> Stmt {
35183        Stmt::AlterExtension(node)
35184    }
35185}
35186impl From<AlterForeignDataWrapper> for Stmt {
35187    #[inline]
35188    fn from(node: AlterForeignDataWrapper) -> Stmt {
35189        Stmt::AlterForeignDataWrapper(node)
35190    }
35191}
35192impl From<AlterForeignTable> for Stmt {
35193    #[inline]
35194    fn from(node: AlterForeignTable) -> Stmt {
35195        Stmt::AlterForeignTable(node)
35196    }
35197}
35198impl From<AlterFunction> for Stmt {
35199    #[inline]
35200    fn from(node: AlterFunction) -> Stmt {
35201        Stmt::AlterFunction(node)
35202    }
35203}
35204impl From<AlterGroup> for Stmt {
35205    #[inline]
35206    fn from(node: AlterGroup) -> Stmt {
35207        Stmt::AlterGroup(node)
35208    }
35209}
35210impl From<AlterIndex> for Stmt {
35211    #[inline]
35212    fn from(node: AlterIndex) -> Stmt {
35213        Stmt::AlterIndex(node)
35214    }
35215}
35216impl From<AlterLanguage> for Stmt {
35217    #[inline]
35218    fn from(node: AlterLanguage) -> Stmt {
35219        Stmt::AlterLanguage(node)
35220    }
35221}
35222impl From<AlterLargeObject> for Stmt {
35223    #[inline]
35224    fn from(node: AlterLargeObject) -> Stmt {
35225        Stmt::AlterLargeObject(node)
35226    }
35227}
35228impl From<AlterMaterializedView> for Stmt {
35229    #[inline]
35230    fn from(node: AlterMaterializedView) -> Stmt {
35231        Stmt::AlterMaterializedView(node)
35232    }
35233}
35234impl From<AlterOperator> for Stmt {
35235    #[inline]
35236    fn from(node: AlterOperator) -> Stmt {
35237        Stmt::AlterOperator(node)
35238    }
35239}
35240impl From<AlterOperatorClass> for Stmt {
35241    #[inline]
35242    fn from(node: AlterOperatorClass) -> Stmt {
35243        Stmt::AlterOperatorClass(node)
35244    }
35245}
35246impl From<AlterOperatorFamily> for Stmt {
35247    #[inline]
35248    fn from(node: AlterOperatorFamily) -> Stmt {
35249        Stmt::AlterOperatorFamily(node)
35250    }
35251}
35252impl From<AlterPolicy> for Stmt {
35253    #[inline]
35254    fn from(node: AlterPolicy) -> Stmt {
35255        Stmt::AlterPolicy(node)
35256    }
35257}
35258impl From<AlterProcedure> for Stmt {
35259    #[inline]
35260    fn from(node: AlterProcedure) -> Stmt {
35261        Stmt::AlterProcedure(node)
35262    }
35263}
35264impl From<AlterPropertyGraph> for Stmt {
35265    #[inline]
35266    fn from(node: AlterPropertyGraph) -> Stmt {
35267        Stmt::AlterPropertyGraph(node)
35268    }
35269}
35270impl From<AlterPublication> for Stmt {
35271    #[inline]
35272    fn from(node: AlterPublication) -> Stmt {
35273        Stmt::AlterPublication(node)
35274    }
35275}
35276impl From<AlterRole> for Stmt {
35277    #[inline]
35278    fn from(node: AlterRole) -> Stmt {
35279        Stmt::AlterRole(node)
35280    }
35281}
35282impl From<AlterRoutine> for Stmt {
35283    #[inline]
35284    fn from(node: AlterRoutine) -> Stmt {
35285        Stmt::AlterRoutine(node)
35286    }
35287}
35288impl From<AlterRule> for Stmt {
35289    #[inline]
35290    fn from(node: AlterRule) -> Stmt {
35291        Stmt::AlterRule(node)
35292    }
35293}
35294impl From<AlterSchema> for Stmt {
35295    #[inline]
35296    fn from(node: AlterSchema) -> Stmt {
35297        Stmt::AlterSchema(node)
35298    }
35299}
35300impl From<AlterSequence> for Stmt {
35301    #[inline]
35302    fn from(node: AlterSequence) -> Stmt {
35303        Stmt::AlterSequence(node)
35304    }
35305}
35306impl From<AlterServer> for Stmt {
35307    #[inline]
35308    fn from(node: AlterServer) -> Stmt {
35309        Stmt::AlterServer(node)
35310    }
35311}
35312impl From<AlterStatistics> for Stmt {
35313    #[inline]
35314    fn from(node: AlterStatistics) -> Stmt {
35315        Stmt::AlterStatistics(node)
35316    }
35317}
35318impl From<AlterSubscription> for Stmt {
35319    #[inline]
35320    fn from(node: AlterSubscription) -> Stmt {
35321        Stmt::AlterSubscription(node)
35322    }
35323}
35324impl From<AlterSystem> for Stmt {
35325    #[inline]
35326    fn from(node: AlterSystem) -> Stmt {
35327        Stmt::AlterSystem(node)
35328    }
35329}
35330impl From<AlterTable> for Stmt {
35331    #[inline]
35332    fn from(node: AlterTable) -> Stmt {
35333        Stmt::AlterTable(node)
35334    }
35335}
35336impl From<AlterTablespace> for Stmt {
35337    #[inline]
35338    fn from(node: AlterTablespace) -> Stmt {
35339        Stmt::AlterTablespace(node)
35340    }
35341}
35342impl From<AlterTextSearchConfiguration> for Stmt {
35343    #[inline]
35344    fn from(node: AlterTextSearchConfiguration) -> Stmt {
35345        Stmt::AlterTextSearchConfiguration(node)
35346    }
35347}
35348impl From<AlterTextSearchDictionary> for Stmt {
35349    #[inline]
35350    fn from(node: AlterTextSearchDictionary) -> Stmt {
35351        Stmt::AlterTextSearchDictionary(node)
35352    }
35353}
35354impl From<AlterTextSearchParser> for Stmt {
35355    #[inline]
35356    fn from(node: AlterTextSearchParser) -> Stmt {
35357        Stmt::AlterTextSearchParser(node)
35358    }
35359}
35360impl From<AlterTextSearchTemplate> for Stmt {
35361    #[inline]
35362    fn from(node: AlterTextSearchTemplate) -> Stmt {
35363        Stmt::AlterTextSearchTemplate(node)
35364    }
35365}
35366impl From<AlterTrigger> for Stmt {
35367    #[inline]
35368    fn from(node: AlterTrigger) -> Stmt {
35369        Stmt::AlterTrigger(node)
35370    }
35371}
35372impl From<AlterType> for Stmt {
35373    #[inline]
35374    fn from(node: AlterType) -> Stmt {
35375        Stmt::AlterType(node)
35376    }
35377}
35378impl From<AlterUser> for Stmt {
35379    #[inline]
35380    fn from(node: AlterUser) -> Stmt {
35381        Stmt::AlterUser(node)
35382    }
35383}
35384impl From<AlterUserMapping> for Stmt {
35385    #[inline]
35386    fn from(node: AlterUserMapping) -> Stmt {
35387        Stmt::AlterUserMapping(node)
35388    }
35389}
35390impl From<AlterView> for Stmt {
35391    #[inline]
35392    fn from(node: AlterView) -> Stmt {
35393        Stmt::AlterView(node)
35394    }
35395}
35396impl From<Analyze> for Stmt {
35397    #[inline]
35398    fn from(node: Analyze) -> Stmt {
35399        Stmt::Analyze(node)
35400    }
35401}
35402impl From<Begin> for Stmt {
35403    #[inline]
35404    fn from(node: Begin) -> Stmt {
35405        Stmt::Begin(node)
35406    }
35407}
35408impl From<Call> for Stmt {
35409    #[inline]
35410    fn from(node: Call) -> Stmt {
35411        Stmt::Call(node)
35412    }
35413}
35414impl From<Checkpoint> for Stmt {
35415    #[inline]
35416    fn from(node: Checkpoint) -> Stmt {
35417        Stmt::Checkpoint(node)
35418    }
35419}
35420impl From<Close> for Stmt {
35421    #[inline]
35422    fn from(node: Close) -> Stmt {
35423        Stmt::Close(node)
35424    }
35425}
35426impl From<Cluster> for Stmt {
35427    #[inline]
35428    fn from(node: Cluster) -> Stmt {
35429        Stmt::Cluster(node)
35430    }
35431}
35432impl From<CommentOn> for Stmt {
35433    #[inline]
35434    fn from(node: CommentOn) -> Stmt {
35435        Stmt::CommentOn(node)
35436    }
35437}
35438impl From<Commit> for Stmt {
35439    #[inline]
35440    fn from(node: Commit) -> Stmt {
35441        Stmt::Commit(node)
35442    }
35443}
35444impl From<Copy> for Stmt {
35445    #[inline]
35446    fn from(node: Copy) -> Stmt {
35447        Stmt::Copy(node)
35448    }
35449}
35450impl From<CreateAccessMethod> for Stmt {
35451    #[inline]
35452    fn from(node: CreateAccessMethod) -> Stmt {
35453        Stmt::CreateAccessMethod(node)
35454    }
35455}
35456impl From<CreateAggregate> for Stmt {
35457    #[inline]
35458    fn from(node: CreateAggregate) -> Stmt {
35459        Stmt::CreateAggregate(node)
35460    }
35461}
35462impl From<CreateCast> for Stmt {
35463    #[inline]
35464    fn from(node: CreateCast) -> Stmt {
35465        Stmt::CreateCast(node)
35466    }
35467}
35468impl From<CreateCollation> for Stmt {
35469    #[inline]
35470    fn from(node: CreateCollation) -> Stmt {
35471        Stmt::CreateCollation(node)
35472    }
35473}
35474impl From<CreateConversion> for Stmt {
35475    #[inline]
35476    fn from(node: CreateConversion) -> Stmt {
35477        Stmt::CreateConversion(node)
35478    }
35479}
35480impl From<CreateDatabase> for Stmt {
35481    #[inline]
35482    fn from(node: CreateDatabase) -> Stmt {
35483        Stmt::CreateDatabase(node)
35484    }
35485}
35486impl From<CreateDomain> for Stmt {
35487    #[inline]
35488    fn from(node: CreateDomain) -> Stmt {
35489        Stmt::CreateDomain(node)
35490    }
35491}
35492impl From<CreateEventTrigger> for Stmt {
35493    #[inline]
35494    fn from(node: CreateEventTrigger) -> Stmt {
35495        Stmt::CreateEventTrigger(node)
35496    }
35497}
35498impl From<CreateExtension> for Stmt {
35499    #[inline]
35500    fn from(node: CreateExtension) -> Stmt {
35501        Stmt::CreateExtension(node)
35502    }
35503}
35504impl From<CreateForeignDataWrapper> for Stmt {
35505    #[inline]
35506    fn from(node: CreateForeignDataWrapper) -> Stmt {
35507        Stmt::CreateForeignDataWrapper(node)
35508    }
35509}
35510impl From<CreateForeignTable> for Stmt {
35511    #[inline]
35512    fn from(node: CreateForeignTable) -> Stmt {
35513        Stmt::CreateForeignTable(node)
35514    }
35515}
35516impl From<CreateFunction> for Stmt {
35517    #[inline]
35518    fn from(node: CreateFunction) -> Stmt {
35519        Stmt::CreateFunction(node)
35520    }
35521}
35522impl From<CreateGroup> for Stmt {
35523    #[inline]
35524    fn from(node: CreateGroup) -> Stmt {
35525        Stmt::CreateGroup(node)
35526    }
35527}
35528impl From<CreateIndex> for Stmt {
35529    #[inline]
35530    fn from(node: CreateIndex) -> Stmt {
35531        Stmt::CreateIndex(node)
35532    }
35533}
35534impl From<CreateLanguage> for Stmt {
35535    #[inline]
35536    fn from(node: CreateLanguage) -> Stmt {
35537        Stmt::CreateLanguage(node)
35538    }
35539}
35540impl From<CreateMaterializedView> for Stmt {
35541    #[inline]
35542    fn from(node: CreateMaterializedView) -> Stmt {
35543        Stmt::CreateMaterializedView(node)
35544    }
35545}
35546impl From<CreateOperator> for Stmt {
35547    #[inline]
35548    fn from(node: CreateOperator) -> Stmt {
35549        Stmt::CreateOperator(node)
35550    }
35551}
35552impl From<CreateOperatorClass> for Stmt {
35553    #[inline]
35554    fn from(node: CreateOperatorClass) -> Stmt {
35555        Stmt::CreateOperatorClass(node)
35556    }
35557}
35558impl From<CreateOperatorFamily> for Stmt {
35559    #[inline]
35560    fn from(node: CreateOperatorFamily) -> Stmt {
35561        Stmt::CreateOperatorFamily(node)
35562    }
35563}
35564impl From<CreatePolicy> for Stmt {
35565    #[inline]
35566    fn from(node: CreatePolicy) -> Stmt {
35567        Stmt::CreatePolicy(node)
35568    }
35569}
35570impl From<CreateProcedure> for Stmt {
35571    #[inline]
35572    fn from(node: CreateProcedure) -> Stmt {
35573        Stmt::CreateProcedure(node)
35574    }
35575}
35576impl From<CreatePropertyGraph> for Stmt {
35577    #[inline]
35578    fn from(node: CreatePropertyGraph) -> Stmt {
35579        Stmt::CreatePropertyGraph(node)
35580    }
35581}
35582impl From<CreatePublication> for Stmt {
35583    #[inline]
35584    fn from(node: CreatePublication) -> Stmt {
35585        Stmt::CreatePublication(node)
35586    }
35587}
35588impl From<CreateRole> for Stmt {
35589    #[inline]
35590    fn from(node: CreateRole) -> Stmt {
35591        Stmt::CreateRole(node)
35592    }
35593}
35594impl From<CreateRule> for Stmt {
35595    #[inline]
35596    fn from(node: CreateRule) -> Stmt {
35597        Stmt::CreateRule(node)
35598    }
35599}
35600impl From<CreateSchema> for Stmt {
35601    #[inline]
35602    fn from(node: CreateSchema) -> Stmt {
35603        Stmt::CreateSchema(node)
35604    }
35605}
35606impl From<CreateSequence> for Stmt {
35607    #[inline]
35608    fn from(node: CreateSequence) -> Stmt {
35609        Stmt::CreateSequence(node)
35610    }
35611}
35612impl From<CreateServer> for Stmt {
35613    #[inline]
35614    fn from(node: CreateServer) -> Stmt {
35615        Stmt::CreateServer(node)
35616    }
35617}
35618impl From<CreateStatistics> for Stmt {
35619    #[inline]
35620    fn from(node: CreateStatistics) -> Stmt {
35621        Stmt::CreateStatistics(node)
35622    }
35623}
35624impl From<CreateSubscription> for Stmt {
35625    #[inline]
35626    fn from(node: CreateSubscription) -> Stmt {
35627        Stmt::CreateSubscription(node)
35628    }
35629}
35630impl From<CreateTable> for Stmt {
35631    #[inline]
35632    fn from(node: CreateTable) -> Stmt {
35633        Stmt::CreateTable(node)
35634    }
35635}
35636impl From<CreateTableAs> for Stmt {
35637    #[inline]
35638    fn from(node: CreateTableAs) -> Stmt {
35639        Stmt::CreateTableAs(node)
35640    }
35641}
35642impl From<CreateTablespace> for Stmt {
35643    #[inline]
35644    fn from(node: CreateTablespace) -> Stmt {
35645        Stmt::CreateTablespace(node)
35646    }
35647}
35648impl From<CreateTextSearchConfiguration> for Stmt {
35649    #[inline]
35650    fn from(node: CreateTextSearchConfiguration) -> Stmt {
35651        Stmt::CreateTextSearchConfiguration(node)
35652    }
35653}
35654impl From<CreateTextSearchDictionary> for Stmt {
35655    #[inline]
35656    fn from(node: CreateTextSearchDictionary) -> Stmt {
35657        Stmt::CreateTextSearchDictionary(node)
35658    }
35659}
35660impl From<CreateTextSearchParser> for Stmt {
35661    #[inline]
35662    fn from(node: CreateTextSearchParser) -> Stmt {
35663        Stmt::CreateTextSearchParser(node)
35664    }
35665}
35666impl From<CreateTextSearchTemplate> for Stmt {
35667    #[inline]
35668    fn from(node: CreateTextSearchTemplate) -> Stmt {
35669        Stmt::CreateTextSearchTemplate(node)
35670    }
35671}
35672impl From<CreateTransform> for Stmt {
35673    #[inline]
35674    fn from(node: CreateTransform) -> Stmt {
35675        Stmt::CreateTransform(node)
35676    }
35677}
35678impl From<CreateTrigger> for Stmt {
35679    #[inline]
35680    fn from(node: CreateTrigger) -> Stmt {
35681        Stmt::CreateTrigger(node)
35682    }
35683}
35684impl From<CreateType> for Stmt {
35685    #[inline]
35686    fn from(node: CreateType) -> Stmt {
35687        Stmt::CreateType(node)
35688    }
35689}
35690impl From<CreateUser> for Stmt {
35691    #[inline]
35692    fn from(node: CreateUser) -> Stmt {
35693        Stmt::CreateUser(node)
35694    }
35695}
35696impl From<CreateUserMapping> for Stmt {
35697    #[inline]
35698    fn from(node: CreateUserMapping) -> Stmt {
35699        Stmt::CreateUserMapping(node)
35700    }
35701}
35702impl From<CreateView> for Stmt {
35703    #[inline]
35704    fn from(node: CreateView) -> Stmt {
35705        Stmt::CreateView(node)
35706    }
35707}
35708impl From<Deallocate> for Stmt {
35709    #[inline]
35710    fn from(node: Deallocate) -> Stmt {
35711        Stmt::Deallocate(node)
35712    }
35713}
35714impl From<Declare> for Stmt {
35715    #[inline]
35716    fn from(node: Declare) -> Stmt {
35717        Stmt::Declare(node)
35718    }
35719}
35720impl From<Delete> for Stmt {
35721    #[inline]
35722    fn from(node: Delete) -> Stmt {
35723        Stmt::Delete(node)
35724    }
35725}
35726impl From<Discard> for Stmt {
35727    #[inline]
35728    fn from(node: Discard) -> Stmt {
35729        Stmt::Discard(node)
35730    }
35731}
35732impl From<Do> for Stmt {
35733    #[inline]
35734    fn from(node: Do) -> Stmt {
35735        Stmt::Do(node)
35736    }
35737}
35738impl From<DropAccessMethod> for Stmt {
35739    #[inline]
35740    fn from(node: DropAccessMethod) -> Stmt {
35741        Stmt::DropAccessMethod(node)
35742    }
35743}
35744impl From<DropAggregate> for Stmt {
35745    #[inline]
35746    fn from(node: DropAggregate) -> Stmt {
35747        Stmt::DropAggregate(node)
35748    }
35749}
35750impl From<DropCast> for Stmt {
35751    #[inline]
35752    fn from(node: DropCast) -> Stmt {
35753        Stmt::DropCast(node)
35754    }
35755}
35756impl From<DropCollation> for Stmt {
35757    #[inline]
35758    fn from(node: DropCollation) -> Stmt {
35759        Stmt::DropCollation(node)
35760    }
35761}
35762impl From<DropConversion> for Stmt {
35763    #[inline]
35764    fn from(node: DropConversion) -> Stmt {
35765        Stmt::DropConversion(node)
35766    }
35767}
35768impl From<DropDatabase> for Stmt {
35769    #[inline]
35770    fn from(node: DropDatabase) -> Stmt {
35771        Stmt::DropDatabase(node)
35772    }
35773}
35774impl From<DropDomain> for Stmt {
35775    #[inline]
35776    fn from(node: DropDomain) -> Stmt {
35777        Stmt::DropDomain(node)
35778    }
35779}
35780impl From<DropEventTrigger> for Stmt {
35781    #[inline]
35782    fn from(node: DropEventTrigger) -> Stmt {
35783        Stmt::DropEventTrigger(node)
35784    }
35785}
35786impl From<DropExtension> for Stmt {
35787    #[inline]
35788    fn from(node: DropExtension) -> Stmt {
35789        Stmt::DropExtension(node)
35790    }
35791}
35792impl From<DropForeignDataWrapper> for Stmt {
35793    #[inline]
35794    fn from(node: DropForeignDataWrapper) -> Stmt {
35795        Stmt::DropForeignDataWrapper(node)
35796    }
35797}
35798impl From<DropForeignTable> for Stmt {
35799    #[inline]
35800    fn from(node: DropForeignTable) -> Stmt {
35801        Stmt::DropForeignTable(node)
35802    }
35803}
35804impl From<DropFunction> for Stmt {
35805    #[inline]
35806    fn from(node: DropFunction) -> Stmt {
35807        Stmt::DropFunction(node)
35808    }
35809}
35810impl From<DropGroup> for Stmt {
35811    #[inline]
35812    fn from(node: DropGroup) -> Stmt {
35813        Stmt::DropGroup(node)
35814    }
35815}
35816impl From<DropIndex> for Stmt {
35817    #[inline]
35818    fn from(node: DropIndex) -> Stmt {
35819        Stmt::DropIndex(node)
35820    }
35821}
35822impl From<DropLanguage> for Stmt {
35823    #[inline]
35824    fn from(node: DropLanguage) -> Stmt {
35825        Stmt::DropLanguage(node)
35826    }
35827}
35828impl From<DropMaterializedView> for Stmt {
35829    #[inline]
35830    fn from(node: DropMaterializedView) -> Stmt {
35831        Stmt::DropMaterializedView(node)
35832    }
35833}
35834impl From<DropOperator> for Stmt {
35835    #[inline]
35836    fn from(node: DropOperator) -> Stmt {
35837        Stmt::DropOperator(node)
35838    }
35839}
35840impl From<DropOperatorClass> for Stmt {
35841    #[inline]
35842    fn from(node: DropOperatorClass) -> Stmt {
35843        Stmt::DropOperatorClass(node)
35844    }
35845}
35846impl From<DropOperatorFamily> for Stmt {
35847    #[inline]
35848    fn from(node: DropOperatorFamily) -> Stmt {
35849        Stmt::DropOperatorFamily(node)
35850    }
35851}
35852impl From<DropOwned> for Stmt {
35853    #[inline]
35854    fn from(node: DropOwned) -> Stmt {
35855        Stmt::DropOwned(node)
35856    }
35857}
35858impl From<DropPolicy> for Stmt {
35859    #[inline]
35860    fn from(node: DropPolicy) -> Stmt {
35861        Stmt::DropPolicy(node)
35862    }
35863}
35864impl From<DropProcedure> for Stmt {
35865    #[inline]
35866    fn from(node: DropProcedure) -> Stmt {
35867        Stmt::DropProcedure(node)
35868    }
35869}
35870impl From<DropPropertyGraph> for Stmt {
35871    #[inline]
35872    fn from(node: DropPropertyGraph) -> Stmt {
35873        Stmt::DropPropertyGraph(node)
35874    }
35875}
35876impl From<DropPublication> for Stmt {
35877    #[inline]
35878    fn from(node: DropPublication) -> Stmt {
35879        Stmt::DropPublication(node)
35880    }
35881}
35882impl From<DropRole> for Stmt {
35883    #[inline]
35884    fn from(node: DropRole) -> Stmt {
35885        Stmt::DropRole(node)
35886    }
35887}
35888impl From<DropRoutine> for Stmt {
35889    #[inline]
35890    fn from(node: DropRoutine) -> Stmt {
35891        Stmt::DropRoutine(node)
35892    }
35893}
35894impl From<DropRule> for Stmt {
35895    #[inline]
35896    fn from(node: DropRule) -> Stmt {
35897        Stmt::DropRule(node)
35898    }
35899}
35900impl From<DropSchema> for Stmt {
35901    #[inline]
35902    fn from(node: DropSchema) -> Stmt {
35903        Stmt::DropSchema(node)
35904    }
35905}
35906impl From<DropSequence> for Stmt {
35907    #[inline]
35908    fn from(node: DropSequence) -> Stmt {
35909        Stmt::DropSequence(node)
35910    }
35911}
35912impl From<DropServer> for Stmt {
35913    #[inline]
35914    fn from(node: DropServer) -> Stmt {
35915        Stmt::DropServer(node)
35916    }
35917}
35918impl From<DropStatistics> for Stmt {
35919    #[inline]
35920    fn from(node: DropStatistics) -> Stmt {
35921        Stmt::DropStatistics(node)
35922    }
35923}
35924impl From<DropSubscription> for Stmt {
35925    #[inline]
35926    fn from(node: DropSubscription) -> Stmt {
35927        Stmt::DropSubscription(node)
35928    }
35929}
35930impl From<DropTable> for Stmt {
35931    #[inline]
35932    fn from(node: DropTable) -> Stmt {
35933        Stmt::DropTable(node)
35934    }
35935}
35936impl From<DropTablespace> for Stmt {
35937    #[inline]
35938    fn from(node: DropTablespace) -> Stmt {
35939        Stmt::DropTablespace(node)
35940    }
35941}
35942impl From<DropTextSearchConfig> for Stmt {
35943    #[inline]
35944    fn from(node: DropTextSearchConfig) -> Stmt {
35945        Stmt::DropTextSearchConfig(node)
35946    }
35947}
35948impl From<DropTextSearchDict> for Stmt {
35949    #[inline]
35950    fn from(node: DropTextSearchDict) -> Stmt {
35951        Stmt::DropTextSearchDict(node)
35952    }
35953}
35954impl From<DropTextSearchParser> for Stmt {
35955    #[inline]
35956    fn from(node: DropTextSearchParser) -> Stmt {
35957        Stmt::DropTextSearchParser(node)
35958    }
35959}
35960impl From<DropTextSearchTemplate> for Stmt {
35961    #[inline]
35962    fn from(node: DropTextSearchTemplate) -> Stmt {
35963        Stmt::DropTextSearchTemplate(node)
35964    }
35965}
35966impl From<DropTransform> for Stmt {
35967    #[inline]
35968    fn from(node: DropTransform) -> Stmt {
35969        Stmt::DropTransform(node)
35970    }
35971}
35972impl From<DropTrigger> for Stmt {
35973    #[inline]
35974    fn from(node: DropTrigger) -> Stmt {
35975        Stmt::DropTrigger(node)
35976    }
35977}
35978impl From<DropType> for Stmt {
35979    #[inline]
35980    fn from(node: DropType) -> Stmt {
35981        Stmt::DropType(node)
35982    }
35983}
35984impl From<DropUser> for Stmt {
35985    #[inline]
35986    fn from(node: DropUser) -> Stmt {
35987        Stmt::DropUser(node)
35988    }
35989}
35990impl From<DropUserMapping> for Stmt {
35991    #[inline]
35992    fn from(node: DropUserMapping) -> Stmt {
35993        Stmt::DropUserMapping(node)
35994    }
35995}
35996impl From<DropView> for Stmt {
35997    #[inline]
35998    fn from(node: DropView) -> Stmt {
35999        Stmt::DropView(node)
36000    }
36001}
36002impl From<Execute> for Stmt {
36003    #[inline]
36004    fn from(node: Execute) -> Stmt {
36005        Stmt::Execute(node)
36006    }
36007}
36008impl From<Explain> for Stmt {
36009    #[inline]
36010    fn from(node: Explain) -> Stmt {
36011        Stmt::Explain(node)
36012    }
36013}
36014impl From<Fetch> for Stmt {
36015    #[inline]
36016    fn from(node: Fetch) -> Stmt {
36017        Stmt::Fetch(node)
36018    }
36019}
36020impl From<Grant> for Stmt {
36021    #[inline]
36022    fn from(node: Grant) -> Stmt {
36023        Stmt::Grant(node)
36024    }
36025}
36026impl From<ImportForeignSchema> for Stmt {
36027    #[inline]
36028    fn from(node: ImportForeignSchema) -> Stmt {
36029        Stmt::ImportForeignSchema(node)
36030    }
36031}
36032impl From<Insert> for Stmt {
36033    #[inline]
36034    fn from(node: Insert) -> Stmt {
36035        Stmt::Insert(node)
36036    }
36037}
36038impl From<Listen> for Stmt {
36039    #[inline]
36040    fn from(node: Listen) -> Stmt {
36041        Stmt::Listen(node)
36042    }
36043}
36044impl From<Load> for Stmt {
36045    #[inline]
36046    fn from(node: Load) -> Stmt {
36047        Stmt::Load(node)
36048    }
36049}
36050impl From<Lock> for Stmt {
36051    #[inline]
36052    fn from(node: Lock) -> Stmt {
36053        Stmt::Lock(node)
36054    }
36055}
36056impl From<Merge> for Stmt {
36057    #[inline]
36058    fn from(node: Merge) -> Stmt {
36059        Stmt::Merge(node)
36060    }
36061}
36062impl From<Move> for Stmt {
36063    #[inline]
36064    fn from(node: Move) -> Stmt {
36065        Stmt::Move(node)
36066    }
36067}
36068impl From<Notify> for Stmt {
36069    #[inline]
36070    fn from(node: Notify) -> Stmt {
36071        Stmt::Notify(node)
36072    }
36073}
36074impl From<ParenSelect> for Stmt {
36075    #[inline]
36076    fn from(node: ParenSelect) -> Stmt {
36077        Stmt::ParenSelect(node)
36078    }
36079}
36080impl From<Prepare> for Stmt {
36081    #[inline]
36082    fn from(node: Prepare) -> Stmt {
36083        Stmt::Prepare(node)
36084    }
36085}
36086impl From<PrepareTransaction> for Stmt {
36087    #[inline]
36088    fn from(node: PrepareTransaction) -> Stmt {
36089        Stmt::PrepareTransaction(node)
36090    }
36091}
36092impl From<Reassign> for Stmt {
36093    #[inline]
36094    fn from(node: Reassign) -> Stmt {
36095        Stmt::Reassign(node)
36096    }
36097}
36098impl From<Refresh> for Stmt {
36099    #[inline]
36100    fn from(node: Refresh) -> Stmt {
36101        Stmt::Refresh(node)
36102    }
36103}
36104impl From<Reindex> for Stmt {
36105    #[inline]
36106    fn from(node: Reindex) -> Stmt {
36107        Stmt::Reindex(node)
36108    }
36109}
36110impl From<ReleaseSavepoint> for Stmt {
36111    #[inline]
36112    fn from(node: ReleaseSavepoint) -> Stmt {
36113        Stmt::ReleaseSavepoint(node)
36114    }
36115}
36116impl From<Repack> for Stmt {
36117    #[inline]
36118    fn from(node: Repack) -> Stmt {
36119        Stmt::Repack(node)
36120    }
36121}
36122impl From<Reset> for Stmt {
36123    #[inline]
36124    fn from(node: Reset) -> Stmt {
36125        Stmt::Reset(node)
36126    }
36127}
36128impl From<ResetSessionAuth> for Stmt {
36129    #[inline]
36130    fn from(node: ResetSessionAuth) -> Stmt {
36131        Stmt::ResetSessionAuth(node)
36132    }
36133}
36134impl From<Revoke> for Stmt {
36135    #[inline]
36136    fn from(node: Revoke) -> Stmt {
36137        Stmt::Revoke(node)
36138    }
36139}
36140impl From<Rollback> for Stmt {
36141    #[inline]
36142    fn from(node: Rollback) -> Stmt {
36143        Stmt::Rollback(node)
36144    }
36145}
36146impl From<Savepoint> for Stmt {
36147    #[inline]
36148    fn from(node: Savepoint) -> Stmt {
36149        Stmt::Savepoint(node)
36150    }
36151}
36152impl From<SecurityLabel> for Stmt {
36153    #[inline]
36154    fn from(node: SecurityLabel) -> Stmt {
36155        Stmt::SecurityLabel(node)
36156    }
36157}
36158impl From<Select> for Stmt {
36159    #[inline]
36160    fn from(node: Select) -> Stmt {
36161        Stmt::Select(node)
36162    }
36163}
36164impl From<SelectInto> for Stmt {
36165    #[inline]
36166    fn from(node: SelectInto) -> Stmt {
36167        Stmt::SelectInto(node)
36168    }
36169}
36170impl From<Set> for Stmt {
36171    #[inline]
36172    fn from(node: Set) -> Stmt {
36173        Stmt::Set(node)
36174    }
36175}
36176impl From<SetConstraints> for Stmt {
36177    #[inline]
36178    fn from(node: SetConstraints) -> Stmt {
36179        Stmt::SetConstraints(node)
36180    }
36181}
36182impl From<SetRole> for Stmt {
36183    #[inline]
36184    fn from(node: SetRole) -> Stmt {
36185        Stmt::SetRole(node)
36186    }
36187}
36188impl From<SetSessionAuth> for Stmt {
36189    #[inline]
36190    fn from(node: SetSessionAuth) -> Stmt {
36191        Stmt::SetSessionAuth(node)
36192    }
36193}
36194impl From<SetTransaction> for Stmt {
36195    #[inline]
36196    fn from(node: SetTransaction) -> Stmt {
36197        Stmt::SetTransaction(node)
36198    }
36199}
36200impl From<Show> for Stmt {
36201    #[inline]
36202    fn from(node: Show) -> Stmt {
36203        Stmt::Show(node)
36204    }
36205}
36206impl From<Table> for Stmt {
36207    #[inline]
36208    fn from(node: Table) -> Stmt {
36209        Stmt::Table(node)
36210    }
36211}
36212impl From<Truncate> for Stmt {
36213    #[inline]
36214    fn from(node: Truncate) -> Stmt {
36215        Stmt::Truncate(node)
36216    }
36217}
36218impl From<Unlisten> for Stmt {
36219    #[inline]
36220    fn from(node: Unlisten) -> Stmt {
36221        Stmt::Unlisten(node)
36222    }
36223}
36224impl From<Update> for Stmt {
36225    #[inline]
36226    fn from(node: Update) -> Stmt {
36227        Stmt::Update(node)
36228    }
36229}
36230impl From<Vacuum> for Stmt {
36231    #[inline]
36232    fn from(node: Vacuum) -> Stmt {
36233        Stmt::Vacuum(node)
36234    }
36235}
36236impl From<Values> for Stmt {
36237    #[inline]
36238    fn from(node: Values) -> Stmt {
36239        Stmt::Values(node)
36240    }
36241}
36242impl AstNode for TableArg {
36243    #[inline]
36244    fn can_cast(kind: SyntaxKind) -> bool {
36245        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
36246    }
36247    #[inline]
36248    fn cast(syntax: SyntaxNode) -> Option<Self> {
36249        let res = match syntax.kind() {
36250            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
36251            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
36252            _ => {
36253                if let Some(result) = TableConstraint::cast(syntax) {
36254                    return Some(TableArg::TableConstraint(result));
36255                }
36256                return None;
36257            }
36258        };
36259        Some(res)
36260    }
36261    #[inline]
36262    fn syntax(&self) -> &SyntaxNode {
36263        match self {
36264            TableArg::Column(it) => &it.syntax,
36265            TableArg::LikeClause(it) => &it.syntax,
36266            TableArg::TableConstraint(it) => it.syntax(),
36267        }
36268    }
36269}
36270impl From<Column> for TableArg {
36271    #[inline]
36272    fn from(node: Column) -> TableArg {
36273        TableArg::Column(node)
36274    }
36275}
36276impl From<LikeClause> for TableArg {
36277    #[inline]
36278    fn from(node: LikeClause) -> TableArg {
36279        TableArg::LikeClause(node)
36280    }
36281}
36282impl AstNode for TableConstraint {
36283    #[inline]
36284    fn can_cast(kind: SyntaxKind) -> bool {
36285        matches!(
36286            kind,
36287            SyntaxKind::CHECK_CONSTRAINT
36288                | SyntaxKind::EXCLUDE_CONSTRAINT
36289                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
36290                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
36291                | SyntaxKind::UNIQUE_CONSTRAINT
36292        )
36293    }
36294    #[inline]
36295    fn cast(syntax: SyntaxNode) -> Option<Self> {
36296        let res = match syntax.kind() {
36297            SyntaxKind::CHECK_CONSTRAINT => {
36298                TableConstraint::CheckConstraint(CheckConstraint { syntax })
36299            }
36300            SyntaxKind::EXCLUDE_CONSTRAINT => {
36301                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
36302            }
36303            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
36304                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
36305            }
36306            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
36307                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
36308            }
36309            SyntaxKind::UNIQUE_CONSTRAINT => {
36310                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
36311            }
36312            _ => {
36313                return None;
36314            }
36315        };
36316        Some(res)
36317    }
36318    #[inline]
36319    fn syntax(&self) -> &SyntaxNode {
36320        match self {
36321            TableConstraint::CheckConstraint(it) => &it.syntax,
36322            TableConstraint::ExcludeConstraint(it) => &it.syntax,
36323            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
36324            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
36325            TableConstraint::UniqueConstraint(it) => &it.syntax,
36326        }
36327    }
36328}
36329impl From<CheckConstraint> for TableConstraint {
36330    #[inline]
36331    fn from(node: CheckConstraint) -> TableConstraint {
36332        TableConstraint::CheckConstraint(node)
36333    }
36334}
36335impl From<ExcludeConstraint> for TableConstraint {
36336    #[inline]
36337    fn from(node: ExcludeConstraint) -> TableConstraint {
36338        TableConstraint::ExcludeConstraint(node)
36339    }
36340}
36341impl From<ForeignKeyConstraint> for TableConstraint {
36342    #[inline]
36343    fn from(node: ForeignKeyConstraint) -> TableConstraint {
36344        TableConstraint::ForeignKeyConstraint(node)
36345    }
36346}
36347impl From<PrimaryKeyConstraint> for TableConstraint {
36348    #[inline]
36349    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
36350        TableConstraint::PrimaryKeyConstraint(node)
36351    }
36352}
36353impl From<UniqueConstraint> for TableConstraint {
36354    #[inline]
36355    fn from(node: UniqueConstraint) -> TableConstraint {
36356        TableConstraint::UniqueConstraint(node)
36357    }
36358}
36359impl AstNode for Timezone {
36360    #[inline]
36361    fn can_cast(kind: SyntaxKind) -> bool {
36362        matches!(
36363            kind,
36364            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
36365        )
36366    }
36367    #[inline]
36368    fn cast(syntax: SyntaxNode) -> Option<Self> {
36369        let res = match syntax.kind() {
36370            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
36371            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
36372            _ => {
36373                return None;
36374            }
36375        };
36376        Some(res)
36377    }
36378    #[inline]
36379    fn syntax(&self) -> &SyntaxNode {
36380        match self {
36381            Timezone::WithTimezone(it) => &it.syntax,
36382            Timezone::WithoutTimezone(it) => &it.syntax,
36383        }
36384    }
36385}
36386impl From<WithTimezone> for Timezone {
36387    #[inline]
36388    fn from(node: WithTimezone) -> Timezone {
36389        Timezone::WithTimezone(node)
36390    }
36391}
36392impl From<WithoutTimezone> for Timezone {
36393    #[inline]
36394    fn from(node: WithoutTimezone) -> Timezone {
36395        Timezone::WithoutTimezone(node)
36396    }
36397}
36398impl AstNode for TransactionMode {
36399    #[inline]
36400    fn can_cast(kind: SyntaxKind) -> bool {
36401        matches!(
36402            kind,
36403            SyntaxKind::DEFERRABLE
36404                | SyntaxKind::NOT_DEFERRABLE
36405                | SyntaxKind::READ_COMMITTED
36406                | SyntaxKind::READ_ONLY
36407                | SyntaxKind::READ_UNCOMMITTED
36408                | SyntaxKind::READ_WRITE
36409                | SyntaxKind::REPEATABLE_READ
36410                | SyntaxKind::SERIALIZABLE
36411        )
36412    }
36413    #[inline]
36414    fn cast(syntax: SyntaxNode) -> Option<Self> {
36415        let res = match syntax.kind() {
36416            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
36417            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
36418            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
36419            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
36420            SyntaxKind::READ_UNCOMMITTED => {
36421                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
36422            }
36423            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
36424            SyntaxKind::REPEATABLE_READ => {
36425                TransactionMode::RepeatableRead(RepeatableRead { syntax })
36426            }
36427            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
36428            _ => {
36429                return None;
36430            }
36431        };
36432        Some(res)
36433    }
36434    #[inline]
36435    fn syntax(&self) -> &SyntaxNode {
36436        match self {
36437            TransactionMode::Deferrable(it) => &it.syntax,
36438            TransactionMode::NotDeferrable(it) => &it.syntax,
36439            TransactionMode::ReadCommitted(it) => &it.syntax,
36440            TransactionMode::ReadOnly(it) => &it.syntax,
36441            TransactionMode::ReadUncommitted(it) => &it.syntax,
36442            TransactionMode::ReadWrite(it) => &it.syntax,
36443            TransactionMode::RepeatableRead(it) => &it.syntax,
36444            TransactionMode::Serializable(it) => &it.syntax,
36445        }
36446    }
36447}
36448impl From<Deferrable> for TransactionMode {
36449    #[inline]
36450    fn from(node: Deferrable) -> TransactionMode {
36451        TransactionMode::Deferrable(node)
36452    }
36453}
36454impl From<NotDeferrable> for TransactionMode {
36455    #[inline]
36456    fn from(node: NotDeferrable) -> TransactionMode {
36457        TransactionMode::NotDeferrable(node)
36458    }
36459}
36460impl From<ReadCommitted> for TransactionMode {
36461    #[inline]
36462    fn from(node: ReadCommitted) -> TransactionMode {
36463        TransactionMode::ReadCommitted(node)
36464    }
36465}
36466impl From<ReadOnly> for TransactionMode {
36467    #[inline]
36468    fn from(node: ReadOnly) -> TransactionMode {
36469        TransactionMode::ReadOnly(node)
36470    }
36471}
36472impl From<ReadUncommitted> for TransactionMode {
36473    #[inline]
36474    fn from(node: ReadUncommitted) -> TransactionMode {
36475        TransactionMode::ReadUncommitted(node)
36476    }
36477}
36478impl From<ReadWrite> for TransactionMode {
36479    #[inline]
36480    fn from(node: ReadWrite) -> TransactionMode {
36481        TransactionMode::ReadWrite(node)
36482    }
36483}
36484impl From<RepeatableRead> for TransactionMode {
36485    #[inline]
36486    fn from(node: RepeatableRead) -> TransactionMode {
36487        TransactionMode::RepeatableRead(node)
36488    }
36489}
36490impl From<Serializable> for TransactionMode {
36491    #[inline]
36492    fn from(node: Serializable) -> TransactionMode {
36493        TransactionMode::Serializable(node)
36494    }
36495}
36496impl AstNode for Type {
36497    #[inline]
36498    fn can_cast(kind: SyntaxKind) -> bool {
36499        matches!(
36500            kind,
36501            SyntaxKind::ARRAY_TYPE
36502                | SyntaxKind::BIT_TYPE
36503                | SyntaxKind::CHAR_TYPE
36504                | SyntaxKind::DOUBLE_TYPE
36505                | SyntaxKind::EXPR_TYPE
36506                | SyntaxKind::INTERVAL_TYPE
36507                | SyntaxKind::PATH_TYPE
36508                | SyntaxKind::PERCENT_TYPE
36509                | SyntaxKind::TIME_TYPE
36510        )
36511    }
36512    #[inline]
36513    fn cast(syntax: SyntaxNode) -> Option<Self> {
36514        let res = match syntax.kind() {
36515            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
36516            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
36517            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
36518            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
36519            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
36520            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
36521            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
36522            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
36523            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
36524            _ => {
36525                return None;
36526            }
36527        };
36528        Some(res)
36529    }
36530    #[inline]
36531    fn syntax(&self) -> &SyntaxNode {
36532        match self {
36533            Type::ArrayType(it) => &it.syntax,
36534            Type::BitType(it) => &it.syntax,
36535            Type::CharType(it) => &it.syntax,
36536            Type::DoubleType(it) => &it.syntax,
36537            Type::ExprType(it) => &it.syntax,
36538            Type::IntervalType(it) => &it.syntax,
36539            Type::PathType(it) => &it.syntax,
36540            Type::PercentType(it) => &it.syntax,
36541            Type::TimeType(it) => &it.syntax,
36542        }
36543    }
36544}
36545impl From<ArrayType> for Type {
36546    #[inline]
36547    fn from(node: ArrayType) -> Type {
36548        Type::ArrayType(node)
36549    }
36550}
36551impl From<BitType> for Type {
36552    #[inline]
36553    fn from(node: BitType) -> Type {
36554        Type::BitType(node)
36555    }
36556}
36557impl From<CharType> for Type {
36558    #[inline]
36559    fn from(node: CharType) -> Type {
36560        Type::CharType(node)
36561    }
36562}
36563impl From<DoubleType> for Type {
36564    #[inline]
36565    fn from(node: DoubleType) -> Type {
36566        Type::DoubleType(node)
36567    }
36568}
36569impl From<ExprType> for Type {
36570    #[inline]
36571    fn from(node: ExprType) -> Type {
36572        Type::ExprType(node)
36573    }
36574}
36575impl From<IntervalType> for Type {
36576    #[inline]
36577    fn from(node: IntervalType) -> Type {
36578        Type::IntervalType(node)
36579    }
36580}
36581impl From<PathType> for Type {
36582    #[inline]
36583    fn from(node: PathType) -> Type {
36584        Type::PathType(node)
36585    }
36586}
36587impl From<PercentType> for Type {
36588    #[inline]
36589    fn from(node: PercentType) -> Type {
36590        Type::PercentType(node)
36591    }
36592}
36593impl From<TimeType> for Type {
36594    #[inline]
36595    fn from(node: TimeType) -> Type {
36596        Type::TimeType(node)
36597    }
36598}
36599impl AstNode for ValuePosition {
36600    #[inline]
36601    fn can_cast(kind: SyntaxKind) -> bool {
36602        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
36603    }
36604    #[inline]
36605    fn cast(syntax: SyntaxNode) -> Option<Self> {
36606        let res = match syntax.kind() {
36607            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
36608            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
36609            _ => {
36610                return None;
36611            }
36612        };
36613        Some(res)
36614    }
36615    #[inline]
36616    fn syntax(&self) -> &SyntaxNode {
36617        match self {
36618            ValuePosition::AfterValue(it) => &it.syntax,
36619            ValuePosition::BeforeValue(it) => &it.syntax,
36620        }
36621    }
36622}
36623impl From<AfterValue> for ValuePosition {
36624    #[inline]
36625    fn from(node: AfterValue) -> ValuePosition {
36626        ValuePosition::AfterValue(node)
36627    }
36628}
36629impl From<BeforeValue> for ValuePosition {
36630    #[inline]
36631    fn from(node: BeforeValue) -> ValuePosition {
36632        ValuePosition::BeforeValue(node)
36633    }
36634}
36635impl AstNode for WithQuery {
36636    #[inline]
36637    fn can_cast(kind: SyntaxKind) -> bool {
36638        matches!(
36639            kind,
36640            SyntaxKind::COMPOUND_SELECT
36641                | SyntaxKind::DELETE
36642                | SyntaxKind::INSERT
36643                | SyntaxKind::MERGE
36644                | SyntaxKind::PAREN_SELECT
36645                | SyntaxKind::SELECT
36646                | SyntaxKind::TABLE
36647                | SyntaxKind::UPDATE
36648                | SyntaxKind::VALUES
36649        )
36650    }
36651    #[inline]
36652    fn cast(syntax: SyntaxNode) -> Option<Self> {
36653        let res = match syntax.kind() {
36654            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
36655            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
36656            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
36657            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
36658            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
36659            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
36660            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
36661            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
36662            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
36663            _ => {
36664                return None;
36665            }
36666        };
36667        Some(res)
36668    }
36669    #[inline]
36670    fn syntax(&self) -> &SyntaxNode {
36671        match self {
36672            WithQuery::CompoundSelect(it) => &it.syntax,
36673            WithQuery::Delete(it) => &it.syntax,
36674            WithQuery::Insert(it) => &it.syntax,
36675            WithQuery::Merge(it) => &it.syntax,
36676            WithQuery::ParenSelect(it) => &it.syntax,
36677            WithQuery::Select(it) => &it.syntax,
36678            WithQuery::Table(it) => &it.syntax,
36679            WithQuery::Update(it) => &it.syntax,
36680            WithQuery::Values(it) => &it.syntax,
36681        }
36682    }
36683}
36684impl From<CompoundSelect> for WithQuery {
36685    #[inline]
36686    fn from(node: CompoundSelect) -> WithQuery {
36687        WithQuery::CompoundSelect(node)
36688    }
36689}
36690impl From<Delete> for WithQuery {
36691    #[inline]
36692    fn from(node: Delete) -> WithQuery {
36693        WithQuery::Delete(node)
36694    }
36695}
36696impl From<Insert> for WithQuery {
36697    #[inline]
36698    fn from(node: Insert) -> WithQuery {
36699        WithQuery::Insert(node)
36700    }
36701}
36702impl From<Merge> for WithQuery {
36703    #[inline]
36704    fn from(node: Merge) -> WithQuery {
36705        WithQuery::Merge(node)
36706    }
36707}
36708impl From<ParenSelect> for WithQuery {
36709    #[inline]
36710    fn from(node: ParenSelect) -> WithQuery {
36711        WithQuery::ParenSelect(node)
36712    }
36713}
36714impl From<Select> for WithQuery {
36715    #[inline]
36716    fn from(node: Select) -> WithQuery {
36717        WithQuery::Select(node)
36718    }
36719}
36720impl From<Table> for WithQuery {
36721    #[inline]
36722    fn from(node: Table) -> WithQuery {
36723        WithQuery::Table(node)
36724    }
36725}
36726impl From<Update> for WithQuery {
36727    #[inline]
36728    fn from(node: Update) -> WithQuery {
36729        WithQuery::Update(node)
36730    }
36731}
36732impl From<Values> for WithQuery {
36733    #[inline]
36734    fn from(node: Values) -> WithQuery {
36735        WithQuery::Values(node)
36736    }
36737}