squawk_syntax/ast/generated/
nodes.rs

1use crate::SyntaxKind;
2use crate::ast::AstNode;
3use crate::ast::{AstChildren, support};
4use crate::syntax_node::SyntaxNode;
5use crate::syntax_node::SyntaxToken;
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8pub struct AddColumn {
9    pub(crate) syntax: SyntaxNode,
10}
11impl AddColumn {
12    #[inline]
13    pub fn collate(&self) -> Option<Collate> {
14        support::child(&self.syntax)
15    }
16    #[inline]
17    pub fn constraints(&self) -> AstChildren<Constraint> {
18        support::children(&self.syntax)
19    }
20    #[inline]
21    pub fn if_not_exists(&self) -> Option<IfNotExists> {
22        support::child(&self.syntax)
23    }
24    #[inline]
25    pub fn name(&self) -> Option<Name> {
26        support::child(&self.syntax)
27    }
28    #[inline]
29    pub fn ty(&self) -> Option<Type> {
30        support::child(&self.syntax)
31    }
32    #[inline]
33    pub fn add_token(&self) -> Option<SyntaxToken> {
34        support::token(&self.syntax, SyntaxKind::ADD_KW)
35    }
36    #[inline]
37    pub fn column_token(&self) -> Option<SyntaxToken> {
38        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
39    }
40}
41
42#[derive(Debug, Clone, PartialEq, Eq, Hash)]
43pub struct AddConstraint {
44    pub(crate) syntax: SyntaxNode,
45}
46impl AddConstraint {
47    #[inline]
48    pub fn constraint(&self) -> Option<Constraint> {
49        support::child(&self.syntax)
50    }
51    #[inline]
52    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
53        support::child(&self.syntax)
54    }
55    #[inline]
56    pub fn enforced(&self) -> Option<Enforced> {
57        support::child(&self.syntax)
58    }
59    #[inline]
60    pub fn initially_deferred_constraint_option(
61        &self,
62    ) -> Option<InitiallyDeferredConstraintOption> {
63        support::child(&self.syntax)
64    }
65    #[inline]
66    pub fn initially_immediate_constraint_option(
67        &self,
68    ) -> Option<InitiallyImmediateConstraintOption> {
69        support::child(&self.syntax)
70    }
71    #[inline]
72    pub fn no_inherit(&self) -> Option<NoInherit> {
73        support::child(&self.syntax)
74    }
75    #[inline]
76    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
77        support::child(&self.syntax)
78    }
79    #[inline]
80    pub fn not_enforced(&self) -> Option<NotEnforced> {
81        support::child(&self.syntax)
82    }
83    #[inline]
84    pub fn not_valid(&self) -> Option<NotValid> {
85        support::child(&self.syntax)
86    }
87    #[inline]
88    pub fn add_token(&self) -> Option<SyntaxToken> {
89        support::token(&self.syntax, SyntaxKind::ADD_KW)
90    }
91}
92
93#[derive(Debug, Clone, PartialEq, Eq, Hash)]
94pub struct AddGenerated {
95    pub(crate) syntax: SyntaxNode,
96}
97impl AddGenerated {
98    #[inline]
99    pub fn add_token(&self) -> Option<SyntaxToken> {
100        support::token(&self.syntax, SyntaxKind::ADD_KW)
101    }
102}
103
104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
105pub struct AddOpClassOptions {
106    pub(crate) syntax: SyntaxNode,
107}
108impl AddOpClassOptions {
109    #[inline]
110    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn add_token(&self) -> Option<SyntaxToken> {
115        support::token(&self.syntax, SyntaxKind::ADD_KW)
116    }
117}
118
119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
120pub struct Aggregate {
121    pub(crate) syntax: SyntaxNode,
122}
123impl Aggregate {
124    #[inline]
125    pub fn param_list(&self) -> Option<ParamList> {
126        support::child(&self.syntax)
127    }
128    #[inline]
129    pub fn path(&self) -> Option<Path> {
130        support::child(&self.syntax)
131    }
132}
133
134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
135pub struct Alias {
136    pub(crate) syntax: SyntaxNode,
137}
138impl Alias {
139    #[inline]
140    pub fn column_list(&self) -> Option<ColumnList> {
141        support::child(&self.syntax)
142    }
143    #[inline]
144    pub fn name(&self) -> Option<Name> {
145        support::child(&self.syntax)
146    }
147    #[inline]
148    pub fn as_token(&self) -> Option<SyntaxToken> {
149        support::token(&self.syntax, SyntaxKind::AS_KW)
150    }
151}
152
153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
154pub struct AllFn {
155    pub(crate) syntax: SyntaxNode,
156}
157impl AllFn {
158    #[inline]
159    pub fn expr(&self) -> Option<Expr> {
160        support::child(&self.syntax)
161    }
162    #[inline]
163    pub fn select_variant(&self) -> Option<SelectVariant> {
164        support::child(&self.syntax)
165    }
166    #[inline]
167    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
168        support::token(&self.syntax, SyntaxKind::L_PAREN)
169    }
170    #[inline]
171    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
172        support::token(&self.syntax, SyntaxKind::R_PAREN)
173    }
174    #[inline]
175    pub fn all_token(&self) -> Option<SyntaxToken> {
176        support::token(&self.syntax, SyntaxKind::ALL_KW)
177    }
178}
179
180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
181pub struct AlterAggregate {
182    pub(crate) syntax: SyntaxNode,
183}
184impl AlterAggregate {
185    #[inline]
186    pub fn aggregate(&self) -> Option<Aggregate> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
191        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
192    }
193    #[inline]
194    pub fn alter_token(&self) -> Option<SyntaxToken> {
195        support::token(&self.syntax, SyntaxKind::ALTER_KW)
196    }
197}
198
199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
200pub struct AlterCollation {
201    pub(crate) syntax: SyntaxNode,
202}
203impl AlterCollation {
204    #[inline]
205    pub fn owner_to(&self) -> Option<OwnerTo> {
206        support::child(&self.syntax)
207    }
208    #[inline]
209    pub fn path(&self) -> Option<Path> {
210        support::child(&self.syntax)
211    }
212    #[inline]
213    pub fn refresh_version(&self) -> Option<RefreshVersion> {
214        support::child(&self.syntax)
215    }
216    #[inline]
217    pub fn rename_to(&self) -> Option<RenameTo> {
218        support::child(&self.syntax)
219    }
220    #[inline]
221    pub fn set_schema(&self) -> Option<SetSchema> {
222        support::child(&self.syntax)
223    }
224    #[inline]
225    pub fn alter_token(&self) -> Option<SyntaxToken> {
226        support::token(&self.syntax, SyntaxKind::ALTER_KW)
227    }
228    #[inline]
229    pub fn collation_token(&self) -> Option<SyntaxToken> {
230        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
231    }
232}
233
234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
235pub struct AlterColumn {
236    pub(crate) syntax: SyntaxNode,
237}
238impl AlterColumn {
239    #[inline]
240    pub fn name_ref(&self) -> Option<NameRef> {
241        support::child(&self.syntax)
242    }
243    #[inline]
244    pub fn option(&self) -> Option<AlterColumnOption> {
245        support::child(&self.syntax)
246    }
247    #[inline]
248    pub fn alter_token(&self) -> Option<SyntaxToken> {
249        support::token(&self.syntax, SyntaxKind::ALTER_KW)
250    }
251    #[inline]
252    pub fn column_token(&self) -> Option<SyntaxToken> {
253        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
254    }
255}
256
257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
258pub struct AlterConstraint {
259    pub(crate) syntax: SyntaxNode,
260}
261impl AlterConstraint {
262    #[inline]
263    pub fn option(&self) -> Option<AlterColumnOption> {
264        support::child(&self.syntax)
265    }
266    #[inline]
267    pub fn alter_token(&self) -> Option<SyntaxToken> {
268        support::token(&self.syntax, SyntaxKind::ALTER_KW)
269    }
270    #[inline]
271    pub fn constraint_token(&self) -> Option<SyntaxToken> {
272        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
273    }
274}
275
276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
277pub struct AlterConversion {
278    pub(crate) syntax: SyntaxNode,
279}
280impl AlterConversion {
281    #[inline]
282    pub fn owner_to(&self) -> Option<OwnerTo> {
283        support::child(&self.syntax)
284    }
285    #[inline]
286    pub fn path(&self) -> Option<Path> {
287        support::child(&self.syntax)
288    }
289    #[inline]
290    pub fn rename_to(&self) -> Option<RenameTo> {
291        support::child(&self.syntax)
292    }
293    #[inline]
294    pub fn set_schema(&self) -> Option<SetSchema> {
295        support::child(&self.syntax)
296    }
297    #[inline]
298    pub fn alter_token(&self) -> Option<SyntaxToken> {
299        support::token(&self.syntax, SyntaxKind::ALTER_KW)
300    }
301    #[inline]
302    pub fn conversion_token(&self) -> Option<SyntaxToken> {
303        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
304    }
305}
306
307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
308pub struct AlterDatabase {
309    pub(crate) syntax: SyntaxNode,
310}
311impl AlterDatabase {
312    #[inline]
313    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
314        support::child(&self.syntax)
315    }
316    #[inline]
317    pub fn name_ref(&self) -> Option<NameRef> {
318        support::child(&self.syntax)
319    }
320    #[inline]
321    pub fn owner_to(&self) -> Option<OwnerTo> {
322        support::child(&self.syntax)
323    }
324    #[inline]
325    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
326        support::child(&self.syntax)
327    }
328    #[inline]
329    pub fn rename_to(&self) -> Option<RenameTo> {
330        support::child(&self.syntax)
331    }
332    #[inline]
333    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
334        support::child(&self.syntax)
335    }
336    #[inline]
337    pub fn set_config_param(&self) -> Option<SetConfigParam> {
338        support::child(&self.syntax)
339    }
340    #[inline]
341    pub fn set_tablespace(&self) -> Option<SetTablespace> {
342        support::child(&self.syntax)
343    }
344    #[inline]
345    pub fn alter_token(&self) -> Option<SyntaxToken> {
346        support::token(&self.syntax, SyntaxKind::ALTER_KW)
347    }
348    #[inline]
349    pub fn database_token(&self) -> Option<SyntaxToken> {
350        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
351    }
352}
353
354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
355pub struct AlterDefaultPrivileges {
356    pub(crate) syntax: SyntaxNode,
357}
358impl AlterDefaultPrivileges {
359    #[inline]
360    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
361        support::child(&self.syntax)
362    }
363    #[inline]
364    pub fn name_refs(&self) -> AstChildren<NameRef> {
365        support::children(&self.syntax)
366    }
367    #[inline]
368    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
369        support::child(&self.syntax)
370    }
371    #[inline]
372    pub fn role_list(&self) -> Option<RoleList> {
373        support::child(&self.syntax)
374    }
375    #[inline]
376    pub fn alter_token(&self) -> Option<SyntaxToken> {
377        support::token(&self.syntax, SyntaxKind::ALTER_KW)
378    }
379    #[inline]
380    pub fn default_token(&self) -> Option<SyntaxToken> {
381        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
382    }
383    #[inline]
384    pub fn for_token(&self) -> Option<SyntaxToken> {
385        support::token(&self.syntax, SyntaxKind::FOR_KW)
386    }
387    #[inline]
388    pub fn in_token(&self) -> Option<SyntaxToken> {
389        support::token(&self.syntax, SyntaxKind::IN_KW)
390    }
391    #[inline]
392    pub fn privileges_token(&self) -> Option<SyntaxToken> {
393        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
394    }
395    #[inline]
396    pub fn role_token(&self) -> Option<SyntaxToken> {
397        support::token(&self.syntax, SyntaxKind::ROLE_KW)
398    }
399    #[inline]
400    pub fn schema_token(&self) -> Option<SyntaxToken> {
401        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
402    }
403    #[inline]
404    pub fn user_token(&self) -> Option<SyntaxToken> {
405        support::token(&self.syntax, SyntaxKind::USER_KW)
406    }
407}
408
409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
410pub struct AlterDomain {
411    pub(crate) syntax: SyntaxNode,
412}
413impl AlterDomain {
414    #[inline]
415    pub fn action(&self) -> Option<AlterDomainAction> {
416        support::child(&self.syntax)
417    }
418    #[inline]
419    pub fn path(&self) -> Option<Path> {
420        support::child(&self.syntax)
421    }
422    #[inline]
423    pub fn alter_token(&self) -> Option<SyntaxToken> {
424        support::token(&self.syntax, SyntaxKind::ALTER_KW)
425    }
426    #[inline]
427    pub fn domain_token(&self) -> Option<SyntaxToken> {
428        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
429    }
430}
431
432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
433pub struct AlterEventTrigger {
434    pub(crate) syntax: SyntaxNode,
435}
436impl AlterEventTrigger {
437    #[inline]
438    pub fn name_ref(&self) -> Option<NameRef> {
439        support::child(&self.syntax)
440    }
441    #[inline]
442    pub fn owner_to(&self) -> Option<OwnerTo> {
443        support::child(&self.syntax)
444    }
445    #[inline]
446    pub fn rename_to(&self) -> Option<RenameTo> {
447        support::child(&self.syntax)
448    }
449    #[inline]
450    pub fn alter_token(&self) -> Option<SyntaxToken> {
451        support::token(&self.syntax, SyntaxKind::ALTER_KW)
452    }
453    #[inline]
454    pub fn always_token(&self) -> Option<SyntaxToken> {
455        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
456    }
457    #[inline]
458    pub fn disable_token(&self) -> Option<SyntaxToken> {
459        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
460    }
461    #[inline]
462    pub fn enable_token(&self) -> Option<SyntaxToken> {
463        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
464    }
465    #[inline]
466    pub fn event_token(&self) -> Option<SyntaxToken> {
467        support::token(&self.syntax, SyntaxKind::EVENT_KW)
468    }
469    #[inline]
470    pub fn replica_token(&self) -> Option<SyntaxToken> {
471        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
472    }
473    #[inline]
474    pub fn trigger_token(&self) -> Option<SyntaxToken> {
475        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
476    }
477}
478
479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
480pub struct AlterExtension {
481    pub(crate) syntax: SyntaxNode,
482}
483impl AlterExtension {
484    #[inline]
485    pub fn name_ref(&self) -> Option<NameRef> {
486        support::child(&self.syntax)
487    }
488    #[inline]
489    pub fn alter_token(&self) -> Option<SyntaxToken> {
490        support::token(&self.syntax, SyntaxKind::ALTER_KW)
491    }
492    #[inline]
493    pub fn extension_token(&self) -> Option<SyntaxToken> {
494        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
495    }
496}
497
498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
499pub struct AlterForeignDataWrapper {
500    pub(crate) syntax: SyntaxNode,
501}
502impl AlterForeignDataWrapper {
503    #[inline]
504    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
505        support::child(&self.syntax)
506    }
507    #[inline]
508    pub fn name_ref(&self) -> Option<NameRef> {
509        support::child(&self.syntax)
510    }
511    #[inline]
512    pub fn owner_to(&self) -> Option<OwnerTo> {
513        support::child(&self.syntax)
514    }
515    #[inline]
516    pub fn rename_to(&self) -> Option<RenameTo> {
517        support::child(&self.syntax)
518    }
519    #[inline]
520    pub fn alter_token(&self) -> Option<SyntaxToken> {
521        support::token(&self.syntax, SyntaxKind::ALTER_KW)
522    }
523    #[inline]
524    pub fn data_token(&self) -> Option<SyntaxToken> {
525        support::token(&self.syntax, SyntaxKind::DATA_KW)
526    }
527    #[inline]
528    pub fn foreign_token(&self) -> Option<SyntaxToken> {
529        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
530    }
531    #[inline]
532    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
533        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
534    }
535}
536
537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
538pub struct AlterForeignTable {
539    pub(crate) syntax: SyntaxNode,
540}
541impl AlterForeignTable {
542    #[inline]
543    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
544        support::children(&self.syntax)
545    }
546    #[inline]
547    pub fn if_exists(&self) -> Option<IfExists> {
548        support::child(&self.syntax)
549    }
550    #[inline]
551    pub fn relation_name(&self) -> Option<RelationName> {
552        support::child(&self.syntax)
553    }
554    #[inline]
555    pub fn rename_column(&self) -> Option<RenameColumn> {
556        support::child(&self.syntax)
557    }
558    #[inline]
559    pub fn rename_to(&self) -> Option<RenameTo> {
560        support::child(&self.syntax)
561    }
562    #[inline]
563    pub fn set_schema(&self) -> Option<SetSchema> {
564        support::child(&self.syntax)
565    }
566    #[inline]
567    pub fn alter_token(&self) -> Option<SyntaxToken> {
568        support::token(&self.syntax, SyntaxKind::ALTER_KW)
569    }
570    #[inline]
571    pub fn foreign_token(&self) -> Option<SyntaxToken> {
572        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
573    }
574    #[inline]
575    pub fn table_token(&self) -> Option<SyntaxToken> {
576        support::token(&self.syntax, SyntaxKind::TABLE_KW)
577    }
578}
579
580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
581pub struct AlterFunction {
582    pub(crate) syntax: SyntaxNode,
583}
584impl AlterFunction {
585    #[inline]
586    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
587        support::child(&self.syntax)
588    }
589    #[inline]
590    pub fn func_option_list(&self) -> Option<FuncOptionList> {
591        support::child(&self.syntax)
592    }
593    #[inline]
594    pub fn function_sig(&self) -> Option<FunctionSig> {
595        support::child(&self.syntax)
596    }
597    #[inline]
598    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
599        support::child(&self.syntax)
600    }
601    #[inline]
602    pub fn owner_to(&self) -> Option<OwnerTo> {
603        support::child(&self.syntax)
604    }
605    #[inline]
606    pub fn rename_to(&self) -> Option<RenameTo> {
607        support::child(&self.syntax)
608    }
609    #[inline]
610    pub fn set_schema(&self) -> Option<SetSchema> {
611        support::child(&self.syntax)
612    }
613    #[inline]
614    pub fn alter_token(&self) -> Option<SyntaxToken> {
615        support::token(&self.syntax, SyntaxKind::ALTER_KW)
616    }
617    #[inline]
618    pub fn function_token(&self) -> Option<SyntaxToken> {
619        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
620    }
621    #[inline]
622    pub fn restrict_token(&self) -> Option<SyntaxToken> {
623        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
624    }
625}
626
627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
628pub struct AlterGroup {
629    pub(crate) syntax: SyntaxNode,
630}
631impl AlterGroup {
632    #[inline]
633    pub fn name_refs(&self) -> AstChildren<NameRef> {
634        support::children(&self.syntax)
635    }
636    #[inline]
637    pub fn rename_to(&self) -> Option<RenameTo> {
638        support::child(&self.syntax)
639    }
640    #[inline]
641    pub fn role(&self) -> Option<Role> {
642        support::child(&self.syntax)
643    }
644    #[inline]
645    pub fn add_token(&self) -> Option<SyntaxToken> {
646        support::token(&self.syntax, SyntaxKind::ADD_KW)
647    }
648    #[inline]
649    pub fn alter_token(&self) -> Option<SyntaxToken> {
650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
651    }
652    #[inline]
653    pub fn drop_token(&self) -> Option<SyntaxToken> {
654        support::token(&self.syntax, SyntaxKind::DROP_KW)
655    }
656    #[inline]
657    pub fn group_token(&self) -> Option<SyntaxToken> {
658        support::token(&self.syntax, SyntaxKind::GROUP_KW)
659    }
660    #[inline]
661    pub fn user_token(&self) -> Option<SyntaxToken> {
662        support::token(&self.syntax, SyntaxKind::USER_KW)
663    }
664}
665
666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
667pub struct AlterIndex {
668    pub(crate) syntax: SyntaxNode,
669}
670impl AlterIndex {
671    #[inline]
672    pub fn if_exists(&self) -> Option<IfExists> {
673        support::child(&self.syntax)
674    }
675    #[inline]
676    pub fn path(&self) -> Option<Path> {
677        support::child(&self.syntax)
678    }
679    #[inline]
680    pub fn alter_token(&self) -> Option<SyntaxToken> {
681        support::token(&self.syntax, SyntaxKind::ALTER_KW)
682    }
683    #[inline]
684    pub fn index_token(&self) -> Option<SyntaxToken> {
685        support::token(&self.syntax, SyntaxKind::INDEX_KW)
686    }
687}
688
689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
690pub struct AlterLanguage {
691    pub(crate) syntax: SyntaxNode,
692}
693impl AlterLanguage {
694    #[inline]
695    pub fn name_ref(&self) -> Option<NameRef> {
696        support::child(&self.syntax)
697    }
698    #[inline]
699    pub fn owner_to(&self) -> Option<OwnerTo> {
700        support::child(&self.syntax)
701    }
702    #[inline]
703    pub fn rename_to(&self) -> Option<RenameTo> {
704        support::child(&self.syntax)
705    }
706    #[inline]
707    pub fn alter_token(&self) -> Option<SyntaxToken> {
708        support::token(&self.syntax, SyntaxKind::ALTER_KW)
709    }
710    #[inline]
711    pub fn language_token(&self) -> Option<SyntaxToken> {
712        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
713    }
714}
715
716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
717pub struct AlterLargeObject {
718    pub(crate) syntax: SyntaxNode,
719}
720impl AlterLargeObject {
721    #[inline]
722    pub fn alter_token(&self) -> Option<SyntaxToken> {
723        support::token(&self.syntax, SyntaxKind::ALTER_KW)
724    }
725    #[inline]
726    pub fn large_token(&self) -> Option<SyntaxToken> {
727        support::token(&self.syntax, SyntaxKind::LARGE_KW)
728    }
729    #[inline]
730    pub fn object_token(&self) -> Option<SyntaxToken> {
731        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
732    }
733}
734
735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
736pub struct AlterMaterializedView {
737    pub(crate) syntax: SyntaxNode,
738}
739impl AlterMaterializedView {
740    #[inline]
741    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
742        support::children(&self.syntax)
743    }
744    #[inline]
745    pub fn if_exists(&self) -> Option<IfExists> {
746        support::child(&self.syntax)
747    }
748    #[inline]
749    pub fn name(&self) -> Option<Name> {
750        support::child(&self.syntax)
751    }
752    #[inline]
753    pub fn name_ref(&self) -> Option<NameRef> {
754        support::child(&self.syntax)
755    }
756    #[inline]
757    pub fn path(&self) -> Option<Path> {
758        support::child(&self.syntax)
759    }
760    #[inline]
761    pub fn role_list(&self) -> Option<RoleList> {
762        support::child(&self.syntax)
763    }
764    #[inline]
765    pub fn all_token(&self) -> Option<SyntaxToken> {
766        support::token(&self.syntax, SyntaxKind::ALL_KW)
767    }
768    #[inline]
769    pub fn alter_token(&self) -> Option<SyntaxToken> {
770        support::token(&self.syntax, SyntaxKind::ALTER_KW)
771    }
772    #[inline]
773    pub fn by_token(&self) -> Option<SyntaxToken> {
774        support::token(&self.syntax, SyntaxKind::BY_KW)
775    }
776    #[inline]
777    pub fn in_token(&self) -> Option<SyntaxToken> {
778        support::token(&self.syntax, SyntaxKind::IN_KW)
779    }
780    #[inline]
781    pub fn materialized_token(&self) -> Option<SyntaxToken> {
782        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
783    }
784    #[inline]
785    pub fn nowait_token(&self) -> Option<SyntaxToken> {
786        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
787    }
788    #[inline]
789    pub fn owned_token(&self) -> Option<SyntaxToken> {
790        support::token(&self.syntax, SyntaxKind::OWNED_KW)
791    }
792    #[inline]
793    pub fn set_token(&self) -> Option<SyntaxToken> {
794        support::token(&self.syntax, SyntaxKind::SET_KW)
795    }
796    #[inline]
797    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
798        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
799    }
800    #[inline]
801    pub fn view_token(&self) -> Option<SyntaxToken> {
802        support::token(&self.syntax, SyntaxKind::VIEW_KW)
803    }
804}
805
806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
807pub struct AlterOperator {
808    pub(crate) syntax: SyntaxNode,
809}
810impl AlterOperator {
811    #[inline]
812    pub fn op_sig(&self) -> Option<OpSig> {
813        support::child(&self.syntax)
814    }
815    #[inline]
816    pub fn owner_to(&self) -> Option<OwnerTo> {
817        support::child(&self.syntax)
818    }
819    #[inline]
820    pub fn set_options(&self) -> Option<SetOptions> {
821        support::child(&self.syntax)
822    }
823    #[inline]
824    pub fn set_schema(&self) -> Option<SetSchema> {
825        support::child(&self.syntax)
826    }
827    #[inline]
828    pub fn alter_token(&self) -> Option<SyntaxToken> {
829        support::token(&self.syntax, SyntaxKind::ALTER_KW)
830    }
831    #[inline]
832    pub fn operator_token(&self) -> Option<SyntaxToken> {
833        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
834    }
835}
836
837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
838pub struct AlterOperatorClass {
839    pub(crate) syntax: SyntaxNode,
840}
841impl AlterOperatorClass {
842    #[inline]
843    pub fn name_ref(&self) -> Option<NameRef> {
844        support::child(&self.syntax)
845    }
846    #[inline]
847    pub fn owner_to(&self) -> Option<OwnerTo> {
848        support::child(&self.syntax)
849    }
850    #[inline]
851    pub fn path(&self) -> Option<Path> {
852        support::child(&self.syntax)
853    }
854    #[inline]
855    pub fn rename_to(&self) -> Option<RenameTo> {
856        support::child(&self.syntax)
857    }
858    #[inline]
859    pub fn set_schema(&self) -> Option<SetSchema> {
860        support::child(&self.syntax)
861    }
862    #[inline]
863    pub fn alter_token(&self) -> Option<SyntaxToken> {
864        support::token(&self.syntax, SyntaxKind::ALTER_KW)
865    }
866    #[inline]
867    pub fn class_token(&self) -> Option<SyntaxToken> {
868        support::token(&self.syntax, SyntaxKind::CLASS_KW)
869    }
870    #[inline]
871    pub fn operator_token(&self) -> Option<SyntaxToken> {
872        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
873    }
874    #[inline]
875    pub fn using_token(&self) -> Option<SyntaxToken> {
876        support::token(&self.syntax, SyntaxKind::USING_KW)
877    }
878}
879
880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
881pub struct AlterOperatorFamily {
882    pub(crate) syntax: SyntaxNode,
883}
884impl AlterOperatorFamily {
885    #[inline]
886    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
887        support::child(&self.syntax)
888    }
889    #[inline]
890    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
891        support::child(&self.syntax)
892    }
893    #[inline]
894    pub fn name_ref(&self) -> Option<NameRef> {
895        support::child(&self.syntax)
896    }
897    #[inline]
898    pub fn owner_to(&self) -> Option<OwnerTo> {
899        support::child(&self.syntax)
900    }
901    #[inline]
902    pub fn path(&self) -> Option<Path> {
903        support::child(&self.syntax)
904    }
905    #[inline]
906    pub fn rename_to(&self) -> Option<RenameTo> {
907        support::child(&self.syntax)
908    }
909    #[inline]
910    pub fn set_schema(&self) -> Option<SetSchema> {
911        support::child(&self.syntax)
912    }
913    #[inline]
914    pub fn alter_token(&self) -> Option<SyntaxToken> {
915        support::token(&self.syntax, SyntaxKind::ALTER_KW)
916    }
917    #[inline]
918    pub fn family_token(&self) -> Option<SyntaxToken> {
919        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
920    }
921    #[inline]
922    pub fn operator_token(&self) -> Option<SyntaxToken> {
923        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
924    }
925    #[inline]
926    pub fn using_token(&self) -> Option<SyntaxToken> {
927        support::token(&self.syntax, SyntaxKind::USING_KW)
928    }
929}
930
931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
932pub struct AlterOption {
933    pub(crate) syntax: SyntaxNode,
934}
935impl AlterOption {
936    #[inline]
937    pub fn literal(&self) -> Option<Literal> {
938        support::child(&self.syntax)
939    }
940    #[inline]
941    pub fn name_ref(&self) -> Option<NameRef> {
942        support::child(&self.syntax)
943    }
944    #[inline]
945    pub fn add_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::ADD_KW)
947    }
948    #[inline]
949    pub fn drop_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::DROP_KW)
951    }
952    #[inline]
953    pub fn set_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::SET_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterOptionList {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterOptionList {
963    #[inline]
964    pub fn alter_options(&self) -> AstChildren<AlterOption> {
965        support::children(&self.syntax)
966    }
967}
968
969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
970pub struct AlterPolicy {
971    pub(crate) syntax: SyntaxNode,
972}
973impl AlterPolicy {
974    #[inline]
975    pub fn expr(&self) -> Option<Expr> {
976        support::child(&self.syntax)
977    }
978    #[inline]
979    pub fn name_ref(&self) -> Option<NameRef> {
980        support::child(&self.syntax)
981    }
982    #[inline]
983    pub fn on_table(&self) -> Option<OnTable> {
984        support::child(&self.syntax)
985    }
986    #[inline]
987    pub fn rename_to(&self) -> Option<RenameTo> {
988        support::child(&self.syntax)
989    }
990    #[inline]
991    pub fn role_list(&self) -> Option<RoleList> {
992        support::child(&self.syntax)
993    }
994    #[inline]
995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
996        support::token(&self.syntax, SyntaxKind::L_PAREN)
997    }
998    #[inline]
999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1000        support::token(&self.syntax, SyntaxKind::R_PAREN)
1001    }
1002    #[inline]
1003    pub fn alter_token(&self) -> Option<SyntaxToken> {
1004        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1005    }
1006    #[inline]
1007    pub fn check_token(&self) -> Option<SyntaxToken> {
1008        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1009    }
1010    #[inline]
1011    pub fn policy_token(&self) -> Option<SyntaxToken> {
1012        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1013    }
1014    #[inline]
1015    pub fn to_token(&self) -> Option<SyntaxToken> {
1016        support::token(&self.syntax, SyntaxKind::TO_KW)
1017    }
1018    #[inline]
1019    pub fn using_token(&self) -> Option<SyntaxToken> {
1020        support::token(&self.syntax, SyntaxKind::USING_KW)
1021    }
1022    #[inline]
1023    pub fn with_token(&self) -> Option<SyntaxToken> {
1024        support::token(&self.syntax, SyntaxKind::WITH_KW)
1025    }
1026}
1027
1028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1029pub struct AlterProcedure {
1030    pub(crate) syntax: SyntaxNode,
1031}
1032impl AlterProcedure {
1033    #[inline]
1034    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1035        support::child(&self.syntax)
1036    }
1037    #[inline]
1038    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1039        support::child(&self.syntax)
1040    }
1041    #[inline]
1042    pub fn function_sig(&self) -> Option<FunctionSig> {
1043        support::child(&self.syntax)
1044    }
1045    #[inline]
1046    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1047        support::child(&self.syntax)
1048    }
1049    #[inline]
1050    pub fn owner_to(&self) -> Option<OwnerTo> {
1051        support::child(&self.syntax)
1052    }
1053    #[inline]
1054    pub fn rename_to(&self) -> Option<RenameTo> {
1055        support::child(&self.syntax)
1056    }
1057    #[inline]
1058    pub fn set_schema(&self) -> Option<SetSchema> {
1059        support::child(&self.syntax)
1060    }
1061    #[inline]
1062    pub fn alter_token(&self) -> Option<SyntaxToken> {
1063        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1064    }
1065    #[inline]
1066    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1067        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1068    }
1069    #[inline]
1070    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1071        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1072    }
1073}
1074
1075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1076pub struct AlterPublication {
1077    pub(crate) syntax: SyntaxNode,
1078}
1079impl AlterPublication {
1080    #[inline]
1081    pub fn name_ref(&self) -> Option<NameRef> {
1082        support::child(&self.syntax)
1083    }
1084    #[inline]
1085    pub fn alter_token(&self) -> Option<SyntaxToken> {
1086        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1087    }
1088    #[inline]
1089    pub fn publication_token(&self) -> Option<SyntaxToken> {
1090        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1091    }
1092}
1093
1094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1095pub struct AlterRole {
1096    pub(crate) syntax: SyntaxNode,
1097}
1098impl AlterRole {
1099    #[inline]
1100    pub fn role(&self) -> Option<Role> {
1101        support::child(&self.syntax)
1102    }
1103    #[inline]
1104    pub fn alter_token(&self) -> Option<SyntaxToken> {
1105        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1106    }
1107    #[inline]
1108    pub fn role_token(&self) -> Option<SyntaxToken> {
1109        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1110    }
1111}
1112
1113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1114pub struct AlterRoutine {
1115    pub(crate) syntax: SyntaxNode,
1116}
1117impl AlterRoutine {
1118    #[inline]
1119    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1120        support::child(&self.syntax)
1121    }
1122    #[inline]
1123    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1124        support::child(&self.syntax)
1125    }
1126    #[inline]
1127    pub fn function_sig(&self) -> Option<FunctionSig> {
1128        support::child(&self.syntax)
1129    }
1130    #[inline]
1131    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1132        support::child(&self.syntax)
1133    }
1134    #[inline]
1135    pub fn owner_to(&self) -> Option<OwnerTo> {
1136        support::child(&self.syntax)
1137    }
1138    #[inline]
1139    pub fn rename_to(&self) -> Option<RenameTo> {
1140        support::child(&self.syntax)
1141    }
1142    #[inline]
1143    pub fn set_schema(&self) -> Option<SetSchema> {
1144        support::child(&self.syntax)
1145    }
1146    #[inline]
1147    pub fn alter_token(&self) -> Option<SyntaxToken> {
1148        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1149    }
1150    #[inline]
1151    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1152        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1153    }
1154    #[inline]
1155    pub fn routine_token(&self) -> Option<SyntaxToken> {
1156        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1157    }
1158}
1159
1160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1161pub struct AlterRule {
1162    pub(crate) syntax: SyntaxNode,
1163}
1164impl AlterRule {
1165    #[inline]
1166    pub fn name_ref(&self) -> Option<NameRef> {
1167        support::child(&self.syntax)
1168    }
1169    #[inline]
1170    pub fn on_table(&self) -> Option<OnTable> {
1171        support::child(&self.syntax)
1172    }
1173    #[inline]
1174    pub fn rename_to(&self) -> Option<RenameTo> {
1175        support::child(&self.syntax)
1176    }
1177    #[inline]
1178    pub fn alter_token(&self) -> Option<SyntaxToken> {
1179        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1180    }
1181    #[inline]
1182    pub fn on_token(&self) -> Option<SyntaxToken> {
1183        support::token(&self.syntax, SyntaxKind::ON_KW)
1184    }
1185    #[inline]
1186    pub fn rule_token(&self) -> Option<SyntaxToken> {
1187        support::token(&self.syntax, SyntaxKind::RULE_KW)
1188    }
1189}
1190
1191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1192pub struct AlterSchema {
1193    pub(crate) syntax: SyntaxNode,
1194}
1195impl AlterSchema {
1196    #[inline]
1197    pub fn name_ref(&self) -> Option<NameRef> {
1198        support::child(&self.syntax)
1199    }
1200    #[inline]
1201    pub fn owner_to(&self) -> Option<OwnerTo> {
1202        support::child(&self.syntax)
1203    }
1204    #[inline]
1205    pub fn rename_to(&self) -> Option<RenameTo> {
1206        support::child(&self.syntax)
1207    }
1208    #[inline]
1209    pub fn alter_token(&self) -> Option<SyntaxToken> {
1210        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1211    }
1212    #[inline]
1213    pub fn schema_token(&self) -> Option<SyntaxToken> {
1214        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1215    }
1216}
1217
1218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1219pub struct AlterSequence {
1220    pub(crate) syntax: SyntaxNode,
1221}
1222impl AlterSequence {
1223    #[inline]
1224    pub fn if_exists(&self) -> Option<IfExists> {
1225        support::child(&self.syntax)
1226    }
1227    #[inline]
1228    pub fn path(&self) -> Option<Path> {
1229        support::child(&self.syntax)
1230    }
1231    #[inline]
1232    pub fn alter_token(&self) -> Option<SyntaxToken> {
1233        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1234    }
1235    #[inline]
1236    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1237        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1238    }
1239}
1240
1241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1242pub struct AlterServer {
1243    pub(crate) syntax: SyntaxNode,
1244}
1245impl AlterServer {
1246    #[inline]
1247    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1248        support::child(&self.syntax)
1249    }
1250    #[inline]
1251    pub fn name_ref(&self) -> Option<NameRef> {
1252        support::child(&self.syntax)
1253    }
1254    #[inline]
1255    pub fn alter_token(&self) -> Option<SyntaxToken> {
1256        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1257    }
1258    #[inline]
1259    pub fn server_token(&self) -> Option<SyntaxToken> {
1260        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1261    }
1262}
1263
1264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1265pub struct AlterSetStatistics {
1266    pub(crate) syntax: SyntaxNode,
1267}
1268impl AlterSetStatistics {
1269    #[inline]
1270    pub fn literal(&self) -> Option<Literal> {
1271        support::child(&self.syntax)
1272    }
1273    #[inline]
1274    pub fn name_ref(&self) -> Option<NameRef> {
1275        support::child(&self.syntax)
1276    }
1277    #[inline]
1278    pub fn column_token(&self) -> Option<SyntaxToken> {
1279        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1280    }
1281    #[inline]
1282    pub fn set_token(&self) -> Option<SyntaxToken> {
1283        support::token(&self.syntax, SyntaxKind::SET_KW)
1284    }
1285    #[inline]
1286    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1287        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1288    }
1289}
1290
1291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1292pub struct AlterStatistics {
1293    pub(crate) syntax: SyntaxNode,
1294}
1295impl AlterStatistics {
1296    #[inline]
1297    pub fn path(&self) -> Option<Path> {
1298        support::child(&self.syntax)
1299    }
1300    #[inline]
1301    pub fn alter_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1303    }
1304    #[inline]
1305    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1306        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1307    }
1308}
1309
1310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1311pub struct AlterSubscription {
1312    pub(crate) syntax: SyntaxNode,
1313}
1314impl AlterSubscription {
1315    #[inline]
1316    pub fn name_ref(&self) -> Option<NameRef> {
1317        support::child(&self.syntax)
1318    }
1319    #[inline]
1320    pub fn alter_token(&self) -> Option<SyntaxToken> {
1321        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1322    }
1323    #[inline]
1324    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1326    }
1327}
1328
1329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1330pub struct AlterSystem {
1331    pub(crate) syntax: SyntaxNode,
1332}
1333impl AlterSystem {
1334    #[inline]
1335    pub fn alter_token(&self) -> Option<SyntaxToken> {
1336        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1337    }
1338    #[inline]
1339    pub fn set_token(&self) -> Option<SyntaxToken> {
1340        support::token(&self.syntax, SyntaxKind::SET_KW)
1341    }
1342    #[inline]
1343    pub fn system_token(&self) -> Option<SyntaxToken> {
1344        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1345    }
1346}
1347
1348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1349pub struct AlterTable {
1350    pub(crate) syntax: SyntaxNode,
1351}
1352impl AlterTable {
1353    #[inline]
1354    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1355        support::children(&self.syntax)
1356    }
1357    #[inline]
1358    pub fn relation_name(&self) -> Option<RelationName> {
1359        support::child(&self.syntax)
1360    }
1361    #[inline]
1362    pub fn alter_token(&self) -> Option<SyntaxToken> {
1363        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1364    }
1365    #[inline]
1366    pub fn table_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1368    }
1369}
1370
1371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1372pub struct AlterTablespace {
1373    pub(crate) syntax: SyntaxNode,
1374}
1375impl AlterTablespace {
1376    #[inline]
1377    pub fn owner_to(&self) -> Option<OwnerTo> {
1378        support::child(&self.syntax)
1379    }
1380    #[inline]
1381    pub fn path(&self) -> Option<Path> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn rename_to(&self) -> Option<RenameTo> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn reset_options(&self) -> Option<ResetOptions> {
1390        support::child(&self.syntax)
1391    }
1392    #[inline]
1393    pub fn set_options(&self) -> Option<SetOptions> {
1394        support::child(&self.syntax)
1395    }
1396    #[inline]
1397    pub fn alter_token(&self) -> Option<SyntaxToken> {
1398        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1399    }
1400    #[inline]
1401    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1402        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1403    }
1404}
1405
1406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1407pub struct AlterTextSearchConfiguration {
1408    pub(crate) syntax: SyntaxNode,
1409}
1410impl AlterTextSearchConfiguration {
1411    #[inline]
1412    pub fn owner_to(&self) -> Option<OwnerTo> {
1413        support::child(&self.syntax)
1414    }
1415    #[inline]
1416    pub fn path(&self) -> Option<Path> {
1417        support::child(&self.syntax)
1418    }
1419    #[inline]
1420    pub fn rename_to(&self) -> Option<RenameTo> {
1421        support::child(&self.syntax)
1422    }
1423    #[inline]
1424    pub fn set_schema(&self) -> Option<SetSchema> {
1425        support::child(&self.syntax)
1426    }
1427    #[inline]
1428    pub fn alter_token(&self) -> Option<SyntaxToken> {
1429        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1430    }
1431    #[inline]
1432    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1433        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1434    }
1435    #[inline]
1436    pub fn search_token(&self) -> Option<SyntaxToken> {
1437        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1438    }
1439    #[inline]
1440    pub fn text_token(&self) -> Option<SyntaxToken> {
1441        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1442    }
1443}
1444
1445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1446pub struct AlterTextSearchDictionary {
1447    pub(crate) syntax: SyntaxNode,
1448}
1449impl AlterTextSearchDictionary {
1450    #[inline]
1451    pub fn attribute_list(&self) -> Option<AttributeList> {
1452        support::child(&self.syntax)
1453    }
1454    #[inline]
1455    pub fn owner_to(&self) -> Option<OwnerTo> {
1456        support::child(&self.syntax)
1457    }
1458    #[inline]
1459    pub fn path(&self) -> Option<Path> {
1460        support::child(&self.syntax)
1461    }
1462    #[inline]
1463    pub fn rename_to(&self) -> Option<RenameTo> {
1464        support::child(&self.syntax)
1465    }
1466    #[inline]
1467    pub fn set_schema(&self) -> Option<SetSchema> {
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 dictionary_token(&self) -> Option<SyntaxToken> {
1476        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1477    }
1478    #[inline]
1479    pub fn search_token(&self) -> Option<SyntaxToken> {
1480        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1481    }
1482    #[inline]
1483    pub fn text_token(&self) -> Option<SyntaxToken> {
1484        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1485    }
1486}
1487
1488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1489pub struct AlterTextSearchParser {
1490    pub(crate) syntax: SyntaxNode,
1491}
1492impl AlterTextSearchParser {
1493    #[inline]
1494    pub fn path(&self) -> Option<Path> {
1495        support::child(&self.syntax)
1496    }
1497    #[inline]
1498    pub fn rename_to(&self) -> Option<RenameTo> {
1499        support::child(&self.syntax)
1500    }
1501    #[inline]
1502    pub fn set_schema(&self) -> Option<SetSchema> {
1503        support::child(&self.syntax)
1504    }
1505    #[inline]
1506    pub fn alter_token(&self) -> Option<SyntaxToken> {
1507        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1508    }
1509    #[inline]
1510    pub fn parser_token(&self) -> Option<SyntaxToken> {
1511        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1512    }
1513    #[inline]
1514    pub fn search_token(&self) -> Option<SyntaxToken> {
1515        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1516    }
1517    #[inline]
1518    pub fn text_token(&self) -> Option<SyntaxToken> {
1519        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1520    }
1521}
1522
1523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1524pub struct AlterTextSearchTemplate {
1525    pub(crate) syntax: SyntaxNode,
1526}
1527impl AlterTextSearchTemplate {
1528    #[inline]
1529    pub fn path(&self) -> Option<Path> {
1530        support::child(&self.syntax)
1531    }
1532    #[inline]
1533    pub fn rename_to(&self) -> Option<RenameTo> {
1534        support::child(&self.syntax)
1535    }
1536    #[inline]
1537    pub fn set_schema(&self) -> Option<SetSchema> {
1538        support::child(&self.syntax)
1539    }
1540    #[inline]
1541    pub fn alter_token(&self) -> Option<SyntaxToken> {
1542        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1543    }
1544    #[inline]
1545    pub fn search_token(&self) -> Option<SyntaxToken> {
1546        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1547    }
1548    #[inline]
1549    pub fn template_token(&self) -> Option<SyntaxToken> {
1550        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1551    }
1552    #[inline]
1553    pub fn text_token(&self) -> Option<SyntaxToken> {
1554        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1555    }
1556}
1557
1558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1559pub struct AlterTrigger {
1560    pub(crate) syntax: SyntaxNode,
1561}
1562impl AlterTrigger {
1563    #[inline]
1564    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1565        support::child(&self.syntax)
1566    }
1567    #[inline]
1568    pub fn name_ref(&self) -> Option<NameRef> {
1569        support::child(&self.syntax)
1570    }
1571    #[inline]
1572    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1573        support::child(&self.syntax)
1574    }
1575    #[inline]
1576    pub fn on_table(&self) -> Option<OnTable> {
1577        support::child(&self.syntax)
1578    }
1579    #[inline]
1580    pub fn rename_to(&self) -> Option<RenameTo> {
1581        support::child(&self.syntax)
1582    }
1583    #[inline]
1584    pub fn alter_token(&self) -> Option<SyntaxToken> {
1585        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1586    }
1587    #[inline]
1588    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1589        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1590    }
1591}
1592
1593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1594pub struct AlterType {
1595    pub(crate) syntax: SyntaxNode,
1596}
1597impl AlterType {
1598    #[inline]
1599    pub fn path(&self) -> Option<Path> {
1600        support::child(&self.syntax)
1601    }
1602    #[inline]
1603    pub fn alter_token(&self) -> Option<SyntaxToken> {
1604        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1605    }
1606    #[inline]
1607    pub fn type_token(&self) -> Option<SyntaxToken> {
1608        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1609    }
1610}
1611
1612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1613pub struct AlterUser {
1614    pub(crate) syntax: SyntaxNode,
1615}
1616impl AlterUser {
1617    #[inline]
1618    pub fn role(&self) -> Option<Role> {
1619        support::child(&self.syntax)
1620    }
1621    #[inline]
1622    pub fn alter_token(&self) -> Option<SyntaxToken> {
1623        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1624    }
1625    #[inline]
1626    pub fn user_token(&self) -> Option<SyntaxToken> {
1627        support::token(&self.syntax, SyntaxKind::USER_KW)
1628    }
1629}
1630
1631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1632pub struct AlterUserMapping {
1633    pub(crate) syntax: SyntaxNode,
1634}
1635impl AlterUserMapping {
1636    #[inline]
1637    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1638        support::child(&self.syntax)
1639    }
1640    #[inline]
1641    pub fn name_ref(&self) -> Option<NameRef> {
1642        support::child(&self.syntax)
1643    }
1644    #[inline]
1645    pub fn role(&self) -> Option<Role> {
1646        support::child(&self.syntax)
1647    }
1648    #[inline]
1649    pub fn alter_token(&self) -> Option<SyntaxToken> {
1650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1651    }
1652    #[inline]
1653    pub fn for_token(&self) -> Option<SyntaxToken> {
1654        support::token(&self.syntax, SyntaxKind::FOR_KW)
1655    }
1656    #[inline]
1657    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1658        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1659    }
1660    #[inline]
1661    pub fn server_token(&self) -> Option<SyntaxToken> {
1662        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1663    }
1664    #[inline]
1665    pub fn user_token(&self) -> Option<SyntaxToken> {
1666        support::token(&self.syntax, SyntaxKind::USER_KW)
1667    }
1668}
1669
1670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1671pub struct AlterView {
1672    pub(crate) syntax: SyntaxNode,
1673}
1674impl AlterView {
1675    #[inline]
1676    pub fn path(&self) -> Option<Path> {
1677        support::child(&self.syntax)
1678    }
1679    #[inline]
1680    pub fn alter_token(&self) -> Option<SyntaxToken> {
1681        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1682    }
1683    #[inline]
1684    pub fn view_token(&self) -> Option<SyntaxToken> {
1685        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1686    }
1687}
1688
1689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1690pub struct Analyze {
1691    pub(crate) syntax: SyntaxNode,
1692}
1693impl Analyze {
1694    #[inline]
1695    pub fn option_item_list(&self) -> Option<OptionItemList> {
1696        support::child(&self.syntax)
1697    }
1698    #[inline]
1699    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1700        support::child(&self.syntax)
1701    }
1702    #[inline]
1703    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1704        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1705    }
1706    #[inline]
1707    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1708        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1709    }
1710    #[inline]
1711    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1712        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1713    }
1714}
1715
1716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1717pub struct AnyFn {
1718    pub(crate) syntax: SyntaxNode,
1719}
1720impl AnyFn {
1721    #[inline]
1722    pub fn expr(&self) -> Option<Expr> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn select_variant(&self) -> Option<SelectVariant> {
1727        support::child(&self.syntax)
1728    }
1729    #[inline]
1730    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::L_PAREN)
1732    }
1733    #[inline]
1734    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::R_PAREN)
1736    }
1737    #[inline]
1738    pub fn any_token(&self) -> Option<SyntaxToken> {
1739        support::token(&self.syntax, SyntaxKind::ANY_KW)
1740    }
1741}
1742
1743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1744pub struct Arg {
1745    pub(crate) syntax: SyntaxNode,
1746}
1747impl Arg {
1748    #[inline]
1749    pub fn expr(&self) -> Option<Expr> {
1750        support::child(&self.syntax)
1751    }
1752}
1753
1754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1755pub struct ArgList {
1756    pub(crate) syntax: SyntaxNode,
1757}
1758impl ArgList {
1759    #[inline]
1760    pub fn args(&self) -> AstChildren<Expr> {
1761        support::children(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn expr(&self) -> Option<Expr> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::L_PAREN)
1770    }
1771    #[inline]
1772    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::R_PAREN)
1774    }
1775    #[inline]
1776    pub fn star_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::STAR)
1778    }
1779    #[inline]
1780    pub fn all_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::ALL_KW)
1782    }
1783    #[inline]
1784    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1785        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1786    }
1787    #[inline]
1788    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1789        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1790    }
1791}
1792
1793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1794pub struct ArrayExpr {
1795    pub(crate) syntax: SyntaxNode,
1796}
1797impl ArrayExpr {
1798    #[inline]
1799    pub fn exprs(&self) -> AstChildren<Expr> {
1800        support::children(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn select(&self) -> Option<Select> {
1804        support::child(&self.syntax)
1805    }
1806    #[inline]
1807    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::L_PAREN)
1809    }
1810    #[inline]
1811    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::R_PAREN)
1813    }
1814    #[inline]
1815    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::L_BRACK)
1817    }
1818    #[inline]
1819    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1820        support::token(&self.syntax, SyntaxKind::R_BRACK)
1821    }
1822    #[inline]
1823    pub fn array_token(&self) -> Option<SyntaxToken> {
1824        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1825    }
1826}
1827
1828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1829pub struct ArrayType {
1830    pub(crate) syntax: SyntaxNode,
1831}
1832impl ArrayType {
1833    #[inline]
1834    pub fn expr(&self) -> Option<Expr> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn name_ref(&self) -> Option<NameRef> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn ty(&self) -> Option<Type> {
1843        support::child(&self.syntax)
1844    }
1845    #[inline]
1846    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::L_BRACK)
1848    }
1849    #[inline]
1850    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::R_BRACK)
1852    }
1853    #[inline]
1854    pub fn array_token(&self) -> Option<SyntaxToken> {
1855        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1856    }
1857}
1858
1859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1860pub struct AsFuncOption {
1861    pub(crate) syntax: SyntaxNode,
1862}
1863impl AsFuncOption {
1864    #[inline]
1865    pub fn definition(&self) -> Option<Literal> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn link_symbol(&self) -> Option<Literal> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn obj_file(&self) -> Option<Literal> {
1874        support::child(&self.syntax)
1875    }
1876    #[inline]
1877    pub fn comma_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::COMMA)
1879    }
1880    #[inline]
1881    pub fn as_token(&self) -> Option<SyntaxToken> {
1882        support::token(&self.syntax, SyntaxKind::AS_KW)
1883    }
1884}
1885
1886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1887pub struct AsName {
1888    pub(crate) syntax: SyntaxNode,
1889}
1890impl AsName {
1891    #[inline]
1892    pub fn name(&self) -> Option<Name> {
1893        support::child(&self.syntax)
1894    }
1895    #[inline]
1896    pub fn as_token(&self) -> Option<SyntaxToken> {
1897        support::token(&self.syntax, SyntaxKind::AS_KW)
1898    }
1899}
1900
1901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1902pub struct AtTimeZone {
1903    pub(crate) syntax: SyntaxNode,
1904}
1905impl AtTimeZone {
1906    #[inline]
1907    pub fn at_token(&self) -> Option<SyntaxToken> {
1908        support::token(&self.syntax, SyntaxKind::AT_KW)
1909    }
1910    #[inline]
1911    pub fn time_token(&self) -> Option<SyntaxToken> {
1912        support::token(&self.syntax, SyntaxKind::TIME_KW)
1913    }
1914    #[inline]
1915    pub fn zone_token(&self) -> Option<SyntaxToken> {
1916        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1917    }
1918}
1919
1920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1921pub struct AttachPartition {
1922    pub(crate) syntax: SyntaxNode,
1923}
1924impl AttachPartition {
1925    #[inline]
1926    pub fn partition_type(&self) -> Option<PartitionType> {
1927        support::child(&self.syntax)
1928    }
1929    #[inline]
1930    pub fn path(&self) -> Option<Path> {
1931        support::child(&self.syntax)
1932    }
1933    #[inline]
1934    pub fn attach_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1936    }
1937    #[inline]
1938    pub fn partition_token(&self) -> Option<SyntaxToken> {
1939        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1940    }
1941}
1942
1943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1944pub struct AttributeList {
1945    pub(crate) syntax: SyntaxNode,
1946}
1947impl AttributeList {
1948    #[inline]
1949    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1950        support::children(&self.syntax)
1951    }
1952    #[inline]
1953    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1954        support::token(&self.syntax, SyntaxKind::L_PAREN)
1955    }
1956    #[inline]
1957    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1958        support::token(&self.syntax, SyntaxKind::R_PAREN)
1959    }
1960}
1961
1962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1963pub struct AttributeOption {
1964    pub(crate) syntax: SyntaxNode,
1965}
1966impl AttributeOption {
1967    #[inline]
1968    pub fn attribute_value(&self) -> Option<AttributeValue> {
1969        support::child(&self.syntax)
1970    }
1971    #[inline]
1972    pub fn name(&self) -> Option<Name> {
1973        support::child(&self.syntax)
1974    }
1975    #[inline]
1976    pub fn dot_token(&self) -> Option<SyntaxToken> {
1977        support::token(&self.syntax, SyntaxKind::DOT)
1978    }
1979    #[inline]
1980    pub fn eq_token(&self) -> Option<SyntaxToken> {
1981        support::token(&self.syntax, SyntaxKind::EQ)
1982    }
1983}
1984
1985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1986pub struct AttributeValue {
1987    pub(crate) syntax: SyntaxNode,
1988}
1989impl AttributeValue {
1990    #[inline]
1991    pub fn literal(&self) -> Option<Literal> {
1992        support::child(&self.syntax)
1993    }
1994    #[inline]
1995    pub fn op(&self) -> Option<Op> {
1996        support::child(&self.syntax)
1997    }
1998    #[inline]
1999    pub fn ty(&self) -> Option<Type> {
2000        support::child(&self.syntax)
2001    }
2002    #[inline]
2003    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2004        support::token(&self.syntax, SyntaxKind::L_PAREN)
2005    }
2006    #[inline]
2007    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2008        support::token(&self.syntax, SyntaxKind::R_PAREN)
2009    }
2010    #[inline]
2011    pub fn none_token(&self) -> Option<SyntaxToken> {
2012        support::token(&self.syntax, SyntaxKind::NONE_KW)
2013    }
2014    #[inline]
2015    pub fn operator_token(&self) -> Option<SyntaxToken> {
2016        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2017    }
2018}
2019
2020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2021pub struct Begin {
2022    pub(crate) syntax: SyntaxNode,
2023}
2024impl Begin {
2025    #[inline]
2026    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2027        support::child(&self.syntax)
2028    }
2029    #[inline]
2030    pub fn begin_token(&self) -> Option<SyntaxToken> {
2031        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2032    }
2033    #[inline]
2034    pub fn start_token(&self) -> Option<SyntaxToken> {
2035        support::token(&self.syntax, SyntaxKind::START_KW)
2036    }
2037    #[inline]
2038    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2039        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2040    }
2041    #[inline]
2042    pub fn work_token(&self) -> Option<SyntaxToken> {
2043        support::token(&self.syntax, SyntaxKind::WORK_KW)
2044    }
2045}
2046
2047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2048pub struct BeginFuncOption {
2049    pub(crate) syntax: SyntaxNode,
2050}
2051impl BeginFuncOption {
2052    #[inline]
2053    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2054        support::child(&self.syntax)
2055    }
2056    #[inline]
2057    pub fn stmt(&self) -> Option<Stmt> {
2058        support::child(&self.syntax)
2059    }
2060    #[inline]
2061    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2062        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2063    }
2064}
2065
2066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2067pub struct BeginFuncOptionList {
2068    pub(crate) syntax: SyntaxNode,
2069}
2070impl BeginFuncOptionList {
2071    #[inline]
2072    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2073        support::children(&self.syntax)
2074    }
2075    #[inline]
2076    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2077        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2078    }
2079    #[inline]
2080    pub fn begin_token(&self) -> Option<SyntaxToken> {
2081        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2082    }
2083    #[inline]
2084    pub fn end_token(&self) -> Option<SyntaxToken> {
2085        support::token(&self.syntax, SyntaxKind::END_KW)
2086    }
2087}
2088
2089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2090pub struct BetweenExpr {
2091    pub(crate) syntax: SyntaxNode,
2092}
2093impl BetweenExpr {
2094    #[inline]
2095    pub fn and_token(&self) -> Option<SyntaxToken> {
2096        support::token(&self.syntax, SyntaxKind::AND_KW)
2097    }
2098    #[inline]
2099    pub fn between_token(&self) -> Option<SyntaxToken> {
2100        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2101    }
2102}
2103
2104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2105pub struct BinExpr {
2106    pub(crate) syntax: SyntaxNode,
2107}
2108impl BinExpr {
2109    #[inline]
2110    pub fn op(&self) -> Option<Op> {
2111        support::child(&self.syntax)
2112    }
2113}
2114
2115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2116pub struct BitType {
2117    pub(crate) syntax: SyntaxNode,
2118}
2119impl BitType {
2120    #[inline]
2121    pub fn arg_list(&self) -> Option<ArgList> {
2122        support::child(&self.syntax)
2123    }
2124    #[inline]
2125    pub fn bit_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::BIT_KW)
2127    }
2128    #[inline]
2129    pub fn varying_token(&self) -> Option<SyntaxToken> {
2130        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2131    }
2132}
2133
2134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2135pub struct Call {
2136    pub(crate) syntax: SyntaxNode,
2137}
2138impl Call {
2139    #[inline]
2140    pub fn arg_list(&self) -> Option<ArgList> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn path(&self) -> Option<Path> {
2145        support::child(&self.syntax)
2146    }
2147    #[inline]
2148    pub fn call_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::CALL_KW)
2150    }
2151}
2152
2153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2154pub struct CallExpr {
2155    pub(crate) syntax: SyntaxNode,
2156}
2157impl CallExpr {
2158    #[inline]
2159    pub fn all_fn(&self) -> Option<AllFn> {
2160        support::child(&self.syntax)
2161    }
2162    #[inline]
2163    pub fn any_fn(&self) -> Option<AnyFn> {
2164        support::child(&self.syntax)
2165    }
2166    #[inline]
2167    pub fn arg_list(&self) -> Option<ArgList> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn exists_fn(&self) -> Option<ExistsFn> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn expr(&self) -> Option<Expr> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn extract_fn(&self) -> Option<ExtractFn> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn filter_clause(&self) -> Option<FilterClause> {
2184        support::child(&self.syntax)
2185    }
2186    #[inline]
2187    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2188        support::child(&self.syntax)
2189    }
2190    #[inline]
2191    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2192        support::child(&self.syntax)
2193    }
2194    #[inline]
2195    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2196        support::child(&self.syntax)
2197    }
2198    #[inline]
2199    pub fn json_fn(&self) -> Option<JsonFn> {
2200        support::child(&self.syntax)
2201    }
2202    #[inline]
2203    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2204        support::child(&self.syntax)
2205    }
2206    #[inline]
2207    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2208        support::child(&self.syntax)
2209    }
2210    #[inline]
2211    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2212        support::child(&self.syntax)
2213    }
2214    #[inline]
2215    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2216        support::child(&self.syntax)
2217    }
2218    #[inline]
2219    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2220        support::child(&self.syntax)
2221    }
2222    #[inline]
2223    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2224        support::child(&self.syntax)
2225    }
2226    #[inline]
2227    pub fn over_clause(&self) -> Option<OverClause> {
2228        support::child(&self.syntax)
2229    }
2230    #[inline]
2231    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2232        support::child(&self.syntax)
2233    }
2234    #[inline]
2235    pub fn position_fn(&self) -> Option<PositionFn> {
2236        support::child(&self.syntax)
2237    }
2238    #[inline]
2239    pub fn some_fn(&self) -> Option<SomeFn> {
2240        support::child(&self.syntax)
2241    }
2242    #[inline]
2243    pub fn substring_fn(&self) -> Option<SubstringFn> {
2244        support::child(&self.syntax)
2245    }
2246    #[inline]
2247    pub fn trim_fn(&self) -> Option<TrimFn> {
2248        support::child(&self.syntax)
2249    }
2250    #[inline]
2251    pub fn within_clause(&self) -> Option<WithinClause> {
2252        support::child(&self.syntax)
2253    }
2254    #[inline]
2255    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2256        support::child(&self.syntax)
2257    }
2258    #[inline]
2259    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2260        support::child(&self.syntax)
2261    }
2262    #[inline]
2263    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2264        support::child(&self.syntax)
2265    }
2266    #[inline]
2267    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2268        support::child(&self.syntax)
2269    }
2270    #[inline]
2271    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2272        support::child(&self.syntax)
2273    }
2274    #[inline]
2275    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2276        support::child(&self.syntax)
2277    }
2278    #[inline]
2279    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2280        support::child(&self.syntax)
2281    }
2282}
2283
2284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2285pub struct Cascade {
2286    pub(crate) syntax: SyntaxNode,
2287}
2288impl Cascade {
2289    #[inline]
2290    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct CaseExpr {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl CaseExpr {
2300    #[inline]
2301    pub fn else_clause(&self) -> Option<ElseClause> {
2302        support::child(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn expr(&self) -> Option<Expr> {
2306        support::child(&self.syntax)
2307    }
2308    #[inline]
2309    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2310        support::child(&self.syntax)
2311    }
2312    #[inline]
2313    pub fn case_token(&self) -> Option<SyntaxToken> {
2314        support::token(&self.syntax, SyntaxKind::CASE_KW)
2315    }
2316}
2317
2318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2319pub struct CastExpr {
2320    pub(crate) syntax: SyntaxNode,
2321}
2322impl CastExpr {
2323    #[inline]
2324    pub fn colon_colon(&self) -> Option<ColonColon> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn expr(&self) -> Option<Expr> {
2329        support::child(&self.syntax)
2330    }
2331    #[inline]
2332    pub fn literal(&self) -> Option<Literal> {
2333        support::child(&self.syntax)
2334    }
2335    #[inline]
2336    pub fn ty(&self) -> Option<Type> {
2337        support::child(&self.syntax)
2338    }
2339    #[inline]
2340    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2341        support::token(&self.syntax, SyntaxKind::L_PAREN)
2342    }
2343    #[inline]
2344    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2345        support::token(&self.syntax, SyntaxKind::R_PAREN)
2346    }
2347    #[inline]
2348    pub fn as_token(&self) -> Option<SyntaxToken> {
2349        support::token(&self.syntax, SyntaxKind::AS_KW)
2350    }
2351    #[inline]
2352    pub fn cast_token(&self) -> Option<SyntaxToken> {
2353        support::token(&self.syntax, SyntaxKind::CAST_KW)
2354    }
2355    #[inline]
2356    pub fn treat_token(&self) -> Option<SyntaxToken> {
2357        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2358    }
2359}
2360
2361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2362pub struct CastSig {
2363    pub(crate) syntax: SyntaxNode,
2364}
2365impl CastSig {
2366    #[inline]
2367    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::L_PAREN)
2369    }
2370    #[inline]
2371    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::R_PAREN)
2373    }
2374    #[inline]
2375    pub fn as_token(&self) -> Option<SyntaxToken> {
2376        support::token(&self.syntax, SyntaxKind::AS_KW)
2377    }
2378}
2379
2380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2381pub struct CharType {
2382    pub(crate) syntax: SyntaxNode,
2383}
2384impl CharType {
2385    #[inline]
2386    pub fn arg_list(&self) -> Option<ArgList> {
2387        support::child(&self.syntax)
2388    }
2389    #[inline]
2390    pub fn char_token(&self) -> Option<SyntaxToken> {
2391        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2392    }
2393    #[inline]
2394    pub fn character_token(&self) -> Option<SyntaxToken> {
2395        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2396    }
2397    #[inline]
2398    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2399        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2400    }
2401    #[inline]
2402    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2403        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2404    }
2405    #[inline]
2406    pub fn varying_token(&self) -> Option<SyntaxToken> {
2407        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2408    }
2409}
2410
2411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2412pub struct CheckConstraint {
2413    pub(crate) syntax: SyntaxNode,
2414}
2415impl CheckConstraint {
2416    #[inline]
2417    pub fn expr(&self) -> Option<Expr> {
2418        support::child(&self.syntax)
2419    }
2420    #[inline]
2421    pub fn name(&self) -> Option<Name> {
2422        support::child(&self.syntax)
2423    }
2424    #[inline]
2425    pub fn no_inherit(&self) -> Option<NoInherit> {
2426        support::child(&self.syntax)
2427    }
2428    #[inline]
2429    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2430        support::token(&self.syntax, SyntaxKind::L_PAREN)
2431    }
2432    #[inline]
2433    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2434        support::token(&self.syntax, SyntaxKind::R_PAREN)
2435    }
2436    #[inline]
2437    pub fn check_token(&self) -> Option<SyntaxToken> {
2438        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2439    }
2440    #[inline]
2441    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2442        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2443    }
2444}
2445
2446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2447pub struct Checkpoint {
2448    pub(crate) syntax: SyntaxNode,
2449}
2450impl Checkpoint {
2451    #[inline]
2452    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2453        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2454    }
2455}
2456
2457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2458pub struct Close {
2459    pub(crate) syntax: SyntaxNode,
2460}
2461impl Close {
2462    #[inline]
2463    pub fn name_ref(&self) -> Option<NameRef> {
2464        support::child(&self.syntax)
2465    }
2466    #[inline]
2467    pub fn close_token(&self) -> Option<SyntaxToken> {
2468        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2469    }
2470}
2471
2472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2473pub struct Cluster {
2474    pub(crate) syntax: SyntaxNode,
2475}
2476impl Cluster {
2477    #[inline]
2478    pub fn option_item_list(&self) -> Option<OptionItemList> {
2479        support::child(&self.syntax)
2480    }
2481    #[inline]
2482    pub fn path(&self) -> Option<Path> {
2483        support::child(&self.syntax)
2484    }
2485    #[inline]
2486    pub fn using_method(&self) -> Option<UsingMethod> {
2487        support::child(&self.syntax)
2488    }
2489    #[inline]
2490    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2491        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2492    }
2493    #[inline]
2494    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2495        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2496    }
2497}
2498
2499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2500pub struct ClusterOn {
2501    pub(crate) syntax: SyntaxNode,
2502}
2503impl ClusterOn {
2504    #[inline]
2505    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2506        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2507    }
2508    #[inline]
2509    pub fn on_token(&self) -> Option<SyntaxToken> {
2510        support::token(&self.syntax, SyntaxKind::ON_KW)
2511    }
2512}
2513
2514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2515pub struct Collate {
2516    pub(crate) syntax: SyntaxNode,
2517}
2518impl Collate {
2519    #[inline]
2520    pub fn path(&self) -> Option<Path> {
2521        support::child(&self.syntax)
2522    }
2523    #[inline]
2524    pub fn collate_token(&self) -> Option<SyntaxToken> {
2525        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2526    }
2527}
2528
2529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2530pub struct ColonColon {
2531    pub(crate) syntax: SyntaxNode,
2532}
2533impl ColonColon {
2534    #[inline]
2535    pub fn colon_token(&self) -> Option<SyntaxToken> {
2536        support::token(&self.syntax, SyntaxKind::COLON)
2537    }
2538}
2539
2540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2541pub struct ColonEq {
2542    pub(crate) syntax: SyntaxNode,
2543}
2544impl ColonEq {
2545    #[inline]
2546    pub fn colon_token(&self) -> Option<SyntaxToken> {
2547        support::token(&self.syntax, SyntaxKind::COLON)
2548    }
2549    #[inline]
2550    pub fn eq_token(&self) -> Option<SyntaxToken> {
2551        support::token(&self.syntax, SyntaxKind::EQ)
2552    }
2553}
2554
2555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2556pub struct Column {
2557    pub(crate) syntax: SyntaxNode,
2558}
2559impl Column {
2560    #[inline]
2561    pub fn collate(&self) -> Option<Collate> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn compression_method(&self) -> Option<CompressionMethod> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn constraint(&self) -> Option<ColumnConstraint> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn enforced(&self) -> Option<Enforced> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn index_expr(&self) -> Option<IndexExpr> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn initially_deferred_constraint_option(
2586        &self,
2587    ) -> Option<InitiallyDeferredConstraintOption> {
2588        support::child(&self.syntax)
2589    }
2590    #[inline]
2591    pub fn initially_immediate_constraint_option(
2592        &self,
2593    ) -> Option<InitiallyImmediateConstraintOption> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn name(&self) -> Option<Name> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn name_ref(&self) -> Option<NameRef> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn not_enforced(&self) -> Option<NotEnforced> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn storage(&self) -> Option<Storage> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn ty(&self) -> Option<Type> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn with_options(&self) -> Option<WithOptions> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn period_token(&self) -> Option<SyntaxToken> {
2626        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2627    }
2628}
2629
2630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2631pub struct ColumnList {
2632    pub(crate) syntax: SyntaxNode,
2633}
2634impl ColumnList {
2635    #[inline]
2636    pub fn columns(&self) -> AstChildren<Column> {
2637        support::children(&self.syntax)
2638    }
2639    #[inline]
2640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2641        support::token(&self.syntax, SyntaxKind::L_PAREN)
2642    }
2643    #[inline]
2644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2645        support::token(&self.syntax, SyntaxKind::R_PAREN)
2646    }
2647}
2648
2649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2650pub struct CommentOn {
2651    pub(crate) syntax: SyntaxNode,
2652}
2653impl CommentOn {
2654    #[inline]
2655    pub fn literal(&self) -> Option<Literal> {
2656        support::child(&self.syntax)
2657    }
2658    #[inline]
2659    pub fn name_ref(&self) -> Option<NameRef> {
2660        support::child(&self.syntax)
2661    }
2662    #[inline]
2663    pub fn path(&self) -> Option<Path> {
2664        support::child(&self.syntax)
2665    }
2666    #[inline]
2667    pub fn comment_token(&self) -> Option<SyntaxToken> {
2668        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2669    }
2670    #[inline]
2671    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2672        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2673    }
2674    #[inline]
2675    pub fn domain_token(&self) -> Option<SyntaxToken> {
2676        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2677    }
2678    #[inline]
2679    pub fn is_token(&self) -> Option<SyntaxToken> {
2680        support::token(&self.syntax, SyntaxKind::IS_KW)
2681    }
2682    #[inline]
2683    pub fn null_token(&self) -> Option<SyntaxToken> {
2684        support::token(&self.syntax, SyntaxKind::NULL_KW)
2685    }
2686    #[inline]
2687    pub fn on_token(&self) -> Option<SyntaxToken> {
2688        support::token(&self.syntax, SyntaxKind::ON_KW)
2689    }
2690    #[inline]
2691    pub fn table_token(&self) -> Option<SyntaxToken> {
2692        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2693    }
2694}
2695
2696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2697pub struct Commit {
2698    pub(crate) syntax: SyntaxNode,
2699}
2700impl Commit {
2701    #[inline]
2702    pub fn literal(&self) -> Option<Literal> {
2703        support::child(&self.syntax)
2704    }
2705    #[inline]
2706    pub fn and_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::AND_KW)
2708    }
2709    #[inline]
2710    pub fn chain_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2712    }
2713    #[inline]
2714    pub fn commit_token(&self) -> Option<SyntaxToken> {
2715        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2716    }
2717    #[inline]
2718    pub fn no_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::NO_KW)
2720    }
2721    #[inline]
2722    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2724    }
2725    #[inline]
2726    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2728    }
2729    #[inline]
2730    pub fn work_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::WORK_KW)
2732    }
2733}
2734
2735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2736pub struct CompoundSelect {
2737    pub(crate) syntax: SyntaxNode,
2738}
2739impl CompoundSelect {
2740    #[inline]
2741    pub fn except_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2743    }
2744    #[inline]
2745    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2747    }
2748    #[inline]
2749    pub fn union_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::UNION_KW)
2751    }
2752}
2753
2754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2755pub struct CompressionMethod {
2756    pub(crate) syntax: SyntaxNode,
2757}
2758impl CompressionMethod {
2759    #[inline]
2760    pub fn compression_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2762    }
2763    #[inline]
2764    pub fn default_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2766    }
2767    #[inline]
2768    pub fn ident_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::IDENT)
2770    }
2771}
2772
2773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2774pub struct ConflictDoNothing {
2775    pub(crate) syntax: SyntaxNode,
2776}
2777impl ConflictDoNothing {
2778    #[inline]
2779    pub fn do_token(&self) -> Option<SyntaxToken> {
2780        support::token(&self.syntax, SyntaxKind::DO_KW)
2781    }
2782    #[inline]
2783    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2784        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2785    }
2786}
2787
2788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2789pub struct ConflictDoUpdateSet {
2790    pub(crate) syntax: SyntaxNode,
2791}
2792impl ConflictDoUpdateSet {
2793    #[inline]
2794    pub fn set_clause(&self) -> Option<SetClause> {
2795        support::child(&self.syntax)
2796    }
2797    #[inline]
2798    pub fn where_clause(&self) -> Option<WhereClause> {
2799        support::child(&self.syntax)
2800    }
2801    #[inline]
2802    pub fn do_token(&self) -> Option<SyntaxToken> {
2803        support::token(&self.syntax, SyntaxKind::DO_KW)
2804    }
2805    #[inline]
2806    pub fn update_token(&self) -> Option<SyntaxToken> {
2807        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2808    }
2809}
2810
2811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2812pub struct ConflictIndexItem {
2813    pub(crate) syntax: SyntaxNode,
2814}
2815impl ConflictIndexItem {
2816    #[inline]
2817    pub fn collate(&self) -> Option<Collate> {
2818        support::child(&self.syntax)
2819    }
2820    #[inline]
2821    pub fn expr(&self) -> Option<Expr> {
2822        support::child(&self.syntax)
2823    }
2824    #[inline]
2825    pub fn ident_token(&self) -> Option<SyntaxToken> {
2826        support::token(&self.syntax, SyntaxKind::IDENT)
2827    }
2828}
2829
2830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2831pub struct ConflictIndexItemList {
2832    pub(crate) syntax: SyntaxNode,
2833}
2834impl ConflictIndexItemList {
2835    #[inline]
2836    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2837        support::children(&self.syntax)
2838    }
2839    #[inline]
2840    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2841        support::token(&self.syntax, SyntaxKind::L_PAREN)
2842    }
2843    #[inline]
2844    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2845        support::token(&self.syntax, SyntaxKind::R_PAREN)
2846    }
2847}
2848
2849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2850pub struct ConflictOnConstraint {
2851    pub(crate) syntax: SyntaxNode,
2852}
2853impl ConflictOnConstraint {
2854    #[inline]
2855    pub fn name_ref(&self) -> Option<NameRef> {
2856        support::child(&self.syntax)
2857    }
2858    #[inline]
2859    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2860        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2861    }
2862    #[inline]
2863    pub fn on_token(&self) -> Option<SyntaxToken> {
2864        support::token(&self.syntax, SyntaxKind::ON_KW)
2865    }
2866}
2867
2868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2869pub struct ConflictOnIndex {
2870    pub(crate) syntax: SyntaxNode,
2871}
2872impl ConflictOnIndex {
2873    #[inline]
2874    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2875        support::child(&self.syntax)
2876    }
2877    #[inline]
2878    pub fn where_clause(&self) -> Option<WhereClause> {
2879        support::child(&self.syntax)
2880    }
2881}
2882
2883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2884pub struct ConstraintExclusion {
2885    pub(crate) syntax: SyntaxNode,
2886}
2887impl ConstraintExclusion {
2888    #[inline]
2889    pub fn expr(&self) -> Option<Expr> {
2890        support::child(&self.syntax)
2891    }
2892    #[inline]
2893    pub fn op(&self) -> Option<Op> {
2894        support::child(&self.syntax)
2895    }
2896    #[inline]
2897    pub fn with_token(&self) -> Option<SyntaxToken> {
2898        support::token(&self.syntax, SyntaxKind::WITH_KW)
2899    }
2900}
2901
2902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2903pub struct ConstraintExclusionList {
2904    pub(crate) syntax: SyntaxNode,
2905}
2906impl ConstraintExclusionList {
2907    #[inline]
2908    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2909        support::children(&self.syntax)
2910    }
2911    #[inline]
2912    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2913        support::token(&self.syntax, SyntaxKind::L_PAREN)
2914    }
2915    #[inline]
2916    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2917        support::token(&self.syntax, SyntaxKind::R_PAREN)
2918    }
2919}
2920
2921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2922pub struct ConstraintIncludeClause {
2923    pub(crate) syntax: SyntaxNode,
2924}
2925impl ConstraintIncludeClause {
2926    #[inline]
2927    pub fn include_token(&self) -> Option<SyntaxToken> {
2928        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2929    }
2930}
2931
2932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2933pub struct ConstraintIndexMethod {
2934    pub(crate) syntax: SyntaxNode,
2935}
2936impl ConstraintIndexMethod {
2937    #[inline]
2938    pub fn using_token(&self) -> Option<SyntaxToken> {
2939        support::token(&self.syntax, SyntaxKind::USING_KW)
2940    }
2941}
2942
2943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2944pub struct ConstraintIndexTablespace {
2945    pub(crate) syntax: SyntaxNode,
2946}
2947impl ConstraintIndexTablespace {
2948    #[inline]
2949    pub fn name_ref(&self) -> Option<NameRef> {
2950        support::child(&self.syntax)
2951    }
2952    #[inline]
2953    pub fn index_token(&self) -> Option<SyntaxToken> {
2954        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2955    }
2956    #[inline]
2957    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2958        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2959    }
2960    #[inline]
2961    pub fn using_token(&self) -> Option<SyntaxToken> {
2962        support::token(&self.syntax, SyntaxKind::USING_KW)
2963    }
2964}
2965
2966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2967pub struct Copy {
2968    pub(crate) syntax: SyntaxNode,
2969}
2970impl Copy {
2971    #[inline]
2972    pub fn column_list(&self) -> Option<ColumnList> {
2973        support::child(&self.syntax)
2974    }
2975    #[inline]
2976    pub fn literal(&self) -> Option<Literal> {
2977        support::child(&self.syntax)
2978    }
2979    #[inline]
2980    pub fn path(&self) -> Option<Path> {
2981        support::child(&self.syntax)
2982    }
2983    #[inline]
2984    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
2985        support::child(&self.syntax)
2986    }
2987    #[inline]
2988    pub fn where_clause(&self) -> Option<WhereClause> {
2989        support::child(&self.syntax)
2990    }
2991    #[inline]
2992    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2993        support::token(&self.syntax, SyntaxKind::L_PAREN)
2994    }
2995    #[inline]
2996    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2997        support::token(&self.syntax, SyntaxKind::R_PAREN)
2998    }
2999    #[inline]
3000    pub fn binary_token(&self) -> Option<SyntaxToken> {
3001        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3002    }
3003    #[inline]
3004    pub fn copy_token(&self) -> Option<SyntaxToken> {
3005        support::token(&self.syntax, SyntaxKind::COPY_KW)
3006    }
3007    #[inline]
3008    pub fn from_token(&self) -> Option<SyntaxToken> {
3009        support::token(&self.syntax, SyntaxKind::FROM_KW)
3010    }
3011    #[inline]
3012    pub fn program_token(&self) -> Option<SyntaxToken> {
3013        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3014    }
3015    #[inline]
3016    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3017        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3018    }
3019    #[inline]
3020    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3021        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3022    }
3023    #[inline]
3024    pub fn to_token(&self) -> Option<SyntaxToken> {
3025        support::token(&self.syntax, SyntaxKind::TO_KW)
3026    }
3027    #[inline]
3028    pub fn with_token(&self) -> Option<SyntaxToken> {
3029        support::token(&self.syntax, SyntaxKind::WITH_KW)
3030    }
3031}
3032
3033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3034pub struct CopyOption {
3035    pub(crate) syntax: SyntaxNode,
3036}
3037impl CopyOption {
3038    #[inline]
3039    pub fn name(&self) -> Option<Name> {
3040        support::child(&self.syntax)
3041    }
3042}
3043
3044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3045pub struct CopyOptionList {
3046    pub(crate) syntax: SyntaxNode,
3047}
3048impl CopyOptionList {
3049    #[inline]
3050    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3051        support::children(&self.syntax)
3052    }
3053    #[inline]
3054    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3055        support::token(&self.syntax, SyntaxKind::L_PAREN)
3056    }
3057    #[inline]
3058    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3059        support::token(&self.syntax, SyntaxKind::R_PAREN)
3060    }
3061}
3062
3063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3064pub struct CostFuncOption {
3065    pub(crate) syntax: SyntaxNode,
3066}
3067impl CostFuncOption {
3068    #[inline]
3069    pub fn cost_token(&self) -> Option<SyntaxToken> {
3070        support::token(&self.syntax, SyntaxKind::COST_KW)
3071    }
3072}
3073
3074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3075pub struct CreateAccessMethod {
3076    pub(crate) syntax: SyntaxNode,
3077}
3078impl CreateAccessMethod {
3079    #[inline]
3080    pub fn handler_clause(&self) -> Option<HandlerClause> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn name(&self) -> Option<Path> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn access_token(&self) -> Option<SyntaxToken> {
3089        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3090    }
3091    #[inline]
3092    pub fn create_token(&self) -> Option<SyntaxToken> {
3093        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3094    }
3095    #[inline]
3096    pub fn index_token(&self) -> Option<SyntaxToken> {
3097        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3098    }
3099    #[inline]
3100    pub fn method_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3102    }
3103    #[inline]
3104    pub fn table_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3106    }
3107    #[inline]
3108    pub fn type_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3110    }
3111}
3112
3113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3114pub struct CreateAggregate {
3115    pub(crate) syntax: SyntaxNode,
3116}
3117impl CreateAggregate {
3118    #[inline]
3119    pub fn or_replace(&self) -> Option<OrReplace> {
3120        support::child(&self.syntax)
3121    }
3122    #[inline]
3123    pub fn param_list(&self) -> Option<ParamList> {
3124        support::child(&self.syntax)
3125    }
3126    #[inline]
3127    pub fn path(&self) -> Option<Path> {
3128        support::child(&self.syntax)
3129    }
3130    #[inline]
3131    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3132        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3133    }
3134    #[inline]
3135    pub fn create_token(&self) -> Option<SyntaxToken> {
3136        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3137    }
3138}
3139
3140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3141pub struct CreateCast {
3142    pub(crate) syntax: SyntaxNode,
3143}
3144impl CreateCast {
3145    #[inline]
3146    pub fn cast_sig(&self) -> Option<CastSig> {
3147        support::child(&self.syntax)
3148    }
3149    #[inline]
3150    pub fn function_sig(&self) -> Option<FunctionSig> {
3151        support::child(&self.syntax)
3152    }
3153    #[inline]
3154    pub fn as_token(&self) -> Option<SyntaxToken> {
3155        support::token(&self.syntax, SyntaxKind::AS_KW)
3156    }
3157    #[inline]
3158    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3159        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3160    }
3161    #[inline]
3162    pub fn cast_token(&self) -> Option<SyntaxToken> {
3163        support::token(&self.syntax, SyntaxKind::CAST_KW)
3164    }
3165    #[inline]
3166    pub fn create_token(&self) -> Option<SyntaxToken> {
3167        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3168    }
3169    #[inline]
3170    pub fn function_token(&self) -> Option<SyntaxToken> {
3171        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3172    }
3173    #[inline]
3174    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3175        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3176    }
3177    #[inline]
3178    pub fn inout_token(&self) -> Option<SyntaxToken> {
3179        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3180    }
3181    #[inline]
3182    pub fn with_token(&self) -> Option<SyntaxToken> {
3183        support::token(&self.syntax, SyntaxKind::WITH_KW)
3184    }
3185    #[inline]
3186    pub fn without_token(&self) -> Option<SyntaxToken> {
3187        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3188    }
3189}
3190
3191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3192pub struct CreateCollation {
3193    pub(crate) syntax: SyntaxNode,
3194}
3195impl CreateCollation {
3196    #[inline]
3197    pub fn path(&self) -> Option<Path> {
3198        support::child(&self.syntax)
3199    }
3200    #[inline]
3201    pub fn collation_token(&self) -> Option<SyntaxToken> {
3202        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3203    }
3204    #[inline]
3205    pub fn create_token(&self) -> Option<SyntaxToken> {
3206        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3207    }
3208}
3209
3210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3211pub struct CreateConversion {
3212    pub(crate) syntax: SyntaxNode,
3213}
3214impl CreateConversion {
3215    #[inline]
3216    pub fn literal(&self) -> Option<Literal> {
3217        support::child(&self.syntax)
3218    }
3219    #[inline]
3220    pub fn path(&self) -> Option<Path> {
3221        support::child(&self.syntax)
3222    }
3223    #[inline]
3224    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3226    }
3227    #[inline]
3228    pub fn create_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3230    }
3231    #[inline]
3232    pub fn default_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3234    }
3235    #[inline]
3236    pub fn for_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::FOR_KW)
3238    }
3239    #[inline]
3240    pub fn from_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::FROM_KW)
3242    }
3243    #[inline]
3244    pub fn to_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::TO_KW)
3246    }
3247}
3248
3249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3250pub struct CreateDatabase {
3251    pub(crate) syntax: SyntaxNode,
3252}
3253impl CreateDatabase {
3254    #[inline]
3255    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3256        support::child(&self.syntax)
3257    }
3258    #[inline]
3259    pub fn name(&self) -> Option<Name> {
3260        support::child(&self.syntax)
3261    }
3262    #[inline]
3263    pub fn create_token(&self) -> Option<SyntaxToken> {
3264        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3265    }
3266    #[inline]
3267    pub fn database_token(&self) -> Option<SyntaxToken> {
3268        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3269    }
3270}
3271
3272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3273pub struct CreateDatabaseOption {
3274    pub(crate) syntax: SyntaxNode,
3275}
3276impl CreateDatabaseOption {
3277    #[inline]
3278    pub fn literal(&self) -> Option<Literal> {
3279        support::child(&self.syntax)
3280    }
3281    #[inline]
3282    pub fn eq_token(&self) -> Option<SyntaxToken> {
3283        support::token(&self.syntax, SyntaxKind::EQ)
3284    }
3285    #[inline]
3286    pub fn connection_token(&self) -> Option<SyntaxToken> {
3287        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3288    }
3289    #[inline]
3290    pub fn default_token(&self) -> Option<SyntaxToken> {
3291        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3292    }
3293    #[inline]
3294    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3295        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3296    }
3297    #[inline]
3298    pub fn ident_token(&self) -> Option<SyntaxToken> {
3299        support::token(&self.syntax, SyntaxKind::IDENT)
3300    }
3301    #[inline]
3302    pub fn limit_token(&self) -> Option<SyntaxToken> {
3303        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3304    }
3305    #[inline]
3306    pub fn owner_token(&self) -> Option<SyntaxToken> {
3307        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3308    }
3309    #[inline]
3310    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3311        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3312    }
3313    #[inline]
3314    pub fn template_token(&self) -> Option<SyntaxToken> {
3315        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3316    }
3317}
3318
3319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3320pub struct CreateDatabaseOptionList {
3321    pub(crate) syntax: SyntaxNode,
3322}
3323impl CreateDatabaseOptionList {
3324    #[inline]
3325    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3326        support::children(&self.syntax)
3327    }
3328    #[inline]
3329    pub fn with_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::WITH_KW)
3331    }
3332}
3333
3334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3335pub struct CreateDomain {
3336    pub(crate) syntax: SyntaxNode,
3337}
3338impl CreateDomain {
3339    #[inline]
3340    pub fn collate(&self) -> Option<Collate> {
3341        support::child(&self.syntax)
3342    }
3343    #[inline]
3344    pub fn constraints(&self) -> AstChildren<Constraint> {
3345        support::children(&self.syntax)
3346    }
3347    #[inline]
3348    pub fn path(&self) -> Option<Path> {
3349        support::child(&self.syntax)
3350    }
3351    #[inline]
3352    pub fn ty(&self) -> Option<Type> {
3353        support::child(&self.syntax)
3354    }
3355    #[inline]
3356    pub fn as_token(&self) -> Option<SyntaxToken> {
3357        support::token(&self.syntax, SyntaxKind::AS_KW)
3358    }
3359    #[inline]
3360    pub fn create_token(&self) -> Option<SyntaxToken> {
3361        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3362    }
3363    #[inline]
3364    pub fn domain_token(&self) -> Option<SyntaxToken> {
3365        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3366    }
3367}
3368
3369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3370pub struct CreateEventTrigger {
3371    pub(crate) syntax: SyntaxNode,
3372}
3373impl CreateEventTrigger {
3374    #[inline]
3375    pub fn call_expr(&self) -> Option<CallExpr> {
3376        support::child(&self.syntax)
3377    }
3378    #[inline]
3379    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3380        support::child(&self.syntax)
3381    }
3382    #[inline]
3383    pub fn name(&self) -> Option<Name> {
3384        support::child(&self.syntax)
3385    }
3386    #[inline]
3387    pub fn name_ref(&self) -> Option<NameRef> {
3388        support::child(&self.syntax)
3389    }
3390    #[inline]
3391    pub fn create_token(&self) -> Option<SyntaxToken> {
3392        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3393    }
3394    #[inline]
3395    pub fn event_token(&self) -> Option<SyntaxToken> {
3396        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3397    }
3398    #[inline]
3399    pub fn execute_token(&self) -> Option<SyntaxToken> {
3400        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3401    }
3402    #[inline]
3403    pub fn function_token(&self) -> Option<SyntaxToken> {
3404        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3405    }
3406    #[inline]
3407    pub fn on_token(&self) -> Option<SyntaxToken> {
3408        support::token(&self.syntax, SyntaxKind::ON_KW)
3409    }
3410    #[inline]
3411    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3412        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3413    }
3414    #[inline]
3415    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3416        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3417    }
3418}
3419
3420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3421pub struct CreateExtension {
3422    pub(crate) syntax: SyntaxNode,
3423}
3424impl CreateExtension {
3425    #[inline]
3426    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3427        support::child(&self.syntax)
3428    }
3429    #[inline]
3430    pub fn name(&self) -> Option<Name> {
3431        support::child(&self.syntax)
3432    }
3433    #[inline]
3434    pub fn create_token(&self) -> Option<SyntaxToken> {
3435        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3436    }
3437    #[inline]
3438    pub fn extension_token(&self) -> Option<SyntaxToken> {
3439        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3440    }
3441}
3442
3443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3444pub struct CreateForeignDataWrapper {
3445    pub(crate) syntax: SyntaxNode,
3446}
3447impl CreateForeignDataWrapper {
3448    #[inline]
3449    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3450        support::child(&self.syntax)
3451    }
3452    #[inline]
3453    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3454        support::child(&self.syntax)
3455    }
3456    #[inline]
3457    pub fn name(&self) -> Option<Name> {
3458        support::child(&self.syntax)
3459    }
3460    #[inline]
3461    pub fn create_token(&self) -> Option<SyntaxToken> {
3462        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3463    }
3464    #[inline]
3465    pub fn data_token(&self) -> Option<SyntaxToken> {
3466        support::token(&self.syntax, SyntaxKind::DATA_KW)
3467    }
3468    #[inline]
3469    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3470        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3471    }
3472    #[inline]
3473    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3474        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3475    }
3476}
3477
3478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3479pub struct CreateForeignTable {
3480    pub(crate) syntax: SyntaxNode,
3481}
3482impl CreateForeignTable {
3483    #[inline]
3484    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3485        support::child(&self.syntax)
3486    }
3487    #[inline]
3488    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3489        support::child(&self.syntax)
3490    }
3491    #[inline]
3492    pub fn inherits(&self) -> Option<Inherits> {
3493        support::child(&self.syntax)
3494    }
3495    #[inline]
3496    pub fn name_ref(&self) -> Option<NameRef> {
3497        support::child(&self.syntax)
3498    }
3499    #[inline]
3500    pub fn partition_of(&self) -> Option<PartitionOf> {
3501        support::child(&self.syntax)
3502    }
3503    #[inline]
3504    pub fn partition_type(&self) -> Option<PartitionType> {
3505        support::child(&self.syntax)
3506    }
3507    #[inline]
3508    pub fn path(&self) -> Option<Path> {
3509        support::child(&self.syntax)
3510    }
3511    #[inline]
3512    pub fn table_arg_list(&self) -> Option<TableArgList> {
3513        support::child(&self.syntax)
3514    }
3515    #[inline]
3516    pub fn create_token(&self) -> Option<SyntaxToken> {
3517        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3518    }
3519    #[inline]
3520    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3521        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3522    }
3523    #[inline]
3524    pub fn server_token(&self) -> Option<SyntaxToken> {
3525        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3526    }
3527    #[inline]
3528    pub fn table_token(&self) -> Option<SyntaxToken> {
3529        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3530    }
3531}
3532
3533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3534pub struct CreateFunction {
3535    pub(crate) syntax: SyntaxNode,
3536}
3537impl CreateFunction {
3538    #[inline]
3539    pub fn option_list(&self) -> Option<FuncOptionList> {
3540        support::child(&self.syntax)
3541    }
3542    #[inline]
3543    pub fn or_replace(&self) -> Option<OrReplace> {
3544        support::child(&self.syntax)
3545    }
3546    #[inline]
3547    pub fn param_list(&self) -> Option<ParamList> {
3548        support::child(&self.syntax)
3549    }
3550    #[inline]
3551    pub fn path(&self) -> Option<Path> {
3552        support::child(&self.syntax)
3553    }
3554    #[inline]
3555    pub fn ret_type(&self) -> Option<RetType> {
3556        support::child(&self.syntax)
3557    }
3558    #[inline]
3559    pub fn create_token(&self) -> Option<SyntaxToken> {
3560        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3561    }
3562    #[inline]
3563    pub fn function_token(&self) -> Option<SyntaxToken> {
3564        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3565    }
3566}
3567
3568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3569pub struct CreateGroup {
3570    pub(crate) syntax: SyntaxNode,
3571}
3572impl CreateGroup {
3573    #[inline]
3574    pub fn name(&self) -> Option<Name> {
3575        support::child(&self.syntax)
3576    }
3577    #[inline]
3578    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3579        support::child(&self.syntax)
3580    }
3581    #[inline]
3582    pub fn create_token(&self) -> Option<SyntaxToken> {
3583        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3584    }
3585    #[inline]
3586    pub fn group_token(&self) -> Option<SyntaxToken> {
3587        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3588    }
3589}
3590
3591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3592pub struct CreateIndex {
3593    pub(crate) syntax: SyntaxNode,
3594}
3595impl CreateIndex {
3596    #[inline]
3597    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3598        support::child(&self.syntax)
3599    }
3600    #[inline]
3601    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3602        support::child(&self.syntax)
3603    }
3604    #[inline]
3605    pub fn name(&self) -> Option<Name> {
3606        support::child(&self.syntax)
3607    }
3608    #[inline]
3609    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3610        support::child(&self.syntax)
3611    }
3612    #[inline]
3613    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3614        support::child(&self.syntax)
3615    }
3616    #[inline]
3617    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3618        support::child(&self.syntax)
3619    }
3620    #[inline]
3621    pub fn relation_name(&self) -> Option<RelationName> {
3622        support::child(&self.syntax)
3623    }
3624    #[inline]
3625    pub fn tablespace(&self) -> Option<Tablespace> {
3626        support::child(&self.syntax)
3627    }
3628    #[inline]
3629    pub fn using_method(&self) -> Option<UsingMethod> {
3630        support::child(&self.syntax)
3631    }
3632    #[inline]
3633    pub fn where_clause(&self) -> Option<WhereClause> {
3634        support::child(&self.syntax)
3635    }
3636    #[inline]
3637    pub fn with_params(&self) -> Option<WithParams> {
3638        support::child(&self.syntax)
3639    }
3640    #[inline]
3641    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3642        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3643    }
3644    #[inline]
3645    pub fn create_token(&self) -> Option<SyntaxToken> {
3646        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3647    }
3648    #[inline]
3649    pub fn index_token(&self) -> Option<SyntaxToken> {
3650        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3651    }
3652    #[inline]
3653    pub fn on_token(&self) -> Option<SyntaxToken> {
3654        support::token(&self.syntax, SyntaxKind::ON_KW)
3655    }
3656    #[inline]
3657    pub fn unique_token(&self) -> Option<SyntaxToken> {
3658        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3659    }
3660}
3661
3662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3663pub struct CreateLanguage {
3664    pub(crate) syntax: SyntaxNode,
3665}
3666impl CreateLanguage {
3667    #[inline]
3668    pub fn name(&self) -> Option<Name> {
3669        support::child(&self.syntax)
3670    }
3671    #[inline]
3672    pub fn or_replace(&self) -> Option<OrReplace> {
3673        support::child(&self.syntax)
3674    }
3675    #[inline]
3676    pub fn path(&self) -> Option<Path> {
3677        support::child(&self.syntax)
3678    }
3679    #[inline]
3680    pub fn create_token(&self) -> Option<SyntaxToken> {
3681        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3682    }
3683    #[inline]
3684    pub fn handler_token(&self) -> Option<SyntaxToken> {
3685        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3686    }
3687    #[inline]
3688    pub fn inline_token(&self) -> Option<SyntaxToken> {
3689        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3690    }
3691    #[inline]
3692    pub fn language_token(&self) -> Option<SyntaxToken> {
3693        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3694    }
3695    #[inline]
3696    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3697        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3698    }
3699    #[inline]
3700    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3701        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3702    }
3703    #[inline]
3704    pub fn validator_token(&self) -> Option<SyntaxToken> {
3705        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3706    }
3707}
3708
3709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3710pub struct CreateMaterializedView {
3711    pub(crate) syntax: SyntaxNode,
3712}
3713impl CreateMaterializedView {
3714    #[inline]
3715    pub fn column_list(&self) -> Option<ColumnList> {
3716        support::child(&self.syntax)
3717    }
3718    #[inline]
3719    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3720        support::child(&self.syntax)
3721    }
3722    #[inline]
3723    pub fn path(&self) -> Option<Path> {
3724        support::child(&self.syntax)
3725    }
3726    #[inline]
3727    pub fn query(&self) -> Option<SelectVariant> {
3728        support::child(&self.syntax)
3729    }
3730    #[inline]
3731    pub fn tablespace(&self) -> Option<Tablespace> {
3732        support::child(&self.syntax)
3733    }
3734    #[inline]
3735    pub fn using_method(&self) -> Option<UsingMethod> {
3736        support::child(&self.syntax)
3737    }
3738    #[inline]
3739    pub fn with_data(&self) -> Option<WithData> {
3740        support::child(&self.syntax)
3741    }
3742    #[inline]
3743    pub fn with_no_data(&self) -> Option<WithNoData> {
3744        support::child(&self.syntax)
3745    }
3746    #[inline]
3747    pub fn with_params(&self) -> Option<WithParams> {
3748        support::child(&self.syntax)
3749    }
3750    #[inline]
3751    pub fn as_token(&self) -> Option<SyntaxToken> {
3752        support::token(&self.syntax, SyntaxKind::AS_KW)
3753    }
3754    #[inline]
3755    pub fn create_token(&self) -> Option<SyntaxToken> {
3756        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3757    }
3758    #[inline]
3759    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3760        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3761    }
3762    #[inline]
3763    pub fn view_token(&self) -> Option<SyntaxToken> {
3764        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3765    }
3766}
3767
3768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3769pub struct CreateOperator {
3770    pub(crate) syntax: SyntaxNode,
3771}
3772impl CreateOperator {
3773    #[inline]
3774    pub fn attribute_list(&self) -> Option<AttributeList> {
3775        support::child(&self.syntax)
3776    }
3777    #[inline]
3778    pub fn op(&self) -> Option<Op> {
3779        support::child(&self.syntax)
3780    }
3781    #[inline]
3782    pub fn path(&self) -> Option<Path> {
3783        support::child(&self.syntax)
3784    }
3785    #[inline]
3786    pub fn create_token(&self) -> Option<SyntaxToken> {
3787        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3788    }
3789    #[inline]
3790    pub fn operator_token(&self) -> Option<SyntaxToken> {
3791        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3792    }
3793}
3794
3795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3796pub struct CreateOperatorClass {
3797    pub(crate) syntax: SyntaxNode,
3798}
3799impl CreateOperatorClass {
3800    #[inline]
3801    pub fn name_ref(&self) -> Option<NameRef> {
3802        support::child(&self.syntax)
3803    }
3804    #[inline]
3805    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3806        support::child(&self.syntax)
3807    }
3808    #[inline]
3809    pub fn path(&self) -> Option<Path> {
3810        support::child(&self.syntax)
3811    }
3812    #[inline]
3813    pub fn ty(&self) -> Option<Type> {
3814        support::child(&self.syntax)
3815    }
3816    #[inline]
3817    pub fn as_token(&self) -> Option<SyntaxToken> {
3818        support::token(&self.syntax, SyntaxKind::AS_KW)
3819    }
3820    #[inline]
3821    pub fn class_token(&self) -> Option<SyntaxToken> {
3822        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3823    }
3824    #[inline]
3825    pub fn create_token(&self) -> Option<SyntaxToken> {
3826        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3827    }
3828    #[inline]
3829    pub fn default_token(&self) -> Option<SyntaxToken> {
3830        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3831    }
3832    #[inline]
3833    pub fn family_token(&self) -> Option<SyntaxToken> {
3834        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3835    }
3836    #[inline]
3837    pub fn for_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::FOR_KW)
3839    }
3840    #[inline]
3841    pub fn operator_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3843    }
3844    #[inline]
3845    pub fn type_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3847    }
3848    #[inline]
3849    pub fn using_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::USING_KW)
3851    }
3852}
3853
3854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3855pub struct CreateOperatorFamily {
3856    pub(crate) syntax: SyntaxNode,
3857}
3858impl CreateOperatorFamily {
3859    #[inline]
3860    pub fn name_ref(&self) -> Option<NameRef> {
3861        support::child(&self.syntax)
3862    }
3863    #[inline]
3864    pub fn path(&self) -> Option<Path> {
3865        support::child(&self.syntax)
3866    }
3867    #[inline]
3868    pub fn create_token(&self) -> Option<SyntaxToken> {
3869        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3870    }
3871    #[inline]
3872    pub fn family_token(&self) -> Option<SyntaxToken> {
3873        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3874    }
3875    #[inline]
3876    pub fn operator_token(&self) -> Option<SyntaxToken> {
3877        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3878    }
3879    #[inline]
3880    pub fn using_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::USING_KW)
3882    }
3883}
3884
3885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3886pub struct CreatePolicy {
3887    pub(crate) syntax: SyntaxNode,
3888}
3889impl CreatePolicy {
3890    #[inline]
3891    pub fn expr(&self) -> Option<Expr> {
3892        support::child(&self.syntax)
3893    }
3894    #[inline]
3895    pub fn name(&self) -> Option<Name> {
3896        support::child(&self.syntax)
3897    }
3898    #[inline]
3899    pub fn on_table(&self) -> Option<OnTable> {
3900        support::child(&self.syntax)
3901    }
3902    #[inline]
3903    pub fn role_list(&self) -> Option<RoleList> {
3904        support::child(&self.syntax)
3905    }
3906    #[inline]
3907    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::L_PAREN)
3909    }
3910    #[inline]
3911    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::R_PAREN)
3913    }
3914    #[inline]
3915    pub fn all_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::ALL_KW)
3917    }
3918    #[inline]
3919    pub fn as_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::AS_KW)
3921    }
3922    #[inline]
3923    pub fn check_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3925    }
3926    #[inline]
3927    pub fn create_token(&self) -> Option<SyntaxToken> {
3928        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3929    }
3930    #[inline]
3931    pub fn delete_token(&self) -> Option<SyntaxToken> {
3932        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3933    }
3934    #[inline]
3935    pub fn for_token(&self) -> Option<SyntaxToken> {
3936        support::token(&self.syntax, SyntaxKind::FOR_KW)
3937    }
3938    #[inline]
3939    pub fn ident_token(&self) -> Option<SyntaxToken> {
3940        support::token(&self.syntax, SyntaxKind::IDENT)
3941    }
3942    #[inline]
3943    pub fn insert_token(&self) -> Option<SyntaxToken> {
3944        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3945    }
3946    #[inline]
3947    pub fn policy_token(&self) -> Option<SyntaxToken> {
3948        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3949    }
3950    #[inline]
3951    pub fn select_token(&self) -> Option<SyntaxToken> {
3952        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3953    }
3954    #[inline]
3955    pub fn to_token(&self) -> Option<SyntaxToken> {
3956        support::token(&self.syntax, SyntaxKind::TO_KW)
3957    }
3958    #[inline]
3959    pub fn update_token(&self) -> Option<SyntaxToken> {
3960        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3961    }
3962    #[inline]
3963    pub fn using_token(&self) -> Option<SyntaxToken> {
3964        support::token(&self.syntax, SyntaxKind::USING_KW)
3965    }
3966    #[inline]
3967    pub fn with_token(&self) -> Option<SyntaxToken> {
3968        support::token(&self.syntax, SyntaxKind::WITH_KW)
3969    }
3970}
3971
3972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3973pub struct CreateProcedure {
3974    pub(crate) syntax: SyntaxNode,
3975}
3976impl CreateProcedure {
3977    #[inline]
3978    pub fn option_list(&self) -> Option<FuncOptionList> {
3979        support::child(&self.syntax)
3980    }
3981    #[inline]
3982    pub fn or_replace(&self) -> Option<OrReplace> {
3983        support::child(&self.syntax)
3984    }
3985    #[inline]
3986    pub fn param_list(&self) -> Option<ParamList> {
3987        support::child(&self.syntax)
3988    }
3989    #[inline]
3990    pub fn path(&self) -> Option<Path> {
3991        support::child(&self.syntax)
3992    }
3993    #[inline]
3994    pub fn create_token(&self) -> Option<SyntaxToken> {
3995        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3996    }
3997    #[inline]
3998    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3999        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4000    }
4001}
4002
4003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4004pub struct CreatePublication {
4005    pub(crate) syntax: SyntaxNode,
4006}
4007impl CreatePublication {
4008    #[inline]
4009    pub fn name(&self) -> Option<Name> {
4010        support::child(&self.syntax)
4011    }
4012    #[inline]
4013    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4014        support::children(&self.syntax)
4015    }
4016    #[inline]
4017    pub fn with_params(&self) -> Option<WithParams> {
4018        support::child(&self.syntax)
4019    }
4020    #[inline]
4021    pub fn all_token(&self) -> Option<SyntaxToken> {
4022        support::token(&self.syntax, SyntaxKind::ALL_KW)
4023    }
4024    #[inline]
4025    pub fn create_token(&self) -> Option<SyntaxToken> {
4026        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4027    }
4028    #[inline]
4029    pub fn for_token(&self) -> Option<SyntaxToken> {
4030        support::token(&self.syntax, SyntaxKind::FOR_KW)
4031    }
4032    #[inline]
4033    pub fn publication_token(&self) -> Option<SyntaxToken> {
4034        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4035    }
4036    #[inline]
4037    pub fn tables_token(&self) -> Option<SyntaxToken> {
4038        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4039    }
4040}
4041
4042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4043pub struct CreateRole {
4044    pub(crate) syntax: SyntaxNode,
4045}
4046impl CreateRole {
4047    #[inline]
4048    pub fn name(&self) -> Option<Name> {
4049        support::child(&self.syntax)
4050    }
4051    #[inline]
4052    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4053        support::child(&self.syntax)
4054    }
4055    #[inline]
4056    pub fn create_token(&self) -> Option<SyntaxToken> {
4057        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4058    }
4059    #[inline]
4060    pub fn role_token(&self) -> Option<SyntaxToken> {
4061        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4062    }
4063}
4064
4065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4066pub struct CreateRule {
4067    pub(crate) syntax: SyntaxNode,
4068}
4069impl CreateRule {
4070    #[inline]
4071    pub fn name(&self) -> Option<Name> {
4072        support::child(&self.syntax)
4073    }
4074    #[inline]
4075    pub fn or_replace(&self) -> Option<OrReplace> {
4076        support::child(&self.syntax)
4077    }
4078    #[inline]
4079    pub fn path(&self) -> Option<Path> {
4080        support::child(&self.syntax)
4081    }
4082    #[inline]
4083    pub fn stmt(&self) -> Option<Stmt> {
4084        support::child(&self.syntax)
4085    }
4086    #[inline]
4087    pub fn stmts(&self) -> AstChildren<Stmt> {
4088        support::children(&self.syntax)
4089    }
4090    #[inline]
4091    pub fn where_clause(&self) -> Option<WhereClause> {
4092        support::child(&self.syntax)
4093    }
4094    #[inline]
4095    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4096        support::token(&self.syntax, SyntaxKind::L_PAREN)
4097    }
4098    #[inline]
4099    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4100        support::token(&self.syntax, SyntaxKind::R_PAREN)
4101    }
4102    #[inline]
4103    pub fn also_token(&self) -> Option<SyntaxToken> {
4104        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4105    }
4106    #[inline]
4107    pub fn as_token(&self) -> Option<SyntaxToken> {
4108        support::token(&self.syntax, SyntaxKind::AS_KW)
4109    }
4110    #[inline]
4111    pub fn create_token(&self) -> Option<SyntaxToken> {
4112        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4113    }
4114    #[inline]
4115    pub fn delete_token(&self) -> Option<SyntaxToken> {
4116        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4117    }
4118    #[inline]
4119    pub fn do_token(&self) -> Option<SyntaxToken> {
4120        support::token(&self.syntax, SyntaxKind::DO_KW)
4121    }
4122    #[inline]
4123    pub fn ident_token(&self) -> Option<SyntaxToken> {
4124        support::token(&self.syntax, SyntaxKind::IDENT)
4125    }
4126    #[inline]
4127    pub fn insert_token(&self) -> Option<SyntaxToken> {
4128        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4129    }
4130    #[inline]
4131    pub fn instead_token(&self) -> Option<SyntaxToken> {
4132        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4133    }
4134    #[inline]
4135    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4136        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4137    }
4138    #[inline]
4139    pub fn on_token(&self) -> Option<SyntaxToken> {
4140        support::token(&self.syntax, SyntaxKind::ON_KW)
4141    }
4142    #[inline]
4143    pub fn rule_token(&self) -> Option<SyntaxToken> {
4144        support::token(&self.syntax, SyntaxKind::RULE_KW)
4145    }
4146    #[inline]
4147    pub fn select_token(&self) -> Option<SyntaxToken> {
4148        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4149    }
4150    #[inline]
4151    pub fn to_token(&self) -> Option<SyntaxToken> {
4152        support::token(&self.syntax, SyntaxKind::TO_KW)
4153    }
4154    #[inline]
4155    pub fn update_token(&self) -> Option<SyntaxToken> {
4156        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4157    }
4158}
4159
4160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4161pub struct CreateSchema {
4162    pub(crate) syntax: SyntaxNode,
4163}
4164impl CreateSchema {
4165    #[inline]
4166    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4167        support::child(&self.syntax)
4168    }
4169    #[inline]
4170    pub fn name(&self) -> Option<Name> {
4171        support::child(&self.syntax)
4172    }
4173    #[inline]
4174    pub fn schema_authorization(&self) -> Option<SchemaAuthorization> {
4175        support::child(&self.syntax)
4176    }
4177    #[inline]
4178    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4179        support::children(&self.syntax)
4180    }
4181    #[inline]
4182    pub fn create_token(&self) -> Option<SyntaxToken> {
4183        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4184    }
4185    #[inline]
4186    pub fn schema_token(&self) -> Option<SyntaxToken> {
4187        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4188    }
4189}
4190
4191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4192pub struct CreateSequence {
4193    pub(crate) syntax: SyntaxNode,
4194}
4195impl CreateSequence {
4196    #[inline]
4197    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4198        support::child(&self.syntax)
4199    }
4200    #[inline]
4201    pub fn path(&self) -> Option<Path> {
4202        support::child(&self.syntax)
4203    }
4204    #[inline]
4205    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4206        support::children(&self.syntax)
4207    }
4208    #[inline]
4209    pub fn create_token(&self) -> Option<SyntaxToken> {
4210        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4211    }
4212    #[inline]
4213    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4214        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4215    }
4216    #[inline]
4217    pub fn temp_token(&self) -> Option<SyntaxToken> {
4218        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4219    }
4220    #[inline]
4221    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4222        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4223    }
4224    #[inline]
4225    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4226        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4227    }
4228}
4229
4230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4231pub struct CreateServer {
4232    pub(crate) syntax: SyntaxNode,
4233}
4234impl CreateServer {
4235    #[inline]
4236    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4237        support::child(&self.syntax)
4238    }
4239    #[inline]
4240    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4241        support::child(&self.syntax)
4242    }
4243    #[inline]
4244    pub fn literal(&self) -> Option<Literal> {
4245        support::child(&self.syntax)
4246    }
4247    #[inline]
4248    pub fn name(&self) -> Option<Name> {
4249        support::child(&self.syntax)
4250    }
4251    #[inline]
4252    pub fn name_ref(&self) -> Option<NameRef> {
4253        support::child(&self.syntax)
4254    }
4255    #[inline]
4256    pub fn create_token(&self) -> Option<SyntaxToken> {
4257        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4258    }
4259    #[inline]
4260    pub fn data_token(&self) -> Option<SyntaxToken> {
4261        support::token(&self.syntax, SyntaxKind::DATA_KW)
4262    }
4263    #[inline]
4264    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4265        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4266    }
4267    #[inline]
4268    pub fn server_token(&self) -> Option<SyntaxToken> {
4269        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4270    }
4271    #[inline]
4272    pub fn type_token(&self) -> Option<SyntaxToken> {
4273        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4274    }
4275    #[inline]
4276    pub fn version_token(&self) -> Option<SyntaxToken> {
4277        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4278    }
4279    #[inline]
4280    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4281        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4282    }
4283}
4284
4285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4286pub struct CreateStatistics {
4287    pub(crate) syntax: SyntaxNode,
4288}
4289impl CreateStatistics {
4290    #[inline]
4291    pub fn from_table(&self) -> Option<FromTable> {
4292        support::child(&self.syntax)
4293    }
4294    #[inline]
4295    pub fn name_refs(&self) -> AstChildren<NameRef> {
4296        support::children(&self.syntax)
4297    }
4298    #[inline]
4299    pub fn path(&self) -> Option<Path> {
4300        support::child(&self.syntax)
4301    }
4302    #[inline]
4303    pub fn create_token(&self) -> Option<SyntaxToken> {
4304        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4305    }
4306    #[inline]
4307    pub fn on_token(&self) -> Option<SyntaxToken> {
4308        support::token(&self.syntax, SyntaxKind::ON_KW)
4309    }
4310    #[inline]
4311    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4313    }
4314}
4315
4316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4317pub struct CreateSubscription {
4318    pub(crate) syntax: SyntaxNode,
4319}
4320impl CreateSubscription {
4321    #[inline]
4322    pub fn literal(&self) -> Option<Literal> {
4323        support::child(&self.syntax)
4324    }
4325    #[inline]
4326    pub fn name(&self) -> Option<Name> {
4327        support::child(&self.syntax)
4328    }
4329    #[inline]
4330    pub fn name_refs(&self) -> AstChildren<NameRef> {
4331        support::children(&self.syntax)
4332    }
4333    #[inline]
4334    pub fn with_params(&self) -> Option<WithParams> {
4335        support::child(&self.syntax)
4336    }
4337    #[inline]
4338    pub fn connection_token(&self) -> Option<SyntaxToken> {
4339        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4340    }
4341    #[inline]
4342    pub fn create_token(&self) -> Option<SyntaxToken> {
4343        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4344    }
4345    #[inline]
4346    pub fn publication_token(&self) -> Option<SyntaxToken> {
4347        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4348    }
4349    #[inline]
4350    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4352    }
4353}
4354
4355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4356pub struct CreateTable {
4357    pub(crate) syntax: SyntaxNode,
4358}
4359impl CreateTable {
4360    #[inline]
4361    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4362        support::child(&self.syntax)
4363    }
4364    #[inline]
4365    pub fn inherits(&self) -> Option<Inherits> {
4366        support::child(&self.syntax)
4367    }
4368    #[inline]
4369    pub fn of_type(&self) -> Option<OfType> {
4370        support::child(&self.syntax)
4371    }
4372    #[inline]
4373    pub fn on_commit(&self) -> Option<OnCommit> {
4374        support::child(&self.syntax)
4375    }
4376    #[inline]
4377    pub fn partition_by(&self) -> Option<PartitionBy> {
4378        support::child(&self.syntax)
4379    }
4380    #[inline]
4381    pub fn partition_of(&self) -> Option<PartitionOf> {
4382        support::child(&self.syntax)
4383    }
4384    #[inline]
4385    pub fn path(&self) -> Option<Path> {
4386        support::child(&self.syntax)
4387    }
4388    #[inline]
4389    pub fn table_arg_list(&self) -> Option<TableArgList> {
4390        support::child(&self.syntax)
4391    }
4392    #[inline]
4393    pub fn tablespace(&self) -> Option<Tablespace> {
4394        support::child(&self.syntax)
4395    }
4396    #[inline]
4397    pub fn using_method(&self) -> Option<UsingMethod> {
4398        support::child(&self.syntax)
4399    }
4400    #[inline]
4401    pub fn with_params(&self) -> Option<WithParams> {
4402        support::child(&self.syntax)
4403    }
4404    #[inline]
4405    pub fn without_oids(&self) -> Option<WithoutOids> {
4406        support::child(&self.syntax)
4407    }
4408    #[inline]
4409    pub fn create_token(&self) -> Option<SyntaxToken> {
4410        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4411    }
4412    #[inline]
4413    pub fn global_token(&self) -> Option<SyntaxToken> {
4414        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4415    }
4416    #[inline]
4417    pub fn local_token(&self) -> Option<SyntaxToken> {
4418        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4419    }
4420    #[inline]
4421    pub fn table_token(&self) -> Option<SyntaxToken> {
4422        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4423    }
4424    #[inline]
4425    pub fn temp_token(&self) -> Option<SyntaxToken> {
4426        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4427    }
4428    #[inline]
4429    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4430        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4431    }
4432    #[inline]
4433    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4434        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4435    }
4436}
4437
4438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4439pub struct CreateTableAs {
4440    pub(crate) syntax: SyntaxNode,
4441}
4442impl CreateTableAs {
4443    #[inline]
4444    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4445        support::child(&self.syntax)
4446    }
4447    #[inline]
4448    pub fn on_commit(&self) -> Option<OnCommit> {
4449        support::child(&self.syntax)
4450    }
4451    #[inline]
4452    pub fn path(&self) -> Option<Path> {
4453        support::child(&self.syntax)
4454    }
4455    #[inline]
4456    pub fn query(&self) -> Option<SelectVariant> {
4457        support::child(&self.syntax)
4458    }
4459    #[inline]
4460    pub fn tablespace(&self) -> Option<Tablespace> {
4461        support::child(&self.syntax)
4462    }
4463    #[inline]
4464    pub fn using_method(&self) -> Option<UsingMethod> {
4465        support::child(&self.syntax)
4466    }
4467    #[inline]
4468    pub fn with_data(&self) -> Option<WithData> {
4469        support::child(&self.syntax)
4470    }
4471    #[inline]
4472    pub fn with_no_data(&self) -> Option<WithNoData> {
4473        support::child(&self.syntax)
4474    }
4475    #[inline]
4476    pub fn with_params(&self) -> Option<WithParams> {
4477        support::child(&self.syntax)
4478    }
4479    #[inline]
4480    pub fn without_oids(&self) -> Option<WithoutOids> {
4481        support::child(&self.syntax)
4482    }
4483    #[inline]
4484    pub fn as_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::AS_KW)
4486    }
4487    #[inline]
4488    pub fn create_token(&self) -> Option<SyntaxToken> {
4489        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4490    }
4491    #[inline]
4492    pub fn global_token(&self) -> Option<SyntaxToken> {
4493        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4494    }
4495    #[inline]
4496    pub fn local_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4498    }
4499    #[inline]
4500    pub fn table_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4502    }
4503    #[inline]
4504    pub fn temp_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4506    }
4507    #[inline]
4508    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4510    }
4511    #[inline]
4512    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4514    }
4515}
4516
4517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4518pub struct CreateTablespace {
4519    pub(crate) syntax: SyntaxNode,
4520}
4521impl CreateTablespace {
4522    #[inline]
4523    pub fn literal(&self) -> Option<Literal> {
4524        support::child(&self.syntax)
4525    }
4526    #[inline]
4527    pub fn name(&self) -> Option<Name> {
4528        support::child(&self.syntax)
4529    }
4530    #[inline]
4531    pub fn role(&self) -> Option<Role> {
4532        support::child(&self.syntax)
4533    }
4534    #[inline]
4535    pub fn with_params(&self) -> Option<WithParams> {
4536        support::child(&self.syntax)
4537    }
4538    #[inline]
4539    pub fn create_token(&self) -> Option<SyntaxToken> {
4540        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4541    }
4542    #[inline]
4543    pub fn location_token(&self) -> Option<SyntaxToken> {
4544        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4545    }
4546    #[inline]
4547    pub fn owner_token(&self) -> Option<SyntaxToken> {
4548        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4549    }
4550    #[inline]
4551    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4553    }
4554}
4555
4556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4557pub struct CreateTextSearchConfiguration {
4558    pub(crate) syntax: SyntaxNode,
4559}
4560impl CreateTextSearchConfiguration {
4561    #[inline]
4562    pub fn attribute_list(&self) -> Option<AttributeList> {
4563        support::child(&self.syntax)
4564    }
4565    #[inline]
4566    pub fn path(&self) -> Option<Path> {
4567        support::child(&self.syntax)
4568    }
4569    #[inline]
4570    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4571        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4572    }
4573    #[inline]
4574    pub fn create_token(&self) -> Option<SyntaxToken> {
4575        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4576    }
4577    #[inline]
4578    pub fn search_token(&self) -> Option<SyntaxToken> {
4579        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4580    }
4581    #[inline]
4582    pub fn text_token(&self) -> Option<SyntaxToken> {
4583        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4584    }
4585}
4586
4587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4588pub struct CreateTextSearchDictionary {
4589    pub(crate) syntax: SyntaxNode,
4590}
4591impl CreateTextSearchDictionary {
4592    #[inline]
4593    pub fn attribute_list(&self) -> Option<AttributeList> {
4594        support::child(&self.syntax)
4595    }
4596    #[inline]
4597    pub fn path(&self) -> Option<Path> {
4598        support::child(&self.syntax)
4599    }
4600    #[inline]
4601    pub fn create_token(&self) -> Option<SyntaxToken> {
4602        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4603    }
4604    #[inline]
4605    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4606        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4607    }
4608    #[inline]
4609    pub fn search_token(&self) -> Option<SyntaxToken> {
4610        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4611    }
4612    #[inline]
4613    pub fn text_token(&self) -> Option<SyntaxToken> {
4614        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4615    }
4616}
4617
4618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4619pub struct CreateTextSearchParser {
4620    pub(crate) syntax: SyntaxNode,
4621}
4622impl CreateTextSearchParser {
4623    #[inline]
4624    pub fn attribute_list(&self) -> Option<AttributeList> {
4625        support::child(&self.syntax)
4626    }
4627    #[inline]
4628    pub fn path(&self) -> Option<Path> {
4629        support::child(&self.syntax)
4630    }
4631    #[inline]
4632    pub fn create_token(&self) -> Option<SyntaxToken> {
4633        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4634    }
4635    #[inline]
4636    pub fn parser_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4638    }
4639    #[inline]
4640    pub fn search_token(&self) -> Option<SyntaxToken> {
4641        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4642    }
4643    #[inline]
4644    pub fn text_token(&self) -> Option<SyntaxToken> {
4645        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4646    }
4647}
4648
4649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4650pub struct CreateTextSearchTemplate {
4651    pub(crate) syntax: SyntaxNode,
4652}
4653impl CreateTextSearchTemplate {
4654    #[inline]
4655    pub fn attribute_list(&self) -> Option<AttributeList> {
4656        support::child(&self.syntax)
4657    }
4658    #[inline]
4659    pub fn path(&self) -> Option<Path> {
4660        support::child(&self.syntax)
4661    }
4662    #[inline]
4663    pub fn create_token(&self) -> Option<SyntaxToken> {
4664        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4665    }
4666    #[inline]
4667    pub fn search_token(&self) -> Option<SyntaxToken> {
4668        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4669    }
4670    #[inline]
4671    pub fn template_token(&self) -> Option<SyntaxToken> {
4672        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4673    }
4674    #[inline]
4675    pub fn text_token(&self) -> Option<SyntaxToken> {
4676        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4677    }
4678}
4679
4680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4681pub struct CreateTransform {
4682    pub(crate) syntax: SyntaxNode,
4683}
4684impl CreateTransform {
4685    #[inline]
4686    pub fn from_func(&self) -> Option<TransformFromFunc> {
4687        support::child(&self.syntax)
4688    }
4689    #[inline]
4690    pub fn language(&self) -> Option<NameRef> {
4691        support::child(&self.syntax)
4692    }
4693    #[inline]
4694    pub fn or_replace(&self) -> Option<OrReplace> {
4695        support::child(&self.syntax)
4696    }
4697    #[inline]
4698    pub fn to_func(&self) -> Option<TransformToFunc> {
4699        support::child(&self.syntax)
4700    }
4701    #[inline]
4702    pub fn ty(&self) -> Option<Type> {
4703        support::child(&self.syntax)
4704    }
4705    #[inline]
4706    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4707        support::token(&self.syntax, SyntaxKind::L_PAREN)
4708    }
4709    #[inline]
4710    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4711        support::token(&self.syntax, SyntaxKind::R_PAREN)
4712    }
4713    #[inline]
4714    pub fn comma_token(&self) -> Option<SyntaxToken> {
4715        support::token(&self.syntax, SyntaxKind::COMMA)
4716    }
4717    #[inline]
4718    pub fn create_token(&self) -> Option<SyntaxToken> {
4719        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4720    }
4721    #[inline]
4722    pub fn for_token(&self) -> Option<SyntaxToken> {
4723        support::token(&self.syntax, SyntaxKind::FOR_KW)
4724    }
4725    #[inline]
4726    pub fn language_token(&self) -> Option<SyntaxToken> {
4727        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4728    }
4729    #[inline]
4730    pub fn transform_token(&self) -> Option<SyntaxToken> {
4731        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4732    }
4733}
4734
4735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4736pub struct CreateTrigger {
4737    pub(crate) syntax: SyntaxNode,
4738}
4739impl CreateTrigger {
4740    #[inline]
4741    pub fn call_expr(&self) -> Option<CallExpr> {
4742        support::child(&self.syntax)
4743    }
4744    #[inline]
4745    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4746        support::child(&self.syntax)
4747    }
4748    #[inline]
4749    pub fn from_table(&self) -> Option<FromTable> {
4750        support::child(&self.syntax)
4751    }
4752    #[inline]
4753    pub fn initially_deferred_constraint_option(
4754        &self,
4755    ) -> Option<InitiallyDeferredConstraintOption> {
4756        support::child(&self.syntax)
4757    }
4758    #[inline]
4759    pub fn initially_immediate_constraint_option(
4760        &self,
4761    ) -> Option<InitiallyImmediateConstraintOption> {
4762        support::child(&self.syntax)
4763    }
4764    #[inline]
4765    pub fn name(&self) -> Option<Name> {
4766        support::child(&self.syntax)
4767    }
4768    #[inline]
4769    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn on_table(&self) -> Option<OnTable> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn or_replace(&self) -> Option<OrReplace> {
4778        support::child(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn referencing(&self) -> Option<Referencing> {
4782        support::child(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn timing(&self) -> Option<Timing> {
4786        support::child(&self.syntax)
4787    }
4788    #[inline]
4789    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4790        support::child(&self.syntax)
4791    }
4792    #[inline]
4793    pub fn when_condition(&self) -> Option<WhenCondition> {
4794        support::child(&self.syntax)
4795    }
4796    #[inline]
4797    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4799    }
4800    #[inline]
4801    pub fn create_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4803    }
4804    #[inline]
4805    pub fn each_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::EACH_KW)
4807    }
4808    #[inline]
4809    pub fn execute_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4811    }
4812    #[inline]
4813    pub fn for_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::FOR_KW)
4815    }
4816    #[inline]
4817    pub fn function_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4819    }
4820    #[inline]
4821    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4823    }
4824    #[inline]
4825    pub fn row_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::ROW_KW)
4827    }
4828    #[inline]
4829    pub fn statement_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4831    }
4832    #[inline]
4833    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4835    }
4836}
4837
4838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4839pub struct CreateType {
4840    pub(crate) syntax: SyntaxNode,
4841}
4842impl CreateType {
4843    #[inline]
4844    pub fn attribute_list(&self) -> Option<AttributeList> {
4845        support::child(&self.syntax)
4846    }
4847    #[inline]
4848    pub fn column_list(&self) -> Option<ColumnList> {
4849        support::child(&self.syntax)
4850    }
4851    #[inline]
4852    pub fn path(&self) -> Option<Path> {
4853        support::child(&self.syntax)
4854    }
4855    #[inline]
4856    pub fn variant_list(&self) -> Option<VariantList> {
4857        support::child(&self.syntax)
4858    }
4859    #[inline]
4860    pub fn as_token(&self) -> Option<SyntaxToken> {
4861        support::token(&self.syntax, SyntaxKind::AS_KW)
4862    }
4863    #[inline]
4864    pub fn create_token(&self) -> Option<SyntaxToken> {
4865        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4866    }
4867    #[inline]
4868    pub fn enum_token(&self) -> Option<SyntaxToken> {
4869        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4870    }
4871    #[inline]
4872    pub fn range_token(&self) -> Option<SyntaxToken> {
4873        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4874    }
4875    #[inline]
4876    pub fn type_token(&self) -> Option<SyntaxToken> {
4877        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4878    }
4879}
4880
4881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4882pub struct CreateUser {
4883    pub(crate) syntax: SyntaxNode,
4884}
4885impl CreateUser {
4886    #[inline]
4887    pub fn name(&self) -> Option<Name> {
4888        support::child(&self.syntax)
4889    }
4890    #[inline]
4891    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4892        support::child(&self.syntax)
4893    }
4894    #[inline]
4895    pub fn create_token(&self) -> Option<SyntaxToken> {
4896        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4897    }
4898    #[inline]
4899    pub fn user_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::USER_KW)
4901    }
4902}
4903
4904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4905pub struct CreateUserMapping {
4906    pub(crate) syntax: SyntaxNode,
4907}
4908impl CreateUserMapping {
4909    #[inline]
4910    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4911        support::child(&self.syntax)
4912    }
4913    #[inline]
4914    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4915        support::child(&self.syntax)
4916    }
4917    #[inline]
4918    pub fn name_ref(&self) -> Option<NameRef> {
4919        support::child(&self.syntax)
4920    }
4921    #[inline]
4922    pub fn role(&self) -> Option<Role> {
4923        support::child(&self.syntax)
4924    }
4925    #[inline]
4926    pub fn create_token(&self) -> Option<SyntaxToken> {
4927        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4928    }
4929    #[inline]
4930    pub fn for_token(&self) -> Option<SyntaxToken> {
4931        support::token(&self.syntax, SyntaxKind::FOR_KW)
4932    }
4933    #[inline]
4934    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4935        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4936    }
4937    #[inline]
4938    pub fn server_token(&self) -> Option<SyntaxToken> {
4939        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4940    }
4941    #[inline]
4942    pub fn user_token(&self) -> Option<SyntaxToken> {
4943        support::token(&self.syntax, SyntaxKind::USER_KW)
4944    }
4945}
4946
4947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4948pub struct CreateView {
4949    pub(crate) syntax: SyntaxNode,
4950}
4951impl CreateView {
4952    #[inline]
4953    pub fn column_list(&self) -> Option<ColumnList> {
4954        support::child(&self.syntax)
4955    }
4956    #[inline]
4957    pub fn or_replace(&self) -> Option<OrReplace> {
4958        support::child(&self.syntax)
4959    }
4960    #[inline]
4961    pub fn path(&self) -> Option<Path> {
4962        support::child(&self.syntax)
4963    }
4964    #[inline]
4965    pub fn query(&self) -> Option<SelectVariant> {
4966        support::child(&self.syntax)
4967    }
4968    #[inline]
4969    pub fn with_params(&self) -> Option<WithParams> {
4970        support::child(&self.syntax)
4971    }
4972    #[inline]
4973    pub fn as_token(&self) -> Option<SyntaxToken> {
4974        support::token(&self.syntax, SyntaxKind::AS_KW)
4975    }
4976    #[inline]
4977    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
4978        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
4979    }
4980    #[inline]
4981    pub fn check_token(&self) -> Option<SyntaxToken> {
4982        support::token(&self.syntax, SyntaxKind::CHECK_KW)
4983    }
4984    #[inline]
4985    pub fn create_token(&self) -> Option<SyntaxToken> {
4986        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4987    }
4988    #[inline]
4989    pub fn local_token(&self) -> Option<SyntaxToken> {
4990        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4991    }
4992    #[inline]
4993    pub fn option_token(&self) -> Option<SyntaxToken> {
4994        support::token(&self.syntax, SyntaxKind::OPTION_KW)
4995    }
4996    #[inline]
4997    pub fn recursive_token(&self) -> Option<SyntaxToken> {
4998        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
4999    }
5000    #[inline]
5001    pub fn temp_token(&self) -> Option<SyntaxToken> {
5002        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5003    }
5004    #[inline]
5005    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5006        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5007    }
5008    #[inline]
5009    pub fn view_token(&self) -> Option<SyntaxToken> {
5010        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5011    }
5012    #[inline]
5013    pub fn with_token(&self) -> Option<SyntaxToken> {
5014        support::token(&self.syntax, SyntaxKind::WITH_KW)
5015    }
5016}
5017
5018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5019pub struct CustomOp {
5020    pub(crate) syntax: SyntaxNode,
5021}
5022impl CustomOp {
5023    #[inline]
5024    pub fn bang_token(&self) -> Option<SyntaxToken> {
5025        support::token(&self.syntax, SyntaxKind::BANG)
5026    }
5027    #[inline]
5028    pub fn pound_token(&self) -> Option<SyntaxToken> {
5029        support::token(&self.syntax, SyntaxKind::POUND)
5030    }
5031    #[inline]
5032    pub fn percent_token(&self) -> Option<SyntaxToken> {
5033        support::token(&self.syntax, SyntaxKind::PERCENT)
5034    }
5035    #[inline]
5036    pub fn amp_token(&self) -> Option<SyntaxToken> {
5037        support::token(&self.syntax, SyntaxKind::AMP)
5038    }
5039    #[inline]
5040    pub fn star_token(&self) -> Option<SyntaxToken> {
5041        support::token(&self.syntax, SyntaxKind::STAR)
5042    }
5043    #[inline]
5044    pub fn plus_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::PLUS)
5046    }
5047    #[inline]
5048    pub fn minus_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::MINUS)
5050    }
5051    #[inline]
5052    pub fn slash_token(&self) -> Option<SyntaxToken> {
5053        support::token(&self.syntax, SyntaxKind::SLASH)
5054    }
5055    #[inline]
5056    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5057        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5058    }
5059    #[inline]
5060    pub fn eq_token(&self) -> Option<SyntaxToken> {
5061        support::token(&self.syntax, SyntaxKind::EQ)
5062    }
5063    #[inline]
5064    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5065        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5066    }
5067    #[inline]
5068    pub fn question_token(&self) -> Option<SyntaxToken> {
5069        support::token(&self.syntax, SyntaxKind::QUESTION)
5070    }
5071    #[inline]
5072    pub fn at_token(&self) -> Option<SyntaxToken> {
5073        support::token(&self.syntax, SyntaxKind::AT)
5074    }
5075    #[inline]
5076    pub fn caret_token(&self) -> Option<SyntaxToken> {
5077        support::token(&self.syntax, SyntaxKind::CARET)
5078    }
5079    #[inline]
5080    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5081        support::token(&self.syntax, SyntaxKind::BACKTICK)
5082    }
5083    #[inline]
5084    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5085        support::token(&self.syntax, SyntaxKind::PIPE)
5086    }
5087    #[inline]
5088    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5089        support::token(&self.syntax, SyntaxKind::TILDE)
5090    }
5091}
5092
5093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5094pub struct Deallocate {
5095    pub(crate) syntax: SyntaxNode,
5096}
5097impl Deallocate {
5098    #[inline]
5099    pub fn name_ref(&self) -> Option<NameRef> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn all_token(&self) -> Option<SyntaxToken> {
5104        support::token(&self.syntax, SyntaxKind::ALL_KW)
5105    }
5106    #[inline]
5107    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5108        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5109    }
5110    #[inline]
5111    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5112        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5113    }
5114}
5115
5116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5117pub struct Declare {
5118    pub(crate) syntax: SyntaxNode,
5119}
5120impl Declare {
5121    #[inline]
5122    pub fn name(&self) -> Option<Name> {
5123        support::child(&self.syntax)
5124    }
5125    #[inline]
5126    pub fn query(&self) -> Option<SelectVariant> {
5127        support::child(&self.syntax)
5128    }
5129    #[inline]
5130    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5131        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5132    }
5133    #[inline]
5134    pub fn binary_token(&self) -> Option<SyntaxToken> {
5135        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5136    }
5137    #[inline]
5138    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5139        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5140    }
5141    #[inline]
5142    pub fn declare_token(&self) -> Option<SyntaxToken> {
5143        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5144    }
5145    #[inline]
5146    pub fn for_token(&self) -> Option<SyntaxToken> {
5147        support::token(&self.syntax, SyntaxKind::FOR_KW)
5148    }
5149    #[inline]
5150    pub fn hold_token(&self) -> Option<SyntaxToken> {
5151        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5152    }
5153    #[inline]
5154    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5155        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5156    }
5157    #[inline]
5158    pub fn no_token(&self) -> Option<SyntaxToken> {
5159        support::token(&self.syntax, SyntaxKind::NO_KW)
5160    }
5161    #[inline]
5162    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5163        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5164    }
5165    #[inline]
5166    pub fn with_token(&self) -> Option<SyntaxToken> {
5167        support::token(&self.syntax, SyntaxKind::WITH_KW)
5168    }
5169    #[inline]
5170    pub fn without_token(&self) -> Option<SyntaxToken> {
5171        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5172    }
5173}
5174
5175#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5176pub struct DefaultConstraint {
5177    pub(crate) syntax: SyntaxNode,
5178}
5179impl DefaultConstraint {
5180    #[inline]
5181    pub fn expr(&self) -> Option<Expr> {
5182        support::child(&self.syntax)
5183    }
5184    #[inline]
5185    pub fn name_ref(&self) -> Option<NameRef> {
5186        support::child(&self.syntax)
5187    }
5188    #[inline]
5189    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5190        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5191    }
5192    #[inline]
5193    pub fn default_token(&self) -> Option<SyntaxToken> {
5194        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5195    }
5196}
5197
5198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5199pub struct Deferrable {
5200    pub(crate) syntax: SyntaxNode,
5201}
5202impl Deferrable {
5203    #[inline]
5204    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5205        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5206    }
5207}
5208
5209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5210pub struct DeferrableConstraintOption {
5211    pub(crate) syntax: SyntaxNode,
5212}
5213impl DeferrableConstraintOption {
5214    #[inline]
5215    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5216        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5217    }
5218}
5219
5220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5221pub struct Delete {
5222    pub(crate) syntax: SyntaxNode,
5223}
5224impl Delete {
5225    #[inline]
5226    pub fn alias(&self) -> Option<Alias> {
5227        support::child(&self.syntax)
5228    }
5229    #[inline]
5230    pub fn relation_name(&self) -> Option<RelationName> {
5231        support::child(&self.syntax)
5232    }
5233    #[inline]
5234    pub fn returning_clause(&self) -> Option<ReturningClause> {
5235        support::child(&self.syntax)
5236    }
5237    #[inline]
5238    pub fn using_clause(&self) -> Option<UsingClause> {
5239        support::child(&self.syntax)
5240    }
5241    #[inline]
5242    pub fn where_clause(&self) -> Option<WhereClause> {
5243        support::child(&self.syntax)
5244    }
5245    #[inline]
5246    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5247        support::child(&self.syntax)
5248    }
5249    #[inline]
5250    pub fn with_clause(&self) -> Option<WithClause> {
5251        support::child(&self.syntax)
5252    }
5253    #[inline]
5254    pub fn delete_token(&self) -> Option<SyntaxToken> {
5255        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5256    }
5257    #[inline]
5258    pub fn from_token(&self) -> Option<SyntaxToken> {
5259        support::token(&self.syntax, SyntaxKind::FROM_KW)
5260    }
5261}
5262
5263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5264pub struct DeleteRows {
5265    pub(crate) syntax: SyntaxNode,
5266}
5267impl DeleteRows {
5268    #[inline]
5269    pub fn delete_token(&self) -> Option<SyntaxToken> {
5270        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5271    }
5272    #[inline]
5273    pub fn rows_token(&self) -> Option<SyntaxToken> {
5274        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5275    }
5276}
5277
5278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5279pub struct DependsOnExtension {
5280    pub(crate) syntax: SyntaxNode,
5281}
5282impl DependsOnExtension {
5283    #[inline]
5284    pub fn name_ref(&self) -> Option<NameRef> {
5285        support::child(&self.syntax)
5286    }
5287    #[inline]
5288    pub fn depends_token(&self) -> Option<SyntaxToken> {
5289        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5290    }
5291    #[inline]
5292    pub fn extension_token(&self) -> Option<SyntaxToken> {
5293        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5294    }
5295    #[inline]
5296    pub fn on_token(&self) -> Option<SyntaxToken> {
5297        support::token(&self.syntax, SyntaxKind::ON_KW)
5298    }
5299}
5300
5301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5302pub struct DetachPartition {
5303    pub(crate) syntax: SyntaxNode,
5304}
5305impl DetachPartition {
5306    #[inline]
5307    pub fn detach_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5309    }
5310    #[inline]
5311    pub fn partition_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5313    }
5314}
5315
5316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5317pub struct DisableRls {
5318    pub(crate) syntax: SyntaxNode,
5319}
5320impl DisableRls {
5321    #[inline]
5322    pub fn disable_token(&self) -> Option<SyntaxToken> {
5323        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5324    }
5325    #[inline]
5326    pub fn level_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5328    }
5329    #[inline]
5330    pub fn row_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::ROW_KW)
5332    }
5333    #[inline]
5334    pub fn security_token(&self) -> Option<SyntaxToken> {
5335        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5336    }
5337}
5338
5339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5340pub struct DisableRule {
5341    pub(crate) syntax: SyntaxNode,
5342}
5343impl DisableRule {
5344    #[inline]
5345    pub fn disable_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5347    }
5348    #[inline]
5349    pub fn rule_token(&self) -> Option<SyntaxToken> {
5350        support::token(&self.syntax, SyntaxKind::RULE_KW)
5351    }
5352}
5353
5354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5355pub struct DisableTrigger {
5356    pub(crate) syntax: SyntaxNode,
5357}
5358impl DisableTrigger {
5359    #[inline]
5360    pub fn disable_token(&self) -> Option<SyntaxToken> {
5361        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5362    }
5363    #[inline]
5364    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5365        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5366    }
5367}
5368
5369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5370pub struct Discard {
5371    pub(crate) syntax: SyntaxNode,
5372}
5373impl Discard {
5374    #[inline]
5375    pub fn all_token(&self) -> Option<SyntaxToken> {
5376        support::token(&self.syntax, SyntaxKind::ALL_KW)
5377    }
5378    #[inline]
5379    pub fn discard_token(&self) -> Option<SyntaxToken> {
5380        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5381    }
5382    #[inline]
5383    pub fn plans_token(&self) -> Option<SyntaxToken> {
5384        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5385    }
5386    #[inline]
5387    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5388        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5389    }
5390    #[inline]
5391    pub fn temp_token(&self) -> Option<SyntaxToken> {
5392        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5393    }
5394    #[inline]
5395    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5396        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5397    }
5398}
5399
5400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5401pub struct DistinctClause {
5402    pub(crate) syntax: SyntaxNode,
5403}
5404impl DistinctClause {
5405    #[inline]
5406    pub fn exprs(&self) -> AstChildren<Expr> {
5407        support::children(&self.syntax)
5408    }
5409    #[inline]
5410    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5411        support::token(&self.syntax, SyntaxKind::L_PAREN)
5412    }
5413    #[inline]
5414    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5415        support::token(&self.syntax, SyntaxKind::R_PAREN)
5416    }
5417    #[inline]
5418    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5419        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5420    }
5421    #[inline]
5422    pub fn on_token(&self) -> Option<SyntaxToken> {
5423        support::token(&self.syntax, SyntaxKind::ON_KW)
5424    }
5425}
5426
5427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5428pub struct Do {
5429    pub(crate) syntax: SyntaxNode,
5430}
5431impl Do {
5432    #[inline]
5433    pub fn do_token(&self) -> Option<SyntaxToken> {
5434        support::token(&self.syntax, SyntaxKind::DO_KW)
5435    }
5436}
5437
5438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5439pub struct DoubleType {
5440    pub(crate) syntax: SyntaxNode,
5441}
5442impl DoubleType {
5443    #[inline]
5444    pub fn double_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5446    }
5447    #[inline]
5448    pub fn precision_token(&self) -> Option<SyntaxToken> {
5449        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5450    }
5451}
5452
5453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5454pub struct Drop {
5455    pub(crate) syntax: SyntaxNode,
5456}
5457impl Drop {
5458    #[inline]
5459    pub fn drop_token(&self) -> Option<SyntaxToken> {
5460        support::token(&self.syntax, SyntaxKind::DROP_KW)
5461    }
5462}
5463
5464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5465pub struct DropAccessMethod {
5466    pub(crate) syntax: SyntaxNode,
5467}
5468impl DropAccessMethod {
5469    #[inline]
5470    pub fn if_exists(&self) -> Option<IfExists> {
5471        support::child(&self.syntax)
5472    }
5473    #[inline]
5474    pub fn name_ref(&self) -> Option<NameRef> {
5475        support::child(&self.syntax)
5476    }
5477    #[inline]
5478    pub fn access_token(&self) -> Option<SyntaxToken> {
5479        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5480    }
5481    #[inline]
5482    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5483        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5484    }
5485    #[inline]
5486    pub fn drop_token(&self) -> Option<SyntaxToken> {
5487        support::token(&self.syntax, SyntaxKind::DROP_KW)
5488    }
5489    #[inline]
5490    pub fn method_token(&self) -> Option<SyntaxToken> {
5491        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5492    }
5493    #[inline]
5494    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5495        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5496    }
5497}
5498
5499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5500pub struct DropAggregate {
5501    pub(crate) syntax: SyntaxNode,
5502}
5503impl DropAggregate {
5504    #[inline]
5505    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5506        support::children(&self.syntax)
5507    }
5508    #[inline]
5509    pub fn if_exists(&self) -> Option<IfExists> {
5510        support::child(&self.syntax)
5511    }
5512    #[inline]
5513    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5514        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5515    }
5516    #[inline]
5517    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5518        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5519    }
5520    #[inline]
5521    pub fn drop_token(&self) -> Option<SyntaxToken> {
5522        support::token(&self.syntax, SyntaxKind::DROP_KW)
5523    }
5524    #[inline]
5525    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5527    }
5528}
5529
5530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5531pub struct DropCast {
5532    pub(crate) syntax: SyntaxNode,
5533}
5534impl DropCast {
5535    #[inline]
5536    pub fn cast_sig(&self) -> Option<CastSig> {
5537        support::child(&self.syntax)
5538    }
5539    #[inline]
5540    pub fn if_exists(&self) -> Option<IfExists> {
5541        support::child(&self.syntax)
5542    }
5543    #[inline]
5544    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5545        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5546    }
5547    #[inline]
5548    pub fn cast_token(&self) -> Option<SyntaxToken> {
5549        support::token(&self.syntax, SyntaxKind::CAST_KW)
5550    }
5551    #[inline]
5552    pub fn drop_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::DROP_KW)
5554    }
5555    #[inline]
5556    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5557        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5558    }
5559}
5560
5561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5562pub struct DropCollation {
5563    pub(crate) syntax: SyntaxNode,
5564}
5565impl DropCollation {
5566    #[inline]
5567    pub fn if_exists(&self) -> Option<IfExists> {
5568        support::child(&self.syntax)
5569    }
5570    #[inline]
5571    pub fn paths(&self) -> AstChildren<Path> {
5572        support::children(&self.syntax)
5573    }
5574    #[inline]
5575    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5576        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5577    }
5578    #[inline]
5579    pub fn collation_token(&self) -> Option<SyntaxToken> {
5580        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5581    }
5582    #[inline]
5583    pub fn drop_token(&self) -> Option<SyntaxToken> {
5584        support::token(&self.syntax, SyntaxKind::DROP_KW)
5585    }
5586    #[inline]
5587    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5588        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5589    }
5590}
5591
5592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5593pub struct DropColumn {
5594    pub(crate) syntax: SyntaxNode,
5595}
5596impl DropColumn {
5597    #[inline]
5598    pub fn if_exists(&self) -> Option<IfExists> {
5599        support::child(&self.syntax)
5600    }
5601    #[inline]
5602    pub fn name_ref(&self) -> Option<NameRef> {
5603        support::child(&self.syntax)
5604    }
5605    #[inline]
5606    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5607        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5608    }
5609    #[inline]
5610    pub fn column_token(&self) -> Option<SyntaxToken> {
5611        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5612    }
5613    #[inline]
5614    pub fn drop_token(&self) -> Option<SyntaxToken> {
5615        support::token(&self.syntax, SyntaxKind::DROP_KW)
5616    }
5617    #[inline]
5618    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5619        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5620    }
5621}
5622
5623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5624pub struct DropConstraint {
5625    pub(crate) syntax: SyntaxNode,
5626}
5627impl DropConstraint {
5628    #[inline]
5629    pub fn if_exists(&self) -> Option<IfExists> {
5630        support::child(&self.syntax)
5631    }
5632    #[inline]
5633    pub fn name_ref(&self) -> Option<NameRef> {
5634        support::child(&self.syntax)
5635    }
5636    #[inline]
5637    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5638        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5639    }
5640    #[inline]
5641    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5642        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5643    }
5644    #[inline]
5645    pub fn drop_token(&self) -> Option<SyntaxToken> {
5646        support::token(&self.syntax, SyntaxKind::DROP_KW)
5647    }
5648    #[inline]
5649    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5650        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5651    }
5652}
5653
5654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5655pub struct DropConversion {
5656    pub(crate) syntax: SyntaxNode,
5657}
5658impl DropConversion {
5659    #[inline]
5660    pub fn if_exists(&self) -> Option<IfExists> {
5661        support::child(&self.syntax)
5662    }
5663    #[inline]
5664    pub fn path(&self) -> Option<Path> {
5665        support::child(&self.syntax)
5666    }
5667    #[inline]
5668    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5669        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5670    }
5671    #[inline]
5672    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5673        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5674    }
5675    #[inline]
5676    pub fn drop_token(&self) -> Option<SyntaxToken> {
5677        support::token(&self.syntax, SyntaxKind::DROP_KW)
5678    }
5679    #[inline]
5680    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5681        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5682    }
5683}
5684
5685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5686pub struct DropDatabase {
5687    pub(crate) syntax: SyntaxNode,
5688}
5689impl DropDatabase {
5690    #[inline]
5691    pub fn if_exists(&self) -> Option<IfExists> {
5692        support::child(&self.syntax)
5693    }
5694    #[inline]
5695    pub fn name_ref(&self) -> Option<NameRef> {
5696        support::child(&self.syntax)
5697    }
5698    #[inline]
5699    pub fn database_token(&self) -> Option<SyntaxToken> {
5700        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5701    }
5702    #[inline]
5703    pub fn drop_token(&self) -> Option<SyntaxToken> {
5704        support::token(&self.syntax, SyntaxKind::DROP_KW)
5705    }
5706}
5707
5708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5709pub struct DropDefault {
5710    pub(crate) syntax: SyntaxNode,
5711}
5712impl DropDefault {
5713    #[inline]
5714    pub fn default_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5716    }
5717    #[inline]
5718    pub fn drop_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::DROP_KW)
5720    }
5721}
5722
5723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5724pub struct DropDomain {
5725    pub(crate) syntax: SyntaxNode,
5726}
5727impl DropDomain {
5728    #[inline]
5729    pub fn if_exists(&self) -> Option<IfExists> {
5730        support::child(&self.syntax)
5731    }
5732    #[inline]
5733    pub fn paths(&self) -> AstChildren<Path> {
5734        support::children(&self.syntax)
5735    }
5736    #[inline]
5737    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5738        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5739    }
5740    #[inline]
5741    pub fn domain_token(&self) -> Option<SyntaxToken> {
5742        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5743    }
5744    #[inline]
5745    pub fn drop_token(&self) -> Option<SyntaxToken> {
5746        support::token(&self.syntax, SyntaxKind::DROP_KW)
5747    }
5748    #[inline]
5749    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5750        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5751    }
5752}
5753
5754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5755pub struct DropEventTrigger {
5756    pub(crate) syntax: SyntaxNode,
5757}
5758impl DropEventTrigger {
5759    #[inline]
5760    pub fn if_exists(&self) -> Option<IfExists> {
5761        support::child(&self.syntax)
5762    }
5763    #[inline]
5764    pub fn name_ref(&self) -> Option<NameRef> {
5765        support::child(&self.syntax)
5766    }
5767    #[inline]
5768    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5769        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5770    }
5771    #[inline]
5772    pub fn drop_token(&self) -> Option<SyntaxToken> {
5773        support::token(&self.syntax, SyntaxKind::DROP_KW)
5774    }
5775    #[inline]
5776    pub fn event_token(&self) -> Option<SyntaxToken> {
5777        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5778    }
5779    #[inline]
5780    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5781        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5782    }
5783    #[inline]
5784    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5785        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5786    }
5787}
5788
5789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5790pub struct DropExpression {
5791    pub(crate) syntax: SyntaxNode,
5792}
5793impl DropExpression {
5794    #[inline]
5795    pub fn if_exists(&self) -> Option<IfExists> {
5796        support::child(&self.syntax)
5797    }
5798    #[inline]
5799    pub fn drop_token(&self) -> Option<SyntaxToken> {
5800        support::token(&self.syntax, SyntaxKind::DROP_KW)
5801    }
5802    #[inline]
5803    pub fn expression_token(&self) -> Option<SyntaxToken> {
5804        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5805    }
5806}
5807
5808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5809pub struct DropExtension {
5810    pub(crate) syntax: SyntaxNode,
5811}
5812impl DropExtension {
5813    #[inline]
5814    pub fn if_exists(&self) -> Option<IfExists> {
5815        support::child(&self.syntax)
5816    }
5817    #[inline]
5818    pub fn name_refs(&self) -> AstChildren<NameRef> {
5819        support::children(&self.syntax)
5820    }
5821    #[inline]
5822    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5823        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5824    }
5825    #[inline]
5826    pub fn drop_token(&self) -> Option<SyntaxToken> {
5827        support::token(&self.syntax, SyntaxKind::DROP_KW)
5828    }
5829    #[inline]
5830    pub fn extension_token(&self) -> Option<SyntaxToken> {
5831        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5832    }
5833    #[inline]
5834    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5835        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5836    }
5837}
5838
5839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5840pub struct DropForeignDataWrapper {
5841    pub(crate) syntax: SyntaxNode,
5842}
5843impl DropForeignDataWrapper {
5844    #[inline]
5845    pub fn if_exists(&self) -> Option<IfExists> {
5846        support::child(&self.syntax)
5847    }
5848    #[inline]
5849    pub fn name_refs(&self) -> AstChildren<NameRef> {
5850        support::children(&self.syntax)
5851    }
5852    #[inline]
5853    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5854        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5855    }
5856    #[inline]
5857    pub fn data_token(&self) -> Option<SyntaxToken> {
5858        support::token(&self.syntax, SyntaxKind::DATA_KW)
5859    }
5860    #[inline]
5861    pub fn drop_token(&self) -> Option<SyntaxToken> {
5862        support::token(&self.syntax, SyntaxKind::DROP_KW)
5863    }
5864    #[inline]
5865    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5866        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5867    }
5868    #[inline]
5869    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5870        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5871    }
5872    #[inline]
5873    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5874        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5875    }
5876}
5877
5878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5879pub struct DropForeignTable {
5880    pub(crate) syntax: SyntaxNode,
5881}
5882impl DropForeignTable {
5883    #[inline]
5884    pub fn if_exists(&self) -> Option<IfExists> {
5885        support::child(&self.syntax)
5886    }
5887    #[inline]
5888    pub fn path(&self) -> Option<Path> {
5889        support::child(&self.syntax)
5890    }
5891    #[inline]
5892    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5893        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5894    }
5895    #[inline]
5896    pub fn drop_token(&self) -> Option<SyntaxToken> {
5897        support::token(&self.syntax, SyntaxKind::DROP_KW)
5898    }
5899    #[inline]
5900    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5901        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5902    }
5903    #[inline]
5904    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5905        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5906    }
5907    #[inline]
5908    pub fn table_token(&self) -> Option<SyntaxToken> {
5909        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5910    }
5911}
5912
5913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5914pub struct DropFunction {
5915    pub(crate) syntax: SyntaxNode,
5916}
5917impl DropFunction {
5918    #[inline]
5919    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5920        support::child(&self.syntax)
5921    }
5922    #[inline]
5923    pub fn if_exists(&self) -> Option<IfExists> {
5924        support::child(&self.syntax)
5925    }
5926    #[inline]
5927    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5928        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5929    }
5930    #[inline]
5931    pub fn drop_token(&self) -> Option<SyntaxToken> {
5932        support::token(&self.syntax, SyntaxKind::DROP_KW)
5933    }
5934    #[inline]
5935    pub fn function_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5937    }
5938    #[inline]
5939    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5940        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5941    }
5942}
5943
5944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5945pub struct DropGroup {
5946    pub(crate) syntax: SyntaxNode,
5947}
5948impl DropGroup {
5949    #[inline]
5950    pub fn if_exists(&self) -> Option<IfExists> {
5951        support::child(&self.syntax)
5952    }
5953    #[inline]
5954    pub fn name_refs(&self) -> AstChildren<NameRef> {
5955        support::children(&self.syntax)
5956    }
5957    #[inline]
5958    pub fn drop_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::DROP_KW)
5960    }
5961    #[inline]
5962    pub fn group_token(&self) -> Option<SyntaxToken> {
5963        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5964    }
5965}
5966
5967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5968pub struct DropIdentity {
5969    pub(crate) syntax: SyntaxNode,
5970}
5971impl DropIdentity {
5972    #[inline]
5973    pub fn if_exists(&self) -> Option<IfExists> {
5974        support::child(&self.syntax)
5975    }
5976    #[inline]
5977    pub fn drop_token(&self) -> Option<SyntaxToken> {
5978        support::token(&self.syntax, SyntaxKind::DROP_KW)
5979    }
5980    #[inline]
5981    pub fn identity_token(&self) -> Option<SyntaxToken> {
5982        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5983    }
5984}
5985
5986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5987pub struct DropIndex {
5988    pub(crate) syntax: SyntaxNode,
5989}
5990impl DropIndex {
5991    #[inline]
5992    pub fn if_exists(&self) -> Option<IfExists> {
5993        support::child(&self.syntax)
5994    }
5995    #[inline]
5996    pub fn paths(&self) -> AstChildren<Path> {
5997        support::children(&self.syntax)
5998    }
5999    #[inline]
6000    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6001        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6002    }
6003    #[inline]
6004    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6005        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6006    }
6007    #[inline]
6008    pub fn drop_token(&self) -> Option<SyntaxToken> {
6009        support::token(&self.syntax, SyntaxKind::DROP_KW)
6010    }
6011    #[inline]
6012    pub fn index_token(&self) -> Option<SyntaxToken> {
6013        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6014    }
6015    #[inline]
6016    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6017        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6018    }
6019}
6020
6021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6022pub struct DropLanguage {
6023    pub(crate) syntax: SyntaxNode,
6024}
6025impl DropLanguage {
6026    #[inline]
6027    pub fn if_exists(&self) -> Option<IfExists> {
6028        support::child(&self.syntax)
6029    }
6030    #[inline]
6031    pub fn name_ref(&self) -> Option<NameRef> {
6032        support::child(&self.syntax)
6033    }
6034    #[inline]
6035    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6037    }
6038    #[inline]
6039    pub fn drop_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::DROP_KW)
6041    }
6042    #[inline]
6043    pub fn language_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6045    }
6046    #[inline]
6047    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6049    }
6050    #[inline]
6051    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6052        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6053    }
6054}
6055
6056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6057pub struct DropMaterializedView {
6058    pub(crate) syntax: SyntaxNode,
6059}
6060impl DropMaterializedView {
6061    #[inline]
6062    pub fn if_exists(&self) -> Option<IfExists> {
6063        support::child(&self.syntax)
6064    }
6065    #[inline]
6066    pub fn paths(&self) -> AstChildren<Path> {
6067        support::children(&self.syntax)
6068    }
6069    #[inline]
6070    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6071        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6072    }
6073    #[inline]
6074    pub fn drop_token(&self) -> Option<SyntaxToken> {
6075        support::token(&self.syntax, SyntaxKind::DROP_KW)
6076    }
6077    #[inline]
6078    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6079        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6080    }
6081    #[inline]
6082    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6083        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6084    }
6085    #[inline]
6086    pub fn view_token(&self) -> Option<SyntaxToken> {
6087        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6088    }
6089}
6090
6091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6092pub struct DropNotNull {
6093    pub(crate) syntax: SyntaxNode,
6094}
6095impl DropNotNull {
6096    #[inline]
6097    pub fn drop_token(&self) -> Option<SyntaxToken> {
6098        support::token(&self.syntax, SyntaxKind::DROP_KW)
6099    }
6100    #[inline]
6101    pub fn not_token(&self) -> Option<SyntaxToken> {
6102        support::token(&self.syntax, SyntaxKind::NOT_KW)
6103    }
6104    #[inline]
6105    pub fn null_token(&self) -> Option<SyntaxToken> {
6106        support::token(&self.syntax, SyntaxKind::NULL_KW)
6107    }
6108}
6109
6110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6111pub struct DropOpClassOption {
6112    pub(crate) syntax: SyntaxNode,
6113}
6114impl DropOpClassOption {
6115    #[inline]
6116    pub fn literal(&self) -> Option<Literal> {
6117        support::child(&self.syntax)
6118    }
6119    #[inline]
6120    pub fn param_list(&self) -> Option<ParamList> {
6121        support::child(&self.syntax)
6122    }
6123    #[inline]
6124    pub fn function_token(&self) -> Option<SyntaxToken> {
6125        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6126    }
6127    #[inline]
6128    pub fn operator_token(&self) -> Option<SyntaxToken> {
6129        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6130    }
6131}
6132
6133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6134pub struct DropOpClassOptionList {
6135    pub(crate) syntax: SyntaxNode,
6136}
6137impl DropOpClassOptionList {
6138    #[inline]
6139    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6140        support::children(&self.syntax)
6141    }
6142}
6143
6144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6145pub struct DropOpClassOptions {
6146    pub(crate) syntax: SyntaxNode,
6147}
6148impl DropOpClassOptions {
6149    #[inline]
6150    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6151        support::child(&self.syntax)
6152    }
6153    #[inline]
6154    pub fn drop_token(&self) -> Option<SyntaxToken> {
6155        support::token(&self.syntax, SyntaxKind::DROP_KW)
6156    }
6157}
6158
6159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6160pub struct DropOperator {
6161    pub(crate) syntax: SyntaxNode,
6162}
6163impl DropOperator {
6164    #[inline]
6165    pub fn if_exists(&self) -> Option<IfExists> {
6166        support::child(&self.syntax)
6167    }
6168    #[inline]
6169    pub fn op_sig_list(&self) -> Option<OpSigList> {
6170        support::child(&self.syntax)
6171    }
6172    #[inline]
6173    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6174        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6175    }
6176    #[inline]
6177    pub fn drop_token(&self) -> Option<SyntaxToken> {
6178        support::token(&self.syntax, SyntaxKind::DROP_KW)
6179    }
6180    #[inline]
6181    pub fn operator_token(&self) -> Option<SyntaxToken> {
6182        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6183    }
6184    #[inline]
6185    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6186        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6187    }
6188}
6189
6190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6191pub struct DropOperatorClass {
6192    pub(crate) syntax: SyntaxNode,
6193}
6194impl DropOperatorClass {
6195    #[inline]
6196    pub fn if_exists(&self) -> Option<IfExists> {
6197        support::child(&self.syntax)
6198    }
6199    #[inline]
6200    pub fn name_ref(&self) -> Option<NameRef> {
6201        support::child(&self.syntax)
6202    }
6203    #[inline]
6204    pub fn path(&self) -> Option<Path> {
6205        support::child(&self.syntax)
6206    }
6207    #[inline]
6208    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6209        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6210    }
6211    #[inline]
6212    pub fn class_token(&self) -> Option<SyntaxToken> {
6213        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6214    }
6215    #[inline]
6216    pub fn drop_token(&self) -> Option<SyntaxToken> {
6217        support::token(&self.syntax, SyntaxKind::DROP_KW)
6218    }
6219    #[inline]
6220    pub fn operator_token(&self) -> Option<SyntaxToken> {
6221        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6222    }
6223    #[inline]
6224    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6225        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6226    }
6227    #[inline]
6228    pub fn using_token(&self) -> Option<SyntaxToken> {
6229        support::token(&self.syntax, SyntaxKind::USING_KW)
6230    }
6231}
6232
6233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6234pub struct DropOperatorFamily {
6235    pub(crate) syntax: SyntaxNode,
6236}
6237impl DropOperatorFamily {
6238    #[inline]
6239    pub fn if_exists(&self) -> Option<IfExists> {
6240        support::child(&self.syntax)
6241    }
6242    #[inline]
6243    pub fn name_ref(&self) -> Option<NameRef> {
6244        support::child(&self.syntax)
6245    }
6246    #[inline]
6247    pub fn path(&self) -> Option<Path> {
6248        support::child(&self.syntax)
6249    }
6250    #[inline]
6251    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6252        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6253    }
6254    #[inline]
6255    pub fn drop_token(&self) -> Option<SyntaxToken> {
6256        support::token(&self.syntax, SyntaxKind::DROP_KW)
6257    }
6258    #[inline]
6259    pub fn family_token(&self) -> Option<SyntaxToken> {
6260        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6261    }
6262    #[inline]
6263    pub fn operator_token(&self) -> Option<SyntaxToken> {
6264        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6265    }
6266    #[inline]
6267    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6268        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6269    }
6270    #[inline]
6271    pub fn using_token(&self) -> Option<SyntaxToken> {
6272        support::token(&self.syntax, SyntaxKind::USING_KW)
6273    }
6274}
6275
6276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6277pub struct DropOwned {
6278    pub(crate) syntax: SyntaxNode,
6279}
6280impl DropOwned {
6281    #[inline]
6282    pub fn role_list(&self) -> Option<RoleList> {
6283        support::child(&self.syntax)
6284    }
6285    #[inline]
6286    pub fn by_token(&self) -> Option<SyntaxToken> {
6287        support::token(&self.syntax, SyntaxKind::BY_KW)
6288    }
6289    #[inline]
6290    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6291        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6292    }
6293    #[inline]
6294    pub fn drop_token(&self) -> Option<SyntaxToken> {
6295        support::token(&self.syntax, SyntaxKind::DROP_KW)
6296    }
6297    #[inline]
6298    pub fn owned_token(&self) -> Option<SyntaxToken> {
6299        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6300    }
6301    #[inline]
6302    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6303        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6304    }
6305}
6306
6307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6308pub struct DropPolicy {
6309    pub(crate) syntax: SyntaxNode,
6310}
6311impl DropPolicy {
6312    #[inline]
6313    pub fn if_exists(&self) -> Option<IfExists> {
6314        support::child(&self.syntax)
6315    }
6316    #[inline]
6317    pub fn name_ref(&self) -> Option<NameRef> {
6318        support::child(&self.syntax)
6319    }
6320    #[inline]
6321    pub fn on_table(&self) -> Option<OnTable> {
6322        support::child(&self.syntax)
6323    }
6324    #[inline]
6325    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6326        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6327    }
6328    #[inline]
6329    pub fn drop_token(&self) -> Option<SyntaxToken> {
6330        support::token(&self.syntax, SyntaxKind::DROP_KW)
6331    }
6332    #[inline]
6333    pub fn policy_token(&self) -> Option<SyntaxToken> {
6334        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6335    }
6336    #[inline]
6337    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6338        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6339    }
6340}
6341
6342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6343pub struct DropProcedure {
6344    pub(crate) syntax: SyntaxNode,
6345}
6346impl DropProcedure {
6347    #[inline]
6348    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6349        support::child(&self.syntax)
6350    }
6351    #[inline]
6352    pub fn if_exists(&self) -> Option<IfExists> {
6353        support::child(&self.syntax)
6354    }
6355    #[inline]
6356    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6357        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6358    }
6359    #[inline]
6360    pub fn drop_token(&self) -> Option<SyntaxToken> {
6361        support::token(&self.syntax, SyntaxKind::DROP_KW)
6362    }
6363    #[inline]
6364    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6365        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6366    }
6367    #[inline]
6368    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6369        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6370    }
6371}
6372
6373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6374pub struct DropPublication {
6375    pub(crate) syntax: SyntaxNode,
6376}
6377impl DropPublication {
6378    #[inline]
6379    pub fn if_exists(&self) -> Option<IfExists> {
6380        support::child(&self.syntax)
6381    }
6382    #[inline]
6383    pub fn name_refs(&self) -> AstChildren<NameRef> {
6384        support::children(&self.syntax)
6385    }
6386    #[inline]
6387    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6388        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6389    }
6390    #[inline]
6391    pub fn drop_token(&self) -> Option<SyntaxToken> {
6392        support::token(&self.syntax, SyntaxKind::DROP_KW)
6393    }
6394    #[inline]
6395    pub fn publication_token(&self) -> Option<SyntaxToken> {
6396        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6397    }
6398    #[inline]
6399    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6400        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6401    }
6402}
6403
6404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6405pub struct DropRole {
6406    pub(crate) syntax: SyntaxNode,
6407}
6408impl DropRole {
6409    #[inline]
6410    pub fn if_exists(&self) -> Option<IfExists> {
6411        support::child(&self.syntax)
6412    }
6413    #[inline]
6414    pub fn name_refs(&self) -> AstChildren<NameRef> {
6415        support::children(&self.syntax)
6416    }
6417    #[inline]
6418    pub fn drop_token(&self) -> Option<SyntaxToken> {
6419        support::token(&self.syntax, SyntaxKind::DROP_KW)
6420    }
6421    #[inline]
6422    pub fn role_token(&self) -> Option<SyntaxToken> {
6423        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6424    }
6425}
6426
6427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6428pub struct DropRoutine {
6429    pub(crate) syntax: SyntaxNode,
6430}
6431impl DropRoutine {
6432    #[inline]
6433    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6434        support::child(&self.syntax)
6435    }
6436    #[inline]
6437    pub fn if_exists(&self) -> Option<IfExists> {
6438        support::child(&self.syntax)
6439    }
6440    #[inline]
6441    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6442        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6443    }
6444    #[inline]
6445    pub fn drop_token(&self) -> Option<SyntaxToken> {
6446        support::token(&self.syntax, SyntaxKind::DROP_KW)
6447    }
6448    #[inline]
6449    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6450        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6451    }
6452    #[inline]
6453    pub fn routine_token(&self) -> Option<SyntaxToken> {
6454        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6455    }
6456}
6457
6458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6459pub struct DropRule {
6460    pub(crate) syntax: SyntaxNode,
6461}
6462impl DropRule {
6463    #[inline]
6464    pub fn if_exists(&self) -> Option<IfExists> {
6465        support::child(&self.syntax)
6466    }
6467    #[inline]
6468    pub fn name_ref(&self) -> Option<NameRef> {
6469        support::child(&self.syntax)
6470    }
6471    #[inline]
6472    pub fn on_table(&self) -> Option<OnTable> {
6473        support::child(&self.syntax)
6474    }
6475    #[inline]
6476    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6477        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6478    }
6479    #[inline]
6480    pub fn drop_token(&self) -> Option<SyntaxToken> {
6481        support::token(&self.syntax, SyntaxKind::DROP_KW)
6482    }
6483    #[inline]
6484    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6485        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6486    }
6487    #[inline]
6488    pub fn rule_token(&self) -> Option<SyntaxToken> {
6489        support::token(&self.syntax, SyntaxKind::RULE_KW)
6490    }
6491}
6492
6493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6494pub struct DropSchema {
6495    pub(crate) syntax: SyntaxNode,
6496}
6497impl DropSchema {
6498    #[inline]
6499    pub fn if_exists(&self) -> Option<IfExists> {
6500        support::child(&self.syntax)
6501    }
6502    #[inline]
6503    pub fn name_refs(&self) -> AstChildren<NameRef> {
6504        support::children(&self.syntax)
6505    }
6506    #[inline]
6507    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6508        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6509    }
6510    #[inline]
6511    pub fn drop_token(&self) -> Option<SyntaxToken> {
6512        support::token(&self.syntax, SyntaxKind::DROP_KW)
6513    }
6514    #[inline]
6515    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6516        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6517    }
6518    #[inline]
6519    pub fn schema_token(&self) -> Option<SyntaxToken> {
6520        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6521    }
6522}
6523
6524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6525pub struct DropSequence {
6526    pub(crate) syntax: SyntaxNode,
6527}
6528impl DropSequence {
6529    #[inline]
6530    pub fn if_exists(&self) -> Option<IfExists> {
6531        support::child(&self.syntax)
6532    }
6533    #[inline]
6534    pub fn paths(&self) -> AstChildren<Path> {
6535        support::children(&self.syntax)
6536    }
6537    #[inline]
6538    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6539        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6540    }
6541    #[inline]
6542    pub fn drop_token(&self) -> Option<SyntaxToken> {
6543        support::token(&self.syntax, SyntaxKind::DROP_KW)
6544    }
6545    #[inline]
6546    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6547        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6548    }
6549    #[inline]
6550    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6551        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6552    }
6553}
6554
6555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6556pub struct DropServer {
6557    pub(crate) syntax: SyntaxNode,
6558}
6559impl DropServer {
6560    #[inline]
6561    pub fn if_exists(&self) -> Option<IfExists> {
6562        support::child(&self.syntax)
6563    }
6564    #[inline]
6565    pub fn name_ref(&self) -> Option<NameRef> {
6566        support::child(&self.syntax)
6567    }
6568    #[inline]
6569    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6570        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6571    }
6572    #[inline]
6573    pub fn drop_token(&self) -> Option<SyntaxToken> {
6574        support::token(&self.syntax, SyntaxKind::DROP_KW)
6575    }
6576    #[inline]
6577    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6578        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6579    }
6580    #[inline]
6581    pub fn server_token(&self) -> Option<SyntaxToken> {
6582        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6583    }
6584}
6585
6586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6587pub struct DropStatistics {
6588    pub(crate) syntax: SyntaxNode,
6589}
6590impl DropStatistics {
6591    #[inline]
6592    pub fn if_exists(&self) -> Option<IfExists> {
6593        support::child(&self.syntax)
6594    }
6595    #[inline]
6596    pub fn paths(&self) -> AstChildren<Path> {
6597        support::children(&self.syntax)
6598    }
6599    #[inline]
6600    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6601        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6602    }
6603    #[inline]
6604    pub fn drop_token(&self) -> Option<SyntaxToken> {
6605        support::token(&self.syntax, SyntaxKind::DROP_KW)
6606    }
6607    #[inline]
6608    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6609        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6610    }
6611    #[inline]
6612    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6613        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6614    }
6615}
6616
6617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6618pub struct DropSubscription {
6619    pub(crate) syntax: SyntaxNode,
6620}
6621impl DropSubscription {
6622    #[inline]
6623    pub fn if_exists(&self) -> Option<IfExists> {
6624        support::child(&self.syntax)
6625    }
6626    #[inline]
6627    pub fn name_ref(&self) -> Option<NameRef> {
6628        support::child(&self.syntax)
6629    }
6630    #[inline]
6631    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6632        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6633    }
6634    #[inline]
6635    pub fn drop_token(&self) -> Option<SyntaxToken> {
6636        support::token(&self.syntax, SyntaxKind::DROP_KW)
6637    }
6638    #[inline]
6639    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6640        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6641    }
6642    #[inline]
6643    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6644        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6645    }
6646}
6647
6648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6649pub struct DropTable {
6650    pub(crate) syntax: SyntaxNode,
6651}
6652impl DropTable {
6653    #[inline]
6654    pub fn if_exists(&self) -> Option<IfExists> {
6655        support::child(&self.syntax)
6656    }
6657    #[inline]
6658    pub fn path(&self) -> Option<Path> {
6659        support::child(&self.syntax)
6660    }
6661    #[inline]
6662    pub fn comma_token(&self) -> Option<SyntaxToken> {
6663        support::token(&self.syntax, SyntaxKind::COMMA)
6664    }
6665    #[inline]
6666    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6667        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6668    }
6669    #[inline]
6670    pub fn drop_token(&self) -> Option<SyntaxToken> {
6671        support::token(&self.syntax, SyntaxKind::DROP_KW)
6672    }
6673    #[inline]
6674    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6675        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6676    }
6677    #[inline]
6678    pub fn table_token(&self) -> Option<SyntaxToken> {
6679        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6680    }
6681}
6682
6683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6684pub struct DropTablespace {
6685    pub(crate) syntax: SyntaxNode,
6686}
6687impl DropTablespace {
6688    #[inline]
6689    pub fn if_exists(&self) -> Option<IfExists> {
6690        support::child(&self.syntax)
6691    }
6692    #[inline]
6693    pub fn name_ref(&self) -> Option<NameRef> {
6694        support::child(&self.syntax)
6695    }
6696    #[inline]
6697    pub fn drop_token(&self) -> Option<SyntaxToken> {
6698        support::token(&self.syntax, SyntaxKind::DROP_KW)
6699    }
6700    #[inline]
6701    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6702        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6703    }
6704}
6705
6706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6707pub struct DropTextSearchConfig {
6708    pub(crate) syntax: SyntaxNode,
6709}
6710impl DropTextSearchConfig {
6711    #[inline]
6712    pub fn if_exists(&self) -> Option<IfExists> {
6713        support::child(&self.syntax)
6714    }
6715    #[inline]
6716    pub fn path(&self) -> Option<Path> {
6717        support::child(&self.syntax)
6718    }
6719    #[inline]
6720    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6721        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6722    }
6723    #[inline]
6724    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6725        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6726    }
6727    #[inline]
6728    pub fn drop_token(&self) -> Option<SyntaxToken> {
6729        support::token(&self.syntax, SyntaxKind::DROP_KW)
6730    }
6731    #[inline]
6732    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6733        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6734    }
6735    #[inline]
6736    pub fn search_token(&self) -> Option<SyntaxToken> {
6737        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6738    }
6739    #[inline]
6740    pub fn text_token(&self) -> Option<SyntaxToken> {
6741        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6742    }
6743}
6744
6745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6746pub struct DropTextSearchDict {
6747    pub(crate) syntax: SyntaxNode,
6748}
6749impl DropTextSearchDict {
6750    #[inline]
6751    pub fn if_exists(&self) -> Option<IfExists> {
6752        support::child(&self.syntax)
6753    }
6754    #[inline]
6755    pub fn path(&self) -> Option<Path> {
6756        support::child(&self.syntax)
6757    }
6758    #[inline]
6759    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6760        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6761    }
6762    #[inline]
6763    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6764        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6765    }
6766    #[inline]
6767    pub fn drop_token(&self) -> Option<SyntaxToken> {
6768        support::token(&self.syntax, SyntaxKind::DROP_KW)
6769    }
6770    #[inline]
6771    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6772        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6773    }
6774    #[inline]
6775    pub fn search_token(&self) -> Option<SyntaxToken> {
6776        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6777    }
6778    #[inline]
6779    pub fn text_token(&self) -> Option<SyntaxToken> {
6780        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6781    }
6782}
6783
6784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6785pub struct DropTextSearchParser {
6786    pub(crate) syntax: SyntaxNode,
6787}
6788impl DropTextSearchParser {
6789    #[inline]
6790    pub fn if_exists(&self) -> Option<IfExists> {
6791        support::child(&self.syntax)
6792    }
6793    #[inline]
6794    pub fn path(&self) -> Option<Path> {
6795        support::child(&self.syntax)
6796    }
6797    #[inline]
6798    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6799        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6800    }
6801    #[inline]
6802    pub fn drop_token(&self) -> Option<SyntaxToken> {
6803        support::token(&self.syntax, SyntaxKind::DROP_KW)
6804    }
6805    #[inline]
6806    pub fn parser_token(&self) -> Option<SyntaxToken> {
6807        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6808    }
6809    #[inline]
6810    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6811        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6812    }
6813    #[inline]
6814    pub fn search_token(&self) -> Option<SyntaxToken> {
6815        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6816    }
6817    #[inline]
6818    pub fn text_token(&self) -> Option<SyntaxToken> {
6819        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6820    }
6821}
6822
6823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6824pub struct DropTextSearchTemplate {
6825    pub(crate) syntax: SyntaxNode,
6826}
6827impl DropTextSearchTemplate {
6828    #[inline]
6829    pub fn if_exists(&self) -> Option<IfExists> {
6830        support::child(&self.syntax)
6831    }
6832    #[inline]
6833    pub fn path(&self) -> Option<Path> {
6834        support::child(&self.syntax)
6835    }
6836    #[inline]
6837    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6838        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6839    }
6840    #[inline]
6841    pub fn drop_token(&self) -> Option<SyntaxToken> {
6842        support::token(&self.syntax, SyntaxKind::DROP_KW)
6843    }
6844    #[inline]
6845    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6846        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6847    }
6848    #[inline]
6849    pub fn search_token(&self) -> Option<SyntaxToken> {
6850        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6851    }
6852    #[inline]
6853    pub fn template_token(&self) -> Option<SyntaxToken> {
6854        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6855    }
6856    #[inline]
6857    pub fn text_token(&self) -> Option<SyntaxToken> {
6858        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6859    }
6860}
6861
6862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6863pub struct DropTransform {
6864    pub(crate) syntax: SyntaxNode,
6865}
6866impl DropTransform {
6867    #[inline]
6868    pub fn if_exists(&self) -> Option<IfExists> {
6869        support::child(&self.syntax)
6870    }
6871    #[inline]
6872    pub fn language(&self) -> Option<NameRef> {
6873        support::child(&self.syntax)
6874    }
6875    #[inline]
6876    pub fn ty(&self) -> Option<Type> {
6877        support::child(&self.syntax)
6878    }
6879    #[inline]
6880    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6881        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6882    }
6883    #[inline]
6884    pub fn drop_token(&self) -> Option<SyntaxToken> {
6885        support::token(&self.syntax, SyntaxKind::DROP_KW)
6886    }
6887    #[inline]
6888    pub fn for_token(&self) -> Option<SyntaxToken> {
6889        support::token(&self.syntax, SyntaxKind::FOR_KW)
6890    }
6891    #[inline]
6892    pub fn language_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6894    }
6895    #[inline]
6896    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6897        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6898    }
6899    #[inline]
6900    pub fn transform_token(&self) -> Option<SyntaxToken> {
6901        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6902    }
6903}
6904
6905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6906pub struct DropTrigger {
6907    pub(crate) syntax: SyntaxNode,
6908}
6909impl DropTrigger {
6910    #[inline]
6911    pub fn if_exists(&self) -> Option<IfExists> {
6912        support::child(&self.syntax)
6913    }
6914    #[inline]
6915    pub fn on_table(&self) -> Option<OnTable> {
6916        support::child(&self.syntax)
6917    }
6918    #[inline]
6919    pub fn path(&self) -> Option<Path> {
6920        support::child(&self.syntax)
6921    }
6922    #[inline]
6923    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6924        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6925    }
6926    #[inline]
6927    pub fn drop_token(&self) -> Option<SyntaxToken> {
6928        support::token(&self.syntax, SyntaxKind::DROP_KW)
6929    }
6930    #[inline]
6931    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6932        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6933    }
6934    #[inline]
6935    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6936        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6937    }
6938}
6939
6940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6941pub struct DropType {
6942    pub(crate) syntax: SyntaxNode,
6943}
6944impl DropType {
6945    #[inline]
6946    pub fn if_exists(&self) -> Option<IfExists> {
6947        support::child(&self.syntax)
6948    }
6949    #[inline]
6950    pub fn paths(&self) -> AstChildren<Path> {
6951        support::children(&self.syntax)
6952    }
6953    #[inline]
6954    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6955        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6956    }
6957    #[inline]
6958    pub fn drop_token(&self) -> Option<SyntaxToken> {
6959        support::token(&self.syntax, SyntaxKind::DROP_KW)
6960    }
6961    #[inline]
6962    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6963        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6964    }
6965    #[inline]
6966    pub fn type_token(&self) -> Option<SyntaxToken> {
6967        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6968    }
6969}
6970
6971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6972pub struct DropUser {
6973    pub(crate) syntax: SyntaxNode,
6974}
6975impl DropUser {
6976    #[inline]
6977    pub fn if_exists(&self) -> Option<IfExists> {
6978        support::child(&self.syntax)
6979    }
6980    #[inline]
6981    pub fn name_refs(&self) -> AstChildren<NameRef> {
6982        support::children(&self.syntax)
6983    }
6984    #[inline]
6985    pub fn drop_token(&self) -> Option<SyntaxToken> {
6986        support::token(&self.syntax, SyntaxKind::DROP_KW)
6987    }
6988    #[inline]
6989    pub fn user_token(&self) -> Option<SyntaxToken> {
6990        support::token(&self.syntax, SyntaxKind::USER_KW)
6991    }
6992}
6993
6994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6995pub struct DropUserMapping {
6996    pub(crate) syntax: SyntaxNode,
6997}
6998impl DropUserMapping {
6999    #[inline]
7000    pub fn if_exists(&self) -> Option<IfExists> {
7001        support::child(&self.syntax)
7002    }
7003    #[inline]
7004    pub fn name_ref(&self) -> Option<NameRef> {
7005        support::child(&self.syntax)
7006    }
7007    #[inline]
7008    pub fn role(&self) -> Option<Role> {
7009        support::child(&self.syntax)
7010    }
7011    #[inline]
7012    pub fn drop_token(&self) -> Option<SyntaxToken> {
7013        support::token(&self.syntax, SyntaxKind::DROP_KW)
7014    }
7015    #[inline]
7016    pub fn for_token(&self) -> Option<SyntaxToken> {
7017        support::token(&self.syntax, SyntaxKind::FOR_KW)
7018    }
7019    #[inline]
7020    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7021        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7022    }
7023    #[inline]
7024    pub fn server_token(&self) -> Option<SyntaxToken> {
7025        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7026    }
7027    #[inline]
7028    pub fn user_token(&self) -> Option<SyntaxToken> {
7029        support::token(&self.syntax, SyntaxKind::USER_KW)
7030    }
7031}
7032
7033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7034pub struct DropView {
7035    pub(crate) syntax: SyntaxNode,
7036}
7037impl DropView {
7038    #[inline]
7039    pub fn if_exists(&self) -> Option<IfExists> {
7040        support::child(&self.syntax)
7041    }
7042    #[inline]
7043    pub fn path(&self) -> Option<Path> {
7044        support::child(&self.syntax)
7045    }
7046    #[inline]
7047    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7048        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7049    }
7050    #[inline]
7051    pub fn drop_token(&self) -> Option<SyntaxToken> {
7052        support::token(&self.syntax, SyntaxKind::DROP_KW)
7053    }
7054    #[inline]
7055    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7056        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7057    }
7058    #[inline]
7059    pub fn view_token(&self) -> Option<SyntaxToken> {
7060        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7061    }
7062}
7063
7064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7065pub struct ElseClause {
7066    pub(crate) syntax: SyntaxNode,
7067}
7068impl ElseClause {
7069    #[inline]
7070    pub fn expr(&self) -> Option<Expr> {
7071        support::child(&self.syntax)
7072    }
7073    #[inline]
7074    pub fn else_token(&self) -> Option<SyntaxToken> {
7075        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7076    }
7077}
7078
7079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7080pub struct EnableAlwaysRule {
7081    pub(crate) syntax: SyntaxNode,
7082}
7083impl EnableAlwaysRule {
7084    #[inline]
7085    pub fn always_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7087    }
7088    #[inline]
7089    pub fn enable_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7091    }
7092    #[inline]
7093    pub fn rule_token(&self) -> Option<SyntaxToken> {
7094        support::token(&self.syntax, SyntaxKind::RULE_KW)
7095    }
7096}
7097
7098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7099pub struct EnableAlwaysTrigger {
7100    pub(crate) syntax: SyntaxNode,
7101}
7102impl EnableAlwaysTrigger {
7103    #[inline]
7104    pub fn always_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7106    }
7107    #[inline]
7108    pub fn enable_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7110    }
7111    #[inline]
7112    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7114    }
7115}
7116
7117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7118pub struct EnableReplicaRule {
7119    pub(crate) syntax: SyntaxNode,
7120}
7121impl EnableReplicaRule {
7122    #[inline]
7123    pub fn enable_token(&self) -> Option<SyntaxToken> {
7124        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7125    }
7126    #[inline]
7127    pub fn replica_token(&self) -> Option<SyntaxToken> {
7128        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7129    }
7130    #[inline]
7131    pub fn rule_token(&self) -> Option<SyntaxToken> {
7132        support::token(&self.syntax, SyntaxKind::RULE_KW)
7133    }
7134}
7135
7136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7137pub struct EnableReplicaTrigger {
7138    pub(crate) syntax: SyntaxNode,
7139}
7140impl EnableReplicaTrigger {
7141    #[inline]
7142    pub fn enable_token(&self) -> Option<SyntaxToken> {
7143        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7144    }
7145    #[inline]
7146    pub fn replica_token(&self) -> Option<SyntaxToken> {
7147        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7148    }
7149    #[inline]
7150    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7151        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7152    }
7153}
7154
7155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7156pub struct EnableRls {
7157    pub(crate) syntax: SyntaxNode,
7158}
7159impl EnableRls {
7160    #[inline]
7161    pub fn enable_token(&self) -> Option<SyntaxToken> {
7162        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7163    }
7164    #[inline]
7165    pub fn level_token(&self) -> Option<SyntaxToken> {
7166        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7167    }
7168    #[inline]
7169    pub fn row_token(&self) -> Option<SyntaxToken> {
7170        support::token(&self.syntax, SyntaxKind::ROW_KW)
7171    }
7172    #[inline]
7173    pub fn security_token(&self) -> Option<SyntaxToken> {
7174        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7175    }
7176}
7177
7178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7179pub struct EnableRule {
7180    pub(crate) syntax: SyntaxNode,
7181}
7182impl EnableRule {
7183    #[inline]
7184    pub fn enable_token(&self) -> Option<SyntaxToken> {
7185        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7186    }
7187    #[inline]
7188    pub fn rule_token(&self) -> Option<SyntaxToken> {
7189        support::token(&self.syntax, SyntaxKind::RULE_KW)
7190    }
7191}
7192
7193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7194pub struct EnableTrigger {
7195    pub(crate) syntax: SyntaxNode,
7196}
7197impl EnableTrigger {
7198    #[inline]
7199    pub fn enable_token(&self) -> Option<SyntaxToken> {
7200        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7201    }
7202    #[inline]
7203    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7204        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7205    }
7206}
7207
7208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7209pub struct Enforced {
7210    pub(crate) syntax: SyntaxNode,
7211}
7212impl Enforced {
7213    #[inline]
7214    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7215        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7216    }
7217}
7218
7219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7220pub struct EventTriggerWhen {
7221    pub(crate) syntax: SyntaxNode,
7222}
7223impl EventTriggerWhen {
7224    #[inline]
7225    pub fn literals(&self) -> AstChildren<Literal> {
7226        support::children(&self.syntax)
7227    }
7228    #[inline]
7229    pub fn name_ref(&self) -> Option<NameRef> {
7230        support::child(&self.syntax)
7231    }
7232    #[inline]
7233    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7234        support::token(&self.syntax, SyntaxKind::L_PAREN)
7235    }
7236    #[inline]
7237    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7238        support::token(&self.syntax, SyntaxKind::R_PAREN)
7239    }
7240    #[inline]
7241    pub fn in_token(&self) -> Option<SyntaxToken> {
7242        support::token(&self.syntax, SyntaxKind::IN_KW)
7243    }
7244}
7245
7246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7247pub struct EventTriggerWhenClause {
7248    pub(crate) syntax: SyntaxNode,
7249}
7250impl EventTriggerWhenClause {
7251    #[inline]
7252    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7253        support::children(&self.syntax)
7254    }
7255    #[inline]
7256    pub fn when_token(&self) -> Option<SyntaxToken> {
7257        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7258    }
7259}
7260
7261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7262pub struct ExceptTables {
7263    pub(crate) syntax: SyntaxNode,
7264}
7265impl ExceptTables {
7266    #[inline]
7267    pub fn name_refs(&self) -> AstChildren<NameRef> {
7268        support::children(&self.syntax)
7269    }
7270    #[inline]
7271    pub fn except_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7273    }
7274}
7275
7276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7277pub struct ExcludeConstraint {
7278    pub(crate) syntax: SyntaxNode,
7279}
7280impl ExcludeConstraint {
7281    #[inline]
7282    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7283        support::child(&self.syntax)
7284    }
7285    #[inline]
7286    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7287        support::child(&self.syntax)
7288    }
7289    #[inline]
7290    pub fn name(&self) -> Option<Name> {
7291        support::child(&self.syntax)
7292    }
7293    #[inline]
7294    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7295        support::child(&self.syntax)
7296    }
7297    #[inline]
7298    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7299        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7300    }
7301    #[inline]
7302    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7304    }
7305}
7306
7307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7308pub struct Execute {
7309    pub(crate) syntax: SyntaxNode,
7310}
7311impl Execute {
7312    #[inline]
7313    pub fn arg_list(&self) -> Option<ArgList> {
7314        support::child(&self.syntax)
7315    }
7316    #[inline]
7317    pub fn name_ref(&self) -> Option<NameRef> {
7318        support::child(&self.syntax)
7319    }
7320    #[inline]
7321    pub fn execute_token(&self) -> Option<SyntaxToken> {
7322        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7323    }
7324}
7325
7326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7327pub struct ExistsFn {
7328    pub(crate) syntax: SyntaxNode,
7329}
7330impl ExistsFn {
7331    #[inline]
7332    pub fn select_variant(&self) -> Option<SelectVariant> {
7333        support::child(&self.syntax)
7334    }
7335    #[inline]
7336    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7337        support::token(&self.syntax, SyntaxKind::L_PAREN)
7338    }
7339    #[inline]
7340    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7341        support::token(&self.syntax, SyntaxKind::R_PAREN)
7342    }
7343    #[inline]
7344    pub fn exists_token(&self) -> Option<SyntaxToken> {
7345        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7346    }
7347}
7348
7349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7350pub struct Explain {
7351    pub(crate) syntax: SyntaxNode,
7352}
7353impl Explain {
7354    #[inline]
7355    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7356        support::child(&self.syntax)
7357    }
7358    #[inline]
7359    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7360        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7361    }
7362    #[inline]
7363    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7364        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7365    }
7366    #[inline]
7367    pub fn explain_token(&self) -> Option<SyntaxToken> {
7368        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7369    }
7370    #[inline]
7371    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7372        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7373    }
7374}
7375
7376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7377pub struct ExprAsName {
7378    pub(crate) syntax: SyntaxNode,
7379}
7380impl ExprAsName {
7381    #[inline]
7382    pub fn as_name(&self) -> Option<AsName> {
7383        support::child(&self.syntax)
7384    }
7385    #[inline]
7386    pub fn expr(&self) -> Option<Expr> {
7387        support::child(&self.syntax)
7388    }
7389}
7390
7391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7392pub struct ExprType {
7393    pub(crate) syntax: SyntaxNode,
7394}
7395impl ExprType {
7396    #[inline]
7397    pub fn expr(&self) -> Option<Expr> {
7398        support::child(&self.syntax)
7399    }
7400}
7401
7402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7403pub struct ExtractFn {
7404    pub(crate) syntax: SyntaxNode,
7405}
7406impl ExtractFn {
7407    #[inline]
7408    pub fn expr(&self) -> Option<Expr> {
7409        support::child(&self.syntax)
7410    }
7411    #[inline]
7412    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7413        support::token(&self.syntax, SyntaxKind::L_PAREN)
7414    }
7415    #[inline]
7416    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7417        support::token(&self.syntax, SyntaxKind::R_PAREN)
7418    }
7419    #[inline]
7420    pub fn day_token(&self) -> Option<SyntaxToken> {
7421        support::token(&self.syntax, SyntaxKind::DAY_KW)
7422    }
7423    #[inline]
7424    pub fn extract_token(&self) -> Option<SyntaxToken> {
7425        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7426    }
7427    #[inline]
7428    pub fn from_token(&self) -> Option<SyntaxToken> {
7429        support::token(&self.syntax, SyntaxKind::FROM_KW)
7430    }
7431    #[inline]
7432    pub fn hour_token(&self) -> Option<SyntaxToken> {
7433        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7434    }
7435    #[inline]
7436    pub fn ident_token(&self) -> Option<SyntaxToken> {
7437        support::token(&self.syntax, SyntaxKind::IDENT)
7438    }
7439    #[inline]
7440    pub fn minute_token(&self) -> Option<SyntaxToken> {
7441        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7442    }
7443    #[inline]
7444    pub fn month_token(&self) -> Option<SyntaxToken> {
7445        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7446    }
7447    #[inline]
7448    pub fn second_token(&self) -> Option<SyntaxToken> {
7449        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7450    }
7451    #[inline]
7452    pub fn string_token(&self) -> Option<SyntaxToken> {
7453        support::token(&self.syntax, SyntaxKind::STRING_KW)
7454    }
7455    #[inline]
7456    pub fn year_token(&self) -> Option<SyntaxToken> {
7457        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7458    }
7459}
7460
7461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7462pub struct FatArrow {
7463    pub(crate) syntax: SyntaxNode,
7464}
7465impl FatArrow {
7466    #[inline]
7467    pub fn eq_token(&self) -> Option<SyntaxToken> {
7468        support::token(&self.syntax, SyntaxKind::EQ)
7469    }
7470    #[inline]
7471    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7472        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7473    }
7474}
7475
7476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7477pub struct FdwOption {
7478    pub(crate) syntax: SyntaxNode,
7479}
7480impl FdwOption {
7481    #[inline]
7482    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7483        support::child(&self.syntax)
7484    }
7485    #[inline]
7486    pub fn path(&self) -> Option<Path> {
7487        support::child(&self.syntax)
7488    }
7489    #[inline]
7490    pub fn handler_token(&self) -> Option<SyntaxToken> {
7491        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7492    }
7493    #[inline]
7494    pub fn no_token(&self) -> Option<SyntaxToken> {
7495        support::token(&self.syntax, SyntaxKind::NO_KW)
7496    }
7497    #[inline]
7498    pub fn options_token(&self) -> Option<SyntaxToken> {
7499        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7500    }
7501    #[inline]
7502    pub fn validator_token(&self) -> Option<SyntaxToken> {
7503        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7504    }
7505}
7506
7507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7508pub struct FdwOptionList {
7509    pub(crate) syntax: SyntaxNode,
7510}
7511impl FdwOptionList {
7512    #[inline]
7513    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7514        support::children(&self.syntax)
7515    }
7516}
7517
7518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7519pub struct Fetch {
7520    pub(crate) syntax: SyntaxNode,
7521}
7522impl Fetch {
7523    #[inline]
7524    pub fn name_ref(&self) -> Option<NameRef> {
7525        support::child(&self.syntax)
7526    }
7527    #[inline]
7528    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7529        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7530    }
7531    #[inline]
7532    pub fn from_token(&self) -> Option<SyntaxToken> {
7533        support::token(&self.syntax, SyntaxKind::FROM_KW)
7534    }
7535    #[inline]
7536    pub fn in_token(&self) -> Option<SyntaxToken> {
7537        support::token(&self.syntax, SyntaxKind::IN_KW)
7538    }
7539}
7540
7541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7542pub struct FetchClause {
7543    pub(crate) syntax: SyntaxNode,
7544}
7545impl FetchClause {
7546    #[inline]
7547    pub fn expr(&self) -> Option<Expr> {
7548        support::child(&self.syntax)
7549    }
7550    #[inline]
7551    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7552        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7553    }
7554    #[inline]
7555    pub fn first_token(&self) -> Option<SyntaxToken> {
7556        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7557    }
7558    #[inline]
7559    pub fn next_token(&self) -> Option<SyntaxToken> {
7560        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7561    }
7562    #[inline]
7563    pub fn only_token(&self) -> Option<SyntaxToken> {
7564        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7565    }
7566    #[inline]
7567    pub fn row_token(&self) -> Option<SyntaxToken> {
7568        support::token(&self.syntax, SyntaxKind::ROW_KW)
7569    }
7570    #[inline]
7571    pub fn rows_token(&self) -> Option<SyntaxToken> {
7572        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7573    }
7574    #[inline]
7575    pub fn ties_token(&self) -> Option<SyntaxToken> {
7576        support::token(&self.syntax, SyntaxKind::TIES_KW)
7577    }
7578    #[inline]
7579    pub fn with_token(&self) -> Option<SyntaxToken> {
7580        support::token(&self.syntax, SyntaxKind::WITH_KW)
7581    }
7582}
7583
7584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7585pub struct FieldExpr {
7586    pub(crate) syntax: SyntaxNode,
7587}
7588impl FieldExpr {
7589    #[inline]
7590    pub fn star_token(&self) -> Option<SyntaxToken> {
7591        support::token(&self.syntax, SyntaxKind::STAR)
7592    }
7593    #[inline]
7594    pub fn dot_token(&self) -> Option<SyntaxToken> {
7595        support::token(&self.syntax, SyntaxKind::DOT)
7596    }
7597}
7598
7599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7600pub struct FilterClause {
7601    pub(crate) syntax: SyntaxNode,
7602}
7603impl FilterClause {
7604    #[inline]
7605    pub fn expr(&self) -> Option<Expr> {
7606        support::child(&self.syntax)
7607    }
7608    #[inline]
7609    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7610        support::token(&self.syntax, SyntaxKind::L_PAREN)
7611    }
7612    #[inline]
7613    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7614        support::token(&self.syntax, SyntaxKind::R_PAREN)
7615    }
7616    #[inline]
7617    pub fn filter_token(&self) -> Option<SyntaxToken> {
7618        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7619    }
7620    #[inline]
7621    pub fn where_token(&self) -> Option<SyntaxToken> {
7622        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7623    }
7624}
7625
7626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7627pub struct ForProvider {
7628    pub(crate) syntax: SyntaxNode,
7629}
7630impl ForProvider {
7631    #[inline]
7632    pub fn literal(&self) -> Option<Literal> {
7633        support::child(&self.syntax)
7634    }
7635    #[inline]
7636    pub fn name_ref(&self) -> Option<NameRef> {
7637        support::child(&self.syntax)
7638    }
7639    #[inline]
7640    pub fn for_token(&self) -> Option<SyntaxToken> {
7641        support::token(&self.syntax, SyntaxKind::FOR_KW)
7642    }
7643}
7644
7645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7646pub struct ForceRls {
7647    pub(crate) syntax: SyntaxNode,
7648}
7649impl ForceRls {
7650    #[inline]
7651    pub fn force_token(&self) -> Option<SyntaxToken> {
7652        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7653    }
7654    #[inline]
7655    pub fn level_token(&self) -> Option<SyntaxToken> {
7656        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7657    }
7658    #[inline]
7659    pub fn row_token(&self) -> Option<SyntaxToken> {
7660        support::token(&self.syntax, SyntaxKind::ROW_KW)
7661    }
7662    #[inline]
7663    pub fn security_token(&self) -> Option<SyntaxToken> {
7664        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7665    }
7666}
7667
7668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7669pub struct ForeignKeyConstraint {
7670    pub(crate) syntax: SyntaxNode,
7671}
7672impl ForeignKeyConstraint {
7673    #[inline]
7674    pub fn match_type(&self) -> Option<MatchType> {
7675        support::child(&self.syntax)
7676    }
7677    #[inline]
7678    pub fn name(&self) -> Option<Name> {
7679        support::child(&self.syntax)
7680    }
7681    #[inline]
7682    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7683        support::child(&self.syntax)
7684    }
7685    #[inline]
7686    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7687        support::child(&self.syntax)
7688    }
7689    #[inline]
7690    pub fn path(&self) -> Option<Path> {
7691        support::child(&self.syntax)
7692    }
7693    #[inline]
7694    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7695        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7696    }
7697    #[inline]
7698    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7699        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7700    }
7701    #[inline]
7702    pub fn key_token(&self) -> Option<SyntaxToken> {
7703        support::token(&self.syntax, SyntaxKind::KEY_KW)
7704    }
7705    #[inline]
7706    pub fn references_token(&self) -> Option<SyntaxToken> {
7707        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7708    }
7709}
7710
7711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7712pub struct FrameClause {
7713    pub(crate) syntax: SyntaxNode,
7714}
7715impl FrameClause {
7716    #[inline]
7717    pub fn groups_token(&self) -> Option<SyntaxToken> {
7718        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7719    }
7720    #[inline]
7721    pub fn range_token(&self) -> Option<SyntaxToken> {
7722        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7723    }
7724    #[inline]
7725    pub fn rows_token(&self) -> Option<SyntaxToken> {
7726        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7727    }
7728}
7729
7730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7731pub struct FromClause {
7732    pub(crate) syntax: SyntaxNode,
7733}
7734impl FromClause {
7735    #[inline]
7736    pub fn from_items(&self) -> AstChildren<FromItem> {
7737        support::children(&self.syntax)
7738    }
7739    #[inline]
7740    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7741        support::children(&self.syntax)
7742    }
7743    #[inline]
7744    pub fn from_token(&self) -> Option<SyntaxToken> {
7745        support::token(&self.syntax, SyntaxKind::FROM_KW)
7746    }
7747}
7748
7749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7750pub struct FromItem {
7751    pub(crate) syntax: SyntaxNode,
7752}
7753impl FromItem {
7754    #[inline]
7755    pub fn alias(&self) -> Option<Alias> {
7756        support::child(&self.syntax)
7757    }
7758    #[inline]
7759    pub fn call_expr(&self) -> Option<CallExpr> {
7760        support::child(&self.syntax)
7761    }
7762    #[inline]
7763    pub fn cast_expr(&self) -> Option<CastExpr> {
7764        support::child(&self.syntax)
7765    }
7766    #[inline]
7767    pub fn field_expr(&self) -> Option<FieldExpr> {
7768        support::child(&self.syntax)
7769    }
7770    #[inline]
7771    pub fn json_table(&self) -> Option<JsonTable> {
7772        support::child(&self.syntax)
7773    }
7774    #[inline]
7775    pub fn name_ref(&self) -> Option<NameRef> {
7776        support::child(&self.syntax)
7777    }
7778    #[inline]
7779    pub fn paren_expr(&self) -> Option<ParenExpr> {
7780        support::child(&self.syntax)
7781    }
7782    #[inline]
7783    pub fn paren_select(&self) -> Option<ParenSelect> {
7784        support::child(&self.syntax)
7785    }
7786    #[inline]
7787    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7788        support::child(&self.syntax)
7789    }
7790    #[inline]
7791    pub fn xml_table(&self) -> Option<XmlTable> {
7792        support::child(&self.syntax)
7793    }
7794    #[inline]
7795    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7796        support::token(&self.syntax, SyntaxKind::L_PAREN)
7797    }
7798    #[inline]
7799    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7800        support::token(&self.syntax, SyntaxKind::R_PAREN)
7801    }
7802    #[inline]
7803    pub fn star_token(&self) -> Option<SyntaxToken> {
7804        support::token(&self.syntax, SyntaxKind::STAR)
7805    }
7806    #[inline]
7807    pub fn from_token(&self) -> Option<SyntaxToken> {
7808        support::token(&self.syntax, SyntaxKind::FROM_KW)
7809    }
7810    #[inline]
7811    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7813    }
7814    #[inline]
7815    pub fn only_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7817    }
7818    #[inline]
7819    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7820        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7821    }
7822    #[inline]
7823    pub fn rows_token(&self) -> Option<SyntaxToken> {
7824        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7825    }
7826    #[inline]
7827    pub fn with_token(&self) -> Option<SyntaxToken> {
7828        support::token(&self.syntax, SyntaxKind::WITH_KW)
7829    }
7830}
7831
7832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7833pub struct FromServer {
7834    pub(crate) syntax: SyntaxNode,
7835}
7836impl FromServer {
7837    #[inline]
7838    pub fn name_ref(&self) -> Option<NameRef> {
7839        support::child(&self.syntax)
7840    }
7841    #[inline]
7842    pub fn from_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::FROM_KW)
7844    }
7845    #[inline]
7846    pub fn server_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7848    }
7849}
7850
7851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7852pub struct FromTable {
7853    pub(crate) syntax: SyntaxNode,
7854}
7855impl FromTable {
7856    #[inline]
7857    pub fn path(&self) -> Option<Path> {
7858        support::child(&self.syntax)
7859    }
7860    #[inline]
7861    pub fn from_token(&self) -> Option<SyntaxToken> {
7862        support::token(&self.syntax, SyntaxKind::FROM_KW)
7863    }
7864}
7865
7866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7867pub struct FuncOptionList {
7868    pub(crate) syntax: SyntaxNode,
7869}
7870impl FuncOptionList {
7871    #[inline]
7872    pub fn options(&self) -> AstChildren<FuncOption> {
7873        support::children(&self.syntax)
7874    }
7875}
7876
7877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7878pub struct FunctionSig {
7879    pub(crate) syntax: SyntaxNode,
7880}
7881impl FunctionSig {
7882    #[inline]
7883    pub fn param_list(&self) -> Option<ParamList> {
7884        support::child(&self.syntax)
7885    }
7886    #[inline]
7887    pub fn path(&self) -> Option<Path> {
7888        support::child(&self.syntax)
7889    }
7890}
7891
7892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7893pub struct FunctionSigList {
7894    pub(crate) syntax: SyntaxNode,
7895}
7896impl FunctionSigList {
7897    #[inline]
7898    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7899        support::children(&self.syntax)
7900    }
7901}
7902
7903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7904pub struct GeneratedConstraint {
7905    pub(crate) syntax: SyntaxNode,
7906}
7907impl GeneratedConstraint {
7908    #[inline]
7909    pub fn expr(&self) -> Option<Expr> {
7910        support::child(&self.syntax)
7911    }
7912    #[inline]
7913    pub fn name_ref(&self) -> Option<NameRef> {
7914        support::child(&self.syntax)
7915    }
7916    #[inline]
7917    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7918        support::child(&self.syntax)
7919    }
7920    #[inline]
7921    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7922        support::token(&self.syntax, SyntaxKind::L_PAREN)
7923    }
7924    #[inline]
7925    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7926        support::token(&self.syntax, SyntaxKind::R_PAREN)
7927    }
7928    #[inline]
7929    pub fn always_token(&self) -> Option<SyntaxToken> {
7930        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7931    }
7932    #[inline]
7933    pub fn as_token(&self) -> Option<SyntaxToken> {
7934        support::token(&self.syntax, SyntaxKind::AS_KW)
7935    }
7936    #[inline]
7937    pub fn by_token(&self) -> Option<SyntaxToken> {
7938        support::token(&self.syntax, SyntaxKind::BY_KW)
7939    }
7940    #[inline]
7941    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7942        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7943    }
7944    #[inline]
7945    pub fn default_token(&self) -> Option<SyntaxToken> {
7946        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7947    }
7948    #[inline]
7949    pub fn generated_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7951    }
7952    #[inline]
7953    pub fn identity_token(&self) -> Option<SyntaxToken> {
7954        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7955    }
7956    #[inline]
7957    pub fn stored_token(&self) -> Option<SyntaxToken> {
7958        support::token(&self.syntax, SyntaxKind::STORED_KW)
7959    }
7960}
7961
7962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7963pub struct Grant {
7964    pub(crate) syntax: SyntaxNode,
7965}
7966impl Grant {
7967    #[inline]
7968    pub fn name_refs(&self) -> AstChildren<NameRef> {
7969        support::children(&self.syntax)
7970    }
7971    #[inline]
7972    pub fn paths(&self) -> AstChildren<Path> {
7973        support::children(&self.syntax)
7974    }
7975    #[inline]
7976    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7977        support::child(&self.syntax)
7978    }
7979    #[inline]
7980    pub fn role(&self) -> Option<Role> {
7981        support::child(&self.syntax)
7982    }
7983    #[inline]
7984    pub fn role_list(&self) -> Option<RoleList> {
7985        support::child(&self.syntax)
7986    }
7987    #[inline]
7988    pub fn all_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::ALL_KW)
7990    }
7991    #[inline]
7992    pub fn by_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::BY_KW)
7994    }
7995    #[inline]
7996    pub fn grant_token(&self) -> Option<SyntaxToken> {
7997        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7998    }
7999    #[inline]
8000    pub fn granted_token(&self) -> Option<SyntaxToken> {
8001        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
8002    }
8003    #[inline]
8004    pub fn in_token(&self) -> Option<SyntaxToken> {
8005        support::token(&self.syntax, SyntaxKind::IN_KW)
8006    }
8007    #[inline]
8008    pub fn on_token(&self) -> Option<SyntaxToken> {
8009        support::token(&self.syntax, SyntaxKind::ON_KW)
8010    }
8011    #[inline]
8012    pub fn option_token(&self) -> Option<SyntaxToken> {
8013        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8014    }
8015    #[inline]
8016    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8017        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8018    }
8019    #[inline]
8020    pub fn schema_token(&self) -> Option<SyntaxToken> {
8021        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8022    }
8023    #[inline]
8024    pub fn table_token(&self) -> Option<SyntaxToken> {
8025        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8026    }
8027    #[inline]
8028    pub fn tables_token(&self) -> Option<SyntaxToken> {
8029        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8030    }
8031    #[inline]
8032    pub fn to_token(&self) -> Option<SyntaxToken> {
8033        support::token(&self.syntax, SyntaxKind::TO_KW)
8034    }
8035    #[inline]
8036    pub fn with_token(&self) -> Option<SyntaxToken> {
8037        support::token(&self.syntax, SyntaxKind::WITH_KW)
8038    }
8039}
8040
8041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8042pub struct GrantDefaultPrivileges {
8043    pub(crate) syntax: SyntaxNode,
8044}
8045impl GrantDefaultPrivileges {
8046    #[inline]
8047    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8048        support::child(&self.syntax)
8049    }
8050    #[inline]
8051    pub fn privileges(&self) -> Option<Privileges> {
8052        support::child(&self.syntax)
8053    }
8054    #[inline]
8055    pub fn role_list(&self) -> Option<RoleList> {
8056        support::child(&self.syntax)
8057    }
8058    #[inline]
8059    pub fn grant_token(&self) -> Option<SyntaxToken> {
8060        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8061    }
8062    #[inline]
8063    pub fn on_token(&self) -> Option<SyntaxToken> {
8064        support::token(&self.syntax, SyntaxKind::ON_KW)
8065    }
8066    #[inline]
8067    pub fn option_token(&self) -> Option<SyntaxToken> {
8068        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8069    }
8070    #[inline]
8071    pub fn to_token(&self) -> Option<SyntaxToken> {
8072        support::token(&self.syntax, SyntaxKind::TO_KW)
8073    }
8074    #[inline]
8075    pub fn with_token(&self) -> Option<SyntaxToken> {
8076        support::token(&self.syntax, SyntaxKind::WITH_KW)
8077    }
8078}
8079
8080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8081pub struct GroupByClause {
8082    pub(crate) syntax: SyntaxNode,
8083}
8084impl GroupByClause {
8085    #[inline]
8086    pub fn group_by_list(&self) -> Option<GroupByList> {
8087        support::child(&self.syntax)
8088    }
8089    #[inline]
8090    pub fn all_token(&self) -> Option<SyntaxToken> {
8091        support::token(&self.syntax, SyntaxKind::ALL_KW)
8092    }
8093    #[inline]
8094    pub fn by_token(&self) -> Option<SyntaxToken> {
8095        support::token(&self.syntax, SyntaxKind::BY_KW)
8096    }
8097    #[inline]
8098    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8099        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8100    }
8101    #[inline]
8102    pub fn group_token(&self) -> Option<SyntaxToken> {
8103        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8104    }
8105}
8106
8107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8108pub struct GroupByList {
8109    pub(crate) syntax: SyntaxNode,
8110}
8111impl GroupByList {
8112    #[inline]
8113    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8114        support::children(&self.syntax)
8115    }
8116}
8117
8118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8119pub struct GroupingCube {
8120    pub(crate) syntax: SyntaxNode,
8121}
8122impl GroupingCube {
8123    #[inline]
8124    pub fn expr(&self) -> Option<Expr> {
8125        support::child(&self.syntax)
8126    }
8127    #[inline]
8128    pub fn cube_token(&self) -> Option<SyntaxToken> {
8129        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8130    }
8131}
8132
8133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8134pub struct GroupingExpr {
8135    pub(crate) syntax: SyntaxNode,
8136}
8137impl GroupingExpr {
8138    #[inline]
8139    pub fn expr(&self) -> Option<Expr> {
8140        support::child(&self.syntax)
8141    }
8142}
8143
8144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8145pub struct GroupingRollup {
8146    pub(crate) syntax: SyntaxNode,
8147}
8148impl GroupingRollup {
8149    #[inline]
8150    pub fn expr(&self) -> Option<Expr> {
8151        support::child(&self.syntax)
8152    }
8153    #[inline]
8154    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8155        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8156    }
8157}
8158
8159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8160pub struct GroupingSets {
8161    pub(crate) syntax: SyntaxNode,
8162}
8163impl GroupingSets {
8164    #[inline]
8165    pub fn expr(&self) -> Option<Expr> {
8166        support::child(&self.syntax)
8167    }
8168    #[inline]
8169    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8170        support::token(&self.syntax, SyntaxKind::L_PAREN)
8171    }
8172    #[inline]
8173    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8174        support::token(&self.syntax, SyntaxKind::R_PAREN)
8175    }
8176    #[inline]
8177    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8178        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8179    }
8180    #[inline]
8181    pub fn sets_token(&self) -> Option<SyntaxToken> {
8182        support::token(&self.syntax, SyntaxKind::SETS_KW)
8183    }
8184}
8185
8186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8187pub struct Gteq {
8188    pub(crate) syntax: SyntaxNode,
8189}
8190impl Gteq {
8191    #[inline]
8192    pub fn eq_token(&self) -> Option<SyntaxToken> {
8193        support::token(&self.syntax, SyntaxKind::EQ)
8194    }
8195    #[inline]
8196    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8197        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8198    }
8199}
8200
8201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8202pub struct HandlerClause {
8203    pub(crate) syntax: SyntaxNode,
8204}
8205impl HandlerClause {
8206    #[inline]
8207    pub fn path(&self) -> Option<Path> {
8208        support::child(&self.syntax)
8209    }
8210    #[inline]
8211    pub fn handler_token(&self) -> Option<SyntaxToken> {
8212        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8213    }
8214}
8215
8216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8217pub struct HavingClause {
8218    pub(crate) syntax: SyntaxNode,
8219}
8220impl HavingClause {
8221    #[inline]
8222    pub fn expr(&self) -> Option<Expr> {
8223        support::child(&self.syntax)
8224    }
8225    #[inline]
8226    pub fn having_token(&self) -> Option<SyntaxToken> {
8227        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8228    }
8229}
8230
8231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8232pub struct IfExists {
8233    pub(crate) syntax: SyntaxNode,
8234}
8235impl IfExists {
8236    #[inline]
8237    pub fn exists_token(&self) -> Option<SyntaxToken> {
8238        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8239    }
8240    #[inline]
8241    pub fn if_token(&self) -> Option<SyntaxToken> {
8242        support::token(&self.syntax, SyntaxKind::IF_KW)
8243    }
8244}
8245
8246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8247pub struct IfNotExists {
8248    pub(crate) syntax: SyntaxNode,
8249}
8250impl IfNotExists {
8251    #[inline]
8252    pub fn exists_token(&self) -> Option<SyntaxToken> {
8253        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8254    }
8255    #[inline]
8256    pub fn if_token(&self) -> Option<SyntaxToken> {
8257        support::token(&self.syntax, SyntaxKind::IF_KW)
8258    }
8259    #[inline]
8260    pub fn not_token(&self) -> Option<SyntaxToken> {
8261        support::token(&self.syntax, SyntaxKind::NOT_KW)
8262    }
8263}
8264
8265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8266pub struct ImportForeignSchema {
8267    pub(crate) syntax: SyntaxNode,
8268}
8269impl ImportForeignSchema {
8270    #[inline]
8271    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8272        support::child(&self.syntax)
8273    }
8274    #[inline]
8275    pub fn except_tables(&self) -> Option<ExceptTables> {
8276        support::child(&self.syntax)
8277    }
8278    #[inline]
8279    pub fn from_server(&self) -> Option<FromServer> {
8280        support::child(&self.syntax)
8281    }
8282    #[inline]
8283    pub fn into_schema(&self) -> Option<IntoSchema> {
8284        support::child(&self.syntax)
8285    }
8286    #[inline]
8287    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8288        support::child(&self.syntax)
8289    }
8290    #[inline]
8291    pub fn name_ref(&self) -> Option<NameRef> {
8292        support::child(&self.syntax)
8293    }
8294    #[inline]
8295    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8296        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8297    }
8298    #[inline]
8299    pub fn import_token(&self) -> Option<SyntaxToken> {
8300        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8301    }
8302    #[inline]
8303    pub fn schema_token(&self) -> Option<SyntaxToken> {
8304        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8305    }
8306}
8307
8308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8309pub struct IndexExpr {
8310    pub(crate) syntax: SyntaxNode,
8311}
8312impl IndexExpr {
8313    #[inline]
8314    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8315        support::token(&self.syntax, SyntaxKind::L_BRACK)
8316    }
8317    #[inline]
8318    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8319        support::token(&self.syntax, SyntaxKind::R_BRACK)
8320    }
8321}
8322
8323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8324pub struct Inherit {
8325    pub(crate) syntax: SyntaxNode,
8326}
8327impl Inherit {
8328    #[inline]
8329    pub fn path(&self) -> Option<Path> {
8330        support::child(&self.syntax)
8331    }
8332    #[inline]
8333    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8334        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8335    }
8336}
8337
8338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8339pub struct InheritTable {
8340    pub(crate) syntax: SyntaxNode,
8341}
8342impl InheritTable {
8343    #[inline]
8344    pub fn path(&self) -> Option<Path> {
8345        support::child(&self.syntax)
8346    }
8347    #[inline]
8348    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8349        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8350    }
8351}
8352
8353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8354pub struct Inherits {
8355    pub(crate) syntax: SyntaxNode,
8356}
8357impl Inherits {
8358    #[inline]
8359    pub fn paths(&self) -> AstChildren<Path> {
8360        support::children(&self.syntax)
8361    }
8362    #[inline]
8363    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8364        support::token(&self.syntax, SyntaxKind::L_PAREN)
8365    }
8366    #[inline]
8367    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8368        support::token(&self.syntax, SyntaxKind::R_PAREN)
8369    }
8370    #[inline]
8371    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8372        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8373    }
8374}
8375
8376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8377pub struct InitiallyDeferredConstraintOption {
8378    pub(crate) syntax: SyntaxNode,
8379}
8380impl InitiallyDeferredConstraintOption {
8381    #[inline]
8382    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8383        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8384    }
8385    #[inline]
8386    pub fn initially_token(&self) -> Option<SyntaxToken> {
8387        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8388    }
8389}
8390
8391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8392pub struct InitiallyImmediateConstraintOption {
8393    pub(crate) syntax: SyntaxNode,
8394}
8395impl InitiallyImmediateConstraintOption {
8396    #[inline]
8397    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8398        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8399    }
8400    #[inline]
8401    pub fn initially_token(&self) -> Option<SyntaxToken> {
8402        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8403    }
8404}
8405
8406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8407pub struct Insert {
8408    pub(crate) syntax: SyntaxNode,
8409}
8410impl Insert {
8411    #[inline]
8412    pub fn alias(&self) -> Option<Alias> {
8413        support::child(&self.syntax)
8414    }
8415    #[inline]
8416    pub fn column_list(&self) -> Option<ColumnList> {
8417        support::child(&self.syntax)
8418    }
8419    #[inline]
8420    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8421        support::child(&self.syntax)
8422    }
8423    #[inline]
8424    pub fn path(&self) -> Option<Path> {
8425        support::child(&self.syntax)
8426    }
8427    #[inline]
8428    pub fn returning_clause(&self) -> Option<ReturningClause> {
8429        support::child(&self.syntax)
8430    }
8431    #[inline]
8432    pub fn stmt(&self) -> Option<Stmt> {
8433        support::child(&self.syntax)
8434    }
8435    #[inline]
8436    pub fn values(&self) -> Option<Values> {
8437        support::child(&self.syntax)
8438    }
8439    #[inline]
8440    pub fn with_clause(&self) -> Option<WithClause> {
8441        support::child(&self.syntax)
8442    }
8443    #[inline]
8444    pub fn default_token(&self) -> Option<SyntaxToken> {
8445        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8446    }
8447    #[inline]
8448    pub fn insert_token(&self) -> Option<SyntaxToken> {
8449        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8450    }
8451    #[inline]
8452    pub fn into_token(&self) -> Option<SyntaxToken> {
8453        support::token(&self.syntax, SyntaxKind::INTO_KW)
8454    }
8455    #[inline]
8456    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8457        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8458    }
8459    #[inline]
8460    pub fn system_token(&self) -> Option<SyntaxToken> {
8461        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8462    }
8463    #[inline]
8464    pub fn user_token(&self) -> Option<SyntaxToken> {
8465        support::token(&self.syntax, SyntaxKind::USER_KW)
8466    }
8467    #[inline]
8468    pub fn value_token(&self) -> Option<SyntaxToken> {
8469        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8470    }
8471    #[inline]
8472    pub fn values_token(&self) -> Option<SyntaxToken> {
8473        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8474    }
8475}
8476
8477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8478pub struct IntervalType {
8479    pub(crate) syntax: SyntaxNode,
8480}
8481impl IntervalType {
8482    #[inline]
8483    pub fn literal(&self) -> Option<Literal> {
8484        support::child(&self.syntax)
8485    }
8486    #[inline]
8487    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8488        support::token(&self.syntax, SyntaxKind::L_PAREN)
8489    }
8490    #[inline]
8491    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8492        support::token(&self.syntax, SyntaxKind::R_PAREN)
8493    }
8494    #[inline]
8495    pub fn day_token(&self) -> Option<SyntaxToken> {
8496        support::token(&self.syntax, SyntaxKind::DAY_KW)
8497    }
8498    #[inline]
8499    pub fn hour_token(&self) -> Option<SyntaxToken> {
8500        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8501    }
8502    #[inline]
8503    pub fn interval_token(&self) -> Option<SyntaxToken> {
8504        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8505    }
8506    #[inline]
8507    pub fn minute_token(&self) -> Option<SyntaxToken> {
8508        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8509    }
8510    #[inline]
8511    pub fn month_token(&self) -> Option<SyntaxToken> {
8512        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8513    }
8514    #[inline]
8515    pub fn second_token(&self) -> Option<SyntaxToken> {
8516        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8517    }
8518    #[inline]
8519    pub fn to_token(&self) -> Option<SyntaxToken> {
8520        support::token(&self.syntax, SyntaxKind::TO_KW)
8521    }
8522    #[inline]
8523    pub fn year_token(&self) -> Option<SyntaxToken> {
8524        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8525    }
8526}
8527
8528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8529pub struct IntoClause {
8530    pub(crate) syntax: SyntaxNode,
8531}
8532impl IntoClause {
8533    #[inline]
8534    pub fn path(&self) -> Option<Path> {
8535        support::child(&self.syntax)
8536    }
8537    #[inline]
8538    pub fn into_token(&self) -> Option<SyntaxToken> {
8539        support::token(&self.syntax, SyntaxKind::INTO_KW)
8540    }
8541}
8542
8543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8544pub struct IntoSchema {
8545    pub(crate) syntax: SyntaxNode,
8546}
8547impl IntoSchema {
8548    #[inline]
8549    pub fn name_ref(&self) -> Option<NameRef> {
8550        support::child(&self.syntax)
8551    }
8552    #[inline]
8553    pub fn into_token(&self) -> Option<SyntaxToken> {
8554        support::token(&self.syntax, SyntaxKind::INTO_KW)
8555    }
8556}
8557
8558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8559pub struct IsDistinctFrom {
8560    pub(crate) syntax: SyntaxNode,
8561}
8562impl IsDistinctFrom {
8563    #[inline]
8564    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8565        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8566    }
8567    #[inline]
8568    pub fn from_token(&self) -> Option<SyntaxToken> {
8569        support::token(&self.syntax, SyntaxKind::FROM_KW)
8570    }
8571    #[inline]
8572    pub fn is_token(&self) -> Option<SyntaxToken> {
8573        support::token(&self.syntax, SyntaxKind::IS_KW)
8574    }
8575}
8576
8577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8578pub struct IsJson {
8579    pub(crate) syntax: SyntaxNode,
8580}
8581impl IsJson {
8582    #[inline]
8583    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8584        support::child(&self.syntax)
8585    }
8586    #[inline]
8587    pub fn is_token(&self) -> Option<SyntaxToken> {
8588        support::token(&self.syntax, SyntaxKind::IS_KW)
8589    }
8590    #[inline]
8591    pub fn json_token(&self) -> Option<SyntaxToken> {
8592        support::token(&self.syntax, SyntaxKind::JSON_KW)
8593    }
8594}
8595
8596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8597pub struct IsJsonArray {
8598    pub(crate) syntax: SyntaxNode,
8599}
8600impl IsJsonArray {
8601    #[inline]
8602    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8603        support::child(&self.syntax)
8604    }
8605    #[inline]
8606    pub fn array_token(&self) -> Option<SyntaxToken> {
8607        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8608    }
8609    #[inline]
8610    pub fn is_token(&self) -> Option<SyntaxToken> {
8611        support::token(&self.syntax, SyntaxKind::IS_KW)
8612    }
8613    #[inline]
8614    pub fn json_token(&self) -> Option<SyntaxToken> {
8615        support::token(&self.syntax, SyntaxKind::JSON_KW)
8616    }
8617}
8618
8619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8620pub struct IsJsonObject {
8621    pub(crate) syntax: SyntaxNode,
8622}
8623impl IsJsonObject {
8624    #[inline]
8625    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8626        support::child(&self.syntax)
8627    }
8628    #[inline]
8629    pub fn is_token(&self) -> Option<SyntaxToken> {
8630        support::token(&self.syntax, SyntaxKind::IS_KW)
8631    }
8632    #[inline]
8633    pub fn json_token(&self) -> Option<SyntaxToken> {
8634        support::token(&self.syntax, SyntaxKind::JSON_KW)
8635    }
8636    #[inline]
8637    pub fn object_token(&self) -> Option<SyntaxToken> {
8638        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8639    }
8640}
8641
8642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8643pub struct IsJsonScalar {
8644    pub(crate) syntax: SyntaxNode,
8645}
8646impl IsJsonScalar {
8647    #[inline]
8648    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8649        support::child(&self.syntax)
8650    }
8651    #[inline]
8652    pub fn is_token(&self) -> Option<SyntaxToken> {
8653        support::token(&self.syntax, SyntaxKind::IS_KW)
8654    }
8655    #[inline]
8656    pub fn json_token(&self) -> Option<SyntaxToken> {
8657        support::token(&self.syntax, SyntaxKind::JSON_KW)
8658    }
8659    #[inline]
8660    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8661        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8662    }
8663}
8664
8665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8666pub struct IsJsonValue {
8667    pub(crate) syntax: SyntaxNode,
8668}
8669impl IsJsonValue {
8670    #[inline]
8671    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8672        support::child(&self.syntax)
8673    }
8674    #[inline]
8675    pub fn is_token(&self) -> Option<SyntaxToken> {
8676        support::token(&self.syntax, SyntaxKind::IS_KW)
8677    }
8678    #[inline]
8679    pub fn json_token(&self) -> Option<SyntaxToken> {
8680        support::token(&self.syntax, SyntaxKind::JSON_KW)
8681    }
8682    #[inline]
8683    pub fn value_token(&self) -> Option<SyntaxToken> {
8684        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8685    }
8686}
8687
8688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8689pub struct IsNormalized {
8690    pub(crate) syntax: SyntaxNode,
8691}
8692impl IsNormalized {
8693    #[inline]
8694    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8695        support::child(&self.syntax)
8696    }
8697    #[inline]
8698    pub fn is_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::IS_KW)
8700    }
8701    #[inline]
8702    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8703        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8704    }
8705}
8706
8707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8708pub struct IsNot {
8709    pub(crate) syntax: SyntaxNode,
8710}
8711impl IsNot {
8712    #[inline]
8713    pub fn is_token(&self) -> Option<SyntaxToken> {
8714        support::token(&self.syntax, SyntaxKind::IS_KW)
8715    }
8716    #[inline]
8717    pub fn not_token(&self) -> Option<SyntaxToken> {
8718        support::token(&self.syntax, SyntaxKind::NOT_KW)
8719    }
8720}
8721
8722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8723pub struct IsNotDistinctFrom {
8724    pub(crate) syntax: SyntaxNode,
8725}
8726impl IsNotDistinctFrom {
8727    #[inline]
8728    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8729        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8730    }
8731    #[inline]
8732    pub fn from_token(&self) -> Option<SyntaxToken> {
8733        support::token(&self.syntax, SyntaxKind::FROM_KW)
8734    }
8735    #[inline]
8736    pub fn is_token(&self) -> Option<SyntaxToken> {
8737        support::token(&self.syntax, SyntaxKind::IS_KW)
8738    }
8739    #[inline]
8740    pub fn not_token(&self) -> Option<SyntaxToken> {
8741        support::token(&self.syntax, SyntaxKind::NOT_KW)
8742    }
8743}
8744
8745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8746pub struct IsNotJson {
8747    pub(crate) syntax: SyntaxNode,
8748}
8749impl IsNotJson {
8750    #[inline]
8751    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8752        support::child(&self.syntax)
8753    }
8754    #[inline]
8755    pub fn is_token(&self) -> Option<SyntaxToken> {
8756        support::token(&self.syntax, SyntaxKind::IS_KW)
8757    }
8758    #[inline]
8759    pub fn json_token(&self) -> Option<SyntaxToken> {
8760        support::token(&self.syntax, SyntaxKind::JSON_KW)
8761    }
8762    #[inline]
8763    pub fn not_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::NOT_KW)
8765    }
8766}
8767
8768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8769pub struct IsNotJsonArray {
8770    pub(crate) syntax: SyntaxNode,
8771}
8772impl IsNotJsonArray {
8773    #[inline]
8774    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8775        support::child(&self.syntax)
8776    }
8777    #[inline]
8778    pub fn array_token(&self) -> Option<SyntaxToken> {
8779        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8780    }
8781    #[inline]
8782    pub fn is_token(&self) -> Option<SyntaxToken> {
8783        support::token(&self.syntax, SyntaxKind::IS_KW)
8784    }
8785    #[inline]
8786    pub fn json_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::JSON_KW)
8788    }
8789    #[inline]
8790    pub fn not_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::NOT_KW)
8792    }
8793}
8794
8795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8796pub struct IsNotJsonObject {
8797    pub(crate) syntax: SyntaxNode,
8798}
8799impl IsNotJsonObject {
8800    #[inline]
8801    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8802        support::child(&self.syntax)
8803    }
8804    #[inline]
8805    pub fn is_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::IS_KW)
8807    }
8808    #[inline]
8809    pub fn json_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::JSON_KW)
8811    }
8812    #[inline]
8813    pub fn not_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::NOT_KW)
8815    }
8816    #[inline]
8817    pub fn object_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8819    }
8820}
8821
8822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8823pub struct IsNotJsonScalar {
8824    pub(crate) syntax: SyntaxNode,
8825}
8826impl IsNotJsonScalar {
8827    #[inline]
8828    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8829        support::child(&self.syntax)
8830    }
8831    #[inline]
8832    pub fn is_token(&self) -> Option<SyntaxToken> {
8833        support::token(&self.syntax, SyntaxKind::IS_KW)
8834    }
8835    #[inline]
8836    pub fn json_token(&self) -> Option<SyntaxToken> {
8837        support::token(&self.syntax, SyntaxKind::JSON_KW)
8838    }
8839    #[inline]
8840    pub fn not_token(&self) -> Option<SyntaxToken> {
8841        support::token(&self.syntax, SyntaxKind::NOT_KW)
8842    }
8843    #[inline]
8844    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8846    }
8847}
8848
8849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8850pub struct IsNotJsonValue {
8851    pub(crate) syntax: SyntaxNode,
8852}
8853impl IsNotJsonValue {
8854    #[inline]
8855    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8856        support::child(&self.syntax)
8857    }
8858    #[inline]
8859    pub fn is_token(&self) -> Option<SyntaxToken> {
8860        support::token(&self.syntax, SyntaxKind::IS_KW)
8861    }
8862    #[inline]
8863    pub fn json_token(&self) -> Option<SyntaxToken> {
8864        support::token(&self.syntax, SyntaxKind::JSON_KW)
8865    }
8866    #[inline]
8867    pub fn not_token(&self) -> Option<SyntaxToken> {
8868        support::token(&self.syntax, SyntaxKind::NOT_KW)
8869    }
8870    #[inline]
8871    pub fn value_token(&self) -> Option<SyntaxToken> {
8872        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8873    }
8874}
8875
8876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8877pub struct IsNotNormalized {
8878    pub(crate) syntax: SyntaxNode,
8879}
8880impl IsNotNormalized {
8881    #[inline]
8882    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8883        support::child(&self.syntax)
8884    }
8885    #[inline]
8886    pub fn is_token(&self) -> Option<SyntaxToken> {
8887        support::token(&self.syntax, SyntaxKind::IS_KW)
8888    }
8889    #[inline]
8890    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8891        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8892    }
8893    #[inline]
8894    pub fn not_token(&self) -> Option<SyntaxToken> {
8895        support::token(&self.syntax, SyntaxKind::NOT_KW)
8896    }
8897}
8898
8899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8900pub struct Join {
8901    pub(crate) syntax: SyntaxNode,
8902}
8903impl Join {
8904    #[inline]
8905    pub fn from_item(&self) -> Option<FromItem> {
8906        support::child(&self.syntax)
8907    }
8908    #[inline]
8909    pub fn join_type(&self) -> Option<JoinType> {
8910        support::child(&self.syntax)
8911    }
8912    #[inline]
8913    pub fn on_clause(&self) -> Option<OnClause> {
8914        support::child(&self.syntax)
8915    }
8916    #[inline]
8917    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8918        support::child(&self.syntax)
8919    }
8920    #[inline]
8921    pub fn natural_token(&self) -> Option<SyntaxToken> {
8922        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8923    }
8924}
8925
8926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8927pub struct JoinCross {
8928    pub(crate) syntax: SyntaxNode,
8929}
8930impl JoinCross {
8931    #[inline]
8932    pub fn cross_token(&self) -> Option<SyntaxToken> {
8933        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8934    }
8935    #[inline]
8936    pub fn join_token(&self) -> Option<SyntaxToken> {
8937        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8938    }
8939}
8940
8941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8942pub struct JoinExpr {
8943    pub(crate) syntax: SyntaxNode,
8944}
8945impl JoinExpr {
8946    #[inline]
8947    pub fn from_item(&self) -> Option<FromItem> {
8948        support::child(&self.syntax)
8949    }
8950    #[inline]
8951    pub fn join(&self) -> Option<Join> {
8952        support::child(&self.syntax)
8953    }
8954    #[inline]
8955    pub fn join_expr(&self) -> Option<JoinExpr> {
8956        support::child(&self.syntax)
8957    }
8958}
8959
8960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8961pub struct JoinFull {
8962    pub(crate) syntax: SyntaxNode,
8963}
8964impl JoinFull {
8965    #[inline]
8966    pub fn full_token(&self) -> Option<SyntaxToken> {
8967        support::token(&self.syntax, SyntaxKind::FULL_KW)
8968    }
8969    #[inline]
8970    pub fn join_token(&self) -> Option<SyntaxToken> {
8971        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8972    }
8973    #[inline]
8974    pub fn outer_token(&self) -> Option<SyntaxToken> {
8975        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8976    }
8977}
8978
8979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8980pub struct JoinInner {
8981    pub(crate) syntax: SyntaxNode,
8982}
8983impl JoinInner {
8984    #[inline]
8985    pub fn inner_token(&self) -> Option<SyntaxToken> {
8986        support::token(&self.syntax, SyntaxKind::INNER_KW)
8987    }
8988    #[inline]
8989    pub fn join_token(&self) -> Option<SyntaxToken> {
8990        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8991    }
8992}
8993
8994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8995pub struct JoinLeft {
8996    pub(crate) syntax: SyntaxNode,
8997}
8998impl JoinLeft {
8999    #[inline]
9000    pub fn join_token(&self) -> Option<SyntaxToken> {
9001        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9002    }
9003    #[inline]
9004    pub fn left_token(&self) -> Option<SyntaxToken> {
9005        support::token(&self.syntax, SyntaxKind::LEFT_KW)
9006    }
9007    #[inline]
9008    pub fn outer_token(&self) -> Option<SyntaxToken> {
9009        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9010    }
9011}
9012
9013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9014pub struct JoinRight {
9015    pub(crate) syntax: SyntaxNode,
9016}
9017impl JoinRight {
9018    #[inline]
9019    pub fn join_token(&self) -> Option<SyntaxToken> {
9020        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9021    }
9022    #[inline]
9023    pub fn outer_token(&self) -> Option<SyntaxToken> {
9024        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9025    }
9026    #[inline]
9027    pub fn right_token(&self) -> Option<SyntaxToken> {
9028        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9029    }
9030}
9031
9032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9033pub struct JoinUsingClause {
9034    pub(crate) syntax: SyntaxNode,
9035}
9036impl JoinUsingClause {
9037    #[inline]
9038    pub fn alias(&self) -> Option<Alias> {
9039        support::child(&self.syntax)
9040    }
9041    #[inline]
9042    pub fn column_list(&self) -> Option<ColumnList> {
9043        support::child(&self.syntax)
9044    }
9045    #[inline]
9046    pub fn using_token(&self) -> Option<SyntaxToken> {
9047        support::token(&self.syntax, SyntaxKind::USING_KW)
9048    }
9049}
9050
9051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9052pub struct JsonArrayAggFn {
9053    pub(crate) syntax: SyntaxNode,
9054}
9055impl JsonArrayAggFn {
9056    #[inline]
9057    pub fn expr(&self) -> Option<Expr> {
9058        support::child(&self.syntax)
9059    }
9060    #[inline]
9061    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9062        support::child(&self.syntax)
9063    }
9064    #[inline]
9065    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9066        support::child(&self.syntax)
9067    }
9068    #[inline]
9069    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9070        support::children(&self.syntax)
9071    }
9072    #[inline]
9073    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9074        support::token(&self.syntax, SyntaxKind::L_PAREN)
9075    }
9076    #[inline]
9077    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9078        support::token(&self.syntax, SyntaxKind::R_PAREN)
9079    }
9080    #[inline]
9081    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9082        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9083    }
9084}
9085
9086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9087pub struct JsonArrayFn {
9088    pub(crate) syntax: SyntaxNode,
9089}
9090impl JsonArrayFn {
9091    #[inline]
9092    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9093        support::children(&self.syntax)
9094    }
9095    #[inline]
9096    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9097        support::child(&self.syntax)
9098    }
9099    #[inline]
9100    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9101        support::child(&self.syntax)
9102    }
9103    #[inline]
9104    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9105        support::children(&self.syntax)
9106    }
9107    #[inline]
9108    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9109        support::token(&self.syntax, SyntaxKind::L_PAREN)
9110    }
9111    #[inline]
9112    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9113        support::token(&self.syntax, SyntaxKind::R_PAREN)
9114    }
9115    #[inline]
9116    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9117        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9118    }
9119}
9120
9121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9122pub struct JsonBehaviorClause {
9123    pub(crate) syntax: SyntaxNode,
9124}
9125impl JsonBehaviorClause {
9126    #[inline]
9127    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9128        support::child(&self.syntax)
9129    }
9130}
9131
9132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9133pub struct JsonBehaviorDefault {
9134    pub(crate) syntax: SyntaxNode,
9135}
9136impl JsonBehaviorDefault {
9137    #[inline]
9138    pub fn expr(&self) -> Option<Expr> {
9139        support::child(&self.syntax)
9140    }
9141    #[inline]
9142    pub fn default_token(&self) -> Option<SyntaxToken> {
9143        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9144    }
9145}
9146
9147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9148pub struct JsonBehaviorEmptyArray {
9149    pub(crate) syntax: SyntaxNode,
9150}
9151impl JsonBehaviorEmptyArray {
9152    #[inline]
9153    pub fn array_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9155    }
9156    #[inline]
9157    pub fn empty_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9159    }
9160}
9161
9162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9163pub struct JsonBehaviorEmptyObject {
9164    pub(crate) syntax: SyntaxNode,
9165}
9166impl JsonBehaviorEmptyObject {
9167    #[inline]
9168    pub fn empty_token(&self) -> Option<SyntaxToken> {
9169        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9170    }
9171    #[inline]
9172    pub fn object_token(&self) -> Option<SyntaxToken> {
9173        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9174    }
9175}
9176
9177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9178pub struct JsonBehaviorError {
9179    pub(crate) syntax: SyntaxNode,
9180}
9181impl JsonBehaviorError {
9182    #[inline]
9183    pub fn error_token(&self) -> Option<SyntaxToken> {
9184        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9185    }
9186}
9187
9188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9189pub struct JsonBehaviorFalse {
9190    pub(crate) syntax: SyntaxNode,
9191}
9192impl JsonBehaviorFalse {
9193    #[inline]
9194    pub fn false_token(&self) -> Option<SyntaxToken> {
9195        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9196    }
9197}
9198
9199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9200pub struct JsonBehaviorNull {
9201    pub(crate) syntax: SyntaxNode,
9202}
9203impl JsonBehaviorNull {
9204    #[inline]
9205    pub fn null_token(&self) -> Option<SyntaxToken> {
9206        support::token(&self.syntax, SyntaxKind::NULL_KW)
9207    }
9208}
9209
9210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9211pub struct JsonBehaviorTrue {
9212    pub(crate) syntax: SyntaxNode,
9213}
9214impl JsonBehaviorTrue {
9215    #[inline]
9216    pub fn true_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9218    }
9219}
9220
9221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9222pub struct JsonBehaviorUnknown {
9223    pub(crate) syntax: SyntaxNode,
9224}
9225impl JsonBehaviorUnknown {
9226    #[inline]
9227    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9228        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9229    }
9230}
9231
9232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9233pub struct JsonEncodingClause {
9234    pub(crate) syntax: SyntaxNode,
9235}
9236impl JsonEncodingClause {
9237    #[inline]
9238    pub fn name_ref(&self) -> Option<NameRef> {
9239        support::child(&self.syntax)
9240    }
9241    #[inline]
9242    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9243        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9244    }
9245}
9246
9247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9248pub struct JsonExistsFn {
9249    pub(crate) syntax: SyntaxNode,
9250}
9251impl JsonExistsFn {
9252    #[inline]
9253    pub fn expr(&self) -> Option<Expr> {
9254        support::child(&self.syntax)
9255    }
9256    #[inline]
9257    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9258        support::child(&self.syntax)
9259    }
9260    #[inline]
9261    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9262        support::child(&self.syntax)
9263    }
9264    #[inline]
9265    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9266        support::child(&self.syntax)
9267    }
9268    #[inline]
9269    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9270        support::token(&self.syntax, SyntaxKind::L_PAREN)
9271    }
9272    #[inline]
9273    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9274        support::token(&self.syntax, SyntaxKind::R_PAREN)
9275    }
9276    #[inline]
9277    pub fn comma_token(&self) -> Option<SyntaxToken> {
9278        support::token(&self.syntax, SyntaxKind::COMMA)
9279    }
9280    #[inline]
9281    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9282        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9283    }
9284}
9285
9286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9287pub struct JsonExprFormat {
9288    pub(crate) syntax: SyntaxNode,
9289}
9290impl JsonExprFormat {
9291    #[inline]
9292    pub fn expr(&self) -> Option<Expr> {
9293        support::child(&self.syntax)
9294    }
9295    #[inline]
9296    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9297        support::child(&self.syntax)
9298    }
9299}
9300
9301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9302pub struct JsonFn {
9303    pub(crate) syntax: SyntaxNode,
9304}
9305impl JsonFn {
9306    #[inline]
9307    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9308        support::child(&self.syntax)
9309    }
9310    #[inline]
9311    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9312        support::child(&self.syntax)
9313    }
9314    #[inline]
9315    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9316        support::token(&self.syntax, SyntaxKind::L_PAREN)
9317    }
9318    #[inline]
9319    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9320        support::token(&self.syntax, SyntaxKind::R_PAREN)
9321    }
9322    #[inline]
9323    pub fn json_token(&self) -> Option<SyntaxToken> {
9324        support::token(&self.syntax, SyntaxKind::JSON_KW)
9325    }
9326}
9327
9328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9329pub struct JsonFormatClause {
9330    pub(crate) syntax: SyntaxNode,
9331}
9332impl JsonFormatClause {
9333    #[inline]
9334    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9335        support::child(&self.syntax)
9336    }
9337    #[inline]
9338    pub fn format_token(&self) -> Option<SyntaxToken> {
9339        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9340    }
9341    #[inline]
9342    pub fn json_token(&self) -> Option<SyntaxToken> {
9343        support::token(&self.syntax, SyntaxKind::JSON_KW)
9344    }
9345}
9346
9347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9348pub struct JsonKeyValue {
9349    pub(crate) syntax: SyntaxNode,
9350}
9351impl JsonKeyValue {
9352    #[inline]
9353    pub fn expr(&self) -> Option<Expr> {
9354        support::child(&self.syntax)
9355    }
9356    #[inline]
9357    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9358        support::child(&self.syntax)
9359    }
9360    #[inline]
9361    pub fn colon_token(&self) -> Option<SyntaxToken> {
9362        support::token(&self.syntax, SyntaxKind::COLON)
9363    }
9364}
9365
9366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9367pub struct JsonKeysUniqueClause {
9368    pub(crate) syntax: SyntaxNode,
9369}
9370impl JsonKeysUniqueClause {
9371    #[inline]
9372    pub fn keys_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9374    }
9375    #[inline]
9376    pub fn unique_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9378    }
9379    #[inline]
9380    pub fn with_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::WITH_KW)
9382    }
9383    #[inline]
9384    pub fn without_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9386    }
9387}
9388
9389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9390pub struct JsonNullClause {
9391    pub(crate) syntax: SyntaxNode,
9392}
9393impl JsonNullClause {
9394    #[inline]
9395    pub fn absent_token(&self) -> Option<SyntaxToken> {
9396        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9397    }
9398    #[inline]
9399    pub fn null_token(&self) -> Option<SyntaxToken> {
9400        support::token(&self.syntax, SyntaxKind::NULL_KW)
9401    }
9402    #[inline]
9403    pub fn on_token(&self) -> Option<SyntaxToken> {
9404        support::token(&self.syntax, SyntaxKind::ON_KW)
9405    }
9406}
9407
9408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9409pub struct JsonObjectAggFn {
9410    pub(crate) syntax: SyntaxNode,
9411}
9412impl JsonObjectAggFn {
9413    #[inline]
9414    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9415        support::child(&self.syntax)
9416    }
9417    #[inline]
9418    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9419        support::child(&self.syntax)
9420    }
9421    #[inline]
9422    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9423        support::child(&self.syntax)
9424    }
9425    #[inline]
9426    pub fn returning_clause(&self) -> Option<ReturningClause> {
9427        support::child(&self.syntax)
9428    }
9429    #[inline]
9430    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9431        support::token(&self.syntax, SyntaxKind::L_PAREN)
9432    }
9433    #[inline]
9434    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9435        support::token(&self.syntax, SyntaxKind::R_PAREN)
9436    }
9437    #[inline]
9438    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9439        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9440    }
9441}
9442
9443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9444pub struct JsonObjectFn {
9445    pub(crate) syntax: SyntaxNode,
9446}
9447impl JsonObjectFn {
9448    #[inline]
9449    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9450        support::children(&self.syntax)
9451    }
9452    #[inline]
9453    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9454        support::child(&self.syntax)
9455    }
9456    #[inline]
9457    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9458        support::child(&self.syntax)
9459    }
9460    #[inline]
9461    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9462        support::child(&self.syntax)
9463    }
9464    #[inline]
9465    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9466        support::token(&self.syntax, SyntaxKind::L_PAREN)
9467    }
9468    #[inline]
9469    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9470        support::token(&self.syntax, SyntaxKind::R_PAREN)
9471    }
9472    #[inline]
9473    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9474        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9475    }
9476}
9477
9478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9479pub struct JsonOnEmptyClause {
9480    pub(crate) syntax: SyntaxNode,
9481}
9482impl JsonOnEmptyClause {
9483    #[inline]
9484    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9485        support::child(&self.syntax)
9486    }
9487    #[inline]
9488    pub fn empty_token(&self) -> Option<SyntaxToken> {
9489        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9490    }
9491    #[inline]
9492    pub fn on_token(&self) -> Option<SyntaxToken> {
9493        support::token(&self.syntax, SyntaxKind::ON_KW)
9494    }
9495}
9496
9497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9498pub struct JsonOnErrorClause {
9499    pub(crate) syntax: SyntaxNode,
9500}
9501impl JsonOnErrorClause {
9502    #[inline]
9503    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9504        support::child(&self.syntax)
9505    }
9506    #[inline]
9507    pub fn error_token(&self) -> Option<SyntaxToken> {
9508        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9509    }
9510    #[inline]
9511    pub fn on_token(&self) -> Option<SyntaxToken> {
9512        support::token(&self.syntax, SyntaxKind::ON_KW)
9513    }
9514}
9515
9516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9517pub struct JsonPassingArg {
9518    pub(crate) syntax: SyntaxNode,
9519}
9520impl JsonPassingArg {
9521    #[inline]
9522    pub fn expr(&self) -> Option<Expr> {
9523        support::child(&self.syntax)
9524    }
9525}
9526
9527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9528pub struct JsonPassingClause {
9529    pub(crate) syntax: SyntaxNode,
9530}
9531impl JsonPassingClause {
9532    #[inline]
9533    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9534        support::children(&self.syntax)
9535    }
9536    #[inline]
9537    pub fn passing_token(&self) -> Option<SyntaxToken> {
9538        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9539    }
9540}
9541
9542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9543pub struct JsonPathClause {
9544    pub(crate) syntax: SyntaxNode,
9545}
9546impl JsonPathClause {
9547    #[inline]
9548    pub fn expr(&self) -> Option<Expr> {
9549        support::child(&self.syntax)
9550    }
9551    #[inline]
9552    pub fn path_token(&self) -> Option<SyntaxToken> {
9553        support::token(&self.syntax, SyntaxKind::PATH_KW)
9554    }
9555}
9556
9557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9558pub struct JsonQueryFn {
9559    pub(crate) syntax: SyntaxNode,
9560}
9561impl JsonQueryFn {
9562    #[inline]
9563    pub fn expr(&self) -> Option<Expr> {
9564        support::child(&self.syntax)
9565    }
9566    #[inline]
9567    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9568        support::child(&self.syntax)
9569    }
9570    #[inline]
9571    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9572        support::child(&self.syntax)
9573    }
9574    #[inline]
9575    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9576        support::child(&self.syntax)
9577    }
9578    #[inline]
9579    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9580        support::child(&self.syntax)
9581    }
9582    #[inline]
9583    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9584        support::child(&self.syntax)
9585    }
9586    #[inline]
9587    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9588        support::child(&self.syntax)
9589    }
9590    #[inline]
9591    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9592        support::token(&self.syntax, SyntaxKind::L_PAREN)
9593    }
9594    #[inline]
9595    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9596        support::token(&self.syntax, SyntaxKind::R_PAREN)
9597    }
9598    #[inline]
9599    pub fn comma_token(&self) -> Option<SyntaxToken> {
9600        support::token(&self.syntax, SyntaxKind::COMMA)
9601    }
9602    #[inline]
9603    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9604        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9605    }
9606}
9607
9608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9609pub struct JsonQuotesClause {
9610    pub(crate) syntax: SyntaxNode,
9611}
9612impl JsonQuotesClause {
9613    #[inline]
9614    pub fn keep_token(&self) -> Option<SyntaxToken> {
9615        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9616    }
9617    #[inline]
9618    pub fn omit_token(&self) -> Option<SyntaxToken> {
9619        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9620    }
9621    #[inline]
9622    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9623        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9624    }
9625}
9626
9627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9628pub struct JsonReturningClause {
9629    pub(crate) syntax: SyntaxNode,
9630}
9631impl JsonReturningClause {
9632    #[inline]
9633    pub fn ty(&self) -> Option<Type> {
9634        support::child(&self.syntax)
9635    }
9636    #[inline]
9637    pub fn returning_token(&self) -> Option<SyntaxToken> {
9638        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9639    }
9640}
9641
9642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9643pub struct JsonScalarFn {
9644    pub(crate) syntax: SyntaxNode,
9645}
9646impl JsonScalarFn {
9647    #[inline]
9648    pub fn expr(&self) -> Option<Expr> {
9649        support::child(&self.syntax)
9650    }
9651    #[inline]
9652    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9653        support::token(&self.syntax, SyntaxKind::L_PAREN)
9654    }
9655    #[inline]
9656    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9657        support::token(&self.syntax, SyntaxKind::R_PAREN)
9658    }
9659    #[inline]
9660    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9661        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9662    }
9663}
9664
9665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9666pub struct JsonSelectFormat {
9667    pub(crate) syntax: SyntaxNode,
9668}
9669impl JsonSelectFormat {
9670    #[inline]
9671    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9672        support::child(&self.syntax)
9673    }
9674    #[inline]
9675    pub fn select_variant(&self) -> Option<SelectVariant> {
9676        support::child(&self.syntax)
9677    }
9678}
9679
9680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9681pub struct JsonSerializeFn {
9682    pub(crate) syntax: SyntaxNode,
9683}
9684impl JsonSerializeFn {
9685    #[inline]
9686    pub fn expr(&self) -> Option<Expr> {
9687        support::child(&self.syntax)
9688    }
9689    #[inline]
9690    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9691        support::child(&self.syntax)
9692    }
9693    #[inline]
9694    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9695        support::child(&self.syntax)
9696    }
9697    #[inline]
9698    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9699        support::token(&self.syntax, SyntaxKind::L_PAREN)
9700    }
9701    #[inline]
9702    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9703        support::token(&self.syntax, SyntaxKind::R_PAREN)
9704    }
9705    #[inline]
9706    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9707        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9708    }
9709}
9710
9711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9712pub struct JsonTable {
9713    pub(crate) syntax: SyntaxNode,
9714}
9715impl JsonTable {
9716    #[inline]
9717    pub fn expr(&self) -> Option<Expr> {
9718        support::child(&self.syntax)
9719    }
9720    #[inline]
9721    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9722        support::child(&self.syntax)
9723    }
9724    #[inline]
9725    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9726        support::child(&self.syntax)
9727    }
9728    #[inline]
9729    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9730        support::child(&self.syntax)
9731    }
9732    #[inline]
9733    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9734        support::child(&self.syntax)
9735    }
9736    #[inline]
9737    pub fn name(&self) -> Option<Name> {
9738        support::child(&self.syntax)
9739    }
9740    #[inline]
9741    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9742        support::token(&self.syntax, SyntaxKind::L_PAREN)
9743    }
9744    #[inline]
9745    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9746        support::token(&self.syntax, SyntaxKind::R_PAREN)
9747    }
9748    #[inline]
9749    pub fn comma_token(&self) -> Option<SyntaxToken> {
9750        support::token(&self.syntax, SyntaxKind::COMMA)
9751    }
9752    #[inline]
9753    pub fn as_token(&self) -> Option<SyntaxToken> {
9754        support::token(&self.syntax, SyntaxKind::AS_KW)
9755    }
9756    #[inline]
9757    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9758        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9759    }
9760}
9761
9762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9763pub struct JsonTableColumn {
9764    pub(crate) syntax: SyntaxNode,
9765}
9766impl JsonTableColumn {
9767    #[inline]
9768    pub fn expr(&self) -> Option<Expr> {
9769        support::child(&self.syntax)
9770    }
9771    #[inline]
9772    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9773        support::child(&self.syntax)
9774    }
9775    #[inline]
9776    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9777        support::child(&self.syntax)
9778    }
9779    #[inline]
9780    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9781        support::child(&self.syntax)
9782    }
9783    #[inline]
9784    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9785        support::child(&self.syntax)
9786    }
9787    #[inline]
9788    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9789        support::child(&self.syntax)
9790    }
9791    #[inline]
9792    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9793        support::child(&self.syntax)
9794    }
9795    #[inline]
9796    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9797        support::child(&self.syntax)
9798    }
9799    #[inline]
9800    pub fn name(&self) -> Option<Name> {
9801        support::child(&self.syntax)
9802    }
9803    #[inline]
9804    pub fn ty(&self) -> Option<Type> {
9805        support::child(&self.syntax)
9806    }
9807    #[inline]
9808    pub fn as_token(&self) -> Option<SyntaxToken> {
9809        support::token(&self.syntax, SyntaxKind::AS_KW)
9810    }
9811    #[inline]
9812    pub fn exists_token(&self) -> Option<SyntaxToken> {
9813        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9814    }
9815    #[inline]
9816    pub fn for_token(&self) -> Option<SyntaxToken> {
9817        support::token(&self.syntax, SyntaxKind::FOR_KW)
9818    }
9819    #[inline]
9820    pub fn nested_token(&self) -> Option<SyntaxToken> {
9821        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9822    }
9823    #[inline]
9824    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9825        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9826    }
9827    #[inline]
9828    pub fn path_token(&self) -> Option<SyntaxToken> {
9829        support::token(&self.syntax, SyntaxKind::PATH_KW)
9830    }
9831}
9832
9833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9834pub struct JsonTableColumnList {
9835    pub(crate) syntax: SyntaxNode,
9836}
9837impl JsonTableColumnList {
9838    #[inline]
9839    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9840        support::children(&self.syntax)
9841    }
9842    #[inline]
9843    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9844        support::token(&self.syntax, SyntaxKind::L_PAREN)
9845    }
9846    #[inline]
9847    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9848        support::token(&self.syntax, SyntaxKind::R_PAREN)
9849    }
9850    #[inline]
9851    pub fn columns_token(&self) -> Option<SyntaxToken> {
9852        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9853    }
9854}
9855
9856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9857pub struct JsonValueExpr {
9858    pub(crate) syntax: SyntaxNode,
9859}
9860impl JsonValueExpr {
9861    #[inline]
9862    pub fn expr(&self) -> Option<Expr> {
9863        support::child(&self.syntax)
9864    }
9865    #[inline]
9866    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9867        support::child(&self.syntax)
9868    }
9869}
9870
9871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9872pub struct JsonValueFn {
9873    pub(crate) syntax: SyntaxNode,
9874}
9875impl JsonValueFn {
9876    #[inline]
9877    pub fn expr(&self) -> Option<Expr> {
9878        support::child(&self.syntax)
9879    }
9880    #[inline]
9881    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9882        support::child(&self.syntax)
9883    }
9884    #[inline]
9885    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9886        support::child(&self.syntax)
9887    }
9888    #[inline]
9889    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9890        support::child(&self.syntax)
9891    }
9892    #[inline]
9893    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9894        support::child(&self.syntax)
9895    }
9896    #[inline]
9897    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9898        support::token(&self.syntax, SyntaxKind::L_PAREN)
9899    }
9900    #[inline]
9901    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9902        support::token(&self.syntax, SyntaxKind::R_PAREN)
9903    }
9904    #[inline]
9905    pub fn comma_token(&self) -> Option<SyntaxToken> {
9906        support::token(&self.syntax, SyntaxKind::COMMA)
9907    }
9908    #[inline]
9909    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9910        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9911    }
9912}
9913
9914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9915pub struct JsonWrapperBehaviorClause {
9916    pub(crate) syntax: SyntaxNode,
9917}
9918impl JsonWrapperBehaviorClause {
9919    #[inline]
9920    pub fn array_token(&self) -> Option<SyntaxToken> {
9921        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9922    }
9923    #[inline]
9924    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9925        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9926    }
9927    #[inline]
9928    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9929        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9930    }
9931    #[inline]
9932    pub fn with_token(&self) -> Option<SyntaxToken> {
9933        support::token(&self.syntax, SyntaxKind::WITH_KW)
9934    }
9935    #[inline]
9936    pub fn without_token(&self) -> Option<SyntaxToken> {
9937        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9938    }
9939    #[inline]
9940    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9941        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9942    }
9943}
9944
9945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9946pub struct LanguageFuncOption {
9947    pub(crate) syntax: SyntaxNode,
9948}
9949impl LanguageFuncOption {
9950    #[inline]
9951    pub fn name_ref(&self) -> Option<NameRef> {
9952        support::child(&self.syntax)
9953    }
9954    #[inline]
9955    pub fn language_token(&self) -> Option<SyntaxToken> {
9956        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9957    }
9958}
9959
9960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9961pub struct LeakproofFuncOption {
9962    pub(crate) syntax: SyntaxNode,
9963}
9964impl LeakproofFuncOption {
9965    #[inline]
9966    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9967        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9968    }
9969    #[inline]
9970    pub fn not_token(&self) -> Option<SyntaxToken> {
9971        support::token(&self.syntax, SyntaxKind::NOT_KW)
9972    }
9973}
9974
9975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9976pub struct LikeClause {
9977    pub(crate) syntax: SyntaxNode,
9978}
9979impl LikeClause {
9980    #[inline]
9981    pub fn like_options(&self) -> AstChildren<LikeOption> {
9982        support::children(&self.syntax)
9983    }
9984    #[inline]
9985    pub fn path(&self) -> Option<Path> {
9986        support::child(&self.syntax)
9987    }
9988    #[inline]
9989    pub fn like_token(&self) -> Option<SyntaxToken> {
9990        support::token(&self.syntax, SyntaxKind::LIKE_KW)
9991    }
9992}
9993
9994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9995pub struct LikeOption {
9996    pub(crate) syntax: SyntaxNode,
9997}
9998impl LikeOption {
9999    #[inline]
10000    pub fn all_token(&self) -> Option<SyntaxToken> {
10001        support::token(&self.syntax, SyntaxKind::ALL_KW)
10002    }
10003    #[inline]
10004    pub fn comments_token(&self) -> Option<SyntaxToken> {
10005        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
10006    }
10007    #[inline]
10008    pub fn compression_token(&self) -> Option<SyntaxToken> {
10009        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
10010    }
10011    #[inline]
10012    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10013        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10014    }
10015    #[inline]
10016    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10017        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10018    }
10019    #[inline]
10020    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10021        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10022    }
10023    #[inline]
10024    pub fn generated_token(&self) -> Option<SyntaxToken> {
10025        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10026    }
10027    #[inline]
10028    pub fn identity_token(&self) -> Option<SyntaxToken> {
10029        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10030    }
10031    #[inline]
10032    pub fn including_token(&self) -> Option<SyntaxToken> {
10033        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10034    }
10035    #[inline]
10036    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10037        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10038    }
10039    #[inline]
10040    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10041        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10042    }
10043    #[inline]
10044    pub fn storage_token(&self) -> Option<SyntaxToken> {
10045        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10046    }
10047}
10048
10049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10050pub struct LimitClause {
10051    pub(crate) syntax: SyntaxNode,
10052}
10053impl LimitClause {
10054    #[inline]
10055    pub fn expr(&self) -> Option<Expr> {
10056        support::child(&self.syntax)
10057    }
10058    #[inline]
10059    pub fn all_token(&self) -> Option<SyntaxToken> {
10060        support::token(&self.syntax, SyntaxKind::ALL_KW)
10061    }
10062    #[inline]
10063    pub fn limit_token(&self) -> Option<SyntaxToken> {
10064        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10065    }
10066}
10067
10068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10069pub struct LimitToTables {
10070    pub(crate) syntax: SyntaxNode,
10071}
10072impl LimitToTables {
10073    #[inline]
10074    pub fn name_refs(&self) -> AstChildren<NameRef> {
10075        support::children(&self.syntax)
10076    }
10077    #[inline]
10078    pub fn limit_token(&self) -> Option<SyntaxToken> {
10079        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10080    }
10081    #[inline]
10082    pub fn to_token(&self) -> Option<SyntaxToken> {
10083        support::token(&self.syntax, SyntaxKind::TO_KW)
10084    }
10085}
10086
10087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10088pub struct Listen {
10089    pub(crate) syntax: SyntaxNode,
10090}
10091impl Listen {
10092    #[inline]
10093    pub fn name(&self) -> Option<Name> {
10094        support::child(&self.syntax)
10095    }
10096    #[inline]
10097    pub fn listen_token(&self) -> Option<SyntaxToken> {
10098        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10099    }
10100}
10101
10102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10103pub struct Literal {
10104    pub(crate) syntax: SyntaxNode,
10105}
10106impl Literal {}
10107
10108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10109pub struct Load {
10110    pub(crate) syntax: SyntaxNode,
10111}
10112impl Load {
10113    #[inline]
10114    pub fn literal(&self) -> Option<Literal> {
10115        support::child(&self.syntax)
10116    }
10117    #[inline]
10118    pub fn load_token(&self) -> Option<SyntaxToken> {
10119        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10120    }
10121}
10122
10123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10124pub struct Lock {
10125    pub(crate) syntax: SyntaxNode,
10126}
10127impl Lock {
10128    #[inline]
10129    pub fn table_list(&self) -> Option<TableList> {
10130        support::child(&self.syntax)
10131    }
10132    #[inline]
10133    pub fn lock_token(&self) -> Option<SyntaxToken> {
10134        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10135    }
10136    #[inline]
10137    pub fn table_token(&self) -> Option<SyntaxToken> {
10138        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10139    }
10140}
10141
10142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10143pub struct LockingClause {
10144    pub(crate) syntax: SyntaxNode,
10145}
10146impl LockingClause {
10147    #[inline]
10148    pub fn for_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::FOR_KW)
10150    }
10151}
10152
10153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10154pub struct Lteq {
10155    pub(crate) syntax: SyntaxNode,
10156}
10157impl Lteq {
10158    #[inline]
10159    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10160        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10161    }
10162    #[inline]
10163    pub fn eq_token(&self) -> Option<SyntaxToken> {
10164        support::token(&self.syntax, SyntaxKind::EQ)
10165    }
10166}
10167
10168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10169pub struct MatchFull {
10170    pub(crate) syntax: SyntaxNode,
10171}
10172impl MatchFull {
10173    #[inline]
10174    pub fn full_token(&self) -> Option<SyntaxToken> {
10175        support::token(&self.syntax, SyntaxKind::FULL_KW)
10176    }
10177    #[inline]
10178    pub fn match_token(&self) -> Option<SyntaxToken> {
10179        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10180    }
10181}
10182
10183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10184pub struct MatchPartial {
10185    pub(crate) syntax: SyntaxNode,
10186}
10187impl MatchPartial {
10188    #[inline]
10189    pub fn match_token(&self) -> Option<SyntaxToken> {
10190        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10191    }
10192    #[inline]
10193    pub fn partial_token(&self) -> Option<SyntaxToken> {
10194        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10195    }
10196}
10197
10198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10199pub struct MatchSimple {
10200    pub(crate) syntax: SyntaxNode,
10201}
10202impl MatchSimple {
10203    #[inline]
10204    pub fn match_token(&self) -> Option<SyntaxToken> {
10205        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10206    }
10207    #[inline]
10208    pub fn simple_token(&self) -> Option<SyntaxToken> {
10209        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10210    }
10211}
10212
10213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10214pub struct Materialized {
10215    pub(crate) syntax: SyntaxNode,
10216}
10217impl Materialized {
10218    #[inline]
10219    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10220        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10221    }
10222}
10223
10224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10225pub struct Merge {
10226    pub(crate) syntax: SyntaxNode,
10227}
10228impl Merge {
10229    #[inline]
10230    pub fn alias(&self) -> Option<Alias> {
10231        support::child(&self.syntax)
10232    }
10233    #[inline]
10234    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10235        support::children(&self.syntax)
10236    }
10237    #[inline]
10238    pub fn relation_name(&self) -> Option<RelationName> {
10239        support::child(&self.syntax)
10240    }
10241    #[inline]
10242    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10243        support::child(&self.syntax)
10244    }
10245    #[inline]
10246    pub fn into_token(&self) -> Option<SyntaxToken> {
10247        support::token(&self.syntax, SyntaxKind::INTO_KW)
10248    }
10249    #[inline]
10250    pub fn merge_token(&self) -> Option<SyntaxToken> {
10251        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10252    }
10253}
10254
10255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10256pub struct MergeDelete {
10257    pub(crate) syntax: SyntaxNode,
10258}
10259impl MergeDelete {
10260    #[inline]
10261    pub fn delete_token(&self) -> Option<SyntaxToken> {
10262        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10263    }
10264}
10265
10266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10267pub struct MergeDoNothing {
10268    pub(crate) syntax: SyntaxNode,
10269}
10270impl MergeDoNothing {
10271    #[inline]
10272    pub fn do_token(&self) -> Option<SyntaxToken> {
10273        support::token(&self.syntax, SyntaxKind::DO_KW)
10274    }
10275    #[inline]
10276    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10277        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10278    }
10279}
10280
10281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10282pub struct MergeInsert {
10283    pub(crate) syntax: SyntaxNode,
10284}
10285impl MergeInsert {
10286    #[inline]
10287    pub fn column_list(&self) -> Option<ColumnList> {
10288        support::child(&self.syntax)
10289    }
10290    #[inline]
10291    pub fn values(&self) -> Option<Values> {
10292        support::child(&self.syntax)
10293    }
10294    #[inline]
10295    pub fn default_token(&self) -> Option<SyntaxToken> {
10296        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10297    }
10298    #[inline]
10299    pub fn insert_token(&self) -> Option<SyntaxToken> {
10300        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10301    }
10302    #[inline]
10303    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10304        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10305    }
10306    #[inline]
10307    pub fn system_token(&self) -> Option<SyntaxToken> {
10308        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10309    }
10310    #[inline]
10311    pub fn user_token(&self) -> Option<SyntaxToken> {
10312        support::token(&self.syntax, SyntaxKind::USER_KW)
10313    }
10314    #[inline]
10315    pub fn values_token(&self) -> Option<SyntaxToken> {
10316        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10317    }
10318}
10319
10320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10321pub struct MergePartitions {
10322    pub(crate) syntax: SyntaxNode,
10323}
10324impl MergePartitions {
10325    #[inline]
10326    pub fn path(&self) -> Option<Path> {
10327        support::child(&self.syntax)
10328    }
10329    #[inline]
10330    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10331        support::token(&self.syntax, SyntaxKind::L_PAREN)
10332    }
10333    #[inline]
10334    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10335        support::token(&self.syntax, SyntaxKind::R_PAREN)
10336    }
10337    #[inline]
10338    pub fn into_token(&self) -> Option<SyntaxToken> {
10339        support::token(&self.syntax, SyntaxKind::INTO_KW)
10340    }
10341    #[inline]
10342    pub fn merge_token(&self) -> Option<SyntaxToken> {
10343        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10344    }
10345    #[inline]
10346    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10347        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10348    }
10349}
10350
10351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10352pub struct MergeUpdate {
10353    pub(crate) syntax: SyntaxNode,
10354}
10355impl MergeUpdate {
10356    #[inline]
10357    pub fn set_clause(&self) -> Option<SetClause> {
10358        support::child(&self.syntax)
10359    }
10360    #[inline]
10361    pub fn set_token(&self) -> Option<SyntaxToken> {
10362        support::token(&self.syntax, SyntaxKind::SET_KW)
10363    }
10364    #[inline]
10365    pub fn update_token(&self) -> Option<SyntaxToken> {
10366        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10367    }
10368}
10369
10370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10371pub struct MergeWhenMatched {
10372    pub(crate) syntax: SyntaxNode,
10373}
10374impl MergeWhenMatched {
10375    #[inline]
10376    pub fn expr(&self) -> Option<Expr> {
10377        support::child(&self.syntax)
10378    }
10379    #[inline]
10380    pub fn merge_action(&self) -> Option<MergeAction> {
10381        support::child(&self.syntax)
10382    }
10383    #[inline]
10384    pub fn and_token(&self) -> Option<SyntaxToken> {
10385        support::token(&self.syntax, SyntaxKind::AND_KW)
10386    }
10387    #[inline]
10388    pub fn matched_token(&self) -> Option<SyntaxToken> {
10389        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10390    }
10391    #[inline]
10392    pub fn then_token(&self) -> Option<SyntaxToken> {
10393        support::token(&self.syntax, SyntaxKind::THEN_KW)
10394    }
10395    #[inline]
10396    pub fn when_token(&self) -> Option<SyntaxToken> {
10397        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10398    }
10399}
10400
10401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10402pub struct MergeWhenNotMatchedSource {
10403    pub(crate) syntax: SyntaxNode,
10404}
10405impl MergeWhenNotMatchedSource {
10406    #[inline]
10407    pub fn expr(&self) -> Option<Expr> {
10408        support::child(&self.syntax)
10409    }
10410    #[inline]
10411    pub fn merge_action(&self) -> Option<MergeAction> {
10412        support::child(&self.syntax)
10413    }
10414    #[inline]
10415    pub fn and_token(&self) -> Option<SyntaxToken> {
10416        support::token(&self.syntax, SyntaxKind::AND_KW)
10417    }
10418    #[inline]
10419    pub fn by_token(&self) -> Option<SyntaxToken> {
10420        support::token(&self.syntax, SyntaxKind::BY_KW)
10421    }
10422    #[inline]
10423    pub fn matched_token(&self) -> Option<SyntaxToken> {
10424        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10425    }
10426    #[inline]
10427    pub fn not_token(&self) -> Option<SyntaxToken> {
10428        support::token(&self.syntax, SyntaxKind::NOT_KW)
10429    }
10430    #[inline]
10431    pub fn source_token(&self) -> Option<SyntaxToken> {
10432        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10433    }
10434    #[inline]
10435    pub fn then_token(&self) -> Option<SyntaxToken> {
10436        support::token(&self.syntax, SyntaxKind::THEN_KW)
10437    }
10438    #[inline]
10439    pub fn when_token(&self) -> Option<SyntaxToken> {
10440        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10441    }
10442}
10443
10444#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10445pub struct MergeWhenNotMatchedTarget {
10446    pub(crate) syntax: SyntaxNode,
10447}
10448impl MergeWhenNotMatchedTarget {
10449    #[inline]
10450    pub fn expr(&self) -> Option<Expr> {
10451        support::child(&self.syntax)
10452    }
10453    #[inline]
10454    pub fn merge_action(&self) -> Option<MergeAction> {
10455        support::child(&self.syntax)
10456    }
10457    #[inline]
10458    pub fn and_token(&self) -> Option<SyntaxToken> {
10459        support::token(&self.syntax, SyntaxKind::AND_KW)
10460    }
10461    #[inline]
10462    pub fn by_token(&self) -> Option<SyntaxToken> {
10463        support::token(&self.syntax, SyntaxKind::BY_KW)
10464    }
10465    #[inline]
10466    pub fn matched_token(&self) -> Option<SyntaxToken> {
10467        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10468    }
10469    #[inline]
10470    pub fn not_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::NOT_KW)
10472    }
10473    #[inline]
10474    pub fn target_token(&self) -> Option<SyntaxToken> {
10475        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10476    }
10477    #[inline]
10478    pub fn then_token(&self) -> Option<SyntaxToken> {
10479        support::token(&self.syntax, SyntaxKind::THEN_KW)
10480    }
10481    #[inline]
10482    pub fn when_token(&self) -> Option<SyntaxToken> {
10483        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10484    }
10485}
10486
10487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10488pub struct Move {
10489    pub(crate) syntax: SyntaxNode,
10490}
10491impl Move {
10492    #[inline]
10493    pub fn name_ref(&self) -> Option<NameRef> {
10494        support::child(&self.syntax)
10495    }
10496    #[inline]
10497    pub fn from_token(&self) -> Option<SyntaxToken> {
10498        support::token(&self.syntax, SyntaxKind::FROM_KW)
10499    }
10500    #[inline]
10501    pub fn in_token(&self) -> Option<SyntaxToken> {
10502        support::token(&self.syntax, SyntaxKind::IN_KW)
10503    }
10504    #[inline]
10505    pub fn move_token(&self) -> Option<SyntaxToken> {
10506        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10507    }
10508}
10509
10510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10511pub struct Name {
10512    pub(crate) syntax: SyntaxNode,
10513}
10514impl Name {
10515    #[inline]
10516    pub fn ident_token(&self) -> Option<SyntaxToken> {
10517        support::token(&self.syntax, SyntaxKind::IDENT)
10518    }
10519}
10520
10521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10522pub struct NameRef {
10523    pub(crate) syntax: SyntaxNode,
10524}
10525impl NameRef {
10526    #[inline]
10527    pub fn ident_token(&self) -> Option<SyntaxToken> {
10528        support::token(&self.syntax, SyntaxKind::IDENT)
10529    }
10530}
10531
10532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10533pub struct NamedArg {
10534    pub(crate) syntax: SyntaxNode,
10535}
10536impl NamedArg {
10537    #[inline]
10538    pub fn expr(&self) -> Option<Expr> {
10539        support::child(&self.syntax)
10540    }
10541    #[inline]
10542    pub fn fat_arrow(&self) -> Option<FatArrow> {
10543        support::child(&self.syntax)
10544    }
10545    #[inline]
10546    pub fn name_ref(&self) -> Option<NameRef> {
10547        support::child(&self.syntax)
10548    }
10549}
10550
10551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10552pub struct Neq {
10553    pub(crate) syntax: SyntaxNode,
10554}
10555impl Neq {
10556    #[inline]
10557    pub fn bang_token(&self) -> Option<SyntaxToken> {
10558        support::token(&self.syntax, SyntaxKind::BANG)
10559    }
10560    #[inline]
10561    pub fn eq_token(&self) -> Option<SyntaxToken> {
10562        support::token(&self.syntax, SyntaxKind::EQ)
10563    }
10564}
10565
10566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10567pub struct Neqb {
10568    pub(crate) syntax: SyntaxNode,
10569}
10570impl Neqb {
10571    #[inline]
10572    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10573        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10574    }
10575    #[inline]
10576    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10577        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10578    }
10579}
10580
10581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10582pub struct NoAction {
10583    pub(crate) syntax: SyntaxNode,
10584}
10585impl NoAction {
10586    #[inline]
10587    pub fn action_token(&self) -> Option<SyntaxToken> {
10588        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10589    }
10590    #[inline]
10591    pub fn no_token(&self) -> Option<SyntaxToken> {
10592        support::token(&self.syntax, SyntaxKind::NO_KW)
10593    }
10594}
10595
10596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10597pub struct NoDependsOnExtension {
10598    pub(crate) syntax: SyntaxNode,
10599}
10600impl NoDependsOnExtension {
10601    #[inline]
10602    pub fn name_ref(&self) -> Option<NameRef> {
10603        support::child(&self.syntax)
10604    }
10605    #[inline]
10606    pub fn depends_token(&self) -> Option<SyntaxToken> {
10607        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10608    }
10609    #[inline]
10610    pub fn extension_token(&self) -> Option<SyntaxToken> {
10611        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10612    }
10613    #[inline]
10614    pub fn no_token(&self) -> Option<SyntaxToken> {
10615        support::token(&self.syntax, SyntaxKind::NO_KW)
10616    }
10617    #[inline]
10618    pub fn on_token(&self) -> Option<SyntaxToken> {
10619        support::token(&self.syntax, SyntaxKind::ON_KW)
10620    }
10621}
10622
10623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10624pub struct NoForceRls {
10625    pub(crate) syntax: SyntaxNode,
10626}
10627impl NoForceRls {
10628    #[inline]
10629    pub fn force_token(&self) -> Option<SyntaxToken> {
10630        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10631    }
10632    #[inline]
10633    pub fn level_token(&self) -> Option<SyntaxToken> {
10634        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10635    }
10636    #[inline]
10637    pub fn no_token(&self) -> Option<SyntaxToken> {
10638        support::token(&self.syntax, SyntaxKind::NO_KW)
10639    }
10640    #[inline]
10641    pub fn row_token(&self) -> Option<SyntaxToken> {
10642        support::token(&self.syntax, SyntaxKind::ROW_KW)
10643    }
10644    #[inline]
10645    pub fn security_token(&self) -> Option<SyntaxToken> {
10646        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10647    }
10648}
10649
10650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10651pub struct NoInherit {
10652    pub(crate) syntax: SyntaxNode,
10653}
10654impl NoInherit {
10655    #[inline]
10656    pub fn path(&self) -> Option<Path> {
10657        support::child(&self.syntax)
10658    }
10659    #[inline]
10660    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10661        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10662    }
10663    #[inline]
10664    pub fn no_token(&self) -> Option<SyntaxToken> {
10665        support::token(&self.syntax, SyntaxKind::NO_KW)
10666    }
10667}
10668
10669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10670pub struct NoInheritTable {
10671    pub(crate) syntax: SyntaxNode,
10672}
10673impl NoInheritTable {
10674    #[inline]
10675    pub fn path(&self) -> Option<Path> {
10676        support::child(&self.syntax)
10677    }
10678    #[inline]
10679    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10680        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10681    }
10682    #[inline]
10683    pub fn no_token(&self) -> Option<SyntaxToken> {
10684        support::token(&self.syntax, SyntaxKind::NO_KW)
10685    }
10686}
10687
10688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10689pub struct NonStandardParam {
10690    pub(crate) syntax: SyntaxNode,
10691}
10692impl NonStandardParam {
10693    #[inline]
10694    pub fn name_ref(&self) -> Option<NameRef> {
10695        support::child(&self.syntax)
10696    }
10697    #[inline]
10698    pub fn colon_token(&self) -> Option<SyntaxToken> {
10699        support::token(&self.syntax, SyntaxKind::COLON)
10700    }
10701}
10702
10703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10704pub struct NotDeferrable {
10705    pub(crate) syntax: SyntaxNode,
10706}
10707impl NotDeferrable {
10708    #[inline]
10709    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10710        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10711    }
10712    #[inline]
10713    pub fn not_token(&self) -> Option<SyntaxToken> {
10714        support::token(&self.syntax, SyntaxKind::NOT_KW)
10715    }
10716}
10717
10718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10719pub struct NotDeferrableConstraintOption {
10720    pub(crate) syntax: SyntaxNode,
10721}
10722impl NotDeferrableConstraintOption {
10723    #[inline]
10724    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10725        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10726    }
10727    #[inline]
10728    pub fn not_token(&self) -> Option<SyntaxToken> {
10729        support::token(&self.syntax, SyntaxKind::NOT_KW)
10730    }
10731}
10732
10733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10734pub struct NotEnforced {
10735    pub(crate) syntax: SyntaxNode,
10736}
10737impl NotEnforced {
10738    #[inline]
10739    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10740        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10741    }
10742    #[inline]
10743    pub fn not_token(&self) -> Option<SyntaxToken> {
10744        support::token(&self.syntax, SyntaxKind::NOT_KW)
10745    }
10746}
10747
10748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10749pub struct NotIlike {
10750    pub(crate) syntax: SyntaxNode,
10751}
10752impl NotIlike {
10753    #[inline]
10754    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10755        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10756    }
10757    #[inline]
10758    pub fn not_token(&self) -> Option<SyntaxToken> {
10759        support::token(&self.syntax, SyntaxKind::NOT_KW)
10760    }
10761}
10762
10763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10764pub struct NotIn {
10765    pub(crate) syntax: SyntaxNode,
10766}
10767impl NotIn {
10768    #[inline]
10769    pub fn in_token(&self) -> Option<SyntaxToken> {
10770        support::token(&self.syntax, SyntaxKind::IN_KW)
10771    }
10772    #[inline]
10773    pub fn not_token(&self) -> Option<SyntaxToken> {
10774        support::token(&self.syntax, SyntaxKind::NOT_KW)
10775    }
10776}
10777
10778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10779pub struct NotLike {
10780    pub(crate) syntax: SyntaxNode,
10781}
10782impl NotLike {
10783    #[inline]
10784    pub fn like_token(&self) -> Option<SyntaxToken> {
10785        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10786    }
10787    #[inline]
10788    pub fn not_token(&self) -> Option<SyntaxToken> {
10789        support::token(&self.syntax, SyntaxKind::NOT_KW)
10790    }
10791}
10792
10793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10794pub struct NotMaterialized {
10795    pub(crate) syntax: SyntaxNode,
10796}
10797impl NotMaterialized {
10798    #[inline]
10799    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10800        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10801    }
10802    #[inline]
10803    pub fn not_token(&self) -> Option<SyntaxToken> {
10804        support::token(&self.syntax, SyntaxKind::NOT_KW)
10805    }
10806}
10807
10808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10809pub struct NotNullConstraint {
10810    pub(crate) syntax: SyntaxNode,
10811}
10812impl NotNullConstraint {
10813    #[inline]
10814    pub fn name_ref(&self) -> Option<NameRef> {
10815        support::child(&self.syntax)
10816    }
10817    #[inline]
10818    pub fn no_inherit(&self) -> Option<NoInherit> {
10819        support::child(&self.syntax)
10820    }
10821    #[inline]
10822    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10823        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10824    }
10825    #[inline]
10826    pub fn not_token(&self) -> Option<SyntaxToken> {
10827        support::token(&self.syntax, SyntaxKind::NOT_KW)
10828    }
10829    #[inline]
10830    pub fn null_token(&self) -> Option<SyntaxToken> {
10831        support::token(&self.syntax, SyntaxKind::NULL_KW)
10832    }
10833}
10834
10835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10836pub struct NotOf {
10837    pub(crate) syntax: SyntaxNode,
10838}
10839impl NotOf {
10840    #[inline]
10841    pub fn not_token(&self) -> Option<SyntaxToken> {
10842        support::token(&self.syntax, SyntaxKind::NOT_KW)
10843    }
10844    #[inline]
10845    pub fn of_token(&self) -> Option<SyntaxToken> {
10846        support::token(&self.syntax, SyntaxKind::OF_KW)
10847    }
10848}
10849
10850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10851pub struct NotSimilarTo {
10852    pub(crate) syntax: SyntaxNode,
10853}
10854impl NotSimilarTo {
10855    #[inline]
10856    pub fn not_token(&self) -> Option<SyntaxToken> {
10857        support::token(&self.syntax, SyntaxKind::NOT_KW)
10858    }
10859    #[inline]
10860    pub fn similar_token(&self) -> Option<SyntaxToken> {
10861        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10862    }
10863    #[inline]
10864    pub fn to_token(&self) -> Option<SyntaxToken> {
10865        support::token(&self.syntax, SyntaxKind::TO_KW)
10866    }
10867}
10868
10869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10870pub struct NotValid {
10871    pub(crate) syntax: SyntaxNode,
10872}
10873impl NotValid {
10874    #[inline]
10875    pub fn not_token(&self) -> Option<SyntaxToken> {
10876        support::token(&self.syntax, SyntaxKind::NOT_KW)
10877    }
10878    #[inline]
10879    pub fn valid_token(&self) -> Option<SyntaxToken> {
10880        support::token(&self.syntax, SyntaxKind::VALID_KW)
10881    }
10882}
10883
10884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10885pub struct Notify {
10886    pub(crate) syntax: SyntaxNode,
10887}
10888impl Notify {
10889    #[inline]
10890    pub fn literal(&self) -> Option<Literal> {
10891        support::child(&self.syntax)
10892    }
10893    #[inline]
10894    pub fn name_ref(&self) -> Option<NameRef> {
10895        support::child(&self.syntax)
10896    }
10897    #[inline]
10898    pub fn comma_token(&self) -> Option<SyntaxToken> {
10899        support::token(&self.syntax, SyntaxKind::COMMA)
10900    }
10901    #[inline]
10902    pub fn notify_token(&self) -> Option<SyntaxToken> {
10903        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10904    }
10905}
10906
10907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10908pub struct NullConstraint {
10909    pub(crate) syntax: SyntaxNode,
10910}
10911impl NullConstraint {
10912    #[inline]
10913    pub fn name_ref(&self) -> Option<NameRef> {
10914        support::child(&self.syntax)
10915    }
10916    #[inline]
10917    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10918        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10919    }
10920    #[inline]
10921    pub fn null_token(&self) -> Option<SyntaxToken> {
10922        support::token(&self.syntax, SyntaxKind::NULL_KW)
10923    }
10924}
10925
10926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10927pub struct NullsDistinct {
10928    pub(crate) syntax: SyntaxNode,
10929}
10930impl NullsDistinct {
10931    #[inline]
10932    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10933        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10934    }
10935    #[inline]
10936    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10937        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10938    }
10939}
10940
10941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10942pub struct NullsFirst {
10943    pub(crate) syntax: SyntaxNode,
10944}
10945impl NullsFirst {
10946    #[inline]
10947    pub fn first_token(&self) -> Option<SyntaxToken> {
10948        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10949    }
10950    #[inline]
10951    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10952        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10953    }
10954}
10955
10956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10957pub struct NullsLast {
10958    pub(crate) syntax: SyntaxNode,
10959}
10960impl NullsLast {
10961    #[inline]
10962    pub fn last_token(&self) -> Option<SyntaxToken> {
10963        support::token(&self.syntax, SyntaxKind::LAST_KW)
10964    }
10965    #[inline]
10966    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10967        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10968    }
10969}
10970
10971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10972pub struct NullsNotDistinct {
10973    pub(crate) syntax: SyntaxNode,
10974}
10975impl NullsNotDistinct {
10976    #[inline]
10977    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10978        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10979    }
10980    #[inline]
10981    pub fn not_token(&self) -> Option<SyntaxToken> {
10982        support::token(&self.syntax, SyntaxKind::NOT_KW)
10983    }
10984    #[inline]
10985    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10986        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10987    }
10988}
10989
10990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10991pub struct OfType {
10992    pub(crate) syntax: SyntaxNode,
10993}
10994impl OfType {
10995    #[inline]
10996    pub fn ty(&self) -> Option<Type> {
10997        support::child(&self.syntax)
10998    }
10999    #[inline]
11000    pub fn of_token(&self) -> Option<SyntaxToken> {
11001        support::token(&self.syntax, SyntaxKind::OF_KW)
11002    }
11003}
11004
11005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11006pub struct OffsetClause {
11007    pub(crate) syntax: SyntaxNode,
11008}
11009impl OffsetClause {
11010    #[inline]
11011    pub fn expr(&self) -> Option<Expr> {
11012        support::child(&self.syntax)
11013    }
11014    #[inline]
11015    pub fn offset_token(&self) -> Option<SyntaxToken> {
11016        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
11017    }
11018    #[inline]
11019    pub fn row_token(&self) -> Option<SyntaxToken> {
11020        support::token(&self.syntax, SyntaxKind::ROW_KW)
11021    }
11022    #[inline]
11023    pub fn rows_token(&self) -> Option<SyntaxToken> {
11024        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11025    }
11026}
11027
11028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11029pub struct OnClause {
11030    pub(crate) syntax: SyntaxNode,
11031}
11032impl OnClause {
11033    #[inline]
11034    pub fn expr(&self) -> Option<Expr> {
11035        support::child(&self.syntax)
11036    }
11037    #[inline]
11038    pub fn on_token(&self) -> Option<SyntaxToken> {
11039        support::token(&self.syntax, SyntaxKind::ON_KW)
11040    }
11041}
11042
11043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11044pub struct OnCommit {
11045    pub(crate) syntax: SyntaxNode,
11046}
11047impl OnCommit {
11048    #[inline]
11049    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11050        support::child(&self.syntax)
11051    }
11052    #[inline]
11053    pub fn commit_token(&self) -> Option<SyntaxToken> {
11054        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11055    }
11056    #[inline]
11057    pub fn on_token(&self) -> Option<SyntaxToken> {
11058        support::token(&self.syntax, SyntaxKind::ON_KW)
11059    }
11060}
11061
11062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11063pub struct OnConflictClause {
11064    pub(crate) syntax: SyntaxNode,
11065}
11066impl OnConflictClause {
11067    #[inline]
11068    pub fn conflict_action(&self) -> Option<ConflictAction> {
11069        support::child(&self.syntax)
11070    }
11071    #[inline]
11072    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11073        support::child(&self.syntax)
11074    }
11075    #[inline]
11076    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11077        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11078    }
11079    #[inline]
11080    pub fn on_token(&self) -> Option<SyntaxToken> {
11081        support::token(&self.syntax, SyntaxKind::ON_KW)
11082    }
11083}
11084
11085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11086pub struct OnDeleteAction {
11087    pub(crate) syntax: SyntaxNode,
11088}
11089impl OnDeleteAction {
11090    #[inline]
11091    pub fn ref_action(&self) -> Option<RefAction> {
11092        support::child(&self.syntax)
11093    }
11094    #[inline]
11095    pub fn delete_token(&self) -> Option<SyntaxToken> {
11096        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11097    }
11098    #[inline]
11099    pub fn on_token(&self) -> Option<SyntaxToken> {
11100        support::token(&self.syntax, SyntaxKind::ON_KW)
11101    }
11102}
11103
11104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11105pub struct OnTable {
11106    pub(crate) syntax: SyntaxNode,
11107}
11108impl OnTable {
11109    #[inline]
11110    pub fn path(&self) -> Option<Path> {
11111        support::child(&self.syntax)
11112    }
11113    #[inline]
11114    pub fn on_token(&self) -> Option<SyntaxToken> {
11115        support::token(&self.syntax, SyntaxKind::ON_KW)
11116    }
11117}
11118
11119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11120pub struct OnUpdateAction {
11121    pub(crate) syntax: SyntaxNode,
11122}
11123impl OnUpdateAction {
11124    #[inline]
11125    pub fn ref_action(&self) -> Option<RefAction> {
11126        support::child(&self.syntax)
11127    }
11128    #[inline]
11129    pub fn on_token(&self) -> Option<SyntaxToken> {
11130        support::token(&self.syntax, SyntaxKind::ON_KW)
11131    }
11132    #[inline]
11133    pub fn update_token(&self) -> Option<SyntaxToken> {
11134        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11135    }
11136}
11137
11138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11139pub struct Op {
11140    pub(crate) syntax: SyntaxNode,
11141}
11142impl Op {
11143    #[inline]
11144    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11145        support::child(&self.syntax)
11146    }
11147    #[inline]
11148    pub fn colon_colon(&self) -> Option<ColonColon> {
11149        support::child(&self.syntax)
11150    }
11151    #[inline]
11152    pub fn colon_eq(&self) -> Option<ColonEq> {
11153        support::child(&self.syntax)
11154    }
11155    #[inline]
11156    pub fn custom_op(&self) -> Option<CustomOp> {
11157        support::child(&self.syntax)
11158    }
11159    #[inline]
11160    pub fn fat_arrow(&self) -> Option<FatArrow> {
11161        support::child(&self.syntax)
11162    }
11163    #[inline]
11164    pub fn gteq(&self) -> Option<Gteq> {
11165        support::child(&self.syntax)
11166    }
11167    #[inline]
11168    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11169        support::child(&self.syntax)
11170    }
11171    #[inline]
11172    pub fn is_json(&self) -> Option<IsJson> {
11173        support::child(&self.syntax)
11174    }
11175    #[inline]
11176    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11177        support::child(&self.syntax)
11178    }
11179    #[inline]
11180    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11181        support::child(&self.syntax)
11182    }
11183    #[inline]
11184    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11185        support::child(&self.syntax)
11186    }
11187    #[inline]
11188    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11189        support::child(&self.syntax)
11190    }
11191    #[inline]
11192    pub fn is_not(&self) -> Option<IsNot> {
11193        support::child(&self.syntax)
11194    }
11195    #[inline]
11196    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11197        support::child(&self.syntax)
11198    }
11199    #[inline]
11200    pub fn is_not_json(&self) -> Option<IsNotJson> {
11201        support::child(&self.syntax)
11202    }
11203    #[inline]
11204    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11205        support::child(&self.syntax)
11206    }
11207    #[inline]
11208    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11209        support::child(&self.syntax)
11210    }
11211    #[inline]
11212    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11213        support::child(&self.syntax)
11214    }
11215    #[inline]
11216    pub fn lteq(&self) -> Option<Lteq> {
11217        support::child(&self.syntax)
11218    }
11219    #[inline]
11220    pub fn neq(&self) -> Option<Neq> {
11221        support::child(&self.syntax)
11222    }
11223    #[inline]
11224    pub fn neqb(&self) -> Option<Neqb> {
11225        support::child(&self.syntax)
11226    }
11227    #[inline]
11228    pub fn not_ilike(&self) -> Option<NotIlike> {
11229        support::child(&self.syntax)
11230    }
11231    #[inline]
11232    pub fn not_in(&self) -> Option<NotIn> {
11233        support::child(&self.syntax)
11234    }
11235    #[inline]
11236    pub fn not_like(&self) -> Option<NotLike> {
11237        support::child(&self.syntax)
11238    }
11239    #[inline]
11240    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11241        support::child(&self.syntax)
11242    }
11243    #[inline]
11244    pub fn operator_call(&self) -> Option<OperatorCall> {
11245        support::child(&self.syntax)
11246    }
11247    #[inline]
11248    pub fn similar_to(&self) -> Option<SimilarTo> {
11249        support::child(&self.syntax)
11250    }
11251    #[inline]
11252    pub fn percent_token(&self) -> Option<SyntaxToken> {
11253        support::token(&self.syntax, SyntaxKind::PERCENT)
11254    }
11255    #[inline]
11256    pub fn plus_token(&self) -> Option<SyntaxToken> {
11257        support::token(&self.syntax, SyntaxKind::PLUS)
11258    }
11259    #[inline]
11260    pub fn minus_token(&self) -> Option<SyntaxToken> {
11261        support::token(&self.syntax, SyntaxKind::MINUS)
11262    }
11263    #[inline]
11264    pub fn slash_token(&self) -> Option<SyntaxToken> {
11265        support::token(&self.syntax, SyntaxKind::SLASH)
11266    }
11267    #[inline]
11268    pub fn colon_token(&self) -> Option<SyntaxToken> {
11269        support::token(&self.syntax, SyntaxKind::COLON)
11270    }
11271    #[inline]
11272    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11273        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11274    }
11275    #[inline]
11276    pub fn eq_token(&self) -> Option<SyntaxToken> {
11277        support::token(&self.syntax, SyntaxKind::EQ)
11278    }
11279    #[inline]
11280    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11281        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11282    }
11283    #[inline]
11284    pub fn caret_token(&self) -> Option<SyntaxToken> {
11285        support::token(&self.syntax, SyntaxKind::CARET)
11286    }
11287    #[inline]
11288    pub fn and_token(&self) -> Option<SyntaxToken> {
11289        support::token(&self.syntax, SyntaxKind::AND_KW)
11290    }
11291    #[inline]
11292    pub fn collate_token(&self) -> Option<SyntaxToken> {
11293        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11294    }
11295    #[inline]
11296    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11297        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11298    }
11299    #[inline]
11300    pub fn in_token(&self) -> Option<SyntaxToken> {
11301        support::token(&self.syntax, SyntaxKind::IN_KW)
11302    }
11303    #[inline]
11304    pub fn is_token(&self) -> Option<SyntaxToken> {
11305        support::token(&self.syntax, SyntaxKind::IS_KW)
11306    }
11307    #[inline]
11308    pub fn like_token(&self) -> Option<SyntaxToken> {
11309        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11310    }
11311    #[inline]
11312    pub fn or_token(&self) -> Option<SyntaxToken> {
11313        support::token(&self.syntax, SyntaxKind::OR_KW)
11314    }
11315    #[inline]
11316    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11317        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11318    }
11319    #[inline]
11320    pub fn value_token(&self) -> Option<SyntaxToken> {
11321        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11322    }
11323}
11324
11325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11326pub struct OpClassOption {
11327    pub(crate) syntax: SyntaxNode,
11328}
11329impl OpClassOption {
11330    #[inline]
11331    pub fn function_sig(&self) -> Option<FunctionSig> {
11332        support::child(&self.syntax)
11333    }
11334    #[inline]
11335    pub fn literal(&self) -> Option<Literal> {
11336        support::child(&self.syntax)
11337    }
11338    #[inline]
11339    pub fn op(&self) -> Option<Op> {
11340        support::child(&self.syntax)
11341    }
11342    #[inline]
11343    pub fn param_list(&self) -> Option<ParamList> {
11344        support::child(&self.syntax)
11345    }
11346    #[inline]
11347    pub fn path(&self) -> Option<Path> {
11348        support::child(&self.syntax)
11349    }
11350    #[inline]
11351    pub fn ty(&self) -> Option<Type> {
11352        support::child(&self.syntax)
11353    }
11354    #[inline]
11355    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11356        support::token(&self.syntax, SyntaxKind::L_PAREN)
11357    }
11358    #[inline]
11359    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11360        support::token(&self.syntax, SyntaxKind::R_PAREN)
11361    }
11362    #[inline]
11363    pub fn comma_token(&self) -> Option<SyntaxToken> {
11364        support::token(&self.syntax, SyntaxKind::COMMA)
11365    }
11366    #[inline]
11367    pub fn by_token(&self) -> Option<SyntaxToken> {
11368        support::token(&self.syntax, SyntaxKind::BY_KW)
11369    }
11370    #[inline]
11371    pub fn for_token(&self) -> Option<SyntaxToken> {
11372        support::token(&self.syntax, SyntaxKind::FOR_KW)
11373    }
11374    #[inline]
11375    pub fn function_token(&self) -> Option<SyntaxToken> {
11376        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11377    }
11378    #[inline]
11379    pub fn operator_token(&self) -> Option<SyntaxToken> {
11380        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11381    }
11382    #[inline]
11383    pub fn order_token(&self) -> Option<SyntaxToken> {
11384        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11385    }
11386    #[inline]
11387    pub fn search_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11389    }
11390    #[inline]
11391    pub fn storage_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11393    }
11394}
11395
11396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11397pub struct OpSig {
11398    pub(crate) syntax: SyntaxNode,
11399}
11400impl OpSig {
11401    #[inline]
11402    pub fn op(&self) -> Option<Op> {
11403        support::child(&self.syntax)
11404    }
11405    #[inline]
11406    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11407        support::token(&self.syntax, SyntaxKind::L_PAREN)
11408    }
11409    #[inline]
11410    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11411        support::token(&self.syntax, SyntaxKind::R_PAREN)
11412    }
11413    #[inline]
11414    pub fn comma_token(&self) -> Option<SyntaxToken> {
11415        support::token(&self.syntax, SyntaxKind::COMMA)
11416    }
11417    #[inline]
11418    pub fn none_token(&self) -> Option<SyntaxToken> {
11419        support::token(&self.syntax, SyntaxKind::NONE_KW)
11420    }
11421}
11422
11423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11424pub struct OpSigList {
11425    pub(crate) syntax: SyntaxNode,
11426}
11427impl OpSigList {
11428    #[inline]
11429    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11430        support::children(&self.syntax)
11431    }
11432}
11433
11434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11435pub struct OperatorCall {
11436    pub(crate) syntax: SyntaxNode,
11437}
11438impl OperatorCall {
11439    #[inline]
11440    pub fn op(&self) -> Option<Op> {
11441        support::child(&self.syntax)
11442    }
11443    #[inline]
11444    pub fn path(&self) -> Option<Path> {
11445        support::child(&self.syntax)
11446    }
11447    #[inline]
11448    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11449        support::token(&self.syntax, SyntaxKind::L_PAREN)
11450    }
11451    #[inline]
11452    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11453        support::token(&self.syntax, SyntaxKind::R_PAREN)
11454    }
11455    #[inline]
11456    pub fn dot_token(&self) -> Option<SyntaxToken> {
11457        support::token(&self.syntax, SyntaxKind::DOT)
11458    }
11459    #[inline]
11460    pub fn operator_token(&self) -> Option<SyntaxToken> {
11461        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11462    }
11463}
11464
11465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11466pub struct OperatorClassOptionList {
11467    pub(crate) syntax: SyntaxNode,
11468}
11469impl OperatorClassOptionList {
11470    #[inline]
11471    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11472        support::children(&self.syntax)
11473    }
11474}
11475
11476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11477pub struct OptionItem {
11478    pub(crate) syntax: SyntaxNode,
11479}
11480impl OptionItem {
11481    #[inline]
11482    pub fn expr(&self) -> Option<Expr> {
11483        support::child(&self.syntax)
11484    }
11485    #[inline]
11486    pub fn default_token(&self) -> Option<SyntaxToken> {
11487        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11488    }
11489}
11490
11491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11492pub struct OptionItemList {
11493    pub(crate) syntax: SyntaxNode,
11494}
11495impl OptionItemList {
11496    #[inline]
11497    pub fn option_items(&self) -> AstChildren<OptionItem> {
11498        support::children(&self.syntax)
11499    }
11500    #[inline]
11501    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11502        support::token(&self.syntax, SyntaxKind::L_PAREN)
11503    }
11504    #[inline]
11505    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11506        support::token(&self.syntax, SyntaxKind::R_PAREN)
11507    }
11508}
11509
11510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11511pub struct OrReplace {
11512    pub(crate) syntax: SyntaxNode,
11513}
11514impl OrReplace {
11515    #[inline]
11516    pub fn or_token(&self) -> Option<SyntaxToken> {
11517        support::token(&self.syntax, SyntaxKind::OR_KW)
11518    }
11519    #[inline]
11520    pub fn replace_token(&self) -> Option<SyntaxToken> {
11521        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11522    }
11523}
11524
11525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11526pub struct OrderByClause {
11527    pub(crate) syntax: SyntaxNode,
11528}
11529impl OrderByClause {
11530    #[inline]
11531    pub fn sort_by_list(&self) -> Option<SortByList> {
11532        support::child(&self.syntax)
11533    }
11534    #[inline]
11535    pub fn by_token(&self) -> Option<SyntaxToken> {
11536        support::token(&self.syntax, SyntaxKind::BY_KW)
11537    }
11538    #[inline]
11539    pub fn order_token(&self) -> Option<SyntaxToken> {
11540        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11541    }
11542}
11543
11544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11545pub struct OverClause {
11546    pub(crate) syntax: SyntaxNode,
11547}
11548impl OverClause {
11549    #[inline]
11550    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11551        support::token(&self.syntax, SyntaxKind::L_PAREN)
11552    }
11553    #[inline]
11554    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11555        support::token(&self.syntax, SyntaxKind::R_PAREN)
11556    }
11557    #[inline]
11558    pub fn over_token(&self) -> Option<SyntaxToken> {
11559        support::token(&self.syntax, SyntaxKind::OVER_KW)
11560    }
11561}
11562
11563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11564pub struct OverlayFn {
11565    pub(crate) syntax: SyntaxNode,
11566}
11567impl OverlayFn {
11568    #[inline]
11569    pub fn expr(&self) -> Option<Expr> {
11570        support::child(&self.syntax)
11571    }
11572    #[inline]
11573    pub fn exprs(&self) -> AstChildren<Expr> {
11574        support::children(&self.syntax)
11575    }
11576    #[inline]
11577    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11578        support::token(&self.syntax, SyntaxKind::L_PAREN)
11579    }
11580    #[inline]
11581    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11582        support::token(&self.syntax, SyntaxKind::R_PAREN)
11583    }
11584    #[inline]
11585    pub fn for_token(&self) -> Option<SyntaxToken> {
11586        support::token(&self.syntax, SyntaxKind::FOR_KW)
11587    }
11588    #[inline]
11589    pub fn from_token(&self) -> Option<SyntaxToken> {
11590        support::token(&self.syntax, SyntaxKind::FROM_KW)
11591    }
11592    #[inline]
11593    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11594        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11595    }
11596    #[inline]
11597    pub fn placing_token(&self) -> Option<SyntaxToken> {
11598        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11599    }
11600}
11601
11602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11603pub struct OwnerTo {
11604    pub(crate) syntax: SyntaxNode,
11605}
11606impl OwnerTo {
11607    #[inline]
11608    pub fn role(&self) -> Option<Role> {
11609        support::child(&self.syntax)
11610    }
11611    #[inline]
11612    pub fn owner_token(&self) -> Option<SyntaxToken> {
11613        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11614    }
11615    #[inline]
11616    pub fn to_token(&self) -> Option<SyntaxToken> {
11617        support::token(&self.syntax, SyntaxKind::TO_KW)
11618    }
11619}
11620
11621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11622pub struct ParallelFuncOption {
11623    pub(crate) syntax: SyntaxNode,
11624}
11625impl ParallelFuncOption {
11626    #[inline]
11627    pub fn ident_token(&self) -> Option<SyntaxToken> {
11628        support::token(&self.syntax, SyntaxKind::IDENT)
11629    }
11630    #[inline]
11631    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11632        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11633    }
11634}
11635
11636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11637pub struct Param {
11638    pub(crate) syntax: SyntaxNode,
11639}
11640impl Param {
11641    #[inline]
11642    pub fn mode(&self) -> Option<ParamMode> {
11643        support::child(&self.syntax)
11644    }
11645    #[inline]
11646    pub fn name(&self) -> Option<Name> {
11647        support::child(&self.syntax)
11648    }
11649    #[inline]
11650    pub fn param_default(&self) -> Option<ParamDefault> {
11651        support::child(&self.syntax)
11652    }
11653    #[inline]
11654    pub fn ty(&self) -> Option<Type> {
11655        support::child(&self.syntax)
11656    }
11657}
11658
11659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11660pub struct ParamDefault {
11661    pub(crate) syntax: SyntaxNode,
11662}
11663impl ParamDefault {
11664    #[inline]
11665    pub fn expr(&self) -> Option<Expr> {
11666        support::child(&self.syntax)
11667    }
11668    #[inline]
11669    pub fn eq_token(&self) -> Option<SyntaxToken> {
11670        support::token(&self.syntax, SyntaxKind::EQ)
11671    }
11672    #[inline]
11673    pub fn default_token(&self) -> Option<SyntaxToken> {
11674        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11675    }
11676}
11677
11678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11679pub struct ParamIn {
11680    pub(crate) syntax: SyntaxNode,
11681}
11682impl ParamIn {
11683    #[inline]
11684    pub fn in_token(&self) -> Option<SyntaxToken> {
11685        support::token(&self.syntax, SyntaxKind::IN_KW)
11686    }
11687}
11688
11689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11690pub struct ParamInOut {
11691    pub(crate) syntax: SyntaxNode,
11692}
11693impl ParamInOut {
11694    #[inline]
11695    pub fn in_token(&self) -> Option<SyntaxToken> {
11696        support::token(&self.syntax, SyntaxKind::IN_KW)
11697    }
11698    #[inline]
11699    pub fn inout_token(&self) -> Option<SyntaxToken> {
11700        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11701    }
11702    #[inline]
11703    pub fn out_token(&self) -> Option<SyntaxToken> {
11704        support::token(&self.syntax, SyntaxKind::OUT_KW)
11705    }
11706}
11707
11708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11709pub struct ParamList {
11710    pub(crate) syntax: SyntaxNode,
11711}
11712impl ParamList {
11713    #[inline]
11714    pub fn params(&self) -> AstChildren<Param> {
11715        support::children(&self.syntax)
11716    }
11717}
11718
11719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11720pub struct ParamOut {
11721    pub(crate) syntax: SyntaxNode,
11722}
11723impl ParamOut {
11724    #[inline]
11725    pub fn out_token(&self) -> Option<SyntaxToken> {
11726        support::token(&self.syntax, SyntaxKind::OUT_KW)
11727    }
11728}
11729
11730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11731pub struct ParamVariadic {
11732    pub(crate) syntax: SyntaxNode,
11733}
11734impl ParamVariadic {
11735    #[inline]
11736    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11737        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11738    }
11739}
11740
11741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11742pub struct ParenExpr {
11743    pub(crate) syntax: SyntaxNode,
11744}
11745impl ParenExpr {
11746    #[inline]
11747    pub fn expr(&self) -> Option<Expr> {
11748        support::child(&self.syntax)
11749    }
11750    #[inline]
11751    pub fn from_item(&self) -> Option<FromItem> {
11752        support::child(&self.syntax)
11753    }
11754    #[inline]
11755    pub fn select(&self) -> Option<Select> {
11756        support::child(&self.syntax)
11757    }
11758    #[inline]
11759    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11760        support::token(&self.syntax, SyntaxKind::L_PAREN)
11761    }
11762    #[inline]
11763    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11764        support::token(&self.syntax, SyntaxKind::R_PAREN)
11765    }
11766}
11767
11768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11769pub struct ParenSelect {
11770    pub(crate) syntax: SyntaxNode,
11771}
11772impl ParenSelect {
11773    #[inline]
11774    pub fn select(&self) -> Option<SelectVariant> {
11775        support::child(&self.syntax)
11776    }
11777    #[inline]
11778    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11779        support::token(&self.syntax, SyntaxKind::L_PAREN)
11780    }
11781    #[inline]
11782    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11783        support::token(&self.syntax, SyntaxKind::R_PAREN)
11784    }
11785}
11786
11787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11788pub struct Partition {
11789    pub(crate) syntax: SyntaxNode,
11790}
11791impl Partition {
11792    #[inline]
11793    pub fn partition_type(&self) -> Option<PartitionType> {
11794        support::child(&self.syntax)
11795    }
11796    #[inline]
11797    pub fn path(&self) -> Option<Path> {
11798        support::child(&self.syntax)
11799    }
11800    #[inline]
11801    pub fn partition_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11803    }
11804}
11805
11806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11807pub struct PartitionBy {
11808    pub(crate) syntax: SyntaxNode,
11809}
11810impl PartitionBy {
11811    #[inline]
11812    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11813        support::child(&self.syntax)
11814    }
11815    #[inline]
11816    pub fn by_token(&self) -> Option<SyntaxToken> {
11817        support::token(&self.syntax, SyntaxKind::BY_KW)
11818    }
11819    #[inline]
11820    pub fn ident_token(&self) -> Option<SyntaxToken> {
11821        support::token(&self.syntax, SyntaxKind::IDENT)
11822    }
11823    #[inline]
11824    pub fn partition_token(&self) -> Option<SyntaxToken> {
11825        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11826    }
11827    #[inline]
11828    pub fn range_token(&self) -> Option<SyntaxToken> {
11829        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11830    }
11831}
11832
11833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11834pub struct PartitionDefault {
11835    pub(crate) syntax: SyntaxNode,
11836}
11837impl PartitionDefault {
11838    #[inline]
11839    pub fn default_token(&self) -> Option<SyntaxToken> {
11840        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11841    }
11842}
11843
11844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11845pub struct PartitionForValuesFrom {
11846    pub(crate) syntax: SyntaxNode,
11847}
11848impl PartitionForValuesFrom {
11849    #[inline]
11850    pub fn exprs(&self) -> AstChildren<Expr> {
11851        support::children(&self.syntax)
11852    }
11853    #[inline]
11854    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11855        support::token(&self.syntax, SyntaxKind::L_PAREN)
11856    }
11857    #[inline]
11858    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11859        support::token(&self.syntax, SyntaxKind::R_PAREN)
11860    }
11861    #[inline]
11862    pub fn for_token(&self) -> Option<SyntaxToken> {
11863        support::token(&self.syntax, SyntaxKind::FOR_KW)
11864    }
11865    #[inline]
11866    pub fn from_token(&self) -> Option<SyntaxToken> {
11867        support::token(&self.syntax, SyntaxKind::FROM_KW)
11868    }
11869    #[inline]
11870    pub fn to_token(&self) -> Option<SyntaxToken> {
11871        support::token(&self.syntax, SyntaxKind::TO_KW)
11872    }
11873    #[inline]
11874    pub fn values_token(&self) -> Option<SyntaxToken> {
11875        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11876    }
11877}
11878
11879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11880pub struct PartitionForValuesIn {
11881    pub(crate) syntax: SyntaxNode,
11882}
11883impl PartitionForValuesIn {
11884    #[inline]
11885    pub fn exprs(&self) -> AstChildren<Expr> {
11886        support::children(&self.syntax)
11887    }
11888    #[inline]
11889    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11890        support::token(&self.syntax, SyntaxKind::L_PAREN)
11891    }
11892    #[inline]
11893    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11894        support::token(&self.syntax, SyntaxKind::R_PAREN)
11895    }
11896    #[inline]
11897    pub fn for_token(&self) -> Option<SyntaxToken> {
11898        support::token(&self.syntax, SyntaxKind::FOR_KW)
11899    }
11900    #[inline]
11901    pub fn in_token(&self) -> Option<SyntaxToken> {
11902        support::token(&self.syntax, SyntaxKind::IN_KW)
11903    }
11904    #[inline]
11905    pub fn values_token(&self) -> Option<SyntaxToken> {
11906        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11907    }
11908}
11909
11910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11911pub struct PartitionForValuesWith {
11912    pub(crate) syntax: SyntaxNode,
11913}
11914impl PartitionForValuesWith {
11915    #[inline]
11916    pub fn literal(&self) -> Option<Literal> {
11917        support::child(&self.syntax)
11918    }
11919    #[inline]
11920    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11921        support::token(&self.syntax, SyntaxKind::L_PAREN)
11922    }
11923    #[inline]
11924    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11925        support::token(&self.syntax, SyntaxKind::R_PAREN)
11926    }
11927    #[inline]
11928    pub fn comma_token(&self) -> Option<SyntaxToken> {
11929        support::token(&self.syntax, SyntaxKind::COMMA)
11930    }
11931    #[inline]
11932    pub fn for_token(&self) -> Option<SyntaxToken> {
11933        support::token(&self.syntax, SyntaxKind::FOR_KW)
11934    }
11935    #[inline]
11936    pub fn ident_token(&self) -> Option<SyntaxToken> {
11937        support::token(&self.syntax, SyntaxKind::IDENT)
11938    }
11939    #[inline]
11940    pub fn values_token(&self) -> Option<SyntaxToken> {
11941        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11942    }
11943    #[inline]
11944    pub fn with_token(&self) -> Option<SyntaxToken> {
11945        support::token(&self.syntax, SyntaxKind::WITH_KW)
11946    }
11947}
11948
11949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11950pub struct PartitionItem {
11951    pub(crate) syntax: SyntaxNode,
11952}
11953impl PartitionItem {
11954    #[inline]
11955    pub fn collate(&self) -> Option<Collate> {
11956        support::child(&self.syntax)
11957    }
11958    #[inline]
11959    pub fn expr(&self) -> Option<Expr> {
11960        support::child(&self.syntax)
11961    }
11962}
11963
11964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11965pub struct PartitionItemList {
11966    pub(crate) syntax: SyntaxNode,
11967}
11968impl PartitionItemList {
11969    #[inline]
11970    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
11971        support::children(&self.syntax)
11972    }
11973    #[inline]
11974    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::L_PAREN)
11976    }
11977    #[inline]
11978    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11979        support::token(&self.syntax, SyntaxKind::R_PAREN)
11980    }
11981}
11982
11983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11984pub struct PartitionList {
11985    pub(crate) syntax: SyntaxNode,
11986}
11987impl PartitionList {
11988    #[inline]
11989    pub fn partitions(&self) -> AstChildren<Partition> {
11990        support::children(&self.syntax)
11991    }
11992    #[inline]
11993    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::L_PAREN)
11995    }
11996    #[inline]
11997    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::R_PAREN)
11999    }
12000}
12001
12002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12003pub struct PartitionOf {
12004    pub(crate) syntax: SyntaxNode,
12005}
12006impl PartitionOf {
12007    #[inline]
12008    pub fn ty(&self) -> Option<Type> {
12009        support::child(&self.syntax)
12010    }
12011    #[inline]
12012    pub fn of_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::OF_KW)
12014    }
12015    #[inline]
12016    pub fn partition_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12018    }
12019}
12020
12021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12022pub struct Path {
12023    pub(crate) syntax: SyntaxNode,
12024}
12025impl Path {
12026    #[inline]
12027    pub fn qualifier(&self) -> Option<Path> {
12028        support::child(&self.syntax)
12029    }
12030    #[inline]
12031    pub fn segment(&self) -> Option<PathSegment> {
12032        support::child(&self.syntax)
12033    }
12034    #[inline]
12035    pub fn dot_token(&self) -> Option<SyntaxToken> {
12036        support::token(&self.syntax, SyntaxKind::DOT)
12037    }
12038}
12039
12040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12041pub struct PathSegment {
12042    pub(crate) syntax: SyntaxNode,
12043}
12044impl PathSegment {
12045    #[inline]
12046    pub fn name(&self) -> Option<Name> {
12047        support::child(&self.syntax)
12048    }
12049    #[inline]
12050    pub fn name_ref(&self) -> Option<NameRef> {
12051        support::child(&self.syntax)
12052    }
12053}
12054
12055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12056pub struct PathType {
12057    pub(crate) syntax: SyntaxNode,
12058}
12059impl PathType {
12060    #[inline]
12061    pub fn arg_list(&self) -> Option<ArgList> {
12062        support::child(&self.syntax)
12063    }
12064    #[inline]
12065    pub fn path(&self) -> Option<Path> {
12066        support::child(&self.syntax)
12067    }
12068}
12069
12070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12071pub struct PercentType {
12072    pub(crate) syntax: SyntaxNode,
12073}
12074impl PercentType {
12075    #[inline]
12076    pub fn percent_token(&self) -> Option<SyntaxToken> {
12077        support::token(&self.syntax, SyntaxKind::PERCENT)
12078    }
12079    #[inline]
12080    pub fn type_token(&self) -> Option<SyntaxToken> {
12081        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12082    }
12083}
12084
12085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12086pub struct PercentTypeClause {
12087    pub(crate) syntax: SyntaxNode,
12088}
12089impl PercentTypeClause {
12090    #[inline]
12091    pub fn path(&self) -> Option<Path> {
12092        support::child(&self.syntax)
12093    }
12094    #[inline]
12095    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12096        support::child(&self.syntax)
12097    }
12098}
12099
12100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12101pub struct PositionFn {
12102    pub(crate) syntax: SyntaxNode,
12103}
12104impl PositionFn {
12105    #[inline]
12106    pub fn expr(&self) -> Option<Expr> {
12107        support::child(&self.syntax)
12108    }
12109    #[inline]
12110    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12111        support::token(&self.syntax, SyntaxKind::L_PAREN)
12112    }
12113    #[inline]
12114    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12115        support::token(&self.syntax, SyntaxKind::R_PAREN)
12116    }
12117    #[inline]
12118    pub fn in_token(&self) -> Option<SyntaxToken> {
12119        support::token(&self.syntax, SyntaxKind::IN_KW)
12120    }
12121    #[inline]
12122    pub fn position_token(&self) -> Option<SyntaxToken> {
12123        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12124    }
12125}
12126
12127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12128pub struct PostfixExpr {
12129    pub(crate) syntax: SyntaxNode,
12130}
12131impl PostfixExpr {
12132    #[inline]
12133    pub fn expr(&self) -> Option<Expr> {
12134        support::child(&self.syntax)
12135    }
12136}
12137
12138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12139pub struct PrefixExpr {
12140    pub(crate) syntax: SyntaxNode,
12141}
12142impl PrefixExpr {
12143    #[inline]
12144    pub fn expr(&self) -> Option<Expr> {
12145        support::child(&self.syntax)
12146    }
12147}
12148
12149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12150pub struct Prepare {
12151    pub(crate) syntax: SyntaxNode,
12152}
12153impl Prepare {
12154    #[inline]
12155    pub fn name(&self) -> Option<Name> {
12156        support::child(&self.syntax)
12157    }
12158    #[inline]
12159    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12160        support::child(&self.syntax)
12161    }
12162    #[inline]
12163    pub fn as_token(&self) -> Option<SyntaxToken> {
12164        support::token(&self.syntax, SyntaxKind::AS_KW)
12165    }
12166    #[inline]
12167    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12168        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12169    }
12170}
12171
12172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12173pub struct PrepareTransaction {
12174    pub(crate) syntax: SyntaxNode,
12175}
12176impl PrepareTransaction {
12177    #[inline]
12178    pub fn literal(&self) -> Option<Literal> {
12179        support::child(&self.syntax)
12180    }
12181    #[inline]
12182    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12183        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12184    }
12185    #[inline]
12186    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12187        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12188    }
12189}
12190
12191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12192pub struct PreserveRows {
12193    pub(crate) syntax: SyntaxNode,
12194}
12195impl PreserveRows {
12196    #[inline]
12197    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12198        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12199    }
12200    #[inline]
12201    pub fn rows_token(&self) -> Option<SyntaxToken> {
12202        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12203    }
12204}
12205
12206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12207pub struct PrimaryKeyConstraint {
12208    pub(crate) syntax: SyntaxNode,
12209}
12210impl PrimaryKeyConstraint {
12211    #[inline]
12212    pub fn column_list(&self) -> Option<ColumnList> {
12213        support::child(&self.syntax)
12214    }
12215    #[inline]
12216    pub fn name(&self) -> Option<Name> {
12217        support::child(&self.syntax)
12218    }
12219    #[inline]
12220    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12221        support::child(&self.syntax)
12222    }
12223    #[inline]
12224    pub fn using_index(&self) -> Option<UsingIndex> {
12225        support::child(&self.syntax)
12226    }
12227    #[inline]
12228    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12229        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12230    }
12231    #[inline]
12232    pub fn key_token(&self) -> Option<SyntaxToken> {
12233        support::token(&self.syntax, SyntaxKind::KEY_KW)
12234    }
12235    #[inline]
12236    pub fn primary_token(&self) -> Option<SyntaxToken> {
12237        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12238    }
12239}
12240
12241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12242pub struct PrivilegeTarget {
12243    pub(crate) syntax: SyntaxNode,
12244}
12245impl PrivilegeTarget {
12246    #[inline]
12247    pub fn functions_token(&self) -> Option<SyntaxToken> {
12248        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12249    }
12250    #[inline]
12251    pub fn large_token(&self) -> Option<SyntaxToken> {
12252        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12253    }
12254    #[inline]
12255    pub fn objects_token(&self) -> Option<SyntaxToken> {
12256        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12257    }
12258    #[inline]
12259    pub fn routines_token(&self) -> Option<SyntaxToken> {
12260        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12261    }
12262    #[inline]
12263    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12264        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12265    }
12266    #[inline]
12267    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12268        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12269    }
12270    #[inline]
12271    pub fn tables_token(&self) -> Option<SyntaxToken> {
12272        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12273    }
12274    #[inline]
12275    pub fn types_token(&self) -> Option<SyntaxToken> {
12276        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12277    }
12278}
12279
12280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12281pub struct Privileges {
12282    pub(crate) syntax: SyntaxNode,
12283}
12284impl Privileges {
12285    #[inline]
12286    pub fn column_list(&self) -> Option<ColumnList> {
12287        support::child(&self.syntax)
12288    }
12289    #[inline]
12290    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12291        support::child(&self.syntax)
12292    }
12293    #[inline]
12294    pub fn all_token(&self) -> Option<SyntaxToken> {
12295        support::token(&self.syntax, SyntaxKind::ALL_KW)
12296    }
12297    #[inline]
12298    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12299        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12300    }
12301}
12302
12303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12304pub struct PublicationObject {
12305    pub(crate) syntax: SyntaxNode,
12306}
12307impl PublicationObject {
12308    #[inline]
12309    pub fn column_list(&self) -> Option<ColumnList> {
12310        support::child(&self.syntax)
12311    }
12312    #[inline]
12313    pub fn name_ref(&self) -> Option<NameRef> {
12314        support::child(&self.syntax)
12315    }
12316    #[inline]
12317    pub fn path(&self) -> Option<Path> {
12318        support::child(&self.syntax)
12319    }
12320    #[inline]
12321    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12322        support::child(&self.syntax)
12323    }
12324    #[inline]
12325    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12326        support::token(&self.syntax, SyntaxKind::L_PAREN)
12327    }
12328    #[inline]
12329    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12330        support::token(&self.syntax, SyntaxKind::R_PAREN)
12331    }
12332    #[inline]
12333    pub fn star_token(&self) -> Option<SyntaxToken> {
12334        support::token(&self.syntax, SyntaxKind::STAR)
12335    }
12336    #[inline]
12337    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12338        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12339    }
12340    #[inline]
12341    pub fn in_token(&self) -> Option<SyntaxToken> {
12342        support::token(&self.syntax, SyntaxKind::IN_KW)
12343    }
12344    #[inline]
12345    pub fn only_token(&self) -> Option<SyntaxToken> {
12346        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12347    }
12348    #[inline]
12349    pub fn schema_token(&self) -> Option<SyntaxToken> {
12350        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12351    }
12352    #[inline]
12353    pub fn table_token(&self) -> Option<SyntaxToken> {
12354        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12355    }
12356    #[inline]
12357    pub fn tables_token(&self) -> Option<SyntaxToken> {
12358        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12359    }
12360}
12361
12362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12363pub struct ReadCommitted {
12364    pub(crate) syntax: SyntaxNode,
12365}
12366impl ReadCommitted {
12367    #[inline]
12368    pub fn committed_token(&self) -> Option<SyntaxToken> {
12369        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12370    }
12371    #[inline]
12372    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12373        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12374    }
12375    #[inline]
12376    pub fn level_token(&self) -> Option<SyntaxToken> {
12377        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12378    }
12379    #[inline]
12380    pub fn read_token(&self) -> Option<SyntaxToken> {
12381        support::token(&self.syntax, SyntaxKind::READ_KW)
12382    }
12383}
12384
12385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12386pub struct ReadOnly {
12387    pub(crate) syntax: SyntaxNode,
12388}
12389impl ReadOnly {
12390    #[inline]
12391    pub fn only_token(&self) -> Option<SyntaxToken> {
12392        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12393    }
12394    #[inline]
12395    pub fn read_token(&self) -> Option<SyntaxToken> {
12396        support::token(&self.syntax, SyntaxKind::READ_KW)
12397    }
12398}
12399
12400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12401pub struct ReadUncommitted {
12402    pub(crate) syntax: SyntaxNode,
12403}
12404impl ReadUncommitted {
12405    #[inline]
12406    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12407        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12408    }
12409    #[inline]
12410    pub fn level_token(&self) -> Option<SyntaxToken> {
12411        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12412    }
12413    #[inline]
12414    pub fn read_token(&self) -> Option<SyntaxToken> {
12415        support::token(&self.syntax, SyntaxKind::READ_KW)
12416    }
12417    #[inline]
12418    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12419        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12420    }
12421}
12422
12423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12424pub struct ReadWrite {
12425    pub(crate) syntax: SyntaxNode,
12426}
12427impl ReadWrite {
12428    #[inline]
12429    pub fn read_token(&self) -> Option<SyntaxToken> {
12430        support::token(&self.syntax, SyntaxKind::READ_KW)
12431    }
12432    #[inline]
12433    pub fn write_token(&self) -> Option<SyntaxToken> {
12434        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12435    }
12436}
12437
12438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12439pub struct Reassign {
12440    pub(crate) syntax: SyntaxNode,
12441}
12442impl Reassign {
12443    #[inline]
12444    pub fn new_roles(&self) -> Option<RoleList> {
12445        support::child(&self.syntax)
12446    }
12447    #[inline]
12448    pub fn old_roles(&self) -> Option<RoleList> {
12449        support::child(&self.syntax)
12450    }
12451    #[inline]
12452    pub fn by_token(&self) -> Option<SyntaxToken> {
12453        support::token(&self.syntax, SyntaxKind::BY_KW)
12454    }
12455    #[inline]
12456    pub fn owned_token(&self) -> Option<SyntaxToken> {
12457        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12458    }
12459    #[inline]
12460    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12461        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12462    }
12463    #[inline]
12464    pub fn to_token(&self) -> Option<SyntaxToken> {
12465        support::token(&self.syntax, SyntaxKind::TO_KW)
12466    }
12467}
12468
12469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12470pub struct ReferencesConstraint {
12471    pub(crate) syntax: SyntaxNode,
12472}
12473impl ReferencesConstraint {
12474    #[inline]
12475    pub fn match_type(&self) -> Option<MatchType> {
12476        support::child(&self.syntax)
12477    }
12478    #[inline]
12479    pub fn name(&self) -> Option<Name> {
12480        support::child(&self.syntax)
12481    }
12482    #[inline]
12483    pub fn name_ref(&self) -> Option<NameRef> {
12484        support::child(&self.syntax)
12485    }
12486    #[inline]
12487    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12488        support::child(&self.syntax)
12489    }
12490    #[inline]
12491    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12492        support::child(&self.syntax)
12493    }
12494    #[inline]
12495    pub fn path(&self) -> Option<Path> {
12496        support::child(&self.syntax)
12497    }
12498    #[inline]
12499    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12500        support::token(&self.syntax, SyntaxKind::L_PAREN)
12501    }
12502    #[inline]
12503    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12504        support::token(&self.syntax, SyntaxKind::R_PAREN)
12505    }
12506    #[inline]
12507    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12508        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12509    }
12510    #[inline]
12511    pub fn references_token(&self) -> Option<SyntaxToken> {
12512        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12513    }
12514}
12515
12516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12517pub struct Referencing {
12518    pub(crate) syntax: SyntaxNode,
12519}
12520impl Referencing {
12521    #[inline]
12522    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12523        support::children(&self.syntax)
12524    }
12525    #[inline]
12526    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12527        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12528    }
12529}
12530
12531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12532pub struct ReferencingTable {
12533    pub(crate) syntax: SyntaxNode,
12534}
12535impl ReferencingTable {
12536    #[inline]
12537    pub fn name_ref(&self) -> Option<NameRef> {
12538        support::child(&self.syntax)
12539    }
12540    #[inline]
12541    pub fn as_token(&self) -> Option<SyntaxToken> {
12542        support::token(&self.syntax, SyntaxKind::AS_KW)
12543    }
12544    #[inline]
12545    pub fn new_token(&self) -> Option<SyntaxToken> {
12546        support::token(&self.syntax, SyntaxKind::NEW_KW)
12547    }
12548    #[inline]
12549    pub fn old_token(&self) -> Option<SyntaxToken> {
12550        support::token(&self.syntax, SyntaxKind::OLD_KW)
12551    }
12552    #[inline]
12553    pub fn table_token(&self) -> Option<SyntaxToken> {
12554        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12555    }
12556}
12557
12558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12559pub struct Refresh {
12560    pub(crate) syntax: SyntaxNode,
12561}
12562impl Refresh {
12563    #[inline]
12564    pub fn path(&self) -> Option<Path> {
12565        support::child(&self.syntax)
12566    }
12567    #[inline]
12568    pub fn with_data(&self) -> Option<WithData> {
12569        support::child(&self.syntax)
12570    }
12571    #[inline]
12572    pub fn with_no_data(&self) -> Option<WithNoData> {
12573        support::child(&self.syntax)
12574    }
12575    #[inline]
12576    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12577        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12578    }
12579    #[inline]
12580    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12581        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12582    }
12583    #[inline]
12584    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12585        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12586    }
12587    #[inline]
12588    pub fn view_token(&self) -> Option<SyntaxToken> {
12589        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12590    }
12591}
12592
12593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12594pub struct RefreshCollationVersion {
12595    pub(crate) syntax: SyntaxNode,
12596}
12597impl RefreshCollationVersion {
12598    #[inline]
12599    pub fn collation_token(&self) -> Option<SyntaxToken> {
12600        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12601    }
12602    #[inline]
12603    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12604        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12605    }
12606    #[inline]
12607    pub fn version_token(&self) -> Option<SyntaxToken> {
12608        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12609    }
12610}
12611
12612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12613pub struct RefreshVersion {
12614    pub(crate) syntax: SyntaxNode,
12615}
12616impl RefreshVersion {
12617    #[inline]
12618    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12619        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12620    }
12621    #[inline]
12622    pub fn version_token(&self) -> Option<SyntaxToken> {
12623        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12624    }
12625}
12626
12627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12628pub struct Reindex {
12629    pub(crate) syntax: SyntaxNode,
12630}
12631impl Reindex {
12632    #[inline]
12633    pub fn path(&self) -> Option<Path> {
12634        support::child(&self.syntax)
12635    }
12636    #[inline]
12637    pub fn database_token(&self) -> Option<SyntaxToken> {
12638        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12639    }
12640    #[inline]
12641    pub fn index_token(&self) -> Option<SyntaxToken> {
12642        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12643    }
12644    #[inline]
12645    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12646        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12647    }
12648    #[inline]
12649    pub fn schema_token(&self) -> Option<SyntaxToken> {
12650        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12651    }
12652    #[inline]
12653    pub fn system_token(&self) -> Option<SyntaxToken> {
12654        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12655    }
12656    #[inline]
12657    pub fn table_token(&self) -> Option<SyntaxToken> {
12658        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12659    }
12660}
12661
12662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12663pub struct RelationName {
12664    pub(crate) syntax: SyntaxNode,
12665}
12666impl RelationName {
12667    #[inline]
12668    pub fn path(&self) -> Option<Path> {
12669        support::child(&self.syntax)
12670    }
12671    #[inline]
12672    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12673        support::token(&self.syntax, SyntaxKind::L_PAREN)
12674    }
12675    #[inline]
12676    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12677        support::token(&self.syntax, SyntaxKind::R_PAREN)
12678    }
12679    #[inline]
12680    pub fn star_token(&self) -> Option<SyntaxToken> {
12681        support::token(&self.syntax, SyntaxKind::STAR)
12682    }
12683    #[inline]
12684    pub fn only_token(&self) -> Option<SyntaxToken> {
12685        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12686    }
12687}
12688
12689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12690pub struct ReleaseSavepoint {
12691    pub(crate) syntax: SyntaxNode,
12692}
12693impl ReleaseSavepoint {
12694    #[inline]
12695    pub fn name_ref(&self) -> Option<NameRef> {
12696        support::child(&self.syntax)
12697    }
12698    #[inline]
12699    pub fn release_token(&self) -> Option<SyntaxToken> {
12700        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12701    }
12702    #[inline]
12703    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12704        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12705    }
12706}
12707
12708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12709pub struct RenameColumn {
12710    pub(crate) syntax: SyntaxNode,
12711}
12712impl RenameColumn {
12713    #[inline]
12714    pub fn column_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12716    }
12717    #[inline]
12718    pub fn rename_token(&self) -> Option<SyntaxToken> {
12719        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12720    }
12721    #[inline]
12722    pub fn to_token(&self) -> Option<SyntaxToken> {
12723        support::token(&self.syntax, SyntaxKind::TO_KW)
12724    }
12725}
12726
12727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12728pub struct RenameConstraint {
12729    pub(crate) syntax: SyntaxNode,
12730}
12731impl RenameConstraint {
12732    #[inline]
12733    pub fn name(&self) -> Option<Name> {
12734        support::child(&self.syntax)
12735    }
12736    #[inline]
12737    pub fn name_ref(&self) -> Option<NameRef> {
12738        support::child(&self.syntax)
12739    }
12740    #[inline]
12741    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12742        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12743    }
12744    #[inline]
12745    pub fn rename_token(&self) -> Option<SyntaxToken> {
12746        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12747    }
12748    #[inline]
12749    pub fn to_token(&self) -> Option<SyntaxToken> {
12750        support::token(&self.syntax, SyntaxKind::TO_KW)
12751    }
12752}
12753
12754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12755pub struct RenameTo {
12756    pub(crate) syntax: SyntaxNode,
12757}
12758impl RenameTo {
12759    #[inline]
12760    pub fn name(&self) -> Option<Name> {
12761        support::child(&self.syntax)
12762    }
12763    #[inline]
12764    pub fn rename_token(&self) -> Option<SyntaxToken> {
12765        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12766    }
12767    #[inline]
12768    pub fn to_token(&self) -> Option<SyntaxToken> {
12769        support::token(&self.syntax, SyntaxKind::TO_KW)
12770    }
12771}
12772
12773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12774pub struct RepeatableClause {
12775    pub(crate) syntax: SyntaxNode,
12776}
12777impl RepeatableClause {
12778    #[inline]
12779    pub fn expr(&self) -> Option<Expr> {
12780        support::child(&self.syntax)
12781    }
12782    #[inline]
12783    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12784        support::token(&self.syntax, SyntaxKind::L_PAREN)
12785    }
12786    #[inline]
12787    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12788        support::token(&self.syntax, SyntaxKind::R_PAREN)
12789    }
12790    #[inline]
12791    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12792        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12793    }
12794}
12795
12796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12797pub struct RepeatableRead {
12798    pub(crate) syntax: SyntaxNode,
12799}
12800impl RepeatableRead {
12801    #[inline]
12802    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12803        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12804    }
12805    #[inline]
12806    pub fn level_token(&self) -> Option<SyntaxToken> {
12807        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12808    }
12809    #[inline]
12810    pub fn read_token(&self) -> Option<SyntaxToken> {
12811        support::token(&self.syntax, SyntaxKind::READ_KW)
12812    }
12813    #[inline]
12814    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12815        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12816    }
12817}
12818
12819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12820pub struct ReplicaIdentity {
12821    pub(crate) syntax: SyntaxNode,
12822}
12823impl ReplicaIdentity {
12824    #[inline]
12825    pub fn identity_token(&self) -> Option<SyntaxToken> {
12826        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
12827    }
12828    #[inline]
12829    pub fn replica_token(&self) -> Option<SyntaxToken> {
12830        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
12831    }
12832}
12833
12834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12835pub struct Reset {
12836    pub(crate) syntax: SyntaxNode,
12837}
12838impl Reset {
12839    #[inline]
12840    pub fn name_ref(&self) -> Option<NameRef> {
12841        support::child(&self.syntax)
12842    }
12843    #[inline]
12844    pub fn all_token(&self) -> Option<SyntaxToken> {
12845        support::token(&self.syntax, SyntaxKind::ALL_KW)
12846    }
12847    #[inline]
12848    pub fn reset_token(&self) -> Option<SyntaxToken> {
12849        support::token(&self.syntax, SyntaxKind::RESET_KW)
12850    }
12851}
12852
12853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12854pub struct ResetConfigParam {
12855    pub(crate) syntax: SyntaxNode,
12856}
12857impl ResetConfigParam {
12858    #[inline]
12859    pub fn path(&self) -> Option<Path> {
12860        support::child(&self.syntax)
12861    }
12862    #[inline]
12863    pub fn all_token(&self) -> Option<SyntaxToken> {
12864        support::token(&self.syntax, SyntaxKind::ALL_KW)
12865    }
12866    #[inline]
12867    pub fn reset_token(&self) -> Option<SyntaxToken> {
12868        support::token(&self.syntax, SyntaxKind::RESET_KW)
12869    }
12870}
12871
12872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12873pub struct ResetFuncOption {
12874    pub(crate) syntax: SyntaxNode,
12875}
12876impl ResetFuncOption {
12877    #[inline]
12878    pub fn name_ref(&self) -> Option<NameRef> {
12879        support::child(&self.syntax)
12880    }
12881    #[inline]
12882    pub fn reset_token(&self) -> Option<SyntaxToken> {
12883        support::token(&self.syntax, SyntaxKind::RESET_KW)
12884    }
12885}
12886
12887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12888pub struct ResetOptions {
12889    pub(crate) syntax: SyntaxNode,
12890}
12891impl ResetOptions {
12892    #[inline]
12893    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12894        support::token(&self.syntax, SyntaxKind::L_PAREN)
12895    }
12896    #[inline]
12897    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12898        support::token(&self.syntax, SyntaxKind::R_PAREN)
12899    }
12900    #[inline]
12901    pub fn reset_token(&self) -> Option<SyntaxToken> {
12902        support::token(&self.syntax, SyntaxKind::RESET_KW)
12903    }
12904}
12905
12906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12907pub struct ResetSessionAuth {
12908    pub(crate) syntax: SyntaxNode,
12909}
12910impl ResetSessionAuth {
12911    #[inline]
12912    pub fn authorization_token(&self) -> Option<SyntaxToken> {
12913        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
12914    }
12915    #[inline]
12916    pub fn reset_token(&self) -> Option<SyntaxToken> {
12917        support::token(&self.syntax, SyntaxKind::RESET_KW)
12918    }
12919    #[inline]
12920    pub fn session_token(&self) -> Option<SyntaxToken> {
12921        support::token(&self.syntax, SyntaxKind::SESSION_KW)
12922    }
12923}
12924
12925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12926pub struct Restart {
12927    pub(crate) syntax: SyntaxNode,
12928}
12929impl Restart {
12930    #[inline]
12931    pub fn restart_token(&self) -> Option<SyntaxToken> {
12932        support::token(&self.syntax, SyntaxKind::RESTART_KW)
12933    }
12934    #[inline]
12935    pub fn with_token(&self) -> Option<SyntaxToken> {
12936        support::token(&self.syntax, SyntaxKind::WITH_KW)
12937    }
12938}
12939
12940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12941pub struct Restrict {
12942    pub(crate) syntax: SyntaxNode,
12943}
12944impl Restrict {
12945    #[inline]
12946    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12947        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12948    }
12949}
12950
12951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12952pub struct RetType {
12953    pub(crate) syntax: SyntaxNode,
12954}
12955impl RetType {
12956    #[inline]
12957    pub fn ty(&self) -> Option<Type> {
12958        support::child(&self.syntax)
12959    }
12960    #[inline]
12961    pub fn returns_token(&self) -> Option<SyntaxToken> {
12962        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
12963    }
12964}
12965
12966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12967pub struct ReturnFuncOption {
12968    pub(crate) syntax: SyntaxNode,
12969}
12970impl ReturnFuncOption {
12971    #[inline]
12972    pub fn expr(&self) -> Option<Expr> {
12973        support::child(&self.syntax)
12974    }
12975    #[inline]
12976    pub fn return_token(&self) -> Option<SyntaxToken> {
12977        support::token(&self.syntax, SyntaxKind::RETURN_KW)
12978    }
12979}
12980
12981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12982pub struct ReturningClause {
12983    pub(crate) syntax: SyntaxNode,
12984}
12985impl ReturningClause {
12986    #[inline]
12987    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
12988        support::child(&self.syntax)
12989    }
12990    #[inline]
12991    pub fn target_list(&self) -> Option<TargetList> {
12992        support::child(&self.syntax)
12993    }
12994    #[inline]
12995    pub fn returning_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
12997    }
12998}
12999
13000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13001pub struct ReturningOption {
13002    pub(crate) syntax: SyntaxNode,
13003}
13004impl ReturningOption {
13005    #[inline]
13006    pub fn name(&self) -> Option<Name> {
13007        support::child(&self.syntax)
13008    }
13009    #[inline]
13010    pub fn as_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::AS_KW)
13012    }
13013    #[inline]
13014    pub fn new_token(&self) -> Option<SyntaxToken> {
13015        support::token(&self.syntax, SyntaxKind::NEW_KW)
13016    }
13017    #[inline]
13018    pub fn old_token(&self) -> Option<SyntaxToken> {
13019        support::token(&self.syntax, SyntaxKind::OLD_KW)
13020    }
13021}
13022
13023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13024pub struct ReturningOptionList {
13025    pub(crate) syntax: SyntaxNode,
13026}
13027impl ReturningOptionList {
13028    #[inline]
13029    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
13030        support::children(&self.syntax)
13031    }
13032    #[inline]
13033    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13034        support::token(&self.syntax, SyntaxKind::L_PAREN)
13035    }
13036    #[inline]
13037    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13038        support::token(&self.syntax, SyntaxKind::R_PAREN)
13039    }
13040    #[inline]
13041    pub fn with_token(&self) -> Option<SyntaxToken> {
13042        support::token(&self.syntax, SyntaxKind::WITH_KW)
13043    }
13044}
13045
13046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13047pub struct Revoke {
13048    pub(crate) syntax: SyntaxNode,
13049}
13050impl Revoke {
13051    #[inline]
13052    pub fn name_refs(&self) -> AstChildren<NameRef> {
13053        support::children(&self.syntax)
13054    }
13055    #[inline]
13056    pub fn paths(&self) -> AstChildren<Path> {
13057        support::children(&self.syntax)
13058    }
13059    #[inline]
13060    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13061        support::child(&self.syntax)
13062    }
13063    #[inline]
13064    pub fn role(&self) -> Option<Role> {
13065        support::child(&self.syntax)
13066    }
13067    #[inline]
13068    pub fn role_list(&self) -> Option<RoleList> {
13069        support::child(&self.syntax)
13070    }
13071    #[inline]
13072    pub fn all_token(&self) -> Option<SyntaxToken> {
13073        support::token(&self.syntax, SyntaxKind::ALL_KW)
13074    }
13075    #[inline]
13076    pub fn by_token(&self) -> Option<SyntaxToken> {
13077        support::token(&self.syntax, SyntaxKind::BY_KW)
13078    }
13079    #[inline]
13080    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13081        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13082    }
13083    #[inline]
13084    pub fn for_token(&self) -> Option<SyntaxToken> {
13085        support::token(&self.syntax, SyntaxKind::FOR_KW)
13086    }
13087    #[inline]
13088    pub fn from_token(&self) -> Option<SyntaxToken> {
13089        support::token(&self.syntax, SyntaxKind::FROM_KW)
13090    }
13091    #[inline]
13092    pub fn grant_token(&self) -> Option<SyntaxToken> {
13093        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13094    }
13095    #[inline]
13096    pub fn granted_token(&self) -> Option<SyntaxToken> {
13097        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13098    }
13099    #[inline]
13100    pub fn in_token(&self) -> Option<SyntaxToken> {
13101        support::token(&self.syntax, SyntaxKind::IN_KW)
13102    }
13103    #[inline]
13104    pub fn on_token(&self) -> Option<SyntaxToken> {
13105        support::token(&self.syntax, SyntaxKind::ON_KW)
13106    }
13107    #[inline]
13108    pub fn option_token(&self) -> Option<SyntaxToken> {
13109        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13110    }
13111    #[inline]
13112    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13113        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13114    }
13115    #[inline]
13116    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13117        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13118    }
13119    #[inline]
13120    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13121        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13122    }
13123    #[inline]
13124    pub fn schema_token(&self) -> Option<SyntaxToken> {
13125        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13126    }
13127    #[inline]
13128    pub fn table_token(&self) -> Option<SyntaxToken> {
13129        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13130    }
13131    #[inline]
13132    pub fn tables_token(&self) -> Option<SyntaxToken> {
13133        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13134    }
13135}
13136
13137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13138pub struct RevokeCommand {
13139    pub(crate) syntax: SyntaxNode,
13140}
13141impl RevokeCommand {
13142    #[inline]
13143    pub fn role(&self) -> Option<Role> {
13144        support::child(&self.syntax)
13145    }
13146    #[inline]
13147    pub fn all_token(&self) -> Option<SyntaxToken> {
13148        support::token(&self.syntax, SyntaxKind::ALL_KW)
13149    }
13150    #[inline]
13151    pub fn alter_token(&self) -> Option<SyntaxToken> {
13152        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13153    }
13154    #[inline]
13155    pub fn create_token(&self) -> Option<SyntaxToken> {
13156        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13157    }
13158    #[inline]
13159    pub fn delete_token(&self) -> Option<SyntaxToken> {
13160        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13161    }
13162    #[inline]
13163    pub fn execute_token(&self) -> Option<SyntaxToken> {
13164        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13165    }
13166    #[inline]
13167    pub fn ident_token(&self) -> Option<SyntaxToken> {
13168        support::token(&self.syntax, SyntaxKind::IDENT)
13169    }
13170    #[inline]
13171    pub fn insert_token(&self) -> Option<SyntaxToken> {
13172        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13173    }
13174    #[inline]
13175    pub fn references_token(&self) -> Option<SyntaxToken> {
13176        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13177    }
13178    #[inline]
13179    pub fn select_token(&self) -> Option<SyntaxToken> {
13180        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13181    }
13182    #[inline]
13183    pub fn system_token(&self) -> Option<SyntaxToken> {
13184        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13185    }
13186    #[inline]
13187    pub fn temp_token(&self) -> Option<SyntaxToken> {
13188        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13189    }
13190    #[inline]
13191    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13192        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13193    }
13194    #[inline]
13195    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13196        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13197    }
13198    #[inline]
13199    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13200        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13201    }
13202    #[inline]
13203    pub fn update_token(&self) -> Option<SyntaxToken> {
13204        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13205    }
13206}
13207
13208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13209pub struct RevokeCommandList {
13210    pub(crate) syntax: SyntaxNode,
13211}
13212impl RevokeCommandList {
13213    #[inline]
13214    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13215        support::children(&self.syntax)
13216    }
13217}
13218
13219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13220pub struct RevokeDefaultPrivileges {
13221    pub(crate) syntax: SyntaxNode,
13222}
13223impl RevokeDefaultPrivileges {
13224    #[inline]
13225    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13226        support::child(&self.syntax)
13227    }
13228    #[inline]
13229    pub fn privileges(&self) -> Option<Privileges> {
13230        support::child(&self.syntax)
13231    }
13232    #[inline]
13233    pub fn role_list(&self) -> Option<RoleList> {
13234        support::child(&self.syntax)
13235    }
13236    #[inline]
13237    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13238        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13239    }
13240    #[inline]
13241    pub fn for_token(&self) -> Option<SyntaxToken> {
13242        support::token(&self.syntax, SyntaxKind::FOR_KW)
13243    }
13244    #[inline]
13245    pub fn from_token(&self) -> Option<SyntaxToken> {
13246        support::token(&self.syntax, SyntaxKind::FROM_KW)
13247    }
13248    #[inline]
13249    pub fn grant_token(&self) -> Option<SyntaxToken> {
13250        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13251    }
13252    #[inline]
13253    pub fn on_token(&self) -> Option<SyntaxToken> {
13254        support::token(&self.syntax, SyntaxKind::ON_KW)
13255    }
13256    #[inline]
13257    pub fn option_token(&self) -> Option<SyntaxToken> {
13258        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13259    }
13260    #[inline]
13261    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13262        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13263    }
13264    #[inline]
13265    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13266        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13267    }
13268}
13269
13270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13271pub struct Role {
13272    pub(crate) syntax: SyntaxNode,
13273}
13274impl Role {
13275    #[inline]
13276    pub fn name_ref(&self) -> Option<NameRef> {
13277        support::child(&self.syntax)
13278    }
13279    #[inline]
13280    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13281        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13282    }
13283    #[inline]
13284    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13285        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13286    }
13287    #[inline]
13288    pub fn group_token(&self) -> Option<SyntaxToken> {
13289        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13290    }
13291    #[inline]
13292    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13293        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13294    }
13295}
13296
13297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13298pub struct RoleList {
13299    pub(crate) syntax: SyntaxNode,
13300}
13301impl RoleList {
13302    #[inline]
13303    pub fn roles(&self) -> AstChildren<Role> {
13304        support::children(&self.syntax)
13305    }
13306}
13307
13308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13309pub struct RoleOption {
13310    pub(crate) syntax: SyntaxNode,
13311}
13312impl RoleOption {
13313    #[inline]
13314    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13316    }
13317}
13318
13319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13320pub struct RoleOptionList {
13321    pub(crate) syntax: SyntaxNode,
13322}
13323impl RoleOptionList {
13324    #[inline]
13325    pub fn role_options(&self) -> AstChildren<RoleOption> {
13326        support::children(&self.syntax)
13327    }
13328    #[inline]
13329    pub fn with_token(&self) -> Option<SyntaxToken> {
13330        support::token(&self.syntax, SyntaxKind::WITH_KW)
13331    }
13332}
13333
13334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13335pub struct Rollback {
13336    pub(crate) syntax: SyntaxNode,
13337}
13338impl Rollback {
13339    #[inline]
13340    pub fn literal(&self) -> Option<Literal> {
13341        support::child(&self.syntax)
13342    }
13343    #[inline]
13344    pub fn name_ref(&self) -> Option<NameRef> {
13345        support::child(&self.syntax)
13346    }
13347    #[inline]
13348    pub fn abort_token(&self) -> Option<SyntaxToken> {
13349        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13350    }
13351    #[inline]
13352    pub fn and_token(&self) -> Option<SyntaxToken> {
13353        support::token(&self.syntax, SyntaxKind::AND_KW)
13354    }
13355    #[inline]
13356    pub fn chain_token(&self) -> Option<SyntaxToken> {
13357        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13358    }
13359    #[inline]
13360    pub fn no_token(&self) -> Option<SyntaxToken> {
13361        support::token(&self.syntax, SyntaxKind::NO_KW)
13362    }
13363    #[inline]
13364    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13365        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13366    }
13367    #[inline]
13368    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13369        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13370    }
13371    #[inline]
13372    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13373        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13374    }
13375    #[inline]
13376    pub fn to_token(&self) -> Option<SyntaxToken> {
13377        support::token(&self.syntax, SyntaxKind::TO_KW)
13378    }
13379    #[inline]
13380    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13381        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13382    }
13383    #[inline]
13384    pub fn work_token(&self) -> Option<SyntaxToken> {
13385        support::token(&self.syntax, SyntaxKind::WORK_KW)
13386    }
13387}
13388
13389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13390pub struct Row {
13391    pub(crate) syntax: SyntaxNode,
13392}
13393impl Row {
13394    #[inline]
13395    pub fn exprs(&self) -> AstChildren<Expr> {
13396        support::children(&self.syntax)
13397    }
13398}
13399
13400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13401pub struct RowList {
13402    pub(crate) syntax: SyntaxNode,
13403}
13404impl RowList {
13405    #[inline]
13406    pub fn rows(&self) -> AstChildren<Row> {
13407        support::children(&self.syntax)
13408    }
13409}
13410
13411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13412pub struct RowsFuncOption {
13413    pub(crate) syntax: SyntaxNode,
13414}
13415impl RowsFuncOption {
13416    #[inline]
13417    pub fn rows_token(&self) -> Option<SyntaxToken> {
13418        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13419    }
13420}
13421
13422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13423pub struct Savepoint {
13424    pub(crate) syntax: SyntaxNode,
13425}
13426impl Savepoint {
13427    #[inline]
13428    pub fn name(&self) -> Option<Name> {
13429        support::child(&self.syntax)
13430    }
13431    #[inline]
13432    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13433        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13434    }
13435}
13436
13437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13438pub struct SchemaAuthorization {
13439    pub(crate) syntax: SyntaxNode,
13440}
13441impl SchemaAuthorization {
13442    #[inline]
13443    pub fn role(&self) -> Option<Role> {
13444        support::child(&self.syntax)
13445    }
13446    #[inline]
13447    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13448        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13449    }
13450}
13451
13452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13453pub struct SecurityFuncOption {
13454    pub(crate) syntax: SyntaxNode,
13455}
13456impl SecurityFuncOption {
13457    #[inline]
13458    pub fn definer_token(&self) -> Option<SyntaxToken> {
13459        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13460    }
13461    #[inline]
13462    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13463        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13464    }
13465    #[inline]
13466    pub fn security_token(&self) -> Option<SyntaxToken> {
13467        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13468    }
13469}
13470
13471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13472pub struct SecurityLabel {
13473    pub(crate) syntax: SyntaxNode,
13474}
13475impl SecurityLabel {
13476    #[inline]
13477    pub fn aggregate(&self) -> Option<Aggregate> {
13478        support::child(&self.syntax)
13479    }
13480    #[inline]
13481    pub fn for_provider(&self) -> Option<ForProvider> {
13482        support::child(&self.syntax)
13483    }
13484    #[inline]
13485    pub fn function_sig(&self) -> Option<FunctionSig> {
13486        support::child(&self.syntax)
13487    }
13488    #[inline]
13489    pub fn literal(&self) -> Option<Literal> {
13490        support::child(&self.syntax)
13491    }
13492    #[inline]
13493    pub fn path(&self) -> Option<Path> {
13494        support::child(&self.syntax)
13495    }
13496    #[inline]
13497    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13498        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13499    }
13500    #[inline]
13501    pub fn column_token(&self) -> Option<SyntaxToken> {
13502        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13503    }
13504    #[inline]
13505    pub fn database_token(&self) -> Option<SyntaxToken> {
13506        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13507    }
13508    #[inline]
13509    pub fn domain_token(&self) -> Option<SyntaxToken> {
13510        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13511    }
13512    #[inline]
13513    pub fn event_token(&self) -> Option<SyntaxToken> {
13514        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13515    }
13516    #[inline]
13517    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13518        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13519    }
13520    #[inline]
13521    pub fn function_token(&self) -> Option<SyntaxToken> {
13522        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13523    }
13524    #[inline]
13525    pub fn is_token(&self) -> Option<SyntaxToken> {
13526        support::token(&self.syntax, SyntaxKind::IS_KW)
13527    }
13528    #[inline]
13529    pub fn label_token(&self) -> Option<SyntaxToken> {
13530        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13531    }
13532    #[inline]
13533    pub fn language_token(&self) -> Option<SyntaxToken> {
13534        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13535    }
13536    #[inline]
13537    pub fn large_token(&self) -> Option<SyntaxToken> {
13538        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13539    }
13540    #[inline]
13541    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13542        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13543    }
13544    #[inline]
13545    pub fn null_token(&self) -> Option<SyntaxToken> {
13546        support::token(&self.syntax, SyntaxKind::NULL_KW)
13547    }
13548    #[inline]
13549    pub fn object_token(&self) -> Option<SyntaxToken> {
13550        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13551    }
13552    #[inline]
13553    pub fn on_token(&self) -> Option<SyntaxToken> {
13554        support::token(&self.syntax, SyntaxKind::ON_KW)
13555    }
13556    #[inline]
13557    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13558        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13559    }
13560    #[inline]
13561    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13562        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13563    }
13564    #[inline]
13565    pub fn publication_token(&self) -> Option<SyntaxToken> {
13566        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13567    }
13568    #[inline]
13569    pub fn role_token(&self) -> Option<SyntaxToken> {
13570        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13571    }
13572    #[inline]
13573    pub fn routine_token(&self) -> Option<SyntaxToken> {
13574        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13575    }
13576    #[inline]
13577    pub fn schema_token(&self) -> Option<SyntaxToken> {
13578        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13579    }
13580    #[inline]
13581    pub fn security_token(&self) -> Option<SyntaxToken> {
13582        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13583    }
13584    #[inline]
13585    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13586        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13587    }
13588    #[inline]
13589    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13590        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13591    }
13592    #[inline]
13593    pub fn table_token(&self) -> Option<SyntaxToken> {
13594        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13595    }
13596    #[inline]
13597    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13598        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13599    }
13600    #[inline]
13601    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13602        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13603    }
13604    #[inline]
13605    pub fn type_token(&self) -> Option<SyntaxToken> {
13606        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13607    }
13608    #[inline]
13609    pub fn view_token(&self) -> Option<SyntaxToken> {
13610        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13611    }
13612}
13613
13614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13615pub struct Select {
13616    pub(crate) syntax: SyntaxNode,
13617}
13618impl Select {
13619    #[inline]
13620    pub fn fetch_clause(&self) -> Option<FetchClause> {
13621        support::child(&self.syntax)
13622    }
13623    #[inline]
13624    pub fn filter_clause(&self) -> Option<FilterClause> {
13625        support::child(&self.syntax)
13626    }
13627    #[inline]
13628    pub fn from_clause(&self) -> Option<FromClause> {
13629        support::child(&self.syntax)
13630    }
13631    #[inline]
13632    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13633        support::child(&self.syntax)
13634    }
13635    #[inline]
13636    pub fn having_clause(&self) -> Option<HavingClause> {
13637        support::child(&self.syntax)
13638    }
13639    #[inline]
13640    pub fn limit_clause(&self) -> Option<LimitClause> {
13641        support::child(&self.syntax)
13642    }
13643    #[inline]
13644    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13645        support::children(&self.syntax)
13646    }
13647    #[inline]
13648    pub fn offset_clause(&self) -> Option<OffsetClause> {
13649        support::child(&self.syntax)
13650    }
13651    #[inline]
13652    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13653        support::child(&self.syntax)
13654    }
13655    #[inline]
13656    pub fn select_clause(&self) -> Option<SelectClause> {
13657        support::child(&self.syntax)
13658    }
13659    #[inline]
13660    pub fn where_clause(&self) -> Option<WhereClause> {
13661        support::child(&self.syntax)
13662    }
13663    #[inline]
13664    pub fn window_clause(&self) -> Option<WindowClause> {
13665        support::child(&self.syntax)
13666    }
13667    #[inline]
13668    pub fn with_clause(&self) -> Option<WithClause> {
13669        support::child(&self.syntax)
13670    }
13671}
13672
13673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13674pub struct SelectClause {
13675    pub(crate) syntax: SyntaxNode,
13676}
13677impl SelectClause {
13678    #[inline]
13679    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13680        support::child(&self.syntax)
13681    }
13682    #[inline]
13683    pub fn target_list(&self) -> Option<TargetList> {
13684        support::child(&self.syntax)
13685    }
13686    #[inline]
13687    pub fn all_token(&self) -> Option<SyntaxToken> {
13688        support::token(&self.syntax, SyntaxKind::ALL_KW)
13689    }
13690    #[inline]
13691    pub fn select_token(&self) -> Option<SyntaxToken> {
13692        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13693    }
13694}
13695
13696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13697pub struct SelectInto {
13698    pub(crate) syntax: SyntaxNode,
13699}
13700impl SelectInto {
13701    #[inline]
13702    pub fn filter_clause(&self) -> Option<FilterClause> {
13703        support::child(&self.syntax)
13704    }
13705    #[inline]
13706    pub fn from_clause(&self) -> Option<FromClause> {
13707        support::child(&self.syntax)
13708    }
13709    #[inline]
13710    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13711        support::child(&self.syntax)
13712    }
13713    #[inline]
13714    pub fn having_clause(&self) -> Option<HavingClause> {
13715        support::child(&self.syntax)
13716    }
13717    #[inline]
13718    pub fn into_clause(&self) -> Option<IntoClause> {
13719        support::child(&self.syntax)
13720    }
13721    #[inline]
13722    pub fn limit_clause(&self) -> Option<LimitClause> {
13723        support::child(&self.syntax)
13724    }
13725    #[inline]
13726    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13727        support::children(&self.syntax)
13728    }
13729    #[inline]
13730    pub fn offset_clause(&self) -> Option<OffsetClause> {
13731        support::child(&self.syntax)
13732    }
13733    #[inline]
13734    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13735        support::child(&self.syntax)
13736    }
13737    #[inline]
13738    pub fn select_clause(&self) -> Option<SelectClause> {
13739        support::child(&self.syntax)
13740    }
13741    #[inline]
13742    pub fn where_clause(&self) -> Option<WhereClause> {
13743        support::child(&self.syntax)
13744    }
13745    #[inline]
13746    pub fn window_clause(&self) -> Option<WindowClause> {
13747        support::child(&self.syntax)
13748    }
13749    #[inline]
13750    pub fn with_clause(&self) -> Option<WithClause> {
13751        support::child(&self.syntax)
13752    }
13753}
13754
13755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13756pub struct SequenceOption {
13757    pub(crate) syntax: SyntaxNode,
13758}
13759impl SequenceOption {
13760    #[inline]
13761    pub fn literal(&self) -> Option<Literal> {
13762        support::child(&self.syntax)
13763    }
13764    #[inline]
13765    pub fn name_ref(&self) -> Option<NameRef> {
13766        support::child(&self.syntax)
13767    }
13768    #[inline]
13769    pub fn path(&self) -> Option<Path> {
13770        support::child(&self.syntax)
13771    }
13772    #[inline]
13773    pub fn ty(&self) -> Option<Type> {
13774        support::child(&self.syntax)
13775    }
13776    #[inline]
13777    pub fn as_token(&self) -> Option<SyntaxToken> {
13778        support::token(&self.syntax, SyntaxKind::AS_KW)
13779    }
13780    #[inline]
13781    pub fn by_token(&self) -> Option<SyntaxToken> {
13782        support::token(&self.syntax, SyntaxKind::BY_KW)
13783    }
13784    #[inline]
13785    pub fn cycle_token(&self) -> Option<SyntaxToken> {
13786        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
13787    }
13788    #[inline]
13789    pub fn increment_token(&self) -> Option<SyntaxToken> {
13790        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
13791    }
13792    #[inline]
13793    pub fn logged_token(&self) -> Option<SyntaxToken> {
13794        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13795    }
13796    #[inline]
13797    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
13798        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
13799    }
13800    #[inline]
13801    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
13802        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
13803    }
13804    #[inline]
13805    pub fn name_token(&self) -> Option<SyntaxToken> {
13806        support::token(&self.syntax, SyntaxKind::NAME_KW)
13807    }
13808    #[inline]
13809    pub fn no_token(&self) -> Option<SyntaxToken> {
13810        support::token(&self.syntax, SyntaxKind::NO_KW)
13811    }
13812    #[inline]
13813    pub fn none_token(&self) -> Option<SyntaxToken> {
13814        support::token(&self.syntax, SyntaxKind::NONE_KW)
13815    }
13816    #[inline]
13817    pub fn owned_token(&self) -> Option<SyntaxToken> {
13818        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13819    }
13820    #[inline]
13821    pub fn restart_token(&self) -> Option<SyntaxToken> {
13822        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13823    }
13824    #[inline]
13825    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13826        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13827    }
13828    #[inline]
13829    pub fn start_token(&self) -> Option<SyntaxToken> {
13830        support::token(&self.syntax, SyntaxKind::START_KW)
13831    }
13832    #[inline]
13833    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
13834        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
13835    }
13836    #[inline]
13837    pub fn with_token(&self) -> Option<SyntaxToken> {
13838        support::token(&self.syntax, SyntaxKind::WITH_KW)
13839    }
13840}
13841
13842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13843pub struct SequenceOptionList {
13844    pub(crate) syntax: SyntaxNode,
13845}
13846impl SequenceOptionList {
13847    #[inline]
13848    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
13849        support::children(&self.syntax)
13850    }
13851    #[inline]
13852    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13853        support::token(&self.syntax, SyntaxKind::L_PAREN)
13854    }
13855    #[inline]
13856    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13857        support::token(&self.syntax, SyntaxKind::R_PAREN)
13858    }
13859}
13860
13861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13862pub struct Serializable {
13863    pub(crate) syntax: SyntaxNode,
13864}
13865impl Serializable {
13866    #[inline]
13867    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13869    }
13870    #[inline]
13871    pub fn level_token(&self) -> Option<SyntaxToken> {
13872        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13873    }
13874    #[inline]
13875    pub fn serializable_token(&self) -> Option<SyntaxToken> {
13876        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
13877    }
13878}
13879
13880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13881pub struct Set {
13882    pub(crate) syntax: SyntaxNode,
13883}
13884impl Set {
13885    #[inline]
13886    pub fn config_value(&self) -> Option<ConfigValue> {
13887        support::child(&self.syntax)
13888    }
13889    #[inline]
13890    pub fn config_values(&self) -> AstChildren<ConfigValue> {
13891        support::children(&self.syntax)
13892    }
13893    #[inline]
13894    pub fn literal(&self) -> Option<Literal> {
13895        support::child(&self.syntax)
13896    }
13897    #[inline]
13898    pub fn path(&self) -> Option<Path> {
13899        support::child(&self.syntax)
13900    }
13901    #[inline]
13902    pub fn eq_token(&self) -> Option<SyntaxToken> {
13903        support::token(&self.syntax, SyntaxKind::EQ)
13904    }
13905    #[inline]
13906    pub fn catalog_token(&self) -> Option<SyntaxToken> {
13907        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
13908    }
13909    #[inline]
13910    pub fn content_token(&self) -> Option<SyntaxToken> {
13911        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
13912    }
13913    #[inline]
13914    pub fn current_token(&self) -> Option<SyntaxToken> {
13915        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
13916    }
13917    #[inline]
13918    pub fn default_token(&self) -> Option<SyntaxToken> {
13919        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13920    }
13921    #[inline]
13922    pub fn document_token(&self) -> Option<SyntaxToken> {
13923        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
13924    }
13925    #[inline]
13926    pub fn from_token(&self) -> Option<SyntaxToken> {
13927        support::token(&self.syntax, SyntaxKind::FROM_KW)
13928    }
13929    #[inline]
13930    pub fn local_token(&self) -> Option<SyntaxToken> {
13931        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13932    }
13933    #[inline]
13934    pub fn option_token(&self) -> Option<SyntaxToken> {
13935        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13936    }
13937    #[inline]
13938    pub fn schema_token(&self) -> Option<SyntaxToken> {
13939        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13940    }
13941    #[inline]
13942    pub fn session_token(&self) -> Option<SyntaxToken> {
13943        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13944    }
13945    #[inline]
13946    pub fn set_token(&self) -> Option<SyntaxToken> {
13947        support::token(&self.syntax, SyntaxKind::SET_KW)
13948    }
13949    #[inline]
13950    pub fn time_token(&self) -> Option<SyntaxToken> {
13951        support::token(&self.syntax, SyntaxKind::TIME_KW)
13952    }
13953    #[inline]
13954    pub fn to_token(&self) -> Option<SyntaxToken> {
13955        support::token(&self.syntax, SyntaxKind::TO_KW)
13956    }
13957    #[inline]
13958    pub fn xml_token(&self) -> Option<SyntaxToken> {
13959        support::token(&self.syntax, SyntaxKind::XML_KW)
13960    }
13961    #[inline]
13962    pub fn zone_token(&self) -> Option<SyntaxToken> {
13963        support::token(&self.syntax, SyntaxKind::ZONE_KW)
13964    }
13965}
13966
13967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13968pub struct SetAccessMethod {
13969    pub(crate) syntax: SyntaxNode,
13970}
13971impl SetAccessMethod {
13972    #[inline]
13973    pub fn name_ref(&self) -> Option<NameRef> {
13974        support::child(&self.syntax)
13975    }
13976    #[inline]
13977    pub fn access_token(&self) -> Option<SyntaxToken> {
13978        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
13979    }
13980    #[inline]
13981    pub fn method_token(&self) -> Option<SyntaxToken> {
13982        support::token(&self.syntax, SyntaxKind::METHOD_KW)
13983    }
13984    #[inline]
13985    pub fn set_token(&self) -> Option<SyntaxToken> {
13986        support::token(&self.syntax, SyntaxKind::SET_KW)
13987    }
13988}
13989
13990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13991pub struct SetClause {
13992    pub(crate) syntax: SyntaxNode,
13993}
13994impl SetClause {
13995    #[inline]
13996    pub fn set_column_list(&self) -> Option<SetColumnList> {
13997        support::child(&self.syntax)
13998    }
13999    #[inline]
14000    pub fn set_token(&self) -> Option<SyntaxToken> {
14001        support::token(&self.syntax, SyntaxKind::SET_KW)
14002    }
14003}
14004
14005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14006pub struct SetColumnList {
14007    pub(crate) syntax: SyntaxNode,
14008}
14009impl SetColumnList {
14010    #[inline]
14011    pub fn set_columns(&self) -> AstChildren<SetColumn> {
14012        support::children(&self.syntax)
14013    }
14014}
14015
14016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14017pub struct SetCompression {
14018    pub(crate) syntax: SyntaxNode,
14019}
14020impl SetCompression {
14021    #[inline]
14022    pub fn compression_token(&self) -> Option<SyntaxToken> {
14023        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
14024    }
14025    #[inline]
14026    pub fn set_token(&self) -> Option<SyntaxToken> {
14027        support::token(&self.syntax, SyntaxKind::SET_KW)
14028    }
14029}
14030
14031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14032pub struct SetConfigParam {
14033    pub(crate) syntax: SyntaxNode,
14034}
14035impl SetConfigParam {
14036    #[inline]
14037    pub fn path(&self) -> Option<Path> {
14038        support::child(&self.syntax)
14039    }
14040    #[inline]
14041    pub fn set_token(&self) -> Option<SyntaxToken> {
14042        support::token(&self.syntax, SyntaxKind::SET_KW)
14043    }
14044}
14045
14046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14047pub struct SetConstraints {
14048    pub(crate) syntax: SyntaxNode,
14049}
14050impl SetConstraints {
14051    #[inline]
14052    pub fn paths(&self) -> AstChildren<Path> {
14053        support::children(&self.syntax)
14054    }
14055    #[inline]
14056    pub fn all_token(&self) -> Option<SyntaxToken> {
14057        support::token(&self.syntax, SyntaxKind::ALL_KW)
14058    }
14059    #[inline]
14060    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14061        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14062    }
14063    #[inline]
14064    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14065        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14066    }
14067    #[inline]
14068    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14069        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14070    }
14071    #[inline]
14072    pub fn set_token(&self) -> Option<SyntaxToken> {
14073        support::token(&self.syntax, SyntaxKind::SET_KW)
14074    }
14075}
14076
14077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14078pub struct SetDefault {
14079    pub(crate) syntax: SyntaxNode,
14080}
14081impl SetDefault {
14082    #[inline]
14083    pub fn expr(&self) -> Option<Expr> {
14084        support::child(&self.syntax)
14085    }
14086    #[inline]
14087    pub fn default_token(&self) -> Option<SyntaxToken> {
14088        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14089    }
14090    #[inline]
14091    pub fn set_token(&self) -> Option<SyntaxToken> {
14092        support::token(&self.syntax, SyntaxKind::SET_KW)
14093    }
14094}
14095
14096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14097pub struct SetDefaultColumns {
14098    pub(crate) syntax: SyntaxNode,
14099}
14100impl SetDefaultColumns {
14101    #[inline]
14102    pub fn column_list(&self) -> Option<ColumnList> {
14103        support::child(&self.syntax)
14104    }
14105    #[inline]
14106    pub fn default_token(&self) -> Option<SyntaxToken> {
14107        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14108    }
14109    #[inline]
14110    pub fn set_token(&self) -> Option<SyntaxToken> {
14111        support::token(&self.syntax, SyntaxKind::SET_KW)
14112    }
14113}
14114
14115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14116pub struct SetExpr {
14117    pub(crate) syntax: SyntaxNode,
14118}
14119impl SetExpr {
14120    #[inline]
14121    pub fn expr(&self) -> Option<Expr> {
14122        support::child(&self.syntax)
14123    }
14124    #[inline]
14125    pub fn default_token(&self) -> Option<SyntaxToken> {
14126        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14127    }
14128}
14129
14130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14131pub struct SetExprList {
14132    pub(crate) syntax: SyntaxNode,
14133}
14134impl SetExprList {
14135    #[inline]
14136    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14137        support::children(&self.syntax)
14138    }
14139    #[inline]
14140    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14141        support::token(&self.syntax, SyntaxKind::L_PAREN)
14142    }
14143    #[inline]
14144    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14145        support::token(&self.syntax, SyntaxKind::R_PAREN)
14146    }
14147    #[inline]
14148    pub fn row_token(&self) -> Option<SyntaxToken> {
14149        support::token(&self.syntax, SyntaxKind::ROW_KW)
14150    }
14151}
14152
14153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14154pub struct SetExpression {
14155    pub(crate) syntax: SyntaxNode,
14156}
14157impl SetExpression {
14158    #[inline]
14159    pub fn expr(&self) -> Option<Expr> {
14160        support::child(&self.syntax)
14161    }
14162    #[inline]
14163    pub fn expression_token(&self) -> Option<SyntaxToken> {
14164        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14165    }
14166    #[inline]
14167    pub fn set_token(&self) -> Option<SyntaxToken> {
14168        support::token(&self.syntax, SyntaxKind::SET_KW)
14169    }
14170}
14171
14172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14173pub struct SetFuncOption {
14174    pub(crate) syntax: SyntaxNode,
14175}
14176impl SetFuncOption {
14177    #[inline]
14178    pub fn set_token(&self) -> Option<SyntaxToken> {
14179        support::token(&self.syntax, SyntaxKind::SET_KW)
14180    }
14181}
14182
14183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14184pub struct SetGenerated {
14185    pub(crate) syntax: SyntaxNode,
14186}
14187impl SetGenerated {
14188    #[inline]
14189    pub fn set_token(&self) -> Option<SyntaxToken> {
14190        support::token(&self.syntax, SyntaxKind::SET_KW)
14191    }
14192}
14193
14194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14195pub struct SetGeneratedOptions {
14196    pub(crate) syntax: SyntaxNode,
14197}
14198impl SetGeneratedOptions {
14199    #[inline]
14200    pub fn generated_token(&self) -> Option<SyntaxToken> {
14201        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14202    }
14203    #[inline]
14204    pub fn set_token(&self) -> Option<SyntaxToken> {
14205        support::token(&self.syntax, SyntaxKind::SET_KW)
14206    }
14207}
14208
14209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14210pub struct SetLogged {
14211    pub(crate) syntax: SyntaxNode,
14212}
14213impl SetLogged {
14214    #[inline]
14215    pub fn logged_token(&self) -> Option<SyntaxToken> {
14216        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14217    }
14218    #[inline]
14219    pub fn set_token(&self) -> Option<SyntaxToken> {
14220        support::token(&self.syntax, SyntaxKind::SET_KW)
14221    }
14222}
14223
14224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14225pub struct SetMultipleColumns {
14226    pub(crate) syntax: SyntaxNode,
14227}
14228impl SetMultipleColumns {
14229    #[inline]
14230    pub fn column_list(&self) -> Option<ColumnList> {
14231        support::child(&self.syntax)
14232    }
14233    #[inline]
14234    pub fn paren_select(&self) -> Option<ParenSelect> {
14235        support::child(&self.syntax)
14236    }
14237    #[inline]
14238    pub fn set_expr_list(&self) -> Option<SetExprList> {
14239        support::child(&self.syntax)
14240    }
14241    #[inline]
14242    pub fn eq_token(&self) -> Option<SyntaxToken> {
14243        support::token(&self.syntax, SyntaxKind::EQ)
14244    }
14245}
14246
14247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14248pub struct SetNotNull {
14249    pub(crate) syntax: SyntaxNode,
14250}
14251impl SetNotNull {
14252    #[inline]
14253    pub fn not_token(&self) -> Option<SyntaxToken> {
14254        support::token(&self.syntax, SyntaxKind::NOT_KW)
14255    }
14256    #[inline]
14257    pub fn null_token(&self) -> Option<SyntaxToken> {
14258        support::token(&self.syntax, SyntaxKind::NULL_KW)
14259    }
14260    #[inline]
14261    pub fn set_token(&self) -> Option<SyntaxToken> {
14262        support::token(&self.syntax, SyntaxKind::SET_KW)
14263    }
14264}
14265
14266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14267pub struct SetNullColumns {
14268    pub(crate) syntax: SyntaxNode,
14269}
14270impl SetNullColumns {
14271    #[inline]
14272    pub fn column_list(&self) -> Option<ColumnList> {
14273        support::child(&self.syntax)
14274    }
14275    #[inline]
14276    pub fn null_token(&self) -> Option<SyntaxToken> {
14277        support::token(&self.syntax, SyntaxKind::NULL_KW)
14278    }
14279    #[inline]
14280    pub fn set_token(&self) -> Option<SyntaxToken> {
14281        support::token(&self.syntax, SyntaxKind::SET_KW)
14282    }
14283}
14284
14285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14286pub struct SetOptions {
14287    pub(crate) syntax: SyntaxNode,
14288}
14289impl SetOptions {
14290    #[inline]
14291    pub fn attribute_list(&self) -> Option<AttributeList> {
14292        support::child(&self.syntax)
14293    }
14294    #[inline]
14295    pub fn set_token(&self) -> Option<SyntaxToken> {
14296        support::token(&self.syntax, SyntaxKind::SET_KW)
14297    }
14298}
14299
14300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14301pub struct SetOptionsList {
14302    pub(crate) syntax: SyntaxNode,
14303}
14304impl SetOptionsList {
14305    #[inline]
14306    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14307        support::child(&self.syntax)
14308    }
14309    #[inline]
14310    pub fn options_token(&self) -> Option<SyntaxToken> {
14311        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14312    }
14313    #[inline]
14314    pub fn set_token(&self) -> Option<SyntaxToken> {
14315        support::token(&self.syntax, SyntaxKind::SET_KW)
14316    }
14317}
14318
14319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14320pub struct SetRole {
14321    pub(crate) syntax: SyntaxNode,
14322}
14323impl SetRole {
14324    #[inline]
14325    pub fn role(&self) -> Option<Role> {
14326        support::child(&self.syntax)
14327    }
14328    #[inline]
14329    pub fn local_token(&self) -> Option<SyntaxToken> {
14330        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14331    }
14332    #[inline]
14333    pub fn none_token(&self) -> Option<SyntaxToken> {
14334        support::token(&self.syntax, SyntaxKind::NONE_KW)
14335    }
14336    #[inline]
14337    pub fn reset_token(&self) -> Option<SyntaxToken> {
14338        support::token(&self.syntax, SyntaxKind::RESET_KW)
14339    }
14340    #[inline]
14341    pub fn role_token(&self) -> Option<SyntaxToken> {
14342        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14343    }
14344    #[inline]
14345    pub fn session_token(&self) -> Option<SyntaxToken> {
14346        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14347    }
14348    #[inline]
14349    pub fn set_token(&self) -> Option<SyntaxToken> {
14350        support::token(&self.syntax, SyntaxKind::SET_KW)
14351    }
14352}
14353
14354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14355pub struct SetSchema {
14356    pub(crate) syntax: SyntaxNode,
14357}
14358impl SetSchema {
14359    #[inline]
14360    pub fn name_ref(&self) -> Option<NameRef> {
14361        support::child(&self.syntax)
14362    }
14363    #[inline]
14364    pub fn schema_token(&self) -> Option<SyntaxToken> {
14365        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14366    }
14367    #[inline]
14368    pub fn set_token(&self) -> Option<SyntaxToken> {
14369        support::token(&self.syntax, SyntaxKind::SET_KW)
14370    }
14371}
14372
14373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14374pub struct SetSequenceOption {
14375    pub(crate) syntax: SyntaxNode,
14376}
14377impl SetSequenceOption {
14378    #[inline]
14379    pub fn set_token(&self) -> Option<SyntaxToken> {
14380        support::token(&self.syntax, SyntaxKind::SET_KW)
14381    }
14382}
14383
14384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14385pub struct SetSessionAuth {
14386    pub(crate) syntax: SyntaxNode,
14387}
14388impl SetSessionAuth {
14389    #[inline]
14390    pub fn literal(&self) -> Option<Literal> {
14391        support::child(&self.syntax)
14392    }
14393    #[inline]
14394    pub fn role(&self) -> Option<Role> {
14395        support::child(&self.syntax)
14396    }
14397    #[inline]
14398    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14399        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14400    }
14401    #[inline]
14402    pub fn default_token(&self) -> Option<SyntaxToken> {
14403        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14404    }
14405    #[inline]
14406    pub fn local_token(&self) -> Option<SyntaxToken> {
14407        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14408    }
14409    #[inline]
14410    pub fn session_token(&self) -> Option<SyntaxToken> {
14411        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14412    }
14413    #[inline]
14414    pub fn set_token(&self) -> Option<SyntaxToken> {
14415        support::token(&self.syntax, SyntaxKind::SET_KW)
14416    }
14417}
14418
14419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14420pub struct SetSingleColumn {
14421    pub(crate) syntax: SyntaxNode,
14422}
14423impl SetSingleColumn {
14424    #[inline]
14425    pub fn column(&self) -> Option<Column> {
14426        support::child(&self.syntax)
14427    }
14428    #[inline]
14429    pub fn set_expr(&self) -> Option<SetExpr> {
14430        support::child(&self.syntax)
14431    }
14432    #[inline]
14433    pub fn eq_token(&self) -> Option<SyntaxToken> {
14434        support::token(&self.syntax, SyntaxKind::EQ)
14435    }
14436}
14437
14438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14439pub struct SetStatistics {
14440    pub(crate) syntax: SyntaxNode,
14441}
14442impl SetStatistics {
14443    #[inline]
14444    pub fn set_token(&self) -> Option<SyntaxToken> {
14445        support::token(&self.syntax, SyntaxKind::SET_KW)
14446    }
14447    #[inline]
14448    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14449        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14450    }
14451}
14452
14453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14454pub struct SetStorage {
14455    pub(crate) syntax: SyntaxNode,
14456}
14457impl SetStorage {
14458    #[inline]
14459    pub fn set_token(&self) -> Option<SyntaxToken> {
14460        support::token(&self.syntax, SyntaxKind::SET_KW)
14461    }
14462    #[inline]
14463    pub fn storage_token(&self) -> Option<SyntaxToken> {
14464        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14465    }
14466}
14467
14468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14469pub struct SetTablespace {
14470    pub(crate) syntax: SyntaxNode,
14471}
14472impl SetTablespace {
14473    #[inline]
14474    pub fn path(&self) -> Option<Path> {
14475        support::child(&self.syntax)
14476    }
14477    #[inline]
14478    pub fn set_token(&self) -> Option<SyntaxToken> {
14479        support::token(&self.syntax, SyntaxKind::SET_KW)
14480    }
14481    #[inline]
14482    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14483        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14484    }
14485}
14486
14487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14488pub struct SetTransaction {
14489    pub(crate) syntax: SyntaxNode,
14490}
14491impl SetTransaction {
14492    #[inline]
14493    pub fn literal(&self) -> Option<Literal> {
14494        support::child(&self.syntax)
14495    }
14496    #[inline]
14497    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14498        support::child(&self.syntax)
14499    }
14500    #[inline]
14501    pub fn as_token(&self) -> Option<SyntaxToken> {
14502        support::token(&self.syntax, SyntaxKind::AS_KW)
14503    }
14504    #[inline]
14505    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14506        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14507    }
14508    #[inline]
14509    pub fn session_token(&self) -> Option<SyntaxToken> {
14510        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14511    }
14512    #[inline]
14513    pub fn set_token(&self) -> Option<SyntaxToken> {
14514        support::token(&self.syntax, SyntaxKind::SET_KW)
14515    }
14516    #[inline]
14517    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14518        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14519    }
14520    #[inline]
14521    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14522        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14523    }
14524}
14525
14526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14527pub struct SetType {
14528    pub(crate) syntax: SyntaxNode,
14529}
14530impl SetType {
14531    #[inline]
14532    pub fn collate(&self) -> Option<Collate> {
14533        support::child(&self.syntax)
14534    }
14535    #[inline]
14536    pub fn ty(&self) -> Option<Type> {
14537        support::child(&self.syntax)
14538    }
14539    #[inline]
14540    pub fn set_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::SET_KW)
14542    }
14543    #[inline]
14544    pub fn type_token(&self) -> Option<SyntaxToken> {
14545        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14546    }
14547}
14548
14549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14550pub struct SetUnlogged {
14551    pub(crate) syntax: SyntaxNode,
14552}
14553impl SetUnlogged {
14554    #[inline]
14555    pub fn set_token(&self) -> Option<SyntaxToken> {
14556        support::token(&self.syntax, SyntaxKind::SET_KW)
14557    }
14558    #[inline]
14559    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14560        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14561    }
14562}
14563
14564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14565pub struct SetWithoutCluster {
14566    pub(crate) syntax: SyntaxNode,
14567}
14568impl SetWithoutCluster {
14569    #[inline]
14570    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14571        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14572    }
14573    #[inline]
14574    pub fn set_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::SET_KW)
14576    }
14577    #[inline]
14578    pub fn without_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14580    }
14581}
14582
14583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14584pub struct SetWithoutOids {
14585    pub(crate) syntax: SyntaxNode,
14586}
14587impl SetWithoutOids {
14588    #[inline]
14589    pub fn oids_token(&self) -> Option<SyntaxToken> {
14590        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14591    }
14592    #[inline]
14593    pub fn set_token(&self) -> Option<SyntaxToken> {
14594        support::token(&self.syntax, SyntaxKind::SET_KW)
14595    }
14596    #[inline]
14597    pub fn without_token(&self) -> Option<SyntaxToken> {
14598        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14599    }
14600}
14601
14602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14603pub struct Show {
14604    pub(crate) syntax: SyntaxNode,
14605}
14606impl Show {
14607    #[inline]
14608    pub fn show_token(&self) -> Option<SyntaxToken> {
14609        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14610    }
14611}
14612
14613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14614pub struct SimilarTo {
14615    pub(crate) syntax: SyntaxNode,
14616}
14617impl SimilarTo {
14618    #[inline]
14619    pub fn similar_token(&self) -> Option<SyntaxToken> {
14620        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14621    }
14622    #[inline]
14623    pub fn to_token(&self) -> Option<SyntaxToken> {
14624        support::token(&self.syntax, SyntaxKind::TO_KW)
14625    }
14626}
14627
14628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14629pub struct SliceExpr {
14630    pub(crate) syntax: SyntaxNode,
14631}
14632impl SliceExpr {
14633    #[inline]
14634    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14635        support::token(&self.syntax, SyntaxKind::L_BRACK)
14636    }
14637    #[inline]
14638    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14639        support::token(&self.syntax, SyntaxKind::R_BRACK)
14640    }
14641    #[inline]
14642    pub fn colon_token(&self) -> Option<SyntaxToken> {
14643        support::token(&self.syntax, SyntaxKind::COLON)
14644    }
14645}
14646
14647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14648pub struct SomeFn {
14649    pub(crate) syntax: SyntaxNode,
14650}
14651impl SomeFn {
14652    #[inline]
14653    pub fn expr(&self) -> Option<Expr> {
14654        support::child(&self.syntax)
14655    }
14656    #[inline]
14657    pub fn select_variant(&self) -> Option<SelectVariant> {
14658        support::child(&self.syntax)
14659    }
14660    #[inline]
14661    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14662        support::token(&self.syntax, SyntaxKind::L_PAREN)
14663    }
14664    #[inline]
14665    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14666        support::token(&self.syntax, SyntaxKind::R_PAREN)
14667    }
14668    #[inline]
14669    pub fn some_token(&self) -> Option<SyntaxToken> {
14670        support::token(&self.syntax, SyntaxKind::SOME_KW)
14671    }
14672}
14673
14674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14675pub struct SortAsc {
14676    pub(crate) syntax: SyntaxNode,
14677}
14678impl SortAsc {
14679    #[inline]
14680    pub fn asc_token(&self) -> Option<SyntaxToken> {
14681        support::token(&self.syntax, SyntaxKind::ASC_KW)
14682    }
14683}
14684
14685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14686pub struct SortBy {
14687    pub(crate) syntax: SyntaxNode,
14688}
14689impl SortBy {
14690    #[inline]
14691    pub fn expr(&self) -> Option<Expr> {
14692        support::child(&self.syntax)
14693    }
14694    #[inline]
14695    pub fn nulls_first(&self) -> Option<NullsFirst> {
14696        support::child(&self.syntax)
14697    }
14698    #[inline]
14699    pub fn nulls_last(&self) -> Option<NullsLast> {
14700        support::child(&self.syntax)
14701    }
14702    #[inline]
14703    pub fn sort_asc(&self) -> Option<SortAsc> {
14704        support::child(&self.syntax)
14705    }
14706    #[inline]
14707    pub fn sort_desc(&self) -> Option<SortDesc> {
14708        support::child(&self.syntax)
14709    }
14710    #[inline]
14711    pub fn sort_using(&self) -> Option<SortUsing> {
14712        support::child(&self.syntax)
14713    }
14714}
14715
14716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14717pub struct SortByList {
14718    pub(crate) syntax: SyntaxNode,
14719}
14720impl SortByList {
14721    #[inline]
14722    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14723        support::children(&self.syntax)
14724    }
14725}
14726
14727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14728pub struct SortDesc {
14729    pub(crate) syntax: SyntaxNode,
14730}
14731impl SortDesc {
14732    #[inline]
14733    pub fn desc_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::DESC_KW)
14735    }
14736}
14737
14738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14739pub struct SortUsing {
14740    pub(crate) syntax: SyntaxNode,
14741}
14742impl SortUsing {
14743    #[inline]
14744    pub fn op(&self) -> Option<Op> {
14745        support::child(&self.syntax)
14746    }
14747    #[inline]
14748    pub fn using_token(&self) -> Option<SyntaxToken> {
14749        support::token(&self.syntax, SyntaxKind::USING_KW)
14750    }
14751}
14752
14753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14754pub struct SourceFile {
14755    pub(crate) syntax: SyntaxNode,
14756}
14757impl SourceFile {
14758    #[inline]
14759    pub fn stmts(&self) -> AstChildren<Stmt> {
14760        support::children(&self.syntax)
14761    }
14762}
14763
14764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14765pub struct SplitPartition {
14766    pub(crate) syntax: SyntaxNode,
14767}
14768impl SplitPartition {
14769    #[inline]
14770    pub fn partition_list(&self) -> Option<PartitionList> {
14771        support::child(&self.syntax)
14772    }
14773    #[inline]
14774    pub fn into_token(&self) -> Option<SyntaxToken> {
14775        support::token(&self.syntax, SyntaxKind::INTO_KW)
14776    }
14777    #[inline]
14778    pub fn partition_token(&self) -> Option<SyntaxToken> {
14779        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14780    }
14781    #[inline]
14782    pub fn split_token(&self) -> Option<SyntaxToken> {
14783        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
14784    }
14785}
14786
14787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14788pub struct Storage {
14789    pub(crate) syntax: SyntaxNode,
14790}
14791impl Storage {
14792    #[inline]
14793    pub fn default_token(&self) -> Option<SyntaxToken> {
14794        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14795    }
14796    #[inline]
14797    pub fn external_token(&self) -> Option<SyntaxToken> {
14798        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14799    }
14800    #[inline]
14801    pub fn ident_token(&self) -> Option<SyntaxToken> {
14802        support::token(&self.syntax, SyntaxKind::IDENT)
14803    }
14804    #[inline]
14805    pub fn storage_token(&self) -> Option<SyntaxToken> {
14806        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14807    }
14808}
14809
14810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14811pub struct StrictFuncOption {
14812    pub(crate) syntax: SyntaxNode,
14813}
14814impl StrictFuncOption {
14815    #[inline]
14816    pub fn called_token(&self) -> Option<SyntaxToken> {
14817        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14818    }
14819    #[inline]
14820    pub fn input_token(&self) -> Option<SyntaxToken> {
14821        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14822    }
14823    #[inline]
14824    pub fn null_token(&self) -> Option<SyntaxToken> {
14825        support::token(&self.syntax, SyntaxKind::NULL_KW)
14826    }
14827    #[inline]
14828    pub fn on_token(&self) -> Option<SyntaxToken> {
14829        support::token(&self.syntax, SyntaxKind::ON_KW)
14830    }
14831    #[inline]
14832    pub fn returns_token(&self) -> Option<SyntaxToken> {
14833        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14834    }
14835    #[inline]
14836    pub fn strict_token(&self) -> Option<SyntaxToken> {
14837        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14838    }
14839}
14840
14841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14842pub struct SubstringFn {
14843    pub(crate) syntax: SyntaxNode,
14844}
14845impl SubstringFn {
14846    #[inline]
14847    pub fn expr(&self) -> Option<Expr> {
14848        support::child(&self.syntax)
14849    }
14850    #[inline]
14851    pub fn exprs(&self) -> AstChildren<Expr> {
14852        support::children(&self.syntax)
14853    }
14854    #[inline]
14855    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14856        support::token(&self.syntax, SyntaxKind::L_PAREN)
14857    }
14858    #[inline]
14859    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14860        support::token(&self.syntax, SyntaxKind::R_PAREN)
14861    }
14862    #[inline]
14863    pub fn for_token(&self) -> Option<SyntaxToken> {
14864        support::token(&self.syntax, SyntaxKind::FOR_KW)
14865    }
14866    #[inline]
14867    pub fn from_token(&self) -> Option<SyntaxToken> {
14868        support::token(&self.syntax, SyntaxKind::FROM_KW)
14869    }
14870    #[inline]
14871    pub fn similar_token(&self) -> Option<SyntaxToken> {
14872        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14873    }
14874    #[inline]
14875    pub fn substring_token(&self) -> Option<SyntaxToken> {
14876        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14877    }
14878}
14879
14880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14881pub struct SupportFuncOption {
14882    pub(crate) syntax: SyntaxNode,
14883}
14884impl SupportFuncOption {
14885    #[inline]
14886    pub fn support_token(&self) -> Option<SyntaxToken> {
14887        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14888    }
14889}
14890
14891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14892pub struct Table {
14893    pub(crate) syntax: SyntaxNode,
14894}
14895impl Table {
14896    #[inline]
14897    pub fn relation_name(&self) -> Option<RelationName> {
14898        support::child(&self.syntax)
14899    }
14900    #[inline]
14901    pub fn table_token(&self) -> Option<SyntaxToken> {
14902        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14903    }
14904}
14905
14906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14907pub struct TableAndColumns {
14908    pub(crate) syntax: SyntaxNode,
14909}
14910impl TableAndColumns {
14911    #[inline]
14912    pub fn column_list(&self) -> Option<ColumnList> {
14913        support::child(&self.syntax)
14914    }
14915    #[inline]
14916    pub fn relation_name(&self) -> Option<RelationName> {
14917        support::child(&self.syntax)
14918    }
14919}
14920
14921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14922pub struct TableAndColumnsList {
14923    pub(crate) syntax: SyntaxNode,
14924}
14925impl TableAndColumnsList {
14926    #[inline]
14927    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
14928        support::children(&self.syntax)
14929    }
14930}
14931
14932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14933pub struct TableArgList {
14934    pub(crate) syntax: SyntaxNode,
14935}
14936impl TableArgList {
14937    #[inline]
14938    pub fn args(&self) -> AstChildren<TableArg> {
14939        support::children(&self.syntax)
14940    }
14941    #[inline]
14942    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14943        support::token(&self.syntax, SyntaxKind::L_PAREN)
14944    }
14945    #[inline]
14946    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14947        support::token(&self.syntax, SyntaxKind::R_PAREN)
14948    }
14949}
14950
14951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14952pub struct TableList {
14953    pub(crate) syntax: SyntaxNode,
14954}
14955impl TableList {
14956    #[inline]
14957    pub fn relation_names(&self) -> AstChildren<RelationName> {
14958        support::children(&self.syntax)
14959    }
14960}
14961
14962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14963pub struct TablesampleClause {
14964    pub(crate) syntax: SyntaxNode,
14965}
14966impl TablesampleClause {
14967    #[inline]
14968    pub fn call_expr(&self) -> Option<CallExpr> {
14969        support::child(&self.syntax)
14970    }
14971    #[inline]
14972    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
14973        support::child(&self.syntax)
14974    }
14975    #[inline]
14976    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
14977        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
14978    }
14979}
14980
14981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14982pub struct Tablespace {
14983    pub(crate) syntax: SyntaxNode,
14984}
14985impl Tablespace {
14986    #[inline]
14987    pub fn name_ref(&self) -> Option<NameRef> {
14988        support::child(&self.syntax)
14989    }
14990    #[inline]
14991    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14992        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14993    }
14994}
14995
14996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14997pub struct Target {
14998    pub(crate) syntax: SyntaxNode,
14999}
15000impl Target {
15001    #[inline]
15002    pub fn as_name(&self) -> Option<AsName> {
15003        support::child(&self.syntax)
15004    }
15005    #[inline]
15006    pub fn expr(&self) -> Option<Expr> {
15007        support::child(&self.syntax)
15008    }
15009    #[inline]
15010    pub fn star_token(&self) -> Option<SyntaxToken> {
15011        support::token(&self.syntax, SyntaxKind::STAR)
15012    }
15013}
15014
15015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15016pub struct TargetList {
15017    pub(crate) syntax: SyntaxNode,
15018}
15019impl TargetList {
15020    #[inline]
15021    pub fn targets(&self) -> AstChildren<Target> {
15022        support::children(&self.syntax)
15023    }
15024}
15025
15026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15027pub struct TimeType {
15028    pub(crate) syntax: SyntaxNode,
15029}
15030impl TimeType {
15031    #[inline]
15032    pub fn literal(&self) -> Option<Literal> {
15033        support::child(&self.syntax)
15034    }
15035    #[inline]
15036    pub fn timezone(&self) -> Option<Timezone> {
15037        support::child(&self.syntax)
15038    }
15039    #[inline]
15040    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15041        support::token(&self.syntax, SyntaxKind::L_PAREN)
15042    }
15043    #[inline]
15044    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15045        support::token(&self.syntax, SyntaxKind::R_PAREN)
15046    }
15047    #[inline]
15048    pub fn time_token(&self) -> Option<SyntaxToken> {
15049        support::token(&self.syntax, SyntaxKind::TIME_KW)
15050    }
15051    #[inline]
15052    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15053        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15054    }
15055}
15056
15057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15058pub struct Timing {
15059    pub(crate) syntax: SyntaxNode,
15060}
15061impl Timing {
15062    #[inline]
15063    pub fn after_token(&self) -> Option<SyntaxToken> {
15064        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15065    }
15066    #[inline]
15067    pub fn before_token(&self) -> Option<SyntaxToken> {
15068        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15069    }
15070    #[inline]
15071    pub fn instead_token(&self) -> Option<SyntaxToken> {
15072        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15073    }
15074    #[inline]
15075    pub fn of_token(&self) -> Option<SyntaxToken> {
15076        support::token(&self.syntax, SyntaxKind::OF_KW)
15077    }
15078}
15079
15080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15081pub struct TransactionModeList {
15082    pub(crate) syntax: SyntaxNode,
15083}
15084impl TransactionModeList {
15085    #[inline]
15086    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15087        support::children(&self.syntax)
15088    }
15089}
15090
15091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15092pub struct TransformFromFunc {
15093    pub(crate) syntax: SyntaxNode,
15094}
15095impl TransformFromFunc {
15096    #[inline]
15097    pub fn function_sig(&self) -> Option<FunctionSig> {
15098        support::child(&self.syntax)
15099    }
15100    #[inline]
15101    pub fn from_token(&self) -> Option<SyntaxToken> {
15102        support::token(&self.syntax, SyntaxKind::FROM_KW)
15103    }
15104    #[inline]
15105    pub fn function_token(&self) -> Option<SyntaxToken> {
15106        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15107    }
15108    #[inline]
15109    pub fn sql_token(&self) -> Option<SyntaxToken> {
15110        support::token(&self.syntax, SyntaxKind::SQL_KW)
15111    }
15112    #[inline]
15113    pub fn with_token(&self) -> Option<SyntaxToken> {
15114        support::token(&self.syntax, SyntaxKind::WITH_KW)
15115    }
15116}
15117
15118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15119pub struct TransformFuncOption {
15120    pub(crate) syntax: SyntaxNode,
15121}
15122impl TransformFuncOption {
15123    #[inline]
15124    pub fn transform_token(&self) -> Option<SyntaxToken> {
15125        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15126    }
15127}
15128
15129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15130pub struct TransformToFunc {
15131    pub(crate) syntax: SyntaxNode,
15132}
15133impl TransformToFunc {
15134    #[inline]
15135    pub fn function_sig(&self) -> Option<FunctionSig> {
15136        support::child(&self.syntax)
15137    }
15138    #[inline]
15139    pub fn function_token(&self) -> Option<SyntaxToken> {
15140        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15141    }
15142    #[inline]
15143    pub fn sql_token(&self) -> Option<SyntaxToken> {
15144        support::token(&self.syntax, SyntaxKind::SQL_KW)
15145    }
15146    #[inline]
15147    pub fn to_token(&self) -> Option<SyntaxToken> {
15148        support::token(&self.syntax, SyntaxKind::TO_KW)
15149    }
15150    #[inline]
15151    pub fn with_token(&self) -> Option<SyntaxToken> {
15152        support::token(&self.syntax, SyntaxKind::WITH_KW)
15153    }
15154}
15155
15156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15157pub struct TriggerEvent {
15158    pub(crate) syntax: SyntaxNode,
15159}
15160impl TriggerEvent {
15161    #[inline]
15162    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15163        support::child(&self.syntax)
15164    }
15165    #[inline]
15166    pub fn delete_token(&self) -> Option<SyntaxToken> {
15167        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15168    }
15169    #[inline]
15170    pub fn insert_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15172    }
15173    #[inline]
15174    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15176    }
15177}
15178
15179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15180pub struct TriggerEventList {
15181    pub(crate) syntax: SyntaxNode,
15182}
15183impl TriggerEventList {
15184    #[inline]
15185    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15186        support::children(&self.syntax)
15187    }
15188}
15189
15190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15191pub struct TriggerEventUpdate {
15192    pub(crate) syntax: SyntaxNode,
15193}
15194impl TriggerEventUpdate {
15195    #[inline]
15196    pub fn name_refs(&self) -> AstChildren<NameRef> {
15197        support::children(&self.syntax)
15198    }
15199    #[inline]
15200    pub fn of_token(&self) -> Option<SyntaxToken> {
15201        support::token(&self.syntax, SyntaxKind::OF_KW)
15202    }
15203    #[inline]
15204    pub fn update_token(&self) -> Option<SyntaxToken> {
15205        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15206    }
15207}
15208
15209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15210pub struct TrimFn {
15211    pub(crate) syntax: SyntaxNode,
15212}
15213impl TrimFn {
15214    #[inline]
15215    pub fn expr(&self) -> Option<Expr> {
15216        support::child(&self.syntax)
15217    }
15218    #[inline]
15219    pub fn exprs(&self) -> AstChildren<Expr> {
15220        support::children(&self.syntax)
15221    }
15222    #[inline]
15223    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15224        support::token(&self.syntax, SyntaxKind::L_PAREN)
15225    }
15226    #[inline]
15227    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15228        support::token(&self.syntax, SyntaxKind::R_PAREN)
15229    }
15230    #[inline]
15231    pub fn from_token(&self) -> Option<SyntaxToken> {
15232        support::token(&self.syntax, SyntaxKind::FROM_KW)
15233    }
15234    #[inline]
15235    pub fn trim_token(&self) -> Option<SyntaxToken> {
15236        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15237    }
15238}
15239
15240#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15241pub struct Truncate {
15242    pub(crate) syntax: SyntaxNode,
15243}
15244impl Truncate {
15245    #[inline]
15246    pub fn table_list(&self) -> Option<TableList> {
15247        support::child(&self.syntax)
15248    }
15249    #[inline]
15250    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15251        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15252    }
15253    #[inline]
15254    pub fn continue_token(&self) -> Option<SyntaxToken> {
15255        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15256    }
15257    #[inline]
15258    pub fn identity_token(&self) -> Option<SyntaxToken> {
15259        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15260    }
15261    #[inline]
15262    pub fn restart_token(&self) -> Option<SyntaxToken> {
15263        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15264    }
15265    #[inline]
15266    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15267        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15268    }
15269    #[inline]
15270    pub fn table_token(&self) -> Option<SyntaxToken> {
15271        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15272    }
15273    #[inline]
15274    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15275        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15276    }
15277}
15278
15279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15280pub struct TupleExpr {
15281    pub(crate) syntax: SyntaxNode,
15282}
15283impl TupleExpr {
15284    #[inline]
15285    pub fn exprs(&self) -> AstChildren<Expr> {
15286        support::children(&self.syntax)
15287    }
15288    #[inline]
15289    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15290        support::token(&self.syntax, SyntaxKind::L_PAREN)
15291    }
15292    #[inline]
15293    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15294        support::token(&self.syntax, SyntaxKind::R_PAREN)
15295    }
15296}
15297
15298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15299pub struct UnicodeNormalForm {
15300    pub(crate) syntax: SyntaxNode,
15301}
15302impl UnicodeNormalForm {
15303    #[inline]
15304    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15305        support::token(&self.syntax, SyntaxKind::NFC_KW)
15306    }
15307    #[inline]
15308    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15309        support::token(&self.syntax, SyntaxKind::NFD_KW)
15310    }
15311    #[inline]
15312    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15313        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15314    }
15315    #[inline]
15316    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15317        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15318    }
15319}
15320
15321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15322pub struct UniqueConstraint {
15323    pub(crate) syntax: SyntaxNode,
15324}
15325impl UniqueConstraint {
15326    #[inline]
15327    pub fn column_list(&self) -> Option<ColumnList> {
15328        support::child(&self.syntax)
15329    }
15330    #[inline]
15331    pub fn name(&self) -> Option<Name> {
15332        support::child(&self.syntax)
15333    }
15334    #[inline]
15335    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15336        support::child(&self.syntax)
15337    }
15338    #[inline]
15339    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15340        support::child(&self.syntax)
15341    }
15342    #[inline]
15343    pub fn using_index(&self) -> Option<UsingIndex> {
15344        support::child(&self.syntax)
15345    }
15346    #[inline]
15347    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15348        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15349    }
15350    #[inline]
15351    pub fn unique_token(&self) -> Option<SyntaxToken> {
15352        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15353    }
15354}
15355
15356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15357pub struct Unlisten {
15358    pub(crate) syntax: SyntaxNode,
15359}
15360impl Unlisten {
15361    #[inline]
15362    pub fn name_ref(&self) -> Option<NameRef> {
15363        support::child(&self.syntax)
15364    }
15365    #[inline]
15366    pub fn star_token(&self) -> Option<SyntaxToken> {
15367        support::token(&self.syntax, SyntaxKind::STAR)
15368    }
15369    #[inline]
15370    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15371        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15372    }
15373}
15374
15375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15376pub struct Update {
15377    pub(crate) syntax: SyntaxNode,
15378}
15379impl Update {
15380    #[inline]
15381    pub fn alias(&self) -> Option<Alias> {
15382        support::child(&self.syntax)
15383    }
15384    #[inline]
15385    pub fn from_clause(&self) -> Option<FromClause> {
15386        support::child(&self.syntax)
15387    }
15388    #[inline]
15389    pub fn relation_name(&self) -> Option<RelationName> {
15390        support::child(&self.syntax)
15391    }
15392    #[inline]
15393    pub fn returning_clause(&self) -> Option<ReturningClause> {
15394        support::child(&self.syntax)
15395    }
15396    #[inline]
15397    pub fn set_clause(&self) -> Option<SetClause> {
15398        support::child(&self.syntax)
15399    }
15400    #[inline]
15401    pub fn where_clause(&self) -> Option<WhereClause> {
15402        support::child(&self.syntax)
15403    }
15404    #[inline]
15405    pub fn with_clause(&self) -> Option<WithClause> {
15406        support::child(&self.syntax)
15407    }
15408    #[inline]
15409    pub fn update_token(&self) -> Option<SyntaxToken> {
15410        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15411    }
15412}
15413
15414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15415pub struct UsingClause {
15416    pub(crate) syntax: SyntaxNode,
15417}
15418impl UsingClause {
15419    #[inline]
15420    pub fn from_items(&self) -> AstChildren<FromItem> {
15421        support::children(&self.syntax)
15422    }
15423    #[inline]
15424    pub fn using_token(&self) -> Option<SyntaxToken> {
15425        support::token(&self.syntax, SyntaxKind::USING_KW)
15426    }
15427}
15428
15429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15430pub struct UsingIndex {
15431    pub(crate) syntax: SyntaxNode,
15432}
15433impl UsingIndex {
15434    #[inline]
15435    pub fn name_ref(&self) -> Option<NameRef> {
15436        support::child(&self.syntax)
15437    }
15438    #[inline]
15439    pub fn index_token(&self) -> Option<SyntaxToken> {
15440        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15441    }
15442    #[inline]
15443    pub fn using_token(&self) -> Option<SyntaxToken> {
15444        support::token(&self.syntax, SyntaxKind::USING_KW)
15445    }
15446}
15447
15448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15449pub struct UsingMethod {
15450    pub(crate) syntax: SyntaxNode,
15451}
15452impl UsingMethod {
15453    #[inline]
15454    pub fn name_ref(&self) -> Option<NameRef> {
15455        support::child(&self.syntax)
15456    }
15457    #[inline]
15458    pub fn using_token(&self) -> Option<SyntaxToken> {
15459        support::token(&self.syntax, SyntaxKind::USING_KW)
15460    }
15461}
15462
15463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15464pub struct UsingOnClause {
15465    pub(crate) syntax: SyntaxNode,
15466}
15467impl UsingOnClause {
15468    #[inline]
15469    pub fn from_item(&self) -> Option<FromItem> {
15470        support::child(&self.syntax)
15471    }
15472    #[inline]
15473    pub fn on_clause(&self) -> Option<OnClause> {
15474        support::child(&self.syntax)
15475    }
15476    #[inline]
15477    pub fn using_token(&self) -> Option<SyntaxToken> {
15478        support::token(&self.syntax, SyntaxKind::USING_KW)
15479    }
15480}
15481
15482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15483pub struct Vacuum {
15484    pub(crate) syntax: SyntaxNode,
15485}
15486impl Vacuum {
15487    #[inline]
15488    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15489        support::child(&self.syntax)
15490    }
15491    #[inline]
15492    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15493        support::child(&self.syntax)
15494    }
15495    #[inline]
15496    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15497        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15498    }
15499    #[inline]
15500    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15501        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15502    }
15503    #[inline]
15504    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15505        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15506    }
15507    #[inline]
15508    pub fn full_token(&self) -> Option<SyntaxToken> {
15509        support::token(&self.syntax, SyntaxKind::FULL_KW)
15510    }
15511    #[inline]
15512    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15513        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15514    }
15515    #[inline]
15516    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15517        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15518    }
15519}
15520
15521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15522pub struct VacuumOption {
15523    pub(crate) syntax: SyntaxNode,
15524}
15525impl VacuumOption {
15526    #[inline]
15527    pub fn literal(&self) -> Option<Literal> {
15528        support::child(&self.syntax)
15529    }
15530}
15531
15532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15533pub struct VacuumOptionList {
15534    pub(crate) syntax: SyntaxNode,
15535}
15536impl VacuumOptionList {
15537    #[inline]
15538    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15539        support::children(&self.syntax)
15540    }
15541    #[inline]
15542    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15543        support::token(&self.syntax, SyntaxKind::L_PAREN)
15544    }
15545    #[inline]
15546    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15547        support::token(&self.syntax, SyntaxKind::R_PAREN)
15548    }
15549}
15550
15551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15552pub struct ValidateConstraint {
15553    pub(crate) syntax: SyntaxNode,
15554}
15555impl ValidateConstraint {
15556    #[inline]
15557    pub fn name_ref(&self) -> Option<NameRef> {
15558        support::child(&self.syntax)
15559    }
15560    #[inline]
15561    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15562        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15563    }
15564    #[inline]
15565    pub fn validate_token(&self) -> Option<SyntaxToken> {
15566        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15567    }
15568}
15569
15570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15571pub struct Values {
15572    pub(crate) syntax: SyntaxNode,
15573}
15574impl Values {
15575    #[inline]
15576    pub fn row_list(&self) -> Option<RowList> {
15577        support::child(&self.syntax)
15578    }
15579    #[inline]
15580    pub fn values_token(&self) -> Option<SyntaxToken> {
15581        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15582    }
15583}
15584
15585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15586pub struct Variant {
15587    pub(crate) syntax: SyntaxNode,
15588}
15589impl Variant {
15590    #[inline]
15591    pub fn literal(&self) -> Option<Literal> {
15592        support::child(&self.syntax)
15593    }
15594}
15595
15596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15597pub struct VariantList {
15598    pub(crate) syntax: SyntaxNode,
15599}
15600impl VariantList {
15601    #[inline]
15602    pub fn variants(&self) -> AstChildren<Variant> {
15603        support::children(&self.syntax)
15604    }
15605    #[inline]
15606    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15607        support::token(&self.syntax, SyntaxKind::L_PAREN)
15608    }
15609    #[inline]
15610    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15611        support::token(&self.syntax, SyntaxKind::R_PAREN)
15612    }
15613}
15614
15615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15616pub struct VolatilityFuncOption {
15617    pub(crate) syntax: SyntaxNode,
15618}
15619impl VolatilityFuncOption {
15620    #[inline]
15621    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15622        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15623    }
15624    #[inline]
15625    pub fn stable_token(&self) -> Option<SyntaxToken> {
15626        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15627    }
15628    #[inline]
15629    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15630        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15631    }
15632}
15633
15634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15635pub struct WhenClause {
15636    pub(crate) syntax: SyntaxNode,
15637}
15638impl WhenClause {
15639    #[inline]
15640    pub fn then_token(&self) -> Option<SyntaxToken> {
15641        support::token(&self.syntax, SyntaxKind::THEN_KW)
15642    }
15643    #[inline]
15644    pub fn when_token(&self) -> Option<SyntaxToken> {
15645        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15646    }
15647}
15648
15649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15650pub struct WhenClauseList {
15651    pub(crate) syntax: SyntaxNode,
15652}
15653impl WhenClauseList {
15654    #[inline]
15655    pub fn when_clause(&self) -> Option<WhenClause> {
15656        support::child(&self.syntax)
15657    }
15658    #[inline]
15659    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15660        support::children(&self.syntax)
15661    }
15662}
15663
15664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15665pub struct WhenCondition {
15666    pub(crate) syntax: SyntaxNode,
15667}
15668impl WhenCondition {
15669    #[inline]
15670    pub fn expr(&self) -> Option<Expr> {
15671        support::child(&self.syntax)
15672    }
15673    #[inline]
15674    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15675        support::token(&self.syntax, SyntaxKind::L_PAREN)
15676    }
15677    #[inline]
15678    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15679        support::token(&self.syntax, SyntaxKind::R_PAREN)
15680    }
15681    #[inline]
15682    pub fn when_token(&self) -> Option<SyntaxToken> {
15683        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15684    }
15685}
15686
15687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15688pub struct WhereClause {
15689    pub(crate) syntax: SyntaxNode,
15690}
15691impl WhereClause {
15692    #[inline]
15693    pub fn expr(&self) -> Option<Expr> {
15694        support::child(&self.syntax)
15695    }
15696    #[inline]
15697    pub fn where_token(&self) -> Option<SyntaxToken> {
15698        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15699    }
15700}
15701
15702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15703pub struct WhereConditionClause {
15704    pub(crate) syntax: SyntaxNode,
15705}
15706impl WhereConditionClause {
15707    #[inline]
15708    pub fn expr(&self) -> Option<Expr> {
15709        support::child(&self.syntax)
15710    }
15711    #[inline]
15712    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15713        support::token(&self.syntax, SyntaxKind::L_PAREN)
15714    }
15715    #[inline]
15716    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15717        support::token(&self.syntax, SyntaxKind::R_PAREN)
15718    }
15719    #[inline]
15720    pub fn where_token(&self) -> Option<SyntaxToken> {
15721        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15722    }
15723}
15724
15725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15726pub struct WhereCurrentOf {
15727    pub(crate) syntax: SyntaxNode,
15728}
15729impl WhereCurrentOf {
15730    #[inline]
15731    pub fn name_ref(&self) -> Option<NameRef> {
15732        support::child(&self.syntax)
15733    }
15734    #[inline]
15735    pub fn current_token(&self) -> Option<SyntaxToken> {
15736        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15737    }
15738    #[inline]
15739    pub fn of_token(&self) -> Option<SyntaxToken> {
15740        support::token(&self.syntax, SyntaxKind::OF_KW)
15741    }
15742    #[inline]
15743    pub fn where_token(&self) -> Option<SyntaxToken> {
15744        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15745    }
15746}
15747
15748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15749pub struct WindowClause {
15750    pub(crate) syntax: SyntaxNode,
15751}
15752impl WindowClause {
15753    #[inline]
15754    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15755        support::children(&self.syntax)
15756    }
15757    #[inline]
15758    pub fn window_token(&self) -> Option<SyntaxToken> {
15759        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15760    }
15761}
15762
15763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15764pub struct WindowDef {
15765    pub(crate) syntax: SyntaxNode,
15766}
15767impl WindowDef {
15768    #[inline]
15769    pub fn name(&self) -> Option<Name> {
15770        support::child(&self.syntax)
15771    }
15772    #[inline]
15773    pub fn window_spec(&self) -> Option<WindowSpec> {
15774        support::child(&self.syntax)
15775    }
15776    #[inline]
15777    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15778        support::token(&self.syntax, SyntaxKind::L_PAREN)
15779    }
15780    #[inline]
15781    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15782        support::token(&self.syntax, SyntaxKind::R_PAREN)
15783    }
15784    #[inline]
15785    pub fn as_token(&self) -> Option<SyntaxToken> {
15786        support::token(&self.syntax, SyntaxKind::AS_KW)
15787    }
15788}
15789
15790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15791pub struct WindowFuncOption {
15792    pub(crate) syntax: SyntaxNode,
15793}
15794impl WindowFuncOption {
15795    #[inline]
15796    pub fn window_token(&self) -> Option<SyntaxToken> {
15797        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15798    }
15799}
15800
15801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15802pub struct WindowSpec {
15803    pub(crate) syntax: SyntaxNode,
15804}
15805impl WindowSpec {
15806    #[inline]
15807    pub fn exprs(&self) -> AstChildren<Expr> {
15808        support::children(&self.syntax)
15809    }
15810    #[inline]
15811    pub fn frame_clause(&self) -> Option<FrameClause> {
15812        support::child(&self.syntax)
15813    }
15814    #[inline]
15815    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15816        support::child(&self.syntax)
15817    }
15818    #[inline]
15819    pub fn by_token(&self) -> Option<SyntaxToken> {
15820        support::token(&self.syntax, SyntaxKind::BY_KW)
15821    }
15822    #[inline]
15823    pub fn ident_token(&self) -> Option<SyntaxToken> {
15824        support::token(&self.syntax, SyntaxKind::IDENT)
15825    }
15826    #[inline]
15827    pub fn partition_token(&self) -> Option<SyntaxToken> {
15828        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15829    }
15830}
15831
15832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15833pub struct WithClause {
15834    pub(crate) syntax: SyntaxNode,
15835}
15836impl WithClause {
15837    #[inline]
15838    pub fn with_tables(&self) -> AstChildren<WithTable> {
15839        support::children(&self.syntax)
15840    }
15841    #[inline]
15842    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15843        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15844    }
15845    #[inline]
15846    pub fn with_token(&self) -> Option<SyntaxToken> {
15847        support::token(&self.syntax, SyntaxKind::WITH_KW)
15848    }
15849}
15850
15851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15852pub struct WithData {
15853    pub(crate) syntax: SyntaxNode,
15854}
15855impl WithData {
15856    #[inline]
15857    pub fn data_token(&self) -> Option<SyntaxToken> {
15858        support::token(&self.syntax, SyntaxKind::DATA_KW)
15859    }
15860    #[inline]
15861    pub fn with_token(&self) -> Option<SyntaxToken> {
15862        support::token(&self.syntax, SyntaxKind::WITH_KW)
15863    }
15864}
15865
15866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15867pub struct WithNoData {
15868    pub(crate) syntax: SyntaxNode,
15869}
15870impl WithNoData {
15871    #[inline]
15872    pub fn data_token(&self) -> Option<SyntaxToken> {
15873        support::token(&self.syntax, SyntaxKind::DATA_KW)
15874    }
15875    #[inline]
15876    pub fn no_token(&self) -> Option<SyntaxToken> {
15877        support::token(&self.syntax, SyntaxKind::NO_KW)
15878    }
15879    #[inline]
15880    pub fn with_token(&self) -> Option<SyntaxToken> {
15881        support::token(&self.syntax, SyntaxKind::WITH_KW)
15882    }
15883}
15884
15885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15886pub struct WithOptions {
15887    pub(crate) syntax: SyntaxNode,
15888}
15889impl WithOptions {
15890    #[inline]
15891    pub fn options_token(&self) -> Option<SyntaxToken> {
15892        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15893    }
15894    #[inline]
15895    pub fn with_token(&self) -> Option<SyntaxToken> {
15896        support::token(&self.syntax, SyntaxKind::WITH_KW)
15897    }
15898}
15899
15900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15901pub struct WithParams {
15902    pub(crate) syntax: SyntaxNode,
15903}
15904impl WithParams {
15905    #[inline]
15906    pub fn attribute_list(&self) -> Option<AttributeList> {
15907        support::child(&self.syntax)
15908    }
15909    #[inline]
15910    pub fn with_token(&self) -> Option<SyntaxToken> {
15911        support::token(&self.syntax, SyntaxKind::WITH_KW)
15912    }
15913}
15914
15915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15916pub struct WithTable {
15917    pub(crate) syntax: SyntaxNode,
15918}
15919impl WithTable {
15920    #[inline]
15921    pub fn column_list(&self) -> Option<ColumnList> {
15922        support::child(&self.syntax)
15923    }
15924    #[inline]
15925    pub fn materialized(&self) -> Option<Materialized> {
15926        support::child(&self.syntax)
15927    }
15928    #[inline]
15929    pub fn name(&self) -> Option<Name> {
15930        support::child(&self.syntax)
15931    }
15932    #[inline]
15933    pub fn not_materialized(&self) -> Option<NotMaterialized> {
15934        support::child(&self.syntax)
15935    }
15936    #[inline]
15937    pub fn query(&self) -> Option<WithQuery> {
15938        support::child(&self.syntax)
15939    }
15940    #[inline]
15941    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15942        support::token(&self.syntax, SyntaxKind::L_PAREN)
15943    }
15944    #[inline]
15945    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15946        support::token(&self.syntax, SyntaxKind::R_PAREN)
15947    }
15948    #[inline]
15949    pub fn as_token(&self) -> Option<SyntaxToken> {
15950        support::token(&self.syntax, SyntaxKind::AS_KW)
15951    }
15952}
15953
15954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15955pub struct WithTimezone {
15956    pub(crate) syntax: SyntaxNode,
15957}
15958impl WithTimezone {
15959    #[inline]
15960    pub fn time_token(&self) -> Option<SyntaxToken> {
15961        support::token(&self.syntax, SyntaxKind::TIME_KW)
15962    }
15963    #[inline]
15964    pub fn with_token(&self) -> Option<SyntaxToken> {
15965        support::token(&self.syntax, SyntaxKind::WITH_KW)
15966    }
15967    #[inline]
15968    pub fn zone_token(&self) -> Option<SyntaxToken> {
15969        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15970    }
15971}
15972
15973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15974pub struct WithinClause {
15975    pub(crate) syntax: SyntaxNode,
15976}
15977impl WithinClause {
15978    #[inline]
15979    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15980        support::child(&self.syntax)
15981    }
15982    #[inline]
15983    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15984        support::token(&self.syntax, SyntaxKind::L_PAREN)
15985    }
15986    #[inline]
15987    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15988        support::token(&self.syntax, SyntaxKind::R_PAREN)
15989    }
15990    #[inline]
15991    pub fn group_token(&self) -> Option<SyntaxToken> {
15992        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15993    }
15994    #[inline]
15995    pub fn within_token(&self) -> Option<SyntaxToken> {
15996        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
15997    }
15998}
15999
16000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16001pub struct WithoutOids {
16002    pub(crate) syntax: SyntaxNode,
16003}
16004impl WithoutOids {
16005    #[inline]
16006    pub fn oids_token(&self) -> Option<SyntaxToken> {
16007        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16008    }
16009    #[inline]
16010    pub fn without_token(&self) -> Option<SyntaxToken> {
16011        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16012    }
16013}
16014
16015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16016pub struct WithoutTimezone {
16017    pub(crate) syntax: SyntaxNode,
16018}
16019impl WithoutTimezone {
16020    #[inline]
16021    pub fn time_token(&self) -> Option<SyntaxToken> {
16022        support::token(&self.syntax, SyntaxKind::TIME_KW)
16023    }
16024    #[inline]
16025    pub fn without_token(&self) -> Option<SyntaxToken> {
16026        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16027    }
16028    #[inline]
16029    pub fn zone_token(&self) -> Option<SyntaxToken> {
16030        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16031    }
16032}
16033
16034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16035pub struct XmlAttributeList {
16036    pub(crate) syntax: SyntaxNode,
16037}
16038impl XmlAttributeList {
16039    #[inline]
16040    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16041        support::children(&self.syntax)
16042    }
16043}
16044
16045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16046pub struct XmlColumnOption {
16047    pub(crate) syntax: SyntaxNode,
16048}
16049impl XmlColumnOption {
16050    #[inline]
16051    pub fn expr(&self) -> Option<Expr> {
16052        support::child(&self.syntax)
16053    }
16054    #[inline]
16055    pub fn default_token(&self) -> Option<SyntaxToken> {
16056        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16057    }
16058    #[inline]
16059    pub fn ident_token(&self) -> Option<SyntaxToken> {
16060        support::token(&self.syntax, SyntaxKind::IDENT)
16061    }
16062    #[inline]
16063    pub fn not_token(&self) -> Option<SyntaxToken> {
16064        support::token(&self.syntax, SyntaxKind::NOT_KW)
16065    }
16066    #[inline]
16067    pub fn null_token(&self) -> Option<SyntaxToken> {
16068        support::token(&self.syntax, SyntaxKind::NULL_KW)
16069    }
16070    #[inline]
16071    pub fn path_token(&self) -> Option<SyntaxToken> {
16072        support::token(&self.syntax, SyntaxKind::PATH_KW)
16073    }
16074}
16075
16076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16077pub struct XmlColumnOptionList {
16078    pub(crate) syntax: SyntaxNode,
16079}
16080impl XmlColumnOptionList {
16081    #[inline]
16082    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16083        support::child(&self.syntax)
16084    }
16085    #[inline]
16086    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16087        support::children(&self.syntax)
16088    }
16089}
16090
16091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16092pub struct XmlElementFn {
16093    pub(crate) syntax: SyntaxNode,
16094}
16095impl XmlElementFn {
16096    #[inline]
16097    pub fn exprs(&self) -> AstChildren<Expr> {
16098        support::children(&self.syntax)
16099    }
16100    #[inline]
16101    pub fn name(&self) -> Option<Name> {
16102        support::child(&self.syntax)
16103    }
16104    #[inline]
16105    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16106        support::child(&self.syntax)
16107    }
16108    #[inline]
16109    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16110        support::token(&self.syntax, SyntaxKind::L_PAREN)
16111    }
16112    #[inline]
16113    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16114        support::token(&self.syntax, SyntaxKind::R_PAREN)
16115    }
16116    #[inline]
16117    pub fn comma_token(&self) -> Option<SyntaxToken> {
16118        support::token(&self.syntax, SyntaxKind::COMMA)
16119    }
16120    #[inline]
16121    pub fn name_token(&self) -> Option<SyntaxToken> {
16122        support::token(&self.syntax, SyntaxKind::NAME_KW)
16123    }
16124    #[inline]
16125    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16126        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16127    }
16128    #[inline]
16129    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16130        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16131    }
16132}
16133
16134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16135pub struct XmlExistsFn {
16136    pub(crate) syntax: SyntaxNode,
16137}
16138impl XmlExistsFn {
16139    #[inline]
16140    pub fn expr(&self) -> Option<Expr> {
16141        support::child(&self.syntax)
16142    }
16143    #[inline]
16144    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16145        support::child(&self.syntax)
16146    }
16147    #[inline]
16148    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16149        support::token(&self.syntax, SyntaxKind::L_PAREN)
16150    }
16151    #[inline]
16152    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16153        support::token(&self.syntax, SyntaxKind::R_PAREN)
16154    }
16155    #[inline]
16156    pub fn passing_token(&self) -> Option<SyntaxToken> {
16157        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16158    }
16159    #[inline]
16160    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16161        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16162    }
16163}
16164
16165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16166pub struct XmlForestFn {
16167    pub(crate) syntax: SyntaxNode,
16168}
16169impl XmlForestFn {
16170    #[inline]
16171    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16172        support::child(&self.syntax)
16173    }
16174    #[inline]
16175    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16176        support::token(&self.syntax, SyntaxKind::L_PAREN)
16177    }
16178    #[inline]
16179    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16180        support::token(&self.syntax, SyntaxKind::R_PAREN)
16181    }
16182    #[inline]
16183    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16184        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16185    }
16186}
16187
16188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16189pub struct XmlNamespace {
16190    pub(crate) syntax: SyntaxNode,
16191}
16192impl XmlNamespace {
16193    #[inline]
16194    pub fn expr(&self) -> Option<Expr> {
16195        support::child(&self.syntax)
16196    }
16197    #[inline]
16198    pub fn name(&self) -> Option<Name> {
16199        support::child(&self.syntax)
16200    }
16201    #[inline]
16202    pub fn as_token(&self) -> Option<SyntaxToken> {
16203        support::token(&self.syntax, SyntaxKind::AS_KW)
16204    }
16205    #[inline]
16206    pub fn default_token(&self) -> Option<SyntaxToken> {
16207        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16208    }
16209}
16210
16211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16212pub struct XmlNamespaceList {
16213    pub(crate) syntax: SyntaxNode,
16214}
16215impl XmlNamespaceList {
16216    #[inline]
16217    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16218        support::children(&self.syntax)
16219    }
16220    #[inline]
16221    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16222        support::token(&self.syntax, SyntaxKind::L_PAREN)
16223    }
16224    #[inline]
16225    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16226        support::token(&self.syntax, SyntaxKind::R_PAREN)
16227    }
16228}
16229
16230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16231pub struct XmlParseFn {
16232    pub(crate) syntax: SyntaxNode,
16233}
16234impl XmlParseFn {
16235    #[inline]
16236    pub fn expr(&self) -> Option<Expr> {
16237        support::child(&self.syntax)
16238    }
16239    #[inline]
16240    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16241        support::token(&self.syntax, SyntaxKind::L_PAREN)
16242    }
16243    #[inline]
16244    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16245        support::token(&self.syntax, SyntaxKind::R_PAREN)
16246    }
16247    #[inline]
16248    pub fn content_token(&self) -> Option<SyntaxToken> {
16249        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16250    }
16251    #[inline]
16252    pub fn document_token(&self) -> Option<SyntaxToken> {
16253        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16254    }
16255    #[inline]
16256    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16257        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16258    }
16259    #[inline]
16260    pub fn strip_token(&self) -> Option<SyntaxToken> {
16261        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16262    }
16263    #[inline]
16264    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16265        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16266    }
16267    #[inline]
16268    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16269        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16270    }
16271}
16272
16273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16274pub struct XmlPassingMech {
16275    pub(crate) syntax: SyntaxNode,
16276}
16277impl XmlPassingMech {
16278    #[inline]
16279    pub fn by_token(&self) -> Option<SyntaxToken> {
16280        support::token(&self.syntax, SyntaxKind::BY_KW)
16281    }
16282    #[inline]
16283    pub fn ref_token(&self) -> Option<SyntaxToken> {
16284        support::token(&self.syntax, SyntaxKind::REF_KW)
16285    }
16286    #[inline]
16287    pub fn value_token(&self) -> Option<SyntaxToken> {
16288        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16289    }
16290}
16291
16292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16293pub struct XmlPiFn {
16294    pub(crate) syntax: SyntaxNode,
16295}
16296impl XmlPiFn {
16297    #[inline]
16298    pub fn expr(&self) -> Option<Expr> {
16299        support::child(&self.syntax)
16300    }
16301    #[inline]
16302    pub fn name(&self) -> Option<Name> {
16303        support::child(&self.syntax)
16304    }
16305    #[inline]
16306    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16307        support::token(&self.syntax, SyntaxKind::L_PAREN)
16308    }
16309    #[inline]
16310    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16311        support::token(&self.syntax, SyntaxKind::R_PAREN)
16312    }
16313    #[inline]
16314    pub fn comma_token(&self) -> Option<SyntaxToken> {
16315        support::token(&self.syntax, SyntaxKind::COMMA)
16316    }
16317    #[inline]
16318    pub fn name_token(&self) -> Option<SyntaxToken> {
16319        support::token(&self.syntax, SyntaxKind::NAME_KW)
16320    }
16321    #[inline]
16322    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16323        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16324    }
16325}
16326
16327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16328pub struct XmlRootFn {
16329    pub(crate) syntax: SyntaxNode,
16330}
16331impl XmlRootFn {
16332    #[inline]
16333    pub fn expr(&self) -> Option<Expr> {
16334        support::child(&self.syntax)
16335    }
16336    #[inline]
16337    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16338        support::token(&self.syntax, SyntaxKind::L_PAREN)
16339    }
16340    #[inline]
16341    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16342        support::token(&self.syntax, SyntaxKind::R_PAREN)
16343    }
16344    #[inline]
16345    pub fn comma_token(&self) -> Option<SyntaxToken> {
16346        support::token(&self.syntax, SyntaxKind::COMMA)
16347    }
16348    #[inline]
16349    pub fn no_token(&self) -> Option<SyntaxToken> {
16350        support::token(&self.syntax, SyntaxKind::NO_KW)
16351    }
16352    #[inline]
16353    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16354        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16355    }
16356    #[inline]
16357    pub fn value_token(&self) -> Option<SyntaxToken> {
16358        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16359    }
16360    #[inline]
16361    pub fn version_token(&self) -> Option<SyntaxToken> {
16362        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16363    }
16364    #[inline]
16365    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16366        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16367    }
16368    #[inline]
16369    pub fn yes_token(&self) -> Option<SyntaxToken> {
16370        support::token(&self.syntax, SyntaxKind::YES_KW)
16371    }
16372}
16373
16374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16375pub struct XmlRowPassingClause {
16376    pub(crate) syntax: SyntaxNode,
16377}
16378impl XmlRowPassingClause {
16379    #[inline]
16380    pub fn expr(&self) -> Option<Expr> {
16381        support::child(&self.syntax)
16382    }
16383    #[inline]
16384    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16385        support::child(&self.syntax)
16386    }
16387    #[inline]
16388    pub fn passing_token(&self) -> Option<SyntaxToken> {
16389        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16390    }
16391}
16392
16393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16394pub struct XmlSerializeFn {
16395    pub(crate) syntax: SyntaxNode,
16396}
16397impl XmlSerializeFn {
16398    #[inline]
16399    pub fn expr(&self) -> Option<Expr> {
16400        support::child(&self.syntax)
16401    }
16402    #[inline]
16403    pub fn ty(&self) -> Option<Type> {
16404        support::child(&self.syntax)
16405    }
16406    #[inline]
16407    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16408        support::token(&self.syntax, SyntaxKind::L_PAREN)
16409    }
16410    #[inline]
16411    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16412        support::token(&self.syntax, SyntaxKind::R_PAREN)
16413    }
16414    #[inline]
16415    pub fn as_token(&self) -> Option<SyntaxToken> {
16416        support::token(&self.syntax, SyntaxKind::AS_KW)
16417    }
16418    #[inline]
16419    pub fn content_token(&self) -> Option<SyntaxToken> {
16420        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16421    }
16422    #[inline]
16423    pub fn document_token(&self) -> Option<SyntaxToken> {
16424        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16425    }
16426    #[inline]
16427    pub fn ident_token(&self) -> Option<SyntaxToken> {
16428        support::token(&self.syntax, SyntaxKind::IDENT)
16429    }
16430    #[inline]
16431    pub fn no_token(&self) -> Option<SyntaxToken> {
16432        support::token(&self.syntax, SyntaxKind::NO_KW)
16433    }
16434    #[inline]
16435    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16436        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16437    }
16438}
16439
16440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16441pub struct XmlTable {
16442    pub(crate) syntax: SyntaxNode,
16443}
16444impl XmlTable {
16445    #[inline]
16446    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16447        support::child(&self.syntax)
16448    }
16449    #[inline]
16450    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16451        support::child(&self.syntax)
16452    }
16453    #[inline]
16454    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16455        support::child(&self.syntax)
16456    }
16457    #[inline]
16458    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16459        support::token(&self.syntax, SyntaxKind::L_PAREN)
16460    }
16461    #[inline]
16462    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16463        support::token(&self.syntax, SyntaxKind::R_PAREN)
16464    }
16465    #[inline]
16466    pub fn comma_token(&self) -> Option<SyntaxToken> {
16467        support::token(&self.syntax, SyntaxKind::COMMA)
16468    }
16469    #[inline]
16470    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16471        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16472    }
16473    #[inline]
16474    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16475        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16476    }
16477}
16478
16479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16480pub struct XmlTableColumn {
16481    pub(crate) syntax: SyntaxNode,
16482}
16483impl XmlTableColumn {
16484    #[inline]
16485    pub fn name(&self) -> Option<Name> {
16486        support::child(&self.syntax)
16487    }
16488    #[inline]
16489    pub fn ty(&self) -> Option<Type> {
16490        support::child(&self.syntax)
16491    }
16492    #[inline]
16493    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16494        support::child(&self.syntax)
16495    }
16496    #[inline]
16497    pub fn for_token(&self) -> Option<SyntaxToken> {
16498        support::token(&self.syntax, SyntaxKind::FOR_KW)
16499    }
16500    #[inline]
16501    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16502        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16503    }
16504}
16505
16506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16507pub struct XmlTableColumnList {
16508    pub(crate) syntax: SyntaxNode,
16509}
16510impl XmlTableColumnList {
16511    #[inline]
16512    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16513        support::children(&self.syntax)
16514    }
16515}
16516
16517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16518pub enum AlterColumnOption {
16519    AddGenerated(AddGenerated),
16520    DropDefault(DropDefault),
16521    DropExpression(DropExpression),
16522    DropIdentity(DropIdentity),
16523    DropNotNull(DropNotNull),
16524    ResetOptions(ResetOptions),
16525    Restart(Restart),
16526    SetCompression(SetCompression),
16527    SetDefault(SetDefault),
16528    SetExpression(SetExpression),
16529    SetGenerated(SetGenerated),
16530    SetGeneratedOptions(SetGeneratedOptions),
16531    SetNotNull(SetNotNull),
16532    SetOptions(SetOptions),
16533    SetOptionsList(SetOptionsList),
16534    SetSequenceOption(SetSequenceOption),
16535    SetStatistics(SetStatistics),
16536    SetStorage(SetStorage),
16537    SetType(SetType),
16538}
16539
16540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16541pub enum AlterDomainAction {
16542    AddConstraint(AddConstraint),
16543    DropConstraint(DropConstraint),
16544    DropDefault(DropDefault),
16545    DropNotNull(DropNotNull),
16546    OwnerTo(OwnerTo),
16547    RenameConstraint(RenameConstraint),
16548    RenameTo(RenameTo),
16549    SetDefault(SetDefault),
16550    SetNotNull(SetNotNull),
16551    SetSchema(SetSchema),
16552    ValidateConstraint(ValidateConstraint),
16553}
16554
16555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16556pub enum AlterMaterializedViewAction {
16557    DependsOnExtension(DependsOnExtension),
16558    NoDependsOnExtension(NoDependsOnExtension),
16559    RenameColumn(RenameColumn),
16560    RenameTo(RenameTo),
16561    SetSchema(SetSchema),
16562    AlterTableAction(AlterTableAction),
16563}
16564
16565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16566pub enum AlterTableAction {
16567    AddColumn(AddColumn),
16568    AddConstraint(AddConstraint),
16569    AlterColumn(AlterColumn),
16570    AlterConstraint(AlterConstraint),
16571    AttachPartition(AttachPartition),
16572    ClusterOn(ClusterOn),
16573    DetachPartition(DetachPartition),
16574    DisableRls(DisableRls),
16575    DisableRule(DisableRule),
16576    DisableTrigger(DisableTrigger),
16577    DropColumn(DropColumn),
16578    DropConstraint(DropConstraint),
16579    EnableAlwaysRule(EnableAlwaysRule),
16580    EnableAlwaysTrigger(EnableAlwaysTrigger),
16581    EnableReplicaRule(EnableReplicaRule),
16582    EnableReplicaTrigger(EnableReplicaTrigger),
16583    EnableRls(EnableRls),
16584    EnableRule(EnableRule),
16585    EnableTrigger(EnableTrigger),
16586    ForceRls(ForceRls),
16587    InheritTable(InheritTable),
16588    MergePartitions(MergePartitions),
16589    NoForceRls(NoForceRls),
16590    NoInheritTable(NoInheritTable),
16591    NotOf(NotOf),
16592    OfType(OfType),
16593    OptionItemList(OptionItemList),
16594    OwnerTo(OwnerTo),
16595    RenameColumn(RenameColumn),
16596    RenameConstraint(RenameConstraint),
16597    RenameTo(RenameTo),
16598    ReplicaIdentity(ReplicaIdentity),
16599    ResetOptions(ResetOptions),
16600    SetAccessMethod(SetAccessMethod),
16601    SetLogged(SetLogged),
16602    SetOptions(SetOptions),
16603    SetSchema(SetSchema),
16604    SetTablespace(SetTablespace),
16605    SetUnlogged(SetUnlogged),
16606    SetWithoutCluster(SetWithoutCluster),
16607    SetWithoutOids(SetWithoutOids),
16608    SplitPartition(SplitPartition),
16609    ValidateConstraint(ValidateConstraint),
16610}
16611
16612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16613pub enum ColumnConstraint {
16614    CheckConstraint(CheckConstraint),
16615    DefaultConstraint(DefaultConstraint),
16616    ExcludeConstraint(ExcludeConstraint),
16617    NotNullConstraint(NotNullConstraint),
16618    PrimaryKeyConstraint(PrimaryKeyConstraint),
16619    ReferencesConstraint(ReferencesConstraint),
16620    UniqueConstraint(UniqueConstraint),
16621}
16622
16623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16624pub enum ConfigValue {
16625    Literal(Literal),
16626    NameRef(NameRef),
16627}
16628
16629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16630pub enum ConflictAction {
16631    ConflictDoNothing(ConflictDoNothing),
16632    ConflictDoUpdateSet(ConflictDoUpdateSet),
16633}
16634
16635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16636pub enum ConflictTarget {
16637    ConflictOnConstraint(ConflictOnConstraint),
16638    ConflictOnIndex(ConflictOnIndex),
16639}
16640
16641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16642pub enum Constraint {
16643    CheckConstraint(CheckConstraint),
16644    DefaultConstraint(DefaultConstraint),
16645    ForeignKeyConstraint(ForeignKeyConstraint),
16646    GeneratedConstraint(GeneratedConstraint),
16647    NotNullConstraint(NotNullConstraint),
16648    NullConstraint(NullConstraint),
16649    PrimaryKeyConstraint(PrimaryKeyConstraint),
16650    ReferencesConstraint(ReferencesConstraint),
16651    UniqueConstraint(UniqueConstraint),
16652}
16653
16654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16655pub enum ExplainStmt {
16656    CompoundSelect(CompoundSelect),
16657    CreateMaterializedView(CreateMaterializedView),
16658    CreateTableAs(CreateTableAs),
16659    Declare(Declare),
16660    Delete(Delete),
16661    Execute(Execute),
16662    Insert(Insert),
16663    Merge(Merge),
16664    ParenSelect(ParenSelect),
16665    Select(Select),
16666    SelectInto(SelectInto),
16667    Table(Table),
16668    Update(Update),
16669    Values(Values),
16670}
16671
16672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16673pub enum Expr {
16674    ArrayExpr(ArrayExpr),
16675    BetweenExpr(BetweenExpr),
16676    BinExpr(BinExpr),
16677    CallExpr(CallExpr),
16678    CaseExpr(CaseExpr),
16679    CastExpr(CastExpr),
16680    FieldExpr(FieldExpr),
16681    IndexExpr(IndexExpr),
16682    Literal(Literal),
16683    NameRef(NameRef),
16684    ParenExpr(ParenExpr),
16685    PostfixExpr(PostfixExpr),
16686    PrefixExpr(PrefixExpr),
16687    SliceExpr(SliceExpr),
16688    TupleExpr(TupleExpr),
16689}
16690
16691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16692pub enum FuncOption {
16693    AsFuncOption(AsFuncOption),
16694    BeginFuncOptionList(BeginFuncOptionList),
16695    CostFuncOption(CostFuncOption),
16696    LanguageFuncOption(LanguageFuncOption),
16697    LeakproofFuncOption(LeakproofFuncOption),
16698    ParallelFuncOption(ParallelFuncOption),
16699    ResetFuncOption(ResetFuncOption),
16700    ReturnFuncOption(ReturnFuncOption),
16701    RowsFuncOption(RowsFuncOption),
16702    SecurityFuncOption(SecurityFuncOption),
16703    SetFuncOption(SetFuncOption),
16704    StrictFuncOption(StrictFuncOption),
16705    SupportFuncOption(SupportFuncOption),
16706    TransformFuncOption(TransformFuncOption),
16707    VolatilityFuncOption(VolatilityFuncOption),
16708    WindowFuncOption(WindowFuncOption),
16709}
16710
16711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16712pub enum GroupBy {
16713    GroupingCube(GroupingCube),
16714    GroupingExpr(GroupingExpr),
16715    GroupingRollup(GroupingRollup),
16716    GroupingSets(GroupingSets),
16717}
16718
16719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16720pub enum JoinType {
16721    JoinCross(JoinCross),
16722    JoinFull(JoinFull),
16723    JoinInner(JoinInner),
16724    JoinLeft(JoinLeft),
16725    JoinRight(JoinRight),
16726}
16727
16728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16729pub enum JsonBehavior {
16730    JsonBehaviorDefault(JsonBehaviorDefault),
16731    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16732    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16733    JsonBehaviorError(JsonBehaviorError),
16734    JsonBehaviorFalse(JsonBehaviorFalse),
16735    JsonBehaviorNull(JsonBehaviorNull),
16736    JsonBehaviorTrue(JsonBehaviorTrue),
16737    JsonBehaviorUnknown(JsonBehaviorUnknown),
16738}
16739
16740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16741pub enum MatchType {
16742    MatchFull(MatchFull),
16743    MatchPartial(MatchPartial),
16744    MatchSimple(MatchSimple),
16745}
16746
16747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16748pub enum MergeAction {
16749    MergeDelete(MergeDelete),
16750    MergeDoNothing(MergeDoNothing),
16751    MergeInsert(MergeInsert),
16752    MergeUpdate(MergeUpdate),
16753}
16754
16755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16756pub enum MergeWhenClause {
16757    MergeWhenMatched(MergeWhenMatched),
16758    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16759    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16760}
16761
16762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16763pub enum OnCommitAction {
16764    DeleteRows(DeleteRows),
16765    Drop(Drop),
16766    PreserveRows(PreserveRows),
16767}
16768
16769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16770pub enum ParamMode {
16771    ParamIn(ParamIn),
16772    ParamInOut(ParamInOut),
16773    ParamOut(ParamOut),
16774    ParamVariadic(ParamVariadic),
16775}
16776
16777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16778pub enum PartitionType {
16779    PartitionDefault(PartitionDefault),
16780    PartitionForValuesFrom(PartitionForValuesFrom),
16781    PartitionForValuesIn(PartitionForValuesIn),
16782    PartitionForValuesWith(PartitionForValuesWith),
16783}
16784
16785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16786pub enum PreparableStmt {
16787    CompoundSelect(CompoundSelect),
16788    Delete(Delete),
16789    Insert(Insert),
16790    Merge(Merge),
16791    Select(Select),
16792    SelectInto(SelectInto),
16793    Table(Table),
16794    Update(Update),
16795    Values(Values),
16796}
16797
16798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16799pub enum RefAction {
16800    Cascade(Cascade),
16801    NoAction(NoAction),
16802    Restrict(Restrict),
16803    SetDefaultColumns(SetDefaultColumns),
16804    SetNullColumns(SetNullColumns),
16805}
16806
16807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16808pub enum SchemaElement {
16809    CreateIndex(CreateIndex),
16810    CreateSequence(CreateSequence),
16811    CreateTable(CreateTable),
16812    CreateTrigger(CreateTrigger),
16813    CreateView(CreateView),
16814    Grant(Grant),
16815}
16816
16817#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16818pub enum SelectVariant {
16819    CompoundSelect(CompoundSelect),
16820    ParenSelect(ParenSelect),
16821    Select(Select),
16822    SelectInto(SelectInto),
16823    Table(Table),
16824    Values(Values),
16825}
16826
16827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16828pub enum SetColumn {
16829    SetMultipleColumns(SetMultipleColumns),
16830    SetSingleColumn(SetSingleColumn),
16831}
16832
16833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16834pub enum Stmt {
16835    AlterAggregate(AlterAggregate),
16836    AlterCollation(AlterCollation),
16837    AlterConversion(AlterConversion),
16838    AlterDatabase(AlterDatabase),
16839    AlterDefaultPrivileges(AlterDefaultPrivileges),
16840    AlterDomain(AlterDomain),
16841    AlterEventTrigger(AlterEventTrigger),
16842    AlterExtension(AlterExtension),
16843    AlterForeignDataWrapper(AlterForeignDataWrapper),
16844    AlterForeignTable(AlterForeignTable),
16845    AlterFunction(AlterFunction),
16846    AlterGroup(AlterGroup),
16847    AlterIndex(AlterIndex),
16848    AlterLanguage(AlterLanguage),
16849    AlterLargeObject(AlterLargeObject),
16850    AlterMaterializedView(AlterMaterializedView),
16851    AlterOperator(AlterOperator),
16852    AlterOperatorClass(AlterOperatorClass),
16853    AlterOperatorFamily(AlterOperatorFamily),
16854    AlterPolicy(AlterPolicy),
16855    AlterProcedure(AlterProcedure),
16856    AlterPublication(AlterPublication),
16857    AlterRole(AlterRole),
16858    AlterRoutine(AlterRoutine),
16859    AlterRule(AlterRule),
16860    AlterSchema(AlterSchema),
16861    AlterSequence(AlterSequence),
16862    AlterServer(AlterServer),
16863    AlterStatistics(AlterStatistics),
16864    AlterSubscription(AlterSubscription),
16865    AlterSystem(AlterSystem),
16866    AlterTable(AlterTable),
16867    AlterTablespace(AlterTablespace),
16868    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16869    AlterTextSearchDictionary(AlterTextSearchDictionary),
16870    AlterTextSearchParser(AlterTextSearchParser),
16871    AlterTextSearchTemplate(AlterTextSearchTemplate),
16872    AlterTrigger(AlterTrigger),
16873    AlterType(AlterType),
16874    AlterUser(AlterUser),
16875    AlterUserMapping(AlterUserMapping),
16876    AlterView(AlterView),
16877    Analyze(Analyze),
16878    Begin(Begin),
16879    Call(Call),
16880    Checkpoint(Checkpoint),
16881    Close(Close),
16882    Cluster(Cluster),
16883    CommentOn(CommentOn),
16884    Commit(Commit),
16885    Copy(Copy),
16886    CreateAccessMethod(CreateAccessMethod),
16887    CreateAggregate(CreateAggregate),
16888    CreateCast(CreateCast),
16889    CreateCollation(CreateCollation),
16890    CreateConversion(CreateConversion),
16891    CreateDatabase(CreateDatabase),
16892    CreateDomain(CreateDomain),
16893    CreateEventTrigger(CreateEventTrigger),
16894    CreateExtension(CreateExtension),
16895    CreateForeignDataWrapper(CreateForeignDataWrapper),
16896    CreateForeignTable(CreateForeignTable),
16897    CreateFunction(CreateFunction),
16898    CreateGroup(CreateGroup),
16899    CreateIndex(CreateIndex),
16900    CreateLanguage(CreateLanguage),
16901    CreateMaterializedView(CreateMaterializedView),
16902    CreateOperator(CreateOperator),
16903    CreateOperatorClass(CreateOperatorClass),
16904    CreateOperatorFamily(CreateOperatorFamily),
16905    CreatePolicy(CreatePolicy),
16906    CreateProcedure(CreateProcedure),
16907    CreatePublication(CreatePublication),
16908    CreateRole(CreateRole),
16909    CreateRule(CreateRule),
16910    CreateSchema(CreateSchema),
16911    CreateSequence(CreateSequence),
16912    CreateServer(CreateServer),
16913    CreateStatistics(CreateStatistics),
16914    CreateSubscription(CreateSubscription),
16915    CreateTable(CreateTable),
16916    CreateTableAs(CreateTableAs),
16917    CreateTablespace(CreateTablespace),
16918    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
16919    CreateTextSearchDictionary(CreateTextSearchDictionary),
16920    CreateTextSearchParser(CreateTextSearchParser),
16921    CreateTextSearchTemplate(CreateTextSearchTemplate),
16922    CreateTransform(CreateTransform),
16923    CreateTrigger(CreateTrigger),
16924    CreateType(CreateType),
16925    CreateUser(CreateUser),
16926    CreateUserMapping(CreateUserMapping),
16927    CreateView(CreateView),
16928    Deallocate(Deallocate),
16929    Declare(Declare),
16930    Delete(Delete),
16931    Discard(Discard),
16932    Do(Do),
16933    DropAccessMethod(DropAccessMethod),
16934    DropAggregate(DropAggregate),
16935    DropCast(DropCast),
16936    DropCollation(DropCollation),
16937    DropConversion(DropConversion),
16938    DropDatabase(DropDatabase),
16939    DropDomain(DropDomain),
16940    DropEventTrigger(DropEventTrigger),
16941    DropExtension(DropExtension),
16942    DropForeignDataWrapper(DropForeignDataWrapper),
16943    DropForeignTable(DropForeignTable),
16944    DropFunction(DropFunction),
16945    DropGroup(DropGroup),
16946    DropIndex(DropIndex),
16947    DropLanguage(DropLanguage),
16948    DropMaterializedView(DropMaterializedView),
16949    DropOperator(DropOperator),
16950    DropOperatorClass(DropOperatorClass),
16951    DropOperatorFamily(DropOperatorFamily),
16952    DropOwned(DropOwned),
16953    DropPolicy(DropPolicy),
16954    DropProcedure(DropProcedure),
16955    DropPublication(DropPublication),
16956    DropRole(DropRole),
16957    DropRoutine(DropRoutine),
16958    DropRule(DropRule),
16959    DropSchema(DropSchema),
16960    DropSequence(DropSequence),
16961    DropServer(DropServer),
16962    DropStatistics(DropStatistics),
16963    DropSubscription(DropSubscription),
16964    DropTable(DropTable),
16965    DropTablespace(DropTablespace),
16966    DropTextSearchConfig(DropTextSearchConfig),
16967    DropTextSearchDict(DropTextSearchDict),
16968    DropTextSearchParser(DropTextSearchParser),
16969    DropTextSearchTemplate(DropTextSearchTemplate),
16970    DropTransform(DropTransform),
16971    DropTrigger(DropTrigger),
16972    DropType(DropType),
16973    DropUser(DropUser),
16974    DropUserMapping(DropUserMapping),
16975    DropView(DropView),
16976    Execute(Execute),
16977    Explain(Explain),
16978    Fetch(Fetch),
16979    Grant(Grant),
16980    ImportForeignSchema(ImportForeignSchema),
16981    Insert(Insert),
16982    Listen(Listen),
16983    Load(Load),
16984    Lock(Lock),
16985    Merge(Merge),
16986    Move(Move),
16987    Notify(Notify),
16988    ParenSelect(ParenSelect),
16989    Prepare(Prepare),
16990    PrepareTransaction(PrepareTransaction),
16991    Reassign(Reassign),
16992    Refresh(Refresh),
16993    Reindex(Reindex),
16994    ReleaseSavepoint(ReleaseSavepoint),
16995    Reset(Reset),
16996    ResetSessionAuth(ResetSessionAuth),
16997    Revoke(Revoke),
16998    Rollback(Rollback),
16999    Savepoint(Savepoint),
17000    SecurityLabel(SecurityLabel),
17001    Select(Select),
17002    SelectInto(SelectInto),
17003    Set(Set),
17004    SetConstraints(SetConstraints),
17005    SetRole(SetRole),
17006    SetSessionAuth(SetSessionAuth),
17007    SetTransaction(SetTransaction),
17008    Show(Show),
17009    Table(Table),
17010    Truncate(Truncate),
17011    Unlisten(Unlisten),
17012    Update(Update),
17013    Vacuum(Vacuum),
17014    Values(Values),
17015}
17016
17017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17018pub enum TableArg {
17019    Column(Column),
17020    LikeClause(LikeClause),
17021    TableConstraint(TableConstraint),
17022}
17023
17024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17025pub enum TableConstraint {
17026    CheckConstraint(CheckConstraint),
17027    ExcludeConstraint(ExcludeConstraint),
17028    ForeignKeyConstraint(ForeignKeyConstraint),
17029    PrimaryKeyConstraint(PrimaryKeyConstraint),
17030    UniqueConstraint(UniqueConstraint),
17031}
17032
17033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17034pub enum Timezone {
17035    WithTimezone(WithTimezone),
17036    WithoutTimezone(WithoutTimezone),
17037}
17038
17039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17040pub enum TransactionMode {
17041    Deferrable(Deferrable),
17042    NotDeferrable(NotDeferrable),
17043    ReadCommitted(ReadCommitted),
17044    ReadOnly(ReadOnly),
17045    ReadUncommitted(ReadUncommitted),
17046    ReadWrite(ReadWrite),
17047    RepeatableRead(RepeatableRead),
17048    Serializable(Serializable),
17049}
17050
17051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17052pub enum Type {
17053    ArrayType(ArrayType),
17054    BitType(BitType),
17055    CharType(CharType),
17056    DoubleType(DoubleType),
17057    ExprType(ExprType),
17058    IntervalType(IntervalType),
17059    PathType(PathType),
17060    PercentType(PercentType),
17061    TimeType(TimeType),
17062}
17063
17064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17065pub enum WithQuery {
17066    CompoundSelect(CompoundSelect),
17067    Delete(Delete),
17068    Insert(Insert),
17069    Merge(Merge),
17070    ParenSelect(ParenSelect),
17071    Select(Select),
17072    Table(Table),
17073    Update(Update),
17074    Values(Values),
17075}
17076impl AstNode for AddColumn {
17077    #[inline]
17078    fn can_cast(kind: SyntaxKind) -> bool {
17079        kind == SyntaxKind::ADD_COLUMN
17080    }
17081    #[inline]
17082    fn cast(syntax: SyntaxNode) -> Option<Self> {
17083        if Self::can_cast(syntax.kind()) {
17084            Some(Self { syntax })
17085        } else {
17086            None
17087        }
17088    }
17089    #[inline]
17090    fn syntax(&self) -> &SyntaxNode {
17091        &self.syntax
17092    }
17093}
17094impl AstNode for AddConstraint {
17095    #[inline]
17096    fn can_cast(kind: SyntaxKind) -> bool {
17097        kind == SyntaxKind::ADD_CONSTRAINT
17098    }
17099    #[inline]
17100    fn cast(syntax: SyntaxNode) -> Option<Self> {
17101        if Self::can_cast(syntax.kind()) {
17102            Some(Self { syntax })
17103        } else {
17104            None
17105        }
17106    }
17107    #[inline]
17108    fn syntax(&self) -> &SyntaxNode {
17109        &self.syntax
17110    }
17111}
17112impl AstNode for AddGenerated {
17113    #[inline]
17114    fn can_cast(kind: SyntaxKind) -> bool {
17115        kind == SyntaxKind::ADD_GENERATED
17116    }
17117    #[inline]
17118    fn cast(syntax: SyntaxNode) -> Option<Self> {
17119        if Self::can_cast(syntax.kind()) {
17120            Some(Self { syntax })
17121        } else {
17122            None
17123        }
17124    }
17125    #[inline]
17126    fn syntax(&self) -> &SyntaxNode {
17127        &self.syntax
17128    }
17129}
17130impl AstNode for AddOpClassOptions {
17131    #[inline]
17132    fn can_cast(kind: SyntaxKind) -> bool {
17133        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17134    }
17135    #[inline]
17136    fn cast(syntax: SyntaxNode) -> Option<Self> {
17137        if Self::can_cast(syntax.kind()) {
17138            Some(Self { syntax })
17139        } else {
17140            None
17141        }
17142    }
17143    #[inline]
17144    fn syntax(&self) -> &SyntaxNode {
17145        &self.syntax
17146    }
17147}
17148impl AstNode for Aggregate {
17149    #[inline]
17150    fn can_cast(kind: SyntaxKind) -> bool {
17151        kind == SyntaxKind::AGGREGATE
17152    }
17153    #[inline]
17154    fn cast(syntax: SyntaxNode) -> Option<Self> {
17155        if Self::can_cast(syntax.kind()) {
17156            Some(Self { syntax })
17157        } else {
17158            None
17159        }
17160    }
17161    #[inline]
17162    fn syntax(&self) -> &SyntaxNode {
17163        &self.syntax
17164    }
17165}
17166impl AstNode for Alias {
17167    #[inline]
17168    fn can_cast(kind: SyntaxKind) -> bool {
17169        kind == SyntaxKind::ALIAS
17170    }
17171    #[inline]
17172    fn cast(syntax: SyntaxNode) -> Option<Self> {
17173        if Self::can_cast(syntax.kind()) {
17174            Some(Self { syntax })
17175        } else {
17176            None
17177        }
17178    }
17179    #[inline]
17180    fn syntax(&self) -> &SyntaxNode {
17181        &self.syntax
17182    }
17183}
17184impl AstNode for AllFn {
17185    #[inline]
17186    fn can_cast(kind: SyntaxKind) -> bool {
17187        kind == SyntaxKind::ALL_FN
17188    }
17189    #[inline]
17190    fn cast(syntax: SyntaxNode) -> Option<Self> {
17191        if Self::can_cast(syntax.kind()) {
17192            Some(Self { syntax })
17193        } else {
17194            None
17195        }
17196    }
17197    #[inline]
17198    fn syntax(&self) -> &SyntaxNode {
17199        &self.syntax
17200    }
17201}
17202impl AstNode for AlterAggregate {
17203    #[inline]
17204    fn can_cast(kind: SyntaxKind) -> bool {
17205        kind == SyntaxKind::ALTER_AGGREGATE
17206    }
17207    #[inline]
17208    fn cast(syntax: SyntaxNode) -> Option<Self> {
17209        if Self::can_cast(syntax.kind()) {
17210            Some(Self { syntax })
17211        } else {
17212            None
17213        }
17214    }
17215    #[inline]
17216    fn syntax(&self) -> &SyntaxNode {
17217        &self.syntax
17218    }
17219}
17220impl AstNode for AlterCollation {
17221    #[inline]
17222    fn can_cast(kind: SyntaxKind) -> bool {
17223        kind == SyntaxKind::ALTER_COLLATION
17224    }
17225    #[inline]
17226    fn cast(syntax: SyntaxNode) -> Option<Self> {
17227        if Self::can_cast(syntax.kind()) {
17228            Some(Self { syntax })
17229        } else {
17230            None
17231        }
17232    }
17233    #[inline]
17234    fn syntax(&self) -> &SyntaxNode {
17235        &self.syntax
17236    }
17237}
17238impl AstNode for AlterColumn {
17239    #[inline]
17240    fn can_cast(kind: SyntaxKind) -> bool {
17241        kind == SyntaxKind::ALTER_COLUMN
17242    }
17243    #[inline]
17244    fn cast(syntax: SyntaxNode) -> Option<Self> {
17245        if Self::can_cast(syntax.kind()) {
17246            Some(Self { syntax })
17247        } else {
17248            None
17249        }
17250    }
17251    #[inline]
17252    fn syntax(&self) -> &SyntaxNode {
17253        &self.syntax
17254    }
17255}
17256impl AstNode for AlterConstraint {
17257    #[inline]
17258    fn can_cast(kind: SyntaxKind) -> bool {
17259        kind == SyntaxKind::ALTER_CONSTRAINT
17260    }
17261    #[inline]
17262    fn cast(syntax: SyntaxNode) -> Option<Self> {
17263        if Self::can_cast(syntax.kind()) {
17264            Some(Self { syntax })
17265        } else {
17266            None
17267        }
17268    }
17269    #[inline]
17270    fn syntax(&self) -> &SyntaxNode {
17271        &self.syntax
17272    }
17273}
17274impl AstNode for AlterConversion {
17275    #[inline]
17276    fn can_cast(kind: SyntaxKind) -> bool {
17277        kind == SyntaxKind::ALTER_CONVERSION
17278    }
17279    #[inline]
17280    fn cast(syntax: SyntaxNode) -> Option<Self> {
17281        if Self::can_cast(syntax.kind()) {
17282            Some(Self { syntax })
17283        } else {
17284            None
17285        }
17286    }
17287    #[inline]
17288    fn syntax(&self) -> &SyntaxNode {
17289        &self.syntax
17290    }
17291}
17292impl AstNode for AlterDatabase {
17293    #[inline]
17294    fn can_cast(kind: SyntaxKind) -> bool {
17295        kind == SyntaxKind::ALTER_DATABASE
17296    }
17297    #[inline]
17298    fn cast(syntax: SyntaxNode) -> Option<Self> {
17299        if Self::can_cast(syntax.kind()) {
17300            Some(Self { syntax })
17301        } else {
17302            None
17303        }
17304    }
17305    #[inline]
17306    fn syntax(&self) -> &SyntaxNode {
17307        &self.syntax
17308    }
17309}
17310impl AstNode for AlterDefaultPrivileges {
17311    #[inline]
17312    fn can_cast(kind: SyntaxKind) -> bool {
17313        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17314    }
17315    #[inline]
17316    fn cast(syntax: SyntaxNode) -> Option<Self> {
17317        if Self::can_cast(syntax.kind()) {
17318            Some(Self { syntax })
17319        } else {
17320            None
17321        }
17322    }
17323    #[inline]
17324    fn syntax(&self) -> &SyntaxNode {
17325        &self.syntax
17326    }
17327}
17328impl AstNode for AlterDomain {
17329    #[inline]
17330    fn can_cast(kind: SyntaxKind) -> bool {
17331        kind == SyntaxKind::ALTER_DOMAIN
17332    }
17333    #[inline]
17334    fn cast(syntax: SyntaxNode) -> Option<Self> {
17335        if Self::can_cast(syntax.kind()) {
17336            Some(Self { syntax })
17337        } else {
17338            None
17339        }
17340    }
17341    #[inline]
17342    fn syntax(&self) -> &SyntaxNode {
17343        &self.syntax
17344    }
17345}
17346impl AstNode for AlterEventTrigger {
17347    #[inline]
17348    fn can_cast(kind: SyntaxKind) -> bool {
17349        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17350    }
17351    #[inline]
17352    fn cast(syntax: SyntaxNode) -> Option<Self> {
17353        if Self::can_cast(syntax.kind()) {
17354            Some(Self { syntax })
17355        } else {
17356            None
17357        }
17358    }
17359    #[inline]
17360    fn syntax(&self) -> &SyntaxNode {
17361        &self.syntax
17362    }
17363}
17364impl AstNode for AlterExtension {
17365    #[inline]
17366    fn can_cast(kind: SyntaxKind) -> bool {
17367        kind == SyntaxKind::ALTER_EXTENSION
17368    }
17369    #[inline]
17370    fn cast(syntax: SyntaxNode) -> Option<Self> {
17371        if Self::can_cast(syntax.kind()) {
17372            Some(Self { syntax })
17373        } else {
17374            None
17375        }
17376    }
17377    #[inline]
17378    fn syntax(&self) -> &SyntaxNode {
17379        &self.syntax
17380    }
17381}
17382impl AstNode for AlterForeignDataWrapper {
17383    #[inline]
17384    fn can_cast(kind: SyntaxKind) -> bool {
17385        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17386    }
17387    #[inline]
17388    fn cast(syntax: SyntaxNode) -> Option<Self> {
17389        if Self::can_cast(syntax.kind()) {
17390            Some(Self { syntax })
17391        } else {
17392            None
17393        }
17394    }
17395    #[inline]
17396    fn syntax(&self) -> &SyntaxNode {
17397        &self.syntax
17398    }
17399}
17400impl AstNode for AlterForeignTable {
17401    #[inline]
17402    fn can_cast(kind: SyntaxKind) -> bool {
17403        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17404    }
17405    #[inline]
17406    fn cast(syntax: SyntaxNode) -> Option<Self> {
17407        if Self::can_cast(syntax.kind()) {
17408            Some(Self { syntax })
17409        } else {
17410            None
17411        }
17412    }
17413    #[inline]
17414    fn syntax(&self) -> &SyntaxNode {
17415        &self.syntax
17416    }
17417}
17418impl AstNode for AlterFunction {
17419    #[inline]
17420    fn can_cast(kind: SyntaxKind) -> bool {
17421        kind == SyntaxKind::ALTER_FUNCTION
17422    }
17423    #[inline]
17424    fn cast(syntax: SyntaxNode) -> Option<Self> {
17425        if Self::can_cast(syntax.kind()) {
17426            Some(Self { syntax })
17427        } else {
17428            None
17429        }
17430    }
17431    #[inline]
17432    fn syntax(&self) -> &SyntaxNode {
17433        &self.syntax
17434    }
17435}
17436impl AstNode for AlterGroup {
17437    #[inline]
17438    fn can_cast(kind: SyntaxKind) -> bool {
17439        kind == SyntaxKind::ALTER_GROUP
17440    }
17441    #[inline]
17442    fn cast(syntax: SyntaxNode) -> Option<Self> {
17443        if Self::can_cast(syntax.kind()) {
17444            Some(Self { syntax })
17445        } else {
17446            None
17447        }
17448    }
17449    #[inline]
17450    fn syntax(&self) -> &SyntaxNode {
17451        &self.syntax
17452    }
17453}
17454impl AstNode for AlterIndex {
17455    #[inline]
17456    fn can_cast(kind: SyntaxKind) -> bool {
17457        kind == SyntaxKind::ALTER_INDEX
17458    }
17459    #[inline]
17460    fn cast(syntax: SyntaxNode) -> Option<Self> {
17461        if Self::can_cast(syntax.kind()) {
17462            Some(Self { syntax })
17463        } else {
17464            None
17465        }
17466    }
17467    #[inline]
17468    fn syntax(&self) -> &SyntaxNode {
17469        &self.syntax
17470    }
17471}
17472impl AstNode for AlterLanguage {
17473    #[inline]
17474    fn can_cast(kind: SyntaxKind) -> bool {
17475        kind == SyntaxKind::ALTER_LANGUAGE
17476    }
17477    #[inline]
17478    fn cast(syntax: SyntaxNode) -> Option<Self> {
17479        if Self::can_cast(syntax.kind()) {
17480            Some(Self { syntax })
17481        } else {
17482            None
17483        }
17484    }
17485    #[inline]
17486    fn syntax(&self) -> &SyntaxNode {
17487        &self.syntax
17488    }
17489}
17490impl AstNode for AlterLargeObject {
17491    #[inline]
17492    fn can_cast(kind: SyntaxKind) -> bool {
17493        kind == SyntaxKind::ALTER_LARGE_OBJECT
17494    }
17495    #[inline]
17496    fn cast(syntax: SyntaxNode) -> Option<Self> {
17497        if Self::can_cast(syntax.kind()) {
17498            Some(Self { syntax })
17499        } else {
17500            None
17501        }
17502    }
17503    #[inline]
17504    fn syntax(&self) -> &SyntaxNode {
17505        &self.syntax
17506    }
17507}
17508impl AstNode for AlterMaterializedView {
17509    #[inline]
17510    fn can_cast(kind: SyntaxKind) -> bool {
17511        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17512    }
17513    #[inline]
17514    fn cast(syntax: SyntaxNode) -> Option<Self> {
17515        if Self::can_cast(syntax.kind()) {
17516            Some(Self { syntax })
17517        } else {
17518            None
17519        }
17520    }
17521    #[inline]
17522    fn syntax(&self) -> &SyntaxNode {
17523        &self.syntax
17524    }
17525}
17526impl AstNode for AlterOperator {
17527    #[inline]
17528    fn can_cast(kind: SyntaxKind) -> bool {
17529        kind == SyntaxKind::ALTER_OPERATOR
17530    }
17531    #[inline]
17532    fn cast(syntax: SyntaxNode) -> Option<Self> {
17533        if Self::can_cast(syntax.kind()) {
17534            Some(Self { syntax })
17535        } else {
17536            None
17537        }
17538    }
17539    #[inline]
17540    fn syntax(&self) -> &SyntaxNode {
17541        &self.syntax
17542    }
17543}
17544impl AstNode for AlterOperatorClass {
17545    #[inline]
17546    fn can_cast(kind: SyntaxKind) -> bool {
17547        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17548    }
17549    #[inline]
17550    fn cast(syntax: SyntaxNode) -> Option<Self> {
17551        if Self::can_cast(syntax.kind()) {
17552            Some(Self { syntax })
17553        } else {
17554            None
17555        }
17556    }
17557    #[inline]
17558    fn syntax(&self) -> &SyntaxNode {
17559        &self.syntax
17560    }
17561}
17562impl AstNode for AlterOperatorFamily {
17563    #[inline]
17564    fn can_cast(kind: SyntaxKind) -> bool {
17565        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17566    }
17567    #[inline]
17568    fn cast(syntax: SyntaxNode) -> Option<Self> {
17569        if Self::can_cast(syntax.kind()) {
17570            Some(Self { syntax })
17571        } else {
17572            None
17573        }
17574    }
17575    #[inline]
17576    fn syntax(&self) -> &SyntaxNode {
17577        &self.syntax
17578    }
17579}
17580impl AstNode for AlterOption {
17581    #[inline]
17582    fn can_cast(kind: SyntaxKind) -> bool {
17583        kind == SyntaxKind::ALTER_OPTION
17584    }
17585    #[inline]
17586    fn cast(syntax: SyntaxNode) -> Option<Self> {
17587        if Self::can_cast(syntax.kind()) {
17588            Some(Self { syntax })
17589        } else {
17590            None
17591        }
17592    }
17593    #[inline]
17594    fn syntax(&self) -> &SyntaxNode {
17595        &self.syntax
17596    }
17597}
17598impl AstNode for AlterOptionList {
17599    #[inline]
17600    fn can_cast(kind: SyntaxKind) -> bool {
17601        kind == SyntaxKind::ALTER_OPTION_LIST
17602    }
17603    #[inline]
17604    fn cast(syntax: SyntaxNode) -> Option<Self> {
17605        if Self::can_cast(syntax.kind()) {
17606            Some(Self { syntax })
17607        } else {
17608            None
17609        }
17610    }
17611    #[inline]
17612    fn syntax(&self) -> &SyntaxNode {
17613        &self.syntax
17614    }
17615}
17616impl AstNode for AlterPolicy {
17617    #[inline]
17618    fn can_cast(kind: SyntaxKind) -> bool {
17619        kind == SyntaxKind::ALTER_POLICY
17620    }
17621    #[inline]
17622    fn cast(syntax: SyntaxNode) -> Option<Self> {
17623        if Self::can_cast(syntax.kind()) {
17624            Some(Self { syntax })
17625        } else {
17626            None
17627        }
17628    }
17629    #[inline]
17630    fn syntax(&self) -> &SyntaxNode {
17631        &self.syntax
17632    }
17633}
17634impl AstNode for AlterProcedure {
17635    #[inline]
17636    fn can_cast(kind: SyntaxKind) -> bool {
17637        kind == SyntaxKind::ALTER_PROCEDURE
17638    }
17639    #[inline]
17640    fn cast(syntax: SyntaxNode) -> Option<Self> {
17641        if Self::can_cast(syntax.kind()) {
17642            Some(Self { syntax })
17643        } else {
17644            None
17645        }
17646    }
17647    #[inline]
17648    fn syntax(&self) -> &SyntaxNode {
17649        &self.syntax
17650    }
17651}
17652impl AstNode for AlterPublication {
17653    #[inline]
17654    fn can_cast(kind: SyntaxKind) -> bool {
17655        kind == SyntaxKind::ALTER_PUBLICATION
17656    }
17657    #[inline]
17658    fn cast(syntax: SyntaxNode) -> Option<Self> {
17659        if Self::can_cast(syntax.kind()) {
17660            Some(Self { syntax })
17661        } else {
17662            None
17663        }
17664    }
17665    #[inline]
17666    fn syntax(&self) -> &SyntaxNode {
17667        &self.syntax
17668    }
17669}
17670impl AstNode for AlterRole {
17671    #[inline]
17672    fn can_cast(kind: SyntaxKind) -> bool {
17673        kind == SyntaxKind::ALTER_ROLE
17674    }
17675    #[inline]
17676    fn cast(syntax: SyntaxNode) -> Option<Self> {
17677        if Self::can_cast(syntax.kind()) {
17678            Some(Self { syntax })
17679        } else {
17680            None
17681        }
17682    }
17683    #[inline]
17684    fn syntax(&self) -> &SyntaxNode {
17685        &self.syntax
17686    }
17687}
17688impl AstNode for AlterRoutine {
17689    #[inline]
17690    fn can_cast(kind: SyntaxKind) -> bool {
17691        kind == SyntaxKind::ALTER_ROUTINE
17692    }
17693    #[inline]
17694    fn cast(syntax: SyntaxNode) -> Option<Self> {
17695        if Self::can_cast(syntax.kind()) {
17696            Some(Self { syntax })
17697        } else {
17698            None
17699        }
17700    }
17701    #[inline]
17702    fn syntax(&self) -> &SyntaxNode {
17703        &self.syntax
17704    }
17705}
17706impl AstNode for AlterRule {
17707    #[inline]
17708    fn can_cast(kind: SyntaxKind) -> bool {
17709        kind == SyntaxKind::ALTER_RULE
17710    }
17711    #[inline]
17712    fn cast(syntax: SyntaxNode) -> Option<Self> {
17713        if Self::can_cast(syntax.kind()) {
17714            Some(Self { syntax })
17715        } else {
17716            None
17717        }
17718    }
17719    #[inline]
17720    fn syntax(&self) -> &SyntaxNode {
17721        &self.syntax
17722    }
17723}
17724impl AstNode for AlterSchema {
17725    #[inline]
17726    fn can_cast(kind: SyntaxKind) -> bool {
17727        kind == SyntaxKind::ALTER_SCHEMA
17728    }
17729    #[inline]
17730    fn cast(syntax: SyntaxNode) -> Option<Self> {
17731        if Self::can_cast(syntax.kind()) {
17732            Some(Self { syntax })
17733        } else {
17734            None
17735        }
17736    }
17737    #[inline]
17738    fn syntax(&self) -> &SyntaxNode {
17739        &self.syntax
17740    }
17741}
17742impl AstNode for AlterSequence {
17743    #[inline]
17744    fn can_cast(kind: SyntaxKind) -> bool {
17745        kind == SyntaxKind::ALTER_SEQUENCE
17746    }
17747    #[inline]
17748    fn cast(syntax: SyntaxNode) -> Option<Self> {
17749        if Self::can_cast(syntax.kind()) {
17750            Some(Self { syntax })
17751        } else {
17752            None
17753        }
17754    }
17755    #[inline]
17756    fn syntax(&self) -> &SyntaxNode {
17757        &self.syntax
17758    }
17759}
17760impl AstNode for AlterServer {
17761    #[inline]
17762    fn can_cast(kind: SyntaxKind) -> bool {
17763        kind == SyntaxKind::ALTER_SERVER
17764    }
17765    #[inline]
17766    fn cast(syntax: SyntaxNode) -> Option<Self> {
17767        if Self::can_cast(syntax.kind()) {
17768            Some(Self { syntax })
17769        } else {
17770            None
17771        }
17772    }
17773    #[inline]
17774    fn syntax(&self) -> &SyntaxNode {
17775        &self.syntax
17776    }
17777}
17778impl AstNode for AlterSetStatistics {
17779    #[inline]
17780    fn can_cast(kind: SyntaxKind) -> bool {
17781        kind == SyntaxKind::ALTER_SET_STATISTICS
17782    }
17783    #[inline]
17784    fn cast(syntax: SyntaxNode) -> Option<Self> {
17785        if Self::can_cast(syntax.kind()) {
17786            Some(Self { syntax })
17787        } else {
17788            None
17789        }
17790    }
17791    #[inline]
17792    fn syntax(&self) -> &SyntaxNode {
17793        &self.syntax
17794    }
17795}
17796impl AstNode for AlterStatistics {
17797    #[inline]
17798    fn can_cast(kind: SyntaxKind) -> bool {
17799        kind == SyntaxKind::ALTER_STATISTICS
17800    }
17801    #[inline]
17802    fn cast(syntax: SyntaxNode) -> Option<Self> {
17803        if Self::can_cast(syntax.kind()) {
17804            Some(Self { syntax })
17805        } else {
17806            None
17807        }
17808    }
17809    #[inline]
17810    fn syntax(&self) -> &SyntaxNode {
17811        &self.syntax
17812    }
17813}
17814impl AstNode for AlterSubscription {
17815    #[inline]
17816    fn can_cast(kind: SyntaxKind) -> bool {
17817        kind == SyntaxKind::ALTER_SUBSCRIPTION
17818    }
17819    #[inline]
17820    fn cast(syntax: SyntaxNode) -> Option<Self> {
17821        if Self::can_cast(syntax.kind()) {
17822            Some(Self { syntax })
17823        } else {
17824            None
17825        }
17826    }
17827    #[inline]
17828    fn syntax(&self) -> &SyntaxNode {
17829        &self.syntax
17830    }
17831}
17832impl AstNode for AlterSystem {
17833    #[inline]
17834    fn can_cast(kind: SyntaxKind) -> bool {
17835        kind == SyntaxKind::ALTER_SYSTEM
17836    }
17837    #[inline]
17838    fn cast(syntax: SyntaxNode) -> Option<Self> {
17839        if Self::can_cast(syntax.kind()) {
17840            Some(Self { syntax })
17841        } else {
17842            None
17843        }
17844    }
17845    #[inline]
17846    fn syntax(&self) -> &SyntaxNode {
17847        &self.syntax
17848    }
17849}
17850impl AstNode for AlterTable {
17851    #[inline]
17852    fn can_cast(kind: SyntaxKind) -> bool {
17853        kind == SyntaxKind::ALTER_TABLE
17854    }
17855    #[inline]
17856    fn cast(syntax: SyntaxNode) -> Option<Self> {
17857        if Self::can_cast(syntax.kind()) {
17858            Some(Self { syntax })
17859        } else {
17860            None
17861        }
17862    }
17863    #[inline]
17864    fn syntax(&self) -> &SyntaxNode {
17865        &self.syntax
17866    }
17867}
17868impl AstNode for AlterTablespace {
17869    #[inline]
17870    fn can_cast(kind: SyntaxKind) -> bool {
17871        kind == SyntaxKind::ALTER_TABLESPACE
17872    }
17873    #[inline]
17874    fn cast(syntax: SyntaxNode) -> Option<Self> {
17875        if Self::can_cast(syntax.kind()) {
17876            Some(Self { syntax })
17877        } else {
17878            None
17879        }
17880    }
17881    #[inline]
17882    fn syntax(&self) -> &SyntaxNode {
17883        &self.syntax
17884    }
17885}
17886impl AstNode for AlterTextSearchConfiguration {
17887    #[inline]
17888    fn can_cast(kind: SyntaxKind) -> bool {
17889        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17890    }
17891    #[inline]
17892    fn cast(syntax: SyntaxNode) -> Option<Self> {
17893        if Self::can_cast(syntax.kind()) {
17894            Some(Self { syntax })
17895        } else {
17896            None
17897        }
17898    }
17899    #[inline]
17900    fn syntax(&self) -> &SyntaxNode {
17901        &self.syntax
17902    }
17903}
17904impl AstNode for AlterTextSearchDictionary {
17905    #[inline]
17906    fn can_cast(kind: SyntaxKind) -> bool {
17907        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
17908    }
17909    #[inline]
17910    fn cast(syntax: SyntaxNode) -> Option<Self> {
17911        if Self::can_cast(syntax.kind()) {
17912            Some(Self { syntax })
17913        } else {
17914            None
17915        }
17916    }
17917    #[inline]
17918    fn syntax(&self) -> &SyntaxNode {
17919        &self.syntax
17920    }
17921}
17922impl AstNode for AlterTextSearchParser {
17923    #[inline]
17924    fn can_cast(kind: SyntaxKind) -> bool {
17925        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
17926    }
17927    #[inline]
17928    fn cast(syntax: SyntaxNode) -> Option<Self> {
17929        if Self::can_cast(syntax.kind()) {
17930            Some(Self { syntax })
17931        } else {
17932            None
17933        }
17934    }
17935    #[inline]
17936    fn syntax(&self) -> &SyntaxNode {
17937        &self.syntax
17938    }
17939}
17940impl AstNode for AlterTextSearchTemplate {
17941    #[inline]
17942    fn can_cast(kind: SyntaxKind) -> bool {
17943        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
17944    }
17945    #[inline]
17946    fn cast(syntax: SyntaxNode) -> Option<Self> {
17947        if Self::can_cast(syntax.kind()) {
17948            Some(Self { syntax })
17949        } else {
17950            None
17951        }
17952    }
17953    #[inline]
17954    fn syntax(&self) -> &SyntaxNode {
17955        &self.syntax
17956    }
17957}
17958impl AstNode for AlterTrigger {
17959    #[inline]
17960    fn can_cast(kind: SyntaxKind) -> bool {
17961        kind == SyntaxKind::ALTER_TRIGGER
17962    }
17963    #[inline]
17964    fn cast(syntax: SyntaxNode) -> Option<Self> {
17965        if Self::can_cast(syntax.kind()) {
17966            Some(Self { syntax })
17967        } else {
17968            None
17969        }
17970    }
17971    #[inline]
17972    fn syntax(&self) -> &SyntaxNode {
17973        &self.syntax
17974    }
17975}
17976impl AstNode for AlterType {
17977    #[inline]
17978    fn can_cast(kind: SyntaxKind) -> bool {
17979        kind == SyntaxKind::ALTER_TYPE
17980    }
17981    #[inline]
17982    fn cast(syntax: SyntaxNode) -> Option<Self> {
17983        if Self::can_cast(syntax.kind()) {
17984            Some(Self { syntax })
17985        } else {
17986            None
17987        }
17988    }
17989    #[inline]
17990    fn syntax(&self) -> &SyntaxNode {
17991        &self.syntax
17992    }
17993}
17994impl AstNode for AlterUser {
17995    #[inline]
17996    fn can_cast(kind: SyntaxKind) -> bool {
17997        kind == SyntaxKind::ALTER_USER
17998    }
17999    #[inline]
18000    fn cast(syntax: SyntaxNode) -> Option<Self> {
18001        if Self::can_cast(syntax.kind()) {
18002            Some(Self { syntax })
18003        } else {
18004            None
18005        }
18006    }
18007    #[inline]
18008    fn syntax(&self) -> &SyntaxNode {
18009        &self.syntax
18010    }
18011}
18012impl AstNode for AlterUserMapping {
18013    #[inline]
18014    fn can_cast(kind: SyntaxKind) -> bool {
18015        kind == SyntaxKind::ALTER_USER_MAPPING
18016    }
18017    #[inline]
18018    fn cast(syntax: SyntaxNode) -> Option<Self> {
18019        if Self::can_cast(syntax.kind()) {
18020            Some(Self { syntax })
18021        } else {
18022            None
18023        }
18024    }
18025    #[inline]
18026    fn syntax(&self) -> &SyntaxNode {
18027        &self.syntax
18028    }
18029}
18030impl AstNode for AlterView {
18031    #[inline]
18032    fn can_cast(kind: SyntaxKind) -> bool {
18033        kind == SyntaxKind::ALTER_VIEW
18034    }
18035    #[inline]
18036    fn cast(syntax: SyntaxNode) -> Option<Self> {
18037        if Self::can_cast(syntax.kind()) {
18038            Some(Self { syntax })
18039        } else {
18040            None
18041        }
18042    }
18043    #[inline]
18044    fn syntax(&self) -> &SyntaxNode {
18045        &self.syntax
18046    }
18047}
18048impl AstNode for Analyze {
18049    #[inline]
18050    fn can_cast(kind: SyntaxKind) -> bool {
18051        kind == SyntaxKind::ANALYZE
18052    }
18053    #[inline]
18054    fn cast(syntax: SyntaxNode) -> Option<Self> {
18055        if Self::can_cast(syntax.kind()) {
18056            Some(Self { syntax })
18057        } else {
18058            None
18059        }
18060    }
18061    #[inline]
18062    fn syntax(&self) -> &SyntaxNode {
18063        &self.syntax
18064    }
18065}
18066impl AstNode for AnyFn {
18067    #[inline]
18068    fn can_cast(kind: SyntaxKind) -> bool {
18069        kind == SyntaxKind::ANY_FN
18070    }
18071    #[inline]
18072    fn cast(syntax: SyntaxNode) -> Option<Self> {
18073        if Self::can_cast(syntax.kind()) {
18074            Some(Self { syntax })
18075        } else {
18076            None
18077        }
18078    }
18079    #[inline]
18080    fn syntax(&self) -> &SyntaxNode {
18081        &self.syntax
18082    }
18083}
18084impl AstNode for Arg {
18085    #[inline]
18086    fn can_cast(kind: SyntaxKind) -> bool {
18087        kind == SyntaxKind::ARG
18088    }
18089    #[inline]
18090    fn cast(syntax: SyntaxNode) -> Option<Self> {
18091        if Self::can_cast(syntax.kind()) {
18092            Some(Self { syntax })
18093        } else {
18094            None
18095        }
18096    }
18097    #[inline]
18098    fn syntax(&self) -> &SyntaxNode {
18099        &self.syntax
18100    }
18101}
18102impl AstNode for ArgList {
18103    #[inline]
18104    fn can_cast(kind: SyntaxKind) -> bool {
18105        kind == SyntaxKind::ARG_LIST
18106    }
18107    #[inline]
18108    fn cast(syntax: SyntaxNode) -> Option<Self> {
18109        if Self::can_cast(syntax.kind()) {
18110            Some(Self { syntax })
18111        } else {
18112            None
18113        }
18114    }
18115    #[inline]
18116    fn syntax(&self) -> &SyntaxNode {
18117        &self.syntax
18118    }
18119}
18120impl AstNode for ArrayExpr {
18121    #[inline]
18122    fn can_cast(kind: SyntaxKind) -> bool {
18123        kind == SyntaxKind::ARRAY_EXPR
18124    }
18125    #[inline]
18126    fn cast(syntax: SyntaxNode) -> Option<Self> {
18127        if Self::can_cast(syntax.kind()) {
18128            Some(Self { syntax })
18129        } else {
18130            None
18131        }
18132    }
18133    #[inline]
18134    fn syntax(&self) -> &SyntaxNode {
18135        &self.syntax
18136    }
18137}
18138impl AstNode for ArrayType {
18139    #[inline]
18140    fn can_cast(kind: SyntaxKind) -> bool {
18141        kind == SyntaxKind::ARRAY_TYPE
18142    }
18143    #[inline]
18144    fn cast(syntax: SyntaxNode) -> Option<Self> {
18145        if Self::can_cast(syntax.kind()) {
18146            Some(Self { syntax })
18147        } else {
18148            None
18149        }
18150    }
18151    #[inline]
18152    fn syntax(&self) -> &SyntaxNode {
18153        &self.syntax
18154    }
18155}
18156impl AstNode for AsFuncOption {
18157    #[inline]
18158    fn can_cast(kind: SyntaxKind) -> bool {
18159        kind == SyntaxKind::AS_FUNC_OPTION
18160    }
18161    #[inline]
18162    fn cast(syntax: SyntaxNode) -> Option<Self> {
18163        if Self::can_cast(syntax.kind()) {
18164            Some(Self { syntax })
18165        } else {
18166            None
18167        }
18168    }
18169    #[inline]
18170    fn syntax(&self) -> &SyntaxNode {
18171        &self.syntax
18172    }
18173}
18174impl AstNode for AsName {
18175    #[inline]
18176    fn can_cast(kind: SyntaxKind) -> bool {
18177        kind == SyntaxKind::AS_NAME
18178    }
18179    #[inline]
18180    fn cast(syntax: SyntaxNode) -> Option<Self> {
18181        if Self::can_cast(syntax.kind()) {
18182            Some(Self { syntax })
18183        } else {
18184            None
18185        }
18186    }
18187    #[inline]
18188    fn syntax(&self) -> &SyntaxNode {
18189        &self.syntax
18190    }
18191}
18192impl AstNode for AtTimeZone {
18193    #[inline]
18194    fn can_cast(kind: SyntaxKind) -> bool {
18195        kind == SyntaxKind::AT_TIME_ZONE
18196    }
18197    #[inline]
18198    fn cast(syntax: SyntaxNode) -> Option<Self> {
18199        if Self::can_cast(syntax.kind()) {
18200            Some(Self { syntax })
18201        } else {
18202            None
18203        }
18204    }
18205    #[inline]
18206    fn syntax(&self) -> &SyntaxNode {
18207        &self.syntax
18208    }
18209}
18210impl AstNode for AttachPartition {
18211    #[inline]
18212    fn can_cast(kind: SyntaxKind) -> bool {
18213        kind == SyntaxKind::ATTACH_PARTITION
18214    }
18215    #[inline]
18216    fn cast(syntax: SyntaxNode) -> Option<Self> {
18217        if Self::can_cast(syntax.kind()) {
18218            Some(Self { syntax })
18219        } else {
18220            None
18221        }
18222    }
18223    #[inline]
18224    fn syntax(&self) -> &SyntaxNode {
18225        &self.syntax
18226    }
18227}
18228impl AstNode for AttributeList {
18229    #[inline]
18230    fn can_cast(kind: SyntaxKind) -> bool {
18231        kind == SyntaxKind::ATTRIBUTE_LIST
18232    }
18233    #[inline]
18234    fn cast(syntax: SyntaxNode) -> Option<Self> {
18235        if Self::can_cast(syntax.kind()) {
18236            Some(Self { syntax })
18237        } else {
18238            None
18239        }
18240    }
18241    #[inline]
18242    fn syntax(&self) -> &SyntaxNode {
18243        &self.syntax
18244    }
18245}
18246impl AstNode for AttributeOption {
18247    #[inline]
18248    fn can_cast(kind: SyntaxKind) -> bool {
18249        kind == SyntaxKind::ATTRIBUTE_OPTION
18250    }
18251    #[inline]
18252    fn cast(syntax: SyntaxNode) -> Option<Self> {
18253        if Self::can_cast(syntax.kind()) {
18254            Some(Self { syntax })
18255        } else {
18256            None
18257        }
18258    }
18259    #[inline]
18260    fn syntax(&self) -> &SyntaxNode {
18261        &self.syntax
18262    }
18263}
18264impl AstNode for AttributeValue {
18265    #[inline]
18266    fn can_cast(kind: SyntaxKind) -> bool {
18267        kind == SyntaxKind::ATTRIBUTE_VALUE
18268    }
18269    #[inline]
18270    fn cast(syntax: SyntaxNode) -> Option<Self> {
18271        if Self::can_cast(syntax.kind()) {
18272            Some(Self { syntax })
18273        } else {
18274            None
18275        }
18276    }
18277    #[inline]
18278    fn syntax(&self) -> &SyntaxNode {
18279        &self.syntax
18280    }
18281}
18282impl AstNode for Begin {
18283    #[inline]
18284    fn can_cast(kind: SyntaxKind) -> bool {
18285        kind == SyntaxKind::BEGIN
18286    }
18287    #[inline]
18288    fn cast(syntax: SyntaxNode) -> Option<Self> {
18289        if Self::can_cast(syntax.kind()) {
18290            Some(Self { syntax })
18291        } else {
18292            None
18293        }
18294    }
18295    #[inline]
18296    fn syntax(&self) -> &SyntaxNode {
18297        &self.syntax
18298    }
18299}
18300impl AstNode for BeginFuncOption {
18301    #[inline]
18302    fn can_cast(kind: SyntaxKind) -> bool {
18303        kind == SyntaxKind::BEGIN_FUNC_OPTION
18304    }
18305    #[inline]
18306    fn cast(syntax: SyntaxNode) -> Option<Self> {
18307        if Self::can_cast(syntax.kind()) {
18308            Some(Self { syntax })
18309        } else {
18310            None
18311        }
18312    }
18313    #[inline]
18314    fn syntax(&self) -> &SyntaxNode {
18315        &self.syntax
18316    }
18317}
18318impl AstNode for BeginFuncOptionList {
18319    #[inline]
18320    fn can_cast(kind: SyntaxKind) -> bool {
18321        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18322    }
18323    #[inline]
18324    fn cast(syntax: SyntaxNode) -> Option<Self> {
18325        if Self::can_cast(syntax.kind()) {
18326            Some(Self { syntax })
18327        } else {
18328            None
18329        }
18330    }
18331    #[inline]
18332    fn syntax(&self) -> &SyntaxNode {
18333        &self.syntax
18334    }
18335}
18336impl AstNode for BetweenExpr {
18337    #[inline]
18338    fn can_cast(kind: SyntaxKind) -> bool {
18339        kind == SyntaxKind::BETWEEN_EXPR
18340    }
18341    #[inline]
18342    fn cast(syntax: SyntaxNode) -> Option<Self> {
18343        if Self::can_cast(syntax.kind()) {
18344            Some(Self { syntax })
18345        } else {
18346            None
18347        }
18348    }
18349    #[inline]
18350    fn syntax(&self) -> &SyntaxNode {
18351        &self.syntax
18352    }
18353}
18354impl AstNode for BinExpr {
18355    #[inline]
18356    fn can_cast(kind: SyntaxKind) -> bool {
18357        kind == SyntaxKind::BIN_EXPR
18358    }
18359    #[inline]
18360    fn cast(syntax: SyntaxNode) -> Option<Self> {
18361        if Self::can_cast(syntax.kind()) {
18362            Some(Self { syntax })
18363        } else {
18364            None
18365        }
18366    }
18367    #[inline]
18368    fn syntax(&self) -> &SyntaxNode {
18369        &self.syntax
18370    }
18371}
18372impl AstNode for BitType {
18373    #[inline]
18374    fn can_cast(kind: SyntaxKind) -> bool {
18375        kind == SyntaxKind::BIT_TYPE
18376    }
18377    #[inline]
18378    fn cast(syntax: SyntaxNode) -> Option<Self> {
18379        if Self::can_cast(syntax.kind()) {
18380            Some(Self { syntax })
18381        } else {
18382            None
18383        }
18384    }
18385    #[inline]
18386    fn syntax(&self) -> &SyntaxNode {
18387        &self.syntax
18388    }
18389}
18390impl AstNode for Call {
18391    #[inline]
18392    fn can_cast(kind: SyntaxKind) -> bool {
18393        kind == SyntaxKind::CALL
18394    }
18395    #[inline]
18396    fn cast(syntax: SyntaxNode) -> Option<Self> {
18397        if Self::can_cast(syntax.kind()) {
18398            Some(Self { syntax })
18399        } else {
18400            None
18401        }
18402    }
18403    #[inline]
18404    fn syntax(&self) -> &SyntaxNode {
18405        &self.syntax
18406    }
18407}
18408impl AstNode for CallExpr {
18409    #[inline]
18410    fn can_cast(kind: SyntaxKind) -> bool {
18411        kind == SyntaxKind::CALL_EXPR
18412    }
18413    #[inline]
18414    fn cast(syntax: SyntaxNode) -> Option<Self> {
18415        if Self::can_cast(syntax.kind()) {
18416            Some(Self { syntax })
18417        } else {
18418            None
18419        }
18420    }
18421    #[inline]
18422    fn syntax(&self) -> &SyntaxNode {
18423        &self.syntax
18424    }
18425}
18426impl AstNode for Cascade {
18427    #[inline]
18428    fn can_cast(kind: SyntaxKind) -> bool {
18429        kind == SyntaxKind::CASCADE
18430    }
18431    #[inline]
18432    fn cast(syntax: SyntaxNode) -> Option<Self> {
18433        if Self::can_cast(syntax.kind()) {
18434            Some(Self { syntax })
18435        } else {
18436            None
18437        }
18438    }
18439    #[inline]
18440    fn syntax(&self) -> &SyntaxNode {
18441        &self.syntax
18442    }
18443}
18444impl AstNode for CaseExpr {
18445    #[inline]
18446    fn can_cast(kind: SyntaxKind) -> bool {
18447        kind == SyntaxKind::CASE_EXPR
18448    }
18449    #[inline]
18450    fn cast(syntax: SyntaxNode) -> Option<Self> {
18451        if Self::can_cast(syntax.kind()) {
18452            Some(Self { syntax })
18453        } else {
18454            None
18455        }
18456    }
18457    #[inline]
18458    fn syntax(&self) -> &SyntaxNode {
18459        &self.syntax
18460    }
18461}
18462impl AstNode for CastExpr {
18463    #[inline]
18464    fn can_cast(kind: SyntaxKind) -> bool {
18465        kind == SyntaxKind::CAST_EXPR
18466    }
18467    #[inline]
18468    fn cast(syntax: SyntaxNode) -> Option<Self> {
18469        if Self::can_cast(syntax.kind()) {
18470            Some(Self { syntax })
18471        } else {
18472            None
18473        }
18474    }
18475    #[inline]
18476    fn syntax(&self) -> &SyntaxNode {
18477        &self.syntax
18478    }
18479}
18480impl AstNode for CastSig {
18481    #[inline]
18482    fn can_cast(kind: SyntaxKind) -> bool {
18483        kind == SyntaxKind::CAST_SIG
18484    }
18485    #[inline]
18486    fn cast(syntax: SyntaxNode) -> Option<Self> {
18487        if Self::can_cast(syntax.kind()) {
18488            Some(Self { syntax })
18489        } else {
18490            None
18491        }
18492    }
18493    #[inline]
18494    fn syntax(&self) -> &SyntaxNode {
18495        &self.syntax
18496    }
18497}
18498impl AstNode for CharType {
18499    #[inline]
18500    fn can_cast(kind: SyntaxKind) -> bool {
18501        kind == SyntaxKind::CHAR_TYPE
18502    }
18503    #[inline]
18504    fn cast(syntax: SyntaxNode) -> Option<Self> {
18505        if Self::can_cast(syntax.kind()) {
18506            Some(Self { syntax })
18507        } else {
18508            None
18509        }
18510    }
18511    #[inline]
18512    fn syntax(&self) -> &SyntaxNode {
18513        &self.syntax
18514    }
18515}
18516impl AstNode for CheckConstraint {
18517    #[inline]
18518    fn can_cast(kind: SyntaxKind) -> bool {
18519        kind == SyntaxKind::CHECK_CONSTRAINT
18520    }
18521    #[inline]
18522    fn cast(syntax: SyntaxNode) -> Option<Self> {
18523        if Self::can_cast(syntax.kind()) {
18524            Some(Self { syntax })
18525        } else {
18526            None
18527        }
18528    }
18529    #[inline]
18530    fn syntax(&self) -> &SyntaxNode {
18531        &self.syntax
18532    }
18533}
18534impl AstNode for Checkpoint {
18535    #[inline]
18536    fn can_cast(kind: SyntaxKind) -> bool {
18537        kind == SyntaxKind::CHECKPOINT
18538    }
18539    #[inline]
18540    fn cast(syntax: SyntaxNode) -> Option<Self> {
18541        if Self::can_cast(syntax.kind()) {
18542            Some(Self { syntax })
18543        } else {
18544            None
18545        }
18546    }
18547    #[inline]
18548    fn syntax(&self) -> &SyntaxNode {
18549        &self.syntax
18550    }
18551}
18552impl AstNode for Close {
18553    #[inline]
18554    fn can_cast(kind: SyntaxKind) -> bool {
18555        kind == SyntaxKind::CLOSE
18556    }
18557    #[inline]
18558    fn cast(syntax: SyntaxNode) -> Option<Self> {
18559        if Self::can_cast(syntax.kind()) {
18560            Some(Self { syntax })
18561        } else {
18562            None
18563        }
18564    }
18565    #[inline]
18566    fn syntax(&self) -> &SyntaxNode {
18567        &self.syntax
18568    }
18569}
18570impl AstNode for Cluster {
18571    #[inline]
18572    fn can_cast(kind: SyntaxKind) -> bool {
18573        kind == SyntaxKind::CLUSTER
18574    }
18575    #[inline]
18576    fn cast(syntax: SyntaxNode) -> Option<Self> {
18577        if Self::can_cast(syntax.kind()) {
18578            Some(Self { syntax })
18579        } else {
18580            None
18581        }
18582    }
18583    #[inline]
18584    fn syntax(&self) -> &SyntaxNode {
18585        &self.syntax
18586    }
18587}
18588impl AstNode for ClusterOn {
18589    #[inline]
18590    fn can_cast(kind: SyntaxKind) -> bool {
18591        kind == SyntaxKind::CLUSTER_ON
18592    }
18593    #[inline]
18594    fn cast(syntax: SyntaxNode) -> Option<Self> {
18595        if Self::can_cast(syntax.kind()) {
18596            Some(Self { syntax })
18597        } else {
18598            None
18599        }
18600    }
18601    #[inline]
18602    fn syntax(&self) -> &SyntaxNode {
18603        &self.syntax
18604    }
18605}
18606impl AstNode for Collate {
18607    #[inline]
18608    fn can_cast(kind: SyntaxKind) -> bool {
18609        kind == SyntaxKind::COLLATE
18610    }
18611    #[inline]
18612    fn cast(syntax: SyntaxNode) -> Option<Self> {
18613        if Self::can_cast(syntax.kind()) {
18614            Some(Self { syntax })
18615        } else {
18616            None
18617        }
18618    }
18619    #[inline]
18620    fn syntax(&self) -> &SyntaxNode {
18621        &self.syntax
18622    }
18623}
18624impl AstNode for ColonColon {
18625    #[inline]
18626    fn can_cast(kind: SyntaxKind) -> bool {
18627        kind == SyntaxKind::COLON_COLON
18628    }
18629    #[inline]
18630    fn cast(syntax: SyntaxNode) -> Option<Self> {
18631        if Self::can_cast(syntax.kind()) {
18632            Some(Self { syntax })
18633        } else {
18634            None
18635        }
18636    }
18637    #[inline]
18638    fn syntax(&self) -> &SyntaxNode {
18639        &self.syntax
18640    }
18641}
18642impl AstNode for ColonEq {
18643    #[inline]
18644    fn can_cast(kind: SyntaxKind) -> bool {
18645        kind == SyntaxKind::COLON_EQ
18646    }
18647    #[inline]
18648    fn cast(syntax: SyntaxNode) -> Option<Self> {
18649        if Self::can_cast(syntax.kind()) {
18650            Some(Self { syntax })
18651        } else {
18652            None
18653        }
18654    }
18655    #[inline]
18656    fn syntax(&self) -> &SyntaxNode {
18657        &self.syntax
18658    }
18659}
18660impl AstNode for Column {
18661    #[inline]
18662    fn can_cast(kind: SyntaxKind) -> bool {
18663        kind == SyntaxKind::COLUMN
18664    }
18665    #[inline]
18666    fn cast(syntax: SyntaxNode) -> Option<Self> {
18667        if Self::can_cast(syntax.kind()) {
18668            Some(Self { syntax })
18669        } else {
18670            None
18671        }
18672    }
18673    #[inline]
18674    fn syntax(&self) -> &SyntaxNode {
18675        &self.syntax
18676    }
18677}
18678impl AstNode for ColumnList {
18679    #[inline]
18680    fn can_cast(kind: SyntaxKind) -> bool {
18681        kind == SyntaxKind::COLUMN_LIST
18682    }
18683    #[inline]
18684    fn cast(syntax: SyntaxNode) -> Option<Self> {
18685        if Self::can_cast(syntax.kind()) {
18686            Some(Self { syntax })
18687        } else {
18688            None
18689        }
18690    }
18691    #[inline]
18692    fn syntax(&self) -> &SyntaxNode {
18693        &self.syntax
18694    }
18695}
18696impl AstNode for CommentOn {
18697    #[inline]
18698    fn can_cast(kind: SyntaxKind) -> bool {
18699        kind == SyntaxKind::COMMENT_ON
18700    }
18701    #[inline]
18702    fn cast(syntax: SyntaxNode) -> Option<Self> {
18703        if Self::can_cast(syntax.kind()) {
18704            Some(Self { syntax })
18705        } else {
18706            None
18707        }
18708    }
18709    #[inline]
18710    fn syntax(&self) -> &SyntaxNode {
18711        &self.syntax
18712    }
18713}
18714impl AstNode for Commit {
18715    #[inline]
18716    fn can_cast(kind: SyntaxKind) -> bool {
18717        kind == SyntaxKind::COMMIT
18718    }
18719    #[inline]
18720    fn cast(syntax: SyntaxNode) -> Option<Self> {
18721        if Self::can_cast(syntax.kind()) {
18722            Some(Self { syntax })
18723        } else {
18724            None
18725        }
18726    }
18727    #[inline]
18728    fn syntax(&self) -> &SyntaxNode {
18729        &self.syntax
18730    }
18731}
18732impl AstNode for CompoundSelect {
18733    #[inline]
18734    fn can_cast(kind: SyntaxKind) -> bool {
18735        kind == SyntaxKind::COMPOUND_SELECT
18736    }
18737    #[inline]
18738    fn cast(syntax: SyntaxNode) -> Option<Self> {
18739        if Self::can_cast(syntax.kind()) {
18740            Some(Self { syntax })
18741        } else {
18742            None
18743        }
18744    }
18745    #[inline]
18746    fn syntax(&self) -> &SyntaxNode {
18747        &self.syntax
18748    }
18749}
18750impl AstNode for CompressionMethod {
18751    #[inline]
18752    fn can_cast(kind: SyntaxKind) -> bool {
18753        kind == SyntaxKind::COMPRESSION_METHOD
18754    }
18755    #[inline]
18756    fn cast(syntax: SyntaxNode) -> Option<Self> {
18757        if Self::can_cast(syntax.kind()) {
18758            Some(Self { syntax })
18759        } else {
18760            None
18761        }
18762    }
18763    #[inline]
18764    fn syntax(&self) -> &SyntaxNode {
18765        &self.syntax
18766    }
18767}
18768impl AstNode for ConflictDoNothing {
18769    #[inline]
18770    fn can_cast(kind: SyntaxKind) -> bool {
18771        kind == SyntaxKind::CONFLICT_DO_NOTHING
18772    }
18773    #[inline]
18774    fn cast(syntax: SyntaxNode) -> Option<Self> {
18775        if Self::can_cast(syntax.kind()) {
18776            Some(Self { syntax })
18777        } else {
18778            None
18779        }
18780    }
18781    #[inline]
18782    fn syntax(&self) -> &SyntaxNode {
18783        &self.syntax
18784    }
18785}
18786impl AstNode for ConflictDoUpdateSet {
18787    #[inline]
18788    fn can_cast(kind: SyntaxKind) -> bool {
18789        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18790    }
18791    #[inline]
18792    fn cast(syntax: SyntaxNode) -> Option<Self> {
18793        if Self::can_cast(syntax.kind()) {
18794            Some(Self { syntax })
18795        } else {
18796            None
18797        }
18798    }
18799    #[inline]
18800    fn syntax(&self) -> &SyntaxNode {
18801        &self.syntax
18802    }
18803}
18804impl AstNode for ConflictIndexItem {
18805    #[inline]
18806    fn can_cast(kind: SyntaxKind) -> bool {
18807        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18808    }
18809    #[inline]
18810    fn cast(syntax: SyntaxNode) -> Option<Self> {
18811        if Self::can_cast(syntax.kind()) {
18812            Some(Self { syntax })
18813        } else {
18814            None
18815        }
18816    }
18817    #[inline]
18818    fn syntax(&self) -> &SyntaxNode {
18819        &self.syntax
18820    }
18821}
18822impl AstNode for ConflictIndexItemList {
18823    #[inline]
18824    fn can_cast(kind: SyntaxKind) -> bool {
18825        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18826    }
18827    #[inline]
18828    fn cast(syntax: SyntaxNode) -> Option<Self> {
18829        if Self::can_cast(syntax.kind()) {
18830            Some(Self { syntax })
18831        } else {
18832            None
18833        }
18834    }
18835    #[inline]
18836    fn syntax(&self) -> &SyntaxNode {
18837        &self.syntax
18838    }
18839}
18840impl AstNode for ConflictOnConstraint {
18841    #[inline]
18842    fn can_cast(kind: SyntaxKind) -> bool {
18843        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18844    }
18845    #[inline]
18846    fn cast(syntax: SyntaxNode) -> Option<Self> {
18847        if Self::can_cast(syntax.kind()) {
18848            Some(Self { syntax })
18849        } else {
18850            None
18851        }
18852    }
18853    #[inline]
18854    fn syntax(&self) -> &SyntaxNode {
18855        &self.syntax
18856    }
18857}
18858impl AstNode for ConflictOnIndex {
18859    #[inline]
18860    fn can_cast(kind: SyntaxKind) -> bool {
18861        kind == SyntaxKind::CONFLICT_ON_INDEX
18862    }
18863    #[inline]
18864    fn cast(syntax: SyntaxNode) -> Option<Self> {
18865        if Self::can_cast(syntax.kind()) {
18866            Some(Self { syntax })
18867        } else {
18868            None
18869        }
18870    }
18871    #[inline]
18872    fn syntax(&self) -> &SyntaxNode {
18873        &self.syntax
18874    }
18875}
18876impl AstNode for ConstraintExclusion {
18877    #[inline]
18878    fn can_cast(kind: SyntaxKind) -> bool {
18879        kind == SyntaxKind::CONSTRAINT_EXCLUSION
18880    }
18881    #[inline]
18882    fn cast(syntax: SyntaxNode) -> Option<Self> {
18883        if Self::can_cast(syntax.kind()) {
18884            Some(Self { syntax })
18885        } else {
18886            None
18887        }
18888    }
18889    #[inline]
18890    fn syntax(&self) -> &SyntaxNode {
18891        &self.syntax
18892    }
18893}
18894impl AstNode for ConstraintExclusionList {
18895    #[inline]
18896    fn can_cast(kind: SyntaxKind) -> bool {
18897        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
18898    }
18899    #[inline]
18900    fn cast(syntax: SyntaxNode) -> Option<Self> {
18901        if Self::can_cast(syntax.kind()) {
18902            Some(Self { syntax })
18903        } else {
18904            None
18905        }
18906    }
18907    #[inline]
18908    fn syntax(&self) -> &SyntaxNode {
18909        &self.syntax
18910    }
18911}
18912impl AstNode for ConstraintIncludeClause {
18913    #[inline]
18914    fn can_cast(kind: SyntaxKind) -> bool {
18915        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
18916    }
18917    #[inline]
18918    fn cast(syntax: SyntaxNode) -> Option<Self> {
18919        if Self::can_cast(syntax.kind()) {
18920            Some(Self { syntax })
18921        } else {
18922            None
18923        }
18924    }
18925    #[inline]
18926    fn syntax(&self) -> &SyntaxNode {
18927        &self.syntax
18928    }
18929}
18930impl AstNode for ConstraintIndexMethod {
18931    #[inline]
18932    fn can_cast(kind: SyntaxKind) -> bool {
18933        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
18934    }
18935    #[inline]
18936    fn cast(syntax: SyntaxNode) -> Option<Self> {
18937        if Self::can_cast(syntax.kind()) {
18938            Some(Self { syntax })
18939        } else {
18940            None
18941        }
18942    }
18943    #[inline]
18944    fn syntax(&self) -> &SyntaxNode {
18945        &self.syntax
18946    }
18947}
18948impl AstNode for ConstraintIndexTablespace {
18949    #[inline]
18950    fn can_cast(kind: SyntaxKind) -> bool {
18951        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
18952    }
18953    #[inline]
18954    fn cast(syntax: SyntaxNode) -> Option<Self> {
18955        if Self::can_cast(syntax.kind()) {
18956            Some(Self { syntax })
18957        } else {
18958            None
18959        }
18960    }
18961    #[inline]
18962    fn syntax(&self) -> &SyntaxNode {
18963        &self.syntax
18964    }
18965}
18966impl AstNode for Copy {
18967    #[inline]
18968    fn can_cast(kind: SyntaxKind) -> bool {
18969        kind == SyntaxKind::COPY
18970    }
18971    #[inline]
18972    fn cast(syntax: SyntaxNode) -> Option<Self> {
18973        if Self::can_cast(syntax.kind()) {
18974            Some(Self { syntax })
18975        } else {
18976            None
18977        }
18978    }
18979    #[inline]
18980    fn syntax(&self) -> &SyntaxNode {
18981        &self.syntax
18982    }
18983}
18984impl AstNode for CopyOption {
18985    #[inline]
18986    fn can_cast(kind: SyntaxKind) -> bool {
18987        kind == SyntaxKind::COPY_OPTION
18988    }
18989    #[inline]
18990    fn cast(syntax: SyntaxNode) -> Option<Self> {
18991        if Self::can_cast(syntax.kind()) {
18992            Some(Self { syntax })
18993        } else {
18994            None
18995        }
18996    }
18997    #[inline]
18998    fn syntax(&self) -> &SyntaxNode {
18999        &self.syntax
19000    }
19001}
19002impl AstNode for CopyOptionList {
19003    #[inline]
19004    fn can_cast(kind: SyntaxKind) -> bool {
19005        kind == SyntaxKind::COPY_OPTION_LIST
19006    }
19007    #[inline]
19008    fn cast(syntax: SyntaxNode) -> Option<Self> {
19009        if Self::can_cast(syntax.kind()) {
19010            Some(Self { syntax })
19011        } else {
19012            None
19013        }
19014    }
19015    #[inline]
19016    fn syntax(&self) -> &SyntaxNode {
19017        &self.syntax
19018    }
19019}
19020impl AstNode for CostFuncOption {
19021    #[inline]
19022    fn can_cast(kind: SyntaxKind) -> bool {
19023        kind == SyntaxKind::COST_FUNC_OPTION
19024    }
19025    #[inline]
19026    fn cast(syntax: SyntaxNode) -> Option<Self> {
19027        if Self::can_cast(syntax.kind()) {
19028            Some(Self { syntax })
19029        } else {
19030            None
19031        }
19032    }
19033    #[inline]
19034    fn syntax(&self) -> &SyntaxNode {
19035        &self.syntax
19036    }
19037}
19038impl AstNode for CreateAccessMethod {
19039    #[inline]
19040    fn can_cast(kind: SyntaxKind) -> bool {
19041        kind == SyntaxKind::CREATE_ACCESS_METHOD
19042    }
19043    #[inline]
19044    fn cast(syntax: SyntaxNode) -> Option<Self> {
19045        if Self::can_cast(syntax.kind()) {
19046            Some(Self { syntax })
19047        } else {
19048            None
19049        }
19050    }
19051    #[inline]
19052    fn syntax(&self) -> &SyntaxNode {
19053        &self.syntax
19054    }
19055}
19056impl AstNode for CreateAggregate {
19057    #[inline]
19058    fn can_cast(kind: SyntaxKind) -> bool {
19059        kind == SyntaxKind::CREATE_AGGREGATE
19060    }
19061    #[inline]
19062    fn cast(syntax: SyntaxNode) -> Option<Self> {
19063        if Self::can_cast(syntax.kind()) {
19064            Some(Self { syntax })
19065        } else {
19066            None
19067        }
19068    }
19069    #[inline]
19070    fn syntax(&self) -> &SyntaxNode {
19071        &self.syntax
19072    }
19073}
19074impl AstNode for CreateCast {
19075    #[inline]
19076    fn can_cast(kind: SyntaxKind) -> bool {
19077        kind == SyntaxKind::CREATE_CAST
19078    }
19079    #[inline]
19080    fn cast(syntax: SyntaxNode) -> Option<Self> {
19081        if Self::can_cast(syntax.kind()) {
19082            Some(Self { syntax })
19083        } else {
19084            None
19085        }
19086    }
19087    #[inline]
19088    fn syntax(&self) -> &SyntaxNode {
19089        &self.syntax
19090    }
19091}
19092impl AstNode for CreateCollation {
19093    #[inline]
19094    fn can_cast(kind: SyntaxKind) -> bool {
19095        kind == SyntaxKind::CREATE_COLLATION
19096    }
19097    #[inline]
19098    fn cast(syntax: SyntaxNode) -> Option<Self> {
19099        if Self::can_cast(syntax.kind()) {
19100            Some(Self { syntax })
19101        } else {
19102            None
19103        }
19104    }
19105    #[inline]
19106    fn syntax(&self) -> &SyntaxNode {
19107        &self.syntax
19108    }
19109}
19110impl AstNode for CreateConversion {
19111    #[inline]
19112    fn can_cast(kind: SyntaxKind) -> bool {
19113        kind == SyntaxKind::CREATE_CONVERSION
19114    }
19115    #[inline]
19116    fn cast(syntax: SyntaxNode) -> Option<Self> {
19117        if Self::can_cast(syntax.kind()) {
19118            Some(Self { syntax })
19119        } else {
19120            None
19121        }
19122    }
19123    #[inline]
19124    fn syntax(&self) -> &SyntaxNode {
19125        &self.syntax
19126    }
19127}
19128impl AstNode for CreateDatabase {
19129    #[inline]
19130    fn can_cast(kind: SyntaxKind) -> bool {
19131        kind == SyntaxKind::CREATE_DATABASE
19132    }
19133    #[inline]
19134    fn cast(syntax: SyntaxNode) -> Option<Self> {
19135        if Self::can_cast(syntax.kind()) {
19136            Some(Self { syntax })
19137        } else {
19138            None
19139        }
19140    }
19141    #[inline]
19142    fn syntax(&self) -> &SyntaxNode {
19143        &self.syntax
19144    }
19145}
19146impl AstNode for CreateDatabaseOption {
19147    #[inline]
19148    fn can_cast(kind: SyntaxKind) -> bool {
19149        kind == SyntaxKind::CREATE_DATABASE_OPTION
19150    }
19151    #[inline]
19152    fn cast(syntax: SyntaxNode) -> Option<Self> {
19153        if Self::can_cast(syntax.kind()) {
19154            Some(Self { syntax })
19155        } else {
19156            None
19157        }
19158    }
19159    #[inline]
19160    fn syntax(&self) -> &SyntaxNode {
19161        &self.syntax
19162    }
19163}
19164impl AstNode for CreateDatabaseOptionList {
19165    #[inline]
19166    fn can_cast(kind: SyntaxKind) -> bool {
19167        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19168    }
19169    #[inline]
19170    fn cast(syntax: SyntaxNode) -> Option<Self> {
19171        if Self::can_cast(syntax.kind()) {
19172            Some(Self { syntax })
19173        } else {
19174            None
19175        }
19176    }
19177    #[inline]
19178    fn syntax(&self) -> &SyntaxNode {
19179        &self.syntax
19180    }
19181}
19182impl AstNode for CreateDomain {
19183    #[inline]
19184    fn can_cast(kind: SyntaxKind) -> bool {
19185        kind == SyntaxKind::CREATE_DOMAIN
19186    }
19187    #[inline]
19188    fn cast(syntax: SyntaxNode) -> Option<Self> {
19189        if Self::can_cast(syntax.kind()) {
19190            Some(Self { syntax })
19191        } else {
19192            None
19193        }
19194    }
19195    #[inline]
19196    fn syntax(&self) -> &SyntaxNode {
19197        &self.syntax
19198    }
19199}
19200impl AstNode for CreateEventTrigger {
19201    #[inline]
19202    fn can_cast(kind: SyntaxKind) -> bool {
19203        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19204    }
19205    #[inline]
19206    fn cast(syntax: SyntaxNode) -> Option<Self> {
19207        if Self::can_cast(syntax.kind()) {
19208            Some(Self { syntax })
19209        } else {
19210            None
19211        }
19212    }
19213    #[inline]
19214    fn syntax(&self) -> &SyntaxNode {
19215        &self.syntax
19216    }
19217}
19218impl AstNode for CreateExtension {
19219    #[inline]
19220    fn can_cast(kind: SyntaxKind) -> bool {
19221        kind == SyntaxKind::CREATE_EXTENSION
19222    }
19223    #[inline]
19224    fn cast(syntax: SyntaxNode) -> Option<Self> {
19225        if Self::can_cast(syntax.kind()) {
19226            Some(Self { syntax })
19227        } else {
19228            None
19229        }
19230    }
19231    #[inline]
19232    fn syntax(&self) -> &SyntaxNode {
19233        &self.syntax
19234    }
19235}
19236impl AstNode for CreateForeignDataWrapper {
19237    #[inline]
19238    fn can_cast(kind: SyntaxKind) -> bool {
19239        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19240    }
19241    #[inline]
19242    fn cast(syntax: SyntaxNode) -> Option<Self> {
19243        if Self::can_cast(syntax.kind()) {
19244            Some(Self { syntax })
19245        } else {
19246            None
19247        }
19248    }
19249    #[inline]
19250    fn syntax(&self) -> &SyntaxNode {
19251        &self.syntax
19252    }
19253}
19254impl AstNode for CreateForeignTable {
19255    #[inline]
19256    fn can_cast(kind: SyntaxKind) -> bool {
19257        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19258    }
19259    #[inline]
19260    fn cast(syntax: SyntaxNode) -> Option<Self> {
19261        if Self::can_cast(syntax.kind()) {
19262            Some(Self { syntax })
19263        } else {
19264            None
19265        }
19266    }
19267    #[inline]
19268    fn syntax(&self) -> &SyntaxNode {
19269        &self.syntax
19270    }
19271}
19272impl AstNode for CreateFunction {
19273    #[inline]
19274    fn can_cast(kind: SyntaxKind) -> bool {
19275        kind == SyntaxKind::CREATE_FUNCTION
19276    }
19277    #[inline]
19278    fn cast(syntax: SyntaxNode) -> Option<Self> {
19279        if Self::can_cast(syntax.kind()) {
19280            Some(Self { syntax })
19281        } else {
19282            None
19283        }
19284    }
19285    #[inline]
19286    fn syntax(&self) -> &SyntaxNode {
19287        &self.syntax
19288    }
19289}
19290impl AstNode for CreateGroup {
19291    #[inline]
19292    fn can_cast(kind: SyntaxKind) -> bool {
19293        kind == SyntaxKind::CREATE_GROUP
19294    }
19295    #[inline]
19296    fn cast(syntax: SyntaxNode) -> Option<Self> {
19297        if Self::can_cast(syntax.kind()) {
19298            Some(Self { syntax })
19299        } else {
19300            None
19301        }
19302    }
19303    #[inline]
19304    fn syntax(&self) -> &SyntaxNode {
19305        &self.syntax
19306    }
19307}
19308impl AstNode for CreateIndex {
19309    #[inline]
19310    fn can_cast(kind: SyntaxKind) -> bool {
19311        kind == SyntaxKind::CREATE_INDEX
19312    }
19313    #[inline]
19314    fn cast(syntax: SyntaxNode) -> Option<Self> {
19315        if Self::can_cast(syntax.kind()) {
19316            Some(Self { syntax })
19317        } else {
19318            None
19319        }
19320    }
19321    #[inline]
19322    fn syntax(&self) -> &SyntaxNode {
19323        &self.syntax
19324    }
19325}
19326impl AstNode for CreateLanguage {
19327    #[inline]
19328    fn can_cast(kind: SyntaxKind) -> bool {
19329        kind == SyntaxKind::CREATE_LANGUAGE
19330    }
19331    #[inline]
19332    fn cast(syntax: SyntaxNode) -> Option<Self> {
19333        if Self::can_cast(syntax.kind()) {
19334            Some(Self { syntax })
19335        } else {
19336            None
19337        }
19338    }
19339    #[inline]
19340    fn syntax(&self) -> &SyntaxNode {
19341        &self.syntax
19342    }
19343}
19344impl AstNode for CreateMaterializedView {
19345    #[inline]
19346    fn can_cast(kind: SyntaxKind) -> bool {
19347        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19348    }
19349    #[inline]
19350    fn cast(syntax: SyntaxNode) -> Option<Self> {
19351        if Self::can_cast(syntax.kind()) {
19352            Some(Self { syntax })
19353        } else {
19354            None
19355        }
19356    }
19357    #[inline]
19358    fn syntax(&self) -> &SyntaxNode {
19359        &self.syntax
19360    }
19361}
19362impl AstNode for CreateOperator {
19363    #[inline]
19364    fn can_cast(kind: SyntaxKind) -> bool {
19365        kind == SyntaxKind::CREATE_OPERATOR
19366    }
19367    #[inline]
19368    fn cast(syntax: SyntaxNode) -> Option<Self> {
19369        if Self::can_cast(syntax.kind()) {
19370            Some(Self { syntax })
19371        } else {
19372            None
19373        }
19374    }
19375    #[inline]
19376    fn syntax(&self) -> &SyntaxNode {
19377        &self.syntax
19378    }
19379}
19380impl AstNode for CreateOperatorClass {
19381    #[inline]
19382    fn can_cast(kind: SyntaxKind) -> bool {
19383        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19384    }
19385    #[inline]
19386    fn cast(syntax: SyntaxNode) -> Option<Self> {
19387        if Self::can_cast(syntax.kind()) {
19388            Some(Self { syntax })
19389        } else {
19390            None
19391        }
19392    }
19393    #[inline]
19394    fn syntax(&self) -> &SyntaxNode {
19395        &self.syntax
19396    }
19397}
19398impl AstNode for CreateOperatorFamily {
19399    #[inline]
19400    fn can_cast(kind: SyntaxKind) -> bool {
19401        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19402    }
19403    #[inline]
19404    fn cast(syntax: SyntaxNode) -> Option<Self> {
19405        if Self::can_cast(syntax.kind()) {
19406            Some(Self { syntax })
19407        } else {
19408            None
19409        }
19410    }
19411    #[inline]
19412    fn syntax(&self) -> &SyntaxNode {
19413        &self.syntax
19414    }
19415}
19416impl AstNode for CreatePolicy {
19417    #[inline]
19418    fn can_cast(kind: SyntaxKind) -> bool {
19419        kind == SyntaxKind::CREATE_POLICY
19420    }
19421    #[inline]
19422    fn cast(syntax: SyntaxNode) -> Option<Self> {
19423        if Self::can_cast(syntax.kind()) {
19424            Some(Self { syntax })
19425        } else {
19426            None
19427        }
19428    }
19429    #[inline]
19430    fn syntax(&self) -> &SyntaxNode {
19431        &self.syntax
19432    }
19433}
19434impl AstNode for CreateProcedure {
19435    #[inline]
19436    fn can_cast(kind: SyntaxKind) -> bool {
19437        kind == SyntaxKind::CREATE_PROCEDURE
19438    }
19439    #[inline]
19440    fn cast(syntax: SyntaxNode) -> Option<Self> {
19441        if Self::can_cast(syntax.kind()) {
19442            Some(Self { syntax })
19443        } else {
19444            None
19445        }
19446    }
19447    #[inline]
19448    fn syntax(&self) -> &SyntaxNode {
19449        &self.syntax
19450    }
19451}
19452impl AstNode for CreatePublication {
19453    #[inline]
19454    fn can_cast(kind: SyntaxKind) -> bool {
19455        kind == SyntaxKind::CREATE_PUBLICATION
19456    }
19457    #[inline]
19458    fn cast(syntax: SyntaxNode) -> Option<Self> {
19459        if Self::can_cast(syntax.kind()) {
19460            Some(Self { syntax })
19461        } else {
19462            None
19463        }
19464    }
19465    #[inline]
19466    fn syntax(&self) -> &SyntaxNode {
19467        &self.syntax
19468    }
19469}
19470impl AstNode for CreateRole {
19471    #[inline]
19472    fn can_cast(kind: SyntaxKind) -> bool {
19473        kind == SyntaxKind::CREATE_ROLE
19474    }
19475    #[inline]
19476    fn cast(syntax: SyntaxNode) -> Option<Self> {
19477        if Self::can_cast(syntax.kind()) {
19478            Some(Self { syntax })
19479        } else {
19480            None
19481        }
19482    }
19483    #[inline]
19484    fn syntax(&self) -> &SyntaxNode {
19485        &self.syntax
19486    }
19487}
19488impl AstNode for CreateRule {
19489    #[inline]
19490    fn can_cast(kind: SyntaxKind) -> bool {
19491        kind == SyntaxKind::CREATE_RULE
19492    }
19493    #[inline]
19494    fn cast(syntax: SyntaxNode) -> Option<Self> {
19495        if Self::can_cast(syntax.kind()) {
19496            Some(Self { syntax })
19497        } else {
19498            None
19499        }
19500    }
19501    #[inline]
19502    fn syntax(&self) -> &SyntaxNode {
19503        &self.syntax
19504    }
19505}
19506impl AstNode for CreateSchema {
19507    #[inline]
19508    fn can_cast(kind: SyntaxKind) -> bool {
19509        kind == SyntaxKind::CREATE_SCHEMA
19510    }
19511    #[inline]
19512    fn cast(syntax: SyntaxNode) -> Option<Self> {
19513        if Self::can_cast(syntax.kind()) {
19514            Some(Self { syntax })
19515        } else {
19516            None
19517        }
19518    }
19519    #[inline]
19520    fn syntax(&self) -> &SyntaxNode {
19521        &self.syntax
19522    }
19523}
19524impl AstNode for CreateSequence {
19525    #[inline]
19526    fn can_cast(kind: SyntaxKind) -> bool {
19527        kind == SyntaxKind::CREATE_SEQUENCE
19528    }
19529    #[inline]
19530    fn cast(syntax: SyntaxNode) -> Option<Self> {
19531        if Self::can_cast(syntax.kind()) {
19532            Some(Self { syntax })
19533        } else {
19534            None
19535        }
19536    }
19537    #[inline]
19538    fn syntax(&self) -> &SyntaxNode {
19539        &self.syntax
19540    }
19541}
19542impl AstNode for CreateServer {
19543    #[inline]
19544    fn can_cast(kind: SyntaxKind) -> bool {
19545        kind == SyntaxKind::CREATE_SERVER
19546    }
19547    #[inline]
19548    fn cast(syntax: SyntaxNode) -> Option<Self> {
19549        if Self::can_cast(syntax.kind()) {
19550            Some(Self { syntax })
19551        } else {
19552            None
19553        }
19554    }
19555    #[inline]
19556    fn syntax(&self) -> &SyntaxNode {
19557        &self.syntax
19558    }
19559}
19560impl AstNode for CreateStatistics {
19561    #[inline]
19562    fn can_cast(kind: SyntaxKind) -> bool {
19563        kind == SyntaxKind::CREATE_STATISTICS
19564    }
19565    #[inline]
19566    fn cast(syntax: SyntaxNode) -> Option<Self> {
19567        if Self::can_cast(syntax.kind()) {
19568            Some(Self { syntax })
19569        } else {
19570            None
19571        }
19572    }
19573    #[inline]
19574    fn syntax(&self) -> &SyntaxNode {
19575        &self.syntax
19576    }
19577}
19578impl AstNode for CreateSubscription {
19579    #[inline]
19580    fn can_cast(kind: SyntaxKind) -> bool {
19581        kind == SyntaxKind::CREATE_SUBSCRIPTION
19582    }
19583    #[inline]
19584    fn cast(syntax: SyntaxNode) -> Option<Self> {
19585        if Self::can_cast(syntax.kind()) {
19586            Some(Self { syntax })
19587        } else {
19588            None
19589        }
19590    }
19591    #[inline]
19592    fn syntax(&self) -> &SyntaxNode {
19593        &self.syntax
19594    }
19595}
19596impl AstNode for CreateTable {
19597    #[inline]
19598    fn can_cast(kind: SyntaxKind) -> bool {
19599        kind == SyntaxKind::CREATE_TABLE
19600    }
19601    #[inline]
19602    fn cast(syntax: SyntaxNode) -> Option<Self> {
19603        if Self::can_cast(syntax.kind()) {
19604            Some(Self { syntax })
19605        } else {
19606            None
19607        }
19608    }
19609    #[inline]
19610    fn syntax(&self) -> &SyntaxNode {
19611        &self.syntax
19612    }
19613}
19614impl AstNode for CreateTableAs {
19615    #[inline]
19616    fn can_cast(kind: SyntaxKind) -> bool {
19617        kind == SyntaxKind::CREATE_TABLE_AS
19618    }
19619    #[inline]
19620    fn cast(syntax: SyntaxNode) -> Option<Self> {
19621        if Self::can_cast(syntax.kind()) {
19622            Some(Self { syntax })
19623        } else {
19624            None
19625        }
19626    }
19627    #[inline]
19628    fn syntax(&self) -> &SyntaxNode {
19629        &self.syntax
19630    }
19631}
19632impl AstNode for CreateTablespace {
19633    #[inline]
19634    fn can_cast(kind: SyntaxKind) -> bool {
19635        kind == SyntaxKind::CREATE_TABLESPACE
19636    }
19637    #[inline]
19638    fn cast(syntax: SyntaxNode) -> Option<Self> {
19639        if Self::can_cast(syntax.kind()) {
19640            Some(Self { syntax })
19641        } else {
19642            None
19643        }
19644    }
19645    #[inline]
19646    fn syntax(&self) -> &SyntaxNode {
19647        &self.syntax
19648    }
19649}
19650impl AstNode for CreateTextSearchConfiguration {
19651    #[inline]
19652    fn can_cast(kind: SyntaxKind) -> bool {
19653        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19654    }
19655    #[inline]
19656    fn cast(syntax: SyntaxNode) -> Option<Self> {
19657        if Self::can_cast(syntax.kind()) {
19658            Some(Self { syntax })
19659        } else {
19660            None
19661        }
19662    }
19663    #[inline]
19664    fn syntax(&self) -> &SyntaxNode {
19665        &self.syntax
19666    }
19667}
19668impl AstNode for CreateTextSearchDictionary {
19669    #[inline]
19670    fn can_cast(kind: SyntaxKind) -> bool {
19671        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19672    }
19673    #[inline]
19674    fn cast(syntax: SyntaxNode) -> Option<Self> {
19675        if Self::can_cast(syntax.kind()) {
19676            Some(Self { syntax })
19677        } else {
19678            None
19679        }
19680    }
19681    #[inline]
19682    fn syntax(&self) -> &SyntaxNode {
19683        &self.syntax
19684    }
19685}
19686impl AstNode for CreateTextSearchParser {
19687    #[inline]
19688    fn can_cast(kind: SyntaxKind) -> bool {
19689        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19690    }
19691    #[inline]
19692    fn cast(syntax: SyntaxNode) -> Option<Self> {
19693        if Self::can_cast(syntax.kind()) {
19694            Some(Self { syntax })
19695        } else {
19696            None
19697        }
19698    }
19699    #[inline]
19700    fn syntax(&self) -> &SyntaxNode {
19701        &self.syntax
19702    }
19703}
19704impl AstNode for CreateTextSearchTemplate {
19705    #[inline]
19706    fn can_cast(kind: SyntaxKind) -> bool {
19707        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19708    }
19709    #[inline]
19710    fn cast(syntax: SyntaxNode) -> Option<Self> {
19711        if Self::can_cast(syntax.kind()) {
19712            Some(Self { syntax })
19713        } else {
19714            None
19715        }
19716    }
19717    #[inline]
19718    fn syntax(&self) -> &SyntaxNode {
19719        &self.syntax
19720    }
19721}
19722impl AstNode for CreateTransform {
19723    #[inline]
19724    fn can_cast(kind: SyntaxKind) -> bool {
19725        kind == SyntaxKind::CREATE_TRANSFORM
19726    }
19727    #[inline]
19728    fn cast(syntax: SyntaxNode) -> Option<Self> {
19729        if Self::can_cast(syntax.kind()) {
19730            Some(Self { syntax })
19731        } else {
19732            None
19733        }
19734    }
19735    #[inline]
19736    fn syntax(&self) -> &SyntaxNode {
19737        &self.syntax
19738    }
19739}
19740impl AstNode for CreateTrigger {
19741    #[inline]
19742    fn can_cast(kind: SyntaxKind) -> bool {
19743        kind == SyntaxKind::CREATE_TRIGGER
19744    }
19745    #[inline]
19746    fn cast(syntax: SyntaxNode) -> Option<Self> {
19747        if Self::can_cast(syntax.kind()) {
19748            Some(Self { syntax })
19749        } else {
19750            None
19751        }
19752    }
19753    #[inline]
19754    fn syntax(&self) -> &SyntaxNode {
19755        &self.syntax
19756    }
19757}
19758impl AstNode for CreateType {
19759    #[inline]
19760    fn can_cast(kind: SyntaxKind) -> bool {
19761        kind == SyntaxKind::CREATE_TYPE
19762    }
19763    #[inline]
19764    fn cast(syntax: SyntaxNode) -> Option<Self> {
19765        if Self::can_cast(syntax.kind()) {
19766            Some(Self { syntax })
19767        } else {
19768            None
19769        }
19770    }
19771    #[inline]
19772    fn syntax(&self) -> &SyntaxNode {
19773        &self.syntax
19774    }
19775}
19776impl AstNode for CreateUser {
19777    #[inline]
19778    fn can_cast(kind: SyntaxKind) -> bool {
19779        kind == SyntaxKind::CREATE_USER
19780    }
19781    #[inline]
19782    fn cast(syntax: SyntaxNode) -> Option<Self> {
19783        if Self::can_cast(syntax.kind()) {
19784            Some(Self { syntax })
19785        } else {
19786            None
19787        }
19788    }
19789    #[inline]
19790    fn syntax(&self) -> &SyntaxNode {
19791        &self.syntax
19792    }
19793}
19794impl AstNode for CreateUserMapping {
19795    #[inline]
19796    fn can_cast(kind: SyntaxKind) -> bool {
19797        kind == SyntaxKind::CREATE_USER_MAPPING
19798    }
19799    #[inline]
19800    fn cast(syntax: SyntaxNode) -> Option<Self> {
19801        if Self::can_cast(syntax.kind()) {
19802            Some(Self { syntax })
19803        } else {
19804            None
19805        }
19806    }
19807    #[inline]
19808    fn syntax(&self) -> &SyntaxNode {
19809        &self.syntax
19810    }
19811}
19812impl AstNode for CreateView {
19813    #[inline]
19814    fn can_cast(kind: SyntaxKind) -> bool {
19815        kind == SyntaxKind::CREATE_VIEW
19816    }
19817    #[inline]
19818    fn cast(syntax: SyntaxNode) -> Option<Self> {
19819        if Self::can_cast(syntax.kind()) {
19820            Some(Self { syntax })
19821        } else {
19822            None
19823        }
19824    }
19825    #[inline]
19826    fn syntax(&self) -> &SyntaxNode {
19827        &self.syntax
19828    }
19829}
19830impl AstNode for CustomOp {
19831    #[inline]
19832    fn can_cast(kind: SyntaxKind) -> bool {
19833        kind == SyntaxKind::CUSTOM_OP
19834    }
19835    #[inline]
19836    fn cast(syntax: SyntaxNode) -> Option<Self> {
19837        if Self::can_cast(syntax.kind()) {
19838            Some(Self { syntax })
19839        } else {
19840            None
19841        }
19842    }
19843    #[inline]
19844    fn syntax(&self) -> &SyntaxNode {
19845        &self.syntax
19846    }
19847}
19848impl AstNode for Deallocate {
19849    #[inline]
19850    fn can_cast(kind: SyntaxKind) -> bool {
19851        kind == SyntaxKind::DEALLOCATE
19852    }
19853    #[inline]
19854    fn cast(syntax: SyntaxNode) -> Option<Self> {
19855        if Self::can_cast(syntax.kind()) {
19856            Some(Self { syntax })
19857        } else {
19858            None
19859        }
19860    }
19861    #[inline]
19862    fn syntax(&self) -> &SyntaxNode {
19863        &self.syntax
19864    }
19865}
19866impl AstNode for Declare {
19867    #[inline]
19868    fn can_cast(kind: SyntaxKind) -> bool {
19869        kind == SyntaxKind::DECLARE
19870    }
19871    #[inline]
19872    fn cast(syntax: SyntaxNode) -> Option<Self> {
19873        if Self::can_cast(syntax.kind()) {
19874            Some(Self { syntax })
19875        } else {
19876            None
19877        }
19878    }
19879    #[inline]
19880    fn syntax(&self) -> &SyntaxNode {
19881        &self.syntax
19882    }
19883}
19884impl AstNode for DefaultConstraint {
19885    #[inline]
19886    fn can_cast(kind: SyntaxKind) -> bool {
19887        kind == SyntaxKind::DEFAULT_CONSTRAINT
19888    }
19889    #[inline]
19890    fn cast(syntax: SyntaxNode) -> Option<Self> {
19891        if Self::can_cast(syntax.kind()) {
19892            Some(Self { syntax })
19893        } else {
19894            None
19895        }
19896    }
19897    #[inline]
19898    fn syntax(&self) -> &SyntaxNode {
19899        &self.syntax
19900    }
19901}
19902impl AstNode for Deferrable {
19903    #[inline]
19904    fn can_cast(kind: SyntaxKind) -> bool {
19905        kind == SyntaxKind::DEFERRABLE
19906    }
19907    #[inline]
19908    fn cast(syntax: SyntaxNode) -> Option<Self> {
19909        if Self::can_cast(syntax.kind()) {
19910            Some(Self { syntax })
19911        } else {
19912            None
19913        }
19914    }
19915    #[inline]
19916    fn syntax(&self) -> &SyntaxNode {
19917        &self.syntax
19918    }
19919}
19920impl AstNode for DeferrableConstraintOption {
19921    #[inline]
19922    fn can_cast(kind: SyntaxKind) -> bool {
19923        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
19924    }
19925    #[inline]
19926    fn cast(syntax: SyntaxNode) -> Option<Self> {
19927        if Self::can_cast(syntax.kind()) {
19928            Some(Self { syntax })
19929        } else {
19930            None
19931        }
19932    }
19933    #[inline]
19934    fn syntax(&self) -> &SyntaxNode {
19935        &self.syntax
19936    }
19937}
19938impl AstNode for Delete {
19939    #[inline]
19940    fn can_cast(kind: SyntaxKind) -> bool {
19941        kind == SyntaxKind::DELETE
19942    }
19943    #[inline]
19944    fn cast(syntax: SyntaxNode) -> Option<Self> {
19945        if Self::can_cast(syntax.kind()) {
19946            Some(Self { syntax })
19947        } else {
19948            None
19949        }
19950    }
19951    #[inline]
19952    fn syntax(&self) -> &SyntaxNode {
19953        &self.syntax
19954    }
19955}
19956impl AstNode for DeleteRows {
19957    #[inline]
19958    fn can_cast(kind: SyntaxKind) -> bool {
19959        kind == SyntaxKind::DELETE_ROWS
19960    }
19961    #[inline]
19962    fn cast(syntax: SyntaxNode) -> Option<Self> {
19963        if Self::can_cast(syntax.kind()) {
19964            Some(Self { syntax })
19965        } else {
19966            None
19967        }
19968    }
19969    #[inline]
19970    fn syntax(&self) -> &SyntaxNode {
19971        &self.syntax
19972    }
19973}
19974impl AstNode for DependsOnExtension {
19975    #[inline]
19976    fn can_cast(kind: SyntaxKind) -> bool {
19977        kind == SyntaxKind::DEPENDS_ON_EXTENSION
19978    }
19979    #[inline]
19980    fn cast(syntax: SyntaxNode) -> Option<Self> {
19981        if Self::can_cast(syntax.kind()) {
19982            Some(Self { syntax })
19983        } else {
19984            None
19985        }
19986    }
19987    #[inline]
19988    fn syntax(&self) -> &SyntaxNode {
19989        &self.syntax
19990    }
19991}
19992impl AstNode for DetachPartition {
19993    #[inline]
19994    fn can_cast(kind: SyntaxKind) -> bool {
19995        kind == SyntaxKind::DETACH_PARTITION
19996    }
19997    #[inline]
19998    fn cast(syntax: SyntaxNode) -> Option<Self> {
19999        if Self::can_cast(syntax.kind()) {
20000            Some(Self { syntax })
20001        } else {
20002            None
20003        }
20004    }
20005    #[inline]
20006    fn syntax(&self) -> &SyntaxNode {
20007        &self.syntax
20008    }
20009}
20010impl AstNode for DisableRls {
20011    #[inline]
20012    fn can_cast(kind: SyntaxKind) -> bool {
20013        kind == SyntaxKind::DISABLE_RLS
20014    }
20015    #[inline]
20016    fn cast(syntax: SyntaxNode) -> Option<Self> {
20017        if Self::can_cast(syntax.kind()) {
20018            Some(Self { syntax })
20019        } else {
20020            None
20021        }
20022    }
20023    #[inline]
20024    fn syntax(&self) -> &SyntaxNode {
20025        &self.syntax
20026    }
20027}
20028impl AstNode for DisableRule {
20029    #[inline]
20030    fn can_cast(kind: SyntaxKind) -> bool {
20031        kind == SyntaxKind::DISABLE_RULE
20032    }
20033    #[inline]
20034    fn cast(syntax: SyntaxNode) -> Option<Self> {
20035        if Self::can_cast(syntax.kind()) {
20036            Some(Self { syntax })
20037        } else {
20038            None
20039        }
20040    }
20041    #[inline]
20042    fn syntax(&self) -> &SyntaxNode {
20043        &self.syntax
20044    }
20045}
20046impl AstNode for DisableTrigger {
20047    #[inline]
20048    fn can_cast(kind: SyntaxKind) -> bool {
20049        kind == SyntaxKind::DISABLE_TRIGGER
20050    }
20051    #[inline]
20052    fn cast(syntax: SyntaxNode) -> Option<Self> {
20053        if Self::can_cast(syntax.kind()) {
20054            Some(Self { syntax })
20055        } else {
20056            None
20057        }
20058    }
20059    #[inline]
20060    fn syntax(&self) -> &SyntaxNode {
20061        &self.syntax
20062    }
20063}
20064impl AstNode for Discard {
20065    #[inline]
20066    fn can_cast(kind: SyntaxKind) -> bool {
20067        kind == SyntaxKind::DISCARD
20068    }
20069    #[inline]
20070    fn cast(syntax: SyntaxNode) -> Option<Self> {
20071        if Self::can_cast(syntax.kind()) {
20072            Some(Self { syntax })
20073        } else {
20074            None
20075        }
20076    }
20077    #[inline]
20078    fn syntax(&self) -> &SyntaxNode {
20079        &self.syntax
20080    }
20081}
20082impl AstNode for DistinctClause {
20083    #[inline]
20084    fn can_cast(kind: SyntaxKind) -> bool {
20085        kind == SyntaxKind::DISTINCT_CLAUSE
20086    }
20087    #[inline]
20088    fn cast(syntax: SyntaxNode) -> Option<Self> {
20089        if Self::can_cast(syntax.kind()) {
20090            Some(Self { syntax })
20091        } else {
20092            None
20093        }
20094    }
20095    #[inline]
20096    fn syntax(&self) -> &SyntaxNode {
20097        &self.syntax
20098    }
20099}
20100impl AstNode for Do {
20101    #[inline]
20102    fn can_cast(kind: SyntaxKind) -> bool {
20103        kind == SyntaxKind::DO
20104    }
20105    #[inline]
20106    fn cast(syntax: SyntaxNode) -> Option<Self> {
20107        if Self::can_cast(syntax.kind()) {
20108            Some(Self { syntax })
20109        } else {
20110            None
20111        }
20112    }
20113    #[inline]
20114    fn syntax(&self) -> &SyntaxNode {
20115        &self.syntax
20116    }
20117}
20118impl AstNode for DoubleType {
20119    #[inline]
20120    fn can_cast(kind: SyntaxKind) -> bool {
20121        kind == SyntaxKind::DOUBLE_TYPE
20122    }
20123    #[inline]
20124    fn cast(syntax: SyntaxNode) -> Option<Self> {
20125        if Self::can_cast(syntax.kind()) {
20126            Some(Self { syntax })
20127        } else {
20128            None
20129        }
20130    }
20131    #[inline]
20132    fn syntax(&self) -> &SyntaxNode {
20133        &self.syntax
20134    }
20135}
20136impl AstNode for Drop {
20137    #[inline]
20138    fn can_cast(kind: SyntaxKind) -> bool {
20139        kind == SyntaxKind::DROP
20140    }
20141    #[inline]
20142    fn cast(syntax: SyntaxNode) -> Option<Self> {
20143        if Self::can_cast(syntax.kind()) {
20144            Some(Self { syntax })
20145        } else {
20146            None
20147        }
20148    }
20149    #[inline]
20150    fn syntax(&self) -> &SyntaxNode {
20151        &self.syntax
20152    }
20153}
20154impl AstNode for DropAccessMethod {
20155    #[inline]
20156    fn can_cast(kind: SyntaxKind) -> bool {
20157        kind == SyntaxKind::DROP_ACCESS_METHOD
20158    }
20159    #[inline]
20160    fn cast(syntax: SyntaxNode) -> Option<Self> {
20161        if Self::can_cast(syntax.kind()) {
20162            Some(Self { syntax })
20163        } else {
20164            None
20165        }
20166    }
20167    #[inline]
20168    fn syntax(&self) -> &SyntaxNode {
20169        &self.syntax
20170    }
20171}
20172impl AstNode for DropAggregate {
20173    #[inline]
20174    fn can_cast(kind: SyntaxKind) -> bool {
20175        kind == SyntaxKind::DROP_AGGREGATE
20176    }
20177    #[inline]
20178    fn cast(syntax: SyntaxNode) -> Option<Self> {
20179        if Self::can_cast(syntax.kind()) {
20180            Some(Self { syntax })
20181        } else {
20182            None
20183        }
20184    }
20185    #[inline]
20186    fn syntax(&self) -> &SyntaxNode {
20187        &self.syntax
20188    }
20189}
20190impl AstNode for DropCast {
20191    #[inline]
20192    fn can_cast(kind: SyntaxKind) -> bool {
20193        kind == SyntaxKind::DROP_CAST
20194    }
20195    #[inline]
20196    fn cast(syntax: SyntaxNode) -> Option<Self> {
20197        if Self::can_cast(syntax.kind()) {
20198            Some(Self { syntax })
20199        } else {
20200            None
20201        }
20202    }
20203    #[inline]
20204    fn syntax(&self) -> &SyntaxNode {
20205        &self.syntax
20206    }
20207}
20208impl AstNode for DropCollation {
20209    #[inline]
20210    fn can_cast(kind: SyntaxKind) -> bool {
20211        kind == SyntaxKind::DROP_COLLATION
20212    }
20213    #[inline]
20214    fn cast(syntax: SyntaxNode) -> Option<Self> {
20215        if Self::can_cast(syntax.kind()) {
20216            Some(Self { syntax })
20217        } else {
20218            None
20219        }
20220    }
20221    #[inline]
20222    fn syntax(&self) -> &SyntaxNode {
20223        &self.syntax
20224    }
20225}
20226impl AstNode for DropColumn {
20227    #[inline]
20228    fn can_cast(kind: SyntaxKind) -> bool {
20229        kind == SyntaxKind::DROP_COLUMN
20230    }
20231    #[inline]
20232    fn cast(syntax: SyntaxNode) -> Option<Self> {
20233        if Self::can_cast(syntax.kind()) {
20234            Some(Self { syntax })
20235        } else {
20236            None
20237        }
20238    }
20239    #[inline]
20240    fn syntax(&self) -> &SyntaxNode {
20241        &self.syntax
20242    }
20243}
20244impl AstNode for DropConstraint {
20245    #[inline]
20246    fn can_cast(kind: SyntaxKind) -> bool {
20247        kind == SyntaxKind::DROP_CONSTRAINT
20248    }
20249    #[inline]
20250    fn cast(syntax: SyntaxNode) -> Option<Self> {
20251        if Self::can_cast(syntax.kind()) {
20252            Some(Self { syntax })
20253        } else {
20254            None
20255        }
20256    }
20257    #[inline]
20258    fn syntax(&self) -> &SyntaxNode {
20259        &self.syntax
20260    }
20261}
20262impl AstNode for DropConversion {
20263    #[inline]
20264    fn can_cast(kind: SyntaxKind) -> bool {
20265        kind == SyntaxKind::DROP_CONVERSION
20266    }
20267    #[inline]
20268    fn cast(syntax: SyntaxNode) -> Option<Self> {
20269        if Self::can_cast(syntax.kind()) {
20270            Some(Self { syntax })
20271        } else {
20272            None
20273        }
20274    }
20275    #[inline]
20276    fn syntax(&self) -> &SyntaxNode {
20277        &self.syntax
20278    }
20279}
20280impl AstNode for DropDatabase {
20281    #[inline]
20282    fn can_cast(kind: SyntaxKind) -> bool {
20283        kind == SyntaxKind::DROP_DATABASE
20284    }
20285    #[inline]
20286    fn cast(syntax: SyntaxNode) -> Option<Self> {
20287        if Self::can_cast(syntax.kind()) {
20288            Some(Self { syntax })
20289        } else {
20290            None
20291        }
20292    }
20293    #[inline]
20294    fn syntax(&self) -> &SyntaxNode {
20295        &self.syntax
20296    }
20297}
20298impl AstNode for DropDefault {
20299    #[inline]
20300    fn can_cast(kind: SyntaxKind) -> bool {
20301        kind == SyntaxKind::DROP_DEFAULT
20302    }
20303    #[inline]
20304    fn cast(syntax: SyntaxNode) -> Option<Self> {
20305        if Self::can_cast(syntax.kind()) {
20306            Some(Self { syntax })
20307        } else {
20308            None
20309        }
20310    }
20311    #[inline]
20312    fn syntax(&self) -> &SyntaxNode {
20313        &self.syntax
20314    }
20315}
20316impl AstNode for DropDomain {
20317    #[inline]
20318    fn can_cast(kind: SyntaxKind) -> bool {
20319        kind == SyntaxKind::DROP_DOMAIN
20320    }
20321    #[inline]
20322    fn cast(syntax: SyntaxNode) -> Option<Self> {
20323        if Self::can_cast(syntax.kind()) {
20324            Some(Self { syntax })
20325        } else {
20326            None
20327        }
20328    }
20329    #[inline]
20330    fn syntax(&self) -> &SyntaxNode {
20331        &self.syntax
20332    }
20333}
20334impl AstNode for DropEventTrigger {
20335    #[inline]
20336    fn can_cast(kind: SyntaxKind) -> bool {
20337        kind == SyntaxKind::DROP_EVENT_TRIGGER
20338    }
20339    #[inline]
20340    fn cast(syntax: SyntaxNode) -> Option<Self> {
20341        if Self::can_cast(syntax.kind()) {
20342            Some(Self { syntax })
20343        } else {
20344            None
20345        }
20346    }
20347    #[inline]
20348    fn syntax(&self) -> &SyntaxNode {
20349        &self.syntax
20350    }
20351}
20352impl AstNode for DropExpression {
20353    #[inline]
20354    fn can_cast(kind: SyntaxKind) -> bool {
20355        kind == SyntaxKind::DROP_EXPRESSION
20356    }
20357    #[inline]
20358    fn cast(syntax: SyntaxNode) -> Option<Self> {
20359        if Self::can_cast(syntax.kind()) {
20360            Some(Self { syntax })
20361        } else {
20362            None
20363        }
20364    }
20365    #[inline]
20366    fn syntax(&self) -> &SyntaxNode {
20367        &self.syntax
20368    }
20369}
20370impl AstNode for DropExtension {
20371    #[inline]
20372    fn can_cast(kind: SyntaxKind) -> bool {
20373        kind == SyntaxKind::DROP_EXTENSION
20374    }
20375    #[inline]
20376    fn cast(syntax: SyntaxNode) -> Option<Self> {
20377        if Self::can_cast(syntax.kind()) {
20378            Some(Self { syntax })
20379        } else {
20380            None
20381        }
20382    }
20383    #[inline]
20384    fn syntax(&self) -> &SyntaxNode {
20385        &self.syntax
20386    }
20387}
20388impl AstNode for DropForeignDataWrapper {
20389    #[inline]
20390    fn can_cast(kind: SyntaxKind) -> bool {
20391        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20392    }
20393    #[inline]
20394    fn cast(syntax: SyntaxNode) -> Option<Self> {
20395        if Self::can_cast(syntax.kind()) {
20396            Some(Self { syntax })
20397        } else {
20398            None
20399        }
20400    }
20401    #[inline]
20402    fn syntax(&self) -> &SyntaxNode {
20403        &self.syntax
20404    }
20405}
20406impl AstNode for DropForeignTable {
20407    #[inline]
20408    fn can_cast(kind: SyntaxKind) -> bool {
20409        kind == SyntaxKind::DROP_FOREIGN_TABLE
20410    }
20411    #[inline]
20412    fn cast(syntax: SyntaxNode) -> Option<Self> {
20413        if Self::can_cast(syntax.kind()) {
20414            Some(Self { syntax })
20415        } else {
20416            None
20417        }
20418    }
20419    #[inline]
20420    fn syntax(&self) -> &SyntaxNode {
20421        &self.syntax
20422    }
20423}
20424impl AstNode for DropFunction {
20425    #[inline]
20426    fn can_cast(kind: SyntaxKind) -> bool {
20427        kind == SyntaxKind::DROP_FUNCTION
20428    }
20429    #[inline]
20430    fn cast(syntax: SyntaxNode) -> Option<Self> {
20431        if Self::can_cast(syntax.kind()) {
20432            Some(Self { syntax })
20433        } else {
20434            None
20435        }
20436    }
20437    #[inline]
20438    fn syntax(&self) -> &SyntaxNode {
20439        &self.syntax
20440    }
20441}
20442impl AstNode for DropGroup {
20443    #[inline]
20444    fn can_cast(kind: SyntaxKind) -> bool {
20445        kind == SyntaxKind::DROP_GROUP
20446    }
20447    #[inline]
20448    fn cast(syntax: SyntaxNode) -> Option<Self> {
20449        if Self::can_cast(syntax.kind()) {
20450            Some(Self { syntax })
20451        } else {
20452            None
20453        }
20454    }
20455    #[inline]
20456    fn syntax(&self) -> &SyntaxNode {
20457        &self.syntax
20458    }
20459}
20460impl AstNode for DropIdentity {
20461    #[inline]
20462    fn can_cast(kind: SyntaxKind) -> bool {
20463        kind == SyntaxKind::DROP_IDENTITY
20464    }
20465    #[inline]
20466    fn cast(syntax: SyntaxNode) -> Option<Self> {
20467        if Self::can_cast(syntax.kind()) {
20468            Some(Self { syntax })
20469        } else {
20470            None
20471        }
20472    }
20473    #[inline]
20474    fn syntax(&self) -> &SyntaxNode {
20475        &self.syntax
20476    }
20477}
20478impl AstNode for DropIndex {
20479    #[inline]
20480    fn can_cast(kind: SyntaxKind) -> bool {
20481        kind == SyntaxKind::DROP_INDEX
20482    }
20483    #[inline]
20484    fn cast(syntax: SyntaxNode) -> Option<Self> {
20485        if Self::can_cast(syntax.kind()) {
20486            Some(Self { syntax })
20487        } else {
20488            None
20489        }
20490    }
20491    #[inline]
20492    fn syntax(&self) -> &SyntaxNode {
20493        &self.syntax
20494    }
20495}
20496impl AstNode for DropLanguage {
20497    #[inline]
20498    fn can_cast(kind: SyntaxKind) -> bool {
20499        kind == SyntaxKind::DROP_LANGUAGE
20500    }
20501    #[inline]
20502    fn cast(syntax: SyntaxNode) -> Option<Self> {
20503        if Self::can_cast(syntax.kind()) {
20504            Some(Self { syntax })
20505        } else {
20506            None
20507        }
20508    }
20509    #[inline]
20510    fn syntax(&self) -> &SyntaxNode {
20511        &self.syntax
20512    }
20513}
20514impl AstNode for DropMaterializedView {
20515    #[inline]
20516    fn can_cast(kind: SyntaxKind) -> bool {
20517        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20518    }
20519    #[inline]
20520    fn cast(syntax: SyntaxNode) -> Option<Self> {
20521        if Self::can_cast(syntax.kind()) {
20522            Some(Self { syntax })
20523        } else {
20524            None
20525        }
20526    }
20527    #[inline]
20528    fn syntax(&self) -> &SyntaxNode {
20529        &self.syntax
20530    }
20531}
20532impl AstNode for DropNotNull {
20533    #[inline]
20534    fn can_cast(kind: SyntaxKind) -> bool {
20535        kind == SyntaxKind::DROP_NOT_NULL
20536    }
20537    #[inline]
20538    fn cast(syntax: SyntaxNode) -> Option<Self> {
20539        if Self::can_cast(syntax.kind()) {
20540            Some(Self { syntax })
20541        } else {
20542            None
20543        }
20544    }
20545    #[inline]
20546    fn syntax(&self) -> &SyntaxNode {
20547        &self.syntax
20548    }
20549}
20550impl AstNode for DropOpClassOption {
20551    #[inline]
20552    fn can_cast(kind: SyntaxKind) -> bool {
20553        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20554    }
20555    #[inline]
20556    fn cast(syntax: SyntaxNode) -> Option<Self> {
20557        if Self::can_cast(syntax.kind()) {
20558            Some(Self { syntax })
20559        } else {
20560            None
20561        }
20562    }
20563    #[inline]
20564    fn syntax(&self) -> &SyntaxNode {
20565        &self.syntax
20566    }
20567}
20568impl AstNode for DropOpClassOptionList {
20569    #[inline]
20570    fn can_cast(kind: SyntaxKind) -> bool {
20571        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20572    }
20573    #[inline]
20574    fn cast(syntax: SyntaxNode) -> Option<Self> {
20575        if Self::can_cast(syntax.kind()) {
20576            Some(Self { syntax })
20577        } else {
20578            None
20579        }
20580    }
20581    #[inline]
20582    fn syntax(&self) -> &SyntaxNode {
20583        &self.syntax
20584    }
20585}
20586impl AstNode for DropOpClassOptions {
20587    #[inline]
20588    fn can_cast(kind: SyntaxKind) -> bool {
20589        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20590    }
20591    #[inline]
20592    fn cast(syntax: SyntaxNode) -> Option<Self> {
20593        if Self::can_cast(syntax.kind()) {
20594            Some(Self { syntax })
20595        } else {
20596            None
20597        }
20598    }
20599    #[inline]
20600    fn syntax(&self) -> &SyntaxNode {
20601        &self.syntax
20602    }
20603}
20604impl AstNode for DropOperator {
20605    #[inline]
20606    fn can_cast(kind: SyntaxKind) -> bool {
20607        kind == SyntaxKind::DROP_OPERATOR
20608    }
20609    #[inline]
20610    fn cast(syntax: SyntaxNode) -> Option<Self> {
20611        if Self::can_cast(syntax.kind()) {
20612            Some(Self { syntax })
20613        } else {
20614            None
20615        }
20616    }
20617    #[inline]
20618    fn syntax(&self) -> &SyntaxNode {
20619        &self.syntax
20620    }
20621}
20622impl AstNode for DropOperatorClass {
20623    #[inline]
20624    fn can_cast(kind: SyntaxKind) -> bool {
20625        kind == SyntaxKind::DROP_OPERATOR_CLASS
20626    }
20627    #[inline]
20628    fn cast(syntax: SyntaxNode) -> Option<Self> {
20629        if Self::can_cast(syntax.kind()) {
20630            Some(Self { syntax })
20631        } else {
20632            None
20633        }
20634    }
20635    #[inline]
20636    fn syntax(&self) -> &SyntaxNode {
20637        &self.syntax
20638    }
20639}
20640impl AstNode for DropOperatorFamily {
20641    #[inline]
20642    fn can_cast(kind: SyntaxKind) -> bool {
20643        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20644    }
20645    #[inline]
20646    fn cast(syntax: SyntaxNode) -> Option<Self> {
20647        if Self::can_cast(syntax.kind()) {
20648            Some(Self { syntax })
20649        } else {
20650            None
20651        }
20652    }
20653    #[inline]
20654    fn syntax(&self) -> &SyntaxNode {
20655        &self.syntax
20656    }
20657}
20658impl AstNode for DropOwned {
20659    #[inline]
20660    fn can_cast(kind: SyntaxKind) -> bool {
20661        kind == SyntaxKind::DROP_OWNED
20662    }
20663    #[inline]
20664    fn cast(syntax: SyntaxNode) -> Option<Self> {
20665        if Self::can_cast(syntax.kind()) {
20666            Some(Self { syntax })
20667        } else {
20668            None
20669        }
20670    }
20671    #[inline]
20672    fn syntax(&self) -> &SyntaxNode {
20673        &self.syntax
20674    }
20675}
20676impl AstNode for DropPolicy {
20677    #[inline]
20678    fn can_cast(kind: SyntaxKind) -> bool {
20679        kind == SyntaxKind::DROP_POLICY
20680    }
20681    #[inline]
20682    fn cast(syntax: SyntaxNode) -> Option<Self> {
20683        if Self::can_cast(syntax.kind()) {
20684            Some(Self { syntax })
20685        } else {
20686            None
20687        }
20688    }
20689    #[inline]
20690    fn syntax(&self) -> &SyntaxNode {
20691        &self.syntax
20692    }
20693}
20694impl AstNode for DropProcedure {
20695    #[inline]
20696    fn can_cast(kind: SyntaxKind) -> bool {
20697        kind == SyntaxKind::DROP_PROCEDURE
20698    }
20699    #[inline]
20700    fn cast(syntax: SyntaxNode) -> Option<Self> {
20701        if Self::can_cast(syntax.kind()) {
20702            Some(Self { syntax })
20703        } else {
20704            None
20705        }
20706    }
20707    #[inline]
20708    fn syntax(&self) -> &SyntaxNode {
20709        &self.syntax
20710    }
20711}
20712impl AstNode for DropPublication {
20713    #[inline]
20714    fn can_cast(kind: SyntaxKind) -> bool {
20715        kind == SyntaxKind::DROP_PUBLICATION
20716    }
20717    #[inline]
20718    fn cast(syntax: SyntaxNode) -> Option<Self> {
20719        if Self::can_cast(syntax.kind()) {
20720            Some(Self { syntax })
20721        } else {
20722            None
20723        }
20724    }
20725    #[inline]
20726    fn syntax(&self) -> &SyntaxNode {
20727        &self.syntax
20728    }
20729}
20730impl AstNode for DropRole {
20731    #[inline]
20732    fn can_cast(kind: SyntaxKind) -> bool {
20733        kind == SyntaxKind::DROP_ROLE
20734    }
20735    #[inline]
20736    fn cast(syntax: SyntaxNode) -> Option<Self> {
20737        if Self::can_cast(syntax.kind()) {
20738            Some(Self { syntax })
20739        } else {
20740            None
20741        }
20742    }
20743    #[inline]
20744    fn syntax(&self) -> &SyntaxNode {
20745        &self.syntax
20746    }
20747}
20748impl AstNode for DropRoutine {
20749    #[inline]
20750    fn can_cast(kind: SyntaxKind) -> bool {
20751        kind == SyntaxKind::DROP_ROUTINE
20752    }
20753    #[inline]
20754    fn cast(syntax: SyntaxNode) -> Option<Self> {
20755        if Self::can_cast(syntax.kind()) {
20756            Some(Self { syntax })
20757        } else {
20758            None
20759        }
20760    }
20761    #[inline]
20762    fn syntax(&self) -> &SyntaxNode {
20763        &self.syntax
20764    }
20765}
20766impl AstNode for DropRule {
20767    #[inline]
20768    fn can_cast(kind: SyntaxKind) -> bool {
20769        kind == SyntaxKind::DROP_RULE
20770    }
20771    #[inline]
20772    fn cast(syntax: SyntaxNode) -> Option<Self> {
20773        if Self::can_cast(syntax.kind()) {
20774            Some(Self { syntax })
20775        } else {
20776            None
20777        }
20778    }
20779    #[inline]
20780    fn syntax(&self) -> &SyntaxNode {
20781        &self.syntax
20782    }
20783}
20784impl AstNode for DropSchema {
20785    #[inline]
20786    fn can_cast(kind: SyntaxKind) -> bool {
20787        kind == SyntaxKind::DROP_SCHEMA
20788    }
20789    #[inline]
20790    fn cast(syntax: SyntaxNode) -> Option<Self> {
20791        if Self::can_cast(syntax.kind()) {
20792            Some(Self { syntax })
20793        } else {
20794            None
20795        }
20796    }
20797    #[inline]
20798    fn syntax(&self) -> &SyntaxNode {
20799        &self.syntax
20800    }
20801}
20802impl AstNode for DropSequence {
20803    #[inline]
20804    fn can_cast(kind: SyntaxKind) -> bool {
20805        kind == SyntaxKind::DROP_SEQUENCE
20806    }
20807    #[inline]
20808    fn cast(syntax: SyntaxNode) -> Option<Self> {
20809        if Self::can_cast(syntax.kind()) {
20810            Some(Self { syntax })
20811        } else {
20812            None
20813        }
20814    }
20815    #[inline]
20816    fn syntax(&self) -> &SyntaxNode {
20817        &self.syntax
20818    }
20819}
20820impl AstNode for DropServer {
20821    #[inline]
20822    fn can_cast(kind: SyntaxKind) -> bool {
20823        kind == SyntaxKind::DROP_SERVER
20824    }
20825    #[inline]
20826    fn cast(syntax: SyntaxNode) -> Option<Self> {
20827        if Self::can_cast(syntax.kind()) {
20828            Some(Self { syntax })
20829        } else {
20830            None
20831        }
20832    }
20833    #[inline]
20834    fn syntax(&self) -> &SyntaxNode {
20835        &self.syntax
20836    }
20837}
20838impl AstNode for DropStatistics {
20839    #[inline]
20840    fn can_cast(kind: SyntaxKind) -> bool {
20841        kind == SyntaxKind::DROP_STATISTICS
20842    }
20843    #[inline]
20844    fn cast(syntax: SyntaxNode) -> Option<Self> {
20845        if Self::can_cast(syntax.kind()) {
20846            Some(Self { syntax })
20847        } else {
20848            None
20849        }
20850    }
20851    #[inline]
20852    fn syntax(&self) -> &SyntaxNode {
20853        &self.syntax
20854    }
20855}
20856impl AstNode for DropSubscription {
20857    #[inline]
20858    fn can_cast(kind: SyntaxKind) -> bool {
20859        kind == SyntaxKind::DROP_SUBSCRIPTION
20860    }
20861    #[inline]
20862    fn cast(syntax: SyntaxNode) -> Option<Self> {
20863        if Self::can_cast(syntax.kind()) {
20864            Some(Self { syntax })
20865        } else {
20866            None
20867        }
20868    }
20869    #[inline]
20870    fn syntax(&self) -> &SyntaxNode {
20871        &self.syntax
20872    }
20873}
20874impl AstNode for DropTable {
20875    #[inline]
20876    fn can_cast(kind: SyntaxKind) -> bool {
20877        kind == SyntaxKind::DROP_TABLE
20878    }
20879    #[inline]
20880    fn cast(syntax: SyntaxNode) -> Option<Self> {
20881        if Self::can_cast(syntax.kind()) {
20882            Some(Self { syntax })
20883        } else {
20884            None
20885        }
20886    }
20887    #[inline]
20888    fn syntax(&self) -> &SyntaxNode {
20889        &self.syntax
20890    }
20891}
20892impl AstNode for DropTablespace {
20893    #[inline]
20894    fn can_cast(kind: SyntaxKind) -> bool {
20895        kind == SyntaxKind::DROP_TABLESPACE
20896    }
20897    #[inline]
20898    fn cast(syntax: SyntaxNode) -> Option<Self> {
20899        if Self::can_cast(syntax.kind()) {
20900            Some(Self { syntax })
20901        } else {
20902            None
20903        }
20904    }
20905    #[inline]
20906    fn syntax(&self) -> &SyntaxNode {
20907        &self.syntax
20908    }
20909}
20910impl AstNode for DropTextSearchConfig {
20911    #[inline]
20912    fn can_cast(kind: SyntaxKind) -> bool {
20913        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
20914    }
20915    #[inline]
20916    fn cast(syntax: SyntaxNode) -> Option<Self> {
20917        if Self::can_cast(syntax.kind()) {
20918            Some(Self { syntax })
20919        } else {
20920            None
20921        }
20922    }
20923    #[inline]
20924    fn syntax(&self) -> &SyntaxNode {
20925        &self.syntax
20926    }
20927}
20928impl AstNode for DropTextSearchDict {
20929    #[inline]
20930    fn can_cast(kind: SyntaxKind) -> bool {
20931        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
20932    }
20933    #[inline]
20934    fn cast(syntax: SyntaxNode) -> Option<Self> {
20935        if Self::can_cast(syntax.kind()) {
20936            Some(Self { syntax })
20937        } else {
20938            None
20939        }
20940    }
20941    #[inline]
20942    fn syntax(&self) -> &SyntaxNode {
20943        &self.syntax
20944    }
20945}
20946impl AstNode for DropTextSearchParser {
20947    #[inline]
20948    fn can_cast(kind: SyntaxKind) -> bool {
20949        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
20950    }
20951    #[inline]
20952    fn cast(syntax: SyntaxNode) -> Option<Self> {
20953        if Self::can_cast(syntax.kind()) {
20954            Some(Self { syntax })
20955        } else {
20956            None
20957        }
20958    }
20959    #[inline]
20960    fn syntax(&self) -> &SyntaxNode {
20961        &self.syntax
20962    }
20963}
20964impl AstNode for DropTextSearchTemplate {
20965    #[inline]
20966    fn can_cast(kind: SyntaxKind) -> bool {
20967        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
20968    }
20969    #[inline]
20970    fn cast(syntax: SyntaxNode) -> Option<Self> {
20971        if Self::can_cast(syntax.kind()) {
20972            Some(Self { syntax })
20973        } else {
20974            None
20975        }
20976    }
20977    #[inline]
20978    fn syntax(&self) -> &SyntaxNode {
20979        &self.syntax
20980    }
20981}
20982impl AstNode for DropTransform {
20983    #[inline]
20984    fn can_cast(kind: SyntaxKind) -> bool {
20985        kind == SyntaxKind::DROP_TRANSFORM
20986    }
20987    #[inline]
20988    fn cast(syntax: SyntaxNode) -> Option<Self> {
20989        if Self::can_cast(syntax.kind()) {
20990            Some(Self { syntax })
20991        } else {
20992            None
20993        }
20994    }
20995    #[inline]
20996    fn syntax(&self) -> &SyntaxNode {
20997        &self.syntax
20998    }
20999}
21000impl AstNode for DropTrigger {
21001    #[inline]
21002    fn can_cast(kind: SyntaxKind) -> bool {
21003        kind == SyntaxKind::DROP_TRIGGER
21004    }
21005    #[inline]
21006    fn cast(syntax: SyntaxNode) -> Option<Self> {
21007        if Self::can_cast(syntax.kind()) {
21008            Some(Self { syntax })
21009        } else {
21010            None
21011        }
21012    }
21013    #[inline]
21014    fn syntax(&self) -> &SyntaxNode {
21015        &self.syntax
21016    }
21017}
21018impl AstNode for DropType {
21019    #[inline]
21020    fn can_cast(kind: SyntaxKind) -> bool {
21021        kind == SyntaxKind::DROP_TYPE
21022    }
21023    #[inline]
21024    fn cast(syntax: SyntaxNode) -> Option<Self> {
21025        if Self::can_cast(syntax.kind()) {
21026            Some(Self { syntax })
21027        } else {
21028            None
21029        }
21030    }
21031    #[inline]
21032    fn syntax(&self) -> &SyntaxNode {
21033        &self.syntax
21034    }
21035}
21036impl AstNode for DropUser {
21037    #[inline]
21038    fn can_cast(kind: SyntaxKind) -> bool {
21039        kind == SyntaxKind::DROP_USER
21040    }
21041    #[inline]
21042    fn cast(syntax: SyntaxNode) -> Option<Self> {
21043        if Self::can_cast(syntax.kind()) {
21044            Some(Self { syntax })
21045        } else {
21046            None
21047        }
21048    }
21049    #[inline]
21050    fn syntax(&self) -> &SyntaxNode {
21051        &self.syntax
21052    }
21053}
21054impl AstNode for DropUserMapping {
21055    #[inline]
21056    fn can_cast(kind: SyntaxKind) -> bool {
21057        kind == SyntaxKind::DROP_USER_MAPPING
21058    }
21059    #[inline]
21060    fn cast(syntax: SyntaxNode) -> Option<Self> {
21061        if Self::can_cast(syntax.kind()) {
21062            Some(Self { syntax })
21063        } else {
21064            None
21065        }
21066    }
21067    #[inline]
21068    fn syntax(&self) -> &SyntaxNode {
21069        &self.syntax
21070    }
21071}
21072impl AstNode for DropView {
21073    #[inline]
21074    fn can_cast(kind: SyntaxKind) -> bool {
21075        kind == SyntaxKind::DROP_VIEW
21076    }
21077    #[inline]
21078    fn cast(syntax: SyntaxNode) -> Option<Self> {
21079        if Self::can_cast(syntax.kind()) {
21080            Some(Self { syntax })
21081        } else {
21082            None
21083        }
21084    }
21085    #[inline]
21086    fn syntax(&self) -> &SyntaxNode {
21087        &self.syntax
21088    }
21089}
21090impl AstNode for ElseClause {
21091    #[inline]
21092    fn can_cast(kind: SyntaxKind) -> bool {
21093        kind == SyntaxKind::ELSE_CLAUSE
21094    }
21095    #[inline]
21096    fn cast(syntax: SyntaxNode) -> Option<Self> {
21097        if Self::can_cast(syntax.kind()) {
21098            Some(Self { syntax })
21099        } else {
21100            None
21101        }
21102    }
21103    #[inline]
21104    fn syntax(&self) -> &SyntaxNode {
21105        &self.syntax
21106    }
21107}
21108impl AstNode for EnableAlwaysRule {
21109    #[inline]
21110    fn can_cast(kind: SyntaxKind) -> bool {
21111        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21112    }
21113    #[inline]
21114    fn cast(syntax: SyntaxNode) -> Option<Self> {
21115        if Self::can_cast(syntax.kind()) {
21116            Some(Self { syntax })
21117        } else {
21118            None
21119        }
21120    }
21121    #[inline]
21122    fn syntax(&self) -> &SyntaxNode {
21123        &self.syntax
21124    }
21125}
21126impl AstNode for EnableAlwaysTrigger {
21127    #[inline]
21128    fn can_cast(kind: SyntaxKind) -> bool {
21129        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21130    }
21131    #[inline]
21132    fn cast(syntax: SyntaxNode) -> Option<Self> {
21133        if Self::can_cast(syntax.kind()) {
21134            Some(Self { syntax })
21135        } else {
21136            None
21137        }
21138    }
21139    #[inline]
21140    fn syntax(&self) -> &SyntaxNode {
21141        &self.syntax
21142    }
21143}
21144impl AstNode for EnableReplicaRule {
21145    #[inline]
21146    fn can_cast(kind: SyntaxKind) -> bool {
21147        kind == SyntaxKind::ENABLE_REPLICA_RULE
21148    }
21149    #[inline]
21150    fn cast(syntax: SyntaxNode) -> Option<Self> {
21151        if Self::can_cast(syntax.kind()) {
21152            Some(Self { syntax })
21153        } else {
21154            None
21155        }
21156    }
21157    #[inline]
21158    fn syntax(&self) -> &SyntaxNode {
21159        &self.syntax
21160    }
21161}
21162impl AstNode for EnableReplicaTrigger {
21163    #[inline]
21164    fn can_cast(kind: SyntaxKind) -> bool {
21165        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21166    }
21167    #[inline]
21168    fn cast(syntax: SyntaxNode) -> Option<Self> {
21169        if Self::can_cast(syntax.kind()) {
21170            Some(Self { syntax })
21171        } else {
21172            None
21173        }
21174    }
21175    #[inline]
21176    fn syntax(&self) -> &SyntaxNode {
21177        &self.syntax
21178    }
21179}
21180impl AstNode for EnableRls {
21181    #[inline]
21182    fn can_cast(kind: SyntaxKind) -> bool {
21183        kind == SyntaxKind::ENABLE_RLS
21184    }
21185    #[inline]
21186    fn cast(syntax: SyntaxNode) -> Option<Self> {
21187        if Self::can_cast(syntax.kind()) {
21188            Some(Self { syntax })
21189        } else {
21190            None
21191        }
21192    }
21193    #[inline]
21194    fn syntax(&self) -> &SyntaxNode {
21195        &self.syntax
21196    }
21197}
21198impl AstNode for EnableRule {
21199    #[inline]
21200    fn can_cast(kind: SyntaxKind) -> bool {
21201        kind == SyntaxKind::ENABLE_RULE
21202    }
21203    #[inline]
21204    fn cast(syntax: SyntaxNode) -> Option<Self> {
21205        if Self::can_cast(syntax.kind()) {
21206            Some(Self { syntax })
21207        } else {
21208            None
21209        }
21210    }
21211    #[inline]
21212    fn syntax(&self) -> &SyntaxNode {
21213        &self.syntax
21214    }
21215}
21216impl AstNode for EnableTrigger {
21217    #[inline]
21218    fn can_cast(kind: SyntaxKind) -> bool {
21219        kind == SyntaxKind::ENABLE_TRIGGER
21220    }
21221    #[inline]
21222    fn cast(syntax: SyntaxNode) -> Option<Self> {
21223        if Self::can_cast(syntax.kind()) {
21224            Some(Self { syntax })
21225        } else {
21226            None
21227        }
21228    }
21229    #[inline]
21230    fn syntax(&self) -> &SyntaxNode {
21231        &self.syntax
21232    }
21233}
21234impl AstNode for Enforced {
21235    #[inline]
21236    fn can_cast(kind: SyntaxKind) -> bool {
21237        kind == SyntaxKind::ENFORCED
21238    }
21239    #[inline]
21240    fn cast(syntax: SyntaxNode) -> Option<Self> {
21241        if Self::can_cast(syntax.kind()) {
21242            Some(Self { syntax })
21243        } else {
21244            None
21245        }
21246    }
21247    #[inline]
21248    fn syntax(&self) -> &SyntaxNode {
21249        &self.syntax
21250    }
21251}
21252impl AstNode for EventTriggerWhen {
21253    #[inline]
21254    fn can_cast(kind: SyntaxKind) -> bool {
21255        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21256    }
21257    #[inline]
21258    fn cast(syntax: SyntaxNode) -> Option<Self> {
21259        if Self::can_cast(syntax.kind()) {
21260            Some(Self { syntax })
21261        } else {
21262            None
21263        }
21264    }
21265    #[inline]
21266    fn syntax(&self) -> &SyntaxNode {
21267        &self.syntax
21268    }
21269}
21270impl AstNode for EventTriggerWhenClause {
21271    #[inline]
21272    fn can_cast(kind: SyntaxKind) -> bool {
21273        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21274    }
21275    #[inline]
21276    fn cast(syntax: SyntaxNode) -> Option<Self> {
21277        if Self::can_cast(syntax.kind()) {
21278            Some(Self { syntax })
21279        } else {
21280            None
21281        }
21282    }
21283    #[inline]
21284    fn syntax(&self) -> &SyntaxNode {
21285        &self.syntax
21286    }
21287}
21288impl AstNode for ExceptTables {
21289    #[inline]
21290    fn can_cast(kind: SyntaxKind) -> bool {
21291        kind == SyntaxKind::EXCEPT_TABLES
21292    }
21293    #[inline]
21294    fn cast(syntax: SyntaxNode) -> Option<Self> {
21295        if Self::can_cast(syntax.kind()) {
21296            Some(Self { syntax })
21297        } else {
21298            None
21299        }
21300    }
21301    #[inline]
21302    fn syntax(&self) -> &SyntaxNode {
21303        &self.syntax
21304    }
21305}
21306impl AstNode for ExcludeConstraint {
21307    #[inline]
21308    fn can_cast(kind: SyntaxKind) -> bool {
21309        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21310    }
21311    #[inline]
21312    fn cast(syntax: SyntaxNode) -> Option<Self> {
21313        if Self::can_cast(syntax.kind()) {
21314            Some(Self { syntax })
21315        } else {
21316            None
21317        }
21318    }
21319    #[inline]
21320    fn syntax(&self) -> &SyntaxNode {
21321        &self.syntax
21322    }
21323}
21324impl AstNode for Execute {
21325    #[inline]
21326    fn can_cast(kind: SyntaxKind) -> bool {
21327        kind == SyntaxKind::EXECUTE
21328    }
21329    #[inline]
21330    fn cast(syntax: SyntaxNode) -> Option<Self> {
21331        if Self::can_cast(syntax.kind()) {
21332            Some(Self { syntax })
21333        } else {
21334            None
21335        }
21336    }
21337    #[inline]
21338    fn syntax(&self) -> &SyntaxNode {
21339        &self.syntax
21340    }
21341}
21342impl AstNode for ExistsFn {
21343    #[inline]
21344    fn can_cast(kind: SyntaxKind) -> bool {
21345        kind == SyntaxKind::EXISTS_FN
21346    }
21347    #[inline]
21348    fn cast(syntax: SyntaxNode) -> Option<Self> {
21349        if Self::can_cast(syntax.kind()) {
21350            Some(Self { syntax })
21351        } else {
21352            None
21353        }
21354    }
21355    #[inline]
21356    fn syntax(&self) -> &SyntaxNode {
21357        &self.syntax
21358    }
21359}
21360impl AstNode for Explain {
21361    #[inline]
21362    fn can_cast(kind: SyntaxKind) -> bool {
21363        kind == SyntaxKind::EXPLAIN
21364    }
21365    #[inline]
21366    fn cast(syntax: SyntaxNode) -> Option<Self> {
21367        if Self::can_cast(syntax.kind()) {
21368            Some(Self { syntax })
21369        } else {
21370            None
21371        }
21372    }
21373    #[inline]
21374    fn syntax(&self) -> &SyntaxNode {
21375        &self.syntax
21376    }
21377}
21378impl AstNode for ExprAsName {
21379    #[inline]
21380    fn can_cast(kind: SyntaxKind) -> bool {
21381        kind == SyntaxKind::EXPR_AS_NAME
21382    }
21383    #[inline]
21384    fn cast(syntax: SyntaxNode) -> Option<Self> {
21385        if Self::can_cast(syntax.kind()) {
21386            Some(Self { syntax })
21387        } else {
21388            None
21389        }
21390    }
21391    #[inline]
21392    fn syntax(&self) -> &SyntaxNode {
21393        &self.syntax
21394    }
21395}
21396impl AstNode for ExprType {
21397    #[inline]
21398    fn can_cast(kind: SyntaxKind) -> bool {
21399        kind == SyntaxKind::EXPR_TYPE
21400    }
21401    #[inline]
21402    fn cast(syntax: SyntaxNode) -> Option<Self> {
21403        if Self::can_cast(syntax.kind()) {
21404            Some(Self { syntax })
21405        } else {
21406            None
21407        }
21408    }
21409    #[inline]
21410    fn syntax(&self) -> &SyntaxNode {
21411        &self.syntax
21412    }
21413}
21414impl AstNode for ExtractFn {
21415    #[inline]
21416    fn can_cast(kind: SyntaxKind) -> bool {
21417        kind == SyntaxKind::EXTRACT_FN
21418    }
21419    #[inline]
21420    fn cast(syntax: SyntaxNode) -> Option<Self> {
21421        if Self::can_cast(syntax.kind()) {
21422            Some(Self { syntax })
21423        } else {
21424            None
21425        }
21426    }
21427    #[inline]
21428    fn syntax(&self) -> &SyntaxNode {
21429        &self.syntax
21430    }
21431}
21432impl AstNode for FatArrow {
21433    #[inline]
21434    fn can_cast(kind: SyntaxKind) -> bool {
21435        kind == SyntaxKind::FAT_ARROW
21436    }
21437    #[inline]
21438    fn cast(syntax: SyntaxNode) -> Option<Self> {
21439        if Self::can_cast(syntax.kind()) {
21440            Some(Self { syntax })
21441        } else {
21442            None
21443        }
21444    }
21445    #[inline]
21446    fn syntax(&self) -> &SyntaxNode {
21447        &self.syntax
21448    }
21449}
21450impl AstNode for FdwOption {
21451    #[inline]
21452    fn can_cast(kind: SyntaxKind) -> bool {
21453        kind == SyntaxKind::FDW_OPTION
21454    }
21455    #[inline]
21456    fn cast(syntax: SyntaxNode) -> Option<Self> {
21457        if Self::can_cast(syntax.kind()) {
21458            Some(Self { syntax })
21459        } else {
21460            None
21461        }
21462    }
21463    #[inline]
21464    fn syntax(&self) -> &SyntaxNode {
21465        &self.syntax
21466    }
21467}
21468impl AstNode for FdwOptionList {
21469    #[inline]
21470    fn can_cast(kind: SyntaxKind) -> bool {
21471        kind == SyntaxKind::FDW_OPTION_LIST
21472    }
21473    #[inline]
21474    fn cast(syntax: SyntaxNode) -> Option<Self> {
21475        if Self::can_cast(syntax.kind()) {
21476            Some(Self { syntax })
21477        } else {
21478            None
21479        }
21480    }
21481    #[inline]
21482    fn syntax(&self) -> &SyntaxNode {
21483        &self.syntax
21484    }
21485}
21486impl AstNode for Fetch {
21487    #[inline]
21488    fn can_cast(kind: SyntaxKind) -> bool {
21489        kind == SyntaxKind::FETCH
21490    }
21491    #[inline]
21492    fn cast(syntax: SyntaxNode) -> Option<Self> {
21493        if Self::can_cast(syntax.kind()) {
21494            Some(Self { syntax })
21495        } else {
21496            None
21497        }
21498    }
21499    #[inline]
21500    fn syntax(&self) -> &SyntaxNode {
21501        &self.syntax
21502    }
21503}
21504impl AstNode for FetchClause {
21505    #[inline]
21506    fn can_cast(kind: SyntaxKind) -> bool {
21507        kind == SyntaxKind::FETCH_CLAUSE
21508    }
21509    #[inline]
21510    fn cast(syntax: SyntaxNode) -> Option<Self> {
21511        if Self::can_cast(syntax.kind()) {
21512            Some(Self { syntax })
21513        } else {
21514            None
21515        }
21516    }
21517    #[inline]
21518    fn syntax(&self) -> &SyntaxNode {
21519        &self.syntax
21520    }
21521}
21522impl AstNode for FieldExpr {
21523    #[inline]
21524    fn can_cast(kind: SyntaxKind) -> bool {
21525        kind == SyntaxKind::FIELD_EXPR
21526    }
21527    #[inline]
21528    fn cast(syntax: SyntaxNode) -> Option<Self> {
21529        if Self::can_cast(syntax.kind()) {
21530            Some(Self { syntax })
21531        } else {
21532            None
21533        }
21534    }
21535    #[inline]
21536    fn syntax(&self) -> &SyntaxNode {
21537        &self.syntax
21538    }
21539}
21540impl AstNode for FilterClause {
21541    #[inline]
21542    fn can_cast(kind: SyntaxKind) -> bool {
21543        kind == SyntaxKind::FILTER_CLAUSE
21544    }
21545    #[inline]
21546    fn cast(syntax: SyntaxNode) -> Option<Self> {
21547        if Self::can_cast(syntax.kind()) {
21548            Some(Self { syntax })
21549        } else {
21550            None
21551        }
21552    }
21553    #[inline]
21554    fn syntax(&self) -> &SyntaxNode {
21555        &self.syntax
21556    }
21557}
21558impl AstNode for ForProvider {
21559    #[inline]
21560    fn can_cast(kind: SyntaxKind) -> bool {
21561        kind == SyntaxKind::FOR_PROVIDER
21562    }
21563    #[inline]
21564    fn cast(syntax: SyntaxNode) -> Option<Self> {
21565        if Self::can_cast(syntax.kind()) {
21566            Some(Self { syntax })
21567        } else {
21568            None
21569        }
21570    }
21571    #[inline]
21572    fn syntax(&self) -> &SyntaxNode {
21573        &self.syntax
21574    }
21575}
21576impl AstNode for ForceRls {
21577    #[inline]
21578    fn can_cast(kind: SyntaxKind) -> bool {
21579        kind == SyntaxKind::FORCE_RLS
21580    }
21581    #[inline]
21582    fn cast(syntax: SyntaxNode) -> Option<Self> {
21583        if Self::can_cast(syntax.kind()) {
21584            Some(Self { syntax })
21585        } else {
21586            None
21587        }
21588    }
21589    #[inline]
21590    fn syntax(&self) -> &SyntaxNode {
21591        &self.syntax
21592    }
21593}
21594impl AstNode for ForeignKeyConstraint {
21595    #[inline]
21596    fn can_cast(kind: SyntaxKind) -> bool {
21597        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21598    }
21599    #[inline]
21600    fn cast(syntax: SyntaxNode) -> Option<Self> {
21601        if Self::can_cast(syntax.kind()) {
21602            Some(Self { syntax })
21603        } else {
21604            None
21605        }
21606    }
21607    #[inline]
21608    fn syntax(&self) -> &SyntaxNode {
21609        &self.syntax
21610    }
21611}
21612impl AstNode for FrameClause {
21613    #[inline]
21614    fn can_cast(kind: SyntaxKind) -> bool {
21615        kind == SyntaxKind::FRAME_CLAUSE
21616    }
21617    #[inline]
21618    fn cast(syntax: SyntaxNode) -> Option<Self> {
21619        if Self::can_cast(syntax.kind()) {
21620            Some(Self { syntax })
21621        } else {
21622            None
21623        }
21624    }
21625    #[inline]
21626    fn syntax(&self) -> &SyntaxNode {
21627        &self.syntax
21628    }
21629}
21630impl AstNode for FromClause {
21631    #[inline]
21632    fn can_cast(kind: SyntaxKind) -> bool {
21633        kind == SyntaxKind::FROM_CLAUSE
21634    }
21635    #[inline]
21636    fn cast(syntax: SyntaxNode) -> Option<Self> {
21637        if Self::can_cast(syntax.kind()) {
21638            Some(Self { syntax })
21639        } else {
21640            None
21641        }
21642    }
21643    #[inline]
21644    fn syntax(&self) -> &SyntaxNode {
21645        &self.syntax
21646    }
21647}
21648impl AstNode for FromItem {
21649    #[inline]
21650    fn can_cast(kind: SyntaxKind) -> bool {
21651        kind == SyntaxKind::FROM_ITEM
21652    }
21653    #[inline]
21654    fn cast(syntax: SyntaxNode) -> Option<Self> {
21655        if Self::can_cast(syntax.kind()) {
21656            Some(Self { syntax })
21657        } else {
21658            None
21659        }
21660    }
21661    #[inline]
21662    fn syntax(&self) -> &SyntaxNode {
21663        &self.syntax
21664    }
21665}
21666impl AstNode for FromServer {
21667    #[inline]
21668    fn can_cast(kind: SyntaxKind) -> bool {
21669        kind == SyntaxKind::FROM_SERVER
21670    }
21671    #[inline]
21672    fn cast(syntax: SyntaxNode) -> Option<Self> {
21673        if Self::can_cast(syntax.kind()) {
21674            Some(Self { syntax })
21675        } else {
21676            None
21677        }
21678    }
21679    #[inline]
21680    fn syntax(&self) -> &SyntaxNode {
21681        &self.syntax
21682    }
21683}
21684impl AstNode for FromTable {
21685    #[inline]
21686    fn can_cast(kind: SyntaxKind) -> bool {
21687        kind == SyntaxKind::FROM_TABLE
21688    }
21689    #[inline]
21690    fn cast(syntax: SyntaxNode) -> Option<Self> {
21691        if Self::can_cast(syntax.kind()) {
21692            Some(Self { syntax })
21693        } else {
21694            None
21695        }
21696    }
21697    #[inline]
21698    fn syntax(&self) -> &SyntaxNode {
21699        &self.syntax
21700    }
21701}
21702impl AstNode for FuncOptionList {
21703    #[inline]
21704    fn can_cast(kind: SyntaxKind) -> bool {
21705        kind == SyntaxKind::FUNC_OPTION_LIST
21706    }
21707    #[inline]
21708    fn cast(syntax: SyntaxNode) -> Option<Self> {
21709        if Self::can_cast(syntax.kind()) {
21710            Some(Self { syntax })
21711        } else {
21712            None
21713        }
21714    }
21715    #[inline]
21716    fn syntax(&self) -> &SyntaxNode {
21717        &self.syntax
21718    }
21719}
21720impl AstNode for FunctionSig {
21721    #[inline]
21722    fn can_cast(kind: SyntaxKind) -> bool {
21723        kind == SyntaxKind::FUNCTION_SIG
21724    }
21725    #[inline]
21726    fn cast(syntax: SyntaxNode) -> Option<Self> {
21727        if Self::can_cast(syntax.kind()) {
21728            Some(Self { syntax })
21729        } else {
21730            None
21731        }
21732    }
21733    #[inline]
21734    fn syntax(&self) -> &SyntaxNode {
21735        &self.syntax
21736    }
21737}
21738impl AstNode for FunctionSigList {
21739    #[inline]
21740    fn can_cast(kind: SyntaxKind) -> bool {
21741        kind == SyntaxKind::FUNCTION_SIG_LIST
21742    }
21743    #[inline]
21744    fn cast(syntax: SyntaxNode) -> Option<Self> {
21745        if Self::can_cast(syntax.kind()) {
21746            Some(Self { syntax })
21747        } else {
21748            None
21749        }
21750    }
21751    #[inline]
21752    fn syntax(&self) -> &SyntaxNode {
21753        &self.syntax
21754    }
21755}
21756impl AstNode for GeneratedConstraint {
21757    #[inline]
21758    fn can_cast(kind: SyntaxKind) -> bool {
21759        kind == SyntaxKind::GENERATED_CONSTRAINT
21760    }
21761    #[inline]
21762    fn cast(syntax: SyntaxNode) -> Option<Self> {
21763        if Self::can_cast(syntax.kind()) {
21764            Some(Self { syntax })
21765        } else {
21766            None
21767        }
21768    }
21769    #[inline]
21770    fn syntax(&self) -> &SyntaxNode {
21771        &self.syntax
21772    }
21773}
21774impl AstNode for Grant {
21775    #[inline]
21776    fn can_cast(kind: SyntaxKind) -> bool {
21777        kind == SyntaxKind::GRANT
21778    }
21779    #[inline]
21780    fn cast(syntax: SyntaxNode) -> Option<Self> {
21781        if Self::can_cast(syntax.kind()) {
21782            Some(Self { syntax })
21783        } else {
21784            None
21785        }
21786    }
21787    #[inline]
21788    fn syntax(&self) -> &SyntaxNode {
21789        &self.syntax
21790    }
21791}
21792impl AstNode for GrantDefaultPrivileges {
21793    #[inline]
21794    fn can_cast(kind: SyntaxKind) -> bool {
21795        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21796    }
21797    #[inline]
21798    fn cast(syntax: SyntaxNode) -> Option<Self> {
21799        if Self::can_cast(syntax.kind()) {
21800            Some(Self { syntax })
21801        } else {
21802            None
21803        }
21804    }
21805    #[inline]
21806    fn syntax(&self) -> &SyntaxNode {
21807        &self.syntax
21808    }
21809}
21810impl AstNode for GroupByClause {
21811    #[inline]
21812    fn can_cast(kind: SyntaxKind) -> bool {
21813        kind == SyntaxKind::GROUP_BY_CLAUSE
21814    }
21815    #[inline]
21816    fn cast(syntax: SyntaxNode) -> Option<Self> {
21817        if Self::can_cast(syntax.kind()) {
21818            Some(Self { syntax })
21819        } else {
21820            None
21821        }
21822    }
21823    #[inline]
21824    fn syntax(&self) -> &SyntaxNode {
21825        &self.syntax
21826    }
21827}
21828impl AstNode for GroupByList {
21829    #[inline]
21830    fn can_cast(kind: SyntaxKind) -> bool {
21831        kind == SyntaxKind::GROUP_BY_LIST
21832    }
21833    #[inline]
21834    fn cast(syntax: SyntaxNode) -> Option<Self> {
21835        if Self::can_cast(syntax.kind()) {
21836            Some(Self { syntax })
21837        } else {
21838            None
21839        }
21840    }
21841    #[inline]
21842    fn syntax(&self) -> &SyntaxNode {
21843        &self.syntax
21844    }
21845}
21846impl AstNode for GroupingCube {
21847    #[inline]
21848    fn can_cast(kind: SyntaxKind) -> bool {
21849        kind == SyntaxKind::GROUPING_CUBE
21850    }
21851    #[inline]
21852    fn cast(syntax: SyntaxNode) -> Option<Self> {
21853        if Self::can_cast(syntax.kind()) {
21854            Some(Self { syntax })
21855        } else {
21856            None
21857        }
21858    }
21859    #[inline]
21860    fn syntax(&self) -> &SyntaxNode {
21861        &self.syntax
21862    }
21863}
21864impl AstNode for GroupingExpr {
21865    #[inline]
21866    fn can_cast(kind: SyntaxKind) -> bool {
21867        kind == SyntaxKind::GROUPING_EXPR
21868    }
21869    #[inline]
21870    fn cast(syntax: SyntaxNode) -> Option<Self> {
21871        if Self::can_cast(syntax.kind()) {
21872            Some(Self { syntax })
21873        } else {
21874            None
21875        }
21876    }
21877    #[inline]
21878    fn syntax(&self) -> &SyntaxNode {
21879        &self.syntax
21880    }
21881}
21882impl AstNode for GroupingRollup {
21883    #[inline]
21884    fn can_cast(kind: SyntaxKind) -> bool {
21885        kind == SyntaxKind::GROUPING_ROLLUP
21886    }
21887    #[inline]
21888    fn cast(syntax: SyntaxNode) -> Option<Self> {
21889        if Self::can_cast(syntax.kind()) {
21890            Some(Self { syntax })
21891        } else {
21892            None
21893        }
21894    }
21895    #[inline]
21896    fn syntax(&self) -> &SyntaxNode {
21897        &self.syntax
21898    }
21899}
21900impl AstNode for GroupingSets {
21901    #[inline]
21902    fn can_cast(kind: SyntaxKind) -> bool {
21903        kind == SyntaxKind::GROUPING_SETS
21904    }
21905    #[inline]
21906    fn cast(syntax: SyntaxNode) -> Option<Self> {
21907        if Self::can_cast(syntax.kind()) {
21908            Some(Self { syntax })
21909        } else {
21910            None
21911        }
21912    }
21913    #[inline]
21914    fn syntax(&self) -> &SyntaxNode {
21915        &self.syntax
21916    }
21917}
21918impl AstNode for Gteq {
21919    #[inline]
21920    fn can_cast(kind: SyntaxKind) -> bool {
21921        kind == SyntaxKind::GTEQ
21922    }
21923    #[inline]
21924    fn cast(syntax: SyntaxNode) -> Option<Self> {
21925        if Self::can_cast(syntax.kind()) {
21926            Some(Self { syntax })
21927        } else {
21928            None
21929        }
21930    }
21931    #[inline]
21932    fn syntax(&self) -> &SyntaxNode {
21933        &self.syntax
21934    }
21935}
21936impl AstNode for HandlerClause {
21937    #[inline]
21938    fn can_cast(kind: SyntaxKind) -> bool {
21939        kind == SyntaxKind::HANDLER_CLAUSE
21940    }
21941    #[inline]
21942    fn cast(syntax: SyntaxNode) -> Option<Self> {
21943        if Self::can_cast(syntax.kind()) {
21944            Some(Self { syntax })
21945        } else {
21946            None
21947        }
21948    }
21949    #[inline]
21950    fn syntax(&self) -> &SyntaxNode {
21951        &self.syntax
21952    }
21953}
21954impl AstNode for HavingClause {
21955    #[inline]
21956    fn can_cast(kind: SyntaxKind) -> bool {
21957        kind == SyntaxKind::HAVING_CLAUSE
21958    }
21959    #[inline]
21960    fn cast(syntax: SyntaxNode) -> Option<Self> {
21961        if Self::can_cast(syntax.kind()) {
21962            Some(Self { syntax })
21963        } else {
21964            None
21965        }
21966    }
21967    #[inline]
21968    fn syntax(&self) -> &SyntaxNode {
21969        &self.syntax
21970    }
21971}
21972impl AstNode for IfExists {
21973    #[inline]
21974    fn can_cast(kind: SyntaxKind) -> bool {
21975        kind == SyntaxKind::IF_EXISTS
21976    }
21977    #[inline]
21978    fn cast(syntax: SyntaxNode) -> Option<Self> {
21979        if Self::can_cast(syntax.kind()) {
21980            Some(Self { syntax })
21981        } else {
21982            None
21983        }
21984    }
21985    #[inline]
21986    fn syntax(&self) -> &SyntaxNode {
21987        &self.syntax
21988    }
21989}
21990impl AstNode for IfNotExists {
21991    #[inline]
21992    fn can_cast(kind: SyntaxKind) -> bool {
21993        kind == SyntaxKind::IF_NOT_EXISTS
21994    }
21995    #[inline]
21996    fn cast(syntax: SyntaxNode) -> Option<Self> {
21997        if Self::can_cast(syntax.kind()) {
21998            Some(Self { syntax })
21999        } else {
22000            None
22001        }
22002    }
22003    #[inline]
22004    fn syntax(&self) -> &SyntaxNode {
22005        &self.syntax
22006    }
22007}
22008impl AstNode for ImportForeignSchema {
22009    #[inline]
22010    fn can_cast(kind: SyntaxKind) -> bool {
22011        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
22012    }
22013    #[inline]
22014    fn cast(syntax: SyntaxNode) -> Option<Self> {
22015        if Self::can_cast(syntax.kind()) {
22016            Some(Self { syntax })
22017        } else {
22018            None
22019        }
22020    }
22021    #[inline]
22022    fn syntax(&self) -> &SyntaxNode {
22023        &self.syntax
22024    }
22025}
22026impl AstNode for IndexExpr {
22027    #[inline]
22028    fn can_cast(kind: SyntaxKind) -> bool {
22029        kind == SyntaxKind::INDEX_EXPR
22030    }
22031    #[inline]
22032    fn cast(syntax: SyntaxNode) -> Option<Self> {
22033        if Self::can_cast(syntax.kind()) {
22034            Some(Self { syntax })
22035        } else {
22036            None
22037        }
22038    }
22039    #[inline]
22040    fn syntax(&self) -> &SyntaxNode {
22041        &self.syntax
22042    }
22043}
22044impl AstNode for Inherit {
22045    #[inline]
22046    fn can_cast(kind: SyntaxKind) -> bool {
22047        kind == SyntaxKind::INHERIT
22048    }
22049    #[inline]
22050    fn cast(syntax: SyntaxNode) -> Option<Self> {
22051        if Self::can_cast(syntax.kind()) {
22052            Some(Self { syntax })
22053        } else {
22054            None
22055        }
22056    }
22057    #[inline]
22058    fn syntax(&self) -> &SyntaxNode {
22059        &self.syntax
22060    }
22061}
22062impl AstNode for InheritTable {
22063    #[inline]
22064    fn can_cast(kind: SyntaxKind) -> bool {
22065        kind == SyntaxKind::INHERIT_TABLE
22066    }
22067    #[inline]
22068    fn cast(syntax: SyntaxNode) -> Option<Self> {
22069        if Self::can_cast(syntax.kind()) {
22070            Some(Self { syntax })
22071        } else {
22072            None
22073        }
22074    }
22075    #[inline]
22076    fn syntax(&self) -> &SyntaxNode {
22077        &self.syntax
22078    }
22079}
22080impl AstNode for Inherits {
22081    #[inline]
22082    fn can_cast(kind: SyntaxKind) -> bool {
22083        kind == SyntaxKind::INHERITS
22084    }
22085    #[inline]
22086    fn cast(syntax: SyntaxNode) -> Option<Self> {
22087        if Self::can_cast(syntax.kind()) {
22088            Some(Self { syntax })
22089        } else {
22090            None
22091        }
22092    }
22093    #[inline]
22094    fn syntax(&self) -> &SyntaxNode {
22095        &self.syntax
22096    }
22097}
22098impl AstNode for InitiallyDeferredConstraintOption {
22099    #[inline]
22100    fn can_cast(kind: SyntaxKind) -> bool {
22101        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22102    }
22103    #[inline]
22104    fn cast(syntax: SyntaxNode) -> Option<Self> {
22105        if Self::can_cast(syntax.kind()) {
22106            Some(Self { syntax })
22107        } else {
22108            None
22109        }
22110    }
22111    #[inline]
22112    fn syntax(&self) -> &SyntaxNode {
22113        &self.syntax
22114    }
22115}
22116impl AstNode for InitiallyImmediateConstraintOption {
22117    #[inline]
22118    fn can_cast(kind: SyntaxKind) -> bool {
22119        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22120    }
22121    #[inline]
22122    fn cast(syntax: SyntaxNode) -> Option<Self> {
22123        if Self::can_cast(syntax.kind()) {
22124            Some(Self { syntax })
22125        } else {
22126            None
22127        }
22128    }
22129    #[inline]
22130    fn syntax(&self) -> &SyntaxNode {
22131        &self.syntax
22132    }
22133}
22134impl AstNode for Insert {
22135    #[inline]
22136    fn can_cast(kind: SyntaxKind) -> bool {
22137        kind == SyntaxKind::INSERT
22138    }
22139    #[inline]
22140    fn cast(syntax: SyntaxNode) -> Option<Self> {
22141        if Self::can_cast(syntax.kind()) {
22142            Some(Self { syntax })
22143        } else {
22144            None
22145        }
22146    }
22147    #[inline]
22148    fn syntax(&self) -> &SyntaxNode {
22149        &self.syntax
22150    }
22151}
22152impl AstNode for IntervalType {
22153    #[inline]
22154    fn can_cast(kind: SyntaxKind) -> bool {
22155        kind == SyntaxKind::INTERVAL_TYPE
22156    }
22157    #[inline]
22158    fn cast(syntax: SyntaxNode) -> Option<Self> {
22159        if Self::can_cast(syntax.kind()) {
22160            Some(Self { syntax })
22161        } else {
22162            None
22163        }
22164    }
22165    #[inline]
22166    fn syntax(&self) -> &SyntaxNode {
22167        &self.syntax
22168    }
22169}
22170impl AstNode for IntoClause {
22171    #[inline]
22172    fn can_cast(kind: SyntaxKind) -> bool {
22173        kind == SyntaxKind::INTO_CLAUSE
22174    }
22175    #[inline]
22176    fn cast(syntax: SyntaxNode) -> Option<Self> {
22177        if Self::can_cast(syntax.kind()) {
22178            Some(Self { syntax })
22179        } else {
22180            None
22181        }
22182    }
22183    #[inline]
22184    fn syntax(&self) -> &SyntaxNode {
22185        &self.syntax
22186    }
22187}
22188impl AstNode for IntoSchema {
22189    #[inline]
22190    fn can_cast(kind: SyntaxKind) -> bool {
22191        kind == SyntaxKind::INTO_SCHEMA
22192    }
22193    #[inline]
22194    fn cast(syntax: SyntaxNode) -> Option<Self> {
22195        if Self::can_cast(syntax.kind()) {
22196            Some(Self { syntax })
22197        } else {
22198            None
22199        }
22200    }
22201    #[inline]
22202    fn syntax(&self) -> &SyntaxNode {
22203        &self.syntax
22204    }
22205}
22206impl AstNode for IsDistinctFrom {
22207    #[inline]
22208    fn can_cast(kind: SyntaxKind) -> bool {
22209        kind == SyntaxKind::IS_DISTINCT_FROM
22210    }
22211    #[inline]
22212    fn cast(syntax: SyntaxNode) -> Option<Self> {
22213        if Self::can_cast(syntax.kind()) {
22214            Some(Self { syntax })
22215        } else {
22216            None
22217        }
22218    }
22219    #[inline]
22220    fn syntax(&self) -> &SyntaxNode {
22221        &self.syntax
22222    }
22223}
22224impl AstNode for IsJson {
22225    #[inline]
22226    fn can_cast(kind: SyntaxKind) -> bool {
22227        kind == SyntaxKind::IS_JSON
22228    }
22229    #[inline]
22230    fn cast(syntax: SyntaxNode) -> Option<Self> {
22231        if Self::can_cast(syntax.kind()) {
22232            Some(Self { syntax })
22233        } else {
22234            None
22235        }
22236    }
22237    #[inline]
22238    fn syntax(&self) -> &SyntaxNode {
22239        &self.syntax
22240    }
22241}
22242impl AstNode for IsJsonArray {
22243    #[inline]
22244    fn can_cast(kind: SyntaxKind) -> bool {
22245        kind == SyntaxKind::IS_JSON_ARRAY
22246    }
22247    #[inline]
22248    fn cast(syntax: SyntaxNode) -> Option<Self> {
22249        if Self::can_cast(syntax.kind()) {
22250            Some(Self { syntax })
22251        } else {
22252            None
22253        }
22254    }
22255    #[inline]
22256    fn syntax(&self) -> &SyntaxNode {
22257        &self.syntax
22258    }
22259}
22260impl AstNode for IsJsonObject {
22261    #[inline]
22262    fn can_cast(kind: SyntaxKind) -> bool {
22263        kind == SyntaxKind::IS_JSON_OBJECT
22264    }
22265    #[inline]
22266    fn cast(syntax: SyntaxNode) -> Option<Self> {
22267        if Self::can_cast(syntax.kind()) {
22268            Some(Self { syntax })
22269        } else {
22270            None
22271        }
22272    }
22273    #[inline]
22274    fn syntax(&self) -> &SyntaxNode {
22275        &self.syntax
22276    }
22277}
22278impl AstNode for IsJsonScalar {
22279    #[inline]
22280    fn can_cast(kind: SyntaxKind) -> bool {
22281        kind == SyntaxKind::IS_JSON_SCALAR
22282    }
22283    #[inline]
22284    fn cast(syntax: SyntaxNode) -> Option<Self> {
22285        if Self::can_cast(syntax.kind()) {
22286            Some(Self { syntax })
22287        } else {
22288            None
22289        }
22290    }
22291    #[inline]
22292    fn syntax(&self) -> &SyntaxNode {
22293        &self.syntax
22294    }
22295}
22296impl AstNode for IsJsonValue {
22297    #[inline]
22298    fn can_cast(kind: SyntaxKind) -> bool {
22299        kind == SyntaxKind::IS_JSON_VALUE
22300    }
22301    #[inline]
22302    fn cast(syntax: SyntaxNode) -> Option<Self> {
22303        if Self::can_cast(syntax.kind()) {
22304            Some(Self { syntax })
22305        } else {
22306            None
22307        }
22308    }
22309    #[inline]
22310    fn syntax(&self) -> &SyntaxNode {
22311        &self.syntax
22312    }
22313}
22314impl AstNode for IsNormalized {
22315    #[inline]
22316    fn can_cast(kind: SyntaxKind) -> bool {
22317        kind == SyntaxKind::IS_NORMALIZED
22318    }
22319    #[inline]
22320    fn cast(syntax: SyntaxNode) -> Option<Self> {
22321        if Self::can_cast(syntax.kind()) {
22322            Some(Self { syntax })
22323        } else {
22324            None
22325        }
22326    }
22327    #[inline]
22328    fn syntax(&self) -> &SyntaxNode {
22329        &self.syntax
22330    }
22331}
22332impl AstNode for IsNot {
22333    #[inline]
22334    fn can_cast(kind: SyntaxKind) -> bool {
22335        kind == SyntaxKind::IS_NOT
22336    }
22337    #[inline]
22338    fn cast(syntax: SyntaxNode) -> Option<Self> {
22339        if Self::can_cast(syntax.kind()) {
22340            Some(Self { syntax })
22341        } else {
22342            None
22343        }
22344    }
22345    #[inline]
22346    fn syntax(&self) -> &SyntaxNode {
22347        &self.syntax
22348    }
22349}
22350impl AstNode for IsNotDistinctFrom {
22351    #[inline]
22352    fn can_cast(kind: SyntaxKind) -> bool {
22353        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22354    }
22355    #[inline]
22356    fn cast(syntax: SyntaxNode) -> Option<Self> {
22357        if Self::can_cast(syntax.kind()) {
22358            Some(Self { syntax })
22359        } else {
22360            None
22361        }
22362    }
22363    #[inline]
22364    fn syntax(&self) -> &SyntaxNode {
22365        &self.syntax
22366    }
22367}
22368impl AstNode for IsNotJson {
22369    #[inline]
22370    fn can_cast(kind: SyntaxKind) -> bool {
22371        kind == SyntaxKind::IS_NOT_JSON
22372    }
22373    #[inline]
22374    fn cast(syntax: SyntaxNode) -> Option<Self> {
22375        if Self::can_cast(syntax.kind()) {
22376            Some(Self { syntax })
22377        } else {
22378            None
22379        }
22380    }
22381    #[inline]
22382    fn syntax(&self) -> &SyntaxNode {
22383        &self.syntax
22384    }
22385}
22386impl AstNode for IsNotJsonArray {
22387    #[inline]
22388    fn can_cast(kind: SyntaxKind) -> bool {
22389        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22390    }
22391    #[inline]
22392    fn cast(syntax: SyntaxNode) -> Option<Self> {
22393        if Self::can_cast(syntax.kind()) {
22394            Some(Self { syntax })
22395        } else {
22396            None
22397        }
22398    }
22399    #[inline]
22400    fn syntax(&self) -> &SyntaxNode {
22401        &self.syntax
22402    }
22403}
22404impl AstNode for IsNotJsonObject {
22405    #[inline]
22406    fn can_cast(kind: SyntaxKind) -> bool {
22407        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22408    }
22409    #[inline]
22410    fn cast(syntax: SyntaxNode) -> Option<Self> {
22411        if Self::can_cast(syntax.kind()) {
22412            Some(Self { syntax })
22413        } else {
22414            None
22415        }
22416    }
22417    #[inline]
22418    fn syntax(&self) -> &SyntaxNode {
22419        &self.syntax
22420    }
22421}
22422impl AstNode for IsNotJsonScalar {
22423    #[inline]
22424    fn can_cast(kind: SyntaxKind) -> bool {
22425        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22426    }
22427    #[inline]
22428    fn cast(syntax: SyntaxNode) -> Option<Self> {
22429        if Self::can_cast(syntax.kind()) {
22430            Some(Self { syntax })
22431        } else {
22432            None
22433        }
22434    }
22435    #[inline]
22436    fn syntax(&self) -> &SyntaxNode {
22437        &self.syntax
22438    }
22439}
22440impl AstNode for IsNotJsonValue {
22441    #[inline]
22442    fn can_cast(kind: SyntaxKind) -> bool {
22443        kind == SyntaxKind::IS_NOT_JSON_VALUE
22444    }
22445    #[inline]
22446    fn cast(syntax: SyntaxNode) -> Option<Self> {
22447        if Self::can_cast(syntax.kind()) {
22448            Some(Self { syntax })
22449        } else {
22450            None
22451        }
22452    }
22453    #[inline]
22454    fn syntax(&self) -> &SyntaxNode {
22455        &self.syntax
22456    }
22457}
22458impl AstNode for IsNotNormalized {
22459    #[inline]
22460    fn can_cast(kind: SyntaxKind) -> bool {
22461        kind == SyntaxKind::IS_NOT_NORMALIZED
22462    }
22463    #[inline]
22464    fn cast(syntax: SyntaxNode) -> Option<Self> {
22465        if Self::can_cast(syntax.kind()) {
22466            Some(Self { syntax })
22467        } else {
22468            None
22469        }
22470    }
22471    #[inline]
22472    fn syntax(&self) -> &SyntaxNode {
22473        &self.syntax
22474    }
22475}
22476impl AstNode for Join {
22477    #[inline]
22478    fn can_cast(kind: SyntaxKind) -> bool {
22479        kind == SyntaxKind::JOIN
22480    }
22481    #[inline]
22482    fn cast(syntax: SyntaxNode) -> Option<Self> {
22483        if Self::can_cast(syntax.kind()) {
22484            Some(Self { syntax })
22485        } else {
22486            None
22487        }
22488    }
22489    #[inline]
22490    fn syntax(&self) -> &SyntaxNode {
22491        &self.syntax
22492    }
22493}
22494impl AstNode for JoinCross {
22495    #[inline]
22496    fn can_cast(kind: SyntaxKind) -> bool {
22497        kind == SyntaxKind::JOIN_CROSS
22498    }
22499    #[inline]
22500    fn cast(syntax: SyntaxNode) -> Option<Self> {
22501        if Self::can_cast(syntax.kind()) {
22502            Some(Self { syntax })
22503        } else {
22504            None
22505        }
22506    }
22507    #[inline]
22508    fn syntax(&self) -> &SyntaxNode {
22509        &self.syntax
22510    }
22511}
22512impl AstNode for JoinExpr {
22513    #[inline]
22514    fn can_cast(kind: SyntaxKind) -> bool {
22515        kind == SyntaxKind::JOIN_EXPR
22516    }
22517    #[inline]
22518    fn cast(syntax: SyntaxNode) -> Option<Self> {
22519        if Self::can_cast(syntax.kind()) {
22520            Some(Self { syntax })
22521        } else {
22522            None
22523        }
22524    }
22525    #[inline]
22526    fn syntax(&self) -> &SyntaxNode {
22527        &self.syntax
22528    }
22529}
22530impl AstNode for JoinFull {
22531    #[inline]
22532    fn can_cast(kind: SyntaxKind) -> bool {
22533        kind == SyntaxKind::JOIN_FULL
22534    }
22535    #[inline]
22536    fn cast(syntax: SyntaxNode) -> Option<Self> {
22537        if Self::can_cast(syntax.kind()) {
22538            Some(Self { syntax })
22539        } else {
22540            None
22541        }
22542    }
22543    #[inline]
22544    fn syntax(&self) -> &SyntaxNode {
22545        &self.syntax
22546    }
22547}
22548impl AstNode for JoinInner {
22549    #[inline]
22550    fn can_cast(kind: SyntaxKind) -> bool {
22551        kind == SyntaxKind::JOIN_INNER
22552    }
22553    #[inline]
22554    fn cast(syntax: SyntaxNode) -> Option<Self> {
22555        if Self::can_cast(syntax.kind()) {
22556            Some(Self { syntax })
22557        } else {
22558            None
22559        }
22560    }
22561    #[inline]
22562    fn syntax(&self) -> &SyntaxNode {
22563        &self.syntax
22564    }
22565}
22566impl AstNode for JoinLeft {
22567    #[inline]
22568    fn can_cast(kind: SyntaxKind) -> bool {
22569        kind == SyntaxKind::JOIN_LEFT
22570    }
22571    #[inline]
22572    fn cast(syntax: SyntaxNode) -> Option<Self> {
22573        if Self::can_cast(syntax.kind()) {
22574            Some(Self { syntax })
22575        } else {
22576            None
22577        }
22578    }
22579    #[inline]
22580    fn syntax(&self) -> &SyntaxNode {
22581        &self.syntax
22582    }
22583}
22584impl AstNode for JoinRight {
22585    #[inline]
22586    fn can_cast(kind: SyntaxKind) -> bool {
22587        kind == SyntaxKind::JOIN_RIGHT
22588    }
22589    #[inline]
22590    fn cast(syntax: SyntaxNode) -> Option<Self> {
22591        if Self::can_cast(syntax.kind()) {
22592            Some(Self { syntax })
22593        } else {
22594            None
22595        }
22596    }
22597    #[inline]
22598    fn syntax(&self) -> &SyntaxNode {
22599        &self.syntax
22600    }
22601}
22602impl AstNode for JoinUsingClause {
22603    #[inline]
22604    fn can_cast(kind: SyntaxKind) -> bool {
22605        kind == SyntaxKind::JOIN_USING_CLAUSE
22606    }
22607    #[inline]
22608    fn cast(syntax: SyntaxNode) -> Option<Self> {
22609        if Self::can_cast(syntax.kind()) {
22610            Some(Self { syntax })
22611        } else {
22612            None
22613        }
22614    }
22615    #[inline]
22616    fn syntax(&self) -> &SyntaxNode {
22617        &self.syntax
22618    }
22619}
22620impl AstNode for JsonArrayAggFn {
22621    #[inline]
22622    fn can_cast(kind: SyntaxKind) -> bool {
22623        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22624    }
22625    #[inline]
22626    fn cast(syntax: SyntaxNode) -> Option<Self> {
22627        if Self::can_cast(syntax.kind()) {
22628            Some(Self { syntax })
22629        } else {
22630            None
22631        }
22632    }
22633    #[inline]
22634    fn syntax(&self) -> &SyntaxNode {
22635        &self.syntax
22636    }
22637}
22638impl AstNode for JsonArrayFn {
22639    #[inline]
22640    fn can_cast(kind: SyntaxKind) -> bool {
22641        kind == SyntaxKind::JSON_ARRAY_FN
22642    }
22643    #[inline]
22644    fn cast(syntax: SyntaxNode) -> Option<Self> {
22645        if Self::can_cast(syntax.kind()) {
22646            Some(Self { syntax })
22647        } else {
22648            None
22649        }
22650    }
22651    #[inline]
22652    fn syntax(&self) -> &SyntaxNode {
22653        &self.syntax
22654    }
22655}
22656impl AstNode for JsonBehaviorClause {
22657    #[inline]
22658    fn can_cast(kind: SyntaxKind) -> bool {
22659        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22660    }
22661    #[inline]
22662    fn cast(syntax: SyntaxNode) -> Option<Self> {
22663        if Self::can_cast(syntax.kind()) {
22664            Some(Self { syntax })
22665        } else {
22666            None
22667        }
22668    }
22669    #[inline]
22670    fn syntax(&self) -> &SyntaxNode {
22671        &self.syntax
22672    }
22673}
22674impl AstNode for JsonBehaviorDefault {
22675    #[inline]
22676    fn can_cast(kind: SyntaxKind) -> bool {
22677        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22678    }
22679    #[inline]
22680    fn cast(syntax: SyntaxNode) -> Option<Self> {
22681        if Self::can_cast(syntax.kind()) {
22682            Some(Self { syntax })
22683        } else {
22684            None
22685        }
22686    }
22687    #[inline]
22688    fn syntax(&self) -> &SyntaxNode {
22689        &self.syntax
22690    }
22691}
22692impl AstNode for JsonBehaviorEmptyArray {
22693    #[inline]
22694    fn can_cast(kind: SyntaxKind) -> bool {
22695        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22696    }
22697    #[inline]
22698    fn cast(syntax: SyntaxNode) -> Option<Self> {
22699        if Self::can_cast(syntax.kind()) {
22700            Some(Self { syntax })
22701        } else {
22702            None
22703        }
22704    }
22705    #[inline]
22706    fn syntax(&self) -> &SyntaxNode {
22707        &self.syntax
22708    }
22709}
22710impl AstNode for JsonBehaviorEmptyObject {
22711    #[inline]
22712    fn can_cast(kind: SyntaxKind) -> bool {
22713        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22714    }
22715    #[inline]
22716    fn cast(syntax: SyntaxNode) -> Option<Self> {
22717        if Self::can_cast(syntax.kind()) {
22718            Some(Self { syntax })
22719        } else {
22720            None
22721        }
22722    }
22723    #[inline]
22724    fn syntax(&self) -> &SyntaxNode {
22725        &self.syntax
22726    }
22727}
22728impl AstNode for JsonBehaviorError {
22729    #[inline]
22730    fn can_cast(kind: SyntaxKind) -> bool {
22731        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22732    }
22733    #[inline]
22734    fn cast(syntax: SyntaxNode) -> Option<Self> {
22735        if Self::can_cast(syntax.kind()) {
22736            Some(Self { syntax })
22737        } else {
22738            None
22739        }
22740    }
22741    #[inline]
22742    fn syntax(&self) -> &SyntaxNode {
22743        &self.syntax
22744    }
22745}
22746impl AstNode for JsonBehaviorFalse {
22747    #[inline]
22748    fn can_cast(kind: SyntaxKind) -> bool {
22749        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22750    }
22751    #[inline]
22752    fn cast(syntax: SyntaxNode) -> Option<Self> {
22753        if Self::can_cast(syntax.kind()) {
22754            Some(Self { syntax })
22755        } else {
22756            None
22757        }
22758    }
22759    #[inline]
22760    fn syntax(&self) -> &SyntaxNode {
22761        &self.syntax
22762    }
22763}
22764impl AstNode for JsonBehaviorNull {
22765    #[inline]
22766    fn can_cast(kind: SyntaxKind) -> bool {
22767        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22768    }
22769    #[inline]
22770    fn cast(syntax: SyntaxNode) -> Option<Self> {
22771        if Self::can_cast(syntax.kind()) {
22772            Some(Self { syntax })
22773        } else {
22774            None
22775        }
22776    }
22777    #[inline]
22778    fn syntax(&self) -> &SyntaxNode {
22779        &self.syntax
22780    }
22781}
22782impl AstNode for JsonBehaviorTrue {
22783    #[inline]
22784    fn can_cast(kind: SyntaxKind) -> bool {
22785        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22786    }
22787    #[inline]
22788    fn cast(syntax: SyntaxNode) -> Option<Self> {
22789        if Self::can_cast(syntax.kind()) {
22790            Some(Self { syntax })
22791        } else {
22792            None
22793        }
22794    }
22795    #[inline]
22796    fn syntax(&self) -> &SyntaxNode {
22797        &self.syntax
22798    }
22799}
22800impl AstNode for JsonBehaviorUnknown {
22801    #[inline]
22802    fn can_cast(kind: SyntaxKind) -> bool {
22803        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22804    }
22805    #[inline]
22806    fn cast(syntax: SyntaxNode) -> Option<Self> {
22807        if Self::can_cast(syntax.kind()) {
22808            Some(Self { syntax })
22809        } else {
22810            None
22811        }
22812    }
22813    #[inline]
22814    fn syntax(&self) -> &SyntaxNode {
22815        &self.syntax
22816    }
22817}
22818impl AstNode for JsonEncodingClause {
22819    #[inline]
22820    fn can_cast(kind: SyntaxKind) -> bool {
22821        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22822    }
22823    #[inline]
22824    fn cast(syntax: SyntaxNode) -> Option<Self> {
22825        if Self::can_cast(syntax.kind()) {
22826            Some(Self { syntax })
22827        } else {
22828            None
22829        }
22830    }
22831    #[inline]
22832    fn syntax(&self) -> &SyntaxNode {
22833        &self.syntax
22834    }
22835}
22836impl AstNode for JsonExistsFn {
22837    #[inline]
22838    fn can_cast(kind: SyntaxKind) -> bool {
22839        kind == SyntaxKind::JSON_EXISTS_FN
22840    }
22841    #[inline]
22842    fn cast(syntax: SyntaxNode) -> Option<Self> {
22843        if Self::can_cast(syntax.kind()) {
22844            Some(Self { syntax })
22845        } else {
22846            None
22847        }
22848    }
22849    #[inline]
22850    fn syntax(&self) -> &SyntaxNode {
22851        &self.syntax
22852    }
22853}
22854impl AstNode for JsonExprFormat {
22855    #[inline]
22856    fn can_cast(kind: SyntaxKind) -> bool {
22857        kind == SyntaxKind::JSON_EXPR_FORMAT
22858    }
22859    #[inline]
22860    fn cast(syntax: SyntaxNode) -> Option<Self> {
22861        if Self::can_cast(syntax.kind()) {
22862            Some(Self { syntax })
22863        } else {
22864            None
22865        }
22866    }
22867    #[inline]
22868    fn syntax(&self) -> &SyntaxNode {
22869        &self.syntax
22870    }
22871}
22872impl AstNode for JsonFn {
22873    #[inline]
22874    fn can_cast(kind: SyntaxKind) -> bool {
22875        kind == SyntaxKind::JSON_FN
22876    }
22877    #[inline]
22878    fn cast(syntax: SyntaxNode) -> Option<Self> {
22879        if Self::can_cast(syntax.kind()) {
22880            Some(Self { syntax })
22881        } else {
22882            None
22883        }
22884    }
22885    #[inline]
22886    fn syntax(&self) -> &SyntaxNode {
22887        &self.syntax
22888    }
22889}
22890impl AstNode for JsonFormatClause {
22891    #[inline]
22892    fn can_cast(kind: SyntaxKind) -> bool {
22893        kind == SyntaxKind::JSON_FORMAT_CLAUSE
22894    }
22895    #[inline]
22896    fn cast(syntax: SyntaxNode) -> Option<Self> {
22897        if Self::can_cast(syntax.kind()) {
22898            Some(Self { syntax })
22899        } else {
22900            None
22901        }
22902    }
22903    #[inline]
22904    fn syntax(&self) -> &SyntaxNode {
22905        &self.syntax
22906    }
22907}
22908impl AstNode for JsonKeyValue {
22909    #[inline]
22910    fn can_cast(kind: SyntaxKind) -> bool {
22911        kind == SyntaxKind::JSON_KEY_VALUE
22912    }
22913    #[inline]
22914    fn cast(syntax: SyntaxNode) -> Option<Self> {
22915        if Self::can_cast(syntax.kind()) {
22916            Some(Self { syntax })
22917        } else {
22918            None
22919        }
22920    }
22921    #[inline]
22922    fn syntax(&self) -> &SyntaxNode {
22923        &self.syntax
22924    }
22925}
22926impl AstNode for JsonKeysUniqueClause {
22927    #[inline]
22928    fn can_cast(kind: SyntaxKind) -> bool {
22929        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
22930    }
22931    #[inline]
22932    fn cast(syntax: SyntaxNode) -> Option<Self> {
22933        if Self::can_cast(syntax.kind()) {
22934            Some(Self { syntax })
22935        } else {
22936            None
22937        }
22938    }
22939    #[inline]
22940    fn syntax(&self) -> &SyntaxNode {
22941        &self.syntax
22942    }
22943}
22944impl AstNode for JsonNullClause {
22945    #[inline]
22946    fn can_cast(kind: SyntaxKind) -> bool {
22947        kind == SyntaxKind::JSON_NULL_CLAUSE
22948    }
22949    #[inline]
22950    fn cast(syntax: SyntaxNode) -> Option<Self> {
22951        if Self::can_cast(syntax.kind()) {
22952            Some(Self { syntax })
22953        } else {
22954            None
22955        }
22956    }
22957    #[inline]
22958    fn syntax(&self) -> &SyntaxNode {
22959        &self.syntax
22960    }
22961}
22962impl AstNode for JsonObjectAggFn {
22963    #[inline]
22964    fn can_cast(kind: SyntaxKind) -> bool {
22965        kind == SyntaxKind::JSON_OBJECT_AGG_FN
22966    }
22967    #[inline]
22968    fn cast(syntax: SyntaxNode) -> Option<Self> {
22969        if Self::can_cast(syntax.kind()) {
22970            Some(Self { syntax })
22971        } else {
22972            None
22973        }
22974    }
22975    #[inline]
22976    fn syntax(&self) -> &SyntaxNode {
22977        &self.syntax
22978    }
22979}
22980impl AstNode for JsonObjectFn {
22981    #[inline]
22982    fn can_cast(kind: SyntaxKind) -> bool {
22983        kind == SyntaxKind::JSON_OBJECT_FN
22984    }
22985    #[inline]
22986    fn cast(syntax: SyntaxNode) -> Option<Self> {
22987        if Self::can_cast(syntax.kind()) {
22988            Some(Self { syntax })
22989        } else {
22990            None
22991        }
22992    }
22993    #[inline]
22994    fn syntax(&self) -> &SyntaxNode {
22995        &self.syntax
22996    }
22997}
22998impl AstNode for JsonOnEmptyClause {
22999    #[inline]
23000    fn can_cast(kind: SyntaxKind) -> bool {
23001        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
23002    }
23003    #[inline]
23004    fn cast(syntax: SyntaxNode) -> Option<Self> {
23005        if Self::can_cast(syntax.kind()) {
23006            Some(Self { syntax })
23007        } else {
23008            None
23009        }
23010    }
23011    #[inline]
23012    fn syntax(&self) -> &SyntaxNode {
23013        &self.syntax
23014    }
23015}
23016impl AstNode for JsonOnErrorClause {
23017    #[inline]
23018    fn can_cast(kind: SyntaxKind) -> bool {
23019        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
23020    }
23021    #[inline]
23022    fn cast(syntax: SyntaxNode) -> Option<Self> {
23023        if Self::can_cast(syntax.kind()) {
23024            Some(Self { syntax })
23025        } else {
23026            None
23027        }
23028    }
23029    #[inline]
23030    fn syntax(&self) -> &SyntaxNode {
23031        &self.syntax
23032    }
23033}
23034impl AstNode for JsonPassingArg {
23035    #[inline]
23036    fn can_cast(kind: SyntaxKind) -> bool {
23037        kind == SyntaxKind::JSON_PASSING_ARG
23038    }
23039    #[inline]
23040    fn cast(syntax: SyntaxNode) -> Option<Self> {
23041        if Self::can_cast(syntax.kind()) {
23042            Some(Self { syntax })
23043        } else {
23044            None
23045        }
23046    }
23047    #[inline]
23048    fn syntax(&self) -> &SyntaxNode {
23049        &self.syntax
23050    }
23051}
23052impl AstNode for JsonPassingClause {
23053    #[inline]
23054    fn can_cast(kind: SyntaxKind) -> bool {
23055        kind == SyntaxKind::JSON_PASSING_CLAUSE
23056    }
23057    #[inline]
23058    fn cast(syntax: SyntaxNode) -> Option<Self> {
23059        if Self::can_cast(syntax.kind()) {
23060            Some(Self { syntax })
23061        } else {
23062            None
23063        }
23064    }
23065    #[inline]
23066    fn syntax(&self) -> &SyntaxNode {
23067        &self.syntax
23068    }
23069}
23070impl AstNode for JsonPathClause {
23071    #[inline]
23072    fn can_cast(kind: SyntaxKind) -> bool {
23073        kind == SyntaxKind::JSON_PATH_CLAUSE
23074    }
23075    #[inline]
23076    fn cast(syntax: SyntaxNode) -> Option<Self> {
23077        if Self::can_cast(syntax.kind()) {
23078            Some(Self { syntax })
23079        } else {
23080            None
23081        }
23082    }
23083    #[inline]
23084    fn syntax(&self) -> &SyntaxNode {
23085        &self.syntax
23086    }
23087}
23088impl AstNode for JsonQueryFn {
23089    #[inline]
23090    fn can_cast(kind: SyntaxKind) -> bool {
23091        kind == SyntaxKind::JSON_QUERY_FN
23092    }
23093    #[inline]
23094    fn cast(syntax: SyntaxNode) -> Option<Self> {
23095        if Self::can_cast(syntax.kind()) {
23096            Some(Self { syntax })
23097        } else {
23098            None
23099        }
23100    }
23101    #[inline]
23102    fn syntax(&self) -> &SyntaxNode {
23103        &self.syntax
23104    }
23105}
23106impl AstNode for JsonQuotesClause {
23107    #[inline]
23108    fn can_cast(kind: SyntaxKind) -> bool {
23109        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23110    }
23111    #[inline]
23112    fn cast(syntax: SyntaxNode) -> Option<Self> {
23113        if Self::can_cast(syntax.kind()) {
23114            Some(Self { syntax })
23115        } else {
23116            None
23117        }
23118    }
23119    #[inline]
23120    fn syntax(&self) -> &SyntaxNode {
23121        &self.syntax
23122    }
23123}
23124impl AstNode for JsonReturningClause {
23125    #[inline]
23126    fn can_cast(kind: SyntaxKind) -> bool {
23127        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23128    }
23129    #[inline]
23130    fn cast(syntax: SyntaxNode) -> Option<Self> {
23131        if Self::can_cast(syntax.kind()) {
23132            Some(Self { syntax })
23133        } else {
23134            None
23135        }
23136    }
23137    #[inline]
23138    fn syntax(&self) -> &SyntaxNode {
23139        &self.syntax
23140    }
23141}
23142impl AstNode for JsonScalarFn {
23143    #[inline]
23144    fn can_cast(kind: SyntaxKind) -> bool {
23145        kind == SyntaxKind::JSON_SCALAR_FN
23146    }
23147    #[inline]
23148    fn cast(syntax: SyntaxNode) -> Option<Self> {
23149        if Self::can_cast(syntax.kind()) {
23150            Some(Self { syntax })
23151        } else {
23152            None
23153        }
23154    }
23155    #[inline]
23156    fn syntax(&self) -> &SyntaxNode {
23157        &self.syntax
23158    }
23159}
23160impl AstNode for JsonSelectFormat {
23161    #[inline]
23162    fn can_cast(kind: SyntaxKind) -> bool {
23163        kind == SyntaxKind::JSON_SELECT_FORMAT
23164    }
23165    #[inline]
23166    fn cast(syntax: SyntaxNode) -> Option<Self> {
23167        if Self::can_cast(syntax.kind()) {
23168            Some(Self { syntax })
23169        } else {
23170            None
23171        }
23172    }
23173    #[inline]
23174    fn syntax(&self) -> &SyntaxNode {
23175        &self.syntax
23176    }
23177}
23178impl AstNode for JsonSerializeFn {
23179    #[inline]
23180    fn can_cast(kind: SyntaxKind) -> bool {
23181        kind == SyntaxKind::JSON_SERIALIZE_FN
23182    }
23183    #[inline]
23184    fn cast(syntax: SyntaxNode) -> Option<Self> {
23185        if Self::can_cast(syntax.kind()) {
23186            Some(Self { syntax })
23187        } else {
23188            None
23189        }
23190    }
23191    #[inline]
23192    fn syntax(&self) -> &SyntaxNode {
23193        &self.syntax
23194    }
23195}
23196impl AstNode for JsonTable {
23197    #[inline]
23198    fn can_cast(kind: SyntaxKind) -> bool {
23199        kind == SyntaxKind::JSON_TABLE
23200    }
23201    #[inline]
23202    fn cast(syntax: SyntaxNode) -> Option<Self> {
23203        if Self::can_cast(syntax.kind()) {
23204            Some(Self { syntax })
23205        } else {
23206            None
23207        }
23208    }
23209    #[inline]
23210    fn syntax(&self) -> &SyntaxNode {
23211        &self.syntax
23212    }
23213}
23214impl AstNode for JsonTableColumn {
23215    #[inline]
23216    fn can_cast(kind: SyntaxKind) -> bool {
23217        kind == SyntaxKind::JSON_TABLE_COLUMN
23218    }
23219    #[inline]
23220    fn cast(syntax: SyntaxNode) -> Option<Self> {
23221        if Self::can_cast(syntax.kind()) {
23222            Some(Self { syntax })
23223        } else {
23224            None
23225        }
23226    }
23227    #[inline]
23228    fn syntax(&self) -> &SyntaxNode {
23229        &self.syntax
23230    }
23231}
23232impl AstNode for JsonTableColumnList {
23233    #[inline]
23234    fn can_cast(kind: SyntaxKind) -> bool {
23235        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23236    }
23237    #[inline]
23238    fn cast(syntax: SyntaxNode) -> Option<Self> {
23239        if Self::can_cast(syntax.kind()) {
23240            Some(Self { syntax })
23241        } else {
23242            None
23243        }
23244    }
23245    #[inline]
23246    fn syntax(&self) -> &SyntaxNode {
23247        &self.syntax
23248    }
23249}
23250impl AstNode for JsonValueExpr {
23251    #[inline]
23252    fn can_cast(kind: SyntaxKind) -> bool {
23253        kind == SyntaxKind::JSON_VALUE_EXPR
23254    }
23255    #[inline]
23256    fn cast(syntax: SyntaxNode) -> Option<Self> {
23257        if Self::can_cast(syntax.kind()) {
23258            Some(Self { syntax })
23259        } else {
23260            None
23261        }
23262    }
23263    #[inline]
23264    fn syntax(&self) -> &SyntaxNode {
23265        &self.syntax
23266    }
23267}
23268impl AstNode for JsonValueFn {
23269    #[inline]
23270    fn can_cast(kind: SyntaxKind) -> bool {
23271        kind == SyntaxKind::JSON_VALUE_FN
23272    }
23273    #[inline]
23274    fn cast(syntax: SyntaxNode) -> Option<Self> {
23275        if Self::can_cast(syntax.kind()) {
23276            Some(Self { syntax })
23277        } else {
23278            None
23279        }
23280    }
23281    #[inline]
23282    fn syntax(&self) -> &SyntaxNode {
23283        &self.syntax
23284    }
23285}
23286impl AstNode for JsonWrapperBehaviorClause {
23287    #[inline]
23288    fn can_cast(kind: SyntaxKind) -> bool {
23289        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23290    }
23291    #[inline]
23292    fn cast(syntax: SyntaxNode) -> Option<Self> {
23293        if Self::can_cast(syntax.kind()) {
23294            Some(Self { syntax })
23295        } else {
23296            None
23297        }
23298    }
23299    #[inline]
23300    fn syntax(&self) -> &SyntaxNode {
23301        &self.syntax
23302    }
23303}
23304impl AstNode for LanguageFuncOption {
23305    #[inline]
23306    fn can_cast(kind: SyntaxKind) -> bool {
23307        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23308    }
23309    #[inline]
23310    fn cast(syntax: SyntaxNode) -> Option<Self> {
23311        if Self::can_cast(syntax.kind()) {
23312            Some(Self { syntax })
23313        } else {
23314            None
23315        }
23316    }
23317    #[inline]
23318    fn syntax(&self) -> &SyntaxNode {
23319        &self.syntax
23320    }
23321}
23322impl AstNode for LeakproofFuncOption {
23323    #[inline]
23324    fn can_cast(kind: SyntaxKind) -> bool {
23325        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23326    }
23327    #[inline]
23328    fn cast(syntax: SyntaxNode) -> Option<Self> {
23329        if Self::can_cast(syntax.kind()) {
23330            Some(Self { syntax })
23331        } else {
23332            None
23333        }
23334    }
23335    #[inline]
23336    fn syntax(&self) -> &SyntaxNode {
23337        &self.syntax
23338    }
23339}
23340impl AstNode for LikeClause {
23341    #[inline]
23342    fn can_cast(kind: SyntaxKind) -> bool {
23343        kind == SyntaxKind::LIKE_CLAUSE
23344    }
23345    #[inline]
23346    fn cast(syntax: SyntaxNode) -> Option<Self> {
23347        if Self::can_cast(syntax.kind()) {
23348            Some(Self { syntax })
23349        } else {
23350            None
23351        }
23352    }
23353    #[inline]
23354    fn syntax(&self) -> &SyntaxNode {
23355        &self.syntax
23356    }
23357}
23358impl AstNode for LikeOption {
23359    #[inline]
23360    fn can_cast(kind: SyntaxKind) -> bool {
23361        kind == SyntaxKind::LIKE_OPTION
23362    }
23363    #[inline]
23364    fn cast(syntax: SyntaxNode) -> Option<Self> {
23365        if Self::can_cast(syntax.kind()) {
23366            Some(Self { syntax })
23367        } else {
23368            None
23369        }
23370    }
23371    #[inline]
23372    fn syntax(&self) -> &SyntaxNode {
23373        &self.syntax
23374    }
23375}
23376impl AstNode for LimitClause {
23377    #[inline]
23378    fn can_cast(kind: SyntaxKind) -> bool {
23379        kind == SyntaxKind::LIMIT_CLAUSE
23380    }
23381    #[inline]
23382    fn cast(syntax: SyntaxNode) -> Option<Self> {
23383        if Self::can_cast(syntax.kind()) {
23384            Some(Self { syntax })
23385        } else {
23386            None
23387        }
23388    }
23389    #[inline]
23390    fn syntax(&self) -> &SyntaxNode {
23391        &self.syntax
23392    }
23393}
23394impl AstNode for LimitToTables {
23395    #[inline]
23396    fn can_cast(kind: SyntaxKind) -> bool {
23397        kind == SyntaxKind::LIMIT_TO_TABLES
23398    }
23399    #[inline]
23400    fn cast(syntax: SyntaxNode) -> Option<Self> {
23401        if Self::can_cast(syntax.kind()) {
23402            Some(Self { syntax })
23403        } else {
23404            None
23405        }
23406    }
23407    #[inline]
23408    fn syntax(&self) -> &SyntaxNode {
23409        &self.syntax
23410    }
23411}
23412impl AstNode for Listen {
23413    #[inline]
23414    fn can_cast(kind: SyntaxKind) -> bool {
23415        kind == SyntaxKind::LISTEN
23416    }
23417    #[inline]
23418    fn cast(syntax: SyntaxNode) -> Option<Self> {
23419        if Self::can_cast(syntax.kind()) {
23420            Some(Self { syntax })
23421        } else {
23422            None
23423        }
23424    }
23425    #[inline]
23426    fn syntax(&self) -> &SyntaxNode {
23427        &self.syntax
23428    }
23429}
23430impl AstNode for Literal {
23431    #[inline]
23432    fn can_cast(kind: SyntaxKind) -> bool {
23433        kind == SyntaxKind::LITERAL
23434    }
23435    #[inline]
23436    fn cast(syntax: SyntaxNode) -> Option<Self> {
23437        if Self::can_cast(syntax.kind()) {
23438            Some(Self { syntax })
23439        } else {
23440            None
23441        }
23442    }
23443    #[inline]
23444    fn syntax(&self) -> &SyntaxNode {
23445        &self.syntax
23446    }
23447}
23448impl AstNode for Load {
23449    #[inline]
23450    fn can_cast(kind: SyntaxKind) -> bool {
23451        kind == SyntaxKind::LOAD
23452    }
23453    #[inline]
23454    fn cast(syntax: SyntaxNode) -> Option<Self> {
23455        if Self::can_cast(syntax.kind()) {
23456            Some(Self { syntax })
23457        } else {
23458            None
23459        }
23460    }
23461    #[inline]
23462    fn syntax(&self) -> &SyntaxNode {
23463        &self.syntax
23464    }
23465}
23466impl AstNode for Lock {
23467    #[inline]
23468    fn can_cast(kind: SyntaxKind) -> bool {
23469        kind == SyntaxKind::LOCK
23470    }
23471    #[inline]
23472    fn cast(syntax: SyntaxNode) -> Option<Self> {
23473        if Self::can_cast(syntax.kind()) {
23474            Some(Self { syntax })
23475        } else {
23476            None
23477        }
23478    }
23479    #[inline]
23480    fn syntax(&self) -> &SyntaxNode {
23481        &self.syntax
23482    }
23483}
23484impl AstNode for LockingClause {
23485    #[inline]
23486    fn can_cast(kind: SyntaxKind) -> bool {
23487        kind == SyntaxKind::LOCKING_CLAUSE
23488    }
23489    #[inline]
23490    fn cast(syntax: SyntaxNode) -> Option<Self> {
23491        if Self::can_cast(syntax.kind()) {
23492            Some(Self { syntax })
23493        } else {
23494            None
23495        }
23496    }
23497    #[inline]
23498    fn syntax(&self) -> &SyntaxNode {
23499        &self.syntax
23500    }
23501}
23502impl AstNode for Lteq {
23503    #[inline]
23504    fn can_cast(kind: SyntaxKind) -> bool {
23505        kind == SyntaxKind::LTEQ
23506    }
23507    #[inline]
23508    fn cast(syntax: SyntaxNode) -> Option<Self> {
23509        if Self::can_cast(syntax.kind()) {
23510            Some(Self { syntax })
23511        } else {
23512            None
23513        }
23514    }
23515    #[inline]
23516    fn syntax(&self) -> &SyntaxNode {
23517        &self.syntax
23518    }
23519}
23520impl AstNode for MatchFull {
23521    #[inline]
23522    fn can_cast(kind: SyntaxKind) -> bool {
23523        kind == SyntaxKind::MATCH_FULL
23524    }
23525    #[inline]
23526    fn cast(syntax: SyntaxNode) -> Option<Self> {
23527        if Self::can_cast(syntax.kind()) {
23528            Some(Self { syntax })
23529        } else {
23530            None
23531        }
23532    }
23533    #[inline]
23534    fn syntax(&self) -> &SyntaxNode {
23535        &self.syntax
23536    }
23537}
23538impl AstNode for MatchPartial {
23539    #[inline]
23540    fn can_cast(kind: SyntaxKind) -> bool {
23541        kind == SyntaxKind::MATCH_PARTIAL
23542    }
23543    #[inline]
23544    fn cast(syntax: SyntaxNode) -> Option<Self> {
23545        if Self::can_cast(syntax.kind()) {
23546            Some(Self { syntax })
23547        } else {
23548            None
23549        }
23550    }
23551    #[inline]
23552    fn syntax(&self) -> &SyntaxNode {
23553        &self.syntax
23554    }
23555}
23556impl AstNode for MatchSimple {
23557    #[inline]
23558    fn can_cast(kind: SyntaxKind) -> bool {
23559        kind == SyntaxKind::MATCH_SIMPLE
23560    }
23561    #[inline]
23562    fn cast(syntax: SyntaxNode) -> Option<Self> {
23563        if Self::can_cast(syntax.kind()) {
23564            Some(Self { syntax })
23565        } else {
23566            None
23567        }
23568    }
23569    #[inline]
23570    fn syntax(&self) -> &SyntaxNode {
23571        &self.syntax
23572    }
23573}
23574impl AstNode for Materialized {
23575    #[inline]
23576    fn can_cast(kind: SyntaxKind) -> bool {
23577        kind == SyntaxKind::MATERIALIZED
23578    }
23579    #[inline]
23580    fn cast(syntax: SyntaxNode) -> Option<Self> {
23581        if Self::can_cast(syntax.kind()) {
23582            Some(Self { syntax })
23583        } else {
23584            None
23585        }
23586    }
23587    #[inline]
23588    fn syntax(&self) -> &SyntaxNode {
23589        &self.syntax
23590    }
23591}
23592impl AstNode for Merge {
23593    #[inline]
23594    fn can_cast(kind: SyntaxKind) -> bool {
23595        kind == SyntaxKind::MERGE
23596    }
23597    #[inline]
23598    fn cast(syntax: SyntaxNode) -> Option<Self> {
23599        if Self::can_cast(syntax.kind()) {
23600            Some(Self { syntax })
23601        } else {
23602            None
23603        }
23604    }
23605    #[inline]
23606    fn syntax(&self) -> &SyntaxNode {
23607        &self.syntax
23608    }
23609}
23610impl AstNode for MergeDelete {
23611    #[inline]
23612    fn can_cast(kind: SyntaxKind) -> bool {
23613        kind == SyntaxKind::MERGE_DELETE
23614    }
23615    #[inline]
23616    fn cast(syntax: SyntaxNode) -> Option<Self> {
23617        if Self::can_cast(syntax.kind()) {
23618            Some(Self { syntax })
23619        } else {
23620            None
23621        }
23622    }
23623    #[inline]
23624    fn syntax(&self) -> &SyntaxNode {
23625        &self.syntax
23626    }
23627}
23628impl AstNode for MergeDoNothing {
23629    #[inline]
23630    fn can_cast(kind: SyntaxKind) -> bool {
23631        kind == SyntaxKind::MERGE_DO_NOTHING
23632    }
23633    #[inline]
23634    fn cast(syntax: SyntaxNode) -> Option<Self> {
23635        if Self::can_cast(syntax.kind()) {
23636            Some(Self { syntax })
23637        } else {
23638            None
23639        }
23640    }
23641    #[inline]
23642    fn syntax(&self) -> &SyntaxNode {
23643        &self.syntax
23644    }
23645}
23646impl AstNode for MergeInsert {
23647    #[inline]
23648    fn can_cast(kind: SyntaxKind) -> bool {
23649        kind == SyntaxKind::MERGE_INSERT
23650    }
23651    #[inline]
23652    fn cast(syntax: SyntaxNode) -> Option<Self> {
23653        if Self::can_cast(syntax.kind()) {
23654            Some(Self { syntax })
23655        } else {
23656            None
23657        }
23658    }
23659    #[inline]
23660    fn syntax(&self) -> &SyntaxNode {
23661        &self.syntax
23662    }
23663}
23664impl AstNode for MergePartitions {
23665    #[inline]
23666    fn can_cast(kind: SyntaxKind) -> bool {
23667        kind == SyntaxKind::MERGE_PARTITIONS
23668    }
23669    #[inline]
23670    fn cast(syntax: SyntaxNode) -> Option<Self> {
23671        if Self::can_cast(syntax.kind()) {
23672            Some(Self { syntax })
23673        } else {
23674            None
23675        }
23676    }
23677    #[inline]
23678    fn syntax(&self) -> &SyntaxNode {
23679        &self.syntax
23680    }
23681}
23682impl AstNode for MergeUpdate {
23683    #[inline]
23684    fn can_cast(kind: SyntaxKind) -> bool {
23685        kind == SyntaxKind::MERGE_UPDATE
23686    }
23687    #[inline]
23688    fn cast(syntax: SyntaxNode) -> Option<Self> {
23689        if Self::can_cast(syntax.kind()) {
23690            Some(Self { syntax })
23691        } else {
23692            None
23693        }
23694    }
23695    #[inline]
23696    fn syntax(&self) -> &SyntaxNode {
23697        &self.syntax
23698    }
23699}
23700impl AstNode for MergeWhenMatched {
23701    #[inline]
23702    fn can_cast(kind: SyntaxKind) -> bool {
23703        kind == SyntaxKind::MERGE_WHEN_MATCHED
23704    }
23705    #[inline]
23706    fn cast(syntax: SyntaxNode) -> Option<Self> {
23707        if Self::can_cast(syntax.kind()) {
23708            Some(Self { syntax })
23709        } else {
23710            None
23711        }
23712    }
23713    #[inline]
23714    fn syntax(&self) -> &SyntaxNode {
23715        &self.syntax
23716    }
23717}
23718impl AstNode for MergeWhenNotMatchedSource {
23719    #[inline]
23720    fn can_cast(kind: SyntaxKind) -> bool {
23721        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23722    }
23723    #[inline]
23724    fn cast(syntax: SyntaxNode) -> Option<Self> {
23725        if Self::can_cast(syntax.kind()) {
23726            Some(Self { syntax })
23727        } else {
23728            None
23729        }
23730    }
23731    #[inline]
23732    fn syntax(&self) -> &SyntaxNode {
23733        &self.syntax
23734    }
23735}
23736impl AstNode for MergeWhenNotMatchedTarget {
23737    #[inline]
23738    fn can_cast(kind: SyntaxKind) -> bool {
23739        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23740    }
23741    #[inline]
23742    fn cast(syntax: SyntaxNode) -> Option<Self> {
23743        if Self::can_cast(syntax.kind()) {
23744            Some(Self { syntax })
23745        } else {
23746            None
23747        }
23748    }
23749    #[inline]
23750    fn syntax(&self) -> &SyntaxNode {
23751        &self.syntax
23752    }
23753}
23754impl AstNode for Move {
23755    #[inline]
23756    fn can_cast(kind: SyntaxKind) -> bool {
23757        kind == SyntaxKind::MOVE
23758    }
23759    #[inline]
23760    fn cast(syntax: SyntaxNode) -> Option<Self> {
23761        if Self::can_cast(syntax.kind()) {
23762            Some(Self { syntax })
23763        } else {
23764            None
23765        }
23766    }
23767    #[inline]
23768    fn syntax(&self) -> &SyntaxNode {
23769        &self.syntax
23770    }
23771}
23772impl AstNode for Name {
23773    #[inline]
23774    fn can_cast(kind: SyntaxKind) -> bool {
23775        kind == SyntaxKind::NAME
23776    }
23777    #[inline]
23778    fn cast(syntax: SyntaxNode) -> Option<Self> {
23779        if Self::can_cast(syntax.kind()) {
23780            Some(Self { syntax })
23781        } else {
23782            None
23783        }
23784    }
23785    #[inline]
23786    fn syntax(&self) -> &SyntaxNode {
23787        &self.syntax
23788    }
23789}
23790impl AstNode for NameRef {
23791    #[inline]
23792    fn can_cast(kind: SyntaxKind) -> bool {
23793        kind == SyntaxKind::NAME_REF
23794    }
23795    #[inline]
23796    fn cast(syntax: SyntaxNode) -> Option<Self> {
23797        if Self::can_cast(syntax.kind()) {
23798            Some(Self { syntax })
23799        } else {
23800            None
23801        }
23802    }
23803    #[inline]
23804    fn syntax(&self) -> &SyntaxNode {
23805        &self.syntax
23806    }
23807}
23808impl AstNode for NamedArg {
23809    #[inline]
23810    fn can_cast(kind: SyntaxKind) -> bool {
23811        kind == SyntaxKind::NAMED_ARG
23812    }
23813    #[inline]
23814    fn cast(syntax: SyntaxNode) -> Option<Self> {
23815        if Self::can_cast(syntax.kind()) {
23816            Some(Self { syntax })
23817        } else {
23818            None
23819        }
23820    }
23821    #[inline]
23822    fn syntax(&self) -> &SyntaxNode {
23823        &self.syntax
23824    }
23825}
23826impl AstNode for Neq {
23827    #[inline]
23828    fn can_cast(kind: SyntaxKind) -> bool {
23829        kind == SyntaxKind::NEQ
23830    }
23831    #[inline]
23832    fn cast(syntax: SyntaxNode) -> Option<Self> {
23833        if Self::can_cast(syntax.kind()) {
23834            Some(Self { syntax })
23835        } else {
23836            None
23837        }
23838    }
23839    #[inline]
23840    fn syntax(&self) -> &SyntaxNode {
23841        &self.syntax
23842    }
23843}
23844impl AstNode for Neqb {
23845    #[inline]
23846    fn can_cast(kind: SyntaxKind) -> bool {
23847        kind == SyntaxKind::NEQB
23848    }
23849    #[inline]
23850    fn cast(syntax: SyntaxNode) -> Option<Self> {
23851        if Self::can_cast(syntax.kind()) {
23852            Some(Self { syntax })
23853        } else {
23854            None
23855        }
23856    }
23857    #[inline]
23858    fn syntax(&self) -> &SyntaxNode {
23859        &self.syntax
23860    }
23861}
23862impl AstNode for NoAction {
23863    #[inline]
23864    fn can_cast(kind: SyntaxKind) -> bool {
23865        kind == SyntaxKind::NO_ACTION
23866    }
23867    #[inline]
23868    fn cast(syntax: SyntaxNode) -> Option<Self> {
23869        if Self::can_cast(syntax.kind()) {
23870            Some(Self { syntax })
23871        } else {
23872            None
23873        }
23874    }
23875    #[inline]
23876    fn syntax(&self) -> &SyntaxNode {
23877        &self.syntax
23878    }
23879}
23880impl AstNode for NoDependsOnExtension {
23881    #[inline]
23882    fn can_cast(kind: SyntaxKind) -> bool {
23883        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
23884    }
23885    #[inline]
23886    fn cast(syntax: SyntaxNode) -> Option<Self> {
23887        if Self::can_cast(syntax.kind()) {
23888            Some(Self { syntax })
23889        } else {
23890            None
23891        }
23892    }
23893    #[inline]
23894    fn syntax(&self) -> &SyntaxNode {
23895        &self.syntax
23896    }
23897}
23898impl AstNode for NoForceRls {
23899    #[inline]
23900    fn can_cast(kind: SyntaxKind) -> bool {
23901        kind == SyntaxKind::NO_FORCE_RLS
23902    }
23903    #[inline]
23904    fn cast(syntax: SyntaxNode) -> Option<Self> {
23905        if Self::can_cast(syntax.kind()) {
23906            Some(Self { syntax })
23907        } else {
23908            None
23909        }
23910    }
23911    #[inline]
23912    fn syntax(&self) -> &SyntaxNode {
23913        &self.syntax
23914    }
23915}
23916impl AstNode for NoInherit {
23917    #[inline]
23918    fn can_cast(kind: SyntaxKind) -> bool {
23919        kind == SyntaxKind::NO_INHERIT
23920    }
23921    #[inline]
23922    fn cast(syntax: SyntaxNode) -> Option<Self> {
23923        if Self::can_cast(syntax.kind()) {
23924            Some(Self { syntax })
23925        } else {
23926            None
23927        }
23928    }
23929    #[inline]
23930    fn syntax(&self) -> &SyntaxNode {
23931        &self.syntax
23932    }
23933}
23934impl AstNode for NoInheritTable {
23935    #[inline]
23936    fn can_cast(kind: SyntaxKind) -> bool {
23937        kind == SyntaxKind::NO_INHERIT_TABLE
23938    }
23939    #[inline]
23940    fn cast(syntax: SyntaxNode) -> Option<Self> {
23941        if Self::can_cast(syntax.kind()) {
23942            Some(Self { syntax })
23943        } else {
23944            None
23945        }
23946    }
23947    #[inline]
23948    fn syntax(&self) -> &SyntaxNode {
23949        &self.syntax
23950    }
23951}
23952impl AstNode for NonStandardParam {
23953    #[inline]
23954    fn can_cast(kind: SyntaxKind) -> bool {
23955        kind == SyntaxKind::NON_STANDARD_PARAM
23956    }
23957    #[inline]
23958    fn cast(syntax: SyntaxNode) -> Option<Self> {
23959        if Self::can_cast(syntax.kind()) {
23960            Some(Self { syntax })
23961        } else {
23962            None
23963        }
23964    }
23965    #[inline]
23966    fn syntax(&self) -> &SyntaxNode {
23967        &self.syntax
23968    }
23969}
23970impl AstNode for NotDeferrable {
23971    #[inline]
23972    fn can_cast(kind: SyntaxKind) -> bool {
23973        kind == SyntaxKind::NOT_DEFERRABLE
23974    }
23975    #[inline]
23976    fn cast(syntax: SyntaxNode) -> Option<Self> {
23977        if Self::can_cast(syntax.kind()) {
23978            Some(Self { syntax })
23979        } else {
23980            None
23981        }
23982    }
23983    #[inline]
23984    fn syntax(&self) -> &SyntaxNode {
23985        &self.syntax
23986    }
23987}
23988impl AstNode for NotDeferrableConstraintOption {
23989    #[inline]
23990    fn can_cast(kind: SyntaxKind) -> bool {
23991        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
23992    }
23993    #[inline]
23994    fn cast(syntax: SyntaxNode) -> Option<Self> {
23995        if Self::can_cast(syntax.kind()) {
23996            Some(Self { syntax })
23997        } else {
23998            None
23999        }
24000    }
24001    #[inline]
24002    fn syntax(&self) -> &SyntaxNode {
24003        &self.syntax
24004    }
24005}
24006impl AstNode for NotEnforced {
24007    #[inline]
24008    fn can_cast(kind: SyntaxKind) -> bool {
24009        kind == SyntaxKind::NOT_ENFORCED
24010    }
24011    #[inline]
24012    fn cast(syntax: SyntaxNode) -> Option<Self> {
24013        if Self::can_cast(syntax.kind()) {
24014            Some(Self { syntax })
24015        } else {
24016            None
24017        }
24018    }
24019    #[inline]
24020    fn syntax(&self) -> &SyntaxNode {
24021        &self.syntax
24022    }
24023}
24024impl AstNode for NotIlike {
24025    #[inline]
24026    fn can_cast(kind: SyntaxKind) -> bool {
24027        kind == SyntaxKind::NOT_ILIKE
24028    }
24029    #[inline]
24030    fn cast(syntax: SyntaxNode) -> Option<Self> {
24031        if Self::can_cast(syntax.kind()) {
24032            Some(Self { syntax })
24033        } else {
24034            None
24035        }
24036    }
24037    #[inline]
24038    fn syntax(&self) -> &SyntaxNode {
24039        &self.syntax
24040    }
24041}
24042impl AstNode for NotIn {
24043    #[inline]
24044    fn can_cast(kind: SyntaxKind) -> bool {
24045        kind == SyntaxKind::NOT_IN
24046    }
24047    #[inline]
24048    fn cast(syntax: SyntaxNode) -> Option<Self> {
24049        if Self::can_cast(syntax.kind()) {
24050            Some(Self { syntax })
24051        } else {
24052            None
24053        }
24054    }
24055    #[inline]
24056    fn syntax(&self) -> &SyntaxNode {
24057        &self.syntax
24058    }
24059}
24060impl AstNode for NotLike {
24061    #[inline]
24062    fn can_cast(kind: SyntaxKind) -> bool {
24063        kind == SyntaxKind::NOT_LIKE
24064    }
24065    #[inline]
24066    fn cast(syntax: SyntaxNode) -> Option<Self> {
24067        if Self::can_cast(syntax.kind()) {
24068            Some(Self { syntax })
24069        } else {
24070            None
24071        }
24072    }
24073    #[inline]
24074    fn syntax(&self) -> &SyntaxNode {
24075        &self.syntax
24076    }
24077}
24078impl AstNode for NotMaterialized {
24079    #[inline]
24080    fn can_cast(kind: SyntaxKind) -> bool {
24081        kind == SyntaxKind::NOT_MATERIALIZED
24082    }
24083    #[inline]
24084    fn cast(syntax: SyntaxNode) -> Option<Self> {
24085        if Self::can_cast(syntax.kind()) {
24086            Some(Self { syntax })
24087        } else {
24088            None
24089        }
24090    }
24091    #[inline]
24092    fn syntax(&self) -> &SyntaxNode {
24093        &self.syntax
24094    }
24095}
24096impl AstNode for NotNullConstraint {
24097    #[inline]
24098    fn can_cast(kind: SyntaxKind) -> bool {
24099        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24100    }
24101    #[inline]
24102    fn cast(syntax: SyntaxNode) -> Option<Self> {
24103        if Self::can_cast(syntax.kind()) {
24104            Some(Self { syntax })
24105        } else {
24106            None
24107        }
24108    }
24109    #[inline]
24110    fn syntax(&self) -> &SyntaxNode {
24111        &self.syntax
24112    }
24113}
24114impl AstNode for NotOf {
24115    #[inline]
24116    fn can_cast(kind: SyntaxKind) -> bool {
24117        kind == SyntaxKind::NOT_OF
24118    }
24119    #[inline]
24120    fn cast(syntax: SyntaxNode) -> Option<Self> {
24121        if Self::can_cast(syntax.kind()) {
24122            Some(Self { syntax })
24123        } else {
24124            None
24125        }
24126    }
24127    #[inline]
24128    fn syntax(&self) -> &SyntaxNode {
24129        &self.syntax
24130    }
24131}
24132impl AstNode for NotSimilarTo {
24133    #[inline]
24134    fn can_cast(kind: SyntaxKind) -> bool {
24135        kind == SyntaxKind::NOT_SIMILAR_TO
24136    }
24137    #[inline]
24138    fn cast(syntax: SyntaxNode) -> Option<Self> {
24139        if Self::can_cast(syntax.kind()) {
24140            Some(Self { syntax })
24141        } else {
24142            None
24143        }
24144    }
24145    #[inline]
24146    fn syntax(&self) -> &SyntaxNode {
24147        &self.syntax
24148    }
24149}
24150impl AstNode for NotValid {
24151    #[inline]
24152    fn can_cast(kind: SyntaxKind) -> bool {
24153        kind == SyntaxKind::NOT_VALID
24154    }
24155    #[inline]
24156    fn cast(syntax: SyntaxNode) -> Option<Self> {
24157        if Self::can_cast(syntax.kind()) {
24158            Some(Self { syntax })
24159        } else {
24160            None
24161        }
24162    }
24163    #[inline]
24164    fn syntax(&self) -> &SyntaxNode {
24165        &self.syntax
24166    }
24167}
24168impl AstNode for Notify {
24169    #[inline]
24170    fn can_cast(kind: SyntaxKind) -> bool {
24171        kind == SyntaxKind::NOTIFY
24172    }
24173    #[inline]
24174    fn cast(syntax: SyntaxNode) -> Option<Self> {
24175        if Self::can_cast(syntax.kind()) {
24176            Some(Self { syntax })
24177        } else {
24178            None
24179        }
24180    }
24181    #[inline]
24182    fn syntax(&self) -> &SyntaxNode {
24183        &self.syntax
24184    }
24185}
24186impl AstNode for NullConstraint {
24187    #[inline]
24188    fn can_cast(kind: SyntaxKind) -> bool {
24189        kind == SyntaxKind::NULL_CONSTRAINT
24190    }
24191    #[inline]
24192    fn cast(syntax: SyntaxNode) -> Option<Self> {
24193        if Self::can_cast(syntax.kind()) {
24194            Some(Self { syntax })
24195        } else {
24196            None
24197        }
24198    }
24199    #[inline]
24200    fn syntax(&self) -> &SyntaxNode {
24201        &self.syntax
24202    }
24203}
24204impl AstNode for NullsDistinct {
24205    #[inline]
24206    fn can_cast(kind: SyntaxKind) -> bool {
24207        kind == SyntaxKind::NULLS_DISTINCT
24208    }
24209    #[inline]
24210    fn cast(syntax: SyntaxNode) -> Option<Self> {
24211        if Self::can_cast(syntax.kind()) {
24212            Some(Self { syntax })
24213        } else {
24214            None
24215        }
24216    }
24217    #[inline]
24218    fn syntax(&self) -> &SyntaxNode {
24219        &self.syntax
24220    }
24221}
24222impl AstNode for NullsFirst {
24223    #[inline]
24224    fn can_cast(kind: SyntaxKind) -> bool {
24225        kind == SyntaxKind::NULLS_FIRST
24226    }
24227    #[inline]
24228    fn cast(syntax: SyntaxNode) -> Option<Self> {
24229        if Self::can_cast(syntax.kind()) {
24230            Some(Self { syntax })
24231        } else {
24232            None
24233        }
24234    }
24235    #[inline]
24236    fn syntax(&self) -> &SyntaxNode {
24237        &self.syntax
24238    }
24239}
24240impl AstNode for NullsLast {
24241    #[inline]
24242    fn can_cast(kind: SyntaxKind) -> bool {
24243        kind == SyntaxKind::NULLS_LAST
24244    }
24245    #[inline]
24246    fn cast(syntax: SyntaxNode) -> Option<Self> {
24247        if Self::can_cast(syntax.kind()) {
24248            Some(Self { syntax })
24249        } else {
24250            None
24251        }
24252    }
24253    #[inline]
24254    fn syntax(&self) -> &SyntaxNode {
24255        &self.syntax
24256    }
24257}
24258impl AstNode for NullsNotDistinct {
24259    #[inline]
24260    fn can_cast(kind: SyntaxKind) -> bool {
24261        kind == SyntaxKind::NULLS_NOT_DISTINCT
24262    }
24263    #[inline]
24264    fn cast(syntax: SyntaxNode) -> Option<Self> {
24265        if Self::can_cast(syntax.kind()) {
24266            Some(Self { syntax })
24267        } else {
24268            None
24269        }
24270    }
24271    #[inline]
24272    fn syntax(&self) -> &SyntaxNode {
24273        &self.syntax
24274    }
24275}
24276impl AstNode for OfType {
24277    #[inline]
24278    fn can_cast(kind: SyntaxKind) -> bool {
24279        kind == SyntaxKind::OF_TYPE
24280    }
24281    #[inline]
24282    fn cast(syntax: SyntaxNode) -> Option<Self> {
24283        if Self::can_cast(syntax.kind()) {
24284            Some(Self { syntax })
24285        } else {
24286            None
24287        }
24288    }
24289    #[inline]
24290    fn syntax(&self) -> &SyntaxNode {
24291        &self.syntax
24292    }
24293}
24294impl AstNode for OffsetClause {
24295    #[inline]
24296    fn can_cast(kind: SyntaxKind) -> bool {
24297        kind == SyntaxKind::OFFSET_CLAUSE
24298    }
24299    #[inline]
24300    fn cast(syntax: SyntaxNode) -> Option<Self> {
24301        if Self::can_cast(syntax.kind()) {
24302            Some(Self { syntax })
24303        } else {
24304            None
24305        }
24306    }
24307    #[inline]
24308    fn syntax(&self) -> &SyntaxNode {
24309        &self.syntax
24310    }
24311}
24312impl AstNode for OnClause {
24313    #[inline]
24314    fn can_cast(kind: SyntaxKind) -> bool {
24315        kind == SyntaxKind::ON_CLAUSE
24316    }
24317    #[inline]
24318    fn cast(syntax: SyntaxNode) -> Option<Self> {
24319        if Self::can_cast(syntax.kind()) {
24320            Some(Self { syntax })
24321        } else {
24322            None
24323        }
24324    }
24325    #[inline]
24326    fn syntax(&self) -> &SyntaxNode {
24327        &self.syntax
24328    }
24329}
24330impl AstNode for OnCommit {
24331    #[inline]
24332    fn can_cast(kind: SyntaxKind) -> bool {
24333        kind == SyntaxKind::ON_COMMIT
24334    }
24335    #[inline]
24336    fn cast(syntax: SyntaxNode) -> Option<Self> {
24337        if Self::can_cast(syntax.kind()) {
24338            Some(Self { syntax })
24339        } else {
24340            None
24341        }
24342    }
24343    #[inline]
24344    fn syntax(&self) -> &SyntaxNode {
24345        &self.syntax
24346    }
24347}
24348impl AstNode for OnConflictClause {
24349    #[inline]
24350    fn can_cast(kind: SyntaxKind) -> bool {
24351        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24352    }
24353    #[inline]
24354    fn cast(syntax: SyntaxNode) -> Option<Self> {
24355        if Self::can_cast(syntax.kind()) {
24356            Some(Self { syntax })
24357        } else {
24358            None
24359        }
24360    }
24361    #[inline]
24362    fn syntax(&self) -> &SyntaxNode {
24363        &self.syntax
24364    }
24365}
24366impl AstNode for OnDeleteAction {
24367    #[inline]
24368    fn can_cast(kind: SyntaxKind) -> bool {
24369        kind == SyntaxKind::ON_DELETE_ACTION
24370    }
24371    #[inline]
24372    fn cast(syntax: SyntaxNode) -> Option<Self> {
24373        if Self::can_cast(syntax.kind()) {
24374            Some(Self { syntax })
24375        } else {
24376            None
24377        }
24378    }
24379    #[inline]
24380    fn syntax(&self) -> &SyntaxNode {
24381        &self.syntax
24382    }
24383}
24384impl AstNode for OnTable {
24385    #[inline]
24386    fn can_cast(kind: SyntaxKind) -> bool {
24387        kind == SyntaxKind::ON_TABLE
24388    }
24389    #[inline]
24390    fn cast(syntax: SyntaxNode) -> Option<Self> {
24391        if Self::can_cast(syntax.kind()) {
24392            Some(Self { syntax })
24393        } else {
24394            None
24395        }
24396    }
24397    #[inline]
24398    fn syntax(&self) -> &SyntaxNode {
24399        &self.syntax
24400    }
24401}
24402impl AstNode for OnUpdateAction {
24403    #[inline]
24404    fn can_cast(kind: SyntaxKind) -> bool {
24405        kind == SyntaxKind::ON_UPDATE_ACTION
24406    }
24407    #[inline]
24408    fn cast(syntax: SyntaxNode) -> Option<Self> {
24409        if Self::can_cast(syntax.kind()) {
24410            Some(Self { syntax })
24411        } else {
24412            None
24413        }
24414    }
24415    #[inline]
24416    fn syntax(&self) -> &SyntaxNode {
24417        &self.syntax
24418    }
24419}
24420impl AstNode for Op {
24421    #[inline]
24422    fn can_cast(kind: SyntaxKind) -> bool {
24423        kind == SyntaxKind::OP
24424    }
24425    #[inline]
24426    fn cast(syntax: SyntaxNode) -> Option<Self> {
24427        if Self::can_cast(syntax.kind()) {
24428            Some(Self { syntax })
24429        } else {
24430            None
24431        }
24432    }
24433    #[inline]
24434    fn syntax(&self) -> &SyntaxNode {
24435        &self.syntax
24436    }
24437}
24438impl AstNode for OpClassOption {
24439    #[inline]
24440    fn can_cast(kind: SyntaxKind) -> bool {
24441        kind == SyntaxKind::OP_CLASS_OPTION
24442    }
24443    #[inline]
24444    fn cast(syntax: SyntaxNode) -> Option<Self> {
24445        if Self::can_cast(syntax.kind()) {
24446            Some(Self { syntax })
24447        } else {
24448            None
24449        }
24450    }
24451    #[inline]
24452    fn syntax(&self) -> &SyntaxNode {
24453        &self.syntax
24454    }
24455}
24456impl AstNode for OpSig {
24457    #[inline]
24458    fn can_cast(kind: SyntaxKind) -> bool {
24459        kind == SyntaxKind::OP_SIG
24460    }
24461    #[inline]
24462    fn cast(syntax: SyntaxNode) -> Option<Self> {
24463        if Self::can_cast(syntax.kind()) {
24464            Some(Self { syntax })
24465        } else {
24466            None
24467        }
24468    }
24469    #[inline]
24470    fn syntax(&self) -> &SyntaxNode {
24471        &self.syntax
24472    }
24473}
24474impl AstNode for OpSigList {
24475    #[inline]
24476    fn can_cast(kind: SyntaxKind) -> bool {
24477        kind == SyntaxKind::OP_SIG_LIST
24478    }
24479    #[inline]
24480    fn cast(syntax: SyntaxNode) -> Option<Self> {
24481        if Self::can_cast(syntax.kind()) {
24482            Some(Self { syntax })
24483        } else {
24484            None
24485        }
24486    }
24487    #[inline]
24488    fn syntax(&self) -> &SyntaxNode {
24489        &self.syntax
24490    }
24491}
24492impl AstNode for OperatorCall {
24493    #[inline]
24494    fn can_cast(kind: SyntaxKind) -> bool {
24495        kind == SyntaxKind::OPERATOR_CALL
24496    }
24497    #[inline]
24498    fn cast(syntax: SyntaxNode) -> Option<Self> {
24499        if Self::can_cast(syntax.kind()) {
24500            Some(Self { syntax })
24501        } else {
24502            None
24503        }
24504    }
24505    #[inline]
24506    fn syntax(&self) -> &SyntaxNode {
24507        &self.syntax
24508    }
24509}
24510impl AstNode for OperatorClassOptionList {
24511    #[inline]
24512    fn can_cast(kind: SyntaxKind) -> bool {
24513        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24514    }
24515    #[inline]
24516    fn cast(syntax: SyntaxNode) -> Option<Self> {
24517        if Self::can_cast(syntax.kind()) {
24518            Some(Self { syntax })
24519        } else {
24520            None
24521        }
24522    }
24523    #[inline]
24524    fn syntax(&self) -> &SyntaxNode {
24525        &self.syntax
24526    }
24527}
24528impl AstNode for OptionItem {
24529    #[inline]
24530    fn can_cast(kind: SyntaxKind) -> bool {
24531        kind == SyntaxKind::OPTION_ITEM
24532    }
24533    #[inline]
24534    fn cast(syntax: SyntaxNode) -> Option<Self> {
24535        if Self::can_cast(syntax.kind()) {
24536            Some(Self { syntax })
24537        } else {
24538            None
24539        }
24540    }
24541    #[inline]
24542    fn syntax(&self) -> &SyntaxNode {
24543        &self.syntax
24544    }
24545}
24546impl AstNode for OptionItemList {
24547    #[inline]
24548    fn can_cast(kind: SyntaxKind) -> bool {
24549        kind == SyntaxKind::OPTION_ITEM_LIST
24550    }
24551    #[inline]
24552    fn cast(syntax: SyntaxNode) -> Option<Self> {
24553        if Self::can_cast(syntax.kind()) {
24554            Some(Self { syntax })
24555        } else {
24556            None
24557        }
24558    }
24559    #[inline]
24560    fn syntax(&self) -> &SyntaxNode {
24561        &self.syntax
24562    }
24563}
24564impl AstNode for OrReplace {
24565    #[inline]
24566    fn can_cast(kind: SyntaxKind) -> bool {
24567        kind == SyntaxKind::OR_REPLACE
24568    }
24569    #[inline]
24570    fn cast(syntax: SyntaxNode) -> Option<Self> {
24571        if Self::can_cast(syntax.kind()) {
24572            Some(Self { syntax })
24573        } else {
24574            None
24575        }
24576    }
24577    #[inline]
24578    fn syntax(&self) -> &SyntaxNode {
24579        &self.syntax
24580    }
24581}
24582impl AstNode for OrderByClause {
24583    #[inline]
24584    fn can_cast(kind: SyntaxKind) -> bool {
24585        kind == SyntaxKind::ORDER_BY_CLAUSE
24586    }
24587    #[inline]
24588    fn cast(syntax: SyntaxNode) -> Option<Self> {
24589        if Self::can_cast(syntax.kind()) {
24590            Some(Self { syntax })
24591        } else {
24592            None
24593        }
24594    }
24595    #[inline]
24596    fn syntax(&self) -> &SyntaxNode {
24597        &self.syntax
24598    }
24599}
24600impl AstNode for OverClause {
24601    #[inline]
24602    fn can_cast(kind: SyntaxKind) -> bool {
24603        kind == SyntaxKind::OVER_CLAUSE
24604    }
24605    #[inline]
24606    fn cast(syntax: SyntaxNode) -> Option<Self> {
24607        if Self::can_cast(syntax.kind()) {
24608            Some(Self { syntax })
24609        } else {
24610            None
24611        }
24612    }
24613    #[inline]
24614    fn syntax(&self) -> &SyntaxNode {
24615        &self.syntax
24616    }
24617}
24618impl AstNode for OverlayFn {
24619    #[inline]
24620    fn can_cast(kind: SyntaxKind) -> bool {
24621        kind == SyntaxKind::OVERLAY_FN
24622    }
24623    #[inline]
24624    fn cast(syntax: SyntaxNode) -> Option<Self> {
24625        if Self::can_cast(syntax.kind()) {
24626            Some(Self { syntax })
24627        } else {
24628            None
24629        }
24630    }
24631    #[inline]
24632    fn syntax(&self) -> &SyntaxNode {
24633        &self.syntax
24634    }
24635}
24636impl AstNode for OwnerTo {
24637    #[inline]
24638    fn can_cast(kind: SyntaxKind) -> bool {
24639        kind == SyntaxKind::OWNER_TO
24640    }
24641    #[inline]
24642    fn cast(syntax: SyntaxNode) -> Option<Self> {
24643        if Self::can_cast(syntax.kind()) {
24644            Some(Self { syntax })
24645        } else {
24646            None
24647        }
24648    }
24649    #[inline]
24650    fn syntax(&self) -> &SyntaxNode {
24651        &self.syntax
24652    }
24653}
24654impl AstNode for ParallelFuncOption {
24655    #[inline]
24656    fn can_cast(kind: SyntaxKind) -> bool {
24657        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24658    }
24659    #[inline]
24660    fn cast(syntax: SyntaxNode) -> Option<Self> {
24661        if Self::can_cast(syntax.kind()) {
24662            Some(Self { syntax })
24663        } else {
24664            None
24665        }
24666    }
24667    #[inline]
24668    fn syntax(&self) -> &SyntaxNode {
24669        &self.syntax
24670    }
24671}
24672impl AstNode for Param {
24673    #[inline]
24674    fn can_cast(kind: SyntaxKind) -> bool {
24675        kind == SyntaxKind::PARAM
24676    }
24677    #[inline]
24678    fn cast(syntax: SyntaxNode) -> Option<Self> {
24679        if Self::can_cast(syntax.kind()) {
24680            Some(Self { syntax })
24681        } else {
24682            None
24683        }
24684    }
24685    #[inline]
24686    fn syntax(&self) -> &SyntaxNode {
24687        &self.syntax
24688    }
24689}
24690impl AstNode for ParamDefault {
24691    #[inline]
24692    fn can_cast(kind: SyntaxKind) -> bool {
24693        kind == SyntaxKind::PARAM_DEFAULT
24694    }
24695    #[inline]
24696    fn cast(syntax: SyntaxNode) -> Option<Self> {
24697        if Self::can_cast(syntax.kind()) {
24698            Some(Self { syntax })
24699        } else {
24700            None
24701        }
24702    }
24703    #[inline]
24704    fn syntax(&self) -> &SyntaxNode {
24705        &self.syntax
24706    }
24707}
24708impl AstNode for ParamIn {
24709    #[inline]
24710    fn can_cast(kind: SyntaxKind) -> bool {
24711        kind == SyntaxKind::PARAM_IN
24712    }
24713    #[inline]
24714    fn cast(syntax: SyntaxNode) -> Option<Self> {
24715        if Self::can_cast(syntax.kind()) {
24716            Some(Self { syntax })
24717        } else {
24718            None
24719        }
24720    }
24721    #[inline]
24722    fn syntax(&self) -> &SyntaxNode {
24723        &self.syntax
24724    }
24725}
24726impl AstNode for ParamInOut {
24727    #[inline]
24728    fn can_cast(kind: SyntaxKind) -> bool {
24729        kind == SyntaxKind::PARAM_IN_OUT
24730    }
24731    #[inline]
24732    fn cast(syntax: SyntaxNode) -> Option<Self> {
24733        if Self::can_cast(syntax.kind()) {
24734            Some(Self { syntax })
24735        } else {
24736            None
24737        }
24738    }
24739    #[inline]
24740    fn syntax(&self) -> &SyntaxNode {
24741        &self.syntax
24742    }
24743}
24744impl AstNode for ParamList {
24745    #[inline]
24746    fn can_cast(kind: SyntaxKind) -> bool {
24747        kind == SyntaxKind::PARAM_LIST
24748    }
24749    #[inline]
24750    fn cast(syntax: SyntaxNode) -> Option<Self> {
24751        if Self::can_cast(syntax.kind()) {
24752            Some(Self { syntax })
24753        } else {
24754            None
24755        }
24756    }
24757    #[inline]
24758    fn syntax(&self) -> &SyntaxNode {
24759        &self.syntax
24760    }
24761}
24762impl AstNode for ParamOut {
24763    #[inline]
24764    fn can_cast(kind: SyntaxKind) -> bool {
24765        kind == SyntaxKind::PARAM_OUT
24766    }
24767    #[inline]
24768    fn cast(syntax: SyntaxNode) -> Option<Self> {
24769        if Self::can_cast(syntax.kind()) {
24770            Some(Self { syntax })
24771        } else {
24772            None
24773        }
24774    }
24775    #[inline]
24776    fn syntax(&self) -> &SyntaxNode {
24777        &self.syntax
24778    }
24779}
24780impl AstNode for ParamVariadic {
24781    #[inline]
24782    fn can_cast(kind: SyntaxKind) -> bool {
24783        kind == SyntaxKind::PARAM_VARIADIC
24784    }
24785    #[inline]
24786    fn cast(syntax: SyntaxNode) -> Option<Self> {
24787        if Self::can_cast(syntax.kind()) {
24788            Some(Self { syntax })
24789        } else {
24790            None
24791        }
24792    }
24793    #[inline]
24794    fn syntax(&self) -> &SyntaxNode {
24795        &self.syntax
24796    }
24797}
24798impl AstNode for ParenExpr {
24799    #[inline]
24800    fn can_cast(kind: SyntaxKind) -> bool {
24801        kind == SyntaxKind::PAREN_EXPR
24802    }
24803    #[inline]
24804    fn cast(syntax: SyntaxNode) -> Option<Self> {
24805        if Self::can_cast(syntax.kind()) {
24806            Some(Self { syntax })
24807        } else {
24808            None
24809        }
24810    }
24811    #[inline]
24812    fn syntax(&self) -> &SyntaxNode {
24813        &self.syntax
24814    }
24815}
24816impl AstNode for ParenSelect {
24817    #[inline]
24818    fn can_cast(kind: SyntaxKind) -> bool {
24819        kind == SyntaxKind::PAREN_SELECT
24820    }
24821    #[inline]
24822    fn cast(syntax: SyntaxNode) -> Option<Self> {
24823        if Self::can_cast(syntax.kind()) {
24824            Some(Self { syntax })
24825        } else {
24826            None
24827        }
24828    }
24829    #[inline]
24830    fn syntax(&self) -> &SyntaxNode {
24831        &self.syntax
24832    }
24833}
24834impl AstNode for Partition {
24835    #[inline]
24836    fn can_cast(kind: SyntaxKind) -> bool {
24837        kind == SyntaxKind::PARTITION
24838    }
24839    #[inline]
24840    fn cast(syntax: SyntaxNode) -> Option<Self> {
24841        if Self::can_cast(syntax.kind()) {
24842            Some(Self { syntax })
24843        } else {
24844            None
24845        }
24846    }
24847    #[inline]
24848    fn syntax(&self) -> &SyntaxNode {
24849        &self.syntax
24850    }
24851}
24852impl AstNode for PartitionBy {
24853    #[inline]
24854    fn can_cast(kind: SyntaxKind) -> bool {
24855        kind == SyntaxKind::PARTITION_BY
24856    }
24857    #[inline]
24858    fn cast(syntax: SyntaxNode) -> Option<Self> {
24859        if Self::can_cast(syntax.kind()) {
24860            Some(Self { syntax })
24861        } else {
24862            None
24863        }
24864    }
24865    #[inline]
24866    fn syntax(&self) -> &SyntaxNode {
24867        &self.syntax
24868    }
24869}
24870impl AstNode for PartitionDefault {
24871    #[inline]
24872    fn can_cast(kind: SyntaxKind) -> bool {
24873        kind == SyntaxKind::PARTITION_DEFAULT
24874    }
24875    #[inline]
24876    fn cast(syntax: SyntaxNode) -> Option<Self> {
24877        if Self::can_cast(syntax.kind()) {
24878            Some(Self { syntax })
24879        } else {
24880            None
24881        }
24882    }
24883    #[inline]
24884    fn syntax(&self) -> &SyntaxNode {
24885        &self.syntax
24886    }
24887}
24888impl AstNode for PartitionForValuesFrom {
24889    #[inline]
24890    fn can_cast(kind: SyntaxKind) -> bool {
24891        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
24892    }
24893    #[inline]
24894    fn cast(syntax: SyntaxNode) -> Option<Self> {
24895        if Self::can_cast(syntax.kind()) {
24896            Some(Self { syntax })
24897        } else {
24898            None
24899        }
24900    }
24901    #[inline]
24902    fn syntax(&self) -> &SyntaxNode {
24903        &self.syntax
24904    }
24905}
24906impl AstNode for PartitionForValuesIn {
24907    #[inline]
24908    fn can_cast(kind: SyntaxKind) -> bool {
24909        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
24910    }
24911    #[inline]
24912    fn cast(syntax: SyntaxNode) -> Option<Self> {
24913        if Self::can_cast(syntax.kind()) {
24914            Some(Self { syntax })
24915        } else {
24916            None
24917        }
24918    }
24919    #[inline]
24920    fn syntax(&self) -> &SyntaxNode {
24921        &self.syntax
24922    }
24923}
24924impl AstNode for PartitionForValuesWith {
24925    #[inline]
24926    fn can_cast(kind: SyntaxKind) -> bool {
24927        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
24928    }
24929    #[inline]
24930    fn cast(syntax: SyntaxNode) -> Option<Self> {
24931        if Self::can_cast(syntax.kind()) {
24932            Some(Self { syntax })
24933        } else {
24934            None
24935        }
24936    }
24937    #[inline]
24938    fn syntax(&self) -> &SyntaxNode {
24939        &self.syntax
24940    }
24941}
24942impl AstNode for PartitionItem {
24943    #[inline]
24944    fn can_cast(kind: SyntaxKind) -> bool {
24945        kind == SyntaxKind::PARTITION_ITEM
24946    }
24947    #[inline]
24948    fn cast(syntax: SyntaxNode) -> Option<Self> {
24949        if Self::can_cast(syntax.kind()) {
24950            Some(Self { syntax })
24951        } else {
24952            None
24953        }
24954    }
24955    #[inline]
24956    fn syntax(&self) -> &SyntaxNode {
24957        &self.syntax
24958    }
24959}
24960impl AstNode for PartitionItemList {
24961    #[inline]
24962    fn can_cast(kind: SyntaxKind) -> bool {
24963        kind == SyntaxKind::PARTITION_ITEM_LIST
24964    }
24965    #[inline]
24966    fn cast(syntax: SyntaxNode) -> Option<Self> {
24967        if Self::can_cast(syntax.kind()) {
24968            Some(Self { syntax })
24969        } else {
24970            None
24971        }
24972    }
24973    #[inline]
24974    fn syntax(&self) -> &SyntaxNode {
24975        &self.syntax
24976    }
24977}
24978impl AstNode for PartitionList {
24979    #[inline]
24980    fn can_cast(kind: SyntaxKind) -> bool {
24981        kind == SyntaxKind::PARTITION_LIST
24982    }
24983    #[inline]
24984    fn cast(syntax: SyntaxNode) -> Option<Self> {
24985        if Self::can_cast(syntax.kind()) {
24986            Some(Self { syntax })
24987        } else {
24988            None
24989        }
24990    }
24991    #[inline]
24992    fn syntax(&self) -> &SyntaxNode {
24993        &self.syntax
24994    }
24995}
24996impl AstNode for PartitionOf {
24997    #[inline]
24998    fn can_cast(kind: SyntaxKind) -> bool {
24999        kind == SyntaxKind::PARTITION_OF
25000    }
25001    #[inline]
25002    fn cast(syntax: SyntaxNode) -> Option<Self> {
25003        if Self::can_cast(syntax.kind()) {
25004            Some(Self { syntax })
25005        } else {
25006            None
25007        }
25008    }
25009    #[inline]
25010    fn syntax(&self) -> &SyntaxNode {
25011        &self.syntax
25012    }
25013}
25014impl AstNode for Path {
25015    #[inline]
25016    fn can_cast(kind: SyntaxKind) -> bool {
25017        kind == SyntaxKind::PATH
25018    }
25019    #[inline]
25020    fn cast(syntax: SyntaxNode) -> Option<Self> {
25021        if Self::can_cast(syntax.kind()) {
25022            Some(Self { syntax })
25023        } else {
25024            None
25025        }
25026    }
25027    #[inline]
25028    fn syntax(&self) -> &SyntaxNode {
25029        &self.syntax
25030    }
25031}
25032impl AstNode for PathSegment {
25033    #[inline]
25034    fn can_cast(kind: SyntaxKind) -> bool {
25035        kind == SyntaxKind::PATH_SEGMENT
25036    }
25037    #[inline]
25038    fn cast(syntax: SyntaxNode) -> Option<Self> {
25039        if Self::can_cast(syntax.kind()) {
25040            Some(Self { syntax })
25041        } else {
25042            None
25043        }
25044    }
25045    #[inline]
25046    fn syntax(&self) -> &SyntaxNode {
25047        &self.syntax
25048    }
25049}
25050impl AstNode for PathType {
25051    #[inline]
25052    fn can_cast(kind: SyntaxKind) -> bool {
25053        kind == SyntaxKind::PATH_TYPE
25054    }
25055    #[inline]
25056    fn cast(syntax: SyntaxNode) -> Option<Self> {
25057        if Self::can_cast(syntax.kind()) {
25058            Some(Self { syntax })
25059        } else {
25060            None
25061        }
25062    }
25063    #[inline]
25064    fn syntax(&self) -> &SyntaxNode {
25065        &self.syntax
25066    }
25067}
25068impl AstNode for PercentType {
25069    #[inline]
25070    fn can_cast(kind: SyntaxKind) -> bool {
25071        kind == SyntaxKind::PERCENT_TYPE
25072    }
25073    #[inline]
25074    fn cast(syntax: SyntaxNode) -> Option<Self> {
25075        if Self::can_cast(syntax.kind()) {
25076            Some(Self { syntax })
25077        } else {
25078            None
25079        }
25080    }
25081    #[inline]
25082    fn syntax(&self) -> &SyntaxNode {
25083        &self.syntax
25084    }
25085}
25086impl AstNode for PercentTypeClause {
25087    #[inline]
25088    fn can_cast(kind: SyntaxKind) -> bool {
25089        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25090    }
25091    #[inline]
25092    fn cast(syntax: SyntaxNode) -> Option<Self> {
25093        if Self::can_cast(syntax.kind()) {
25094            Some(Self { syntax })
25095        } else {
25096            None
25097        }
25098    }
25099    #[inline]
25100    fn syntax(&self) -> &SyntaxNode {
25101        &self.syntax
25102    }
25103}
25104impl AstNode for PositionFn {
25105    #[inline]
25106    fn can_cast(kind: SyntaxKind) -> bool {
25107        kind == SyntaxKind::POSITION_FN
25108    }
25109    #[inline]
25110    fn cast(syntax: SyntaxNode) -> Option<Self> {
25111        if Self::can_cast(syntax.kind()) {
25112            Some(Self { syntax })
25113        } else {
25114            None
25115        }
25116    }
25117    #[inline]
25118    fn syntax(&self) -> &SyntaxNode {
25119        &self.syntax
25120    }
25121}
25122impl AstNode for PostfixExpr {
25123    #[inline]
25124    fn can_cast(kind: SyntaxKind) -> bool {
25125        kind == SyntaxKind::POSTFIX_EXPR
25126    }
25127    #[inline]
25128    fn cast(syntax: SyntaxNode) -> Option<Self> {
25129        if Self::can_cast(syntax.kind()) {
25130            Some(Self { syntax })
25131        } else {
25132            None
25133        }
25134    }
25135    #[inline]
25136    fn syntax(&self) -> &SyntaxNode {
25137        &self.syntax
25138    }
25139}
25140impl AstNode for PrefixExpr {
25141    #[inline]
25142    fn can_cast(kind: SyntaxKind) -> bool {
25143        kind == SyntaxKind::PREFIX_EXPR
25144    }
25145    #[inline]
25146    fn cast(syntax: SyntaxNode) -> Option<Self> {
25147        if Self::can_cast(syntax.kind()) {
25148            Some(Self { syntax })
25149        } else {
25150            None
25151        }
25152    }
25153    #[inline]
25154    fn syntax(&self) -> &SyntaxNode {
25155        &self.syntax
25156    }
25157}
25158impl AstNode for Prepare {
25159    #[inline]
25160    fn can_cast(kind: SyntaxKind) -> bool {
25161        kind == SyntaxKind::PREPARE
25162    }
25163    #[inline]
25164    fn cast(syntax: SyntaxNode) -> Option<Self> {
25165        if Self::can_cast(syntax.kind()) {
25166            Some(Self { syntax })
25167        } else {
25168            None
25169        }
25170    }
25171    #[inline]
25172    fn syntax(&self) -> &SyntaxNode {
25173        &self.syntax
25174    }
25175}
25176impl AstNode for PrepareTransaction {
25177    #[inline]
25178    fn can_cast(kind: SyntaxKind) -> bool {
25179        kind == SyntaxKind::PREPARE_TRANSACTION
25180    }
25181    #[inline]
25182    fn cast(syntax: SyntaxNode) -> Option<Self> {
25183        if Self::can_cast(syntax.kind()) {
25184            Some(Self { syntax })
25185        } else {
25186            None
25187        }
25188    }
25189    #[inline]
25190    fn syntax(&self) -> &SyntaxNode {
25191        &self.syntax
25192    }
25193}
25194impl AstNode for PreserveRows {
25195    #[inline]
25196    fn can_cast(kind: SyntaxKind) -> bool {
25197        kind == SyntaxKind::PRESERVE_ROWS
25198    }
25199    #[inline]
25200    fn cast(syntax: SyntaxNode) -> Option<Self> {
25201        if Self::can_cast(syntax.kind()) {
25202            Some(Self { syntax })
25203        } else {
25204            None
25205        }
25206    }
25207    #[inline]
25208    fn syntax(&self) -> &SyntaxNode {
25209        &self.syntax
25210    }
25211}
25212impl AstNode for PrimaryKeyConstraint {
25213    #[inline]
25214    fn can_cast(kind: SyntaxKind) -> bool {
25215        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25216    }
25217    #[inline]
25218    fn cast(syntax: SyntaxNode) -> Option<Self> {
25219        if Self::can_cast(syntax.kind()) {
25220            Some(Self { syntax })
25221        } else {
25222            None
25223        }
25224    }
25225    #[inline]
25226    fn syntax(&self) -> &SyntaxNode {
25227        &self.syntax
25228    }
25229}
25230impl AstNode for PrivilegeTarget {
25231    #[inline]
25232    fn can_cast(kind: SyntaxKind) -> bool {
25233        kind == SyntaxKind::PRIVILEGE_TARGET
25234    }
25235    #[inline]
25236    fn cast(syntax: SyntaxNode) -> Option<Self> {
25237        if Self::can_cast(syntax.kind()) {
25238            Some(Self { syntax })
25239        } else {
25240            None
25241        }
25242    }
25243    #[inline]
25244    fn syntax(&self) -> &SyntaxNode {
25245        &self.syntax
25246    }
25247}
25248impl AstNode for Privileges {
25249    #[inline]
25250    fn can_cast(kind: SyntaxKind) -> bool {
25251        kind == SyntaxKind::PRIVILEGES
25252    }
25253    #[inline]
25254    fn cast(syntax: SyntaxNode) -> Option<Self> {
25255        if Self::can_cast(syntax.kind()) {
25256            Some(Self { syntax })
25257        } else {
25258            None
25259        }
25260    }
25261    #[inline]
25262    fn syntax(&self) -> &SyntaxNode {
25263        &self.syntax
25264    }
25265}
25266impl AstNode for PublicationObject {
25267    #[inline]
25268    fn can_cast(kind: SyntaxKind) -> bool {
25269        kind == SyntaxKind::PUBLICATION_OBJECT
25270    }
25271    #[inline]
25272    fn cast(syntax: SyntaxNode) -> Option<Self> {
25273        if Self::can_cast(syntax.kind()) {
25274            Some(Self { syntax })
25275        } else {
25276            None
25277        }
25278    }
25279    #[inline]
25280    fn syntax(&self) -> &SyntaxNode {
25281        &self.syntax
25282    }
25283}
25284impl AstNode for ReadCommitted {
25285    #[inline]
25286    fn can_cast(kind: SyntaxKind) -> bool {
25287        kind == SyntaxKind::READ_COMMITTED
25288    }
25289    #[inline]
25290    fn cast(syntax: SyntaxNode) -> Option<Self> {
25291        if Self::can_cast(syntax.kind()) {
25292            Some(Self { syntax })
25293        } else {
25294            None
25295        }
25296    }
25297    #[inline]
25298    fn syntax(&self) -> &SyntaxNode {
25299        &self.syntax
25300    }
25301}
25302impl AstNode for ReadOnly {
25303    #[inline]
25304    fn can_cast(kind: SyntaxKind) -> bool {
25305        kind == SyntaxKind::READ_ONLY
25306    }
25307    #[inline]
25308    fn cast(syntax: SyntaxNode) -> Option<Self> {
25309        if Self::can_cast(syntax.kind()) {
25310            Some(Self { syntax })
25311        } else {
25312            None
25313        }
25314    }
25315    #[inline]
25316    fn syntax(&self) -> &SyntaxNode {
25317        &self.syntax
25318    }
25319}
25320impl AstNode for ReadUncommitted {
25321    #[inline]
25322    fn can_cast(kind: SyntaxKind) -> bool {
25323        kind == SyntaxKind::READ_UNCOMMITTED
25324    }
25325    #[inline]
25326    fn cast(syntax: SyntaxNode) -> Option<Self> {
25327        if Self::can_cast(syntax.kind()) {
25328            Some(Self { syntax })
25329        } else {
25330            None
25331        }
25332    }
25333    #[inline]
25334    fn syntax(&self) -> &SyntaxNode {
25335        &self.syntax
25336    }
25337}
25338impl AstNode for ReadWrite {
25339    #[inline]
25340    fn can_cast(kind: SyntaxKind) -> bool {
25341        kind == SyntaxKind::READ_WRITE
25342    }
25343    #[inline]
25344    fn cast(syntax: SyntaxNode) -> Option<Self> {
25345        if Self::can_cast(syntax.kind()) {
25346            Some(Self { syntax })
25347        } else {
25348            None
25349        }
25350    }
25351    #[inline]
25352    fn syntax(&self) -> &SyntaxNode {
25353        &self.syntax
25354    }
25355}
25356impl AstNode for Reassign {
25357    #[inline]
25358    fn can_cast(kind: SyntaxKind) -> bool {
25359        kind == SyntaxKind::REASSIGN
25360    }
25361    #[inline]
25362    fn cast(syntax: SyntaxNode) -> Option<Self> {
25363        if Self::can_cast(syntax.kind()) {
25364            Some(Self { syntax })
25365        } else {
25366            None
25367        }
25368    }
25369    #[inline]
25370    fn syntax(&self) -> &SyntaxNode {
25371        &self.syntax
25372    }
25373}
25374impl AstNode for ReferencesConstraint {
25375    #[inline]
25376    fn can_cast(kind: SyntaxKind) -> bool {
25377        kind == SyntaxKind::REFERENCES_CONSTRAINT
25378    }
25379    #[inline]
25380    fn cast(syntax: SyntaxNode) -> Option<Self> {
25381        if Self::can_cast(syntax.kind()) {
25382            Some(Self { syntax })
25383        } else {
25384            None
25385        }
25386    }
25387    #[inline]
25388    fn syntax(&self) -> &SyntaxNode {
25389        &self.syntax
25390    }
25391}
25392impl AstNode for Referencing {
25393    #[inline]
25394    fn can_cast(kind: SyntaxKind) -> bool {
25395        kind == SyntaxKind::REFERENCING
25396    }
25397    #[inline]
25398    fn cast(syntax: SyntaxNode) -> Option<Self> {
25399        if Self::can_cast(syntax.kind()) {
25400            Some(Self { syntax })
25401        } else {
25402            None
25403        }
25404    }
25405    #[inline]
25406    fn syntax(&self) -> &SyntaxNode {
25407        &self.syntax
25408    }
25409}
25410impl AstNode for ReferencingTable {
25411    #[inline]
25412    fn can_cast(kind: SyntaxKind) -> bool {
25413        kind == SyntaxKind::REFERENCING_TABLE
25414    }
25415    #[inline]
25416    fn cast(syntax: SyntaxNode) -> Option<Self> {
25417        if Self::can_cast(syntax.kind()) {
25418            Some(Self { syntax })
25419        } else {
25420            None
25421        }
25422    }
25423    #[inline]
25424    fn syntax(&self) -> &SyntaxNode {
25425        &self.syntax
25426    }
25427}
25428impl AstNode for Refresh {
25429    #[inline]
25430    fn can_cast(kind: SyntaxKind) -> bool {
25431        kind == SyntaxKind::REFRESH
25432    }
25433    #[inline]
25434    fn cast(syntax: SyntaxNode) -> Option<Self> {
25435        if Self::can_cast(syntax.kind()) {
25436            Some(Self { syntax })
25437        } else {
25438            None
25439        }
25440    }
25441    #[inline]
25442    fn syntax(&self) -> &SyntaxNode {
25443        &self.syntax
25444    }
25445}
25446impl AstNode for RefreshCollationVersion {
25447    #[inline]
25448    fn can_cast(kind: SyntaxKind) -> bool {
25449        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25450    }
25451    #[inline]
25452    fn cast(syntax: SyntaxNode) -> Option<Self> {
25453        if Self::can_cast(syntax.kind()) {
25454            Some(Self { syntax })
25455        } else {
25456            None
25457        }
25458    }
25459    #[inline]
25460    fn syntax(&self) -> &SyntaxNode {
25461        &self.syntax
25462    }
25463}
25464impl AstNode for RefreshVersion {
25465    #[inline]
25466    fn can_cast(kind: SyntaxKind) -> bool {
25467        kind == SyntaxKind::REFRESH_VERSION
25468    }
25469    #[inline]
25470    fn cast(syntax: SyntaxNode) -> Option<Self> {
25471        if Self::can_cast(syntax.kind()) {
25472            Some(Self { syntax })
25473        } else {
25474            None
25475        }
25476    }
25477    #[inline]
25478    fn syntax(&self) -> &SyntaxNode {
25479        &self.syntax
25480    }
25481}
25482impl AstNode for Reindex {
25483    #[inline]
25484    fn can_cast(kind: SyntaxKind) -> bool {
25485        kind == SyntaxKind::REINDEX
25486    }
25487    #[inline]
25488    fn cast(syntax: SyntaxNode) -> Option<Self> {
25489        if Self::can_cast(syntax.kind()) {
25490            Some(Self { syntax })
25491        } else {
25492            None
25493        }
25494    }
25495    #[inline]
25496    fn syntax(&self) -> &SyntaxNode {
25497        &self.syntax
25498    }
25499}
25500impl AstNode for RelationName {
25501    #[inline]
25502    fn can_cast(kind: SyntaxKind) -> bool {
25503        kind == SyntaxKind::RELATION_NAME
25504    }
25505    #[inline]
25506    fn cast(syntax: SyntaxNode) -> Option<Self> {
25507        if Self::can_cast(syntax.kind()) {
25508            Some(Self { syntax })
25509        } else {
25510            None
25511        }
25512    }
25513    #[inline]
25514    fn syntax(&self) -> &SyntaxNode {
25515        &self.syntax
25516    }
25517}
25518impl AstNode for ReleaseSavepoint {
25519    #[inline]
25520    fn can_cast(kind: SyntaxKind) -> bool {
25521        kind == SyntaxKind::RELEASE_SAVEPOINT
25522    }
25523    #[inline]
25524    fn cast(syntax: SyntaxNode) -> Option<Self> {
25525        if Self::can_cast(syntax.kind()) {
25526            Some(Self { syntax })
25527        } else {
25528            None
25529        }
25530    }
25531    #[inline]
25532    fn syntax(&self) -> &SyntaxNode {
25533        &self.syntax
25534    }
25535}
25536impl AstNode for RenameColumn {
25537    #[inline]
25538    fn can_cast(kind: SyntaxKind) -> bool {
25539        kind == SyntaxKind::RENAME_COLUMN
25540    }
25541    #[inline]
25542    fn cast(syntax: SyntaxNode) -> Option<Self> {
25543        if Self::can_cast(syntax.kind()) {
25544            Some(Self { syntax })
25545        } else {
25546            None
25547        }
25548    }
25549    #[inline]
25550    fn syntax(&self) -> &SyntaxNode {
25551        &self.syntax
25552    }
25553}
25554impl AstNode for RenameConstraint {
25555    #[inline]
25556    fn can_cast(kind: SyntaxKind) -> bool {
25557        kind == SyntaxKind::RENAME_CONSTRAINT
25558    }
25559    #[inline]
25560    fn cast(syntax: SyntaxNode) -> Option<Self> {
25561        if Self::can_cast(syntax.kind()) {
25562            Some(Self { syntax })
25563        } else {
25564            None
25565        }
25566    }
25567    #[inline]
25568    fn syntax(&self) -> &SyntaxNode {
25569        &self.syntax
25570    }
25571}
25572impl AstNode for RenameTo {
25573    #[inline]
25574    fn can_cast(kind: SyntaxKind) -> bool {
25575        kind == SyntaxKind::RENAME_TO
25576    }
25577    #[inline]
25578    fn cast(syntax: SyntaxNode) -> Option<Self> {
25579        if Self::can_cast(syntax.kind()) {
25580            Some(Self { syntax })
25581        } else {
25582            None
25583        }
25584    }
25585    #[inline]
25586    fn syntax(&self) -> &SyntaxNode {
25587        &self.syntax
25588    }
25589}
25590impl AstNode for RepeatableClause {
25591    #[inline]
25592    fn can_cast(kind: SyntaxKind) -> bool {
25593        kind == SyntaxKind::REPEATABLE_CLAUSE
25594    }
25595    #[inline]
25596    fn cast(syntax: SyntaxNode) -> Option<Self> {
25597        if Self::can_cast(syntax.kind()) {
25598            Some(Self { syntax })
25599        } else {
25600            None
25601        }
25602    }
25603    #[inline]
25604    fn syntax(&self) -> &SyntaxNode {
25605        &self.syntax
25606    }
25607}
25608impl AstNode for RepeatableRead {
25609    #[inline]
25610    fn can_cast(kind: SyntaxKind) -> bool {
25611        kind == SyntaxKind::REPEATABLE_READ
25612    }
25613    #[inline]
25614    fn cast(syntax: SyntaxNode) -> Option<Self> {
25615        if Self::can_cast(syntax.kind()) {
25616            Some(Self { syntax })
25617        } else {
25618            None
25619        }
25620    }
25621    #[inline]
25622    fn syntax(&self) -> &SyntaxNode {
25623        &self.syntax
25624    }
25625}
25626impl AstNode for ReplicaIdentity {
25627    #[inline]
25628    fn can_cast(kind: SyntaxKind) -> bool {
25629        kind == SyntaxKind::REPLICA_IDENTITY
25630    }
25631    #[inline]
25632    fn cast(syntax: SyntaxNode) -> Option<Self> {
25633        if Self::can_cast(syntax.kind()) {
25634            Some(Self { syntax })
25635        } else {
25636            None
25637        }
25638    }
25639    #[inline]
25640    fn syntax(&self) -> &SyntaxNode {
25641        &self.syntax
25642    }
25643}
25644impl AstNode for Reset {
25645    #[inline]
25646    fn can_cast(kind: SyntaxKind) -> bool {
25647        kind == SyntaxKind::RESET
25648    }
25649    #[inline]
25650    fn cast(syntax: SyntaxNode) -> Option<Self> {
25651        if Self::can_cast(syntax.kind()) {
25652            Some(Self { syntax })
25653        } else {
25654            None
25655        }
25656    }
25657    #[inline]
25658    fn syntax(&self) -> &SyntaxNode {
25659        &self.syntax
25660    }
25661}
25662impl AstNode for ResetConfigParam {
25663    #[inline]
25664    fn can_cast(kind: SyntaxKind) -> bool {
25665        kind == SyntaxKind::RESET_CONFIG_PARAM
25666    }
25667    #[inline]
25668    fn cast(syntax: SyntaxNode) -> Option<Self> {
25669        if Self::can_cast(syntax.kind()) {
25670            Some(Self { syntax })
25671        } else {
25672            None
25673        }
25674    }
25675    #[inline]
25676    fn syntax(&self) -> &SyntaxNode {
25677        &self.syntax
25678    }
25679}
25680impl AstNode for ResetFuncOption {
25681    #[inline]
25682    fn can_cast(kind: SyntaxKind) -> bool {
25683        kind == SyntaxKind::RESET_FUNC_OPTION
25684    }
25685    #[inline]
25686    fn cast(syntax: SyntaxNode) -> Option<Self> {
25687        if Self::can_cast(syntax.kind()) {
25688            Some(Self { syntax })
25689        } else {
25690            None
25691        }
25692    }
25693    #[inline]
25694    fn syntax(&self) -> &SyntaxNode {
25695        &self.syntax
25696    }
25697}
25698impl AstNode for ResetOptions {
25699    #[inline]
25700    fn can_cast(kind: SyntaxKind) -> bool {
25701        kind == SyntaxKind::RESET_OPTIONS
25702    }
25703    #[inline]
25704    fn cast(syntax: SyntaxNode) -> Option<Self> {
25705        if Self::can_cast(syntax.kind()) {
25706            Some(Self { syntax })
25707        } else {
25708            None
25709        }
25710    }
25711    #[inline]
25712    fn syntax(&self) -> &SyntaxNode {
25713        &self.syntax
25714    }
25715}
25716impl AstNode for ResetSessionAuth {
25717    #[inline]
25718    fn can_cast(kind: SyntaxKind) -> bool {
25719        kind == SyntaxKind::RESET_SESSION_AUTH
25720    }
25721    #[inline]
25722    fn cast(syntax: SyntaxNode) -> Option<Self> {
25723        if Self::can_cast(syntax.kind()) {
25724            Some(Self { syntax })
25725        } else {
25726            None
25727        }
25728    }
25729    #[inline]
25730    fn syntax(&self) -> &SyntaxNode {
25731        &self.syntax
25732    }
25733}
25734impl AstNode for Restart {
25735    #[inline]
25736    fn can_cast(kind: SyntaxKind) -> bool {
25737        kind == SyntaxKind::RESTART
25738    }
25739    #[inline]
25740    fn cast(syntax: SyntaxNode) -> Option<Self> {
25741        if Self::can_cast(syntax.kind()) {
25742            Some(Self { syntax })
25743        } else {
25744            None
25745        }
25746    }
25747    #[inline]
25748    fn syntax(&self) -> &SyntaxNode {
25749        &self.syntax
25750    }
25751}
25752impl AstNode for Restrict {
25753    #[inline]
25754    fn can_cast(kind: SyntaxKind) -> bool {
25755        kind == SyntaxKind::RESTRICT
25756    }
25757    #[inline]
25758    fn cast(syntax: SyntaxNode) -> Option<Self> {
25759        if Self::can_cast(syntax.kind()) {
25760            Some(Self { syntax })
25761        } else {
25762            None
25763        }
25764    }
25765    #[inline]
25766    fn syntax(&self) -> &SyntaxNode {
25767        &self.syntax
25768    }
25769}
25770impl AstNode for RetType {
25771    #[inline]
25772    fn can_cast(kind: SyntaxKind) -> bool {
25773        kind == SyntaxKind::RET_TYPE
25774    }
25775    #[inline]
25776    fn cast(syntax: SyntaxNode) -> Option<Self> {
25777        if Self::can_cast(syntax.kind()) {
25778            Some(Self { syntax })
25779        } else {
25780            None
25781        }
25782    }
25783    #[inline]
25784    fn syntax(&self) -> &SyntaxNode {
25785        &self.syntax
25786    }
25787}
25788impl AstNode for ReturnFuncOption {
25789    #[inline]
25790    fn can_cast(kind: SyntaxKind) -> bool {
25791        kind == SyntaxKind::RETURN_FUNC_OPTION
25792    }
25793    #[inline]
25794    fn cast(syntax: SyntaxNode) -> Option<Self> {
25795        if Self::can_cast(syntax.kind()) {
25796            Some(Self { syntax })
25797        } else {
25798            None
25799        }
25800    }
25801    #[inline]
25802    fn syntax(&self) -> &SyntaxNode {
25803        &self.syntax
25804    }
25805}
25806impl AstNode for ReturningClause {
25807    #[inline]
25808    fn can_cast(kind: SyntaxKind) -> bool {
25809        kind == SyntaxKind::RETURNING_CLAUSE
25810    }
25811    #[inline]
25812    fn cast(syntax: SyntaxNode) -> Option<Self> {
25813        if Self::can_cast(syntax.kind()) {
25814            Some(Self { syntax })
25815        } else {
25816            None
25817        }
25818    }
25819    #[inline]
25820    fn syntax(&self) -> &SyntaxNode {
25821        &self.syntax
25822    }
25823}
25824impl AstNode for ReturningOption {
25825    #[inline]
25826    fn can_cast(kind: SyntaxKind) -> bool {
25827        kind == SyntaxKind::RETURNING_OPTION
25828    }
25829    #[inline]
25830    fn cast(syntax: SyntaxNode) -> Option<Self> {
25831        if Self::can_cast(syntax.kind()) {
25832            Some(Self { syntax })
25833        } else {
25834            None
25835        }
25836    }
25837    #[inline]
25838    fn syntax(&self) -> &SyntaxNode {
25839        &self.syntax
25840    }
25841}
25842impl AstNode for ReturningOptionList {
25843    #[inline]
25844    fn can_cast(kind: SyntaxKind) -> bool {
25845        kind == SyntaxKind::RETURNING_OPTION_LIST
25846    }
25847    #[inline]
25848    fn cast(syntax: SyntaxNode) -> Option<Self> {
25849        if Self::can_cast(syntax.kind()) {
25850            Some(Self { syntax })
25851        } else {
25852            None
25853        }
25854    }
25855    #[inline]
25856    fn syntax(&self) -> &SyntaxNode {
25857        &self.syntax
25858    }
25859}
25860impl AstNode for Revoke {
25861    #[inline]
25862    fn can_cast(kind: SyntaxKind) -> bool {
25863        kind == SyntaxKind::REVOKE
25864    }
25865    #[inline]
25866    fn cast(syntax: SyntaxNode) -> Option<Self> {
25867        if Self::can_cast(syntax.kind()) {
25868            Some(Self { syntax })
25869        } else {
25870            None
25871        }
25872    }
25873    #[inline]
25874    fn syntax(&self) -> &SyntaxNode {
25875        &self.syntax
25876    }
25877}
25878impl AstNode for RevokeCommand {
25879    #[inline]
25880    fn can_cast(kind: SyntaxKind) -> bool {
25881        kind == SyntaxKind::REVOKE_COMMAND
25882    }
25883    #[inline]
25884    fn cast(syntax: SyntaxNode) -> Option<Self> {
25885        if Self::can_cast(syntax.kind()) {
25886            Some(Self { syntax })
25887        } else {
25888            None
25889        }
25890    }
25891    #[inline]
25892    fn syntax(&self) -> &SyntaxNode {
25893        &self.syntax
25894    }
25895}
25896impl AstNode for RevokeCommandList {
25897    #[inline]
25898    fn can_cast(kind: SyntaxKind) -> bool {
25899        kind == SyntaxKind::REVOKE_COMMAND_LIST
25900    }
25901    #[inline]
25902    fn cast(syntax: SyntaxNode) -> Option<Self> {
25903        if Self::can_cast(syntax.kind()) {
25904            Some(Self { syntax })
25905        } else {
25906            None
25907        }
25908    }
25909    #[inline]
25910    fn syntax(&self) -> &SyntaxNode {
25911        &self.syntax
25912    }
25913}
25914impl AstNode for RevokeDefaultPrivileges {
25915    #[inline]
25916    fn can_cast(kind: SyntaxKind) -> bool {
25917        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
25918    }
25919    #[inline]
25920    fn cast(syntax: SyntaxNode) -> Option<Self> {
25921        if Self::can_cast(syntax.kind()) {
25922            Some(Self { syntax })
25923        } else {
25924            None
25925        }
25926    }
25927    #[inline]
25928    fn syntax(&self) -> &SyntaxNode {
25929        &self.syntax
25930    }
25931}
25932impl AstNode for Role {
25933    #[inline]
25934    fn can_cast(kind: SyntaxKind) -> bool {
25935        kind == SyntaxKind::ROLE
25936    }
25937    #[inline]
25938    fn cast(syntax: SyntaxNode) -> Option<Self> {
25939        if Self::can_cast(syntax.kind()) {
25940            Some(Self { syntax })
25941        } else {
25942            None
25943        }
25944    }
25945    #[inline]
25946    fn syntax(&self) -> &SyntaxNode {
25947        &self.syntax
25948    }
25949}
25950impl AstNode for RoleList {
25951    #[inline]
25952    fn can_cast(kind: SyntaxKind) -> bool {
25953        kind == SyntaxKind::ROLE_LIST
25954    }
25955    #[inline]
25956    fn cast(syntax: SyntaxNode) -> Option<Self> {
25957        if Self::can_cast(syntax.kind()) {
25958            Some(Self { syntax })
25959        } else {
25960            None
25961        }
25962    }
25963    #[inline]
25964    fn syntax(&self) -> &SyntaxNode {
25965        &self.syntax
25966    }
25967}
25968impl AstNode for RoleOption {
25969    #[inline]
25970    fn can_cast(kind: SyntaxKind) -> bool {
25971        kind == SyntaxKind::ROLE_OPTION
25972    }
25973    #[inline]
25974    fn cast(syntax: SyntaxNode) -> Option<Self> {
25975        if Self::can_cast(syntax.kind()) {
25976            Some(Self { syntax })
25977        } else {
25978            None
25979        }
25980    }
25981    #[inline]
25982    fn syntax(&self) -> &SyntaxNode {
25983        &self.syntax
25984    }
25985}
25986impl AstNode for RoleOptionList {
25987    #[inline]
25988    fn can_cast(kind: SyntaxKind) -> bool {
25989        kind == SyntaxKind::ROLE_OPTION_LIST
25990    }
25991    #[inline]
25992    fn cast(syntax: SyntaxNode) -> Option<Self> {
25993        if Self::can_cast(syntax.kind()) {
25994            Some(Self { syntax })
25995        } else {
25996            None
25997        }
25998    }
25999    #[inline]
26000    fn syntax(&self) -> &SyntaxNode {
26001        &self.syntax
26002    }
26003}
26004impl AstNode for Rollback {
26005    #[inline]
26006    fn can_cast(kind: SyntaxKind) -> bool {
26007        kind == SyntaxKind::ROLLBACK
26008    }
26009    #[inline]
26010    fn cast(syntax: SyntaxNode) -> Option<Self> {
26011        if Self::can_cast(syntax.kind()) {
26012            Some(Self { syntax })
26013        } else {
26014            None
26015        }
26016    }
26017    #[inline]
26018    fn syntax(&self) -> &SyntaxNode {
26019        &self.syntax
26020    }
26021}
26022impl AstNode for Row {
26023    #[inline]
26024    fn can_cast(kind: SyntaxKind) -> bool {
26025        kind == SyntaxKind::ROW
26026    }
26027    #[inline]
26028    fn cast(syntax: SyntaxNode) -> Option<Self> {
26029        if Self::can_cast(syntax.kind()) {
26030            Some(Self { syntax })
26031        } else {
26032            None
26033        }
26034    }
26035    #[inline]
26036    fn syntax(&self) -> &SyntaxNode {
26037        &self.syntax
26038    }
26039}
26040impl AstNode for RowList {
26041    #[inline]
26042    fn can_cast(kind: SyntaxKind) -> bool {
26043        kind == SyntaxKind::ROW_LIST
26044    }
26045    #[inline]
26046    fn cast(syntax: SyntaxNode) -> Option<Self> {
26047        if Self::can_cast(syntax.kind()) {
26048            Some(Self { syntax })
26049        } else {
26050            None
26051        }
26052    }
26053    #[inline]
26054    fn syntax(&self) -> &SyntaxNode {
26055        &self.syntax
26056    }
26057}
26058impl AstNode for RowsFuncOption {
26059    #[inline]
26060    fn can_cast(kind: SyntaxKind) -> bool {
26061        kind == SyntaxKind::ROWS_FUNC_OPTION
26062    }
26063    #[inline]
26064    fn cast(syntax: SyntaxNode) -> Option<Self> {
26065        if Self::can_cast(syntax.kind()) {
26066            Some(Self { syntax })
26067        } else {
26068            None
26069        }
26070    }
26071    #[inline]
26072    fn syntax(&self) -> &SyntaxNode {
26073        &self.syntax
26074    }
26075}
26076impl AstNode for Savepoint {
26077    #[inline]
26078    fn can_cast(kind: SyntaxKind) -> bool {
26079        kind == SyntaxKind::SAVEPOINT
26080    }
26081    #[inline]
26082    fn cast(syntax: SyntaxNode) -> Option<Self> {
26083        if Self::can_cast(syntax.kind()) {
26084            Some(Self { syntax })
26085        } else {
26086            None
26087        }
26088    }
26089    #[inline]
26090    fn syntax(&self) -> &SyntaxNode {
26091        &self.syntax
26092    }
26093}
26094impl AstNode for SchemaAuthorization {
26095    #[inline]
26096    fn can_cast(kind: SyntaxKind) -> bool {
26097        kind == SyntaxKind::SCHEMA_AUTHORIZATION
26098    }
26099    #[inline]
26100    fn cast(syntax: SyntaxNode) -> Option<Self> {
26101        if Self::can_cast(syntax.kind()) {
26102            Some(Self { syntax })
26103        } else {
26104            None
26105        }
26106    }
26107    #[inline]
26108    fn syntax(&self) -> &SyntaxNode {
26109        &self.syntax
26110    }
26111}
26112impl AstNode for SecurityFuncOption {
26113    #[inline]
26114    fn can_cast(kind: SyntaxKind) -> bool {
26115        kind == SyntaxKind::SECURITY_FUNC_OPTION
26116    }
26117    #[inline]
26118    fn cast(syntax: SyntaxNode) -> Option<Self> {
26119        if Self::can_cast(syntax.kind()) {
26120            Some(Self { syntax })
26121        } else {
26122            None
26123        }
26124    }
26125    #[inline]
26126    fn syntax(&self) -> &SyntaxNode {
26127        &self.syntax
26128    }
26129}
26130impl AstNode for SecurityLabel {
26131    #[inline]
26132    fn can_cast(kind: SyntaxKind) -> bool {
26133        kind == SyntaxKind::SECURITY_LABEL
26134    }
26135    #[inline]
26136    fn cast(syntax: SyntaxNode) -> Option<Self> {
26137        if Self::can_cast(syntax.kind()) {
26138            Some(Self { syntax })
26139        } else {
26140            None
26141        }
26142    }
26143    #[inline]
26144    fn syntax(&self) -> &SyntaxNode {
26145        &self.syntax
26146    }
26147}
26148impl AstNode for Select {
26149    #[inline]
26150    fn can_cast(kind: SyntaxKind) -> bool {
26151        kind == SyntaxKind::SELECT
26152    }
26153    #[inline]
26154    fn cast(syntax: SyntaxNode) -> Option<Self> {
26155        if Self::can_cast(syntax.kind()) {
26156            Some(Self { syntax })
26157        } else {
26158            None
26159        }
26160    }
26161    #[inline]
26162    fn syntax(&self) -> &SyntaxNode {
26163        &self.syntax
26164    }
26165}
26166impl AstNode for SelectClause {
26167    #[inline]
26168    fn can_cast(kind: SyntaxKind) -> bool {
26169        kind == SyntaxKind::SELECT_CLAUSE
26170    }
26171    #[inline]
26172    fn cast(syntax: SyntaxNode) -> Option<Self> {
26173        if Self::can_cast(syntax.kind()) {
26174            Some(Self { syntax })
26175        } else {
26176            None
26177        }
26178    }
26179    #[inline]
26180    fn syntax(&self) -> &SyntaxNode {
26181        &self.syntax
26182    }
26183}
26184impl AstNode for SelectInto {
26185    #[inline]
26186    fn can_cast(kind: SyntaxKind) -> bool {
26187        kind == SyntaxKind::SELECT_INTO
26188    }
26189    #[inline]
26190    fn cast(syntax: SyntaxNode) -> Option<Self> {
26191        if Self::can_cast(syntax.kind()) {
26192            Some(Self { syntax })
26193        } else {
26194            None
26195        }
26196    }
26197    #[inline]
26198    fn syntax(&self) -> &SyntaxNode {
26199        &self.syntax
26200    }
26201}
26202impl AstNode for SequenceOption {
26203    #[inline]
26204    fn can_cast(kind: SyntaxKind) -> bool {
26205        kind == SyntaxKind::SEQUENCE_OPTION
26206    }
26207    #[inline]
26208    fn cast(syntax: SyntaxNode) -> Option<Self> {
26209        if Self::can_cast(syntax.kind()) {
26210            Some(Self { syntax })
26211        } else {
26212            None
26213        }
26214    }
26215    #[inline]
26216    fn syntax(&self) -> &SyntaxNode {
26217        &self.syntax
26218    }
26219}
26220impl AstNode for SequenceOptionList {
26221    #[inline]
26222    fn can_cast(kind: SyntaxKind) -> bool {
26223        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26224    }
26225    #[inline]
26226    fn cast(syntax: SyntaxNode) -> Option<Self> {
26227        if Self::can_cast(syntax.kind()) {
26228            Some(Self { syntax })
26229        } else {
26230            None
26231        }
26232    }
26233    #[inline]
26234    fn syntax(&self) -> &SyntaxNode {
26235        &self.syntax
26236    }
26237}
26238impl AstNode for Serializable {
26239    #[inline]
26240    fn can_cast(kind: SyntaxKind) -> bool {
26241        kind == SyntaxKind::SERIALIZABLE
26242    }
26243    #[inline]
26244    fn cast(syntax: SyntaxNode) -> Option<Self> {
26245        if Self::can_cast(syntax.kind()) {
26246            Some(Self { syntax })
26247        } else {
26248            None
26249        }
26250    }
26251    #[inline]
26252    fn syntax(&self) -> &SyntaxNode {
26253        &self.syntax
26254    }
26255}
26256impl AstNode for Set {
26257    #[inline]
26258    fn can_cast(kind: SyntaxKind) -> bool {
26259        kind == SyntaxKind::SET
26260    }
26261    #[inline]
26262    fn cast(syntax: SyntaxNode) -> Option<Self> {
26263        if Self::can_cast(syntax.kind()) {
26264            Some(Self { syntax })
26265        } else {
26266            None
26267        }
26268    }
26269    #[inline]
26270    fn syntax(&self) -> &SyntaxNode {
26271        &self.syntax
26272    }
26273}
26274impl AstNode for SetAccessMethod {
26275    #[inline]
26276    fn can_cast(kind: SyntaxKind) -> bool {
26277        kind == SyntaxKind::SET_ACCESS_METHOD
26278    }
26279    #[inline]
26280    fn cast(syntax: SyntaxNode) -> Option<Self> {
26281        if Self::can_cast(syntax.kind()) {
26282            Some(Self { syntax })
26283        } else {
26284            None
26285        }
26286    }
26287    #[inline]
26288    fn syntax(&self) -> &SyntaxNode {
26289        &self.syntax
26290    }
26291}
26292impl AstNode for SetClause {
26293    #[inline]
26294    fn can_cast(kind: SyntaxKind) -> bool {
26295        kind == SyntaxKind::SET_CLAUSE
26296    }
26297    #[inline]
26298    fn cast(syntax: SyntaxNode) -> Option<Self> {
26299        if Self::can_cast(syntax.kind()) {
26300            Some(Self { syntax })
26301        } else {
26302            None
26303        }
26304    }
26305    #[inline]
26306    fn syntax(&self) -> &SyntaxNode {
26307        &self.syntax
26308    }
26309}
26310impl AstNode for SetColumnList {
26311    #[inline]
26312    fn can_cast(kind: SyntaxKind) -> bool {
26313        kind == SyntaxKind::SET_COLUMN_LIST
26314    }
26315    #[inline]
26316    fn cast(syntax: SyntaxNode) -> Option<Self> {
26317        if Self::can_cast(syntax.kind()) {
26318            Some(Self { syntax })
26319        } else {
26320            None
26321        }
26322    }
26323    #[inline]
26324    fn syntax(&self) -> &SyntaxNode {
26325        &self.syntax
26326    }
26327}
26328impl AstNode for SetCompression {
26329    #[inline]
26330    fn can_cast(kind: SyntaxKind) -> bool {
26331        kind == SyntaxKind::SET_COMPRESSION
26332    }
26333    #[inline]
26334    fn cast(syntax: SyntaxNode) -> Option<Self> {
26335        if Self::can_cast(syntax.kind()) {
26336            Some(Self { syntax })
26337        } else {
26338            None
26339        }
26340    }
26341    #[inline]
26342    fn syntax(&self) -> &SyntaxNode {
26343        &self.syntax
26344    }
26345}
26346impl AstNode for SetConfigParam {
26347    #[inline]
26348    fn can_cast(kind: SyntaxKind) -> bool {
26349        kind == SyntaxKind::SET_CONFIG_PARAM
26350    }
26351    #[inline]
26352    fn cast(syntax: SyntaxNode) -> Option<Self> {
26353        if Self::can_cast(syntax.kind()) {
26354            Some(Self { syntax })
26355        } else {
26356            None
26357        }
26358    }
26359    #[inline]
26360    fn syntax(&self) -> &SyntaxNode {
26361        &self.syntax
26362    }
26363}
26364impl AstNode for SetConstraints {
26365    #[inline]
26366    fn can_cast(kind: SyntaxKind) -> bool {
26367        kind == SyntaxKind::SET_CONSTRAINTS
26368    }
26369    #[inline]
26370    fn cast(syntax: SyntaxNode) -> Option<Self> {
26371        if Self::can_cast(syntax.kind()) {
26372            Some(Self { syntax })
26373        } else {
26374            None
26375        }
26376    }
26377    #[inline]
26378    fn syntax(&self) -> &SyntaxNode {
26379        &self.syntax
26380    }
26381}
26382impl AstNode for SetDefault {
26383    #[inline]
26384    fn can_cast(kind: SyntaxKind) -> bool {
26385        kind == SyntaxKind::SET_DEFAULT
26386    }
26387    #[inline]
26388    fn cast(syntax: SyntaxNode) -> Option<Self> {
26389        if Self::can_cast(syntax.kind()) {
26390            Some(Self { syntax })
26391        } else {
26392            None
26393        }
26394    }
26395    #[inline]
26396    fn syntax(&self) -> &SyntaxNode {
26397        &self.syntax
26398    }
26399}
26400impl AstNode for SetDefaultColumns {
26401    #[inline]
26402    fn can_cast(kind: SyntaxKind) -> bool {
26403        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26404    }
26405    #[inline]
26406    fn cast(syntax: SyntaxNode) -> Option<Self> {
26407        if Self::can_cast(syntax.kind()) {
26408            Some(Self { syntax })
26409        } else {
26410            None
26411        }
26412    }
26413    #[inline]
26414    fn syntax(&self) -> &SyntaxNode {
26415        &self.syntax
26416    }
26417}
26418impl AstNode for SetExpr {
26419    #[inline]
26420    fn can_cast(kind: SyntaxKind) -> bool {
26421        kind == SyntaxKind::SET_EXPR
26422    }
26423    #[inline]
26424    fn cast(syntax: SyntaxNode) -> Option<Self> {
26425        if Self::can_cast(syntax.kind()) {
26426            Some(Self { syntax })
26427        } else {
26428            None
26429        }
26430    }
26431    #[inline]
26432    fn syntax(&self) -> &SyntaxNode {
26433        &self.syntax
26434    }
26435}
26436impl AstNode for SetExprList {
26437    #[inline]
26438    fn can_cast(kind: SyntaxKind) -> bool {
26439        kind == SyntaxKind::SET_EXPR_LIST
26440    }
26441    #[inline]
26442    fn cast(syntax: SyntaxNode) -> Option<Self> {
26443        if Self::can_cast(syntax.kind()) {
26444            Some(Self { syntax })
26445        } else {
26446            None
26447        }
26448    }
26449    #[inline]
26450    fn syntax(&self) -> &SyntaxNode {
26451        &self.syntax
26452    }
26453}
26454impl AstNode for SetExpression {
26455    #[inline]
26456    fn can_cast(kind: SyntaxKind) -> bool {
26457        kind == SyntaxKind::SET_EXPRESSION
26458    }
26459    #[inline]
26460    fn cast(syntax: SyntaxNode) -> Option<Self> {
26461        if Self::can_cast(syntax.kind()) {
26462            Some(Self { syntax })
26463        } else {
26464            None
26465        }
26466    }
26467    #[inline]
26468    fn syntax(&self) -> &SyntaxNode {
26469        &self.syntax
26470    }
26471}
26472impl AstNode for SetFuncOption {
26473    #[inline]
26474    fn can_cast(kind: SyntaxKind) -> bool {
26475        kind == SyntaxKind::SET_FUNC_OPTION
26476    }
26477    #[inline]
26478    fn cast(syntax: SyntaxNode) -> Option<Self> {
26479        if Self::can_cast(syntax.kind()) {
26480            Some(Self { syntax })
26481        } else {
26482            None
26483        }
26484    }
26485    #[inline]
26486    fn syntax(&self) -> &SyntaxNode {
26487        &self.syntax
26488    }
26489}
26490impl AstNode for SetGenerated {
26491    #[inline]
26492    fn can_cast(kind: SyntaxKind) -> bool {
26493        kind == SyntaxKind::SET_GENERATED
26494    }
26495    #[inline]
26496    fn cast(syntax: SyntaxNode) -> Option<Self> {
26497        if Self::can_cast(syntax.kind()) {
26498            Some(Self { syntax })
26499        } else {
26500            None
26501        }
26502    }
26503    #[inline]
26504    fn syntax(&self) -> &SyntaxNode {
26505        &self.syntax
26506    }
26507}
26508impl AstNode for SetGeneratedOptions {
26509    #[inline]
26510    fn can_cast(kind: SyntaxKind) -> bool {
26511        kind == SyntaxKind::SET_GENERATED_OPTIONS
26512    }
26513    #[inline]
26514    fn cast(syntax: SyntaxNode) -> Option<Self> {
26515        if Self::can_cast(syntax.kind()) {
26516            Some(Self { syntax })
26517        } else {
26518            None
26519        }
26520    }
26521    #[inline]
26522    fn syntax(&self) -> &SyntaxNode {
26523        &self.syntax
26524    }
26525}
26526impl AstNode for SetLogged {
26527    #[inline]
26528    fn can_cast(kind: SyntaxKind) -> bool {
26529        kind == SyntaxKind::SET_LOGGED
26530    }
26531    #[inline]
26532    fn cast(syntax: SyntaxNode) -> Option<Self> {
26533        if Self::can_cast(syntax.kind()) {
26534            Some(Self { syntax })
26535        } else {
26536            None
26537        }
26538    }
26539    #[inline]
26540    fn syntax(&self) -> &SyntaxNode {
26541        &self.syntax
26542    }
26543}
26544impl AstNode for SetMultipleColumns {
26545    #[inline]
26546    fn can_cast(kind: SyntaxKind) -> bool {
26547        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26548    }
26549    #[inline]
26550    fn cast(syntax: SyntaxNode) -> Option<Self> {
26551        if Self::can_cast(syntax.kind()) {
26552            Some(Self { syntax })
26553        } else {
26554            None
26555        }
26556    }
26557    #[inline]
26558    fn syntax(&self) -> &SyntaxNode {
26559        &self.syntax
26560    }
26561}
26562impl AstNode for SetNotNull {
26563    #[inline]
26564    fn can_cast(kind: SyntaxKind) -> bool {
26565        kind == SyntaxKind::SET_NOT_NULL
26566    }
26567    #[inline]
26568    fn cast(syntax: SyntaxNode) -> Option<Self> {
26569        if Self::can_cast(syntax.kind()) {
26570            Some(Self { syntax })
26571        } else {
26572            None
26573        }
26574    }
26575    #[inline]
26576    fn syntax(&self) -> &SyntaxNode {
26577        &self.syntax
26578    }
26579}
26580impl AstNode for SetNullColumns {
26581    #[inline]
26582    fn can_cast(kind: SyntaxKind) -> bool {
26583        kind == SyntaxKind::SET_NULL_COLUMNS
26584    }
26585    #[inline]
26586    fn cast(syntax: SyntaxNode) -> Option<Self> {
26587        if Self::can_cast(syntax.kind()) {
26588            Some(Self { syntax })
26589        } else {
26590            None
26591        }
26592    }
26593    #[inline]
26594    fn syntax(&self) -> &SyntaxNode {
26595        &self.syntax
26596    }
26597}
26598impl AstNode for SetOptions {
26599    #[inline]
26600    fn can_cast(kind: SyntaxKind) -> bool {
26601        kind == SyntaxKind::SET_OPTIONS
26602    }
26603    #[inline]
26604    fn cast(syntax: SyntaxNode) -> Option<Self> {
26605        if Self::can_cast(syntax.kind()) {
26606            Some(Self { syntax })
26607        } else {
26608            None
26609        }
26610    }
26611    #[inline]
26612    fn syntax(&self) -> &SyntaxNode {
26613        &self.syntax
26614    }
26615}
26616impl AstNode for SetOptionsList {
26617    #[inline]
26618    fn can_cast(kind: SyntaxKind) -> bool {
26619        kind == SyntaxKind::SET_OPTIONS_LIST
26620    }
26621    #[inline]
26622    fn cast(syntax: SyntaxNode) -> Option<Self> {
26623        if Self::can_cast(syntax.kind()) {
26624            Some(Self { syntax })
26625        } else {
26626            None
26627        }
26628    }
26629    #[inline]
26630    fn syntax(&self) -> &SyntaxNode {
26631        &self.syntax
26632    }
26633}
26634impl AstNode for SetRole {
26635    #[inline]
26636    fn can_cast(kind: SyntaxKind) -> bool {
26637        kind == SyntaxKind::SET_ROLE
26638    }
26639    #[inline]
26640    fn cast(syntax: SyntaxNode) -> Option<Self> {
26641        if Self::can_cast(syntax.kind()) {
26642            Some(Self { syntax })
26643        } else {
26644            None
26645        }
26646    }
26647    #[inline]
26648    fn syntax(&self) -> &SyntaxNode {
26649        &self.syntax
26650    }
26651}
26652impl AstNode for SetSchema {
26653    #[inline]
26654    fn can_cast(kind: SyntaxKind) -> bool {
26655        kind == SyntaxKind::SET_SCHEMA
26656    }
26657    #[inline]
26658    fn cast(syntax: SyntaxNode) -> Option<Self> {
26659        if Self::can_cast(syntax.kind()) {
26660            Some(Self { syntax })
26661        } else {
26662            None
26663        }
26664    }
26665    #[inline]
26666    fn syntax(&self) -> &SyntaxNode {
26667        &self.syntax
26668    }
26669}
26670impl AstNode for SetSequenceOption {
26671    #[inline]
26672    fn can_cast(kind: SyntaxKind) -> bool {
26673        kind == SyntaxKind::SET_SEQUENCE_OPTION
26674    }
26675    #[inline]
26676    fn cast(syntax: SyntaxNode) -> Option<Self> {
26677        if Self::can_cast(syntax.kind()) {
26678            Some(Self { syntax })
26679        } else {
26680            None
26681        }
26682    }
26683    #[inline]
26684    fn syntax(&self) -> &SyntaxNode {
26685        &self.syntax
26686    }
26687}
26688impl AstNode for SetSessionAuth {
26689    #[inline]
26690    fn can_cast(kind: SyntaxKind) -> bool {
26691        kind == SyntaxKind::SET_SESSION_AUTH
26692    }
26693    #[inline]
26694    fn cast(syntax: SyntaxNode) -> Option<Self> {
26695        if Self::can_cast(syntax.kind()) {
26696            Some(Self { syntax })
26697        } else {
26698            None
26699        }
26700    }
26701    #[inline]
26702    fn syntax(&self) -> &SyntaxNode {
26703        &self.syntax
26704    }
26705}
26706impl AstNode for SetSingleColumn {
26707    #[inline]
26708    fn can_cast(kind: SyntaxKind) -> bool {
26709        kind == SyntaxKind::SET_SINGLE_COLUMN
26710    }
26711    #[inline]
26712    fn cast(syntax: SyntaxNode) -> Option<Self> {
26713        if Self::can_cast(syntax.kind()) {
26714            Some(Self { syntax })
26715        } else {
26716            None
26717        }
26718    }
26719    #[inline]
26720    fn syntax(&self) -> &SyntaxNode {
26721        &self.syntax
26722    }
26723}
26724impl AstNode for SetStatistics {
26725    #[inline]
26726    fn can_cast(kind: SyntaxKind) -> bool {
26727        kind == SyntaxKind::SET_STATISTICS
26728    }
26729    #[inline]
26730    fn cast(syntax: SyntaxNode) -> Option<Self> {
26731        if Self::can_cast(syntax.kind()) {
26732            Some(Self { syntax })
26733        } else {
26734            None
26735        }
26736    }
26737    #[inline]
26738    fn syntax(&self) -> &SyntaxNode {
26739        &self.syntax
26740    }
26741}
26742impl AstNode for SetStorage {
26743    #[inline]
26744    fn can_cast(kind: SyntaxKind) -> bool {
26745        kind == SyntaxKind::SET_STORAGE
26746    }
26747    #[inline]
26748    fn cast(syntax: SyntaxNode) -> Option<Self> {
26749        if Self::can_cast(syntax.kind()) {
26750            Some(Self { syntax })
26751        } else {
26752            None
26753        }
26754    }
26755    #[inline]
26756    fn syntax(&self) -> &SyntaxNode {
26757        &self.syntax
26758    }
26759}
26760impl AstNode for SetTablespace {
26761    #[inline]
26762    fn can_cast(kind: SyntaxKind) -> bool {
26763        kind == SyntaxKind::SET_TABLESPACE
26764    }
26765    #[inline]
26766    fn cast(syntax: SyntaxNode) -> Option<Self> {
26767        if Self::can_cast(syntax.kind()) {
26768            Some(Self { syntax })
26769        } else {
26770            None
26771        }
26772    }
26773    #[inline]
26774    fn syntax(&self) -> &SyntaxNode {
26775        &self.syntax
26776    }
26777}
26778impl AstNode for SetTransaction {
26779    #[inline]
26780    fn can_cast(kind: SyntaxKind) -> bool {
26781        kind == SyntaxKind::SET_TRANSACTION
26782    }
26783    #[inline]
26784    fn cast(syntax: SyntaxNode) -> Option<Self> {
26785        if Self::can_cast(syntax.kind()) {
26786            Some(Self { syntax })
26787        } else {
26788            None
26789        }
26790    }
26791    #[inline]
26792    fn syntax(&self) -> &SyntaxNode {
26793        &self.syntax
26794    }
26795}
26796impl AstNode for SetType {
26797    #[inline]
26798    fn can_cast(kind: SyntaxKind) -> bool {
26799        kind == SyntaxKind::SET_TYPE
26800    }
26801    #[inline]
26802    fn cast(syntax: SyntaxNode) -> Option<Self> {
26803        if Self::can_cast(syntax.kind()) {
26804            Some(Self { syntax })
26805        } else {
26806            None
26807        }
26808    }
26809    #[inline]
26810    fn syntax(&self) -> &SyntaxNode {
26811        &self.syntax
26812    }
26813}
26814impl AstNode for SetUnlogged {
26815    #[inline]
26816    fn can_cast(kind: SyntaxKind) -> bool {
26817        kind == SyntaxKind::SET_UNLOGGED
26818    }
26819    #[inline]
26820    fn cast(syntax: SyntaxNode) -> Option<Self> {
26821        if Self::can_cast(syntax.kind()) {
26822            Some(Self { syntax })
26823        } else {
26824            None
26825        }
26826    }
26827    #[inline]
26828    fn syntax(&self) -> &SyntaxNode {
26829        &self.syntax
26830    }
26831}
26832impl AstNode for SetWithoutCluster {
26833    #[inline]
26834    fn can_cast(kind: SyntaxKind) -> bool {
26835        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26836    }
26837    #[inline]
26838    fn cast(syntax: SyntaxNode) -> Option<Self> {
26839        if Self::can_cast(syntax.kind()) {
26840            Some(Self { syntax })
26841        } else {
26842            None
26843        }
26844    }
26845    #[inline]
26846    fn syntax(&self) -> &SyntaxNode {
26847        &self.syntax
26848    }
26849}
26850impl AstNode for SetWithoutOids {
26851    #[inline]
26852    fn can_cast(kind: SyntaxKind) -> bool {
26853        kind == SyntaxKind::SET_WITHOUT_OIDS
26854    }
26855    #[inline]
26856    fn cast(syntax: SyntaxNode) -> Option<Self> {
26857        if Self::can_cast(syntax.kind()) {
26858            Some(Self { syntax })
26859        } else {
26860            None
26861        }
26862    }
26863    #[inline]
26864    fn syntax(&self) -> &SyntaxNode {
26865        &self.syntax
26866    }
26867}
26868impl AstNode for Show {
26869    #[inline]
26870    fn can_cast(kind: SyntaxKind) -> bool {
26871        kind == SyntaxKind::SHOW
26872    }
26873    #[inline]
26874    fn cast(syntax: SyntaxNode) -> Option<Self> {
26875        if Self::can_cast(syntax.kind()) {
26876            Some(Self { syntax })
26877        } else {
26878            None
26879        }
26880    }
26881    #[inline]
26882    fn syntax(&self) -> &SyntaxNode {
26883        &self.syntax
26884    }
26885}
26886impl AstNode for SimilarTo {
26887    #[inline]
26888    fn can_cast(kind: SyntaxKind) -> bool {
26889        kind == SyntaxKind::SIMILAR_TO
26890    }
26891    #[inline]
26892    fn cast(syntax: SyntaxNode) -> Option<Self> {
26893        if Self::can_cast(syntax.kind()) {
26894            Some(Self { syntax })
26895        } else {
26896            None
26897        }
26898    }
26899    #[inline]
26900    fn syntax(&self) -> &SyntaxNode {
26901        &self.syntax
26902    }
26903}
26904impl AstNode for SliceExpr {
26905    #[inline]
26906    fn can_cast(kind: SyntaxKind) -> bool {
26907        kind == SyntaxKind::SLICE_EXPR
26908    }
26909    #[inline]
26910    fn cast(syntax: SyntaxNode) -> Option<Self> {
26911        if Self::can_cast(syntax.kind()) {
26912            Some(Self { syntax })
26913        } else {
26914            None
26915        }
26916    }
26917    #[inline]
26918    fn syntax(&self) -> &SyntaxNode {
26919        &self.syntax
26920    }
26921}
26922impl AstNode for SomeFn {
26923    #[inline]
26924    fn can_cast(kind: SyntaxKind) -> bool {
26925        kind == SyntaxKind::SOME_FN
26926    }
26927    #[inline]
26928    fn cast(syntax: SyntaxNode) -> Option<Self> {
26929        if Self::can_cast(syntax.kind()) {
26930            Some(Self { syntax })
26931        } else {
26932            None
26933        }
26934    }
26935    #[inline]
26936    fn syntax(&self) -> &SyntaxNode {
26937        &self.syntax
26938    }
26939}
26940impl AstNode for SortAsc {
26941    #[inline]
26942    fn can_cast(kind: SyntaxKind) -> bool {
26943        kind == SyntaxKind::SORT_ASC
26944    }
26945    #[inline]
26946    fn cast(syntax: SyntaxNode) -> Option<Self> {
26947        if Self::can_cast(syntax.kind()) {
26948            Some(Self { syntax })
26949        } else {
26950            None
26951        }
26952    }
26953    #[inline]
26954    fn syntax(&self) -> &SyntaxNode {
26955        &self.syntax
26956    }
26957}
26958impl AstNode for SortBy {
26959    #[inline]
26960    fn can_cast(kind: SyntaxKind) -> bool {
26961        kind == SyntaxKind::SORT_BY
26962    }
26963    #[inline]
26964    fn cast(syntax: SyntaxNode) -> Option<Self> {
26965        if Self::can_cast(syntax.kind()) {
26966            Some(Self { syntax })
26967        } else {
26968            None
26969        }
26970    }
26971    #[inline]
26972    fn syntax(&self) -> &SyntaxNode {
26973        &self.syntax
26974    }
26975}
26976impl AstNode for SortByList {
26977    #[inline]
26978    fn can_cast(kind: SyntaxKind) -> bool {
26979        kind == SyntaxKind::SORT_BY_LIST
26980    }
26981    #[inline]
26982    fn cast(syntax: SyntaxNode) -> Option<Self> {
26983        if Self::can_cast(syntax.kind()) {
26984            Some(Self { syntax })
26985        } else {
26986            None
26987        }
26988    }
26989    #[inline]
26990    fn syntax(&self) -> &SyntaxNode {
26991        &self.syntax
26992    }
26993}
26994impl AstNode for SortDesc {
26995    #[inline]
26996    fn can_cast(kind: SyntaxKind) -> bool {
26997        kind == SyntaxKind::SORT_DESC
26998    }
26999    #[inline]
27000    fn cast(syntax: SyntaxNode) -> Option<Self> {
27001        if Self::can_cast(syntax.kind()) {
27002            Some(Self { syntax })
27003        } else {
27004            None
27005        }
27006    }
27007    #[inline]
27008    fn syntax(&self) -> &SyntaxNode {
27009        &self.syntax
27010    }
27011}
27012impl AstNode for SortUsing {
27013    #[inline]
27014    fn can_cast(kind: SyntaxKind) -> bool {
27015        kind == SyntaxKind::SORT_USING
27016    }
27017    #[inline]
27018    fn cast(syntax: SyntaxNode) -> Option<Self> {
27019        if Self::can_cast(syntax.kind()) {
27020            Some(Self { syntax })
27021        } else {
27022            None
27023        }
27024    }
27025    #[inline]
27026    fn syntax(&self) -> &SyntaxNode {
27027        &self.syntax
27028    }
27029}
27030impl AstNode for SourceFile {
27031    #[inline]
27032    fn can_cast(kind: SyntaxKind) -> bool {
27033        kind == SyntaxKind::SOURCE_FILE
27034    }
27035    #[inline]
27036    fn cast(syntax: SyntaxNode) -> Option<Self> {
27037        if Self::can_cast(syntax.kind()) {
27038            Some(Self { syntax })
27039        } else {
27040            None
27041        }
27042    }
27043    #[inline]
27044    fn syntax(&self) -> &SyntaxNode {
27045        &self.syntax
27046    }
27047}
27048impl AstNode for SplitPartition {
27049    #[inline]
27050    fn can_cast(kind: SyntaxKind) -> bool {
27051        kind == SyntaxKind::SPLIT_PARTITION
27052    }
27053    #[inline]
27054    fn cast(syntax: SyntaxNode) -> Option<Self> {
27055        if Self::can_cast(syntax.kind()) {
27056            Some(Self { syntax })
27057        } else {
27058            None
27059        }
27060    }
27061    #[inline]
27062    fn syntax(&self) -> &SyntaxNode {
27063        &self.syntax
27064    }
27065}
27066impl AstNode for Storage {
27067    #[inline]
27068    fn can_cast(kind: SyntaxKind) -> bool {
27069        kind == SyntaxKind::STORAGE
27070    }
27071    #[inline]
27072    fn cast(syntax: SyntaxNode) -> Option<Self> {
27073        if Self::can_cast(syntax.kind()) {
27074            Some(Self { syntax })
27075        } else {
27076            None
27077        }
27078    }
27079    #[inline]
27080    fn syntax(&self) -> &SyntaxNode {
27081        &self.syntax
27082    }
27083}
27084impl AstNode for StrictFuncOption {
27085    #[inline]
27086    fn can_cast(kind: SyntaxKind) -> bool {
27087        kind == SyntaxKind::STRICT_FUNC_OPTION
27088    }
27089    #[inline]
27090    fn cast(syntax: SyntaxNode) -> Option<Self> {
27091        if Self::can_cast(syntax.kind()) {
27092            Some(Self { syntax })
27093        } else {
27094            None
27095        }
27096    }
27097    #[inline]
27098    fn syntax(&self) -> &SyntaxNode {
27099        &self.syntax
27100    }
27101}
27102impl AstNode for SubstringFn {
27103    #[inline]
27104    fn can_cast(kind: SyntaxKind) -> bool {
27105        kind == SyntaxKind::SUBSTRING_FN
27106    }
27107    #[inline]
27108    fn cast(syntax: SyntaxNode) -> Option<Self> {
27109        if Self::can_cast(syntax.kind()) {
27110            Some(Self { syntax })
27111        } else {
27112            None
27113        }
27114    }
27115    #[inline]
27116    fn syntax(&self) -> &SyntaxNode {
27117        &self.syntax
27118    }
27119}
27120impl AstNode for SupportFuncOption {
27121    #[inline]
27122    fn can_cast(kind: SyntaxKind) -> bool {
27123        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27124    }
27125    #[inline]
27126    fn cast(syntax: SyntaxNode) -> Option<Self> {
27127        if Self::can_cast(syntax.kind()) {
27128            Some(Self { syntax })
27129        } else {
27130            None
27131        }
27132    }
27133    #[inline]
27134    fn syntax(&self) -> &SyntaxNode {
27135        &self.syntax
27136    }
27137}
27138impl AstNode for Table {
27139    #[inline]
27140    fn can_cast(kind: SyntaxKind) -> bool {
27141        kind == SyntaxKind::TABLE
27142    }
27143    #[inline]
27144    fn cast(syntax: SyntaxNode) -> Option<Self> {
27145        if Self::can_cast(syntax.kind()) {
27146            Some(Self { syntax })
27147        } else {
27148            None
27149        }
27150    }
27151    #[inline]
27152    fn syntax(&self) -> &SyntaxNode {
27153        &self.syntax
27154    }
27155}
27156impl AstNode for TableAndColumns {
27157    #[inline]
27158    fn can_cast(kind: SyntaxKind) -> bool {
27159        kind == SyntaxKind::TABLE_AND_COLUMNS
27160    }
27161    #[inline]
27162    fn cast(syntax: SyntaxNode) -> Option<Self> {
27163        if Self::can_cast(syntax.kind()) {
27164            Some(Self { syntax })
27165        } else {
27166            None
27167        }
27168    }
27169    #[inline]
27170    fn syntax(&self) -> &SyntaxNode {
27171        &self.syntax
27172    }
27173}
27174impl AstNode for TableAndColumnsList {
27175    #[inline]
27176    fn can_cast(kind: SyntaxKind) -> bool {
27177        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27178    }
27179    #[inline]
27180    fn cast(syntax: SyntaxNode) -> Option<Self> {
27181        if Self::can_cast(syntax.kind()) {
27182            Some(Self { syntax })
27183        } else {
27184            None
27185        }
27186    }
27187    #[inline]
27188    fn syntax(&self) -> &SyntaxNode {
27189        &self.syntax
27190    }
27191}
27192impl AstNode for TableArgList {
27193    #[inline]
27194    fn can_cast(kind: SyntaxKind) -> bool {
27195        kind == SyntaxKind::TABLE_ARG_LIST
27196    }
27197    #[inline]
27198    fn cast(syntax: SyntaxNode) -> Option<Self> {
27199        if Self::can_cast(syntax.kind()) {
27200            Some(Self { syntax })
27201        } else {
27202            None
27203        }
27204    }
27205    #[inline]
27206    fn syntax(&self) -> &SyntaxNode {
27207        &self.syntax
27208    }
27209}
27210impl AstNode for TableList {
27211    #[inline]
27212    fn can_cast(kind: SyntaxKind) -> bool {
27213        kind == SyntaxKind::TABLE_LIST
27214    }
27215    #[inline]
27216    fn cast(syntax: SyntaxNode) -> Option<Self> {
27217        if Self::can_cast(syntax.kind()) {
27218            Some(Self { syntax })
27219        } else {
27220            None
27221        }
27222    }
27223    #[inline]
27224    fn syntax(&self) -> &SyntaxNode {
27225        &self.syntax
27226    }
27227}
27228impl AstNode for TablesampleClause {
27229    #[inline]
27230    fn can_cast(kind: SyntaxKind) -> bool {
27231        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27232    }
27233    #[inline]
27234    fn cast(syntax: SyntaxNode) -> Option<Self> {
27235        if Self::can_cast(syntax.kind()) {
27236            Some(Self { syntax })
27237        } else {
27238            None
27239        }
27240    }
27241    #[inline]
27242    fn syntax(&self) -> &SyntaxNode {
27243        &self.syntax
27244    }
27245}
27246impl AstNode for Tablespace {
27247    #[inline]
27248    fn can_cast(kind: SyntaxKind) -> bool {
27249        kind == SyntaxKind::TABLESPACE
27250    }
27251    #[inline]
27252    fn cast(syntax: SyntaxNode) -> Option<Self> {
27253        if Self::can_cast(syntax.kind()) {
27254            Some(Self { syntax })
27255        } else {
27256            None
27257        }
27258    }
27259    #[inline]
27260    fn syntax(&self) -> &SyntaxNode {
27261        &self.syntax
27262    }
27263}
27264impl AstNode for Target {
27265    #[inline]
27266    fn can_cast(kind: SyntaxKind) -> bool {
27267        kind == SyntaxKind::TARGET
27268    }
27269    #[inline]
27270    fn cast(syntax: SyntaxNode) -> Option<Self> {
27271        if Self::can_cast(syntax.kind()) {
27272            Some(Self { syntax })
27273        } else {
27274            None
27275        }
27276    }
27277    #[inline]
27278    fn syntax(&self) -> &SyntaxNode {
27279        &self.syntax
27280    }
27281}
27282impl AstNode for TargetList {
27283    #[inline]
27284    fn can_cast(kind: SyntaxKind) -> bool {
27285        kind == SyntaxKind::TARGET_LIST
27286    }
27287    #[inline]
27288    fn cast(syntax: SyntaxNode) -> Option<Self> {
27289        if Self::can_cast(syntax.kind()) {
27290            Some(Self { syntax })
27291        } else {
27292            None
27293        }
27294    }
27295    #[inline]
27296    fn syntax(&self) -> &SyntaxNode {
27297        &self.syntax
27298    }
27299}
27300impl AstNode for TimeType {
27301    #[inline]
27302    fn can_cast(kind: SyntaxKind) -> bool {
27303        kind == SyntaxKind::TIME_TYPE
27304    }
27305    #[inline]
27306    fn cast(syntax: SyntaxNode) -> Option<Self> {
27307        if Self::can_cast(syntax.kind()) {
27308            Some(Self { syntax })
27309        } else {
27310            None
27311        }
27312    }
27313    #[inline]
27314    fn syntax(&self) -> &SyntaxNode {
27315        &self.syntax
27316    }
27317}
27318impl AstNode for Timing {
27319    #[inline]
27320    fn can_cast(kind: SyntaxKind) -> bool {
27321        kind == SyntaxKind::TIMING
27322    }
27323    #[inline]
27324    fn cast(syntax: SyntaxNode) -> Option<Self> {
27325        if Self::can_cast(syntax.kind()) {
27326            Some(Self { syntax })
27327        } else {
27328            None
27329        }
27330    }
27331    #[inline]
27332    fn syntax(&self) -> &SyntaxNode {
27333        &self.syntax
27334    }
27335}
27336impl AstNode for TransactionModeList {
27337    #[inline]
27338    fn can_cast(kind: SyntaxKind) -> bool {
27339        kind == SyntaxKind::TRANSACTION_MODE_LIST
27340    }
27341    #[inline]
27342    fn cast(syntax: SyntaxNode) -> Option<Self> {
27343        if Self::can_cast(syntax.kind()) {
27344            Some(Self { syntax })
27345        } else {
27346            None
27347        }
27348    }
27349    #[inline]
27350    fn syntax(&self) -> &SyntaxNode {
27351        &self.syntax
27352    }
27353}
27354impl AstNode for TransformFromFunc {
27355    #[inline]
27356    fn can_cast(kind: SyntaxKind) -> bool {
27357        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27358    }
27359    #[inline]
27360    fn cast(syntax: SyntaxNode) -> Option<Self> {
27361        if Self::can_cast(syntax.kind()) {
27362            Some(Self { syntax })
27363        } else {
27364            None
27365        }
27366    }
27367    #[inline]
27368    fn syntax(&self) -> &SyntaxNode {
27369        &self.syntax
27370    }
27371}
27372impl AstNode for TransformFuncOption {
27373    #[inline]
27374    fn can_cast(kind: SyntaxKind) -> bool {
27375        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27376    }
27377    #[inline]
27378    fn cast(syntax: SyntaxNode) -> Option<Self> {
27379        if Self::can_cast(syntax.kind()) {
27380            Some(Self { syntax })
27381        } else {
27382            None
27383        }
27384    }
27385    #[inline]
27386    fn syntax(&self) -> &SyntaxNode {
27387        &self.syntax
27388    }
27389}
27390impl AstNode for TransformToFunc {
27391    #[inline]
27392    fn can_cast(kind: SyntaxKind) -> bool {
27393        kind == SyntaxKind::TRANSFORM_TO_FUNC
27394    }
27395    #[inline]
27396    fn cast(syntax: SyntaxNode) -> Option<Self> {
27397        if Self::can_cast(syntax.kind()) {
27398            Some(Self { syntax })
27399        } else {
27400            None
27401        }
27402    }
27403    #[inline]
27404    fn syntax(&self) -> &SyntaxNode {
27405        &self.syntax
27406    }
27407}
27408impl AstNode for TriggerEvent {
27409    #[inline]
27410    fn can_cast(kind: SyntaxKind) -> bool {
27411        kind == SyntaxKind::TRIGGER_EVENT
27412    }
27413    #[inline]
27414    fn cast(syntax: SyntaxNode) -> Option<Self> {
27415        if Self::can_cast(syntax.kind()) {
27416            Some(Self { syntax })
27417        } else {
27418            None
27419        }
27420    }
27421    #[inline]
27422    fn syntax(&self) -> &SyntaxNode {
27423        &self.syntax
27424    }
27425}
27426impl AstNode for TriggerEventList {
27427    #[inline]
27428    fn can_cast(kind: SyntaxKind) -> bool {
27429        kind == SyntaxKind::TRIGGER_EVENT_LIST
27430    }
27431    #[inline]
27432    fn cast(syntax: SyntaxNode) -> Option<Self> {
27433        if Self::can_cast(syntax.kind()) {
27434            Some(Self { syntax })
27435        } else {
27436            None
27437        }
27438    }
27439    #[inline]
27440    fn syntax(&self) -> &SyntaxNode {
27441        &self.syntax
27442    }
27443}
27444impl AstNode for TriggerEventUpdate {
27445    #[inline]
27446    fn can_cast(kind: SyntaxKind) -> bool {
27447        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27448    }
27449    #[inline]
27450    fn cast(syntax: SyntaxNode) -> Option<Self> {
27451        if Self::can_cast(syntax.kind()) {
27452            Some(Self { syntax })
27453        } else {
27454            None
27455        }
27456    }
27457    #[inline]
27458    fn syntax(&self) -> &SyntaxNode {
27459        &self.syntax
27460    }
27461}
27462impl AstNode for TrimFn {
27463    #[inline]
27464    fn can_cast(kind: SyntaxKind) -> bool {
27465        kind == SyntaxKind::TRIM_FN
27466    }
27467    #[inline]
27468    fn cast(syntax: SyntaxNode) -> Option<Self> {
27469        if Self::can_cast(syntax.kind()) {
27470            Some(Self { syntax })
27471        } else {
27472            None
27473        }
27474    }
27475    #[inline]
27476    fn syntax(&self) -> &SyntaxNode {
27477        &self.syntax
27478    }
27479}
27480impl AstNode for Truncate {
27481    #[inline]
27482    fn can_cast(kind: SyntaxKind) -> bool {
27483        kind == SyntaxKind::TRUNCATE
27484    }
27485    #[inline]
27486    fn cast(syntax: SyntaxNode) -> Option<Self> {
27487        if Self::can_cast(syntax.kind()) {
27488            Some(Self { syntax })
27489        } else {
27490            None
27491        }
27492    }
27493    #[inline]
27494    fn syntax(&self) -> &SyntaxNode {
27495        &self.syntax
27496    }
27497}
27498impl AstNode for TupleExpr {
27499    #[inline]
27500    fn can_cast(kind: SyntaxKind) -> bool {
27501        kind == SyntaxKind::TUPLE_EXPR
27502    }
27503    #[inline]
27504    fn cast(syntax: SyntaxNode) -> Option<Self> {
27505        if Self::can_cast(syntax.kind()) {
27506            Some(Self { syntax })
27507        } else {
27508            None
27509        }
27510    }
27511    #[inline]
27512    fn syntax(&self) -> &SyntaxNode {
27513        &self.syntax
27514    }
27515}
27516impl AstNode for UnicodeNormalForm {
27517    #[inline]
27518    fn can_cast(kind: SyntaxKind) -> bool {
27519        kind == SyntaxKind::UNICODE_NORMAL_FORM
27520    }
27521    #[inline]
27522    fn cast(syntax: SyntaxNode) -> Option<Self> {
27523        if Self::can_cast(syntax.kind()) {
27524            Some(Self { syntax })
27525        } else {
27526            None
27527        }
27528    }
27529    #[inline]
27530    fn syntax(&self) -> &SyntaxNode {
27531        &self.syntax
27532    }
27533}
27534impl AstNode for UniqueConstraint {
27535    #[inline]
27536    fn can_cast(kind: SyntaxKind) -> bool {
27537        kind == SyntaxKind::UNIQUE_CONSTRAINT
27538    }
27539    #[inline]
27540    fn cast(syntax: SyntaxNode) -> Option<Self> {
27541        if Self::can_cast(syntax.kind()) {
27542            Some(Self { syntax })
27543        } else {
27544            None
27545        }
27546    }
27547    #[inline]
27548    fn syntax(&self) -> &SyntaxNode {
27549        &self.syntax
27550    }
27551}
27552impl AstNode for Unlisten {
27553    #[inline]
27554    fn can_cast(kind: SyntaxKind) -> bool {
27555        kind == SyntaxKind::UNLISTEN
27556    }
27557    #[inline]
27558    fn cast(syntax: SyntaxNode) -> Option<Self> {
27559        if Self::can_cast(syntax.kind()) {
27560            Some(Self { syntax })
27561        } else {
27562            None
27563        }
27564    }
27565    #[inline]
27566    fn syntax(&self) -> &SyntaxNode {
27567        &self.syntax
27568    }
27569}
27570impl AstNode for Update {
27571    #[inline]
27572    fn can_cast(kind: SyntaxKind) -> bool {
27573        kind == SyntaxKind::UPDATE
27574    }
27575    #[inline]
27576    fn cast(syntax: SyntaxNode) -> Option<Self> {
27577        if Self::can_cast(syntax.kind()) {
27578            Some(Self { syntax })
27579        } else {
27580            None
27581        }
27582    }
27583    #[inline]
27584    fn syntax(&self) -> &SyntaxNode {
27585        &self.syntax
27586    }
27587}
27588impl AstNode for UsingClause {
27589    #[inline]
27590    fn can_cast(kind: SyntaxKind) -> bool {
27591        kind == SyntaxKind::USING_CLAUSE
27592    }
27593    #[inline]
27594    fn cast(syntax: SyntaxNode) -> Option<Self> {
27595        if Self::can_cast(syntax.kind()) {
27596            Some(Self { syntax })
27597        } else {
27598            None
27599        }
27600    }
27601    #[inline]
27602    fn syntax(&self) -> &SyntaxNode {
27603        &self.syntax
27604    }
27605}
27606impl AstNode for UsingIndex {
27607    #[inline]
27608    fn can_cast(kind: SyntaxKind) -> bool {
27609        kind == SyntaxKind::USING_INDEX
27610    }
27611    #[inline]
27612    fn cast(syntax: SyntaxNode) -> Option<Self> {
27613        if Self::can_cast(syntax.kind()) {
27614            Some(Self { syntax })
27615        } else {
27616            None
27617        }
27618    }
27619    #[inline]
27620    fn syntax(&self) -> &SyntaxNode {
27621        &self.syntax
27622    }
27623}
27624impl AstNode for UsingMethod {
27625    #[inline]
27626    fn can_cast(kind: SyntaxKind) -> bool {
27627        kind == SyntaxKind::USING_METHOD
27628    }
27629    #[inline]
27630    fn cast(syntax: SyntaxNode) -> Option<Self> {
27631        if Self::can_cast(syntax.kind()) {
27632            Some(Self { syntax })
27633        } else {
27634            None
27635        }
27636    }
27637    #[inline]
27638    fn syntax(&self) -> &SyntaxNode {
27639        &self.syntax
27640    }
27641}
27642impl AstNode for UsingOnClause {
27643    #[inline]
27644    fn can_cast(kind: SyntaxKind) -> bool {
27645        kind == SyntaxKind::USING_ON_CLAUSE
27646    }
27647    #[inline]
27648    fn cast(syntax: SyntaxNode) -> Option<Self> {
27649        if Self::can_cast(syntax.kind()) {
27650            Some(Self { syntax })
27651        } else {
27652            None
27653        }
27654    }
27655    #[inline]
27656    fn syntax(&self) -> &SyntaxNode {
27657        &self.syntax
27658    }
27659}
27660impl AstNode for Vacuum {
27661    #[inline]
27662    fn can_cast(kind: SyntaxKind) -> bool {
27663        kind == SyntaxKind::VACUUM
27664    }
27665    #[inline]
27666    fn cast(syntax: SyntaxNode) -> Option<Self> {
27667        if Self::can_cast(syntax.kind()) {
27668            Some(Self { syntax })
27669        } else {
27670            None
27671        }
27672    }
27673    #[inline]
27674    fn syntax(&self) -> &SyntaxNode {
27675        &self.syntax
27676    }
27677}
27678impl AstNode for VacuumOption {
27679    #[inline]
27680    fn can_cast(kind: SyntaxKind) -> bool {
27681        kind == SyntaxKind::VACUUM_OPTION
27682    }
27683    #[inline]
27684    fn cast(syntax: SyntaxNode) -> Option<Self> {
27685        if Self::can_cast(syntax.kind()) {
27686            Some(Self { syntax })
27687        } else {
27688            None
27689        }
27690    }
27691    #[inline]
27692    fn syntax(&self) -> &SyntaxNode {
27693        &self.syntax
27694    }
27695}
27696impl AstNode for VacuumOptionList {
27697    #[inline]
27698    fn can_cast(kind: SyntaxKind) -> bool {
27699        kind == SyntaxKind::VACUUM_OPTION_LIST
27700    }
27701    #[inline]
27702    fn cast(syntax: SyntaxNode) -> Option<Self> {
27703        if Self::can_cast(syntax.kind()) {
27704            Some(Self { syntax })
27705        } else {
27706            None
27707        }
27708    }
27709    #[inline]
27710    fn syntax(&self) -> &SyntaxNode {
27711        &self.syntax
27712    }
27713}
27714impl AstNode for ValidateConstraint {
27715    #[inline]
27716    fn can_cast(kind: SyntaxKind) -> bool {
27717        kind == SyntaxKind::VALIDATE_CONSTRAINT
27718    }
27719    #[inline]
27720    fn cast(syntax: SyntaxNode) -> Option<Self> {
27721        if Self::can_cast(syntax.kind()) {
27722            Some(Self { syntax })
27723        } else {
27724            None
27725        }
27726    }
27727    #[inline]
27728    fn syntax(&self) -> &SyntaxNode {
27729        &self.syntax
27730    }
27731}
27732impl AstNode for Values {
27733    #[inline]
27734    fn can_cast(kind: SyntaxKind) -> bool {
27735        kind == SyntaxKind::VALUES
27736    }
27737    #[inline]
27738    fn cast(syntax: SyntaxNode) -> Option<Self> {
27739        if Self::can_cast(syntax.kind()) {
27740            Some(Self { syntax })
27741        } else {
27742            None
27743        }
27744    }
27745    #[inline]
27746    fn syntax(&self) -> &SyntaxNode {
27747        &self.syntax
27748    }
27749}
27750impl AstNode for Variant {
27751    #[inline]
27752    fn can_cast(kind: SyntaxKind) -> bool {
27753        kind == SyntaxKind::VARIANT
27754    }
27755    #[inline]
27756    fn cast(syntax: SyntaxNode) -> Option<Self> {
27757        if Self::can_cast(syntax.kind()) {
27758            Some(Self { syntax })
27759        } else {
27760            None
27761        }
27762    }
27763    #[inline]
27764    fn syntax(&self) -> &SyntaxNode {
27765        &self.syntax
27766    }
27767}
27768impl AstNode for VariantList {
27769    #[inline]
27770    fn can_cast(kind: SyntaxKind) -> bool {
27771        kind == SyntaxKind::VARIANT_LIST
27772    }
27773    #[inline]
27774    fn cast(syntax: SyntaxNode) -> Option<Self> {
27775        if Self::can_cast(syntax.kind()) {
27776            Some(Self { syntax })
27777        } else {
27778            None
27779        }
27780    }
27781    #[inline]
27782    fn syntax(&self) -> &SyntaxNode {
27783        &self.syntax
27784    }
27785}
27786impl AstNode for VolatilityFuncOption {
27787    #[inline]
27788    fn can_cast(kind: SyntaxKind) -> bool {
27789        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27790    }
27791    #[inline]
27792    fn cast(syntax: SyntaxNode) -> Option<Self> {
27793        if Self::can_cast(syntax.kind()) {
27794            Some(Self { syntax })
27795        } else {
27796            None
27797        }
27798    }
27799    #[inline]
27800    fn syntax(&self) -> &SyntaxNode {
27801        &self.syntax
27802    }
27803}
27804impl AstNode for WhenClause {
27805    #[inline]
27806    fn can_cast(kind: SyntaxKind) -> bool {
27807        kind == SyntaxKind::WHEN_CLAUSE
27808    }
27809    #[inline]
27810    fn cast(syntax: SyntaxNode) -> Option<Self> {
27811        if Self::can_cast(syntax.kind()) {
27812            Some(Self { syntax })
27813        } else {
27814            None
27815        }
27816    }
27817    #[inline]
27818    fn syntax(&self) -> &SyntaxNode {
27819        &self.syntax
27820    }
27821}
27822impl AstNode for WhenClauseList {
27823    #[inline]
27824    fn can_cast(kind: SyntaxKind) -> bool {
27825        kind == SyntaxKind::WHEN_CLAUSE_LIST
27826    }
27827    #[inline]
27828    fn cast(syntax: SyntaxNode) -> Option<Self> {
27829        if Self::can_cast(syntax.kind()) {
27830            Some(Self { syntax })
27831        } else {
27832            None
27833        }
27834    }
27835    #[inline]
27836    fn syntax(&self) -> &SyntaxNode {
27837        &self.syntax
27838    }
27839}
27840impl AstNode for WhenCondition {
27841    #[inline]
27842    fn can_cast(kind: SyntaxKind) -> bool {
27843        kind == SyntaxKind::WHEN_CONDITION
27844    }
27845    #[inline]
27846    fn cast(syntax: SyntaxNode) -> Option<Self> {
27847        if Self::can_cast(syntax.kind()) {
27848            Some(Self { syntax })
27849        } else {
27850            None
27851        }
27852    }
27853    #[inline]
27854    fn syntax(&self) -> &SyntaxNode {
27855        &self.syntax
27856    }
27857}
27858impl AstNode for WhereClause {
27859    #[inline]
27860    fn can_cast(kind: SyntaxKind) -> bool {
27861        kind == SyntaxKind::WHERE_CLAUSE
27862    }
27863    #[inline]
27864    fn cast(syntax: SyntaxNode) -> Option<Self> {
27865        if Self::can_cast(syntax.kind()) {
27866            Some(Self { syntax })
27867        } else {
27868            None
27869        }
27870    }
27871    #[inline]
27872    fn syntax(&self) -> &SyntaxNode {
27873        &self.syntax
27874    }
27875}
27876impl AstNode for WhereConditionClause {
27877    #[inline]
27878    fn can_cast(kind: SyntaxKind) -> bool {
27879        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
27880    }
27881    #[inline]
27882    fn cast(syntax: SyntaxNode) -> Option<Self> {
27883        if Self::can_cast(syntax.kind()) {
27884            Some(Self { syntax })
27885        } else {
27886            None
27887        }
27888    }
27889    #[inline]
27890    fn syntax(&self) -> &SyntaxNode {
27891        &self.syntax
27892    }
27893}
27894impl AstNode for WhereCurrentOf {
27895    #[inline]
27896    fn can_cast(kind: SyntaxKind) -> bool {
27897        kind == SyntaxKind::WHERE_CURRENT_OF
27898    }
27899    #[inline]
27900    fn cast(syntax: SyntaxNode) -> Option<Self> {
27901        if Self::can_cast(syntax.kind()) {
27902            Some(Self { syntax })
27903        } else {
27904            None
27905        }
27906    }
27907    #[inline]
27908    fn syntax(&self) -> &SyntaxNode {
27909        &self.syntax
27910    }
27911}
27912impl AstNode for WindowClause {
27913    #[inline]
27914    fn can_cast(kind: SyntaxKind) -> bool {
27915        kind == SyntaxKind::WINDOW_CLAUSE
27916    }
27917    #[inline]
27918    fn cast(syntax: SyntaxNode) -> Option<Self> {
27919        if Self::can_cast(syntax.kind()) {
27920            Some(Self { syntax })
27921        } else {
27922            None
27923        }
27924    }
27925    #[inline]
27926    fn syntax(&self) -> &SyntaxNode {
27927        &self.syntax
27928    }
27929}
27930impl AstNode for WindowDef {
27931    #[inline]
27932    fn can_cast(kind: SyntaxKind) -> bool {
27933        kind == SyntaxKind::WINDOW_DEF
27934    }
27935    #[inline]
27936    fn cast(syntax: SyntaxNode) -> Option<Self> {
27937        if Self::can_cast(syntax.kind()) {
27938            Some(Self { syntax })
27939        } else {
27940            None
27941        }
27942    }
27943    #[inline]
27944    fn syntax(&self) -> &SyntaxNode {
27945        &self.syntax
27946    }
27947}
27948impl AstNode for WindowFuncOption {
27949    #[inline]
27950    fn can_cast(kind: SyntaxKind) -> bool {
27951        kind == SyntaxKind::WINDOW_FUNC_OPTION
27952    }
27953    #[inline]
27954    fn cast(syntax: SyntaxNode) -> Option<Self> {
27955        if Self::can_cast(syntax.kind()) {
27956            Some(Self { syntax })
27957        } else {
27958            None
27959        }
27960    }
27961    #[inline]
27962    fn syntax(&self) -> &SyntaxNode {
27963        &self.syntax
27964    }
27965}
27966impl AstNode for WindowSpec {
27967    #[inline]
27968    fn can_cast(kind: SyntaxKind) -> bool {
27969        kind == SyntaxKind::WINDOW_SPEC
27970    }
27971    #[inline]
27972    fn cast(syntax: SyntaxNode) -> Option<Self> {
27973        if Self::can_cast(syntax.kind()) {
27974            Some(Self { syntax })
27975        } else {
27976            None
27977        }
27978    }
27979    #[inline]
27980    fn syntax(&self) -> &SyntaxNode {
27981        &self.syntax
27982    }
27983}
27984impl AstNode for WithClause {
27985    #[inline]
27986    fn can_cast(kind: SyntaxKind) -> bool {
27987        kind == SyntaxKind::WITH_CLAUSE
27988    }
27989    #[inline]
27990    fn cast(syntax: SyntaxNode) -> Option<Self> {
27991        if Self::can_cast(syntax.kind()) {
27992            Some(Self { syntax })
27993        } else {
27994            None
27995        }
27996    }
27997    #[inline]
27998    fn syntax(&self) -> &SyntaxNode {
27999        &self.syntax
28000    }
28001}
28002impl AstNode for WithData {
28003    #[inline]
28004    fn can_cast(kind: SyntaxKind) -> bool {
28005        kind == SyntaxKind::WITH_DATA
28006    }
28007    #[inline]
28008    fn cast(syntax: SyntaxNode) -> Option<Self> {
28009        if Self::can_cast(syntax.kind()) {
28010            Some(Self { syntax })
28011        } else {
28012            None
28013        }
28014    }
28015    #[inline]
28016    fn syntax(&self) -> &SyntaxNode {
28017        &self.syntax
28018    }
28019}
28020impl AstNode for WithNoData {
28021    #[inline]
28022    fn can_cast(kind: SyntaxKind) -> bool {
28023        kind == SyntaxKind::WITH_NO_DATA
28024    }
28025    #[inline]
28026    fn cast(syntax: SyntaxNode) -> Option<Self> {
28027        if Self::can_cast(syntax.kind()) {
28028            Some(Self { syntax })
28029        } else {
28030            None
28031        }
28032    }
28033    #[inline]
28034    fn syntax(&self) -> &SyntaxNode {
28035        &self.syntax
28036    }
28037}
28038impl AstNode for WithOptions {
28039    #[inline]
28040    fn can_cast(kind: SyntaxKind) -> bool {
28041        kind == SyntaxKind::WITH_OPTIONS
28042    }
28043    #[inline]
28044    fn cast(syntax: SyntaxNode) -> Option<Self> {
28045        if Self::can_cast(syntax.kind()) {
28046            Some(Self { syntax })
28047        } else {
28048            None
28049        }
28050    }
28051    #[inline]
28052    fn syntax(&self) -> &SyntaxNode {
28053        &self.syntax
28054    }
28055}
28056impl AstNode for WithParams {
28057    #[inline]
28058    fn can_cast(kind: SyntaxKind) -> bool {
28059        kind == SyntaxKind::WITH_PARAMS
28060    }
28061    #[inline]
28062    fn cast(syntax: SyntaxNode) -> Option<Self> {
28063        if Self::can_cast(syntax.kind()) {
28064            Some(Self { syntax })
28065        } else {
28066            None
28067        }
28068    }
28069    #[inline]
28070    fn syntax(&self) -> &SyntaxNode {
28071        &self.syntax
28072    }
28073}
28074impl AstNode for WithTable {
28075    #[inline]
28076    fn can_cast(kind: SyntaxKind) -> bool {
28077        kind == SyntaxKind::WITH_TABLE
28078    }
28079    #[inline]
28080    fn cast(syntax: SyntaxNode) -> Option<Self> {
28081        if Self::can_cast(syntax.kind()) {
28082            Some(Self { syntax })
28083        } else {
28084            None
28085        }
28086    }
28087    #[inline]
28088    fn syntax(&self) -> &SyntaxNode {
28089        &self.syntax
28090    }
28091}
28092impl AstNode for WithTimezone {
28093    #[inline]
28094    fn can_cast(kind: SyntaxKind) -> bool {
28095        kind == SyntaxKind::WITH_TIMEZONE
28096    }
28097    #[inline]
28098    fn cast(syntax: SyntaxNode) -> Option<Self> {
28099        if Self::can_cast(syntax.kind()) {
28100            Some(Self { syntax })
28101        } else {
28102            None
28103        }
28104    }
28105    #[inline]
28106    fn syntax(&self) -> &SyntaxNode {
28107        &self.syntax
28108    }
28109}
28110impl AstNode for WithinClause {
28111    #[inline]
28112    fn can_cast(kind: SyntaxKind) -> bool {
28113        kind == SyntaxKind::WITHIN_CLAUSE
28114    }
28115    #[inline]
28116    fn cast(syntax: SyntaxNode) -> Option<Self> {
28117        if Self::can_cast(syntax.kind()) {
28118            Some(Self { syntax })
28119        } else {
28120            None
28121        }
28122    }
28123    #[inline]
28124    fn syntax(&self) -> &SyntaxNode {
28125        &self.syntax
28126    }
28127}
28128impl AstNode for WithoutOids {
28129    #[inline]
28130    fn can_cast(kind: SyntaxKind) -> bool {
28131        kind == SyntaxKind::WITHOUT_OIDS
28132    }
28133    #[inline]
28134    fn cast(syntax: SyntaxNode) -> Option<Self> {
28135        if Self::can_cast(syntax.kind()) {
28136            Some(Self { syntax })
28137        } else {
28138            None
28139        }
28140    }
28141    #[inline]
28142    fn syntax(&self) -> &SyntaxNode {
28143        &self.syntax
28144    }
28145}
28146impl AstNode for WithoutTimezone {
28147    #[inline]
28148    fn can_cast(kind: SyntaxKind) -> bool {
28149        kind == SyntaxKind::WITHOUT_TIMEZONE
28150    }
28151    #[inline]
28152    fn cast(syntax: SyntaxNode) -> Option<Self> {
28153        if Self::can_cast(syntax.kind()) {
28154            Some(Self { syntax })
28155        } else {
28156            None
28157        }
28158    }
28159    #[inline]
28160    fn syntax(&self) -> &SyntaxNode {
28161        &self.syntax
28162    }
28163}
28164impl AstNode for XmlAttributeList {
28165    #[inline]
28166    fn can_cast(kind: SyntaxKind) -> bool {
28167        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28168    }
28169    #[inline]
28170    fn cast(syntax: SyntaxNode) -> Option<Self> {
28171        if Self::can_cast(syntax.kind()) {
28172            Some(Self { syntax })
28173        } else {
28174            None
28175        }
28176    }
28177    #[inline]
28178    fn syntax(&self) -> &SyntaxNode {
28179        &self.syntax
28180    }
28181}
28182impl AstNode for XmlColumnOption {
28183    #[inline]
28184    fn can_cast(kind: SyntaxKind) -> bool {
28185        kind == SyntaxKind::XML_COLUMN_OPTION
28186    }
28187    #[inline]
28188    fn cast(syntax: SyntaxNode) -> Option<Self> {
28189        if Self::can_cast(syntax.kind()) {
28190            Some(Self { syntax })
28191        } else {
28192            None
28193        }
28194    }
28195    #[inline]
28196    fn syntax(&self) -> &SyntaxNode {
28197        &self.syntax
28198    }
28199}
28200impl AstNode for XmlColumnOptionList {
28201    #[inline]
28202    fn can_cast(kind: SyntaxKind) -> bool {
28203        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28204    }
28205    #[inline]
28206    fn cast(syntax: SyntaxNode) -> Option<Self> {
28207        if Self::can_cast(syntax.kind()) {
28208            Some(Self { syntax })
28209        } else {
28210            None
28211        }
28212    }
28213    #[inline]
28214    fn syntax(&self) -> &SyntaxNode {
28215        &self.syntax
28216    }
28217}
28218impl AstNode for XmlElementFn {
28219    #[inline]
28220    fn can_cast(kind: SyntaxKind) -> bool {
28221        kind == SyntaxKind::XML_ELEMENT_FN
28222    }
28223    #[inline]
28224    fn cast(syntax: SyntaxNode) -> Option<Self> {
28225        if Self::can_cast(syntax.kind()) {
28226            Some(Self { syntax })
28227        } else {
28228            None
28229        }
28230    }
28231    #[inline]
28232    fn syntax(&self) -> &SyntaxNode {
28233        &self.syntax
28234    }
28235}
28236impl AstNode for XmlExistsFn {
28237    #[inline]
28238    fn can_cast(kind: SyntaxKind) -> bool {
28239        kind == SyntaxKind::XML_EXISTS_FN
28240    }
28241    #[inline]
28242    fn cast(syntax: SyntaxNode) -> Option<Self> {
28243        if Self::can_cast(syntax.kind()) {
28244            Some(Self { syntax })
28245        } else {
28246            None
28247        }
28248    }
28249    #[inline]
28250    fn syntax(&self) -> &SyntaxNode {
28251        &self.syntax
28252    }
28253}
28254impl AstNode for XmlForestFn {
28255    #[inline]
28256    fn can_cast(kind: SyntaxKind) -> bool {
28257        kind == SyntaxKind::XML_FOREST_FN
28258    }
28259    #[inline]
28260    fn cast(syntax: SyntaxNode) -> Option<Self> {
28261        if Self::can_cast(syntax.kind()) {
28262            Some(Self { syntax })
28263        } else {
28264            None
28265        }
28266    }
28267    #[inline]
28268    fn syntax(&self) -> &SyntaxNode {
28269        &self.syntax
28270    }
28271}
28272impl AstNode for XmlNamespace {
28273    #[inline]
28274    fn can_cast(kind: SyntaxKind) -> bool {
28275        kind == SyntaxKind::XML_NAMESPACE
28276    }
28277    #[inline]
28278    fn cast(syntax: SyntaxNode) -> Option<Self> {
28279        if Self::can_cast(syntax.kind()) {
28280            Some(Self { syntax })
28281        } else {
28282            None
28283        }
28284    }
28285    #[inline]
28286    fn syntax(&self) -> &SyntaxNode {
28287        &self.syntax
28288    }
28289}
28290impl AstNode for XmlNamespaceList {
28291    #[inline]
28292    fn can_cast(kind: SyntaxKind) -> bool {
28293        kind == SyntaxKind::XML_NAMESPACE_LIST
28294    }
28295    #[inline]
28296    fn cast(syntax: SyntaxNode) -> Option<Self> {
28297        if Self::can_cast(syntax.kind()) {
28298            Some(Self { syntax })
28299        } else {
28300            None
28301        }
28302    }
28303    #[inline]
28304    fn syntax(&self) -> &SyntaxNode {
28305        &self.syntax
28306    }
28307}
28308impl AstNode for XmlParseFn {
28309    #[inline]
28310    fn can_cast(kind: SyntaxKind) -> bool {
28311        kind == SyntaxKind::XML_PARSE_FN
28312    }
28313    #[inline]
28314    fn cast(syntax: SyntaxNode) -> Option<Self> {
28315        if Self::can_cast(syntax.kind()) {
28316            Some(Self { syntax })
28317        } else {
28318            None
28319        }
28320    }
28321    #[inline]
28322    fn syntax(&self) -> &SyntaxNode {
28323        &self.syntax
28324    }
28325}
28326impl AstNode for XmlPassingMech {
28327    #[inline]
28328    fn can_cast(kind: SyntaxKind) -> bool {
28329        kind == SyntaxKind::XML_PASSING_MECH
28330    }
28331    #[inline]
28332    fn cast(syntax: SyntaxNode) -> Option<Self> {
28333        if Self::can_cast(syntax.kind()) {
28334            Some(Self { syntax })
28335        } else {
28336            None
28337        }
28338    }
28339    #[inline]
28340    fn syntax(&self) -> &SyntaxNode {
28341        &self.syntax
28342    }
28343}
28344impl AstNode for XmlPiFn {
28345    #[inline]
28346    fn can_cast(kind: SyntaxKind) -> bool {
28347        kind == SyntaxKind::XML_PI_FN
28348    }
28349    #[inline]
28350    fn cast(syntax: SyntaxNode) -> Option<Self> {
28351        if Self::can_cast(syntax.kind()) {
28352            Some(Self { syntax })
28353        } else {
28354            None
28355        }
28356    }
28357    #[inline]
28358    fn syntax(&self) -> &SyntaxNode {
28359        &self.syntax
28360    }
28361}
28362impl AstNode for XmlRootFn {
28363    #[inline]
28364    fn can_cast(kind: SyntaxKind) -> bool {
28365        kind == SyntaxKind::XML_ROOT_FN
28366    }
28367    #[inline]
28368    fn cast(syntax: SyntaxNode) -> Option<Self> {
28369        if Self::can_cast(syntax.kind()) {
28370            Some(Self { syntax })
28371        } else {
28372            None
28373        }
28374    }
28375    #[inline]
28376    fn syntax(&self) -> &SyntaxNode {
28377        &self.syntax
28378    }
28379}
28380impl AstNode for XmlRowPassingClause {
28381    #[inline]
28382    fn can_cast(kind: SyntaxKind) -> bool {
28383        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28384    }
28385    #[inline]
28386    fn cast(syntax: SyntaxNode) -> Option<Self> {
28387        if Self::can_cast(syntax.kind()) {
28388            Some(Self { syntax })
28389        } else {
28390            None
28391        }
28392    }
28393    #[inline]
28394    fn syntax(&self) -> &SyntaxNode {
28395        &self.syntax
28396    }
28397}
28398impl AstNode for XmlSerializeFn {
28399    #[inline]
28400    fn can_cast(kind: SyntaxKind) -> bool {
28401        kind == SyntaxKind::XML_SERIALIZE_FN
28402    }
28403    #[inline]
28404    fn cast(syntax: SyntaxNode) -> Option<Self> {
28405        if Self::can_cast(syntax.kind()) {
28406            Some(Self { syntax })
28407        } else {
28408            None
28409        }
28410    }
28411    #[inline]
28412    fn syntax(&self) -> &SyntaxNode {
28413        &self.syntax
28414    }
28415}
28416impl AstNode for XmlTable {
28417    #[inline]
28418    fn can_cast(kind: SyntaxKind) -> bool {
28419        kind == SyntaxKind::XML_TABLE
28420    }
28421    #[inline]
28422    fn cast(syntax: SyntaxNode) -> Option<Self> {
28423        if Self::can_cast(syntax.kind()) {
28424            Some(Self { syntax })
28425        } else {
28426            None
28427        }
28428    }
28429    #[inline]
28430    fn syntax(&self) -> &SyntaxNode {
28431        &self.syntax
28432    }
28433}
28434impl AstNode for XmlTableColumn {
28435    #[inline]
28436    fn can_cast(kind: SyntaxKind) -> bool {
28437        kind == SyntaxKind::XML_TABLE_COLUMN
28438    }
28439    #[inline]
28440    fn cast(syntax: SyntaxNode) -> Option<Self> {
28441        if Self::can_cast(syntax.kind()) {
28442            Some(Self { syntax })
28443        } else {
28444            None
28445        }
28446    }
28447    #[inline]
28448    fn syntax(&self) -> &SyntaxNode {
28449        &self.syntax
28450    }
28451}
28452impl AstNode for XmlTableColumnList {
28453    #[inline]
28454    fn can_cast(kind: SyntaxKind) -> bool {
28455        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28456    }
28457    #[inline]
28458    fn cast(syntax: SyntaxNode) -> Option<Self> {
28459        if Self::can_cast(syntax.kind()) {
28460            Some(Self { syntax })
28461        } else {
28462            None
28463        }
28464    }
28465    #[inline]
28466    fn syntax(&self) -> &SyntaxNode {
28467        &self.syntax
28468    }
28469}
28470impl AstNode for AlterColumnOption {
28471    #[inline]
28472    fn can_cast(kind: SyntaxKind) -> bool {
28473        matches!(
28474            kind,
28475            SyntaxKind::ADD_GENERATED
28476                | SyntaxKind::DROP_DEFAULT
28477                | SyntaxKind::DROP_EXPRESSION
28478                | SyntaxKind::DROP_IDENTITY
28479                | SyntaxKind::DROP_NOT_NULL
28480                | SyntaxKind::RESET_OPTIONS
28481                | SyntaxKind::RESTART
28482                | SyntaxKind::SET_COMPRESSION
28483                | SyntaxKind::SET_DEFAULT
28484                | SyntaxKind::SET_EXPRESSION
28485                | SyntaxKind::SET_GENERATED
28486                | SyntaxKind::SET_GENERATED_OPTIONS
28487                | SyntaxKind::SET_NOT_NULL
28488                | SyntaxKind::SET_OPTIONS
28489                | SyntaxKind::SET_OPTIONS_LIST
28490                | SyntaxKind::SET_SEQUENCE_OPTION
28491                | SyntaxKind::SET_STATISTICS
28492                | SyntaxKind::SET_STORAGE
28493                | SyntaxKind::SET_TYPE
28494        )
28495    }
28496    #[inline]
28497    fn cast(syntax: SyntaxNode) -> Option<Self> {
28498        let res = match syntax.kind() {
28499            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28500            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28501            SyntaxKind::DROP_EXPRESSION => {
28502                AlterColumnOption::DropExpression(DropExpression { syntax })
28503            }
28504            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28505            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28506            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28507            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28508            SyntaxKind::SET_COMPRESSION => {
28509                AlterColumnOption::SetCompression(SetCompression { syntax })
28510            }
28511            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28512            SyntaxKind::SET_EXPRESSION => {
28513                AlterColumnOption::SetExpression(SetExpression { syntax })
28514            }
28515            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28516            SyntaxKind::SET_GENERATED_OPTIONS => {
28517                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28518            }
28519            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28520            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28521            SyntaxKind::SET_OPTIONS_LIST => {
28522                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28523            }
28524            SyntaxKind::SET_SEQUENCE_OPTION => {
28525                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28526            }
28527            SyntaxKind::SET_STATISTICS => {
28528                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28529            }
28530            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28531            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28532            _ => {
28533                return None;
28534            }
28535        };
28536        Some(res)
28537    }
28538    #[inline]
28539    fn syntax(&self) -> &SyntaxNode {
28540        match self {
28541            AlterColumnOption::AddGenerated(it) => &it.syntax,
28542            AlterColumnOption::DropDefault(it) => &it.syntax,
28543            AlterColumnOption::DropExpression(it) => &it.syntax,
28544            AlterColumnOption::DropIdentity(it) => &it.syntax,
28545            AlterColumnOption::DropNotNull(it) => &it.syntax,
28546            AlterColumnOption::ResetOptions(it) => &it.syntax,
28547            AlterColumnOption::Restart(it) => &it.syntax,
28548            AlterColumnOption::SetCompression(it) => &it.syntax,
28549            AlterColumnOption::SetDefault(it) => &it.syntax,
28550            AlterColumnOption::SetExpression(it) => &it.syntax,
28551            AlterColumnOption::SetGenerated(it) => &it.syntax,
28552            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28553            AlterColumnOption::SetNotNull(it) => &it.syntax,
28554            AlterColumnOption::SetOptions(it) => &it.syntax,
28555            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28556            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28557            AlterColumnOption::SetStatistics(it) => &it.syntax,
28558            AlterColumnOption::SetStorage(it) => &it.syntax,
28559            AlterColumnOption::SetType(it) => &it.syntax,
28560        }
28561    }
28562}
28563impl From<AddGenerated> for AlterColumnOption {
28564    #[inline]
28565    fn from(node: AddGenerated) -> AlterColumnOption {
28566        AlterColumnOption::AddGenerated(node)
28567    }
28568}
28569impl From<DropDefault> for AlterColumnOption {
28570    #[inline]
28571    fn from(node: DropDefault) -> AlterColumnOption {
28572        AlterColumnOption::DropDefault(node)
28573    }
28574}
28575impl From<DropExpression> for AlterColumnOption {
28576    #[inline]
28577    fn from(node: DropExpression) -> AlterColumnOption {
28578        AlterColumnOption::DropExpression(node)
28579    }
28580}
28581impl From<DropIdentity> for AlterColumnOption {
28582    #[inline]
28583    fn from(node: DropIdentity) -> AlterColumnOption {
28584        AlterColumnOption::DropIdentity(node)
28585    }
28586}
28587impl From<DropNotNull> for AlterColumnOption {
28588    #[inline]
28589    fn from(node: DropNotNull) -> AlterColumnOption {
28590        AlterColumnOption::DropNotNull(node)
28591    }
28592}
28593impl From<ResetOptions> for AlterColumnOption {
28594    #[inline]
28595    fn from(node: ResetOptions) -> AlterColumnOption {
28596        AlterColumnOption::ResetOptions(node)
28597    }
28598}
28599impl From<Restart> for AlterColumnOption {
28600    #[inline]
28601    fn from(node: Restart) -> AlterColumnOption {
28602        AlterColumnOption::Restart(node)
28603    }
28604}
28605impl From<SetCompression> for AlterColumnOption {
28606    #[inline]
28607    fn from(node: SetCompression) -> AlterColumnOption {
28608        AlterColumnOption::SetCompression(node)
28609    }
28610}
28611impl From<SetDefault> for AlterColumnOption {
28612    #[inline]
28613    fn from(node: SetDefault) -> AlterColumnOption {
28614        AlterColumnOption::SetDefault(node)
28615    }
28616}
28617impl From<SetExpression> for AlterColumnOption {
28618    #[inline]
28619    fn from(node: SetExpression) -> AlterColumnOption {
28620        AlterColumnOption::SetExpression(node)
28621    }
28622}
28623impl From<SetGenerated> for AlterColumnOption {
28624    #[inline]
28625    fn from(node: SetGenerated) -> AlterColumnOption {
28626        AlterColumnOption::SetGenerated(node)
28627    }
28628}
28629impl From<SetGeneratedOptions> for AlterColumnOption {
28630    #[inline]
28631    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28632        AlterColumnOption::SetGeneratedOptions(node)
28633    }
28634}
28635impl From<SetNotNull> for AlterColumnOption {
28636    #[inline]
28637    fn from(node: SetNotNull) -> AlterColumnOption {
28638        AlterColumnOption::SetNotNull(node)
28639    }
28640}
28641impl From<SetOptions> for AlterColumnOption {
28642    #[inline]
28643    fn from(node: SetOptions) -> AlterColumnOption {
28644        AlterColumnOption::SetOptions(node)
28645    }
28646}
28647impl From<SetOptionsList> for AlterColumnOption {
28648    #[inline]
28649    fn from(node: SetOptionsList) -> AlterColumnOption {
28650        AlterColumnOption::SetOptionsList(node)
28651    }
28652}
28653impl From<SetSequenceOption> for AlterColumnOption {
28654    #[inline]
28655    fn from(node: SetSequenceOption) -> AlterColumnOption {
28656        AlterColumnOption::SetSequenceOption(node)
28657    }
28658}
28659impl From<SetStatistics> for AlterColumnOption {
28660    #[inline]
28661    fn from(node: SetStatistics) -> AlterColumnOption {
28662        AlterColumnOption::SetStatistics(node)
28663    }
28664}
28665impl From<SetStorage> for AlterColumnOption {
28666    #[inline]
28667    fn from(node: SetStorage) -> AlterColumnOption {
28668        AlterColumnOption::SetStorage(node)
28669    }
28670}
28671impl From<SetType> for AlterColumnOption {
28672    #[inline]
28673    fn from(node: SetType) -> AlterColumnOption {
28674        AlterColumnOption::SetType(node)
28675    }
28676}
28677impl AstNode for AlterDomainAction {
28678    #[inline]
28679    fn can_cast(kind: SyntaxKind) -> bool {
28680        matches!(
28681            kind,
28682            SyntaxKind::ADD_CONSTRAINT
28683                | SyntaxKind::DROP_CONSTRAINT
28684                | SyntaxKind::DROP_DEFAULT
28685                | SyntaxKind::DROP_NOT_NULL
28686                | SyntaxKind::OWNER_TO
28687                | SyntaxKind::RENAME_CONSTRAINT
28688                | SyntaxKind::RENAME_TO
28689                | SyntaxKind::SET_DEFAULT
28690                | SyntaxKind::SET_NOT_NULL
28691                | SyntaxKind::SET_SCHEMA
28692                | SyntaxKind::VALIDATE_CONSTRAINT
28693        )
28694    }
28695    #[inline]
28696    fn cast(syntax: SyntaxNode) -> Option<Self> {
28697        let res = match syntax.kind() {
28698            SyntaxKind::ADD_CONSTRAINT => {
28699                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28700            }
28701            SyntaxKind::DROP_CONSTRAINT => {
28702                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28703            }
28704            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28705            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28706            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28707            SyntaxKind::RENAME_CONSTRAINT => {
28708                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28709            }
28710            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28711            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28712            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28713            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28714            SyntaxKind::VALIDATE_CONSTRAINT => {
28715                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28716            }
28717            _ => {
28718                return None;
28719            }
28720        };
28721        Some(res)
28722    }
28723    #[inline]
28724    fn syntax(&self) -> &SyntaxNode {
28725        match self {
28726            AlterDomainAction::AddConstraint(it) => &it.syntax,
28727            AlterDomainAction::DropConstraint(it) => &it.syntax,
28728            AlterDomainAction::DropDefault(it) => &it.syntax,
28729            AlterDomainAction::DropNotNull(it) => &it.syntax,
28730            AlterDomainAction::OwnerTo(it) => &it.syntax,
28731            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28732            AlterDomainAction::RenameTo(it) => &it.syntax,
28733            AlterDomainAction::SetDefault(it) => &it.syntax,
28734            AlterDomainAction::SetNotNull(it) => &it.syntax,
28735            AlterDomainAction::SetSchema(it) => &it.syntax,
28736            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28737        }
28738    }
28739}
28740impl From<AddConstraint> for AlterDomainAction {
28741    #[inline]
28742    fn from(node: AddConstraint) -> AlterDomainAction {
28743        AlterDomainAction::AddConstraint(node)
28744    }
28745}
28746impl From<DropConstraint> for AlterDomainAction {
28747    #[inline]
28748    fn from(node: DropConstraint) -> AlterDomainAction {
28749        AlterDomainAction::DropConstraint(node)
28750    }
28751}
28752impl From<DropDefault> for AlterDomainAction {
28753    #[inline]
28754    fn from(node: DropDefault) -> AlterDomainAction {
28755        AlterDomainAction::DropDefault(node)
28756    }
28757}
28758impl From<DropNotNull> for AlterDomainAction {
28759    #[inline]
28760    fn from(node: DropNotNull) -> AlterDomainAction {
28761        AlterDomainAction::DropNotNull(node)
28762    }
28763}
28764impl From<OwnerTo> for AlterDomainAction {
28765    #[inline]
28766    fn from(node: OwnerTo) -> AlterDomainAction {
28767        AlterDomainAction::OwnerTo(node)
28768    }
28769}
28770impl From<RenameConstraint> for AlterDomainAction {
28771    #[inline]
28772    fn from(node: RenameConstraint) -> AlterDomainAction {
28773        AlterDomainAction::RenameConstraint(node)
28774    }
28775}
28776impl From<RenameTo> for AlterDomainAction {
28777    #[inline]
28778    fn from(node: RenameTo) -> AlterDomainAction {
28779        AlterDomainAction::RenameTo(node)
28780    }
28781}
28782impl From<SetDefault> for AlterDomainAction {
28783    #[inline]
28784    fn from(node: SetDefault) -> AlterDomainAction {
28785        AlterDomainAction::SetDefault(node)
28786    }
28787}
28788impl From<SetNotNull> for AlterDomainAction {
28789    #[inline]
28790    fn from(node: SetNotNull) -> AlterDomainAction {
28791        AlterDomainAction::SetNotNull(node)
28792    }
28793}
28794impl From<SetSchema> for AlterDomainAction {
28795    #[inline]
28796    fn from(node: SetSchema) -> AlterDomainAction {
28797        AlterDomainAction::SetSchema(node)
28798    }
28799}
28800impl From<ValidateConstraint> for AlterDomainAction {
28801    #[inline]
28802    fn from(node: ValidateConstraint) -> AlterDomainAction {
28803        AlterDomainAction::ValidateConstraint(node)
28804    }
28805}
28806impl AstNode for AlterMaterializedViewAction {
28807    #[inline]
28808    fn can_cast(kind: SyntaxKind) -> bool {
28809        matches!(
28810            kind,
28811            SyntaxKind::DEPENDS_ON_EXTENSION
28812                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
28813                | SyntaxKind::RENAME_COLUMN
28814                | SyntaxKind::RENAME_TO
28815                | SyntaxKind::SET_SCHEMA
28816        )
28817    }
28818    #[inline]
28819    fn cast(syntax: SyntaxNode) -> Option<Self> {
28820        let res = match syntax.kind() {
28821            SyntaxKind::DEPENDS_ON_EXTENSION => {
28822                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
28823            }
28824            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
28825                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
28826            }
28827            SyntaxKind::RENAME_COLUMN => {
28828                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
28829            }
28830            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
28831            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
28832            _ => {
28833                if let Some(result) = AlterTableAction::cast(syntax) {
28834                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
28835                }
28836                return None;
28837            }
28838        };
28839        Some(res)
28840    }
28841    #[inline]
28842    fn syntax(&self) -> &SyntaxNode {
28843        match self {
28844            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
28845            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
28846            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
28847            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
28848            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
28849            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
28850        }
28851    }
28852}
28853impl From<DependsOnExtension> for AlterMaterializedViewAction {
28854    #[inline]
28855    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
28856        AlterMaterializedViewAction::DependsOnExtension(node)
28857    }
28858}
28859impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
28860    #[inline]
28861    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
28862        AlterMaterializedViewAction::NoDependsOnExtension(node)
28863    }
28864}
28865impl From<RenameColumn> for AlterMaterializedViewAction {
28866    #[inline]
28867    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
28868        AlterMaterializedViewAction::RenameColumn(node)
28869    }
28870}
28871impl From<RenameTo> for AlterMaterializedViewAction {
28872    #[inline]
28873    fn from(node: RenameTo) -> AlterMaterializedViewAction {
28874        AlterMaterializedViewAction::RenameTo(node)
28875    }
28876}
28877impl From<SetSchema> for AlterMaterializedViewAction {
28878    #[inline]
28879    fn from(node: SetSchema) -> AlterMaterializedViewAction {
28880        AlterMaterializedViewAction::SetSchema(node)
28881    }
28882}
28883impl AstNode for AlterTableAction {
28884    #[inline]
28885    fn can_cast(kind: SyntaxKind) -> bool {
28886        matches!(
28887            kind,
28888            SyntaxKind::ADD_COLUMN
28889                | SyntaxKind::ADD_CONSTRAINT
28890                | SyntaxKind::ALTER_COLUMN
28891                | SyntaxKind::ALTER_CONSTRAINT
28892                | SyntaxKind::ATTACH_PARTITION
28893                | SyntaxKind::CLUSTER_ON
28894                | SyntaxKind::DETACH_PARTITION
28895                | SyntaxKind::DISABLE_RLS
28896                | SyntaxKind::DISABLE_RULE
28897                | SyntaxKind::DISABLE_TRIGGER
28898                | SyntaxKind::DROP_COLUMN
28899                | SyntaxKind::DROP_CONSTRAINT
28900                | SyntaxKind::ENABLE_ALWAYS_RULE
28901                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
28902                | SyntaxKind::ENABLE_REPLICA_RULE
28903                | SyntaxKind::ENABLE_REPLICA_TRIGGER
28904                | SyntaxKind::ENABLE_RLS
28905                | SyntaxKind::ENABLE_RULE
28906                | SyntaxKind::ENABLE_TRIGGER
28907                | SyntaxKind::FORCE_RLS
28908                | SyntaxKind::INHERIT_TABLE
28909                | SyntaxKind::MERGE_PARTITIONS
28910                | SyntaxKind::NO_FORCE_RLS
28911                | SyntaxKind::NO_INHERIT_TABLE
28912                | SyntaxKind::NOT_OF
28913                | SyntaxKind::OF_TYPE
28914                | SyntaxKind::OPTION_ITEM_LIST
28915                | SyntaxKind::OWNER_TO
28916                | SyntaxKind::RENAME_COLUMN
28917                | SyntaxKind::RENAME_CONSTRAINT
28918                | SyntaxKind::RENAME_TO
28919                | SyntaxKind::REPLICA_IDENTITY
28920                | SyntaxKind::RESET_OPTIONS
28921                | SyntaxKind::SET_ACCESS_METHOD
28922                | SyntaxKind::SET_LOGGED
28923                | SyntaxKind::SET_OPTIONS
28924                | SyntaxKind::SET_SCHEMA
28925                | SyntaxKind::SET_TABLESPACE
28926                | SyntaxKind::SET_UNLOGGED
28927                | SyntaxKind::SET_WITHOUT_CLUSTER
28928                | SyntaxKind::SET_WITHOUT_OIDS
28929                | SyntaxKind::SPLIT_PARTITION
28930                | SyntaxKind::VALIDATE_CONSTRAINT
28931        )
28932    }
28933    #[inline]
28934    fn cast(syntax: SyntaxNode) -> Option<Self> {
28935        let res = match syntax.kind() {
28936            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
28937            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
28938            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
28939            SyntaxKind::ALTER_CONSTRAINT => {
28940                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
28941            }
28942            SyntaxKind::ATTACH_PARTITION => {
28943                AlterTableAction::AttachPartition(AttachPartition { syntax })
28944            }
28945            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
28946            SyntaxKind::DETACH_PARTITION => {
28947                AlterTableAction::DetachPartition(DetachPartition { syntax })
28948            }
28949            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
28950            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
28951            SyntaxKind::DISABLE_TRIGGER => {
28952                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
28953            }
28954            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
28955            SyntaxKind::DROP_CONSTRAINT => {
28956                AlterTableAction::DropConstraint(DropConstraint { syntax })
28957            }
28958            SyntaxKind::ENABLE_ALWAYS_RULE => {
28959                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
28960            }
28961            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
28962                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
28963            }
28964            SyntaxKind::ENABLE_REPLICA_RULE => {
28965                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
28966            }
28967            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
28968                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
28969            }
28970            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
28971            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
28972            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
28973            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
28974            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
28975            SyntaxKind::MERGE_PARTITIONS => {
28976                AlterTableAction::MergePartitions(MergePartitions { syntax })
28977            }
28978            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
28979            SyntaxKind::NO_INHERIT_TABLE => {
28980                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
28981            }
28982            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
28983            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
28984            SyntaxKind::OPTION_ITEM_LIST => {
28985                AlterTableAction::OptionItemList(OptionItemList { syntax })
28986            }
28987            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
28988            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
28989            SyntaxKind::RENAME_CONSTRAINT => {
28990                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
28991            }
28992            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
28993            SyntaxKind::REPLICA_IDENTITY => {
28994                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
28995            }
28996            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
28997            SyntaxKind::SET_ACCESS_METHOD => {
28998                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
28999            }
29000            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
29001            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
29002            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29003            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29004            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29005            SyntaxKind::SET_WITHOUT_CLUSTER => {
29006                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29007            }
29008            SyntaxKind::SET_WITHOUT_OIDS => {
29009                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29010            }
29011            SyntaxKind::SPLIT_PARTITION => {
29012                AlterTableAction::SplitPartition(SplitPartition { syntax })
29013            }
29014            SyntaxKind::VALIDATE_CONSTRAINT => {
29015                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29016            }
29017            _ => {
29018                return None;
29019            }
29020        };
29021        Some(res)
29022    }
29023    #[inline]
29024    fn syntax(&self) -> &SyntaxNode {
29025        match self {
29026            AlterTableAction::AddColumn(it) => &it.syntax,
29027            AlterTableAction::AddConstraint(it) => &it.syntax,
29028            AlterTableAction::AlterColumn(it) => &it.syntax,
29029            AlterTableAction::AlterConstraint(it) => &it.syntax,
29030            AlterTableAction::AttachPartition(it) => &it.syntax,
29031            AlterTableAction::ClusterOn(it) => &it.syntax,
29032            AlterTableAction::DetachPartition(it) => &it.syntax,
29033            AlterTableAction::DisableRls(it) => &it.syntax,
29034            AlterTableAction::DisableRule(it) => &it.syntax,
29035            AlterTableAction::DisableTrigger(it) => &it.syntax,
29036            AlterTableAction::DropColumn(it) => &it.syntax,
29037            AlterTableAction::DropConstraint(it) => &it.syntax,
29038            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29039            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29040            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29041            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29042            AlterTableAction::EnableRls(it) => &it.syntax,
29043            AlterTableAction::EnableRule(it) => &it.syntax,
29044            AlterTableAction::EnableTrigger(it) => &it.syntax,
29045            AlterTableAction::ForceRls(it) => &it.syntax,
29046            AlterTableAction::InheritTable(it) => &it.syntax,
29047            AlterTableAction::MergePartitions(it) => &it.syntax,
29048            AlterTableAction::NoForceRls(it) => &it.syntax,
29049            AlterTableAction::NoInheritTable(it) => &it.syntax,
29050            AlterTableAction::NotOf(it) => &it.syntax,
29051            AlterTableAction::OfType(it) => &it.syntax,
29052            AlterTableAction::OptionItemList(it) => &it.syntax,
29053            AlterTableAction::OwnerTo(it) => &it.syntax,
29054            AlterTableAction::RenameColumn(it) => &it.syntax,
29055            AlterTableAction::RenameConstraint(it) => &it.syntax,
29056            AlterTableAction::RenameTo(it) => &it.syntax,
29057            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29058            AlterTableAction::ResetOptions(it) => &it.syntax,
29059            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29060            AlterTableAction::SetLogged(it) => &it.syntax,
29061            AlterTableAction::SetOptions(it) => &it.syntax,
29062            AlterTableAction::SetSchema(it) => &it.syntax,
29063            AlterTableAction::SetTablespace(it) => &it.syntax,
29064            AlterTableAction::SetUnlogged(it) => &it.syntax,
29065            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29066            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29067            AlterTableAction::SplitPartition(it) => &it.syntax,
29068            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29069        }
29070    }
29071}
29072impl From<AddColumn> for AlterTableAction {
29073    #[inline]
29074    fn from(node: AddColumn) -> AlterTableAction {
29075        AlterTableAction::AddColumn(node)
29076    }
29077}
29078impl From<AddConstraint> for AlterTableAction {
29079    #[inline]
29080    fn from(node: AddConstraint) -> AlterTableAction {
29081        AlterTableAction::AddConstraint(node)
29082    }
29083}
29084impl From<AlterColumn> for AlterTableAction {
29085    #[inline]
29086    fn from(node: AlterColumn) -> AlterTableAction {
29087        AlterTableAction::AlterColumn(node)
29088    }
29089}
29090impl From<AlterConstraint> for AlterTableAction {
29091    #[inline]
29092    fn from(node: AlterConstraint) -> AlterTableAction {
29093        AlterTableAction::AlterConstraint(node)
29094    }
29095}
29096impl From<AttachPartition> for AlterTableAction {
29097    #[inline]
29098    fn from(node: AttachPartition) -> AlterTableAction {
29099        AlterTableAction::AttachPartition(node)
29100    }
29101}
29102impl From<ClusterOn> for AlterTableAction {
29103    #[inline]
29104    fn from(node: ClusterOn) -> AlterTableAction {
29105        AlterTableAction::ClusterOn(node)
29106    }
29107}
29108impl From<DetachPartition> for AlterTableAction {
29109    #[inline]
29110    fn from(node: DetachPartition) -> AlterTableAction {
29111        AlterTableAction::DetachPartition(node)
29112    }
29113}
29114impl From<DisableRls> for AlterTableAction {
29115    #[inline]
29116    fn from(node: DisableRls) -> AlterTableAction {
29117        AlterTableAction::DisableRls(node)
29118    }
29119}
29120impl From<DisableRule> for AlterTableAction {
29121    #[inline]
29122    fn from(node: DisableRule) -> AlterTableAction {
29123        AlterTableAction::DisableRule(node)
29124    }
29125}
29126impl From<DisableTrigger> for AlterTableAction {
29127    #[inline]
29128    fn from(node: DisableTrigger) -> AlterTableAction {
29129        AlterTableAction::DisableTrigger(node)
29130    }
29131}
29132impl From<DropColumn> for AlterTableAction {
29133    #[inline]
29134    fn from(node: DropColumn) -> AlterTableAction {
29135        AlterTableAction::DropColumn(node)
29136    }
29137}
29138impl From<DropConstraint> for AlterTableAction {
29139    #[inline]
29140    fn from(node: DropConstraint) -> AlterTableAction {
29141        AlterTableAction::DropConstraint(node)
29142    }
29143}
29144impl From<EnableAlwaysRule> for AlterTableAction {
29145    #[inline]
29146    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29147        AlterTableAction::EnableAlwaysRule(node)
29148    }
29149}
29150impl From<EnableAlwaysTrigger> for AlterTableAction {
29151    #[inline]
29152    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29153        AlterTableAction::EnableAlwaysTrigger(node)
29154    }
29155}
29156impl From<EnableReplicaRule> for AlterTableAction {
29157    #[inline]
29158    fn from(node: EnableReplicaRule) -> AlterTableAction {
29159        AlterTableAction::EnableReplicaRule(node)
29160    }
29161}
29162impl From<EnableReplicaTrigger> for AlterTableAction {
29163    #[inline]
29164    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29165        AlterTableAction::EnableReplicaTrigger(node)
29166    }
29167}
29168impl From<EnableRls> for AlterTableAction {
29169    #[inline]
29170    fn from(node: EnableRls) -> AlterTableAction {
29171        AlterTableAction::EnableRls(node)
29172    }
29173}
29174impl From<EnableRule> for AlterTableAction {
29175    #[inline]
29176    fn from(node: EnableRule) -> AlterTableAction {
29177        AlterTableAction::EnableRule(node)
29178    }
29179}
29180impl From<EnableTrigger> for AlterTableAction {
29181    #[inline]
29182    fn from(node: EnableTrigger) -> AlterTableAction {
29183        AlterTableAction::EnableTrigger(node)
29184    }
29185}
29186impl From<ForceRls> for AlterTableAction {
29187    #[inline]
29188    fn from(node: ForceRls) -> AlterTableAction {
29189        AlterTableAction::ForceRls(node)
29190    }
29191}
29192impl From<InheritTable> for AlterTableAction {
29193    #[inline]
29194    fn from(node: InheritTable) -> AlterTableAction {
29195        AlterTableAction::InheritTable(node)
29196    }
29197}
29198impl From<MergePartitions> for AlterTableAction {
29199    #[inline]
29200    fn from(node: MergePartitions) -> AlterTableAction {
29201        AlterTableAction::MergePartitions(node)
29202    }
29203}
29204impl From<NoForceRls> for AlterTableAction {
29205    #[inline]
29206    fn from(node: NoForceRls) -> AlterTableAction {
29207        AlterTableAction::NoForceRls(node)
29208    }
29209}
29210impl From<NoInheritTable> for AlterTableAction {
29211    #[inline]
29212    fn from(node: NoInheritTable) -> AlterTableAction {
29213        AlterTableAction::NoInheritTable(node)
29214    }
29215}
29216impl From<NotOf> for AlterTableAction {
29217    #[inline]
29218    fn from(node: NotOf) -> AlterTableAction {
29219        AlterTableAction::NotOf(node)
29220    }
29221}
29222impl From<OfType> for AlterTableAction {
29223    #[inline]
29224    fn from(node: OfType) -> AlterTableAction {
29225        AlterTableAction::OfType(node)
29226    }
29227}
29228impl From<OptionItemList> for AlterTableAction {
29229    #[inline]
29230    fn from(node: OptionItemList) -> AlterTableAction {
29231        AlterTableAction::OptionItemList(node)
29232    }
29233}
29234impl From<OwnerTo> for AlterTableAction {
29235    #[inline]
29236    fn from(node: OwnerTo) -> AlterTableAction {
29237        AlterTableAction::OwnerTo(node)
29238    }
29239}
29240impl From<RenameColumn> for AlterTableAction {
29241    #[inline]
29242    fn from(node: RenameColumn) -> AlterTableAction {
29243        AlterTableAction::RenameColumn(node)
29244    }
29245}
29246impl From<RenameConstraint> for AlterTableAction {
29247    #[inline]
29248    fn from(node: RenameConstraint) -> AlterTableAction {
29249        AlterTableAction::RenameConstraint(node)
29250    }
29251}
29252impl From<RenameTo> for AlterTableAction {
29253    #[inline]
29254    fn from(node: RenameTo) -> AlterTableAction {
29255        AlterTableAction::RenameTo(node)
29256    }
29257}
29258impl From<ReplicaIdentity> for AlterTableAction {
29259    #[inline]
29260    fn from(node: ReplicaIdentity) -> AlterTableAction {
29261        AlterTableAction::ReplicaIdentity(node)
29262    }
29263}
29264impl From<ResetOptions> for AlterTableAction {
29265    #[inline]
29266    fn from(node: ResetOptions) -> AlterTableAction {
29267        AlterTableAction::ResetOptions(node)
29268    }
29269}
29270impl From<SetAccessMethod> for AlterTableAction {
29271    #[inline]
29272    fn from(node: SetAccessMethod) -> AlterTableAction {
29273        AlterTableAction::SetAccessMethod(node)
29274    }
29275}
29276impl From<SetLogged> for AlterTableAction {
29277    #[inline]
29278    fn from(node: SetLogged) -> AlterTableAction {
29279        AlterTableAction::SetLogged(node)
29280    }
29281}
29282impl From<SetOptions> for AlterTableAction {
29283    #[inline]
29284    fn from(node: SetOptions) -> AlterTableAction {
29285        AlterTableAction::SetOptions(node)
29286    }
29287}
29288impl From<SetSchema> for AlterTableAction {
29289    #[inline]
29290    fn from(node: SetSchema) -> AlterTableAction {
29291        AlterTableAction::SetSchema(node)
29292    }
29293}
29294impl From<SetTablespace> for AlterTableAction {
29295    #[inline]
29296    fn from(node: SetTablespace) -> AlterTableAction {
29297        AlterTableAction::SetTablespace(node)
29298    }
29299}
29300impl From<SetUnlogged> for AlterTableAction {
29301    #[inline]
29302    fn from(node: SetUnlogged) -> AlterTableAction {
29303        AlterTableAction::SetUnlogged(node)
29304    }
29305}
29306impl From<SetWithoutCluster> for AlterTableAction {
29307    #[inline]
29308    fn from(node: SetWithoutCluster) -> AlterTableAction {
29309        AlterTableAction::SetWithoutCluster(node)
29310    }
29311}
29312impl From<SetWithoutOids> for AlterTableAction {
29313    #[inline]
29314    fn from(node: SetWithoutOids) -> AlterTableAction {
29315        AlterTableAction::SetWithoutOids(node)
29316    }
29317}
29318impl From<SplitPartition> for AlterTableAction {
29319    #[inline]
29320    fn from(node: SplitPartition) -> AlterTableAction {
29321        AlterTableAction::SplitPartition(node)
29322    }
29323}
29324impl From<ValidateConstraint> for AlterTableAction {
29325    #[inline]
29326    fn from(node: ValidateConstraint) -> AlterTableAction {
29327        AlterTableAction::ValidateConstraint(node)
29328    }
29329}
29330impl AstNode for ColumnConstraint {
29331    #[inline]
29332    fn can_cast(kind: SyntaxKind) -> bool {
29333        matches!(
29334            kind,
29335            SyntaxKind::CHECK_CONSTRAINT
29336                | SyntaxKind::DEFAULT_CONSTRAINT
29337                | SyntaxKind::EXCLUDE_CONSTRAINT
29338                | SyntaxKind::NOT_NULL_CONSTRAINT
29339                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29340                | SyntaxKind::REFERENCES_CONSTRAINT
29341                | SyntaxKind::UNIQUE_CONSTRAINT
29342        )
29343    }
29344    #[inline]
29345    fn cast(syntax: SyntaxNode) -> Option<Self> {
29346        let res = match syntax.kind() {
29347            SyntaxKind::CHECK_CONSTRAINT => {
29348                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29349            }
29350            SyntaxKind::DEFAULT_CONSTRAINT => {
29351                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29352            }
29353            SyntaxKind::EXCLUDE_CONSTRAINT => {
29354                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29355            }
29356            SyntaxKind::NOT_NULL_CONSTRAINT => {
29357                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29358            }
29359            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29360                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29361            }
29362            SyntaxKind::REFERENCES_CONSTRAINT => {
29363                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29364            }
29365            SyntaxKind::UNIQUE_CONSTRAINT => {
29366                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29367            }
29368            _ => {
29369                return None;
29370            }
29371        };
29372        Some(res)
29373    }
29374    #[inline]
29375    fn syntax(&self) -> &SyntaxNode {
29376        match self {
29377            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29378            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29379            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29380            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29381            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29382            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29383            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29384        }
29385    }
29386}
29387impl From<CheckConstraint> for ColumnConstraint {
29388    #[inline]
29389    fn from(node: CheckConstraint) -> ColumnConstraint {
29390        ColumnConstraint::CheckConstraint(node)
29391    }
29392}
29393impl From<DefaultConstraint> for ColumnConstraint {
29394    #[inline]
29395    fn from(node: DefaultConstraint) -> ColumnConstraint {
29396        ColumnConstraint::DefaultConstraint(node)
29397    }
29398}
29399impl From<ExcludeConstraint> for ColumnConstraint {
29400    #[inline]
29401    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29402        ColumnConstraint::ExcludeConstraint(node)
29403    }
29404}
29405impl From<NotNullConstraint> for ColumnConstraint {
29406    #[inline]
29407    fn from(node: NotNullConstraint) -> ColumnConstraint {
29408        ColumnConstraint::NotNullConstraint(node)
29409    }
29410}
29411impl From<PrimaryKeyConstraint> for ColumnConstraint {
29412    #[inline]
29413    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29414        ColumnConstraint::PrimaryKeyConstraint(node)
29415    }
29416}
29417impl From<ReferencesConstraint> for ColumnConstraint {
29418    #[inline]
29419    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29420        ColumnConstraint::ReferencesConstraint(node)
29421    }
29422}
29423impl From<UniqueConstraint> for ColumnConstraint {
29424    #[inline]
29425    fn from(node: UniqueConstraint) -> ColumnConstraint {
29426        ColumnConstraint::UniqueConstraint(node)
29427    }
29428}
29429impl AstNode for ConfigValue {
29430    #[inline]
29431    fn can_cast(kind: SyntaxKind) -> bool {
29432        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
29433    }
29434    #[inline]
29435    fn cast(syntax: SyntaxNode) -> Option<Self> {
29436        let res = match syntax.kind() {
29437            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
29438            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
29439            _ => {
29440                return None;
29441            }
29442        };
29443        Some(res)
29444    }
29445    #[inline]
29446    fn syntax(&self) -> &SyntaxNode {
29447        match self {
29448            ConfigValue::Literal(it) => &it.syntax,
29449            ConfigValue::NameRef(it) => &it.syntax,
29450        }
29451    }
29452}
29453impl From<Literal> for ConfigValue {
29454    #[inline]
29455    fn from(node: Literal) -> ConfigValue {
29456        ConfigValue::Literal(node)
29457    }
29458}
29459impl From<NameRef> for ConfigValue {
29460    #[inline]
29461    fn from(node: NameRef) -> ConfigValue {
29462        ConfigValue::NameRef(node)
29463    }
29464}
29465impl AstNode for ConflictAction {
29466    #[inline]
29467    fn can_cast(kind: SyntaxKind) -> bool {
29468        matches!(
29469            kind,
29470            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
29471        )
29472    }
29473    #[inline]
29474    fn cast(syntax: SyntaxNode) -> Option<Self> {
29475        let res = match syntax.kind() {
29476            SyntaxKind::CONFLICT_DO_NOTHING => {
29477                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
29478            }
29479            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
29480                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
29481            }
29482            _ => {
29483                return None;
29484            }
29485        };
29486        Some(res)
29487    }
29488    #[inline]
29489    fn syntax(&self) -> &SyntaxNode {
29490        match self {
29491            ConflictAction::ConflictDoNothing(it) => &it.syntax,
29492            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
29493        }
29494    }
29495}
29496impl From<ConflictDoNothing> for ConflictAction {
29497    #[inline]
29498    fn from(node: ConflictDoNothing) -> ConflictAction {
29499        ConflictAction::ConflictDoNothing(node)
29500    }
29501}
29502impl From<ConflictDoUpdateSet> for ConflictAction {
29503    #[inline]
29504    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
29505        ConflictAction::ConflictDoUpdateSet(node)
29506    }
29507}
29508impl AstNode for ConflictTarget {
29509    #[inline]
29510    fn can_cast(kind: SyntaxKind) -> bool {
29511        matches!(
29512            kind,
29513            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
29514        )
29515    }
29516    #[inline]
29517    fn cast(syntax: SyntaxNode) -> Option<Self> {
29518        let res = match syntax.kind() {
29519            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
29520                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
29521            }
29522            SyntaxKind::CONFLICT_ON_INDEX => {
29523                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
29524            }
29525            _ => {
29526                return None;
29527            }
29528        };
29529        Some(res)
29530    }
29531    #[inline]
29532    fn syntax(&self) -> &SyntaxNode {
29533        match self {
29534            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
29535            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
29536        }
29537    }
29538}
29539impl From<ConflictOnConstraint> for ConflictTarget {
29540    #[inline]
29541    fn from(node: ConflictOnConstraint) -> ConflictTarget {
29542        ConflictTarget::ConflictOnConstraint(node)
29543    }
29544}
29545impl From<ConflictOnIndex> for ConflictTarget {
29546    #[inline]
29547    fn from(node: ConflictOnIndex) -> ConflictTarget {
29548        ConflictTarget::ConflictOnIndex(node)
29549    }
29550}
29551impl AstNode for Constraint {
29552    #[inline]
29553    fn can_cast(kind: SyntaxKind) -> bool {
29554        matches!(
29555            kind,
29556            SyntaxKind::CHECK_CONSTRAINT
29557                | SyntaxKind::DEFAULT_CONSTRAINT
29558                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
29559                | SyntaxKind::GENERATED_CONSTRAINT
29560                | SyntaxKind::NOT_NULL_CONSTRAINT
29561                | SyntaxKind::NULL_CONSTRAINT
29562                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29563                | SyntaxKind::REFERENCES_CONSTRAINT
29564                | SyntaxKind::UNIQUE_CONSTRAINT
29565        )
29566    }
29567    #[inline]
29568    fn cast(syntax: SyntaxNode) -> Option<Self> {
29569        let res = match syntax.kind() {
29570            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
29571            SyntaxKind::DEFAULT_CONSTRAINT => {
29572                Constraint::DefaultConstraint(DefaultConstraint { syntax })
29573            }
29574            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
29575                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
29576            }
29577            SyntaxKind::GENERATED_CONSTRAINT => {
29578                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
29579            }
29580            SyntaxKind::NOT_NULL_CONSTRAINT => {
29581                Constraint::NotNullConstraint(NotNullConstraint { syntax })
29582            }
29583            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
29584            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29585                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29586            }
29587            SyntaxKind::REFERENCES_CONSTRAINT => {
29588                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
29589            }
29590            SyntaxKind::UNIQUE_CONSTRAINT => {
29591                Constraint::UniqueConstraint(UniqueConstraint { syntax })
29592            }
29593            _ => {
29594                return None;
29595            }
29596        };
29597        Some(res)
29598    }
29599    #[inline]
29600    fn syntax(&self) -> &SyntaxNode {
29601        match self {
29602            Constraint::CheckConstraint(it) => &it.syntax,
29603            Constraint::DefaultConstraint(it) => &it.syntax,
29604            Constraint::ForeignKeyConstraint(it) => &it.syntax,
29605            Constraint::GeneratedConstraint(it) => &it.syntax,
29606            Constraint::NotNullConstraint(it) => &it.syntax,
29607            Constraint::NullConstraint(it) => &it.syntax,
29608            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
29609            Constraint::ReferencesConstraint(it) => &it.syntax,
29610            Constraint::UniqueConstraint(it) => &it.syntax,
29611        }
29612    }
29613}
29614impl From<CheckConstraint> for Constraint {
29615    #[inline]
29616    fn from(node: CheckConstraint) -> Constraint {
29617        Constraint::CheckConstraint(node)
29618    }
29619}
29620impl From<DefaultConstraint> for Constraint {
29621    #[inline]
29622    fn from(node: DefaultConstraint) -> Constraint {
29623        Constraint::DefaultConstraint(node)
29624    }
29625}
29626impl From<ForeignKeyConstraint> for Constraint {
29627    #[inline]
29628    fn from(node: ForeignKeyConstraint) -> Constraint {
29629        Constraint::ForeignKeyConstraint(node)
29630    }
29631}
29632impl From<GeneratedConstraint> for Constraint {
29633    #[inline]
29634    fn from(node: GeneratedConstraint) -> Constraint {
29635        Constraint::GeneratedConstraint(node)
29636    }
29637}
29638impl From<NotNullConstraint> for Constraint {
29639    #[inline]
29640    fn from(node: NotNullConstraint) -> Constraint {
29641        Constraint::NotNullConstraint(node)
29642    }
29643}
29644impl From<NullConstraint> for Constraint {
29645    #[inline]
29646    fn from(node: NullConstraint) -> Constraint {
29647        Constraint::NullConstraint(node)
29648    }
29649}
29650impl From<PrimaryKeyConstraint> for Constraint {
29651    #[inline]
29652    fn from(node: PrimaryKeyConstraint) -> Constraint {
29653        Constraint::PrimaryKeyConstraint(node)
29654    }
29655}
29656impl From<ReferencesConstraint> for Constraint {
29657    #[inline]
29658    fn from(node: ReferencesConstraint) -> Constraint {
29659        Constraint::ReferencesConstraint(node)
29660    }
29661}
29662impl From<UniqueConstraint> for Constraint {
29663    #[inline]
29664    fn from(node: UniqueConstraint) -> Constraint {
29665        Constraint::UniqueConstraint(node)
29666    }
29667}
29668impl AstNode for ExplainStmt {
29669    #[inline]
29670    fn can_cast(kind: SyntaxKind) -> bool {
29671        matches!(
29672            kind,
29673            SyntaxKind::COMPOUND_SELECT
29674                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29675                | SyntaxKind::CREATE_TABLE_AS
29676                | SyntaxKind::DECLARE
29677                | SyntaxKind::DELETE
29678                | SyntaxKind::EXECUTE
29679                | SyntaxKind::INSERT
29680                | SyntaxKind::MERGE
29681                | SyntaxKind::PAREN_SELECT
29682                | SyntaxKind::SELECT
29683                | SyntaxKind::SELECT_INTO
29684                | SyntaxKind::TABLE
29685                | SyntaxKind::UPDATE
29686                | SyntaxKind::VALUES
29687        )
29688    }
29689    #[inline]
29690    fn cast(syntax: SyntaxNode) -> Option<Self> {
29691        let res = match syntax.kind() {
29692            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
29693            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
29694                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
29695            }
29696            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
29697            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
29698            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
29699            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
29700            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
29701            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
29702            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
29703            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
29704            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
29705            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
29706            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
29707            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
29708            _ => {
29709                return None;
29710            }
29711        };
29712        Some(res)
29713    }
29714    #[inline]
29715    fn syntax(&self) -> &SyntaxNode {
29716        match self {
29717            ExplainStmt::CompoundSelect(it) => &it.syntax,
29718            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
29719            ExplainStmt::CreateTableAs(it) => &it.syntax,
29720            ExplainStmt::Declare(it) => &it.syntax,
29721            ExplainStmt::Delete(it) => &it.syntax,
29722            ExplainStmt::Execute(it) => &it.syntax,
29723            ExplainStmt::Insert(it) => &it.syntax,
29724            ExplainStmt::Merge(it) => &it.syntax,
29725            ExplainStmt::ParenSelect(it) => &it.syntax,
29726            ExplainStmt::Select(it) => &it.syntax,
29727            ExplainStmt::SelectInto(it) => &it.syntax,
29728            ExplainStmt::Table(it) => &it.syntax,
29729            ExplainStmt::Update(it) => &it.syntax,
29730            ExplainStmt::Values(it) => &it.syntax,
29731        }
29732    }
29733}
29734impl From<CompoundSelect> for ExplainStmt {
29735    #[inline]
29736    fn from(node: CompoundSelect) -> ExplainStmt {
29737        ExplainStmt::CompoundSelect(node)
29738    }
29739}
29740impl From<CreateMaterializedView> for ExplainStmt {
29741    #[inline]
29742    fn from(node: CreateMaterializedView) -> ExplainStmt {
29743        ExplainStmt::CreateMaterializedView(node)
29744    }
29745}
29746impl From<CreateTableAs> for ExplainStmt {
29747    #[inline]
29748    fn from(node: CreateTableAs) -> ExplainStmt {
29749        ExplainStmt::CreateTableAs(node)
29750    }
29751}
29752impl From<Declare> for ExplainStmt {
29753    #[inline]
29754    fn from(node: Declare) -> ExplainStmt {
29755        ExplainStmt::Declare(node)
29756    }
29757}
29758impl From<Delete> for ExplainStmt {
29759    #[inline]
29760    fn from(node: Delete) -> ExplainStmt {
29761        ExplainStmt::Delete(node)
29762    }
29763}
29764impl From<Execute> for ExplainStmt {
29765    #[inline]
29766    fn from(node: Execute) -> ExplainStmt {
29767        ExplainStmt::Execute(node)
29768    }
29769}
29770impl From<Insert> for ExplainStmt {
29771    #[inline]
29772    fn from(node: Insert) -> ExplainStmt {
29773        ExplainStmt::Insert(node)
29774    }
29775}
29776impl From<Merge> for ExplainStmt {
29777    #[inline]
29778    fn from(node: Merge) -> ExplainStmt {
29779        ExplainStmt::Merge(node)
29780    }
29781}
29782impl From<ParenSelect> for ExplainStmt {
29783    #[inline]
29784    fn from(node: ParenSelect) -> ExplainStmt {
29785        ExplainStmt::ParenSelect(node)
29786    }
29787}
29788impl From<Select> for ExplainStmt {
29789    #[inline]
29790    fn from(node: Select) -> ExplainStmt {
29791        ExplainStmt::Select(node)
29792    }
29793}
29794impl From<SelectInto> for ExplainStmt {
29795    #[inline]
29796    fn from(node: SelectInto) -> ExplainStmt {
29797        ExplainStmt::SelectInto(node)
29798    }
29799}
29800impl From<Table> for ExplainStmt {
29801    #[inline]
29802    fn from(node: Table) -> ExplainStmt {
29803        ExplainStmt::Table(node)
29804    }
29805}
29806impl From<Update> for ExplainStmt {
29807    #[inline]
29808    fn from(node: Update) -> ExplainStmt {
29809        ExplainStmt::Update(node)
29810    }
29811}
29812impl From<Values> for ExplainStmt {
29813    #[inline]
29814    fn from(node: Values) -> ExplainStmt {
29815        ExplainStmt::Values(node)
29816    }
29817}
29818impl AstNode for Expr {
29819    #[inline]
29820    fn can_cast(kind: SyntaxKind) -> bool {
29821        matches!(
29822            kind,
29823            SyntaxKind::ARRAY_EXPR
29824                | SyntaxKind::BETWEEN_EXPR
29825                | SyntaxKind::BIN_EXPR
29826                | SyntaxKind::CALL_EXPR
29827                | SyntaxKind::CASE_EXPR
29828                | SyntaxKind::CAST_EXPR
29829                | SyntaxKind::FIELD_EXPR
29830                | SyntaxKind::INDEX_EXPR
29831                | SyntaxKind::LITERAL
29832                | SyntaxKind::NAME_REF
29833                | SyntaxKind::PAREN_EXPR
29834                | SyntaxKind::POSTFIX_EXPR
29835                | SyntaxKind::PREFIX_EXPR
29836                | SyntaxKind::SLICE_EXPR
29837                | SyntaxKind::TUPLE_EXPR
29838        )
29839    }
29840    #[inline]
29841    fn cast(syntax: SyntaxNode) -> Option<Self> {
29842        let res = match syntax.kind() {
29843            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
29844            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
29845            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
29846            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
29847            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
29848            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
29849            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
29850            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
29851            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
29852            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
29853            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
29854            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
29855            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
29856            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
29857            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
29858            _ => {
29859                return None;
29860            }
29861        };
29862        Some(res)
29863    }
29864    #[inline]
29865    fn syntax(&self) -> &SyntaxNode {
29866        match self {
29867            Expr::ArrayExpr(it) => &it.syntax,
29868            Expr::BetweenExpr(it) => &it.syntax,
29869            Expr::BinExpr(it) => &it.syntax,
29870            Expr::CallExpr(it) => &it.syntax,
29871            Expr::CaseExpr(it) => &it.syntax,
29872            Expr::CastExpr(it) => &it.syntax,
29873            Expr::FieldExpr(it) => &it.syntax,
29874            Expr::IndexExpr(it) => &it.syntax,
29875            Expr::Literal(it) => &it.syntax,
29876            Expr::NameRef(it) => &it.syntax,
29877            Expr::ParenExpr(it) => &it.syntax,
29878            Expr::PostfixExpr(it) => &it.syntax,
29879            Expr::PrefixExpr(it) => &it.syntax,
29880            Expr::SliceExpr(it) => &it.syntax,
29881            Expr::TupleExpr(it) => &it.syntax,
29882        }
29883    }
29884}
29885impl From<ArrayExpr> for Expr {
29886    #[inline]
29887    fn from(node: ArrayExpr) -> Expr {
29888        Expr::ArrayExpr(node)
29889    }
29890}
29891impl From<BetweenExpr> for Expr {
29892    #[inline]
29893    fn from(node: BetweenExpr) -> Expr {
29894        Expr::BetweenExpr(node)
29895    }
29896}
29897impl From<BinExpr> for Expr {
29898    #[inline]
29899    fn from(node: BinExpr) -> Expr {
29900        Expr::BinExpr(node)
29901    }
29902}
29903impl From<CallExpr> for Expr {
29904    #[inline]
29905    fn from(node: CallExpr) -> Expr {
29906        Expr::CallExpr(node)
29907    }
29908}
29909impl From<CaseExpr> for Expr {
29910    #[inline]
29911    fn from(node: CaseExpr) -> Expr {
29912        Expr::CaseExpr(node)
29913    }
29914}
29915impl From<CastExpr> for Expr {
29916    #[inline]
29917    fn from(node: CastExpr) -> Expr {
29918        Expr::CastExpr(node)
29919    }
29920}
29921impl From<FieldExpr> for Expr {
29922    #[inline]
29923    fn from(node: FieldExpr) -> Expr {
29924        Expr::FieldExpr(node)
29925    }
29926}
29927impl From<IndexExpr> for Expr {
29928    #[inline]
29929    fn from(node: IndexExpr) -> Expr {
29930        Expr::IndexExpr(node)
29931    }
29932}
29933impl From<Literal> for Expr {
29934    #[inline]
29935    fn from(node: Literal) -> Expr {
29936        Expr::Literal(node)
29937    }
29938}
29939impl From<NameRef> for Expr {
29940    #[inline]
29941    fn from(node: NameRef) -> Expr {
29942        Expr::NameRef(node)
29943    }
29944}
29945impl From<ParenExpr> for Expr {
29946    #[inline]
29947    fn from(node: ParenExpr) -> Expr {
29948        Expr::ParenExpr(node)
29949    }
29950}
29951impl From<PostfixExpr> for Expr {
29952    #[inline]
29953    fn from(node: PostfixExpr) -> Expr {
29954        Expr::PostfixExpr(node)
29955    }
29956}
29957impl From<PrefixExpr> for Expr {
29958    #[inline]
29959    fn from(node: PrefixExpr) -> Expr {
29960        Expr::PrefixExpr(node)
29961    }
29962}
29963impl From<SliceExpr> for Expr {
29964    #[inline]
29965    fn from(node: SliceExpr) -> Expr {
29966        Expr::SliceExpr(node)
29967    }
29968}
29969impl From<TupleExpr> for Expr {
29970    #[inline]
29971    fn from(node: TupleExpr) -> Expr {
29972        Expr::TupleExpr(node)
29973    }
29974}
29975impl AstNode for FuncOption {
29976    #[inline]
29977    fn can_cast(kind: SyntaxKind) -> bool {
29978        matches!(
29979            kind,
29980            SyntaxKind::AS_FUNC_OPTION
29981                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
29982                | SyntaxKind::COST_FUNC_OPTION
29983                | SyntaxKind::LANGUAGE_FUNC_OPTION
29984                | SyntaxKind::LEAKPROOF_FUNC_OPTION
29985                | SyntaxKind::PARALLEL_FUNC_OPTION
29986                | SyntaxKind::RESET_FUNC_OPTION
29987                | SyntaxKind::RETURN_FUNC_OPTION
29988                | SyntaxKind::ROWS_FUNC_OPTION
29989                | SyntaxKind::SECURITY_FUNC_OPTION
29990                | SyntaxKind::SET_FUNC_OPTION
29991                | SyntaxKind::STRICT_FUNC_OPTION
29992                | SyntaxKind::SUPPORT_FUNC_OPTION
29993                | SyntaxKind::TRANSFORM_FUNC_OPTION
29994                | SyntaxKind::VOLATILITY_FUNC_OPTION
29995                | SyntaxKind::WINDOW_FUNC_OPTION
29996        )
29997    }
29998    #[inline]
29999    fn cast(syntax: SyntaxNode) -> Option<Self> {
30000        let res = match syntax.kind() {
30001            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
30002            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30003                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30004            }
30005            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30006            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30007                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30008            }
30009            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30010                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30011            }
30012            SyntaxKind::PARALLEL_FUNC_OPTION => {
30013                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30014            }
30015            SyntaxKind::RESET_FUNC_OPTION => {
30016                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30017            }
30018            SyntaxKind::RETURN_FUNC_OPTION => {
30019                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30020            }
30021            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30022            SyntaxKind::SECURITY_FUNC_OPTION => {
30023                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30024            }
30025            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30026            SyntaxKind::STRICT_FUNC_OPTION => {
30027                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30028            }
30029            SyntaxKind::SUPPORT_FUNC_OPTION => {
30030                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30031            }
30032            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30033                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30034            }
30035            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30036                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30037            }
30038            SyntaxKind::WINDOW_FUNC_OPTION => {
30039                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30040            }
30041            _ => {
30042                return None;
30043            }
30044        };
30045        Some(res)
30046    }
30047    #[inline]
30048    fn syntax(&self) -> &SyntaxNode {
30049        match self {
30050            FuncOption::AsFuncOption(it) => &it.syntax,
30051            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30052            FuncOption::CostFuncOption(it) => &it.syntax,
30053            FuncOption::LanguageFuncOption(it) => &it.syntax,
30054            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30055            FuncOption::ParallelFuncOption(it) => &it.syntax,
30056            FuncOption::ResetFuncOption(it) => &it.syntax,
30057            FuncOption::ReturnFuncOption(it) => &it.syntax,
30058            FuncOption::RowsFuncOption(it) => &it.syntax,
30059            FuncOption::SecurityFuncOption(it) => &it.syntax,
30060            FuncOption::SetFuncOption(it) => &it.syntax,
30061            FuncOption::StrictFuncOption(it) => &it.syntax,
30062            FuncOption::SupportFuncOption(it) => &it.syntax,
30063            FuncOption::TransformFuncOption(it) => &it.syntax,
30064            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30065            FuncOption::WindowFuncOption(it) => &it.syntax,
30066        }
30067    }
30068}
30069impl From<AsFuncOption> for FuncOption {
30070    #[inline]
30071    fn from(node: AsFuncOption) -> FuncOption {
30072        FuncOption::AsFuncOption(node)
30073    }
30074}
30075impl From<BeginFuncOptionList> for FuncOption {
30076    #[inline]
30077    fn from(node: BeginFuncOptionList) -> FuncOption {
30078        FuncOption::BeginFuncOptionList(node)
30079    }
30080}
30081impl From<CostFuncOption> for FuncOption {
30082    #[inline]
30083    fn from(node: CostFuncOption) -> FuncOption {
30084        FuncOption::CostFuncOption(node)
30085    }
30086}
30087impl From<LanguageFuncOption> for FuncOption {
30088    #[inline]
30089    fn from(node: LanguageFuncOption) -> FuncOption {
30090        FuncOption::LanguageFuncOption(node)
30091    }
30092}
30093impl From<LeakproofFuncOption> for FuncOption {
30094    #[inline]
30095    fn from(node: LeakproofFuncOption) -> FuncOption {
30096        FuncOption::LeakproofFuncOption(node)
30097    }
30098}
30099impl From<ParallelFuncOption> for FuncOption {
30100    #[inline]
30101    fn from(node: ParallelFuncOption) -> FuncOption {
30102        FuncOption::ParallelFuncOption(node)
30103    }
30104}
30105impl From<ResetFuncOption> for FuncOption {
30106    #[inline]
30107    fn from(node: ResetFuncOption) -> FuncOption {
30108        FuncOption::ResetFuncOption(node)
30109    }
30110}
30111impl From<ReturnFuncOption> for FuncOption {
30112    #[inline]
30113    fn from(node: ReturnFuncOption) -> FuncOption {
30114        FuncOption::ReturnFuncOption(node)
30115    }
30116}
30117impl From<RowsFuncOption> for FuncOption {
30118    #[inline]
30119    fn from(node: RowsFuncOption) -> FuncOption {
30120        FuncOption::RowsFuncOption(node)
30121    }
30122}
30123impl From<SecurityFuncOption> for FuncOption {
30124    #[inline]
30125    fn from(node: SecurityFuncOption) -> FuncOption {
30126        FuncOption::SecurityFuncOption(node)
30127    }
30128}
30129impl From<SetFuncOption> for FuncOption {
30130    #[inline]
30131    fn from(node: SetFuncOption) -> FuncOption {
30132        FuncOption::SetFuncOption(node)
30133    }
30134}
30135impl From<StrictFuncOption> for FuncOption {
30136    #[inline]
30137    fn from(node: StrictFuncOption) -> FuncOption {
30138        FuncOption::StrictFuncOption(node)
30139    }
30140}
30141impl From<SupportFuncOption> for FuncOption {
30142    #[inline]
30143    fn from(node: SupportFuncOption) -> FuncOption {
30144        FuncOption::SupportFuncOption(node)
30145    }
30146}
30147impl From<TransformFuncOption> for FuncOption {
30148    #[inline]
30149    fn from(node: TransformFuncOption) -> FuncOption {
30150        FuncOption::TransformFuncOption(node)
30151    }
30152}
30153impl From<VolatilityFuncOption> for FuncOption {
30154    #[inline]
30155    fn from(node: VolatilityFuncOption) -> FuncOption {
30156        FuncOption::VolatilityFuncOption(node)
30157    }
30158}
30159impl From<WindowFuncOption> for FuncOption {
30160    #[inline]
30161    fn from(node: WindowFuncOption) -> FuncOption {
30162        FuncOption::WindowFuncOption(node)
30163    }
30164}
30165impl AstNode for GroupBy {
30166    #[inline]
30167    fn can_cast(kind: SyntaxKind) -> bool {
30168        matches!(
30169            kind,
30170            SyntaxKind::GROUPING_CUBE
30171                | SyntaxKind::GROUPING_EXPR
30172                | SyntaxKind::GROUPING_ROLLUP
30173                | SyntaxKind::GROUPING_SETS
30174        )
30175    }
30176    #[inline]
30177    fn cast(syntax: SyntaxNode) -> Option<Self> {
30178        let res = match syntax.kind() {
30179            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30180            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30181            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30182            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30183            _ => {
30184                return None;
30185            }
30186        };
30187        Some(res)
30188    }
30189    #[inline]
30190    fn syntax(&self) -> &SyntaxNode {
30191        match self {
30192            GroupBy::GroupingCube(it) => &it.syntax,
30193            GroupBy::GroupingExpr(it) => &it.syntax,
30194            GroupBy::GroupingRollup(it) => &it.syntax,
30195            GroupBy::GroupingSets(it) => &it.syntax,
30196        }
30197    }
30198}
30199impl From<GroupingCube> for GroupBy {
30200    #[inline]
30201    fn from(node: GroupingCube) -> GroupBy {
30202        GroupBy::GroupingCube(node)
30203    }
30204}
30205impl From<GroupingExpr> for GroupBy {
30206    #[inline]
30207    fn from(node: GroupingExpr) -> GroupBy {
30208        GroupBy::GroupingExpr(node)
30209    }
30210}
30211impl From<GroupingRollup> for GroupBy {
30212    #[inline]
30213    fn from(node: GroupingRollup) -> GroupBy {
30214        GroupBy::GroupingRollup(node)
30215    }
30216}
30217impl From<GroupingSets> for GroupBy {
30218    #[inline]
30219    fn from(node: GroupingSets) -> GroupBy {
30220        GroupBy::GroupingSets(node)
30221    }
30222}
30223impl AstNode for JoinType {
30224    #[inline]
30225    fn can_cast(kind: SyntaxKind) -> bool {
30226        matches!(
30227            kind,
30228            SyntaxKind::JOIN_CROSS
30229                | SyntaxKind::JOIN_FULL
30230                | SyntaxKind::JOIN_INNER
30231                | SyntaxKind::JOIN_LEFT
30232                | SyntaxKind::JOIN_RIGHT
30233        )
30234    }
30235    #[inline]
30236    fn cast(syntax: SyntaxNode) -> Option<Self> {
30237        let res = match syntax.kind() {
30238            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30239            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30240            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30241            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30242            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30243            _ => {
30244                return None;
30245            }
30246        };
30247        Some(res)
30248    }
30249    #[inline]
30250    fn syntax(&self) -> &SyntaxNode {
30251        match self {
30252            JoinType::JoinCross(it) => &it.syntax,
30253            JoinType::JoinFull(it) => &it.syntax,
30254            JoinType::JoinInner(it) => &it.syntax,
30255            JoinType::JoinLeft(it) => &it.syntax,
30256            JoinType::JoinRight(it) => &it.syntax,
30257        }
30258    }
30259}
30260impl From<JoinCross> for JoinType {
30261    #[inline]
30262    fn from(node: JoinCross) -> JoinType {
30263        JoinType::JoinCross(node)
30264    }
30265}
30266impl From<JoinFull> for JoinType {
30267    #[inline]
30268    fn from(node: JoinFull) -> JoinType {
30269        JoinType::JoinFull(node)
30270    }
30271}
30272impl From<JoinInner> for JoinType {
30273    #[inline]
30274    fn from(node: JoinInner) -> JoinType {
30275        JoinType::JoinInner(node)
30276    }
30277}
30278impl From<JoinLeft> for JoinType {
30279    #[inline]
30280    fn from(node: JoinLeft) -> JoinType {
30281        JoinType::JoinLeft(node)
30282    }
30283}
30284impl From<JoinRight> for JoinType {
30285    #[inline]
30286    fn from(node: JoinRight) -> JoinType {
30287        JoinType::JoinRight(node)
30288    }
30289}
30290impl AstNode for JsonBehavior {
30291    #[inline]
30292    fn can_cast(kind: SyntaxKind) -> bool {
30293        matches!(
30294            kind,
30295            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30296                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30297                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30298                | SyntaxKind::JSON_BEHAVIOR_ERROR
30299                | SyntaxKind::JSON_BEHAVIOR_FALSE
30300                | SyntaxKind::JSON_BEHAVIOR_NULL
30301                | SyntaxKind::JSON_BEHAVIOR_TRUE
30302                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30303        )
30304    }
30305    #[inline]
30306    fn cast(syntax: SyntaxNode) -> Option<Self> {
30307        let res = match syntax.kind() {
30308            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30309                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30310            }
30311            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30312                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30313            }
30314            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30315                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30316            }
30317            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30318                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30319            }
30320            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30321                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30322            }
30323            SyntaxKind::JSON_BEHAVIOR_NULL => {
30324                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30325            }
30326            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30327                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30328            }
30329            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30330                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30331            }
30332            _ => {
30333                return None;
30334            }
30335        };
30336        Some(res)
30337    }
30338    #[inline]
30339    fn syntax(&self) -> &SyntaxNode {
30340        match self {
30341            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30342            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30343            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30344            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30345            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30346            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30347            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30348            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30349        }
30350    }
30351}
30352impl From<JsonBehaviorDefault> for JsonBehavior {
30353    #[inline]
30354    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30355        JsonBehavior::JsonBehaviorDefault(node)
30356    }
30357}
30358impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30359    #[inline]
30360    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30361        JsonBehavior::JsonBehaviorEmptyArray(node)
30362    }
30363}
30364impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30365    #[inline]
30366    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30367        JsonBehavior::JsonBehaviorEmptyObject(node)
30368    }
30369}
30370impl From<JsonBehaviorError> for JsonBehavior {
30371    #[inline]
30372    fn from(node: JsonBehaviorError) -> JsonBehavior {
30373        JsonBehavior::JsonBehaviorError(node)
30374    }
30375}
30376impl From<JsonBehaviorFalse> for JsonBehavior {
30377    #[inline]
30378    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30379        JsonBehavior::JsonBehaviorFalse(node)
30380    }
30381}
30382impl From<JsonBehaviorNull> for JsonBehavior {
30383    #[inline]
30384    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30385        JsonBehavior::JsonBehaviorNull(node)
30386    }
30387}
30388impl From<JsonBehaviorTrue> for JsonBehavior {
30389    #[inline]
30390    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30391        JsonBehavior::JsonBehaviorTrue(node)
30392    }
30393}
30394impl From<JsonBehaviorUnknown> for JsonBehavior {
30395    #[inline]
30396    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30397        JsonBehavior::JsonBehaviorUnknown(node)
30398    }
30399}
30400impl AstNode for MatchType {
30401    #[inline]
30402    fn can_cast(kind: SyntaxKind) -> bool {
30403        matches!(
30404            kind,
30405            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30406        )
30407    }
30408    #[inline]
30409    fn cast(syntax: SyntaxNode) -> Option<Self> {
30410        let res = match syntax.kind() {
30411            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30412            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30413            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30414            _ => {
30415                return None;
30416            }
30417        };
30418        Some(res)
30419    }
30420    #[inline]
30421    fn syntax(&self) -> &SyntaxNode {
30422        match self {
30423            MatchType::MatchFull(it) => &it.syntax,
30424            MatchType::MatchPartial(it) => &it.syntax,
30425            MatchType::MatchSimple(it) => &it.syntax,
30426        }
30427    }
30428}
30429impl From<MatchFull> for MatchType {
30430    #[inline]
30431    fn from(node: MatchFull) -> MatchType {
30432        MatchType::MatchFull(node)
30433    }
30434}
30435impl From<MatchPartial> for MatchType {
30436    #[inline]
30437    fn from(node: MatchPartial) -> MatchType {
30438        MatchType::MatchPartial(node)
30439    }
30440}
30441impl From<MatchSimple> for MatchType {
30442    #[inline]
30443    fn from(node: MatchSimple) -> MatchType {
30444        MatchType::MatchSimple(node)
30445    }
30446}
30447impl AstNode for MergeAction {
30448    #[inline]
30449    fn can_cast(kind: SyntaxKind) -> bool {
30450        matches!(
30451            kind,
30452            SyntaxKind::MERGE_DELETE
30453                | SyntaxKind::MERGE_DO_NOTHING
30454                | SyntaxKind::MERGE_INSERT
30455                | SyntaxKind::MERGE_UPDATE
30456        )
30457    }
30458    #[inline]
30459    fn cast(syntax: SyntaxNode) -> Option<Self> {
30460        let res = match syntax.kind() {
30461            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
30462            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
30463            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
30464            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
30465            _ => {
30466                return None;
30467            }
30468        };
30469        Some(res)
30470    }
30471    #[inline]
30472    fn syntax(&self) -> &SyntaxNode {
30473        match self {
30474            MergeAction::MergeDelete(it) => &it.syntax,
30475            MergeAction::MergeDoNothing(it) => &it.syntax,
30476            MergeAction::MergeInsert(it) => &it.syntax,
30477            MergeAction::MergeUpdate(it) => &it.syntax,
30478        }
30479    }
30480}
30481impl From<MergeDelete> for MergeAction {
30482    #[inline]
30483    fn from(node: MergeDelete) -> MergeAction {
30484        MergeAction::MergeDelete(node)
30485    }
30486}
30487impl From<MergeDoNothing> for MergeAction {
30488    #[inline]
30489    fn from(node: MergeDoNothing) -> MergeAction {
30490        MergeAction::MergeDoNothing(node)
30491    }
30492}
30493impl From<MergeInsert> for MergeAction {
30494    #[inline]
30495    fn from(node: MergeInsert) -> MergeAction {
30496        MergeAction::MergeInsert(node)
30497    }
30498}
30499impl From<MergeUpdate> for MergeAction {
30500    #[inline]
30501    fn from(node: MergeUpdate) -> MergeAction {
30502        MergeAction::MergeUpdate(node)
30503    }
30504}
30505impl AstNode for MergeWhenClause {
30506    #[inline]
30507    fn can_cast(kind: SyntaxKind) -> bool {
30508        matches!(
30509            kind,
30510            SyntaxKind::MERGE_WHEN_MATCHED
30511                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30512                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30513        )
30514    }
30515    #[inline]
30516    fn cast(syntax: SyntaxNode) -> Option<Self> {
30517        let res = match syntax.kind() {
30518            SyntaxKind::MERGE_WHEN_MATCHED => {
30519                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
30520            }
30521            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
30522                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
30523            }
30524            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
30525                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
30526            }
30527            _ => {
30528                return None;
30529            }
30530        };
30531        Some(res)
30532    }
30533    #[inline]
30534    fn syntax(&self) -> &SyntaxNode {
30535        match self {
30536            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
30537            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
30538            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
30539        }
30540    }
30541}
30542impl From<MergeWhenMatched> for MergeWhenClause {
30543    #[inline]
30544    fn from(node: MergeWhenMatched) -> MergeWhenClause {
30545        MergeWhenClause::MergeWhenMatched(node)
30546    }
30547}
30548impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
30549    #[inline]
30550    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
30551        MergeWhenClause::MergeWhenNotMatchedSource(node)
30552    }
30553}
30554impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
30555    #[inline]
30556    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
30557        MergeWhenClause::MergeWhenNotMatchedTarget(node)
30558    }
30559}
30560impl AstNode for OnCommitAction {
30561    #[inline]
30562    fn can_cast(kind: SyntaxKind) -> bool {
30563        matches!(
30564            kind,
30565            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
30566        )
30567    }
30568    #[inline]
30569    fn cast(syntax: SyntaxNode) -> Option<Self> {
30570        let res = match syntax.kind() {
30571            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
30572            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
30573            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
30574            _ => {
30575                return None;
30576            }
30577        };
30578        Some(res)
30579    }
30580    #[inline]
30581    fn syntax(&self) -> &SyntaxNode {
30582        match self {
30583            OnCommitAction::DeleteRows(it) => &it.syntax,
30584            OnCommitAction::Drop(it) => &it.syntax,
30585            OnCommitAction::PreserveRows(it) => &it.syntax,
30586        }
30587    }
30588}
30589impl From<DeleteRows> for OnCommitAction {
30590    #[inline]
30591    fn from(node: DeleteRows) -> OnCommitAction {
30592        OnCommitAction::DeleteRows(node)
30593    }
30594}
30595impl From<Drop> for OnCommitAction {
30596    #[inline]
30597    fn from(node: Drop) -> OnCommitAction {
30598        OnCommitAction::Drop(node)
30599    }
30600}
30601impl From<PreserveRows> for OnCommitAction {
30602    #[inline]
30603    fn from(node: PreserveRows) -> OnCommitAction {
30604        OnCommitAction::PreserveRows(node)
30605    }
30606}
30607impl AstNode for ParamMode {
30608    #[inline]
30609    fn can_cast(kind: SyntaxKind) -> bool {
30610        matches!(
30611            kind,
30612            SyntaxKind::PARAM_IN
30613                | SyntaxKind::PARAM_IN_OUT
30614                | SyntaxKind::PARAM_OUT
30615                | SyntaxKind::PARAM_VARIADIC
30616        )
30617    }
30618    #[inline]
30619    fn cast(syntax: SyntaxNode) -> Option<Self> {
30620        let res = match syntax.kind() {
30621            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30622            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30623            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30624            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30625            _ => {
30626                return None;
30627            }
30628        };
30629        Some(res)
30630    }
30631    #[inline]
30632    fn syntax(&self) -> &SyntaxNode {
30633        match self {
30634            ParamMode::ParamIn(it) => &it.syntax,
30635            ParamMode::ParamInOut(it) => &it.syntax,
30636            ParamMode::ParamOut(it) => &it.syntax,
30637            ParamMode::ParamVariadic(it) => &it.syntax,
30638        }
30639    }
30640}
30641impl From<ParamIn> for ParamMode {
30642    #[inline]
30643    fn from(node: ParamIn) -> ParamMode {
30644        ParamMode::ParamIn(node)
30645    }
30646}
30647impl From<ParamInOut> for ParamMode {
30648    #[inline]
30649    fn from(node: ParamInOut) -> ParamMode {
30650        ParamMode::ParamInOut(node)
30651    }
30652}
30653impl From<ParamOut> for ParamMode {
30654    #[inline]
30655    fn from(node: ParamOut) -> ParamMode {
30656        ParamMode::ParamOut(node)
30657    }
30658}
30659impl From<ParamVariadic> for ParamMode {
30660    #[inline]
30661    fn from(node: ParamVariadic) -> ParamMode {
30662        ParamMode::ParamVariadic(node)
30663    }
30664}
30665impl AstNode for PartitionType {
30666    #[inline]
30667    fn can_cast(kind: SyntaxKind) -> bool {
30668        matches!(
30669            kind,
30670            SyntaxKind::PARTITION_DEFAULT
30671                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30672                | SyntaxKind::PARTITION_FOR_VALUES_IN
30673                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30674        )
30675    }
30676    #[inline]
30677    fn cast(syntax: SyntaxNode) -> Option<Self> {
30678        let res = match syntax.kind() {
30679            SyntaxKind::PARTITION_DEFAULT => {
30680                PartitionType::PartitionDefault(PartitionDefault { syntax })
30681            }
30682            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
30683                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
30684            }
30685            SyntaxKind::PARTITION_FOR_VALUES_IN => {
30686                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
30687            }
30688            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
30689                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
30690            }
30691            _ => {
30692                return None;
30693            }
30694        };
30695        Some(res)
30696    }
30697    #[inline]
30698    fn syntax(&self) -> &SyntaxNode {
30699        match self {
30700            PartitionType::PartitionDefault(it) => &it.syntax,
30701            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
30702            PartitionType::PartitionForValuesIn(it) => &it.syntax,
30703            PartitionType::PartitionForValuesWith(it) => &it.syntax,
30704        }
30705    }
30706}
30707impl From<PartitionDefault> for PartitionType {
30708    #[inline]
30709    fn from(node: PartitionDefault) -> PartitionType {
30710        PartitionType::PartitionDefault(node)
30711    }
30712}
30713impl From<PartitionForValuesFrom> for PartitionType {
30714    #[inline]
30715    fn from(node: PartitionForValuesFrom) -> PartitionType {
30716        PartitionType::PartitionForValuesFrom(node)
30717    }
30718}
30719impl From<PartitionForValuesIn> for PartitionType {
30720    #[inline]
30721    fn from(node: PartitionForValuesIn) -> PartitionType {
30722        PartitionType::PartitionForValuesIn(node)
30723    }
30724}
30725impl From<PartitionForValuesWith> for PartitionType {
30726    #[inline]
30727    fn from(node: PartitionForValuesWith) -> PartitionType {
30728        PartitionType::PartitionForValuesWith(node)
30729    }
30730}
30731impl AstNode for PreparableStmt {
30732    #[inline]
30733    fn can_cast(kind: SyntaxKind) -> bool {
30734        matches!(
30735            kind,
30736            SyntaxKind::COMPOUND_SELECT
30737                | SyntaxKind::DELETE
30738                | SyntaxKind::INSERT
30739                | SyntaxKind::MERGE
30740                | SyntaxKind::SELECT
30741                | SyntaxKind::SELECT_INTO
30742                | SyntaxKind::TABLE
30743                | SyntaxKind::UPDATE
30744                | SyntaxKind::VALUES
30745        )
30746    }
30747    #[inline]
30748    fn cast(syntax: SyntaxNode) -> Option<Self> {
30749        let res = match syntax.kind() {
30750            SyntaxKind::COMPOUND_SELECT => {
30751                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
30752            }
30753            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
30754            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
30755            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
30756            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
30757            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
30758            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
30759            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
30760            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
30761            _ => {
30762                return None;
30763            }
30764        };
30765        Some(res)
30766    }
30767    #[inline]
30768    fn syntax(&self) -> &SyntaxNode {
30769        match self {
30770            PreparableStmt::CompoundSelect(it) => &it.syntax,
30771            PreparableStmt::Delete(it) => &it.syntax,
30772            PreparableStmt::Insert(it) => &it.syntax,
30773            PreparableStmt::Merge(it) => &it.syntax,
30774            PreparableStmt::Select(it) => &it.syntax,
30775            PreparableStmt::SelectInto(it) => &it.syntax,
30776            PreparableStmt::Table(it) => &it.syntax,
30777            PreparableStmt::Update(it) => &it.syntax,
30778            PreparableStmt::Values(it) => &it.syntax,
30779        }
30780    }
30781}
30782impl From<CompoundSelect> for PreparableStmt {
30783    #[inline]
30784    fn from(node: CompoundSelect) -> PreparableStmt {
30785        PreparableStmt::CompoundSelect(node)
30786    }
30787}
30788impl From<Delete> for PreparableStmt {
30789    #[inline]
30790    fn from(node: Delete) -> PreparableStmt {
30791        PreparableStmt::Delete(node)
30792    }
30793}
30794impl From<Insert> for PreparableStmt {
30795    #[inline]
30796    fn from(node: Insert) -> PreparableStmt {
30797        PreparableStmt::Insert(node)
30798    }
30799}
30800impl From<Merge> for PreparableStmt {
30801    #[inline]
30802    fn from(node: Merge) -> PreparableStmt {
30803        PreparableStmt::Merge(node)
30804    }
30805}
30806impl From<Select> for PreparableStmt {
30807    #[inline]
30808    fn from(node: Select) -> PreparableStmt {
30809        PreparableStmt::Select(node)
30810    }
30811}
30812impl From<SelectInto> for PreparableStmt {
30813    #[inline]
30814    fn from(node: SelectInto) -> PreparableStmt {
30815        PreparableStmt::SelectInto(node)
30816    }
30817}
30818impl From<Table> for PreparableStmt {
30819    #[inline]
30820    fn from(node: Table) -> PreparableStmt {
30821        PreparableStmt::Table(node)
30822    }
30823}
30824impl From<Update> for PreparableStmt {
30825    #[inline]
30826    fn from(node: Update) -> PreparableStmt {
30827        PreparableStmt::Update(node)
30828    }
30829}
30830impl From<Values> for PreparableStmt {
30831    #[inline]
30832    fn from(node: Values) -> PreparableStmt {
30833        PreparableStmt::Values(node)
30834    }
30835}
30836impl AstNode for RefAction {
30837    #[inline]
30838    fn can_cast(kind: SyntaxKind) -> bool {
30839        matches!(
30840            kind,
30841            SyntaxKind::CASCADE
30842                | SyntaxKind::NO_ACTION
30843                | SyntaxKind::RESTRICT
30844                | SyntaxKind::SET_DEFAULT_COLUMNS
30845                | SyntaxKind::SET_NULL_COLUMNS
30846        )
30847    }
30848    #[inline]
30849    fn cast(syntax: SyntaxNode) -> Option<Self> {
30850        let res = match syntax.kind() {
30851            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
30852            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
30853            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
30854            SyntaxKind::SET_DEFAULT_COLUMNS => {
30855                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
30856            }
30857            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
30858            _ => {
30859                return None;
30860            }
30861        };
30862        Some(res)
30863    }
30864    #[inline]
30865    fn syntax(&self) -> &SyntaxNode {
30866        match self {
30867            RefAction::Cascade(it) => &it.syntax,
30868            RefAction::NoAction(it) => &it.syntax,
30869            RefAction::Restrict(it) => &it.syntax,
30870            RefAction::SetDefaultColumns(it) => &it.syntax,
30871            RefAction::SetNullColumns(it) => &it.syntax,
30872        }
30873    }
30874}
30875impl From<Cascade> for RefAction {
30876    #[inline]
30877    fn from(node: Cascade) -> RefAction {
30878        RefAction::Cascade(node)
30879    }
30880}
30881impl From<NoAction> for RefAction {
30882    #[inline]
30883    fn from(node: NoAction) -> RefAction {
30884        RefAction::NoAction(node)
30885    }
30886}
30887impl From<Restrict> for RefAction {
30888    #[inline]
30889    fn from(node: Restrict) -> RefAction {
30890        RefAction::Restrict(node)
30891    }
30892}
30893impl From<SetDefaultColumns> for RefAction {
30894    #[inline]
30895    fn from(node: SetDefaultColumns) -> RefAction {
30896        RefAction::SetDefaultColumns(node)
30897    }
30898}
30899impl From<SetNullColumns> for RefAction {
30900    #[inline]
30901    fn from(node: SetNullColumns) -> RefAction {
30902        RefAction::SetNullColumns(node)
30903    }
30904}
30905impl AstNode for SchemaElement {
30906    #[inline]
30907    fn can_cast(kind: SyntaxKind) -> bool {
30908        matches!(
30909            kind,
30910            SyntaxKind::CREATE_INDEX
30911                | SyntaxKind::CREATE_SEQUENCE
30912                | SyntaxKind::CREATE_TABLE
30913                | SyntaxKind::CREATE_TRIGGER
30914                | SyntaxKind::CREATE_VIEW
30915                | SyntaxKind::GRANT
30916        )
30917    }
30918    #[inline]
30919    fn cast(syntax: SyntaxNode) -> Option<Self> {
30920        let res = match syntax.kind() {
30921            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
30922            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
30923            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
30924            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
30925            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
30926            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
30927            _ => {
30928                return None;
30929            }
30930        };
30931        Some(res)
30932    }
30933    #[inline]
30934    fn syntax(&self) -> &SyntaxNode {
30935        match self {
30936            SchemaElement::CreateIndex(it) => &it.syntax,
30937            SchemaElement::CreateSequence(it) => &it.syntax,
30938            SchemaElement::CreateTable(it) => &it.syntax,
30939            SchemaElement::CreateTrigger(it) => &it.syntax,
30940            SchemaElement::CreateView(it) => &it.syntax,
30941            SchemaElement::Grant(it) => &it.syntax,
30942        }
30943    }
30944}
30945impl From<CreateIndex> for SchemaElement {
30946    #[inline]
30947    fn from(node: CreateIndex) -> SchemaElement {
30948        SchemaElement::CreateIndex(node)
30949    }
30950}
30951impl From<CreateSequence> for SchemaElement {
30952    #[inline]
30953    fn from(node: CreateSequence) -> SchemaElement {
30954        SchemaElement::CreateSequence(node)
30955    }
30956}
30957impl From<CreateTable> for SchemaElement {
30958    #[inline]
30959    fn from(node: CreateTable) -> SchemaElement {
30960        SchemaElement::CreateTable(node)
30961    }
30962}
30963impl From<CreateTrigger> for SchemaElement {
30964    #[inline]
30965    fn from(node: CreateTrigger) -> SchemaElement {
30966        SchemaElement::CreateTrigger(node)
30967    }
30968}
30969impl From<CreateView> for SchemaElement {
30970    #[inline]
30971    fn from(node: CreateView) -> SchemaElement {
30972        SchemaElement::CreateView(node)
30973    }
30974}
30975impl From<Grant> for SchemaElement {
30976    #[inline]
30977    fn from(node: Grant) -> SchemaElement {
30978        SchemaElement::Grant(node)
30979    }
30980}
30981impl AstNode for SelectVariant {
30982    #[inline]
30983    fn can_cast(kind: SyntaxKind) -> bool {
30984        matches!(
30985            kind,
30986            SyntaxKind::COMPOUND_SELECT
30987                | SyntaxKind::PAREN_SELECT
30988                | SyntaxKind::SELECT
30989                | SyntaxKind::SELECT_INTO
30990                | SyntaxKind::TABLE
30991                | SyntaxKind::VALUES
30992        )
30993    }
30994    #[inline]
30995    fn cast(syntax: SyntaxNode) -> Option<Self> {
30996        let res = match syntax.kind() {
30997            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
30998            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
30999            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
31000            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
31001            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
31002            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31003            _ => {
31004                return None;
31005            }
31006        };
31007        Some(res)
31008    }
31009    #[inline]
31010    fn syntax(&self) -> &SyntaxNode {
31011        match self {
31012            SelectVariant::CompoundSelect(it) => &it.syntax,
31013            SelectVariant::ParenSelect(it) => &it.syntax,
31014            SelectVariant::Select(it) => &it.syntax,
31015            SelectVariant::SelectInto(it) => &it.syntax,
31016            SelectVariant::Table(it) => &it.syntax,
31017            SelectVariant::Values(it) => &it.syntax,
31018        }
31019    }
31020}
31021impl From<CompoundSelect> for SelectVariant {
31022    #[inline]
31023    fn from(node: CompoundSelect) -> SelectVariant {
31024        SelectVariant::CompoundSelect(node)
31025    }
31026}
31027impl From<ParenSelect> for SelectVariant {
31028    #[inline]
31029    fn from(node: ParenSelect) -> SelectVariant {
31030        SelectVariant::ParenSelect(node)
31031    }
31032}
31033impl From<Select> for SelectVariant {
31034    #[inline]
31035    fn from(node: Select) -> SelectVariant {
31036        SelectVariant::Select(node)
31037    }
31038}
31039impl From<SelectInto> for SelectVariant {
31040    #[inline]
31041    fn from(node: SelectInto) -> SelectVariant {
31042        SelectVariant::SelectInto(node)
31043    }
31044}
31045impl From<Table> for SelectVariant {
31046    #[inline]
31047    fn from(node: Table) -> SelectVariant {
31048        SelectVariant::Table(node)
31049    }
31050}
31051impl From<Values> for SelectVariant {
31052    #[inline]
31053    fn from(node: Values) -> SelectVariant {
31054        SelectVariant::Values(node)
31055    }
31056}
31057impl AstNode for SetColumn {
31058    #[inline]
31059    fn can_cast(kind: SyntaxKind) -> bool {
31060        matches!(
31061            kind,
31062            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31063        )
31064    }
31065    #[inline]
31066    fn cast(syntax: SyntaxNode) -> Option<Self> {
31067        let res = match syntax.kind() {
31068            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31069                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31070            }
31071            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31072            _ => {
31073                return None;
31074            }
31075        };
31076        Some(res)
31077    }
31078    #[inline]
31079    fn syntax(&self) -> &SyntaxNode {
31080        match self {
31081            SetColumn::SetMultipleColumns(it) => &it.syntax,
31082            SetColumn::SetSingleColumn(it) => &it.syntax,
31083        }
31084    }
31085}
31086impl From<SetMultipleColumns> for SetColumn {
31087    #[inline]
31088    fn from(node: SetMultipleColumns) -> SetColumn {
31089        SetColumn::SetMultipleColumns(node)
31090    }
31091}
31092impl From<SetSingleColumn> for SetColumn {
31093    #[inline]
31094    fn from(node: SetSingleColumn) -> SetColumn {
31095        SetColumn::SetSingleColumn(node)
31096    }
31097}
31098impl AstNode for Stmt {
31099    #[inline]
31100    fn can_cast(kind: SyntaxKind) -> bool {
31101        matches!(
31102            kind,
31103            SyntaxKind::ALTER_AGGREGATE
31104                | SyntaxKind::ALTER_COLLATION
31105                | SyntaxKind::ALTER_CONVERSION
31106                | SyntaxKind::ALTER_DATABASE
31107                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31108                | SyntaxKind::ALTER_DOMAIN
31109                | SyntaxKind::ALTER_EVENT_TRIGGER
31110                | SyntaxKind::ALTER_EXTENSION
31111                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31112                | SyntaxKind::ALTER_FOREIGN_TABLE
31113                | SyntaxKind::ALTER_FUNCTION
31114                | SyntaxKind::ALTER_GROUP
31115                | SyntaxKind::ALTER_INDEX
31116                | SyntaxKind::ALTER_LANGUAGE
31117                | SyntaxKind::ALTER_LARGE_OBJECT
31118                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31119                | SyntaxKind::ALTER_OPERATOR
31120                | SyntaxKind::ALTER_OPERATOR_CLASS
31121                | SyntaxKind::ALTER_OPERATOR_FAMILY
31122                | SyntaxKind::ALTER_POLICY
31123                | SyntaxKind::ALTER_PROCEDURE
31124                | SyntaxKind::ALTER_PUBLICATION
31125                | SyntaxKind::ALTER_ROLE
31126                | SyntaxKind::ALTER_ROUTINE
31127                | SyntaxKind::ALTER_RULE
31128                | SyntaxKind::ALTER_SCHEMA
31129                | SyntaxKind::ALTER_SEQUENCE
31130                | SyntaxKind::ALTER_SERVER
31131                | SyntaxKind::ALTER_STATISTICS
31132                | SyntaxKind::ALTER_SUBSCRIPTION
31133                | SyntaxKind::ALTER_SYSTEM
31134                | SyntaxKind::ALTER_TABLE
31135                | SyntaxKind::ALTER_TABLESPACE
31136                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31137                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31138                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31139                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31140                | SyntaxKind::ALTER_TRIGGER
31141                | SyntaxKind::ALTER_TYPE
31142                | SyntaxKind::ALTER_USER
31143                | SyntaxKind::ALTER_USER_MAPPING
31144                | SyntaxKind::ALTER_VIEW
31145                | SyntaxKind::ANALYZE
31146                | SyntaxKind::BEGIN
31147                | SyntaxKind::CALL
31148                | SyntaxKind::CHECKPOINT
31149                | SyntaxKind::CLOSE
31150                | SyntaxKind::CLUSTER
31151                | SyntaxKind::COMMENT_ON
31152                | SyntaxKind::COMMIT
31153                | SyntaxKind::COPY
31154                | SyntaxKind::CREATE_ACCESS_METHOD
31155                | SyntaxKind::CREATE_AGGREGATE
31156                | SyntaxKind::CREATE_CAST
31157                | SyntaxKind::CREATE_COLLATION
31158                | SyntaxKind::CREATE_CONVERSION
31159                | SyntaxKind::CREATE_DATABASE
31160                | SyntaxKind::CREATE_DOMAIN
31161                | SyntaxKind::CREATE_EVENT_TRIGGER
31162                | SyntaxKind::CREATE_EXTENSION
31163                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31164                | SyntaxKind::CREATE_FOREIGN_TABLE
31165                | SyntaxKind::CREATE_FUNCTION
31166                | SyntaxKind::CREATE_GROUP
31167                | SyntaxKind::CREATE_INDEX
31168                | SyntaxKind::CREATE_LANGUAGE
31169                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31170                | SyntaxKind::CREATE_OPERATOR
31171                | SyntaxKind::CREATE_OPERATOR_CLASS
31172                | SyntaxKind::CREATE_OPERATOR_FAMILY
31173                | SyntaxKind::CREATE_POLICY
31174                | SyntaxKind::CREATE_PROCEDURE
31175                | SyntaxKind::CREATE_PUBLICATION
31176                | SyntaxKind::CREATE_ROLE
31177                | SyntaxKind::CREATE_RULE
31178                | SyntaxKind::CREATE_SCHEMA
31179                | SyntaxKind::CREATE_SEQUENCE
31180                | SyntaxKind::CREATE_SERVER
31181                | SyntaxKind::CREATE_STATISTICS
31182                | SyntaxKind::CREATE_SUBSCRIPTION
31183                | SyntaxKind::CREATE_TABLE
31184                | SyntaxKind::CREATE_TABLE_AS
31185                | SyntaxKind::CREATE_TABLESPACE
31186                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31187                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31188                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31189                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31190                | SyntaxKind::CREATE_TRANSFORM
31191                | SyntaxKind::CREATE_TRIGGER
31192                | SyntaxKind::CREATE_TYPE
31193                | SyntaxKind::CREATE_USER
31194                | SyntaxKind::CREATE_USER_MAPPING
31195                | SyntaxKind::CREATE_VIEW
31196                | SyntaxKind::DEALLOCATE
31197                | SyntaxKind::DECLARE
31198                | SyntaxKind::DELETE
31199                | SyntaxKind::DISCARD
31200                | SyntaxKind::DO
31201                | SyntaxKind::DROP_ACCESS_METHOD
31202                | SyntaxKind::DROP_AGGREGATE
31203                | SyntaxKind::DROP_CAST
31204                | SyntaxKind::DROP_COLLATION
31205                | SyntaxKind::DROP_CONVERSION
31206                | SyntaxKind::DROP_DATABASE
31207                | SyntaxKind::DROP_DOMAIN
31208                | SyntaxKind::DROP_EVENT_TRIGGER
31209                | SyntaxKind::DROP_EXTENSION
31210                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31211                | SyntaxKind::DROP_FOREIGN_TABLE
31212                | SyntaxKind::DROP_FUNCTION
31213                | SyntaxKind::DROP_GROUP
31214                | SyntaxKind::DROP_INDEX
31215                | SyntaxKind::DROP_LANGUAGE
31216                | SyntaxKind::DROP_MATERIALIZED_VIEW
31217                | SyntaxKind::DROP_OPERATOR
31218                | SyntaxKind::DROP_OPERATOR_CLASS
31219                | SyntaxKind::DROP_OPERATOR_FAMILY
31220                | SyntaxKind::DROP_OWNED
31221                | SyntaxKind::DROP_POLICY
31222                | SyntaxKind::DROP_PROCEDURE
31223                | SyntaxKind::DROP_PUBLICATION
31224                | SyntaxKind::DROP_ROLE
31225                | SyntaxKind::DROP_ROUTINE
31226                | SyntaxKind::DROP_RULE
31227                | SyntaxKind::DROP_SCHEMA
31228                | SyntaxKind::DROP_SEQUENCE
31229                | SyntaxKind::DROP_SERVER
31230                | SyntaxKind::DROP_STATISTICS
31231                | SyntaxKind::DROP_SUBSCRIPTION
31232                | SyntaxKind::DROP_TABLE
31233                | SyntaxKind::DROP_TABLESPACE
31234                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31235                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31236                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31237                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31238                | SyntaxKind::DROP_TRANSFORM
31239                | SyntaxKind::DROP_TRIGGER
31240                | SyntaxKind::DROP_TYPE
31241                | SyntaxKind::DROP_USER
31242                | SyntaxKind::DROP_USER_MAPPING
31243                | SyntaxKind::DROP_VIEW
31244                | SyntaxKind::EXECUTE
31245                | SyntaxKind::EXPLAIN
31246                | SyntaxKind::FETCH
31247                | SyntaxKind::GRANT
31248                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31249                | SyntaxKind::INSERT
31250                | SyntaxKind::LISTEN
31251                | SyntaxKind::LOAD
31252                | SyntaxKind::LOCK
31253                | SyntaxKind::MERGE
31254                | SyntaxKind::MOVE
31255                | SyntaxKind::NOTIFY
31256                | SyntaxKind::PAREN_SELECT
31257                | SyntaxKind::PREPARE
31258                | SyntaxKind::PREPARE_TRANSACTION
31259                | SyntaxKind::REASSIGN
31260                | SyntaxKind::REFRESH
31261                | SyntaxKind::REINDEX
31262                | SyntaxKind::RELEASE_SAVEPOINT
31263                | SyntaxKind::RESET
31264                | SyntaxKind::RESET_SESSION_AUTH
31265                | SyntaxKind::REVOKE
31266                | SyntaxKind::ROLLBACK
31267                | SyntaxKind::SAVEPOINT
31268                | SyntaxKind::SECURITY_LABEL
31269                | SyntaxKind::SELECT
31270                | SyntaxKind::SELECT_INTO
31271                | SyntaxKind::SET
31272                | SyntaxKind::SET_CONSTRAINTS
31273                | SyntaxKind::SET_ROLE
31274                | SyntaxKind::SET_SESSION_AUTH
31275                | SyntaxKind::SET_TRANSACTION
31276                | SyntaxKind::SHOW
31277                | SyntaxKind::TABLE
31278                | SyntaxKind::TRUNCATE
31279                | SyntaxKind::UNLISTEN
31280                | SyntaxKind::UPDATE
31281                | SyntaxKind::VACUUM
31282                | SyntaxKind::VALUES
31283        )
31284    }
31285    #[inline]
31286    fn cast(syntax: SyntaxNode) -> Option<Self> {
31287        let res = match syntax.kind() {
31288            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31289            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31290            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31291            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31292            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31293                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31294            }
31295            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31296            SyntaxKind::ALTER_EVENT_TRIGGER => {
31297                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31298            }
31299            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31300            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31301                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31302            }
31303            SyntaxKind::ALTER_FOREIGN_TABLE => {
31304                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31305            }
31306            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31307            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31308            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31309            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31310            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31311            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31312                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31313            }
31314            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31315            SyntaxKind::ALTER_OPERATOR_CLASS => {
31316                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31317            }
31318            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31319                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31320            }
31321            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31322            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31323            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31324            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31325            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31326            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31327            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31328            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31329            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31330            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31331            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31332            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31333            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31334            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31335            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31336                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31337            }
31338            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31339                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31340            }
31341            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31342                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31343            }
31344            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31345                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31346            }
31347            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31348            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31349            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31350            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31351            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31352            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31353            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31354            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31355            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31356            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31357            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31358            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31359            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31360            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31361            SyntaxKind::CREATE_ACCESS_METHOD => {
31362                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31363            }
31364            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31365            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31366            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31367            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31368            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31369            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31370            SyntaxKind::CREATE_EVENT_TRIGGER => {
31371                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31372            }
31373            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31374            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31375                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31376            }
31377            SyntaxKind::CREATE_FOREIGN_TABLE => {
31378                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31379            }
31380            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31381            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31382            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31383            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31384            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31385                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31386            }
31387            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31388            SyntaxKind::CREATE_OPERATOR_CLASS => {
31389                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31390            }
31391            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31392                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31393            }
31394            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31395            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31396            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31397            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31398            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31399            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31400            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31401            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31402            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31403            SyntaxKind::CREATE_SUBSCRIPTION => {
31404                Stmt::CreateSubscription(CreateSubscription { syntax })
31405            }
31406            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31407            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31408            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31409            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31410                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31411            }
31412            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31413                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31414            }
31415            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31416                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31417            }
31418            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31419                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31420            }
31421            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31422            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31423            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31424            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31425            SyntaxKind::CREATE_USER_MAPPING => {
31426                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31427            }
31428            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31429            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31430            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31431            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31432            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31433            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31434            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31435            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31436            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31437            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31438            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31439            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31440            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31441            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31442            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31443            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31444                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31445            }
31446            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31447            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31448            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31449            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31450            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31451            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31452                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31453            }
31454            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31455            SyntaxKind::DROP_OPERATOR_CLASS => {
31456                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31457            }
31458            SyntaxKind::DROP_OPERATOR_FAMILY => {
31459                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31460            }
31461            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
31462            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
31463            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
31464            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
31465            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
31466            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
31467            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
31468            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
31469            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
31470            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
31471            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
31472            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
31473            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
31474            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
31475            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
31476                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
31477            }
31478            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
31479                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
31480            }
31481            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
31482                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
31483            }
31484            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
31485                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
31486            }
31487            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
31488            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
31489            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
31490            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
31491            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
31492            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
31493            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
31494            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
31495            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
31496            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
31497            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
31498                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
31499            }
31500            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
31501            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
31502            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
31503            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
31504            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
31505            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
31506            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
31507            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
31508            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
31509            SyntaxKind::PREPARE_TRANSACTION => {
31510                Stmt::PrepareTransaction(PrepareTransaction { syntax })
31511            }
31512            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
31513            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
31514            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
31515            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
31516            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
31517            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
31518            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
31519            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
31520            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
31521            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
31522            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
31523            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
31524            SyntaxKind::SET => Stmt::Set(Set { syntax }),
31525            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
31526            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
31527            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
31528            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
31529            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
31530            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
31531            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
31532            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
31533            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
31534            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
31535            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
31536            _ => {
31537                return None;
31538            }
31539        };
31540        Some(res)
31541    }
31542    #[inline]
31543    fn syntax(&self) -> &SyntaxNode {
31544        match self {
31545            Stmt::AlterAggregate(it) => &it.syntax,
31546            Stmt::AlterCollation(it) => &it.syntax,
31547            Stmt::AlterConversion(it) => &it.syntax,
31548            Stmt::AlterDatabase(it) => &it.syntax,
31549            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
31550            Stmt::AlterDomain(it) => &it.syntax,
31551            Stmt::AlterEventTrigger(it) => &it.syntax,
31552            Stmt::AlterExtension(it) => &it.syntax,
31553            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
31554            Stmt::AlterForeignTable(it) => &it.syntax,
31555            Stmt::AlterFunction(it) => &it.syntax,
31556            Stmt::AlterGroup(it) => &it.syntax,
31557            Stmt::AlterIndex(it) => &it.syntax,
31558            Stmt::AlterLanguage(it) => &it.syntax,
31559            Stmt::AlterLargeObject(it) => &it.syntax,
31560            Stmt::AlterMaterializedView(it) => &it.syntax,
31561            Stmt::AlterOperator(it) => &it.syntax,
31562            Stmt::AlterOperatorClass(it) => &it.syntax,
31563            Stmt::AlterOperatorFamily(it) => &it.syntax,
31564            Stmt::AlterPolicy(it) => &it.syntax,
31565            Stmt::AlterProcedure(it) => &it.syntax,
31566            Stmt::AlterPublication(it) => &it.syntax,
31567            Stmt::AlterRole(it) => &it.syntax,
31568            Stmt::AlterRoutine(it) => &it.syntax,
31569            Stmt::AlterRule(it) => &it.syntax,
31570            Stmt::AlterSchema(it) => &it.syntax,
31571            Stmt::AlterSequence(it) => &it.syntax,
31572            Stmt::AlterServer(it) => &it.syntax,
31573            Stmt::AlterStatistics(it) => &it.syntax,
31574            Stmt::AlterSubscription(it) => &it.syntax,
31575            Stmt::AlterSystem(it) => &it.syntax,
31576            Stmt::AlterTable(it) => &it.syntax,
31577            Stmt::AlterTablespace(it) => &it.syntax,
31578            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
31579            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
31580            Stmt::AlterTextSearchParser(it) => &it.syntax,
31581            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
31582            Stmt::AlterTrigger(it) => &it.syntax,
31583            Stmt::AlterType(it) => &it.syntax,
31584            Stmt::AlterUser(it) => &it.syntax,
31585            Stmt::AlterUserMapping(it) => &it.syntax,
31586            Stmt::AlterView(it) => &it.syntax,
31587            Stmt::Analyze(it) => &it.syntax,
31588            Stmt::Begin(it) => &it.syntax,
31589            Stmt::Call(it) => &it.syntax,
31590            Stmt::Checkpoint(it) => &it.syntax,
31591            Stmt::Close(it) => &it.syntax,
31592            Stmt::Cluster(it) => &it.syntax,
31593            Stmt::CommentOn(it) => &it.syntax,
31594            Stmt::Commit(it) => &it.syntax,
31595            Stmt::Copy(it) => &it.syntax,
31596            Stmt::CreateAccessMethod(it) => &it.syntax,
31597            Stmt::CreateAggregate(it) => &it.syntax,
31598            Stmt::CreateCast(it) => &it.syntax,
31599            Stmt::CreateCollation(it) => &it.syntax,
31600            Stmt::CreateConversion(it) => &it.syntax,
31601            Stmt::CreateDatabase(it) => &it.syntax,
31602            Stmt::CreateDomain(it) => &it.syntax,
31603            Stmt::CreateEventTrigger(it) => &it.syntax,
31604            Stmt::CreateExtension(it) => &it.syntax,
31605            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
31606            Stmt::CreateForeignTable(it) => &it.syntax,
31607            Stmt::CreateFunction(it) => &it.syntax,
31608            Stmt::CreateGroup(it) => &it.syntax,
31609            Stmt::CreateIndex(it) => &it.syntax,
31610            Stmt::CreateLanguage(it) => &it.syntax,
31611            Stmt::CreateMaterializedView(it) => &it.syntax,
31612            Stmt::CreateOperator(it) => &it.syntax,
31613            Stmt::CreateOperatorClass(it) => &it.syntax,
31614            Stmt::CreateOperatorFamily(it) => &it.syntax,
31615            Stmt::CreatePolicy(it) => &it.syntax,
31616            Stmt::CreateProcedure(it) => &it.syntax,
31617            Stmt::CreatePublication(it) => &it.syntax,
31618            Stmt::CreateRole(it) => &it.syntax,
31619            Stmt::CreateRule(it) => &it.syntax,
31620            Stmt::CreateSchema(it) => &it.syntax,
31621            Stmt::CreateSequence(it) => &it.syntax,
31622            Stmt::CreateServer(it) => &it.syntax,
31623            Stmt::CreateStatistics(it) => &it.syntax,
31624            Stmt::CreateSubscription(it) => &it.syntax,
31625            Stmt::CreateTable(it) => &it.syntax,
31626            Stmt::CreateTableAs(it) => &it.syntax,
31627            Stmt::CreateTablespace(it) => &it.syntax,
31628            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31629            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31630            Stmt::CreateTextSearchParser(it) => &it.syntax,
31631            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31632            Stmt::CreateTransform(it) => &it.syntax,
31633            Stmt::CreateTrigger(it) => &it.syntax,
31634            Stmt::CreateType(it) => &it.syntax,
31635            Stmt::CreateUser(it) => &it.syntax,
31636            Stmt::CreateUserMapping(it) => &it.syntax,
31637            Stmt::CreateView(it) => &it.syntax,
31638            Stmt::Deallocate(it) => &it.syntax,
31639            Stmt::Declare(it) => &it.syntax,
31640            Stmt::Delete(it) => &it.syntax,
31641            Stmt::Discard(it) => &it.syntax,
31642            Stmt::Do(it) => &it.syntax,
31643            Stmt::DropAccessMethod(it) => &it.syntax,
31644            Stmt::DropAggregate(it) => &it.syntax,
31645            Stmt::DropCast(it) => &it.syntax,
31646            Stmt::DropCollation(it) => &it.syntax,
31647            Stmt::DropConversion(it) => &it.syntax,
31648            Stmt::DropDatabase(it) => &it.syntax,
31649            Stmt::DropDomain(it) => &it.syntax,
31650            Stmt::DropEventTrigger(it) => &it.syntax,
31651            Stmt::DropExtension(it) => &it.syntax,
31652            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31653            Stmt::DropForeignTable(it) => &it.syntax,
31654            Stmt::DropFunction(it) => &it.syntax,
31655            Stmt::DropGroup(it) => &it.syntax,
31656            Stmt::DropIndex(it) => &it.syntax,
31657            Stmt::DropLanguage(it) => &it.syntax,
31658            Stmt::DropMaterializedView(it) => &it.syntax,
31659            Stmt::DropOperator(it) => &it.syntax,
31660            Stmt::DropOperatorClass(it) => &it.syntax,
31661            Stmt::DropOperatorFamily(it) => &it.syntax,
31662            Stmt::DropOwned(it) => &it.syntax,
31663            Stmt::DropPolicy(it) => &it.syntax,
31664            Stmt::DropProcedure(it) => &it.syntax,
31665            Stmt::DropPublication(it) => &it.syntax,
31666            Stmt::DropRole(it) => &it.syntax,
31667            Stmt::DropRoutine(it) => &it.syntax,
31668            Stmt::DropRule(it) => &it.syntax,
31669            Stmt::DropSchema(it) => &it.syntax,
31670            Stmt::DropSequence(it) => &it.syntax,
31671            Stmt::DropServer(it) => &it.syntax,
31672            Stmt::DropStatistics(it) => &it.syntax,
31673            Stmt::DropSubscription(it) => &it.syntax,
31674            Stmt::DropTable(it) => &it.syntax,
31675            Stmt::DropTablespace(it) => &it.syntax,
31676            Stmt::DropTextSearchConfig(it) => &it.syntax,
31677            Stmt::DropTextSearchDict(it) => &it.syntax,
31678            Stmt::DropTextSearchParser(it) => &it.syntax,
31679            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31680            Stmt::DropTransform(it) => &it.syntax,
31681            Stmt::DropTrigger(it) => &it.syntax,
31682            Stmt::DropType(it) => &it.syntax,
31683            Stmt::DropUser(it) => &it.syntax,
31684            Stmt::DropUserMapping(it) => &it.syntax,
31685            Stmt::DropView(it) => &it.syntax,
31686            Stmt::Execute(it) => &it.syntax,
31687            Stmt::Explain(it) => &it.syntax,
31688            Stmt::Fetch(it) => &it.syntax,
31689            Stmt::Grant(it) => &it.syntax,
31690            Stmt::ImportForeignSchema(it) => &it.syntax,
31691            Stmt::Insert(it) => &it.syntax,
31692            Stmt::Listen(it) => &it.syntax,
31693            Stmt::Load(it) => &it.syntax,
31694            Stmt::Lock(it) => &it.syntax,
31695            Stmt::Merge(it) => &it.syntax,
31696            Stmt::Move(it) => &it.syntax,
31697            Stmt::Notify(it) => &it.syntax,
31698            Stmt::ParenSelect(it) => &it.syntax,
31699            Stmt::Prepare(it) => &it.syntax,
31700            Stmt::PrepareTransaction(it) => &it.syntax,
31701            Stmt::Reassign(it) => &it.syntax,
31702            Stmt::Refresh(it) => &it.syntax,
31703            Stmt::Reindex(it) => &it.syntax,
31704            Stmt::ReleaseSavepoint(it) => &it.syntax,
31705            Stmt::Reset(it) => &it.syntax,
31706            Stmt::ResetSessionAuth(it) => &it.syntax,
31707            Stmt::Revoke(it) => &it.syntax,
31708            Stmt::Rollback(it) => &it.syntax,
31709            Stmt::Savepoint(it) => &it.syntax,
31710            Stmt::SecurityLabel(it) => &it.syntax,
31711            Stmt::Select(it) => &it.syntax,
31712            Stmt::SelectInto(it) => &it.syntax,
31713            Stmt::Set(it) => &it.syntax,
31714            Stmt::SetConstraints(it) => &it.syntax,
31715            Stmt::SetRole(it) => &it.syntax,
31716            Stmt::SetSessionAuth(it) => &it.syntax,
31717            Stmt::SetTransaction(it) => &it.syntax,
31718            Stmt::Show(it) => &it.syntax,
31719            Stmt::Table(it) => &it.syntax,
31720            Stmt::Truncate(it) => &it.syntax,
31721            Stmt::Unlisten(it) => &it.syntax,
31722            Stmt::Update(it) => &it.syntax,
31723            Stmt::Vacuum(it) => &it.syntax,
31724            Stmt::Values(it) => &it.syntax,
31725        }
31726    }
31727}
31728impl From<AlterAggregate> for Stmt {
31729    #[inline]
31730    fn from(node: AlterAggregate) -> Stmt {
31731        Stmt::AlterAggregate(node)
31732    }
31733}
31734impl From<AlterCollation> for Stmt {
31735    #[inline]
31736    fn from(node: AlterCollation) -> Stmt {
31737        Stmt::AlterCollation(node)
31738    }
31739}
31740impl From<AlterConversion> for Stmt {
31741    #[inline]
31742    fn from(node: AlterConversion) -> Stmt {
31743        Stmt::AlterConversion(node)
31744    }
31745}
31746impl From<AlterDatabase> for Stmt {
31747    #[inline]
31748    fn from(node: AlterDatabase) -> Stmt {
31749        Stmt::AlterDatabase(node)
31750    }
31751}
31752impl From<AlterDefaultPrivileges> for Stmt {
31753    #[inline]
31754    fn from(node: AlterDefaultPrivileges) -> Stmt {
31755        Stmt::AlterDefaultPrivileges(node)
31756    }
31757}
31758impl From<AlterDomain> for Stmt {
31759    #[inline]
31760    fn from(node: AlterDomain) -> Stmt {
31761        Stmt::AlterDomain(node)
31762    }
31763}
31764impl From<AlterEventTrigger> for Stmt {
31765    #[inline]
31766    fn from(node: AlterEventTrigger) -> Stmt {
31767        Stmt::AlterEventTrigger(node)
31768    }
31769}
31770impl From<AlterExtension> for Stmt {
31771    #[inline]
31772    fn from(node: AlterExtension) -> Stmt {
31773        Stmt::AlterExtension(node)
31774    }
31775}
31776impl From<AlterForeignDataWrapper> for Stmt {
31777    #[inline]
31778    fn from(node: AlterForeignDataWrapper) -> Stmt {
31779        Stmt::AlterForeignDataWrapper(node)
31780    }
31781}
31782impl From<AlterForeignTable> for Stmt {
31783    #[inline]
31784    fn from(node: AlterForeignTable) -> Stmt {
31785        Stmt::AlterForeignTable(node)
31786    }
31787}
31788impl From<AlterFunction> for Stmt {
31789    #[inline]
31790    fn from(node: AlterFunction) -> Stmt {
31791        Stmt::AlterFunction(node)
31792    }
31793}
31794impl From<AlterGroup> for Stmt {
31795    #[inline]
31796    fn from(node: AlterGroup) -> Stmt {
31797        Stmt::AlterGroup(node)
31798    }
31799}
31800impl From<AlterIndex> for Stmt {
31801    #[inline]
31802    fn from(node: AlterIndex) -> Stmt {
31803        Stmt::AlterIndex(node)
31804    }
31805}
31806impl From<AlterLanguage> for Stmt {
31807    #[inline]
31808    fn from(node: AlterLanguage) -> Stmt {
31809        Stmt::AlterLanguage(node)
31810    }
31811}
31812impl From<AlterLargeObject> for Stmt {
31813    #[inline]
31814    fn from(node: AlterLargeObject) -> Stmt {
31815        Stmt::AlterLargeObject(node)
31816    }
31817}
31818impl From<AlterMaterializedView> for Stmt {
31819    #[inline]
31820    fn from(node: AlterMaterializedView) -> Stmt {
31821        Stmt::AlterMaterializedView(node)
31822    }
31823}
31824impl From<AlterOperator> for Stmt {
31825    #[inline]
31826    fn from(node: AlterOperator) -> Stmt {
31827        Stmt::AlterOperator(node)
31828    }
31829}
31830impl From<AlterOperatorClass> for Stmt {
31831    #[inline]
31832    fn from(node: AlterOperatorClass) -> Stmt {
31833        Stmt::AlterOperatorClass(node)
31834    }
31835}
31836impl From<AlterOperatorFamily> for Stmt {
31837    #[inline]
31838    fn from(node: AlterOperatorFamily) -> Stmt {
31839        Stmt::AlterOperatorFamily(node)
31840    }
31841}
31842impl From<AlterPolicy> for Stmt {
31843    #[inline]
31844    fn from(node: AlterPolicy) -> Stmt {
31845        Stmt::AlterPolicy(node)
31846    }
31847}
31848impl From<AlterProcedure> for Stmt {
31849    #[inline]
31850    fn from(node: AlterProcedure) -> Stmt {
31851        Stmt::AlterProcedure(node)
31852    }
31853}
31854impl From<AlterPublication> for Stmt {
31855    #[inline]
31856    fn from(node: AlterPublication) -> Stmt {
31857        Stmt::AlterPublication(node)
31858    }
31859}
31860impl From<AlterRole> for Stmt {
31861    #[inline]
31862    fn from(node: AlterRole) -> Stmt {
31863        Stmt::AlterRole(node)
31864    }
31865}
31866impl From<AlterRoutine> for Stmt {
31867    #[inline]
31868    fn from(node: AlterRoutine) -> Stmt {
31869        Stmt::AlterRoutine(node)
31870    }
31871}
31872impl From<AlterRule> for Stmt {
31873    #[inline]
31874    fn from(node: AlterRule) -> Stmt {
31875        Stmt::AlterRule(node)
31876    }
31877}
31878impl From<AlterSchema> for Stmt {
31879    #[inline]
31880    fn from(node: AlterSchema) -> Stmt {
31881        Stmt::AlterSchema(node)
31882    }
31883}
31884impl From<AlterSequence> for Stmt {
31885    #[inline]
31886    fn from(node: AlterSequence) -> Stmt {
31887        Stmt::AlterSequence(node)
31888    }
31889}
31890impl From<AlterServer> for Stmt {
31891    #[inline]
31892    fn from(node: AlterServer) -> Stmt {
31893        Stmt::AlterServer(node)
31894    }
31895}
31896impl From<AlterStatistics> for Stmt {
31897    #[inline]
31898    fn from(node: AlterStatistics) -> Stmt {
31899        Stmt::AlterStatistics(node)
31900    }
31901}
31902impl From<AlterSubscription> for Stmt {
31903    #[inline]
31904    fn from(node: AlterSubscription) -> Stmt {
31905        Stmt::AlterSubscription(node)
31906    }
31907}
31908impl From<AlterSystem> for Stmt {
31909    #[inline]
31910    fn from(node: AlterSystem) -> Stmt {
31911        Stmt::AlterSystem(node)
31912    }
31913}
31914impl From<AlterTable> for Stmt {
31915    #[inline]
31916    fn from(node: AlterTable) -> Stmt {
31917        Stmt::AlterTable(node)
31918    }
31919}
31920impl From<AlterTablespace> for Stmt {
31921    #[inline]
31922    fn from(node: AlterTablespace) -> Stmt {
31923        Stmt::AlterTablespace(node)
31924    }
31925}
31926impl From<AlterTextSearchConfiguration> for Stmt {
31927    #[inline]
31928    fn from(node: AlterTextSearchConfiguration) -> Stmt {
31929        Stmt::AlterTextSearchConfiguration(node)
31930    }
31931}
31932impl From<AlterTextSearchDictionary> for Stmt {
31933    #[inline]
31934    fn from(node: AlterTextSearchDictionary) -> Stmt {
31935        Stmt::AlterTextSearchDictionary(node)
31936    }
31937}
31938impl From<AlterTextSearchParser> for Stmt {
31939    #[inline]
31940    fn from(node: AlterTextSearchParser) -> Stmt {
31941        Stmt::AlterTextSearchParser(node)
31942    }
31943}
31944impl From<AlterTextSearchTemplate> for Stmt {
31945    #[inline]
31946    fn from(node: AlterTextSearchTemplate) -> Stmt {
31947        Stmt::AlterTextSearchTemplate(node)
31948    }
31949}
31950impl From<AlterTrigger> for Stmt {
31951    #[inline]
31952    fn from(node: AlterTrigger) -> Stmt {
31953        Stmt::AlterTrigger(node)
31954    }
31955}
31956impl From<AlterType> for Stmt {
31957    #[inline]
31958    fn from(node: AlterType) -> Stmt {
31959        Stmt::AlterType(node)
31960    }
31961}
31962impl From<AlterUser> for Stmt {
31963    #[inline]
31964    fn from(node: AlterUser) -> Stmt {
31965        Stmt::AlterUser(node)
31966    }
31967}
31968impl From<AlterUserMapping> for Stmt {
31969    #[inline]
31970    fn from(node: AlterUserMapping) -> Stmt {
31971        Stmt::AlterUserMapping(node)
31972    }
31973}
31974impl From<AlterView> for Stmt {
31975    #[inline]
31976    fn from(node: AlterView) -> Stmt {
31977        Stmt::AlterView(node)
31978    }
31979}
31980impl From<Analyze> for Stmt {
31981    #[inline]
31982    fn from(node: Analyze) -> Stmt {
31983        Stmt::Analyze(node)
31984    }
31985}
31986impl From<Begin> for Stmt {
31987    #[inline]
31988    fn from(node: Begin) -> Stmt {
31989        Stmt::Begin(node)
31990    }
31991}
31992impl From<Call> for Stmt {
31993    #[inline]
31994    fn from(node: Call) -> Stmt {
31995        Stmt::Call(node)
31996    }
31997}
31998impl From<Checkpoint> for Stmt {
31999    #[inline]
32000    fn from(node: Checkpoint) -> Stmt {
32001        Stmt::Checkpoint(node)
32002    }
32003}
32004impl From<Close> for Stmt {
32005    #[inline]
32006    fn from(node: Close) -> Stmt {
32007        Stmt::Close(node)
32008    }
32009}
32010impl From<Cluster> for Stmt {
32011    #[inline]
32012    fn from(node: Cluster) -> Stmt {
32013        Stmt::Cluster(node)
32014    }
32015}
32016impl From<CommentOn> for Stmt {
32017    #[inline]
32018    fn from(node: CommentOn) -> Stmt {
32019        Stmt::CommentOn(node)
32020    }
32021}
32022impl From<Commit> for Stmt {
32023    #[inline]
32024    fn from(node: Commit) -> Stmt {
32025        Stmt::Commit(node)
32026    }
32027}
32028impl From<Copy> for Stmt {
32029    #[inline]
32030    fn from(node: Copy) -> Stmt {
32031        Stmt::Copy(node)
32032    }
32033}
32034impl From<CreateAccessMethod> for Stmt {
32035    #[inline]
32036    fn from(node: CreateAccessMethod) -> Stmt {
32037        Stmt::CreateAccessMethod(node)
32038    }
32039}
32040impl From<CreateAggregate> for Stmt {
32041    #[inline]
32042    fn from(node: CreateAggregate) -> Stmt {
32043        Stmt::CreateAggregate(node)
32044    }
32045}
32046impl From<CreateCast> for Stmt {
32047    #[inline]
32048    fn from(node: CreateCast) -> Stmt {
32049        Stmt::CreateCast(node)
32050    }
32051}
32052impl From<CreateCollation> for Stmt {
32053    #[inline]
32054    fn from(node: CreateCollation) -> Stmt {
32055        Stmt::CreateCollation(node)
32056    }
32057}
32058impl From<CreateConversion> for Stmt {
32059    #[inline]
32060    fn from(node: CreateConversion) -> Stmt {
32061        Stmt::CreateConversion(node)
32062    }
32063}
32064impl From<CreateDatabase> for Stmt {
32065    #[inline]
32066    fn from(node: CreateDatabase) -> Stmt {
32067        Stmt::CreateDatabase(node)
32068    }
32069}
32070impl From<CreateDomain> for Stmt {
32071    #[inline]
32072    fn from(node: CreateDomain) -> Stmt {
32073        Stmt::CreateDomain(node)
32074    }
32075}
32076impl From<CreateEventTrigger> for Stmt {
32077    #[inline]
32078    fn from(node: CreateEventTrigger) -> Stmt {
32079        Stmt::CreateEventTrigger(node)
32080    }
32081}
32082impl From<CreateExtension> for Stmt {
32083    #[inline]
32084    fn from(node: CreateExtension) -> Stmt {
32085        Stmt::CreateExtension(node)
32086    }
32087}
32088impl From<CreateForeignDataWrapper> for Stmt {
32089    #[inline]
32090    fn from(node: CreateForeignDataWrapper) -> Stmt {
32091        Stmt::CreateForeignDataWrapper(node)
32092    }
32093}
32094impl From<CreateForeignTable> for Stmt {
32095    #[inline]
32096    fn from(node: CreateForeignTable) -> Stmt {
32097        Stmt::CreateForeignTable(node)
32098    }
32099}
32100impl From<CreateFunction> for Stmt {
32101    #[inline]
32102    fn from(node: CreateFunction) -> Stmt {
32103        Stmt::CreateFunction(node)
32104    }
32105}
32106impl From<CreateGroup> for Stmt {
32107    #[inline]
32108    fn from(node: CreateGroup) -> Stmt {
32109        Stmt::CreateGroup(node)
32110    }
32111}
32112impl From<CreateIndex> for Stmt {
32113    #[inline]
32114    fn from(node: CreateIndex) -> Stmt {
32115        Stmt::CreateIndex(node)
32116    }
32117}
32118impl From<CreateLanguage> for Stmt {
32119    #[inline]
32120    fn from(node: CreateLanguage) -> Stmt {
32121        Stmt::CreateLanguage(node)
32122    }
32123}
32124impl From<CreateMaterializedView> for Stmt {
32125    #[inline]
32126    fn from(node: CreateMaterializedView) -> Stmt {
32127        Stmt::CreateMaterializedView(node)
32128    }
32129}
32130impl From<CreateOperator> for Stmt {
32131    #[inline]
32132    fn from(node: CreateOperator) -> Stmt {
32133        Stmt::CreateOperator(node)
32134    }
32135}
32136impl From<CreateOperatorClass> for Stmt {
32137    #[inline]
32138    fn from(node: CreateOperatorClass) -> Stmt {
32139        Stmt::CreateOperatorClass(node)
32140    }
32141}
32142impl From<CreateOperatorFamily> for Stmt {
32143    #[inline]
32144    fn from(node: CreateOperatorFamily) -> Stmt {
32145        Stmt::CreateOperatorFamily(node)
32146    }
32147}
32148impl From<CreatePolicy> for Stmt {
32149    #[inline]
32150    fn from(node: CreatePolicy) -> Stmt {
32151        Stmt::CreatePolicy(node)
32152    }
32153}
32154impl From<CreateProcedure> for Stmt {
32155    #[inline]
32156    fn from(node: CreateProcedure) -> Stmt {
32157        Stmt::CreateProcedure(node)
32158    }
32159}
32160impl From<CreatePublication> for Stmt {
32161    #[inline]
32162    fn from(node: CreatePublication) -> Stmt {
32163        Stmt::CreatePublication(node)
32164    }
32165}
32166impl From<CreateRole> for Stmt {
32167    #[inline]
32168    fn from(node: CreateRole) -> Stmt {
32169        Stmt::CreateRole(node)
32170    }
32171}
32172impl From<CreateRule> for Stmt {
32173    #[inline]
32174    fn from(node: CreateRule) -> Stmt {
32175        Stmt::CreateRule(node)
32176    }
32177}
32178impl From<CreateSchema> for Stmt {
32179    #[inline]
32180    fn from(node: CreateSchema) -> Stmt {
32181        Stmt::CreateSchema(node)
32182    }
32183}
32184impl From<CreateSequence> for Stmt {
32185    #[inline]
32186    fn from(node: CreateSequence) -> Stmt {
32187        Stmt::CreateSequence(node)
32188    }
32189}
32190impl From<CreateServer> for Stmt {
32191    #[inline]
32192    fn from(node: CreateServer) -> Stmt {
32193        Stmt::CreateServer(node)
32194    }
32195}
32196impl From<CreateStatistics> for Stmt {
32197    #[inline]
32198    fn from(node: CreateStatistics) -> Stmt {
32199        Stmt::CreateStatistics(node)
32200    }
32201}
32202impl From<CreateSubscription> for Stmt {
32203    #[inline]
32204    fn from(node: CreateSubscription) -> Stmt {
32205        Stmt::CreateSubscription(node)
32206    }
32207}
32208impl From<CreateTable> for Stmt {
32209    #[inline]
32210    fn from(node: CreateTable) -> Stmt {
32211        Stmt::CreateTable(node)
32212    }
32213}
32214impl From<CreateTableAs> for Stmt {
32215    #[inline]
32216    fn from(node: CreateTableAs) -> Stmt {
32217        Stmt::CreateTableAs(node)
32218    }
32219}
32220impl From<CreateTablespace> for Stmt {
32221    #[inline]
32222    fn from(node: CreateTablespace) -> Stmt {
32223        Stmt::CreateTablespace(node)
32224    }
32225}
32226impl From<CreateTextSearchConfiguration> for Stmt {
32227    #[inline]
32228    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32229        Stmt::CreateTextSearchConfiguration(node)
32230    }
32231}
32232impl From<CreateTextSearchDictionary> for Stmt {
32233    #[inline]
32234    fn from(node: CreateTextSearchDictionary) -> Stmt {
32235        Stmt::CreateTextSearchDictionary(node)
32236    }
32237}
32238impl From<CreateTextSearchParser> for Stmt {
32239    #[inline]
32240    fn from(node: CreateTextSearchParser) -> Stmt {
32241        Stmt::CreateTextSearchParser(node)
32242    }
32243}
32244impl From<CreateTextSearchTemplate> for Stmt {
32245    #[inline]
32246    fn from(node: CreateTextSearchTemplate) -> Stmt {
32247        Stmt::CreateTextSearchTemplate(node)
32248    }
32249}
32250impl From<CreateTransform> for Stmt {
32251    #[inline]
32252    fn from(node: CreateTransform) -> Stmt {
32253        Stmt::CreateTransform(node)
32254    }
32255}
32256impl From<CreateTrigger> for Stmt {
32257    #[inline]
32258    fn from(node: CreateTrigger) -> Stmt {
32259        Stmt::CreateTrigger(node)
32260    }
32261}
32262impl From<CreateType> for Stmt {
32263    #[inline]
32264    fn from(node: CreateType) -> Stmt {
32265        Stmt::CreateType(node)
32266    }
32267}
32268impl From<CreateUser> for Stmt {
32269    #[inline]
32270    fn from(node: CreateUser) -> Stmt {
32271        Stmt::CreateUser(node)
32272    }
32273}
32274impl From<CreateUserMapping> for Stmt {
32275    #[inline]
32276    fn from(node: CreateUserMapping) -> Stmt {
32277        Stmt::CreateUserMapping(node)
32278    }
32279}
32280impl From<CreateView> for Stmt {
32281    #[inline]
32282    fn from(node: CreateView) -> Stmt {
32283        Stmt::CreateView(node)
32284    }
32285}
32286impl From<Deallocate> for Stmt {
32287    #[inline]
32288    fn from(node: Deallocate) -> Stmt {
32289        Stmt::Deallocate(node)
32290    }
32291}
32292impl From<Declare> for Stmt {
32293    #[inline]
32294    fn from(node: Declare) -> Stmt {
32295        Stmt::Declare(node)
32296    }
32297}
32298impl From<Delete> for Stmt {
32299    #[inline]
32300    fn from(node: Delete) -> Stmt {
32301        Stmt::Delete(node)
32302    }
32303}
32304impl From<Discard> for Stmt {
32305    #[inline]
32306    fn from(node: Discard) -> Stmt {
32307        Stmt::Discard(node)
32308    }
32309}
32310impl From<Do> for Stmt {
32311    #[inline]
32312    fn from(node: Do) -> Stmt {
32313        Stmt::Do(node)
32314    }
32315}
32316impl From<DropAccessMethod> for Stmt {
32317    #[inline]
32318    fn from(node: DropAccessMethod) -> Stmt {
32319        Stmt::DropAccessMethod(node)
32320    }
32321}
32322impl From<DropAggregate> for Stmt {
32323    #[inline]
32324    fn from(node: DropAggregate) -> Stmt {
32325        Stmt::DropAggregate(node)
32326    }
32327}
32328impl From<DropCast> for Stmt {
32329    #[inline]
32330    fn from(node: DropCast) -> Stmt {
32331        Stmt::DropCast(node)
32332    }
32333}
32334impl From<DropCollation> for Stmt {
32335    #[inline]
32336    fn from(node: DropCollation) -> Stmt {
32337        Stmt::DropCollation(node)
32338    }
32339}
32340impl From<DropConversion> for Stmt {
32341    #[inline]
32342    fn from(node: DropConversion) -> Stmt {
32343        Stmt::DropConversion(node)
32344    }
32345}
32346impl From<DropDatabase> for Stmt {
32347    #[inline]
32348    fn from(node: DropDatabase) -> Stmt {
32349        Stmt::DropDatabase(node)
32350    }
32351}
32352impl From<DropDomain> for Stmt {
32353    #[inline]
32354    fn from(node: DropDomain) -> Stmt {
32355        Stmt::DropDomain(node)
32356    }
32357}
32358impl From<DropEventTrigger> for Stmt {
32359    #[inline]
32360    fn from(node: DropEventTrigger) -> Stmt {
32361        Stmt::DropEventTrigger(node)
32362    }
32363}
32364impl From<DropExtension> for Stmt {
32365    #[inline]
32366    fn from(node: DropExtension) -> Stmt {
32367        Stmt::DropExtension(node)
32368    }
32369}
32370impl From<DropForeignDataWrapper> for Stmt {
32371    #[inline]
32372    fn from(node: DropForeignDataWrapper) -> Stmt {
32373        Stmt::DropForeignDataWrapper(node)
32374    }
32375}
32376impl From<DropForeignTable> for Stmt {
32377    #[inline]
32378    fn from(node: DropForeignTable) -> Stmt {
32379        Stmt::DropForeignTable(node)
32380    }
32381}
32382impl From<DropFunction> for Stmt {
32383    #[inline]
32384    fn from(node: DropFunction) -> Stmt {
32385        Stmt::DropFunction(node)
32386    }
32387}
32388impl From<DropGroup> for Stmt {
32389    #[inline]
32390    fn from(node: DropGroup) -> Stmt {
32391        Stmt::DropGroup(node)
32392    }
32393}
32394impl From<DropIndex> for Stmt {
32395    #[inline]
32396    fn from(node: DropIndex) -> Stmt {
32397        Stmt::DropIndex(node)
32398    }
32399}
32400impl From<DropLanguage> for Stmt {
32401    #[inline]
32402    fn from(node: DropLanguage) -> Stmt {
32403        Stmt::DropLanguage(node)
32404    }
32405}
32406impl From<DropMaterializedView> for Stmt {
32407    #[inline]
32408    fn from(node: DropMaterializedView) -> Stmt {
32409        Stmt::DropMaterializedView(node)
32410    }
32411}
32412impl From<DropOperator> for Stmt {
32413    #[inline]
32414    fn from(node: DropOperator) -> Stmt {
32415        Stmt::DropOperator(node)
32416    }
32417}
32418impl From<DropOperatorClass> for Stmt {
32419    #[inline]
32420    fn from(node: DropOperatorClass) -> Stmt {
32421        Stmt::DropOperatorClass(node)
32422    }
32423}
32424impl From<DropOperatorFamily> for Stmt {
32425    #[inline]
32426    fn from(node: DropOperatorFamily) -> Stmt {
32427        Stmt::DropOperatorFamily(node)
32428    }
32429}
32430impl From<DropOwned> for Stmt {
32431    #[inline]
32432    fn from(node: DropOwned) -> Stmt {
32433        Stmt::DropOwned(node)
32434    }
32435}
32436impl From<DropPolicy> for Stmt {
32437    #[inline]
32438    fn from(node: DropPolicy) -> Stmt {
32439        Stmt::DropPolicy(node)
32440    }
32441}
32442impl From<DropProcedure> for Stmt {
32443    #[inline]
32444    fn from(node: DropProcedure) -> Stmt {
32445        Stmt::DropProcedure(node)
32446    }
32447}
32448impl From<DropPublication> for Stmt {
32449    #[inline]
32450    fn from(node: DropPublication) -> Stmt {
32451        Stmt::DropPublication(node)
32452    }
32453}
32454impl From<DropRole> for Stmt {
32455    #[inline]
32456    fn from(node: DropRole) -> Stmt {
32457        Stmt::DropRole(node)
32458    }
32459}
32460impl From<DropRoutine> for Stmt {
32461    #[inline]
32462    fn from(node: DropRoutine) -> Stmt {
32463        Stmt::DropRoutine(node)
32464    }
32465}
32466impl From<DropRule> for Stmt {
32467    #[inline]
32468    fn from(node: DropRule) -> Stmt {
32469        Stmt::DropRule(node)
32470    }
32471}
32472impl From<DropSchema> for Stmt {
32473    #[inline]
32474    fn from(node: DropSchema) -> Stmt {
32475        Stmt::DropSchema(node)
32476    }
32477}
32478impl From<DropSequence> for Stmt {
32479    #[inline]
32480    fn from(node: DropSequence) -> Stmt {
32481        Stmt::DropSequence(node)
32482    }
32483}
32484impl From<DropServer> for Stmt {
32485    #[inline]
32486    fn from(node: DropServer) -> Stmt {
32487        Stmt::DropServer(node)
32488    }
32489}
32490impl From<DropStatistics> for Stmt {
32491    #[inline]
32492    fn from(node: DropStatistics) -> Stmt {
32493        Stmt::DropStatistics(node)
32494    }
32495}
32496impl From<DropSubscription> for Stmt {
32497    #[inline]
32498    fn from(node: DropSubscription) -> Stmt {
32499        Stmt::DropSubscription(node)
32500    }
32501}
32502impl From<DropTable> for Stmt {
32503    #[inline]
32504    fn from(node: DropTable) -> Stmt {
32505        Stmt::DropTable(node)
32506    }
32507}
32508impl From<DropTablespace> for Stmt {
32509    #[inline]
32510    fn from(node: DropTablespace) -> Stmt {
32511        Stmt::DropTablespace(node)
32512    }
32513}
32514impl From<DropTextSearchConfig> for Stmt {
32515    #[inline]
32516    fn from(node: DropTextSearchConfig) -> Stmt {
32517        Stmt::DropTextSearchConfig(node)
32518    }
32519}
32520impl From<DropTextSearchDict> for Stmt {
32521    #[inline]
32522    fn from(node: DropTextSearchDict) -> Stmt {
32523        Stmt::DropTextSearchDict(node)
32524    }
32525}
32526impl From<DropTextSearchParser> for Stmt {
32527    #[inline]
32528    fn from(node: DropTextSearchParser) -> Stmt {
32529        Stmt::DropTextSearchParser(node)
32530    }
32531}
32532impl From<DropTextSearchTemplate> for Stmt {
32533    #[inline]
32534    fn from(node: DropTextSearchTemplate) -> Stmt {
32535        Stmt::DropTextSearchTemplate(node)
32536    }
32537}
32538impl From<DropTransform> for Stmt {
32539    #[inline]
32540    fn from(node: DropTransform) -> Stmt {
32541        Stmt::DropTransform(node)
32542    }
32543}
32544impl From<DropTrigger> for Stmt {
32545    #[inline]
32546    fn from(node: DropTrigger) -> Stmt {
32547        Stmt::DropTrigger(node)
32548    }
32549}
32550impl From<DropType> for Stmt {
32551    #[inline]
32552    fn from(node: DropType) -> Stmt {
32553        Stmt::DropType(node)
32554    }
32555}
32556impl From<DropUser> for Stmt {
32557    #[inline]
32558    fn from(node: DropUser) -> Stmt {
32559        Stmt::DropUser(node)
32560    }
32561}
32562impl From<DropUserMapping> for Stmt {
32563    #[inline]
32564    fn from(node: DropUserMapping) -> Stmt {
32565        Stmt::DropUserMapping(node)
32566    }
32567}
32568impl From<DropView> for Stmt {
32569    #[inline]
32570    fn from(node: DropView) -> Stmt {
32571        Stmt::DropView(node)
32572    }
32573}
32574impl From<Execute> for Stmt {
32575    #[inline]
32576    fn from(node: Execute) -> Stmt {
32577        Stmt::Execute(node)
32578    }
32579}
32580impl From<Explain> for Stmt {
32581    #[inline]
32582    fn from(node: Explain) -> Stmt {
32583        Stmt::Explain(node)
32584    }
32585}
32586impl From<Fetch> for Stmt {
32587    #[inline]
32588    fn from(node: Fetch) -> Stmt {
32589        Stmt::Fetch(node)
32590    }
32591}
32592impl From<Grant> for Stmt {
32593    #[inline]
32594    fn from(node: Grant) -> Stmt {
32595        Stmt::Grant(node)
32596    }
32597}
32598impl From<ImportForeignSchema> for Stmt {
32599    #[inline]
32600    fn from(node: ImportForeignSchema) -> Stmt {
32601        Stmt::ImportForeignSchema(node)
32602    }
32603}
32604impl From<Insert> for Stmt {
32605    #[inline]
32606    fn from(node: Insert) -> Stmt {
32607        Stmt::Insert(node)
32608    }
32609}
32610impl From<Listen> for Stmt {
32611    #[inline]
32612    fn from(node: Listen) -> Stmt {
32613        Stmt::Listen(node)
32614    }
32615}
32616impl From<Load> for Stmt {
32617    #[inline]
32618    fn from(node: Load) -> Stmt {
32619        Stmt::Load(node)
32620    }
32621}
32622impl From<Lock> for Stmt {
32623    #[inline]
32624    fn from(node: Lock) -> Stmt {
32625        Stmt::Lock(node)
32626    }
32627}
32628impl From<Merge> for Stmt {
32629    #[inline]
32630    fn from(node: Merge) -> Stmt {
32631        Stmt::Merge(node)
32632    }
32633}
32634impl From<Move> for Stmt {
32635    #[inline]
32636    fn from(node: Move) -> Stmt {
32637        Stmt::Move(node)
32638    }
32639}
32640impl From<Notify> for Stmt {
32641    #[inline]
32642    fn from(node: Notify) -> Stmt {
32643        Stmt::Notify(node)
32644    }
32645}
32646impl From<ParenSelect> for Stmt {
32647    #[inline]
32648    fn from(node: ParenSelect) -> Stmt {
32649        Stmt::ParenSelect(node)
32650    }
32651}
32652impl From<Prepare> for Stmt {
32653    #[inline]
32654    fn from(node: Prepare) -> Stmt {
32655        Stmt::Prepare(node)
32656    }
32657}
32658impl From<PrepareTransaction> for Stmt {
32659    #[inline]
32660    fn from(node: PrepareTransaction) -> Stmt {
32661        Stmt::PrepareTransaction(node)
32662    }
32663}
32664impl From<Reassign> for Stmt {
32665    #[inline]
32666    fn from(node: Reassign) -> Stmt {
32667        Stmt::Reassign(node)
32668    }
32669}
32670impl From<Refresh> for Stmt {
32671    #[inline]
32672    fn from(node: Refresh) -> Stmt {
32673        Stmt::Refresh(node)
32674    }
32675}
32676impl From<Reindex> for Stmt {
32677    #[inline]
32678    fn from(node: Reindex) -> Stmt {
32679        Stmt::Reindex(node)
32680    }
32681}
32682impl From<ReleaseSavepoint> for Stmt {
32683    #[inline]
32684    fn from(node: ReleaseSavepoint) -> Stmt {
32685        Stmt::ReleaseSavepoint(node)
32686    }
32687}
32688impl From<Reset> for Stmt {
32689    #[inline]
32690    fn from(node: Reset) -> Stmt {
32691        Stmt::Reset(node)
32692    }
32693}
32694impl From<ResetSessionAuth> for Stmt {
32695    #[inline]
32696    fn from(node: ResetSessionAuth) -> Stmt {
32697        Stmt::ResetSessionAuth(node)
32698    }
32699}
32700impl From<Revoke> for Stmt {
32701    #[inline]
32702    fn from(node: Revoke) -> Stmt {
32703        Stmt::Revoke(node)
32704    }
32705}
32706impl From<Rollback> for Stmt {
32707    #[inline]
32708    fn from(node: Rollback) -> Stmt {
32709        Stmt::Rollback(node)
32710    }
32711}
32712impl From<Savepoint> for Stmt {
32713    #[inline]
32714    fn from(node: Savepoint) -> Stmt {
32715        Stmt::Savepoint(node)
32716    }
32717}
32718impl From<SecurityLabel> for Stmt {
32719    #[inline]
32720    fn from(node: SecurityLabel) -> Stmt {
32721        Stmt::SecurityLabel(node)
32722    }
32723}
32724impl From<Select> for Stmt {
32725    #[inline]
32726    fn from(node: Select) -> Stmt {
32727        Stmt::Select(node)
32728    }
32729}
32730impl From<SelectInto> for Stmt {
32731    #[inline]
32732    fn from(node: SelectInto) -> Stmt {
32733        Stmt::SelectInto(node)
32734    }
32735}
32736impl From<Set> for Stmt {
32737    #[inline]
32738    fn from(node: Set) -> Stmt {
32739        Stmt::Set(node)
32740    }
32741}
32742impl From<SetConstraints> for Stmt {
32743    #[inline]
32744    fn from(node: SetConstraints) -> Stmt {
32745        Stmt::SetConstraints(node)
32746    }
32747}
32748impl From<SetRole> for Stmt {
32749    #[inline]
32750    fn from(node: SetRole) -> Stmt {
32751        Stmt::SetRole(node)
32752    }
32753}
32754impl From<SetSessionAuth> for Stmt {
32755    #[inline]
32756    fn from(node: SetSessionAuth) -> Stmt {
32757        Stmt::SetSessionAuth(node)
32758    }
32759}
32760impl From<SetTransaction> for Stmt {
32761    #[inline]
32762    fn from(node: SetTransaction) -> Stmt {
32763        Stmt::SetTransaction(node)
32764    }
32765}
32766impl From<Show> for Stmt {
32767    #[inline]
32768    fn from(node: Show) -> Stmt {
32769        Stmt::Show(node)
32770    }
32771}
32772impl From<Table> for Stmt {
32773    #[inline]
32774    fn from(node: Table) -> Stmt {
32775        Stmt::Table(node)
32776    }
32777}
32778impl From<Truncate> for Stmt {
32779    #[inline]
32780    fn from(node: Truncate) -> Stmt {
32781        Stmt::Truncate(node)
32782    }
32783}
32784impl From<Unlisten> for Stmt {
32785    #[inline]
32786    fn from(node: Unlisten) -> Stmt {
32787        Stmt::Unlisten(node)
32788    }
32789}
32790impl From<Update> for Stmt {
32791    #[inline]
32792    fn from(node: Update) -> Stmt {
32793        Stmt::Update(node)
32794    }
32795}
32796impl From<Vacuum> for Stmt {
32797    #[inline]
32798    fn from(node: Vacuum) -> Stmt {
32799        Stmt::Vacuum(node)
32800    }
32801}
32802impl From<Values> for Stmt {
32803    #[inline]
32804    fn from(node: Values) -> Stmt {
32805        Stmt::Values(node)
32806    }
32807}
32808impl AstNode for TableArg {
32809    #[inline]
32810    fn can_cast(kind: SyntaxKind) -> bool {
32811        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
32812    }
32813    #[inline]
32814    fn cast(syntax: SyntaxNode) -> Option<Self> {
32815        let res = match syntax.kind() {
32816            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
32817            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
32818            _ => {
32819                if let Some(result) = TableConstraint::cast(syntax) {
32820                    return Some(TableArg::TableConstraint(result));
32821                }
32822                return None;
32823            }
32824        };
32825        Some(res)
32826    }
32827    #[inline]
32828    fn syntax(&self) -> &SyntaxNode {
32829        match self {
32830            TableArg::Column(it) => &it.syntax,
32831            TableArg::LikeClause(it) => &it.syntax,
32832            TableArg::TableConstraint(it) => it.syntax(),
32833        }
32834    }
32835}
32836impl From<Column> for TableArg {
32837    #[inline]
32838    fn from(node: Column) -> TableArg {
32839        TableArg::Column(node)
32840    }
32841}
32842impl From<LikeClause> for TableArg {
32843    #[inline]
32844    fn from(node: LikeClause) -> TableArg {
32845        TableArg::LikeClause(node)
32846    }
32847}
32848impl AstNode for TableConstraint {
32849    #[inline]
32850    fn can_cast(kind: SyntaxKind) -> bool {
32851        matches!(
32852            kind,
32853            SyntaxKind::CHECK_CONSTRAINT
32854                | SyntaxKind::EXCLUDE_CONSTRAINT
32855                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32856                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32857                | SyntaxKind::UNIQUE_CONSTRAINT
32858        )
32859    }
32860    #[inline]
32861    fn cast(syntax: SyntaxNode) -> Option<Self> {
32862        let res = match syntax.kind() {
32863            SyntaxKind::CHECK_CONSTRAINT => {
32864                TableConstraint::CheckConstraint(CheckConstraint { syntax })
32865            }
32866            SyntaxKind::EXCLUDE_CONSTRAINT => {
32867                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32868            }
32869            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32870                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32871            }
32872            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32873                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32874            }
32875            SyntaxKind::UNIQUE_CONSTRAINT => {
32876                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
32877            }
32878            _ => {
32879                return None;
32880            }
32881        };
32882        Some(res)
32883    }
32884    #[inline]
32885    fn syntax(&self) -> &SyntaxNode {
32886        match self {
32887            TableConstraint::CheckConstraint(it) => &it.syntax,
32888            TableConstraint::ExcludeConstraint(it) => &it.syntax,
32889            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
32890            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32891            TableConstraint::UniqueConstraint(it) => &it.syntax,
32892        }
32893    }
32894}
32895impl From<CheckConstraint> for TableConstraint {
32896    #[inline]
32897    fn from(node: CheckConstraint) -> TableConstraint {
32898        TableConstraint::CheckConstraint(node)
32899    }
32900}
32901impl From<ExcludeConstraint> for TableConstraint {
32902    #[inline]
32903    fn from(node: ExcludeConstraint) -> TableConstraint {
32904        TableConstraint::ExcludeConstraint(node)
32905    }
32906}
32907impl From<ForeignKeyConstraint> for TableConstraint {
32908    #[inline]
32909    fn from(node: ForeignKeyConstraint) -> TableConstraint {
32910        TableConstraint::ForeignKeyConstraint(node)
32911    }
32912}
32913impl From<PrimaryKeyConstraint> for TableConstraint {
32914    #[inline]
32915    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
32916        TableConstraint::PrimaryKeyConstraint(node)
32917    }
32918}
32919impl From<UniqueConstraint> for TableConstraint {
32920    #[inline]
32921    fn from(node: UniqueConstraint) -> TableConstraint {
32922        TableConstraint::UniqueConstraint(node)
32923    }
32924}
32925impl AstNode for Timezone {
32926    #[inline]
32927    fn can_cast(kind: SyntaxKind) -> bool {
32928        matches!(
32929            kind,
32930            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
32931        )
32932    }
32933    #[inline]
32934    fn cast(syntax: SyntaxNode) -> Option<Self> {
32935        let res = match syntax.kind() {
32936            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
32937            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
32938            _ => {
32939                return None;
32940            }
32941        };
32942        Some(res)
32943    }
32944    #[inline]
32945    fn syntax(&self) -> &SyntaxNode {
32946        match self {
32947            Timezone::WithTimezone(it) => &it.syntax,
32948            Timezone::WithoutTimezone(it) => &it.syntax,
32949        }
32950    }
32951}
32952impl From<WithTimezone> for Timezone {
32953    #[inline]
32954    fn from(node: WithTimezone) -> Timezone {
32955        Timezone::WithTimezone(node)
32956    }
32957}
32958impl From<WithoutTimezone> for Timezone {
32959    #[inline]
32960    fn from(node: WithoutTimezone) -> Timezone {
32961        Timezone::WithoutTimezone(node)
32962    }
32963}
32964impl AstNode for TransactionMode {
32965    #[inline]
32966    fn can_cast(kind: SyntaxKind) -> bool {
32967        matches!(
32968            kind,
32969            SyntaxKind::DEFERRABLE
32970                | SyntaxKind::NOT_DEFERRABLE
32971                | SyntaxKind::READ_COMMITTED
32972                | SyntaxKind::READ_ONLY
32973                | SyntaxKind::READ_UNCOMMITTED
32974                | SyntaxKind::READ_WRITE
32975                | SyntaxKind::REPEATABLE_READ
32976                | SyntaxKind::SERIALIZABLE
32977        )
32978    }
32979    #[inline]
32980    fn cast(syntax: SyntaxNode) -> Option<Self> {
32981        let res = match syntax.kind() {
32982            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
32983            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
32984            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
32985            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
32986            SyntaxKind::READ_UNCOMMITTED => {
32987                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
32988            }
32989            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
32990            SyntaxKind::REPEATABLE_READ => {
32991                TransactionMode::RepeatableRead(RepeatableRead { syntax })
32992            }
32993            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
32994            _ => {
32995                return None;
32996            }
32997        };
32998        Some(res)
32999    }
33000    #[inline]
33001    fn syntax(&self) -> &SyntaxNode {
33002        match self {
33003            TransactionMode::Deferrable(it) => &it.syntax,
33004            TransactionMode::NotDeferrable(it) => &it.syntax,
33005            TransactionMode::ReadCommitted(it) => &it.syntax,
33006            TransactionMode::ReadOnly(it) => &it.syntax,
33007            TransactionMode::ReadUncommitted(it) => &it.syntax,
33008            TransactionMode::ReadWrite(it) => &it.syntax,
33009            TransactionMode::RepeatableRead(it) => &it.syntax,
33010            TransactionMode::Serializable(it) => &it.syntax,
33011        }
33012    }
33013}
33014impl From<Deferrable> for TransactionMode {
33015    #[inline]
33016    fn from(node: Deferrable) -> TransactionMode {
33017        TransactionMode::Deferrable(node)
33018    }
33019}
33020impl From<NotDeferrable> for TransactionMode {
33021    #[inline]
33022    fn from(node: NotDeferrable) -> TransactionMode {
33023        TransactionMode::NotDeferrable(node)
33024    }
33025}
33026impl From<ReadCommitted> for TransactionMode {
33027    #[inline]
33028    fn from(node: ReadCommitted) -> TransactionMode {
33029        TransactionMode::ReadCommitted(node)
33030    }
33031}
33032impl From<ReadOnly> for TransactionMode {
33033    #[inline]
33034    fn from(node: ReadOnly) -> TransactionMode {
33035        TransactionMode::ReadOnly(node)
33036    }
33037}
33038impl From<ReadUncommitted> for TransactionMode {
33039    #[inline]
33040    fn from(node: ReadUncommitted) -> TransactionMode {
33041        TransactionMode::ReadUncommitted(node)
33042    }
33043}
33044impl From<ReadWrite> for TransactionMode {
33045    #[inline]
33046    fn from(node: ReadWrite) -> TransactionMode {
33047        TransactionMode::ReadWrite(node)
33048    }
33049}
33050impl From<RepeatableRead> for TransactionMode {
33051    #[inline]
33052    fn from(node: RepeatableRead) -> TransactionMode {
33053        TransactionMode::RepeatableRead(node)
33054    }
33055}
33056impl From<Serializable> for TransactionMode {
33057    #[inline]
33058    fn from(node: Serializable) -> TransactionMode {
33059        TransactionMode::Serializable(node)
33060    }
33061}
33062impl AstNode for Type {
33063    #[inline]
33064    fn can_cast(kind: SyntaxKind) -> bool {
33065        matches!(
33066            kind,
33067            SyntaxKind::ARRAY_TYPE
33068                | SyntaxKind::BIT_TYPE
33069                | SyntaxKind::CHAR_TYPE
33070                | SyntaxKind::DOUBLE_TYPE
33071                | SyntaxKind::EXPR_TYPE
33072                | SyntaxKind::INTERVAL_TYPE
33073                | SyntaxKind::PATH_TYPE
33074                | SyntaxKind::PERCENT_TYPE
33075                | SyntaxKind::TIME_TYPE
33076        )
33077    }
33078    #[inline]
33079    fn cast(syntax: SyntaxNode) -> Option<Self> {
33080        let res = match syntax.kind() {
33081            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33082            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33083            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33084            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33085            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33086            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33087            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33088            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33089            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33090            _ => {
33091                return None;
33092            }
33093        };
33094        Some(res)
33095    }
33096    #[inline]
33097    fn syntax(&self) -> &SyntaxNode {
33098        match self {
33099            Type::ArrayType(it) => &it.syntax,
33100            Type::BitType(it) => &it.syntax,
33101            Type::CharType(it) => &it.syntax,
33102            Type::DoubleType(it) => &it.syntax,
33103            Type::ExprType(it) => &it.syntax,
33104            Type::IntervalType(it) => &it.syntax,
33105            Type::PathType(it) => &it.syntax,
33106            Type::PercentType(it) => &it.syntax,
33107            Type::TimeType(it) => &it.syntax,
33108        }
33109    }
33110}
33111impl From<ArrayType> for Type {
33112    #[inline]
33113    fn from(node: ArrayType) -> Type {
33114        Type::ArrayType(node)
33115    }
33116}
33117impl From<BitType> for Type {
33118    #[inline]
33119    fn from(node: BitType) -> Type {
33120        Type::BitType(node)
33121    }
33122}
33123impl From<CharType> for Type {
33124    #[inline]
33125    fn from(node: CharType) -> Type {
33126        Type::CharType(node)
33127    }
33128}
33129impl From<DoubleType> for Type {
33130    #[inline]
33131    fn from(node: DoubleType) -> Type {
33132        Type::DoubleType(node)
33133    }
33134}
33135impl From<ExprType> for Type {
33136    #[inline]
33137    fn from(node: ExprType) -> Type {
33138        Type::ExprType(node)
33139    }
33140}
33141impl From<IntervalType> for Type {
33142    #[inline]
33143    fn from(node: IntervalType) -> Type {
33144        Type::IntervalType(node)
33145    }
33146}
33147impl From<PathType> for Type {
33148    #[inline]
33149    fn from(node: PathType) -> Type {
33150        Type::PathType(node)
33151    }
33152}
33153impl From<PercentType> for Type {
33154    #[inline]
33155    fn from(node: PercentType) -> Type {
33156        Type::PercentType(node)
33157    }
33158}
33159impl From<TimeType> for Type {
33160    #[inline]
33161    fn from(node: TimeType) -> Type {
33162        Type::TimeType(node)
33163    }
33164}
33165impl AstNode for WithQuery {
33166    #[inline]
33167    fn can_cast(kind: SyntaxKind) -> bool {
33168        matches!(
33169            kind,
33170            SyntaxKind::COMPOUND_SELECT
33171                | SyntaxKind::DELETE
33172                | SyntaxKind::INSERT
33173                | SyntaxKind::MERGE
33174                | SyntaxKind::PAREN_SELECT
33175                | SyntaxKind::SELECT
33176                | SyntaxKind::TABLE
33177                | SyntaxKind::UPDATE
33178                | SyntaxKind::VALUES
33179        )
33180    }
33181    #[inline]
33182    fn cast(syntax: SyntaxNode) -> Option<Self> {
33183        let res = match syntax.kind() {
33184            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33185            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33186            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33187            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33188            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33189            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33190            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33191            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33192            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33193            _ => {
33194                return None;
33195            }
33196        };
33197        Some(res)
33198    }
33199    #[inline]
33200    fn syntax(&self) -> &SyntaxNode {
33201        match self {
33202            WithQuery::CompoundSelect(it) => &it.syntax,
33203            WithQuery::Delete(it) => &it.syntax,
33204            WithQuery::Insert(it) => &it.syntax,
33205            WithQuery::Merge(it) => &it.syntax,
33206            WithQuery::ParenSelect(it) => &it.syntax,
33207            WithQuery::Select(it) => &it.syntax,
33208            WithQuery::Table(it) => &it.syntax,
33209            WithQuery::Update(it) => &it.syntax,
33210            WithQuery::Values(it) => &it.syntax,
33211        }
33212    }
33213}
33214impl From<CompoundSelect> for WithQuery {
33215    #[inline]
33216    fn from(node: CompoundSelect) -> WithQuery {
33217        WithQuery::CompoundSelect(node)
33218    }
33219}
33220impl From<Delete> for WithQuery {
33221    #[inline]
33222    fn from(node: Delete) -> WithQuery {
33223        WithQuery::Delete(node)
33224    }
33225}
33226impl From<Insert> for WithQuery {
33227    #[inline]
33228    fn from(node: Insert) -> WithQuery {
33229        WithQuery::Insert(node)
33230    }
33231}
33232impl From<Merge> for WithQuery {
33233    #[inline]
33234    fn from(node: Merge) -> WithQuery {
33235        WithQuery::Merge(node)
33236    }
33237}
33238impl From<ParenSelect> for WithQuery {
33239    #[inline]
33240    fn from(node: ParenSelect) -> WithQuery {
33241        WithQuery::ParenSelect(node)
33242    }
33243}
33244impl From<Select> for WithQuery {
33245    #[inline]
33246    fn from(node: Select) -> WithQuery {
33247        WithQuery::Select(node)
33248    }
33249}
33250impl From<Table> for WithQuery {
33251    #[inline]
33252    fn from(node: Table) -> WithQuery {
33253        WithQuery::Table(node)
33254    }
33255}
33256impl From<Update> for WithQuery {
33257    #[inline]
33258    fn from(node: Update) -> WithQuery {
33259        WithQuery::Update(node)
33260    }
33261}
33262impl From<Values> for WithQuery {
33263    #[inline]
33264    fn from(node: Values) -> WithQuery {
33265        WithQuery::Values(node)
33266    }
33267}