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 relation_names(&self) -> AstChildren<RelationName> {
1700        support::children(&self.syntax)
1701    }
1702    #[inline]
1703    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1704        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1705    }
1706    #[inline]
1707    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1708        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1709    }
1710}
1711
1712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1713pub struct AnyFn {
1714    pub(crate) syntax: SyntaxNode,
1715}
1716impl AnyFn {
1717    #[inline]
1718    pub fn expr(&self) -> Option<Expr> {
1719        support::child(&self.syntax)
1720    }
1721    #[inline]
1722    pub fn select_variant(&self) -> Option<SelectVariant> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1727        support::token(&self.syntax, SyntaxKind::L_PAREN)
1728    }
1729    #[inline]
1730    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::R_PAREN)
1732    }
1733    #[inline]
1734    pub fn any_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::ANY_KW)
1736    }
1737}
1738
1739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1740pub struct Arg {
1741    pub(crate) syntax: SyntaxNode,
1742}
1743impl Arg {
1744    #[inline]
1745    pub fn expr(&self) -> Option<Expr> {
1746        support::child(&self.syntax)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct ArgList {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl ArgList {
1755    #[inline]
1756    pub fn args(&self) -> AstChildren<Expr> {
1757        support::children(&self.syntax)
1758    }
1759    #[inline]
1760    pub fn expr(&self) -> Option<Expr> {
1761        support::child(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1765        support::token(&self.syntax, SyntaxKind::L_PAREN)
1766    }
1767    #[inline]
1768    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::R_PAREN)
1770    }
1771    #[inline]
1772    pub fn star_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::STAR)
1774    }
1775    #[inline]
1776    pub fn all_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::ALL_KW)
1778    }
1779    #[inline]
1780    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1782    }
1783    #[inline]
1784    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1785        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1786    }
1787}
1788
1789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1790pub struct ArrayExpr {
1791    pub(crate) syntax: SyntaxNode,
1792}
1793impl ArrayExpr {
1794    #[inline]
1795    pub fn exprs(&self) -> AstChildren<Expr> {
1796        support::children(&self.syntax)
1797    }
1798    #[inline]
1799    pub fn select(&self) -> Option<Select> {
1800        support::child(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1804        support::token(&self.syntax, SyntaxKind::L_PAREN)
1805    }
1806    #[inline]
1807    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::R_PAREN)
1809    }
1810    #[inline]
1811    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::L_BRACK)
1813    }
1814    #[inline]
1815    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::R_BRACK)
1817    }
1818    #[inline]
1819    pub fn array_token(&self) -> Option<SyntaxToken> {
1820        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1821    }
1822}
1823
1824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1825pub struct ArrayType {
1826    pub(crate) syntax: SyntaxNode,
1827}
1828impl ArrayType {
1829    #[inline]
1830    pub fn expr(&self) -> Option<Expr> {
1831        support::child(&self.syntax)
1832    }
1833    #[inline]
1834    pub fn name_ref(&self) -> Option<NameRef> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn ty(&self) -> Option<Type> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1843        support::token(&self.syntax, SyntaxKind::L_BRACK)
1844    }
1845    #[inline]
1846    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::R_BRACK)
1848    }
1849    #[inline]
1850    pub fn array_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1852    }
1853}
1854
1855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1856pub struct AsFuncOption {
1857    pub(crate) syntax: SyntaxNode,
1858}
1859impl AsFuncOption {
1860    #[inline]
1861    pub fn definition(&self) -> Option<Literal> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn link_symbol(&self) -> Option<Literal> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn obj_file(&self) -> Option<Literal> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn comma_token(&self) -> Option<SyntaxToken> {
1874        support::token(&self.syntax, SyntaxKind::COMMA)
1875    }
1876    #[inline]
1877    pub fn as_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::AS_KW)
1879    }
1880}
1881
1882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1883pub struct AsName {
1884    pub(crate) syntax: SyntaxNode,
1885}
1886impl AsName {
1887    #[inline]
1888    pub fn name(&self) -> Option<Name> {
1889        support::child(&self.syntax)
1890    }
1891    #[inline]
1892    pub fn as_token(&self) -> Option<SyntaxToken> {
1893        support::token(&self.syntax, SyntaxKind::AS_KW)
1894    }
1895}
1896
1897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1898pub struct AtTimeZone {
1899    pub(crate) syntax: SyntaxNode,
1900}
1901impl AtTimeZone {
1902    #[inline]
1903    pub fn at_token(&self) -> Option<SyntaxToken> {
1904        support::token(&self.syntax, SyntaxKind::AT_KW)
1905    }
1906    #[inline]
1907    pub fn time_token(&self) -> Option<SyntaxToken> {
1908        support::token(&self.syntax, SyntaxKind::TIME_KW)
1909    }
1910    #[inline]
1911    pub fn zone_token(&self) -> Option<SyntaxToken> {
1912        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1913    }
1914}
1915
1916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1917pub struct AttachPartition {
1918    pub(crate) syntax: SyntaxNode,
1919}
1920impl AttachPartition {
1921    #[inline]
1922    pub fn partition_type(&self) -> Option<PartitionType> {
1923        support::child(&self.syntax)
1924    }
1925    #[inline]
1926    pub fn path(&self) -> Option<Path> {
1927        support::child(&self.syntax)
1928    }
1929    #[inline]
1930    pub fn attach_token(&self) -> Option<SyntaxToken> {
1931        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1932    }
1933    #[inline]
1934    pub fn partition_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1936    }
1937}
1938
1939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1940pub struct AttributeList {
1941    pub(crate) syntax: SyntaxNode,
1942}
1943impl AttributeList {
1944    #[inline]
1945    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1946        support::children(&self.syntax)
1947    }
1948    #[inline]
1949    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1950        support::token(&self.syntax, SyntaxKind::L_PAREN)
1951    }
1952    #[inline]
1953    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1954        support::token(&self.syntax, SyntaxKind::R_PAREN)
1955    }
1956}
1957
1958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1959pub struct AttributeOption {
1960    pub(crate) syntax: SyntaxNode,
1961}
1962impl AttributeOption {
1963    #[inline]
1964    pub fn attribute_value(&self) -> Option<AttributeValue> {
1965        support::child(&self.syntax)
1966    }
1967    #[inline]
1968    pub fn name(&self) -> Option<Name> {
1969        support::child(&self.syntax)
1970    }
1971    #[inline]
1972    pub fn dot_token(&self) -> Option<SyntaxToken> {
1973        support::token(&self.syntax, SyntaxKind::DOT)
1974    }
1975    #[inline]
1976    pub fn eq_token(&self) -> Option<SyntaxToken> {
1977        support::token(&self.syntax, SyntaxKind::EQ)
1978    }
1979}
1980
1981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1982pub struct AttributeValue {
1983    pub(crate) syntax: SyntaxNode,
1984}
1985impl AttributeValue {
1986    #[inline]
1987    pub fn literal(&self) -> Option<Literal> {
1988        support::child(&self.syntax)
1989    }
1990    #[inline]
1991    pub fn op(&self) -> Option<Op> {
1992        support::child(&self.syntax)
1993    }
1994    #[inline]
1995    pub fn ty(&self) -> Option<Type> {
1996        support::child(&self.syntax)
1997    }
1998    #[inline]
1999    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2000        support::token(&self.syntax, SyntaxKind::L_PAREN)
2001    }
2002    #[inline]
2003    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2004        support::token(&self.syntax, SyntaxKind::R_PAREN)
2005    }
2006    #[inline]
2007    pub fn none_token(&self) -> Option<SyntaxToken> {
2008        support::token(&self.syntax, SyntaxKind::NONE_KW)
2009    }
2010    #[inline]
2011    pub fn operator_token(&self) -> Option<SyntaxToken> {
2012        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2013    }
2014}
2015
2016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2017pub struct Begin {
2018    pub(crate) syntax: SyntaxNode,
2019}
2020impl Begin {
2021    #[inline]
2022    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2023        support::child(&self.syntax)
2024    }
2025    #[inline]
2026    pub fn begin_token(&self) -> Option<SyntaxToken> {
2027        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2028    }
2029    #[inline]
2030    pub fn start_token(&self) -> Option<SyntaxToken> {
2031        support::token(&self.syntax, SyntaxKind::START_KW)
2032    }
2033    #[inline]
2034    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2035        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2036    }
2037    #[inline]
2038    pub fn work_token(&self) -> Option<SyntaxToken> {
2039        support::token(&self.syntax, SyntaxKind::WORK_KW)
2040    }
2041}
2042
2043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2044pub struct BeginFuncOption {
2045    pub(crate) syntax: SyntaxNode,
2046}
2047impl BeginFuncOption {
2048    #[inline]
2049    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2050        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2051    }
2052    #[inline]
2053    pub fn begin_token(&self) -> Option<SyntaxToken> {
2054        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2055    }
2056    #[inline]
2057    pub fn end_token(&self) -> Option<SyntaxToken> {
2058        support::token(&self.syntax, SyntaxKind::END_KW)
2059    }
2060}
2061
2062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2063pub struct BetweenExpr {
2064    pub(crate) syntax: SyntaxNode,
2065}
2066impl BetweenExpr {
2067    #[inline]
2068    pub fn and_token(&self) -> Option<SyntaxToken> {
2069        support::token(&self.syntax, SyntaxKind::AND_KW)
2070    }
2071    #[inline]
2072    pub fn between_token(&self) -> Option<SyntaxToken> {
2073        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2074    }
2075}
2076
2077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2078pub struct BinExpr {
2079    pub(crate) syntax: SyntaxNode,
2080}
2081impl BinExpr {
2082    #[inline]
2083    pub fn op(&self) -> Option<Op> {
2084        support::child(&self.syntax)
2085    }
2086}
2087
2088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2089pub struct BitType {
2090    pub(crate) syntax: SyntaxNode,
2091}
2092impl BitType {
2093    #[inline]
2094    pub fn arg_list(&self) -> Option<ArgList> {
2095        support::child(&self.syntax)
2096    }
2097    #[inline]
2098    pub fn bit_token(&self) -> Option<SyntaxToken> {
2099        support::token(&self.syntax, SyntaxKind::BIT_KW)
2100    }
2101    #[inline]
2102    pub fn varying_token(&self) -> Option<SyntaxToken> {
2103        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2104    }
2105}
2106
2107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2108pub struct Call {
2109    pub(crate) syntax: SyntaxNode,
2110}
2111impl Call {
2112    #[inline]
2113    pub fn arg_list(&self) -> Option<ArgList> {
2114        support::child(&self.syntax)
2115    }
2116    #[inline]
2117    pub fn path(&self) -> Option<Path> {
2118        support::child(&self.syntax)
2119    }
2120    #[inline]
2121    pub fn call_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::CALL_KW)
2123    }
2124}
2125
2126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2127pub struct CallExpr {
2128    pub(crate) syntax: SyntaxNode,
2129}
2130impl CallExpr {
2131    #[inline]
2132    pub fn all_fn(&self) -> Option<AllFn> {
2133        support::child(&self.syntax)
2134    }
2135    #[inline]
2136    pub fn any_fn(&self) -> Option<AnyFn> {
2137        support::child(&self.syntax)
2138    }
2139    #[inline]
2140    pub fn arg_list(&self) -> Option<ArgList> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn exists_fn(&self) -> Option<ExistsFn> {
2145        support::child(&self.syntax)
2146    }
2147    #[inline]
2148    pub fn expr(&self) -> Option<Expr> {
2149        support::child(&self.syntax)
2150    }
2151    #[inline]
2152    pub fn extract_fn(&self) -> Option<ExtractFn> {
2153        support::child(&self.syntax)
2154    }
2155    #[inline]
2156    pub fn filter_clause(&self) -> Option<FilterClause> {
2157        support::child(&self.syntax)
2158    }
2159    #[inline]
2160    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2161        support::child(&self.syntax)
2162    }
2163    #[inline]
2164    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2165        support::child(&self.syntax)
2166    }
2167    #[inline]
2168    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2169        support::child(&self.syntax)
2170    }
2171    #[inline]
2172    pub fn json_fn(&self) -> Option<JsonFn> {
2173        support::child(&self.syntax)
2174    }
2175    #[inline]
2176    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2177        support::child(&self.syntax)
2178    }
2179    #[inline]
2180    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2181        support::child(&self.syntax)
2182    }
2183    #[inline]
2184    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2185        support::child(&self.syntax)
2186    }
2187    #[inline]
2188    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2189        support::child(&self.syntax)
2190    }
2191    #[inline]
2192    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2193        support::child(&self.syntax)
2194    }
2195    #[inline]
2196    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2197        support::child(&self.syntax)
2198    }
2199    #[inline]
2200    pub fn over_clause(&self) -> Option<OverClause> {
2201        support::child(&self.syntax)
2202    }
2203    #[inline]
2204    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2205        support::child(&self.syntax)
2206    }
2207    #[inline]
2208    pub fn position_fn(&self) -> Option<PositionFn> {
2209        support::child(&self.syntax)
2210    }
2211    #[inline]
2212    pub fn some_fn(&self) -> Option<SomeFn> {
2213        support::child(&self.syntax)
2214    }
2215    #[inline]
2216    pub fn substring_fn(&self) -> Option<SubstringFn> {
2217        support::child(&self.syntax)
2218    }
2219    #[inline]
2220    pub fn trim_fn(&self) -> Option<TrimFn> {
2221        support::child(&self.syntax)
2222    }
2223    #[inline]
2224    pub fn within_clause(&self) -> Option<WithinClause> {
2225        support::child(&self.syntax)
2226    }
2227    #[inline]
2228    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2229        support::child(&self.syntax)
2230    }
2231    #[inline]
2232    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2233        support::child(&self.syntax)
2234    }
2235    #[inline]
2236    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2237        support::child(&self.syntax)
2238    }
2239    #[inline]
2240    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2241        support::child(&self.syntax)
2242    }
2243    #[inline]
2244    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2245        support::child(&self.syntax)
2246    }
2247    #[inline]
2248    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2249        support::child(&self.syntax)
2250    }
2251    #[inline]
2252    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2253        support::child(&self.syntax)
2254    }
2255}
2256
2257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2258pub struct Cascade {
2259    pub(crate) syntax: SyntaxNode,
2260}
2261impl Cascade {
2262    #[inline]
2263    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2265    }
2266}
2267
2268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2269pub struct CaseExpr {
2270    pub(crate) syntax: SyntaxNode,
2271}
2272impl CaseExpr {
2273    #[inline]
2274    pub fn else_clause(&self) -> Option<ElseClause> {
2275        support::child(&self.syntax)
2276    }
2277    #[inline]
2278    pub fn expr(&self) -> Option<Expr> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn case_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::CASE_KW)
2288    }
2289}
2290
2291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2292pub struct CastExpr {
2293    pub(crate) syntax: SyntaxNode,
2294}
2295impl CastExpr {
2296    #[inline]
2297    pub fn colon_colon(&self) -> Option<ColonColon> {
2298        support::child(&self.syntax)
2299    }
2300    #[inline]
2301    pub fn expr(&self) -> Option<Expr> {
2302        support::child(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn literal(&self) -> Option<Literal> {
2306        support::child(&self.syntax)
2307    }
2308    #[inline]
2309    pub fn ty(&self) -> Option<Type> {
2310        support::child(&self.syntax)
2311    }
2312    #[inline]
2313    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2314        support::token(&self.syntax, SyntaxKind::L_PAREN)
2315    }
2316    #[inline]
2317    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2318        support::token(&self.syntax, SyntaxKind::R_PAREN)
2319    }
2320    #[inline]
2321    pub fn as_token(&self) -> Option<SyntaxToken> {
2322        support::token(&self.syntax, SyntaxKind::AS_KW)
2323    }
2324    #[inline]
2325    pub fn cast_token(&self) -> Option<SyntaxToken> {
2326        support::token(&self.syntax, SyntaxKind::CAST_KW)
2327    }
2328    #[inline]
2329    pub fn treat_token(&self) -> Option<SyntaxToken> {
2330        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2331    }
2332}
2333
2334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2335pub struct CastSig {
2336    pub(crate) syntax: SyntaxNode,
2337}
2338impl CastSig {
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}
2352
2353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2354pub struct CharType {
2355    pub(crate) syntax: SyntaxNode,
2356}
2357impl CharType {
2358    #[inline]
2359    pub fn arg_list(&self) -> Option<ArgList> {
2360        support::child(&self.syntax)
2361    }
2362    #[inline]
2363    pub fn char_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2365    }
2366    #[inline]
2367    pub fn character_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2369    }
2370    #[inline]
2371    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2373    }
2374    #[inline]
2375    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2376        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2377    }
2378    #[inline]
2379    pub fn varying_token(&self) -> Option<SyntaxToken> {
2380        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2381    }
2382}
2383
2384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2385pub struct CheckConstraint {
2386    pub(crate) syntax: SyntaxNode,
2387}
2388impl CheckConstraint {
2389    #[inline]
2390    pub fn expr(&self) -> Option<Expr> {
2391        support::child(&self.syntax)
2392    }
2393    #[inline]
2394    pub fn name(&self) -> Option<Name> {
2395        support::child(&self.syntax)
2396    }
2397    #[inline]
2398    pub fn no_inherit(&self) -> Option<NoInherit> {
2399        support::child(&self.syntax)
2400    }
2401    #[inline]
2402    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2403        support::token(&self.syntax, SyntaxKind::L_PAREN)
2404    }
2405    #[inline]
2406    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2407        support::token(&self.syntax, SyntaxKind::R_PAREN)
2408    }
2409    #[inline]
2410    pub fn check_token(&self) -> Option<SyntaxToken> {
2411        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2412    }
2413    #[inline]
2414    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2415        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2416    }
2417}
2418
2419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2420pub struct Checkpoint {
2421    pub(crate) syntax: SyntaxNode,
2422}
2423impl Checkpoint {
2424    #[inline]
2425    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2426        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2427    }
2428}
2429
2430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2431pub struct Close {
2432    pub(crate) syntax: SyntaxNode,
2433}
2434impl Close {
2435    #[inline]
2436    pub fn name_ref(&self) -> Option<NameRef> {
2437        support::child(&self.syntax)
2438    }
2439    #[inline]
2440    pub fn close_token(&self) -> Option<SyntaxToken> {
2441        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2442    }
2443}
2444
2445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2446pub struct Cluster {
2447    pub(crate) syntax: SyntaxNode,
2448}
2449impl Cluster {
2450    #[inline]
2451    pub fn option_item_list(&self) -> Option<OptionItemList> {
2452        support::child(&self.syntax)
2453    }
2454    #[inline]
2455    pub fn path(&self) -> Option<Path> {
2456        support::child(&self.syntax)
2457    }
2458    #[inline]
2459    pub fn using_method(&self) -> Option<UsingMethod> {
2460        support::child(&self.syntax)
2461    }
2462    #[inline]
2463    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2464        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2465    }
2466    #[inline]
2467    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2468        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2469    }
2470}
2471
2472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2473pub struct ClusterOn {
2474    pub(crate) syntax: SyntaxNode,
2475}
2476impl ClusterOn {
2477    #[inline]
2478    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2479        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2480    }
2481    #[inline]
2482    pub fn on_token(&self) -> Option<SyntaxToken> {
2483        support::token(&self.syntax, SyntaxKind::ON_KW)
2484    }
2485}
2486
2487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2488pub struct Collate {
2489    pub(crate) syntax: SyntaxNode,
2490}
2491impl Collate {
2492    #[inline]
2493    pub fn path(&self) -> Option<Path> {
2494        support::child(&self.syntax)
2495    }
2496    #[inline]
2497    pub fn collate_token(&self) -> Option<SyntaxToken> {
2498        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2499    }
2500}
2501
2502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2503pub struct ColonColon {
2504    pub(crate) syntax: SyntaxNode,
2505}
2506impl ColonColon {
2507    #[inline]
2508    pub fn colon_token(&self) -> Option<SyntaxToken> {
2509        support::token(&self.syntax, SyntaxKind::COLON)
2510    }
2511}
2512
2513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2514pub struct ColonEq {
2515    pub(crate) syntax: SyntaxNode,
2516}
2517impl ColonEq {
2518    #[inline]
2519    pub fn colon_token(&self) -> Option<SyntaxToken> {
2520        support::token(&self.syntax, SyntaxKind::COLON)
2521    }
2522    #[inline]
2523    pub fn eq_token(&self) -> Option<SyntaxToken> {
2524        support::token(&self.syntax, SyntaxKind::EQ)
2525    }
2526}
2527
2528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2529pub struct Column {
2530    pub(crate) syntax: SyntaxNode,
2531}
2532impl Column {
2533    #[inline]
2534    pub fn collate(&self) -> Option<Collate> {
2535        support::child(&self.syntax)
2536    }
2537    #[inline]
2538    pub fn compression_method(&self) -> Option<CompressionMethod> {
2539        support::child(&self.syntax)
2540    }
2541    #[inline]
2542    pub fn constraint(&self) -> Option<ColumnConstraint> {
2543        support::child(&self.syntax)
2544    }
2545    #[inline]
2546    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2547        support::child(&self.syntax)
2548    }
2549    #[inline]
2550    pub fn enforced(&self) -> Option<Enforced> {
2551        support::child(&self.syntax)
2552    }
2553    #[inline]
2554    pub fn index_expr(&self) -> Option<IndexExpr> {
2555        support::child(&self.syntax)
2556    }
2557    #[inline]
2558    pub fn initially_deferred_constraint_option(
2559        &self,
2560    ) -> Option<InitiallyDeferredConstraintOption> {
2561        support::child(&self.syntax)
2562    }
2563    #[inline]
2564    pub fn initially_immediate_constraint_option(
2565        &self,
2566    ) -> Option<InitiallyImmediateConstraintOption> {
2567        support::child(&self.syntax)
2568    }
2569    #[inline]
2570    pub fn name(&self) -> Option<Name> {
2571        support::child(&self.syntax)
2572    }
2573    #[inline]
2574    pub fn name_ref(&self) -> Option<NameRef> {
2575        support::child(&self.syntax)
2576    }
2577    #[inline]
2578    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2579        support::child(&self.syntax)
2580    }
2581    #[inline]
2582    pub fn not_enforced(&self) -> Option<NotEnforced> {
2583        support::child(&self.syntax)
2584    }
2585    #[inline]
2586    pub fn storage(&self) -> Option<Storage> {
2587        support::child(&self.syntax)
2588    }
2589    #[inline]
2590    pub fn ty(&self) -> Option<Type> {
2591        support::child(&self.syntax)
2592    }
2593    #[inline]
2594    pub fn with_options(&self) -> Option<WithOptions> {
2595        support::child(&self.syntax)
2596    }
2597    #[inline]
2598    pub fn period_token(&self) -> Option<SyntaxToken> {
2599        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2600    }
2601}
2602
2603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2604pub struct ColumnList {
2605    pub(crate) syntax: SyntaxNode,
2606}
2607impl ColumnList {
2608    #[inline]
2609    pub fn columns(&self) -> AstChildren<Column> {
2610        support::children(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2614        support::token(&self.syntax, SyntaxKind::L_PAREN)
2615    }
2616    #[inline]
2617    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2618        support::token(&self.syntax, SyntaxKind::R_PAREN)
2619    }
2620}
2621
2622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2623pub struct CommentOn {
2624    pub(crate) syntax: SyntaxNode,
2625}
2626impl CommentOn {
2627    #[inline]
2628    pub fn literal(&self) -> Option<Literal> {
2629        support::child(&self.syntax)
2630    }
2631    #[inline]
2632    pub fn name_ref(&self) -> Option<NameRef> {
2633        support::child(&self.syntax)
2634    }
2635    #[inline]
2636    pub fn path(&self) -> Option<Path> {
2637        support::child(&self.syntax)
2638    }
2639    #[inline]
2640    pub fn comment_token(&self) -> Option<SyntaxToken> {
2641        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2642    }
2643    #[inline]
2644    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2645        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2646    }
2647    #[inline]
2648    pub fn domain_token(&self) -> Option<SyntaxToken> {
2649        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2650    }
2651    #[inline]
2652    pub fn is_token(&self) -> Option<SyntaxToken> {
2653        support::token(&self.syntax, SyntaxKind::IS_KW)
2654    }
2655    #[inline]
2656    pub fn null_token(&self) -> Option<SyntaxToken> {
2657        support::token(&self.syntax, SyntaxKind::NULL_KW)
2658    }
2659    #[inline]
2660    pub fn on_token(&self) -> Option<SyntaxToken> {
2661        support::token(&self.syntax, SyntaxKind::ON_KW)
2662    }
2663    #[inline]
2664    pub fn table_token(&self) -> Option<SyntaxToken> {
2665        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2666    }
2667}
2668
2669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2670pub struct Commit {
2671    pub(crate) syntax: SyntaxNode,
2672}
2673impl Commit {
2674    #[inline]
2675    pub fn literal(&self) -> Option<Literal> {
2676        support::child(&self.syntax)
2677    }
2678    #[inline]
2679    pub fn and_token(&self) -> Option<SyntaxToken> {
2680        support::token(&self.syntax, SyntaxKind::AND_KW)
2681    }
2682    #[inline]
2683    pub fn chain_token(&self) -> Option<SyntaxToken> {
2684        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2685    }
2686    #[inline]
2687    pub fn commit_token(&self) -> Option<SyntaxToken> {
2688        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2689    }
2690    #[inline]
2691    pub fn no_token(&self) -> Option<SyntaxToken> {
2692        support::token(&self.syntax, SyntaxKind::NO_KW)
2693    }
2694    #[inline]
2695    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2696        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2697    }
2698    #[inline]
2699    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2700        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2701    }
2702    #[inline]
2703    pub fn work_token(&self) -> Option<SyntaxToken> {
2704        support::token(&self.syntax, SyntaxKind::WORK_KW)
2705    }
2706}
2707
2708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2709pub struct CompoundSelect {
2710    pub(crate) syntax: SyntaxNode,
2711}
2712impl CompoundSelect {
2713    #[inline]
2714    pub fn except_token(&self) -> Option<SyntaxToken> {
2715        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2716    }
2717    #[inline]
2718    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2720    }
2721    #[inline]
2722    pub fn union_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::UNION_KW)
2724    }
2725}
2726
2727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2728pub struct CompressionMethod {
2729    pub(crate) syntax: SyntaxNode,
2730}
2731impl CompressionMethod {
2732    #[inline]
2733    pub fn compression_token(&self) -> Option<SyntaxToken> {
2734        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2735    }
2736    #[inline]
2737    pub fn default_token(&self) -> Option<SyntaxToken> {
2738        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2739    }
2740    #[inline]
2741    pub fn ident_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::IDENT)
2743    }
2744}
2745
2746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2747pub struct ConflictDoNothing {
2748    pub(crate) syntax: SyntaxNode,
2749}
2750impl ConflictDoNothing {
2751    #[inline]
2752    pub fn do_token(&self) -> Option<SyntaxToken> {
2753        support::token(&self.syntax, SyntaxKind::DO_KW)
2754    }
2755    #[inline]
2756    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2757        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2758    }
2759}
2760
2761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2762pub struct ConflictDoUpdateSet {
2763    pub(crate) syntax: SyntaxNode,
2764}
2765impl ConflictDoUpdateSet {
2766    #[inline]
2767    pub fn set_clause(&self) -> Option<SetClause> {
2768        support::child(&self.syntax)
2769    }
2770    #[inline]
2771    pub fn where_clause(&self) -> Option<WhereClause> {
2772        support::child(&self.syntax)
2773    }
2774    #[inline]
2775    pub fn do_token(&self) -> Option<SyntaxToken> {
2776        support::token(&self.syntax, SyntaxKind::DO_KW)
2777    }
2778    #[inline]
2779    pub fn update_token(&self) -> Option<SyntaxToken> {
2780        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2781    }
2782}
2783
2784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2785pub struct ConflictIndexItem {
2786    pub(crate) syntax: SyntaxNode,
2787}
2788impl ConflictIndexItem {
2789    #[inline]
2790    pub fn collate(&self) -> Option<Collate> {
2791        support::child(&self.syntax)
2792    }
2793    #[inline]
2794    pub fn expr(&self) -> Option<Expr> {
2795        support::child(&self.syntax)
2796    }
2797    #[inline]
2798    pub fn ident_token(&self) -> Option<SyntaxToken> {
2799        support::token(&self.syntax, SyntaxKind::IDENT)
2800    }
2801}
2802
2803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2804pub struct ConflictIndexItemList {
2805    pub(crate) syntax: SyntaxNode,
2806}
2807impl ConflictIndexItemList {
2808    #[inline]
2809    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2810        support::children(&self.syntax)
2811    }
2812    #[inline]
2813    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2814        support::token(&self.syntax, SyntaxKind::L_PAREN)
2815    }
2816    #[inline]
2817    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2818        support::token(&self.syntax, SyntaxKind::R_PAREN)
2819    }
2820}
2821
2822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2823pub struct ConflictOnConstraint {
2824    pub(crate) syntax: SyntaxNode,
2825}
2826impl ConflictOnConstraint {
2827    #[inline]
2828    pub fn name_ref(&self) -> Option<NameRef> {
2829        support::child(&self.syntax)
2830    }
2831    #[inline]
2832    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2833        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2834    }
2835    #[inline]
2836    pub fn on_token(&self) -> Option<SyntaxToken> {
2837        support::token(&self.syntax, SyntaxKind::ON_KW)
2838    }
2839}
2840
2841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2842pub struct ConflictOnIndex {
2843    pub(crate) syntax: SyntaxNode,
2844}
2845impl ConflictOnIndex {
2846    #[inline]
2847    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2848        support::child(&self.syntax)
2849    }
2850    #[inline]
2851    pub fn where_clause(&self) -> Option<WhereClause> {
2852        support::child(&self.syntax)
2853    }
2854}
2855
2856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2857pub struct ConstraintExclusion {
2858    pub(crate) syntax: SyntaxNode,
2859}
2860impl ConstraintExclusion {
2861    #[inline]
2862    pub fn expr(&self) -> Option<Expr> {
2863        support::child(&self.syntax)
2864    }
2865    #[inline]
2866    pub fn op(&self) -> Option<Op> {
2867        support::child(&self.syntax)
2868    }
2869    #[inline]
2870    pub fn with_token(&self) -> Option<SyntaxToken> {
2871        support::token(&self.syntax, SyntaxKind::WITH_KW)
2872    }
2873}
2874
2875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2876pub struct ConstraintExclusionList {
2877    pub(crate) syntax: SyntaxNode,
2878}
2879impl ConstraintExclusionList {
2880    #[inline]
2881    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2882        support::children(&self.syntax)
2883    }
2884    #[inline]
2885    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2886        support::token(&self.syntax, SyntaxKind::L_PAREN)
2887    }
2888    #[inline]
2889    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2890        support::token(&self.syntax, SyntaxKind::R_PAREN)
2891    }
2892}
2893
2894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2895pub struct ConstraintIncludeClause {
2896    pub(crate) syntax: SyntaxNode,
2897}
2898impl ConstraintIncludeClause {
2899    #[inline]
2900    pub fn include_token(&self) -> Option<SyntaxToken> {
2901        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2902    }
2903}
2904
2905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2906pub struct ConstraintIndexMethod {
2907    pub(crate) syntax: SyntaxNode,
2908}
2909impl ConstraintIndexMethod {
2910    #[inline]
2911    pub fn using_token(&self) -> Option<SyntaxToken> {
2912        support::token(&self.syntax, SyntaxKind::USING_KW)
2913    }
2914}
2915
2916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2917pub struct ConstraintIndexTablespace {
2918    pub(crate) syntax: SyntaxNode,
2919}
2920impl ConstraintIndexTablespace {
2921    #[inline]
2922    pub fn name_ref(&self) -> Option<NameRef> {
2923        support::child(&self.syntax)
2924    }
2925    #[inline]
2926    pub fn index_token(&self) -> Option<SyntaxToken> {
2927        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2928    }
2929    #[inline]
2930    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2931        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2932    }
2933    #[inline]
2934    pub fn using_token(&self) -> Option<SyntaxToken> {
2935        support::token(&self.syntax, SyntaxKind::USING_KW)
2936    }
2937}
2938
2939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2940pub struct Copy {
2941    pub(crate) syntax: SyntaxNode,
2942}
2943impl Copy {
2944    #[inline]
2945    pub fn column_list(&self) -> Option<ColumnList> {
2946        support::child(&self.syntax)
2947    }
2948    #[inline]
2949    pub fn literal(&self) -> Option<Literal> {
2950        support::child(&self.syntax)
2951    }
2952    #[inline]
2953    pub fn path(&self) -> Option<Path> {
2954        support::child(&self.syntax)
2955    }
2956    #[inline]
2957    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
2958        support::child(&self.syntax)
2959    }
2960    #[inline]
2961    pub fn where_clause(&self) -> Option<WhereClause> {
2962        support::child(&self.syntax)
2963    }
2964    #[inline]
2965    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2966        support::token(&self.syntax, SyntaxKind::L_PAREN)
2967    }
2968    #[inline]
2969    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2970        support::token(&self.syntax, SyntaxKind::R_PAREN)
2971    }
2972    #[inline]
2973    pub fn binary_token(&self) -> Option<SyntaxToken> {
2974        support::token(&self.syntax, SyntaxKind::BINARY_KW)
2975    }
2976    #[inline]
2977    pub fn copy_token(&self) -> Option<SyntaxToken> {
2978        support::token(&self.syntax, SyntaxKind::COPY_KW)
2979    }
2980    #[inline]
2981    pub fn from_token(&self) -> Option<SyntaxToken> {
2982        support::token(&self.syntax, SyntaxKind::FROM_KW)
2983    }
2984    #[inline]
2985    pub fn program_token(&self) -> Option<SyntaxToken> {
2986        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
2987    }
2988    #[inline]
2989    pub fn stdin_token(&self) -> Option<SyntaxToken> {
2990        support::token(&self.syntax, SyntaxKind::STDIN_KW)
2991    }
2992    #[inline]
2993    pub fn stdout_token(&self) -> Option<SyntaxToken> {
2994        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
2995    }
2996    #[inline]
2997    pub fn to_token(&self) -> Option<SyntaxToken> {
2998        support::token(&self.syntax, SyntaxKind::TO_KW)
2999    }
3000}
3001
3002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3003pub struct CostFuncOption {
3004    pub(crate) syntax: SyntaxNode,
3005}
3006impl CostFuncOption {
3007    #[inline]
3008    pub fn cost_token(&self) -> Option<SyntaxToken> {
3009        support::token(&self.syntax, SyntaxKind::COST_KW)
3010    }
3011}
3012
3013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3014pub struct CreateAccessMethod {
3015    pub(crate) syntax: SyntaxNode,
3016}
3017impl CreateAccessMethod {
3018    #[inline]
3019    pub fn handler_clause(&self) -> Option<HandlerClause> {
3020        support::child(&self.syntax)
3021    }
3022    #[inline]
3023    pub fn name(&self) -> Option<Path> {
3024        support::child(&self.syntax)
3025    }
3026    #[inline]
3027    pub fn access_token(&self) -> Option<SyntaxToken> {
3028        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3029    }
3030    #[inline]
3031    pub fn create_token(&self) -> Option<SyntaxToken> {
3032        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3033    }
3034    #[inline]
3035    pub fn index_token(&self) -> Option<SyntaxToken> {
3036        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3037    }
3038    #[inline]
3039    pub fn method_token(&self) -> Option<SyntaxToken> {
3040        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3041    }
3042    #[inline]
3043    pub fn table_token(&self) -> Option<SyntaxToken> {
3044        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3045    }
3046    #[inline]
3047    pub fn type_token(&self) -> Option<SyntaxToken> {
3048        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3049    }
3050}
3051
3052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3053pub struct CreateAggregate {
3054    pub(crate) syntax: SyntaxNode,
3055}
3056impl CreateAggregate {
3057    #[inline]
3058    pub fn or_replace(&self) -> Option<OrReplace> {
3059        support::child(&self.syntax)
3060    }
3061    #[inline]
3062    pub fn param_list(&self) -> Option<ParamList> {
3063        support::child(&self.syntax)
3064    }
3065    #[inline]
3066    pub fn path(&self) -> Option<Path> {
3067        support::child(&self.syntax)
3068    }
3069    #[inline]
3070    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3071        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3072    }
3073    #[inline]
3074    pub fn create_token(&self) -> Option<SyntaxToken> {
3075        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3076    }
3077}
3078
3079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3080pub struct CreateCast {
3081    pub(crate) syntax: SyntaxNode,
3082}
3083impl CreateCast {
3084    #[inline]
3085    pub fn cast_sig(&self) -> Option<CastSig> {
3086        support::child(&self.syntax)
3087    }
3088    #[inline]
3089    pub fn function_sig(&self) -> Option<FunctionSig> {
3090        support::child(&self.syntax)
3091    }
3092    #[inline]
3093    pub fn as_token(&self) -> Option<SyntaxToken> {
3094        support::token(&self.syntax, SyntaxKind::AS_KW)
3095    }
3096    #[inline]
3097    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3098        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3099    }
3100    #[inline]
3101    pub fn cast_token(&self) -> Option<SyntaxToken> {
3102        support::token(&self.syntax, SyntaxKind::CAST_KW)
3103    }
3104    #[inline]
3105    pub fn create_token(&self) -> Option<SyntaxToken> {
3106        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3107    }
3108    #[inline]
3109    pub fn function_token(&self) -> Option<SyntaxToken> {
3110        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3111    }
3112    #[inline]
3113    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3114        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3115    }
3116    #[inline]
3117    pub fn inout_token(&self) -> Option<SyntaxToken> {
3118        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3119    }
3120    #[inline]
3121    pub fn with_token(&self) -> Option<SyntaxToken> {
3122        support::token(&self.syntax, SyntaxKind::WITH_KW)
3123    }
3124    #[inline]
3125    pub fn without_token(&self) -> Option<SyntaxToken> {
3126        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3127    }
3128}
3129
3130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3131pub struct CreateCollation {
3132    pub(crate) syntax: SyntaxNode,
3133}
3134impl CreateCollation {
3135    #[inline]
3136    pub fn path(&self) -> Option<Path> {
3137        support::child(&self.syntax)
3138    }
3139    #[inline]
3140    pub fn collation_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3142    }
3143    #[inline]
3144    pub fn create_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3146    }
3147}
3148
3149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3150pub struct CreateConversion {
3151    pub(crate) syntax: SyntaxNode,
3152}
3153impl CreateConversion {
3154    #[inline]
3155    pub fn literal(&self) -> Option<Literal> {
3156        support::child(&self.syntax)
3157    }
3158    #[inline]
3159    pub fn path(&self) -> Option<Path> {
3160        support::child(&self.syntax)
3161    }
3162    #[inline]
3163    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3164        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3165    }
3166    #[inline]
3167    pub fn create_token(&self) -> Option<SyntaxToken> {
3168        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3169    }
3170    #[inline]
3171    pub fn default_token(&self) -> Option<SyntaxToken> {
3172        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3173    }
3174    #[inline]
3175    pub fn for_token(&self) -> Option<SyntaxToken> {
3176        support::token(&self.syntax, SyntaxKind::FOR_KW)
3177    }
3178    #[inline]
3179    pub fn from_token(&self) -> Option<SyntaxToken> {
3180        support::token(&self.syntax, SyntaxKind::FROM_KW)
3181    }
3182    #[inline]
3183    pub fn to_token(&self) -> Option<SyntaxToken> {
3184        support::token(&self.syntax, SyntaxKind::TO_KW)
3185    }
3186}
3187
3188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3189pub struct CreateDatabase {
3190    pub(crate) syntax: SyntaxNode,
3191}
3192impl CreateDatabase {
3193    #[inline]
3194    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3195        support::child(&self.syntax)
3196    }
3197    #[inline]
3198    pub fn name(&self) -> Option<Name> {
3199        support::child(&self.syntax)
3200    }
3201    #[inline]
3202    pub fn create_token(&self) -> Option<SyntaxToken> {
3203        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3204    }
3205    #[inline]
3206    pub fn database_token(&self) -> Option<SyntaxToken> {
3207        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3208    }
3209}
3210
3211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3212pub struct CreateDatabaseOption {
3213    pub(crate) syntax: SyntaxNode,
3214}
3215impl CreateDatabaseOption {
3216    #[inline]
3217    pub fn literal(&self) -> Option<Literal> {
3218        support::child(&self.syntax)
3219    }
3220    #[inline]
3221    pub fn eq_token(&self) -> Option<SyntaxToken> {
3222        support::token(&self.syntax, SyntaxKind::EQ)
3223    }
3224    #[inline]
3225    pub fn connection_token(&self) -> Option<SyntaxToken> {
3226        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3227    }
3228    #[inline]
3229    pub fn default_token(&self) -> Option<SyntaxToken> {
3230        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3231    }
3232    #[inline]
3233    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3234        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3235    }
3236    #[inline]
3237    pub fn ident_token(&self) -> Option<SyntaxToken> {
3238        support::token(&self.syntax, SyntaxKind::IDENT)
3239    }
3240    #[inline]
3241    pub fn limit_token(&self) -> Option<SyntaxToken> {
3242        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3243    }
3244    #[inline]
3245    pub fn owner_token(&self) -> Option<SyntaxToken> {
3246        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3247    }
3248    #[inline]
3249    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3250        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3251    }
3252    #[inline]
3253    pub fn template_token(&self) -> Option<SyntaxToken> {
3254        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3255    }
3256}
3257
3258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3259pub struct CreateDatabaseOptionList {
3260    pub(crate) syntax: SyntaxNode,
3261}
3262impl CreateDatabaseOptionList {
3263    #[inline]
3264    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3265        support::children(&self.syntax)
3266    }
3267    #[inline]
3268    pub fn with_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::WITH_KW)
3270    }
3271}
3272
3273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3274pub struct CreateDomain {
3275    pub(crate) syntax: SyntaxNode,
3276}
3277impl CreateDomain {
3278    #[inline]
3279    pub fn collate(&self) -> Option<Collate> {
3280        support::child(&self.syntax)
3281    }
3282    #[inline]
3283    pub fn constraints(&self) -> AstChildren<Constraint> {
3284        support::children(&self.syntax)
3285    }
3286    #[inline]
3287    pub fn path(&self) -> Option<Path> {
3288        support::child(&self.syntax)
3289    }
3290    #[inline]
3291    pub fn ty(&self) -> Option<Type> {
3292        support::child(&self.syntax)
3293    }
3294    #[inline]
3295    pub fn as_token(&self) -> Option<SyntaxToken> {
3296        support::token(&self.syntax, SyntaxKind::AS_KW)
3297    }
3298    #[inline]
3299    pub fn create_token(&self) -> Option<SyntaxToken> {
3300        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3301    }
3302    #[inline]
3303    pub fn domain_token(&self) -> Option<SyntaxToken> {
3304        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3305    }
3306}
3307
3308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3309pub struct CreateEventTrigger {
3310    pub(crate) syntax: SyntaxNode,
3311}
3312impl CreateEventTrigger {
3313    #[inline]
3314    pub fn call_expr(&self) -> Option<CallExpr> {
3315        support::child(&self.syntax)
3316    }
3317    #[inline]
3318    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3319        support::child(&self.syntax)
3320    }
3321    #[inline]
3322    pub fn name(&self) -> Option<Name> {
3323        support::child(&self.syntax)
3324    }
3325    #[inline]
3326    pub fn name_ref(&self) -> Option<NameRef> {
3327        support::child(&self.syntax)
3328    }
3329    #[inline]
3330    pub fn create_token(&self) -> Option<SyntaxToken> {
3331        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3332    }
3333    #[inline]
3334    pub fn event_token(&self) -> Option<SyntaxToken> {
3335        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3336    }
3337    #[inline]
3338    pub fn execute_token(&self) -> Option<SyntaxToken> {
3339        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3340    }
3341    #[inline]
3342    pub fn function_token(&self) -> Option<SyntaxToken> {
3343        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3344    }
3345    #[inline]
3346    pub fn on_token(&self) -> Option<SyntaxToken> {
3347        support::token(&self.syntax, SyntaxKind::ON_KW)
3348    }
3349    #[inline]
3350    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3351        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3352    }
3353    #[inline]
3354    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3355        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3356    }
3357}
3358
3359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3360pub struct CreateExtension {
3361    pub(crate) syntax: SyntaxNode,
3362}
3363impl CreateExtension {
3364    #[inline]
3365    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3366        support::child(&self.syntax)
3367    }
3368    #[inline]
3369    pub fn name(&self) -> Option<Name> {
3370        support::child(&self.syntax)
3371    }
3372    #[inline]
3373    pub fn create_token(&self) -> Option<SyntaxToken> {
3374        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3375    }
3376    #[inline]
3377    pub fn extension_token(&self) -> Option<SyntaxToken> {
3378        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3379    }
3380}
3381
3382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3383pub struct CreateForeignDataWrapper {
3384    pub(crate) syntax: SyntaxNode,
3385}
3386impl CreateForeignDataWrapper {
3387    #[inline]
3388    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3389        support::child(&self.syntax)
3390    }
3391    #[inline]
3392    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3393        support::child(&self.syntax)
3394    }
3395    #[inline]
3396    pub fn name(&self) -> Option<Name> {
3397        support::child(&self.syntax)
3398    }
3399    #[inline]
3400    pub fn create_token(&self) -> Option<SyntaxToken> {
3401        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3402    }
3403    #[inline]
3404    pub fn data_token(&self) -> Option<SyntaxToken> {
3405        support::token(&self.syntax, SyntaxKind::DATA_KW)
3406    }
3407    #[inline]
3408    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3409        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3410    }
3411    #[inline]
3412    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3413        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3414    }
3415}
3416
3417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3418pub struct CreateForeignTable {
3419    pub(crate) syntax: SyntaxNode,
3420}
3421impl CreateForeignTable {
3422    #[inline]
3423    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3424        support::child(&self.syntax)
3425    }
3426    #[inline]
3427    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3428        support::child(&self.syntax)
3429    }
3430    #[inline]
3431    pub fn inherits(&self) -> Option<Inherits> {
3432        support::child(&self.syntax)
3433    }
3434    #[inline]
3435    pub fn name_ref(&self) -> Option<NameRef> {
3436        support::child(&self.syntax)
3437    }
3438    #[inline]
3439    pub fn partition_of(&self) -> Option<PartitionOf> {
3440        support::child(&self.syntax)
3441    }
3442    #[inline]
3443    pub fn partition_type(&self) -> Option<PartitionType> {
3444        support::child(&self.syntax)
3445    }
3446    #[inline]
3447    pub fn path(&self) -> Option<Path> {
3448        support::child(&self.syntax)
3449    }
3450    #[inline]
3451    pub fn table_arg_list(&self) -> Option<TableArgList> {
3452        support::child(&self.syntax)
3453    }
3454    #[inline]
3455    pub fn create_token(&self) -> Option<SyntaxToken> {
3456        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3457    }
3458    #[inline]
3459    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3460        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3461    }
3462    #[inline]
3463    pub fn server_token(&self) -> Option<SyntaxToken> {
3464        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3465    }
3466    #[inline]
3467    pub fn table_token(&self) -> Option<SyntaxToken> {
3468        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3469    }
3470}
3471
3472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3473pub struct CreateFunction {
3474    pub(crate) syntax: SyntaxNode,
3475}
3476impl CreateFunction {
3477    #[inline]
3478    pub fn option_list(&self) -> Option<FuncOptionList> {
3479        support::child(&self.syntax)
3480    }
3481    #[inline]
3482    pub fn or_replace(&self) -> Option<OrReplace> {
3483        support::child(&self.syntax)
3484    }
3485    #[inline]
3486    pub fn param_list(&self) -> Option<ParamList> {
3487        support::child(&self.syntax)
3488    }
3489    #[inline]
3490    pub fn path(&self) -> Option<Path> {
3491        support::child(&self.syntax)
3492    }
3493    #[inline]
3494    pub fn ret_type(&self) -> Option<RetType> {
3495        support::child(&self.syntax)
3496    }
3497    #[inline]
3498    pub fn create_token(&self) -> Option<SyntaxToken> {
3499        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3500    }
3501    #[inline]
3502    pub fn function_token(&self) -> Option<SyntaxToken> {
3503        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3504    }
3505}
3506
3507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3508pub struct CreateGroup {
3509    pub(crate) syntax: SyntaxNode,
3510}
3511impl CreateGroup {
3512    #[inline]
3513    pub fn name(&self) -> Option<Name> {
3514        support::child(&self.syntax)
3515    }
3516    #[inline]
3517    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3518        support::child(&self.syntax)
3519    }
3520    #[inline]
3521    pub fn create_token(&self) -> Option<SyntaxToken> {
3522        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3523    }
3524    #[inline]
3525    pub fn group_token(&self) -> Option<SyntaxToken> {
3526        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3527    }
3528}
3529
3530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3531pub struct CreateIndex {
3532    pub(crate) syntax: SyntaxNode,
3533}
3534impl CreateIndex {
3535    #[inline]
3536    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3537        support::child(&self.syntax)
3538    }
3539    #[inline]
3540    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3541        support::child(&self.syntax)
3542    }
3543    #[inline]
3544    pub fn name(&self) -> Option<Name> {
3545        support::child(&self.syntax)
3546    }
3547    #[inline]
3548    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3549        support::child(&self.syntax)
3550    }
3551    #[inline]
3552    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3553        support::child(&self.syntax)
3554    }
3555    #[inline]
3556    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3557        support::child(&self.syntax)
3558    }
3559    #[inline]
3560    pub fn relation_name(&self) -> Option<RelationName> {
3561        support::child(&self.syntax)
3562    }
3563    #[inline]
3564    pub fn tablespace(&self) -> Option<Tablespace> {
3565        support::child(&self.syntax)
3566    }
3567    #[inline]
3568    pub fn using_method(&self) -> Option<UsingMethod> {
3569        support::child(&self.syntax)
3570    }
3571    #[inline]
3572    pub fn where_clause(&self) -> Option<WhereClause> {
3573        support::child(&self.syntax)
3574    }
3575    #[inline]
3576    pub fn with_params(&self) -> Option<WithParams> {
3577        support::child(&self.syntax)
3578    }
3579    #[inline]
3580    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3581        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3582    }
3583    #[inline]
3584    pub fn create_token(&self) -> Option<SyntaxToken> {
3585        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3586    }
3587    #[inline]
3588    pub fn index_token(&self) -> Option<SyntaxToken> {
3589        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3590    }
3591    #[inline]
3592    pub fn on_token(&self) -> Option<SyntaxToken> {
3593        support::token(&self.syntax, SyntaxKind::ON_KW)
3594    }
3595    #[inline]
3596    pub fn unique_token(&self) -> Option<SyntaxToken> {
3597        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3598    }
3599}
3600
3601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3602pub struct CreateLanguage {
3603    pub(crate) syntax: SyntaxNode,
3604}
3605impl CreateLanguage {
3606    #[inline]
3607    pub fn name(&self) -> Option<Name> {
3608        support::child(&self.syntax)
3609    }
3610    #[inline]
3611    pub fn or_replace(&self) -> Option<OrReplace> {
3612        support::child(&self.syntax)
3613    }
3614    #[inline]
3615    pub fn path(&self) -> Option<Path> {
3616        support::child(&self.syntax)
3617    }
3618    #[inline]
3619    pub fn create_token(&self) -> Option<SyntaxToken> {
3620        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3621    }
3622    #[inline]
3623    pub fn handler_token(&self) -> Option<SyntaxToken> {
3624        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3625    }
3626    #[inline]
3627    pub fn inline_token(&self) -> Option<SyntaxToken> {
3628        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3629    }
3630    #[inline]
3631    pub fn language_token(&self) -> Option<SyntaxToken> {
3632        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3633    }
3634    #[inline]
3635    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3636        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3637    }
3638    #[inline]
3639    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3640        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3641    }
3642    #[inline]
3643    pub fn validator_token(&self) -> Option<SyntaxToken> {
3644        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3645    }
3646}
3647
3648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3649pub struct CreateMaterializedView {
3650    pub(crate) syntax: SyntaxNode,
3651}
3652impl CreateMaterializedView {
3653    #[inline]
3654    pub fn column_list(&self) -> Option<ColumnList> {
3655        support::child(&self.syntax)
3656    }
3657    #[inline]
3658    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3659        support::child(&self.syntax)
3660    }
3661    #[inline]
3662    pub fn path(&self) -> Option<Path> {
3663        support::child(&self.syntax)
3664    }
3665    #[inline]
3666    pub fn query(&self) -> Option<SelectVariant> {
3667        support::child(&self.syntax)
3668    }
3669    #[inline]
3670    pub fn tablespace(&self) -> Option<Tablespace> {
3671        support::child(&self.syntax)
3672    }
3673    #[inline]
3674    pub fn using_method(&self) -> Option<UsingMethod> {
3675        support::child(&self.syntax)
3676    }
3677    #[inline]
3678    pub fn with_data(&self) -> Option<WithData> {
3679        support::child(&self.syntax)
3680    }
3681    #[inline]
3682    pub fn with_no_data(&self) -> Option<WithNoData> {
3683        support::child(&self.syntax)
3684    }
3685    #[inline]
3686    pub fn with_params(&self) -> Option<WithParams> {
3687        support::child(&self.syntax)
3688    }
3689    #[inline]
3690    pub fn as_token(&self) -> Option<SyntaxToken> {
3691        support::token(&self.syntax, SyntaxKind::AS_KW)
3692    }
3693    #[inline]
3694    pub fn create_token(&self) -> Option<SyntaxToken> {
3695        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3696    }
3697    #[inline]
3698    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3699        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3700    }
3701    #[inline]
3702    pub fn view_token(&self) -> Option<SyntaxToken> {
3703        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3704    }
3705}
3706
3707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3708pub struct CreateOperator {
3709    pub(crate) syntax: SyntaxNode,
3710}
3711impl CreateOperator {
3712    #[inline]
3713    pub fn attribute_list(&self) -> Option<AttributeList> {
3714        support::child(&self.syntax)
3715    }
3716    #[inline]
3717    pub fn op(&self) -> Option<Op> {
3718        support::child(&self.syntax)
3719    }
3720    #[inline]
3721    pub fn path(&self) -> Option<Path> {
3722        support::child(&self.syntax)
3723    }
3724    #[inline]
3725    pub fn create_token(&self) -> Option<SyntaxToken> {
3726        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3727    }
3728    #[inline]
3729    pub fn operator_token(&self) -> Option<SyntaxToken> {
3730        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3731    }
3732}
3733
3734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3735pub struct CreateOperatorClass {
3736    pub(crate) syntax: SyntaxNode,
3737}
3738impl CreateOperatorClass {
3739    #[inline]
3740    pub fn name_ref(&self) -> Option<NameRef> {
3741        support::child(&self.syntax)
3742    }
3743    #[inline]
3744    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3745        support::child(&self.syntax)
3746    }
3747    #[inline]
3748    pub fn path(&self) -> Option<Path> {
3749        support::child(&self.syntax)
3750    }
3751    #[inline]
3752    pub fn ty(&self) -> Option<Type> {
3753        support::child(&self.syntax)
3754    }
3755    #[inline]
3756    pub fn as_token(&self) -> Option<SyntaxToken> {
3757        support::token(&self.syntax, SyntaxKind::AS_KW)
3758    }
3759    #[inline]
3760    pub fn class_token(&self) -> Option<SyntaxToken> {
3761        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3762    }
3763    #[inline]
3764    pub fn create_token(&self) -> Option<SyntaxToken> {
3765        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3766    }
3767    #[inline]
3768    pub fn default_token(&self) -> Option<SyntaxToken> {
3769        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3770    }
3771    #[inline]
3772    pub fn family_token(&self) -> Option<SyntaxToken> {
3773        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3774    }
3775    #[inline]
3776    pub fn for_token(&self) -> Option<SyntaxToken> {
3777        support::token(&self.syntax, SyntaxKind::FOR_KW)
3778    }
3779    #[inline]
3780    pub fn operator_token(&self) -> Option<SyntaxToken> {
3781        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3782    }
3783    #[inline]
3784    pub fn type_token(&self) -> Option<SyntaxToken> {
3785        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3786    }
3787    #[inline]
3788    pub fn using_token(&self) -> Option<SyntaxToken> {
3789        support::token(&self.syntax, SyntaxKind::USING_KW)
3790    }
3791}
3792
3793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3794pub struct CreateOperatorFamily {
3795    pub(crate) syntax: SyntaxNode,
3796}
3797impl CreateOperatorFamily {
3798    #[inline]
3799    pub fn name_ref(&self) -> Option<NameRef> {
3800        support::child(&self.syntax)
3801    }
3802    #[inline]
3803    pub fn path(&self) -> Option<Path> {
3804        support::child(&self.syntax)
3805    }
3806    #[inline]
3807    pub fn create_token(&self) -> Option<SyntaxToken> {
3808        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3809    }
3810    #[inline]
3811    pub fn family_token(&self) -> Option<SyntaxToken> {
3812        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3813    }
3814    #[inline]
3815    pub fn operator_token(&self) -> Option<SyntaxToken> {
3816        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3817    }
3818    #[inline]
3819    pub fn using_token(&self) -> Option<SyntaxToken> {
3820        support::token(&self.syntax, SyntaxKind::USING_KW)
3821    }
3822}
3823
3824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3825pub struct CreatePolicy {
3826    pub(crate) syntax: SyntaxNode,
3827}
3828impl CreatePolicy {
3829    #[inline]
3830    pub fn expr(&self) -> Option<Expr> {
3831        support::child(&self.syntax)
3832    }
3833    #[inline]
3834    pub fn name(&self) -> Option<Name> {
3835        support::child(&self.syntax)
3836    }
3837    #[inline]
3838    pub fn on_table(&self) -> Option<OnTable> {
3839        support::child(&self.syntax)
3840    }
3841    #[inline]
3842    pub fn role_list(&self) -> Option<RoleList> {
3843        support::child(&self.syntax)
3844    }
3845    #[inline]
3846    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3847        support::token(&self.syntax, SyntaxKind::L_PAREN)
3848    }
3849    #[inline]
3850    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3851        support::token(&self.syntax, SyntaxKind::R_PAREN)
3852    }
3853    #[inline]
3854    pub fn all_token(&self) -> Option<SyntaxToken> {
3855        support::token(&self.syntax, SyntaxKind::ALL_KW)
3856    }
3857    #[inline]
3858    pub fn as_token(&self) -> Option<SyntaxToken> {
3859        support::token(&self.syntax, SyntaxKind::AS_KW)
3860    }
3861    #[inline]
3862    pub fn check_token(&self) -> Option<SyntaxToken> {
3863        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3864    }
3865    #[inline]
3866    pub fn create_token(&self) -> Option<SyntaxToken> {
3867        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3868    }
3869    #[inline]
3870    pub fn delete_token(&self) -> Option<SyntaxToken> {
3871        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3872    }
3873    #[inline]
3874    pub fn for_token(&self) -> Option<SyntaxToken> {
3875        support::token(&self.syntax, SyntaxKind::FOR_KW)
3876    }
3877    #[inline]
3878    pub fn ident_token(&self) -> Option<SyntaxToken> {
3879        support::token(&self.syntax, SyntaxKind::IDENT)
3880    }
3881    #[inline]
3882    pub fn insert_token(&self) -> Option<SyntaxToken> {
3883        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3884    }
3885    #[inline]
3886    pub fn policy_token(&self) -> Option<SyntaxToken> {
3887        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3888    }
3889    #[inline]
3890    pub fn select_token(&self) -> Option<SyntaxToken> {
3891        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3892    }
3893    #[inline]
3894    pub fn to_token(&self) -> Option<SyntaxToken> {
3895        support::token(&self.syntax, SyntaxKind::TO_KW)
3896    }
3897    #[inline]
3898    pub fn update_token(&self) -> Option<SyntaxToken> {
3899        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3900    }
3901    #[inline]
3902    pub fn using_token(&self) -> Option<SyntaxToken> {
3903        support::token(&self.syntax, SyntaxKind::USING_KW)
3904    }
3905    #[inline]
3906    pub fn with_token(&self) -> Option<SyntaxToken> {
3907        support::token(&self.syntax, SyntaxKind::WITH_KW)
3908    }
3909}
3910
3911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3912pub struct CreateProcedure {
3913    pub(crate) syntax: SyntaxNode,
3914}
3915impl CreateProcedure {
3916    #[inline]
3917    pub fn option_list(&self) -> Option<FuncOptionList> {
3918        support::child(&self.syntax)
3919    }
3920    #[inline]
3921    pub fn or_replace(&self) -> Option<OrReplace> {
3922        support::child(&self.syntax)
3923    }
3924    #[inline]
3925    pub fn param_list(&self) -> Option<ParamList> {
3926        support::child(&self.syntax)
3927    }
3928    #[inline]
3929    pub fn path(&self) -> Option<Path> {
3930        support::child(&self.syntax)
3931    }
3932    #[inline]
3933    pub fn create_token(&self) -> Option<SyntaxToken> {
3934        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3935    }
3936    #[inline]
3937    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3938        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3939    }
3940}
3941
3942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3943pub struct CreatePublication {
3944    pub(crate) syntax: SyntaxNode,
3945}
3946impl CreatePublication {
3947    #[inline]
3948    pub fn name(&self) -> Option<Name> {
3949        support::child(&self.syntax)
3950    }
3951    #[inline]
3952    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
3953        support::children(&self.syntax)
3954    }
3955    #[inline]
3956    pub fn with_params(&self) -> Option<WithParams> {
3957        support::child(&self.syntax)
3958    }
3959    #[inline]
3960    pub fn all_token(&self) -> Option<SyntaxToken> {
3961        support::token(&self.syntax, SyntaxKind::ALL_KW)
3962    }
3963    #[inline]
3964    pub fn create_token(&self) -> Option<SyntaxToken> {
3965        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3966    }
3967    #[inline]
3968    pub fn for_token(&self) -> Option<SyntaxToken> {
3969        support::token(&self.syntax, SyntaxKind::FOR_KW)
3970    }
3971    #[inline]
3972    pub fn publication_token(&self) -> Option<SyntaxToken> {
3973        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3974    }
3975    #[inline]
3976    pub fn tables_token(&self) -> Option<SyntaxToken> {
3977        support::token(&self.syntax, SyntaxKind::TABLES_KW)
3978    }
3979}
3980
3981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3982pub struct CreateRole {
3983    pub(crate) syntax: SyntaxNode,
3984}
3985impl CreateRole {
3986    #[inline]
3987    pub fn name(&self) -> Option<Name> {
3988        support::child(&self.syntax)
3989    }
3990    #[inline]
3991    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3992        support::child(&self.syntax)
3993    }
3994    #[inline]
3995    pub fn create_token(&self) -> Option<SyntaxToken> {
3996        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3997    }
3998    #[inline]
3999    pub fn role_token(&self) -> Option<SyntaxToken> {
4000        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4001    }
4002}
4003
4004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4005pub struct CreateRule {
4006    pub(crate) syntax: SyntaxNode,
4007}
4008impl CreateRule {
4009    #[inline]
4010    pub fn name(&self) -> Option<Name> {
4011        support::child(&self.syntax)
4012    }
4013    #[inline]
4014    pub fn or_replace(&self) -> Option<OrReplace> {
4015        support::child(&self.syntax)
4016    }
4017    #[inline]
4018    pub fn path(&self) -> Option<Path> {
4019        support::child(&self.syntax)
4020    }
4021    #[inline]
4022    pub fn stmt(&self) -> Option<Stmt> {
4023        support::child(&self.syntax)
4024    }
4025    #[inline]
4026    pub fn stmts(&self) -> AstChildren<Stmt> {
4027        support::children(&self.syntax)
4028    }
4029    #[inline]
4030    pub fn where_clause(&self) -> Option<WhereClause> {
4031        support::child(&self.syntax)
4032    }
4033    #[inline]
4034    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4035        support::token(&self.syntax, SyntaxKind::L_PAREN)
4036    }
4037    #[inline]
4038    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4039        support::token(&self.syntax, SyntaxKind::R_PAREN)
4040    }
4041    #[inline]
4042    pub fn also_token(&self) -> Option<SyntaxToken> {
4043        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4044    }
4045    #[inline]
4046    pub fn as_token(&self) -> Option<SyntaxToken> {
4047        support::token(&self.syntax, SyntaxKind::AS_KW)
4048    }
4049    #[inline]
4050    pub fn create_token(&self) -> Option<SyntaxToken> {
4051        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4052    }
4053    #[inline]
4054    pub fn delete_token(&self) -> Option<SyntaxToken> {
4055        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4056    }
4057    #[inline]
4058    pub fn do_token(&self) -> Option<SyntaxToken> {
4059        support::token(&self.syntax, SyntaxKind::DO_KW)
4060    }
4061    #[inline]
4062    pub fn ident_token(&self) -> Option<SyntaxToken> {
4063        support::token(&self.syntax, SyntaxKind::IDENT)
4064    }
4065    #[inline]
4066    pub fn insert_token(&self) -> Option<SyntaxToken> {
4067        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4068    }
4069    #[inline]
4070    pub fn instead_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4072    }
4073    #[inline]
4074    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4076    }
4077    #[inline]
4078    pub fn on_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::ON_KW)
4080    }
4081    #[inline]
4082    pub fn rule_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::RULE_KW)
4084    }
4085    #[inline]
4086    pub fn select_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4088    }
4089    #[inline]
4090    pub fn to_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::TO_KW)
4092    }
4093    #[inline]
4094    pub fn update_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4096    }
4097}
4098
4099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4100pub struct CreateSchema {
4101    pub(crate) syntax: SyntaxNode,
4102}
4103impl CreateSchema {
4104    #[inline]
4105    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4106        support::child(&self.syntax)
4107    }
4108    #[inline]
4109    pub fn name(&self) -> Option<Name> {
4110        support::child(&self.syntax)
4111    }
4112    #[inline]
4113    pub fn schema_authorization(&self) -> Option<SchemaAuthorization> {
4114        support::child(&self.syntax)
4115    }
4116    #[inline]
4117    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4118        support::children(&self.syntax)
4119    }
4120    #[inline]
4121    pub fn create_token(&self) -> Option<SyntaxToken> {
4122        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4123    }
4124    #[inline]
4125    pub fn schema_token(&self) -> Option<SyntaxToken> {
4126        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4127    }
4128}
4129
4130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4131pub struct CreateSequence {
4132    pub(crate) syntax: SyntaxNode,
4133}
4134impl CreateSequence {
4135    #[inline]
4136    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4137        support::child(&self.syntax)
4138    }
4139    #[inline]
4140    pub fn path(&self) -> Option<Path> {
4141        support::child(&self.syntax)
4142    }
4143    #[inline]
4144    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4145        support::children(&self.syntax)
4146    }
4147    #[inline]
4148    pub fn create_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4150    }
4151    #[inline]
4152    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4154    }
4155    #[inline]
4156    pub fn temp_token(&self) -> Option<SyntaxToken> {
4157        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4158    }
4159    #[inline]
4160    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4161        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4162    }
4163    #[inline]
4164    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4165        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4166    }
4167}
4168
4169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4170pub struct CreateServer {
4171    pub(crate) syntax: SyntaxNode,
4172}
4173impl CreateServer {
4174    #[inline]
4175    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn literal(&self) -> Option<Literal> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn name(&self) -> Option<Name> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn name_ref(&self) -> Option<NameRef> {
4192        support::child(&self.syntax)
4193    }
4194    #[inline]
4195    pub fn create_token(&self) -> Option<SyntaxToken> {
4196        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4197    }
4198    #[inline]
4199    pub fn data_token(&self) -> Option<SyntaxToken> {
4200        support::token(&self.syntax, SyntaxKind::DATA_KW)
4201    }
4202    #[inline]
4203    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4204        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4205    }
4206    #[inline]
4207    pub fn server_token(&self) -> Option<SyntaxToken> {
4208        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4209    }
4210    #[inline]
4211    pub fn type_token(&self) -> Option<SyntaxToken> {
4212        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4213    }
4214    #[inline]
4215    pub fn version_token(&self) -> Option<SyntaxToken> {
4216        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4217    }
4218    #[inline]
4219    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4220        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4221    }
4222}
4223
4224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4225pub struct CreateStatistics {
4226    pub(crate) syntax: SyntaxNode,
4227}
4228impl CreateStatistics {
4229    #[inline]
4230    pub fn from_table(&self) -> Option<FromTable> {
4231        support::child(&self.syntax)
4232    }
4233    #[inline]
4234    pub fn name_refs(&self) -> AstChildren<NameRef> {
4235        support::children(&self.syntax)
4236    }
4237    #[inline]
4238    pub fn path(&self) -> Option<Path> {
4239        support::child(&self.syntax)
4240    }
4241    #[inline]
4242    pub fn create_token(&self) -> Option<SyntaxToken> {
4243        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4244    }
4245    #[inline]
4246    pub fn on_token(&self) -> Option<SyntaxToken> {
4247        support::token(&self.syntax, SyntaxKind::ON_KW)
4248    }
4249    #[inline]
4250    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4251        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4252    }
4253}
4254
4255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4256pub struct CreateSubscription {
4257    pub(crate) syntax: SyntaxNode,
4258}
4259impl CreateSubscription {
4260    #[inline]
4261    pub fn literal(&self) -> Option<Literal> {
4262        support::child(&self.syntax)
4263    }
4264    #[inline]
4265    pub fn name(&self) -> Option<Name> {
4266        support::child(&self.syntax)
4267    }
4268    #[inline]
4269    pub fn name_refs(&self) -> AstChildren<NameRef> {
4270        support::children(&self.syntax)
4271    }
4272    #[inline]
4273    pub fn with_params(&self) -> Option<WithParams> {
4274        support::child(&self.syntax)
4275    }
4276    #[inline]
4277    pub fn connection_token(&self) -> Option<SyntaxToken> {
4278        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4279    }
4280    #[inline]
4281    pub fn create_token(&self) -> Option<SyntaxToken> {
4282        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4283    }
4284    #[inline]
4285    pub fn publication_token(&self) -> Option<SyntaxToken> {
4286        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4287    }
4288    #[inline]
4289    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4290        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4291    }
4292}
4293
4294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4295pub struct CreateTable {
4296    pub(crate) syntax: SyntaxNode,
4297}
4298impl CreateTable {
4299    #[inline]
4300    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn inherits(&self) -> Option<Inherits> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn of_type(&self) -> Option<OfType> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn on_commit(&self) -> Option<OnCommit> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn partition_by(&self) -> Option<PartitionBy> {
4317        support::child(&self.syntax)
4318    }
4319    #[inline]
4320    pub fn partition_of(&self) -> Option<PartitionOf> {
4321        support::child(&self.syntax)
4322    }
4323    #[inline]
4324    pub fn path(&self) -> Option<Path> {
4325        support::child(&self.syntax)
4326    }
4327    #[inline]
4328    pub fn table_arg_list(&self) -> Option<TableArgList> {
4329        support::child(&self.syntax)
4330    }
4331    #[inline]
4332    pub fn tablespace(&self) -> Option<Tablespace> {
4333        support::child(&self.syntax)
4334    }
4335    #[inline]
4336    pub fn using_method(&self) -> Option<UsingMethod> {
4337        support::child(&self.syntax)
4338    }
4339    #[inline]
4340    pub fn with_params(&self) -> Option<WithParams> {
4341        support::child(&self.syntax)
4342    }
4343    #[inline]
4344    pub fn without_oids(&self) -> Option<WithoutOids> {
4345        support::child(&self.syntax)
4346    }
4347    #[inline]
4348    pub fn create_token(&self) -> Option<SyntaxToken> {
4349        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4350    }
4351    #[inline]
4352    pub fn global_token(&self) -> Option<SyntaxToken> {
4353        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4354    }
4355    #[inline]
4356    pub fn local_token(&self) -> Option<SyntaxToken> {
4357        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4358    }
4359    #[inline]
4360    pub fn table_token(&self) -> Option<SyntaxToken> {
4361        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4362    }
4363    #[inline]
4364    pub fn temp_token(&self) -> Option<SyntaxToken> {
4365        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4366    }
4367    #[inline]
4368    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4369        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4370    }
4371    #[inline]
4372    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4373        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4374    }
4375}
4376
4377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4378pub struct CreateTableAs {
4379    pub(crate) syntax: SyntaxNode,
4380}
4381impl CreateTableAs {
4382    #[inline]
4383    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4384        support::child(&self.syntax)
4385    }
4386    #[inline]
4387    pub fn on_commit(&self) -> Option<OnCommit> {
4388        support::child(&self.syntax)
4389    }
4390    #[inline]
4391    pub fn path(&self) -> Option<Path> {
4392        support::child(&self.syntax)
4393    }
4394    #[inline]
4395    pub fn query(&self) -> Option<SelectVariant> {
4396        support::child(&self.syntax)
4397    }
4398    #[inline]
4399    pub fn tablespace(&self) -> Option<Tablespace> {
4400        support::child(&self.syntax)
4401    }
4402    #[inline]
4403    pub fn using_method(&self) -> Option<UsingMethod> {
4404        support::child(&self.syntax)
4405    }
4406    #[inline]
4407    pub fn with_data(&self) -> Option<WithData> {
4408        support::child(&self.syntax)
4409    }
4410    #[inline]
4411    pub fn with_no_data(&self) -> Option<WithNoData> {
4412        support::child(&self.syntax)
4413    }
4414    #[inline]
4415    pub fn with_params(&self) -> Option<WithParams> {
4416        support::child(&self.syntax)
4417    }
4418    #[inline]
4419    pub fn without_oids(&self) -> Option<WithoutOids> {
4420        support::child(&self.syntax)
4421    }
4422    #[inline]
4423    pub fn as_token(&self) -> Option<SyntaxToken> {
4424        support::token(&self.syntax, SyntaxKind::AS_KW)
4425    }
4426    #[inline]
4427    pub fn create_token(&self) -> Option<SyntaxToken> {
4428        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4429    }
4430    #[inline]
4431    pub fn global_token(&self) -> Option<SyntaxToken> {
4432        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4433    }
4434    #[inline]
4435    pub fn local_token(&self) -> Option<SyntaxToken> {
4436        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4437    }
4438    #[inline]
4439    pub fn table_token(&self) -> Option<SyntaxToken> {
4440        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4441    }
4442    #[inline]
4443    pub fn temp_token(&self) -> Option<SyntaxToken> {
4444        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4445    }
4446    #[inline]
4447    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4448        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4449    }
4450    #[inline]
4451    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4452        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4453    }
4454}
4455
4456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4457pub struct CreateTablespace {
4458    pub(crate) syntax: SyntaxNode,
4459}
4460impl CreateTablespace {
4461    #[inline]
4462    pub fn literal(&self) -> Option<Literal> {
4463        support::child(&self.syntax)
4464    }
4465    #[inline]
4466    pub fn name(&self) -> Option<Name> {
4467        support::child(&self.syntax)
4468    }
4469    #[inline]
4470    pub fn role(&self) -> Option<Role> {
4471        support::child(&self.syntax)
4472    }
4473    #[inline]
4474    pub fn with_params(&self) -> Option<WithParams> {
4475        support::child(&self.syntax)
4476    }
4477    #[inline]
4478    pub fn create_token(&self) -> Option<SyntaxToken> {
4479        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4480    }
4481    #[inline]
4482    pub fn location_token(&self) -> Option<SyntaxToken> {
4483        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4484    }
4485    #[inline]
4486    pub fn owner_token(&self) -> Option<SyntaxToken> {
4487        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4488    }
4489    #[inline]
4490    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4491        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4492    }
4493}
4494
4495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4496pub struct CreateTextSearchConfiguration {
4497    pub(crate) syntax: SyntaxNode,
4498}
4499impl CreateTextSearchConfiguration {
4500    #[inline]
4501    pub fn attribute_list(&self) -> Option<AttributeList> {
4502        support::child(&self.syntax)
4503    }
4504    #[inline]
4505    pub fn path(&self) -> Option<Path> {
4506        support::child(&self.syntax)
4507    }
4508    #[inline]
4509    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4510        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4511    }
4512    #[inline]
4513    pub fn create_token(&self) -> Option<SyntaxToken> {
4514        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4515    }
4516    #[inline]
4517    pub fn search_token(&self) -> Option<SyntaxToken> {
4518        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4519    }
4520    #[inline]
4521    pub fn text_token(&self) -> Option<SyntaxToken> {
4522        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4523    }
4524}
4525
4526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4527pub struct CreateTextSearchDictionary {
4528    pub(crate) syntax: SyntaxNode,
4529}
4530impl CreateTextSearchDictionary {
4531    #[inline]
4532    pub fn attribute_list(&self) -> Option<AttributeList> {
4533        support::child(&self.syntax)
4534    }
4535    #[inline]
4536    pub fn path(&self) -> Option<Path> {
4537        support::child(&self.syntax)
4538    }
4539    #[inline]
4540    pub fn create_token(&self) -> Option<SyntaxToken> {
4541        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4542    }
4543    #[inline]
4544    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4545        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4546    }
4547    #[inline]
4548    pub fn search_token(&self) -> Option<SyntaxToken> {
4549        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4550    }
4551    #[inline]
4552    pub fn text_token(&self) -> Option<SyntaxToken> {
4553        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4554    }
4555}
4556
4557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4558pub struct CreateTextSearchParser {
4559    pub(crate) syntax: SyntaxNode,
4560}
4561impl CreateTextSearchParser {
4562    #[inline]
4563    pub fn attribute_list(&self) -> Option<AttributeList> {
4564        support::child(&self.syntax)
4565    }
4566    #[inline]
4567    pub fn path(&self) -> Option<Path> {
4568        support::child(&self.syntax)
4569    }
4570    #[inline]
4571    pub fn create_token(&self) -> Option<SyntaxToken> {
4572        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4573    }
4574    #[inline]
4575    pub fn parser_token(&self) -> Option<SyntaxToken> {
4576        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4577    }
4578    #[inline]
4579    pub fn search_token(&self) -> Option<SyntaxToken> {
4580        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4581    }
4582    #[inline]
4583    pub fn text_token(&self) -> Option<SyntaxToken> {
4584        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4585    }
4586}
4587
4588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4589pub struct CreateTextSearchTemplate {
4590    pub(crate) syntax: SyntaxNode,
4591}
4592impl CreateTextSearchTemplate {
4593    #[inline]
4594    pub fn attribute_list(&self) -> Option<AttributeList> {
4595        support::child(&self.syntax)
4596    }
4597    #[inline]
4598    pub fn path(&self) -> Option<Path> {
4599        support::child(&self.syntax)
4600    }
4601    #[inline]
4602    pub fn create_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4604    }
4605    #[inline]
4606    pub fn search_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4608    }
4609    #[inline]
4610    pub fn template_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4612    }
4613    #[inline]
4614    pub fn text_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4616    }
4617}
4618
4619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4620pub struct CreateTransform {
4621    pub(crate) syntax: SyntaxNode,
4622}
4623impl CreateTransform {
4624    #[inline]
4625    pub fn from_func(&self) -> Option<TransformFromFunc> {
4626        support::child(&self.syntax)
4627    }
4628    #[inline]
4629    pub fn language(&self) -> Option<NameRef> {
4630        support::child(&self.syntax)
4631    }
4632    #[inline]
4633    pub fn or_replace(&self) -> Option<OrReplace> {
4634        support::child(&self.syntax)
4635    }
4636    #[inline]
4637    pub fn to_func(&self) -> Option<TransformToFunc> {
4638        support::child(&self.syntax)
4639    }
4640    #[inline]
4641    pub fn ty(&self) -> Option<Type> {
4642        support::child(&self.syntax)
4643    }
4644    #[inline]
4645    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4646        support::token(&self.syntax, SyntaxKind::L_PAREN)
4647    }
4648    #[inline]
4649    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4650        support::token(&self.syntax, SyntaxKind::R_PAREN)
4651    }
4652    #[inline]
4653    pub fn comma_token(&self) -> Option<SyntaxToken> {
4654        support::token(&self.syntax, SyntaxKind::COMMA)
4655    }
4656    #[inline]
4657    pub fn create_token(&self) -> Option<SyntaxToken> {
4658        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4659    }
4660    #[inline]
4661    pub fn for_token(&self) -> Option<SyntaxToken> {
4662        support::token(&self.syntax, SyntaxKind::FOR_KW)
4663    }
4664    #[inline]
4665    pub fn language_token(&self) -> Option<SyntaxToken> {
4666        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4667    }
4668    #[inline]
4669    pub fn transform_token(&self) -> Option<SyntaxToken> {
4670        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4671    }
4672}
4673
4674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4675pub struct CreateTrigger {
4676    pub(crate) syntax: SyntaxNode,
4677}
4678impl CreateTrigger {
4679    #[inline]
4680    pub fn call_expr(&self) -> Option<CallExpr> {
4681        support::child(&self.syntax)
4682    }
4683    #[inline]
4684    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4685        support::child(&self.syntax)
4686    }
4687    #[inline]
4688    pub fn from_table(&self) -> Option<FromTable> {
4689        support::child(&self.syntax)
4690    }
4691    #[inline]
4692    pub fn initially_deferred_constraint_option(
4693        &self,
4694    ) -> Option<InitiallyDeferredConstraintOption> {
4695        support::child(&self.syntax)
4696    }
4697    #[inline]
4698    pub fn initially_immediate_constraint_option(
4699        &self,
4700    ) -> Option<InitiallyImmediateConstraintOption> {
4701        support::child(&self.syntax)
4702    }
4703    #[inline]
4704    pub fn name(&self) -> Option<Name> {
4705        support::child(&self.syntax)
4706    }
4707    #[inline]
4708    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4709        support::child(&self.syntax)
4710    }
4711    #[inline]
4712    pub fn on_table(&self) -> Option<OnTable> {
4713        support::child(&self.syntax)
4714    }
4715    #[inline]
4716    pub fn or_replace(&self) -> Option<OrReplace> {
4717        support::child(&self.syntax)
4718    }
4719    #[inline]
4720    pub fn referencing(&self) -> Option<Referencing> {
4721        support::child(&self.syntax)
4722    }
4723    #[inline]
4724    pub fn timing(&self) -> Option<Timing> {
4725        support::child(&self.syntax)
4726    }
4727    #[inline]
4728    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4729        support::child(&self.syntax)
4730    }
4731    #[inline]
4732    pub fn when_condition(&self) -> Option<WhenCondition> {
4733        support::child(&self.syntax)
4734    }
4735    #[inline]
4736    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4737        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4738    }
4739    #[inline]
4740    pub fn create_token(&self) -> Option<SyntaxToken> {
4741        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4742    }
4743    #[inline]
4744    pub fn each_token(&self) -> Option<SyntaxToken> {
4745        support::token(&self.syntax, SyntaxKind::EACH_KW)
4746    }
4747    #[inline]
4748    pub fn execute_token(&self) -> Option<SyntaxToken> {
4749        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4750    }
4751    #[inline]
4752    pub fn for_token(&self) -> Option<SyntaxToken> {
4753        support::token(&self.syntax, SyntaxKind::FOR_KW)
4754    }
4755    #[inline]
4756    pub fn function_token(&self) -> Option<SyntaxToken> {
4757        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4758    }
4759    #[inline]
4760    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4761        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4762    }
4763    #[inline]
4764    pub fn row_token(&self) -> Option<SyntaxToken> {
4765        support::token(&self.syntax, SyntaxKind::ROW_KW)
4766    }
4767    #[inline]
4768    pub fn statement_token(&self) -> Option<SyntaxToken> {
4769        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4770    }
4771    #[inline]
4772    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4773        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4774    }
4775}
4776
4777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4778pub struct CreateType {
4779    pub(crate) syntax: SyntaxNode,
4780}
4781impl CreateType {
4782    #[inline]
4783    pub fn attribute_list(&self) -> Option<AttributeList> {
4784        support::child(&self.syntax)
4785    }
4786    #[inline]
4787    pub fn column_list(&self) -> Option<ColumnList> {
4788        support::child(&self.syntax)
4789    }
4790    #[inline]
4791    pub fn path(&self) -> Option<Path> {
4792        support::child(&self.syntax)
4793    }
4794    #[inline]
4795    pub fn variant_list(&self) -> Option<VariantList> {
4796        support::child(&self.syntax)
4797    }
4798    #[inline]
4799    pub fn as_token(&self) -> Option<SyntaxToken> {
4800        support::token(&self.syntax, SyntaxKind::AS_KW)
4801    }
4802    #[inline]
4803    pub fn create_token(&self) -> Option<SyntaxToken> {
4804        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4805    }
4806    #[inline]
4807    pub fn enum_token(&self) -> Option<SyntaxToken> {
4808        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4809    }
4810    #[inline]
4811    pub fn range_token(&self) -> Option<SyntaxToken> {
4812        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4813    }
4814    #[inline]
4815    pub fn type_token(&self) -> Option<SyntaxToken> {
4816        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4817    }
4818}
4819
4820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4821pub struct CreateUser {
4822    pub(crate) syntax: SyntaxNode,
4823}
4824impl CreateUser {
4825    #[inline]
4826    pub fn name(&self) -> Option<Name> {
4827        support::child(&self.syntax)
4828    }
4829    #[inline]
4830    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4831        support::child(&self.syntax)
4832    }
4833    #[inline]
4834    pub fn create_token(&self) -> Option<SyntaxToken> {
4835        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4836    }
4837    #[inline]
4838    pub fn user_token(&self) -> Option<SyntaxToken> {
4839        support::token(&self.syntax, SyntaxKind::USER_KW)
4840    }
4841}
4842
4843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4844pub struct CreateUserMapping {
4845    pub(crate) syntax: SyntaxNode,
4846}
4847impl CreateUserMapping {
4848    #[inline]
4849    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4850        support::child(&self.syntax)
4851    }
4852    #[inline]
4853    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4854        support::child(&self.syntax)
4855    }
4856    #[inline]
4857    pub fn name_ref(&self) -> Option<NameRef> {
4858        support::child(&self.syntax)
4859    }
4860    #[inline]
4861    pub fn role(&self) -> Option<Role> {
4862        support::child(&self.syntax)
4863    }
4864    #[inline]
4865    pub fn create_token(&self) -> Option<SyntaxToken> {
4866        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4867    }
4868    #[inline]
4869    pub fn for_token(&self) -> Option<SyntaxToken> {
4870        support::token(&self.syntax, SyntaxKind::FOR_KW)
4871    }
4872    #[inline]
4873    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4874        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4875    }
4876    #[inline]
4877    pub fn server_token(&self) -> Option<SyntaxToken> {
4878        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4879    }
4880    #[inline]
4881    pub fn user_token(&self) -> Option<SyntaxToken> {
4882        support::token(&self.syntax, SyntaxKind::USER_KW)
4883    }
4884}
4885
4886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4887pub struct CreateView {
4888    pub(crate) syntax: SyntaxNode,
4889}
4890impl CreateView {
4891    #[inline]
4892    pub fn column_list(&self) -> Option<ColumnList> {
4893        support::child(&self.syntax)
4894    }
4895    #[inline]
4896    pub fn or_replace(&self) -> Option<OrReplace> {
4897        support::child(&self.syntax)
4898    }
4899    #[inline]
4900    pub fn path(&self) -> Option<Path> {
4901        support::child(&self.syntax)
4902    }
4903    #[inline]
4904    pub fn query(&self) -> Option<SelectVariant> {
4905        support::child(&self.syntax)
4906    }
4907    #[inline]
4908    pub fn with_params(&self) -> Option<WithParams> {
4909        support::child(&self.syntax)
4910    }
4911    #[inline]
4912    pub fn as_token(&self) -> Option<SyntaxToken> {
4913        support::token(&self.syntax, SyntaxKind::AS_KW)
4914    }
4915    #[inline]
4916    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
4917        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
4918    }
4919    #[inline]
4920    pub fn check_token(&self) -> Option<SyntaxToken> {
4921        support::token(&self.syntax, SyntaxKind::CHECK_KW)
4922    }
4923    #[inline]
4924    pub fn create_token(&self) -> Option<SyntaxToken> {
4925        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4926    }
4927    #[inline]
4928    pub fn local_token(&self) -> Option<SyntaxToken> {
4929        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4930    }
4931    #[inline]
4932    pub fn option_token(&self) -> Option<SyntaxToken> {
4933        support::token(&self.syntax, SyntaxKind::OPTION_KW)
4934    }
4935    #[inline]
4936    pub fn recursive_token(&self) -> Option<SyntaxToken> {
4937        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
4938    }
4939    #[inline]
4940    pub fn temp_token(&self) -> Option<SyntaxToken> {
4941        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4942    }
4943    #[inline]
4944    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4945        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4946    }
4947    #[inline]
4948    pub fn view_token(&self) -> Option<SyntaxToken> {
4949        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4950    }
4951    #[inline]
4952    pub fn with_token(&self) -> Option<SyntaxToken> {
4953        support::token(&self.syntax, SyntaxKind::WITH_KW)
4954    }
4955}
4956
4957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4958pub struct CustomOp {
4959    pub(crate) syntax: SyntaxNode,
4960}
4961impl CustomOp {
4962    #[inline]
4963    pub fn bang_token(&self) -> Option<SyntaxToken> {
4964        support::token(&self.syntax, SyntaxKind::BANG)
4965    }
4966    #[inline]
4967    pub fn pound_token(&self) -> Option<SyntaxToken> {
4968        support::token(&self.syntax, SyntaxKind::POUND)
4969    }
4970    #[inline]
4971    pub fn percent_token(&self) -> Option<SyntaxToken> {
4972        support::token(&self.syntax, SyntaxKind::PERCENT)
4973    }
4974    #[inline]
4975    pub fn amp_token(&self) -> Option<SyntaxToken> {
4976        support::token(&self.syntax, SyntaxKind::AMP)
4977    }
4978    #[inline]
4979    pub fn star_token(&self) -> Option<SyntaxToken> {
4980        support::token(&self.syntax, SyntaxKind::STAR)
4981    }
4982    #[inline]
4983    pub fn plus_token(&self) -> Option<SyntaxToken> {
4984        support::token(&self.syntax, SyntaxKind::PLUS)
4985    }
4986    #[inline]
4987    pub fn minus_token(&self) -> Option<SyntaxToken> {
4988        support::token(&self.syntax, SyntaxKind::MINUS)
4989    }
4990    #[inline]
4991    pub fn slash_token(&self) -> Option<SyntaxToken> {
4992        support::token(&self.syntax, SyntaxKind::SLASH)
4993    }
4994    #[inline]
4995    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
4996        support::token(&self.syntax, SyntaxKind::L_ANGLE)
4997    }
4998    #[inline]
4999    pub fn eq_token(&self) -> Option<SyntaxToken> {
5000        support::token(&self.syntax, SyntaxKind::EQ)
5001    }
5002    #[inline]
5003    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5004        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5005    }
5006    #[inline]
5007    pub fn question_token(&self) -> Option<SyntaxToken> {
5008        support::token(&self.syntax, SyntaxKind::QUESTION)
5009    }
5010    #[inline]
5011    pub fn at_token(&self) -> Option<SyntaxToken> {
5012        support::token(&self.syntax, SyntaxKind::AT)
5013    }
5014    #[inline]
5015    pub fn caret_token(&self) -> Option<SyntaxToken> {
5016        support::token(&self.syntax, SyntaxKind::CARET)
5017    }
5018    #[inline]
5019    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5020        support::token(&self.syntax, SyntaxKind::BACKTICK)
5021    }
5022    #[inline]
5023    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5024        support::token(&self.syntax, SyntaxKind::PIPE)
5025    }
5026    #[inline]
5027    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5028        support::token(&self.syntax, SyntaxKind::TILDE)
5029    }
5030}
5031
5032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5033pub struct Deallocate {
5034    pub(crate) syntax: SyntaxNode,
5035}
5036impl Deallocate {
5037    #[inline]
5038    pub fn name_ref(&self) -> Option<NameRef> {
5039        support::child(&self.syntax)
5040    }
5041    #[inline]
5042    pub fn all_token(&self) -> Option<SyntaxToken> {
5043        support::token(&self.syntax, SyntaxKind::ALL_KW)
5044    }
5045    #[inline]
5046    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5047        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5048    }
5049    #[inline]
5050    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5051        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5052    }
5053}
5054
5055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5056pub struct Declare {
5057    pub(crate) syntax: SyntaxNode,
5058}
5059impl Declare {
5060    #[inline]
5061    pub fn name(&self) -> Option<Name> {
5062        support::child(&self.syntax)
5063    }
5064    #[inline]
5065    pub fn query(&self) -> Option<SelectVariant> {
5066        support::child(&self.syntax)
5067    }
5068    #[inline]
5069    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5070        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5071    }
5072    #[inline]
5073    pub fn binary_token(&self) -> Option<SyntaxToken> {
5074        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5075    }
5076    #[inline]
5077    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5078        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5079    }
5080    #[inline]
5081    pub fn declare_token(&self) -> Option<SyntaxToken> {
5082        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5083    }
5084    #[inline]
5085    pub fn for_token(&self) -> Option<SyntaxToken> {
5086        support::token(&self.syntax, SyntaxKind::FOR_KW)
5087    }
5088    #[inline]
5089    pub fn hold_token(&self) -> Option<SyntaxToken> {
5090        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5091    }
5092    #[inline]
5093    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5094        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5095    }
5096    #[inline]
5097    pub fn no_token(&self) -> Option<SyntaxToken> {
5098        support::token(&self.syntax, SyntaxKind::NO_KW)
5099    }
5100    #[inline]
5101    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5102        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5103    }
5104    #[inline]
5105    pub fn with_token(&self) -> Option<SyntaxToken> {
5106        support::token(&self.syntax, SyntaxKind::WITH_KW)
5107    }
5108    #[inline]
5109    pub fn without_token(&self) -> Option<SyntaxToken> {
5110        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5111    }
5112}
5113
5114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5115pub struct DefaultConstraint {
5116    pub(crate) syntax: SyntaxNode,
5117}
5118impl DefaultConstraint {
5119    #[inline]
5120    pub fn expr(&self) -> Option<Expr> {
5121        support::child(&self.syntax)
5122    }
5123    #[inline]
5124    pub fn name_ref(&self) -> Option<NameRef> {
5125        support::child(&self.syntax)
5126    }
5127    #[inline]
5128    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5129        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5130    }
5131    #[inline]
5132    pub fn default_token(&self) -> Option<SyntaxToken> {
5133        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5134    }
5135}
5136
5137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5138pub struct Deferrable {
5139    pub(crate) syntax: SyntaxNode,
5140}
5141impl Deferrable {
5142    #[inline]
5143    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5144        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5145    }
5146}
5147
5148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5149pub struct DeferrableConstraintOption {
5150    pub(crate) syntax: SyntaxNode,
5151}
5152impl DeferrableConstraintOption {
5153    #[inline]
5154    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5155        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5156    }
5157}
5158
5159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5160pub struct Delete {
5161    pub(crate) syntax: SyntaxNode,
5162}
5163impl Delete {
5164    #[inline]
5165    pub fn alias(&self) -> Option<Alias> {
5166        support::child(&self.syntax)
5167    }
5168    #[inline]
5169    pub fn relation_name(&self) -> Option<RelationName> {
5170        support::child(&self.syntax)
5171    }
5172    #[inline]
5173    pub fn returning_clause(&self) -> Option<ReturningClause> {
5174        support::child(&self.syntax)
5175    }
5176    #[inline]
5177    pub fn using_clause(&self) -> Option<UsingClause> {
5178        support::child(&self.syntax)
5179    }
5180    #[inline]
5181    pub fn where_clause(&self) -> Option<WhereClause> {
5182        support::child(&self.syntax)
5183    }
5184    #[inline]
5185    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5186        support::child(&self.syntax)
5187    }
5188    #[inline]
5189    pub fn delete_token(&self) -> Option<SyntaxToken> {
5190        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5191    }
5192    #[inline]
5193    pub fn from_token(&self) -> Option<SyntaxToken> {
5194        support::token(&self.syntax, SyntaxKind::FROM_KW)
5195    }
5196}
5197
5198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5199pub struct DeleteRows {
5200    pub(crate) syntax: SyntaxNode,
5201}
5202impl DeleteRows {
5203    #[inline]
5204    pub fn delete_token(&self) -> Option<SyntaxToken> {
5205        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5206    }
5207    #[inline]
5208    pub fn rows_token(&self) -> Option<SyntaxToken> {
5209        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5210    }
5211}
5212
5213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5214pub struct DependsOnExtension {
5215    pub(crate) syntax: SyntaxNode,
5216}
5217impl DependsOnExtension {
5218    #[inline]
5219    pub fn name_ref(&self) -> Option<NameRef> {
5220        support::child(&self.syntax)
5221    }
5222    #[inline]
5223    pub fn depends_token(&self) -> Option<SyntaxToken> {
5224        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5225    }
5226    #[inline]
5227    pub fn extension_token(&self) -> Option<SyntaxToken> {
5228        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5229    }
5230    #[inline]
5231    pub fn on_token(&self) -> Option<SyntaxToken> {
5232        support::token(&self.syntax, SyntaxKind::ON_KW)
5233    }
5234}
5235
5236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5237pub struct DetachPartition {
5238    pub(crate) syntax: SyntaxNode,
5239}
5240impl DetachPartition {
5241    #[inline]
5242    pub fn detach_token(&self) -> Option<SyntaxToken> {
5243        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5244    }
5245    #[inline]
5246    pub fn partition_token(&self) -> Option<SyntaxToken> {
5247        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5248    }
5249}
5250
5251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5252pub struct DisableRls {
5253    pub(crate) syntax: SyntaxNode,
5254}
5255impl DisableRls {
5256    #[inline]
5257    pub fn disable_token(&self) -> Option<SyntaxToken> {
5258        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5259    }
5260    #[inline]
5261    pub fn level_token(&self) -> Option<SyntaxToken> {
5262        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5263    }
5264    #[inline]
5265    pub fn row_token(&self) -> Option<SyntaxToken> {
5266        support::token(&self.syntax, SyntaxKind::ROW_KW)
5267    }
5268    #[inline]
5269    pub fn security_token(&self) -> Option<SyntaxToken> {
5270        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5271    }
5272}
5273
5274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5275pub struct DisableRule {
5276    pub(crate) syntax: SyntaxNode,
5277}
5278impl DisableRule {
5279    #[inline]
5280    pub fn disable_token(&self) -> Option<SyntaxToken> {
5281        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5282    }
5283    #[inline]
5284    pub fn rule_token(&self) -> Option<SyntaxToken> {
5285        support::token(&self.syntax, SyntaxKind::RULE_KW)
5286    }
5287}
5288
5289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5290pub struct DisableTrigger {
5291    pub(crate) syntax: SyntaxNode,
5292}
5293impl DisableTrigger {
5294    #[inline]
5295    pub fn disable_token(&self) -> Option<SyntaxToken> {
5296        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5297    }
5298    #[inline]
5299    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5300        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5301    }
5302}
5303
5304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5305pub struct Discard {
5306    pub(crate) syntax: SyntaxNode,
5307}
5308impl Discard {
5309    #[inline]
5310    pub fn all_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::ALL_KW)
5312    }
5313    #[inline]
5314    pub fn discard_token(&self) -> Option<SyntaxToken> {
5315        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5316    }
5317    #[inline]
5318    pub fn plans_token(&self) -> Option<SyntaxToken> {
5319        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5320    }
5321    #[inline]
5322    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5323        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5324    }
5325    #[inline]
5326    pub fn temp_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5328    }
5329    #[inline]
5330    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5332    }
5333}
5334
5335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5336pub struct DistinctClause {
5337    pub(crate) syntax: SyntaxNode,
5338}
5339impl DistinctClause {
5340    #[inline]
5341    pub fn exprs(&self) -> AstChildren<Expr> {
5342        support::children(&self.syntax)
5343    }
5344    #[inline]
5345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::L_PAREN)
5347    }
5348    #[inline]
5349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5350        support::token(&self.syntax, SyntaxKind::R_PAREN)
5351    }
5352    #[inline]
5353    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5354        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5355    }
5356    #[inline]
5357    pub fn on_token(&self) -> Option<SyntaxToken> {
5358        support::token(&self.syntax, SyntaxKind::ON_KW)
5359    }
5360}
5361
5362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5363pub struct Do {
5364    pub(crate) syntax: SyntaxNode,
5365}
5366impl Do {
5367    #[inline]
5368    pub fn do_token(&self) -> Option<SyntaxToken> {
5369        support::token(&self.syntax, SyntaxKind::DO_KW)
5370    }
5371}
5372
5373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5374pub struct DoubleType {
5375    pub(crate) syntax: SyntaxNode,
5376}
5377impl DoubleType {
5378    #[inline]
5379    pub fn double_token(&self) -> Option<SyntaxToken> {
5380        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5381    }
5382    #[inline]
5383    pub fn precision_token(&self) -> Option<SyntaxToken> {
5384        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5385    }
5386}
5387
5388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5389pub struct Drop {
5390    pub(crate) syntax: SyntaxNode,
5391}
5392impl Drop {
5393    #[inline]
5394    pub fn drop_token(&self) -> Option<SyntaxToken> {
5395        support::token(&self.syntax, SyntaxKind::DROP_KW)
5396    }
5397}
5398
5399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5400pub struct DropAccessMethod {
5401    pub(crate) syntax: SyntaxNode,
5402}
5403impl DropAccessMethod {
5404    #[inline]
5405    pub fn if_exists(&self) -> Option<IfExists> {
5406        support::child(&self.syntax)
5407    }
5408    #[inline]
5409    pub fn name_ref(&self) -> Option<NameRef> {
5410        support::child(&self.syntax)
5411    }
5412    #[inline]
5413    pub fn access_token(&self) -> Option<SyntaxToken> {
5414        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5415    }
5416    #[inline]
5417    pub fn drop_token(&self) -> Option<SyntaxToken> {
5418        support::token(&self.syntax, SyntaxKind::DROP_KW)
5419    }
5420    #[inline]
5421    pub fn method_token(&self) -> Option<SyntaxToken> {
5422        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5423    }
5424}
5425
5426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5427pub struct DropAggregate {
5428    pub(crate) syntax: SyntaxNode,
5429}
5430impl DropAggregate {
5431    #[inline]
5432    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5433        support::children(&self.syntax)
5434    }
5435    #[inline]
5436    pub fn if_exists(&self) -> Option<IfExists> {
5437        support::child(&self.syntax)
5438    }
5439    #[inline]
5440    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5441        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5442    }
5443    #[inline]
5444    pub fn drop_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::DROP_KW)
5446    }
5447}
5448
5449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5450pub struct DropCast {
5451    pub(crate) syntax: SyntaxNode,
5452}
5453impl DropCast {
5454    #[inline]
5455    pub fn cast_sig(&self) -> Option<CastSig> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn if_exists(&self) -> Option<IfExists> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5464        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5465    }
5466    #[inline]
5467    pub fn cast_token(&self) -> Option<SyntaxToken> {
5468        support::token(&self.syntax, SyntaxKind::CAST_KW)
5469    }
5470    #[inline]
5471    pub fn drop_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::DROP_KW)
5473    }
5474    #[inline]
5475    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5477    }
5478}
5479
5480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5481pub struct DropCollation {
5482    pub(crate) syntax: SyntaxNode,
5483}
5484impl DropCollation {
5485    #[inline]
5486    pub fn if_exists(&self) -> Option<IfExists> {
5487        support::child(&self.syntax)
5488    }
5489    #[inline]
5490    pub fn paths(&self) -> AstChildren<Path> {
5491        support::children(&self.syntax)
5492    }
5493    #[inline]
5494    pub fn collation_token(&self) -> Option<SyntaxToken> {
5495        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5496    }
5497    #[inline]
5498    pub fn drop_token(&self) -> Option<SyntaxToken> {
5499        support::token(&self.syntax, SyntaxKind::DROP_KW)
5500    }
5501}
5502
5503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5504pub struct DropColumn {
5505    pub(crate) syntax: SyntaxNode,
5506}
5507impl DropColumn {
5508    #[inline]
5509    pub fn if_exists(&self) -> Option<IfExists> {
5510        support::child(&self.syntax)
5511    }
5512    #[inline]
5513    pub fn name_ref(&self) -> Option<NameRef> {
5514        support::child(&self.syntax)
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 column_token(&self) -> Option<SyntaxToken> {
5522        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5523    }
5524    #[inline]
5525    pub fn drop_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::DROP_KW)
5527    }
5528    #[inline]
5529    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5530        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5531    }
5532}
5533
5534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5535pub struct DropConstraint {
5536    pub(crate) syntax: SyntaxNode,
5537}
5538impl DropConstraint {
5539    #[inline]
5540    pub fn if_exists(&self) -> Option<IfExists> {
5541        support::child(&self.syntax)
5542    }
5543    #[inline]
5544    pub fn name_ref(&self) -> Option<NameRef> {
5545        support::child(&self.syntax)
5546    }
5547    #[inline]
5548    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5549        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5550    }
5551    #[inline]
5552    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5554    }
5555    #[inline]
5556    pub fn drop_token(&self) -> Option<SyntaxToken> {
5557        support::token(&self.syntax, SyntaxKind::DROP_KW)
5558    }
5559    #[inline]
5560    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5561        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5562    }
5563}
5564
5565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5566pub struct DropConversion {
5567    pub(crate) syntax: SyntaxNode,
5568}
5569impl DropConversion {
5570    #[inline]
5571    pub fn if_exists(&self) -> Option<IfExists> {
5572        support::child(&self.syntax)
5573    }
5574    #[inline]
5575    pub fn path(&self) -> Option<Path> {
5576        support::child(&self.syntax)
5577    }
5578    #[inline]
5579    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5580        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5581    }
5582    #[inline]
5583    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5584        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5585    }
5586    #[inline]
5587    pub fn drop_token(&self) -> Option<SyntaxToken> {
5588        support::token(&self.syntax, SyntaxKind::DROP_KW)
5589    }
5590    #[inline]
5591    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5592        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5593    }
5594}
5595
5596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5597pub struct DropDatabase {
5598    pub(crate) syntax: SyntaxNode,
5599}
5600impl DropDatabase {
5601    #[inline]
5602    pub fn if_exists(&self) -> Option<IfExists> {
5603        support::child(&self.syntax)
5604    }
5605    #[inline]
5606    pub fn name_ref(&self) -> Option<NameRef> {
5607        support::child(&self.syntax)
5608    }
5609    #[inline]
5610    pub fn database_token(&self) -> Option<SyntaxToken> {
5611        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5612    }
5613    #[inline]
5614    pub fn drop_token(&self) -> Option<SyntaxToken> {
5615        support::token(&self.syntax, SyntaxKind::DROP_KW)
5616    }
5617}
5618
5619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5620pub struct DropDefault {
5621    pub(crate) syntax: SyntaxNode,
5622}
5623impl DropDefault {
5624    #[inline]
5625    pub fn default_token(&self) -> Option<SyntaxToken> {
5626        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5627    }
5628    #[inline]
5629    pub fn drop_token(&self) -> Option<SyntaxToken> {
5630        support::token(&self.syntax, SyntaxKind::DROP_KW)
5631    }
5632}
5633
5634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5635pub struct DropDomain {
5636    pub(crate) syntax: SyntaxNode,
5637}
5638impl DropDomain {
5639    #[inline]
5640    pub fn if_exists(&self) -> Option<IfExists> {
5641        support::child(&self.syntax)
5642    }
5643    #[inline]
5644    pub fn paths(&self) -> AstChildren<Path> {
5645        support::children(&self.syntax)
5646    }
5647    #[inline]
5648    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5649        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5650    }
5651    #[inline]
5652    pub fn domain_token(&self) -> Option<SyntaxToken> {
5653        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5654    }
5655    #[inline]
5656    pub fn drop_token(&self) -> Option<SyntaxToken> {
5657        support::token(&self.syntax, SyntaxKind::DROP_KW)
5658    }
5659    #[inline]
5660    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5661        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5662    }
5663}
5664
5665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5666pub struct DropEventTrigger {
5667    pub(crate) syntax: SyntaxNode,
5668}
5669impl DropEventTrigger {
5670    #[inline]
5671    pub fn if_exists(&self) -> Option<IfExists> {
5672        support::child(&self.syntax)
5673    }
5674    #[inline]
5675    pub fn name_ref(&self) -> Option<NameRef> {
5676        support::child(&self.syntax)
5677    }
5678    #[inline]
5679    pub fn drop_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::DROP_KW)
5681    }
5682    #[inline]
5683    pub fn event_token(&self) -> Option<SyntaxToken> {
5684        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5685    }
5686    #[inline]
5687    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5688        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5689    }
5690}
5691
5692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5693pub struct DropExpression {
5694    pub(crate) syntax: SyntaxNode,
5695}
5696impl DropExpression {
5697    #[inline]
5698    pub fn if_exists(&self) -> Option<IfExists> {
5699        support::child(&self.syntax)
5700    }
5701    #[inline]
5702    pub fn drop_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::DROP_KW)
5704    }
5705    #[inline]
5706    pub fn expression_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5708    }
5709}
5710
5711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5712pub struct DropExtension {
5713    pub(crate) syntax: SyntaxNode,
5714}
5715impl DropExtension {
5716    #[inline]
5717    pub fn if_exists(&self) -> Option<IfExists> {
5718        support::child(&self.syntax)
5719    }
5720    #[inline]
5721    pub fn name_refs(&self) -> AstChildren<NameRef> {
5722        support::children(&self.syntax)
5723    }
5724    #[inline]
5725    pub fn drop_token(&self) -> Option<SyntaxToken> {
5726        support::token(&self.syntax, SyntaxKind::DROP_KW)
5727    }
5728    #[inline]
5729    pub fn extension_token(&self) -> Option<SyntaxToken> {
5730        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5731    }
5732}
5733
5734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5735pub struct DropForeignDataWrapper {
5736    pub(crate) syntax: SyntaxNode,
5737}
5738impl DropForeignDataWrapper {
5739    #[inline]
5740    pub fn if_exists(&self) -> Option<IfExists> {
5741        support::child(&self.syntax)
5742    }
5743    #[inline]
5744    pub fn name_refs(&self) -> AstChildren<NameRef> {
5745        support::children(&self.syntax)
5746    }
5747    #[inline]
5748    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5749        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5750    }
5751    #[inline]
5752    pub fn data_token(&self) -> Option<SyntaxToken> {
5753        support::token(&self.syntax, SyntaxKind::DATA_KW)
5754    }
5755    #[inline]
5756    pub fn drop_token(&self) -> Option<SyntaxToken> {
5757        support::token(&self.syntax, SyntaxKind::DROP_KW)
5758    }
5759    #[inline]
5760    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5761        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5762    }
5763    #[inline]
5764    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5765        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5766    }
5767    #[inline]
5768    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5769        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5770    }
5771}
5772
5773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5774pub struct DropForeignTable {
5775    pub(crate) syntax: SyntaxNode,
5776}
5777impl DropForeignTable {
5778    #[inline]
5779    pub fn if_exists(&self) -> Option<IfExists> {
5780        support::child(&self.syntax)
5781    }
5782    #[inline]
5783    pub fn path(&self) -> Option<Path> {
5784        support::child(&self.syntax)
5785    }
5786    #[inline]
5787    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5788        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5789    }
5790    #[inline]
5791    pub fn drop_token(&self) -> Option<SyntaxToken> {
5792        support::token(&self.syntax, SyntaxKind::DROP_KW)
5793    }
5794    #[inline]
5795    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5796        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5797    }
5798    #[inline]
5799    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5800        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5801    }
5802    #[inline]
5803    pub fn table_token(&self) -> Option<SyntaxToken> {
5804        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5805    }
5806}
5807
5808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5809pub struct DropFunction {
5810    pub(crate) syntax: SyntaxNode,
5811}
5812impl DropFunction {
5813    #[inline]
5814    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5815        support::child(&self.syntax)
5816    }
5817    #[inline]
5818    pub fn if_exists(&self) -> Option<IfExists> {
5819        support::child(&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 function_token(&self) -> Option<SyntaxToken> {
5831        support::token(&self.syntax, SyntaxKind::FUNCTION_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 DropGroup {
5841    pub(crate) syntax: SyntaxNode,
5842}
5843impl DropGroup {
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 drop_token(&self) -> Option<SyntaxToken> {
5854        support::token(&self.syntax, SyntaxKind::DROP_KW)
5855    }
5856    #[inline]
5857    pub fn group_token(&self) -> Option<SyntaxToken> {
5858        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5859    }
5860}
5861
5862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5863pub struct DropIdentity {
5864    pub(crate) syntax: SyntaxNode,
5865}
5866impl DropIdentity {
5867    #[inline]
5868    pub fn if_exists(&self) -> Option<IfExists> {
5869        support::child(&self.syntax)
5870    }
5871    #[inline]
5872    pub fn drop_token(&self) -> Option<SyntaxToken> {
5873        support::token(&self.syntax, SyntaxKind::DROP_KW)
5874    }
5875    #[inline]
5876    pub fn identity_token(&self) -> Option<SyntaxToken> {
5877        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5878    }
5879}
5880
5881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5882pub struct DropIndex {
5883    pub(crate) syntax: SyntaxNode,
5884}
5885impl DropIndex {
5886    #[inline]
5887    pub fn if_exists(&self) -> Option<IfExists> {
5888        support::child(&self.syntax)
5889    }
5890    #[inline]
5891    pub fn paths(&self) -> AstChildren<Path> {
5892        support::children(&self.syntax)
5893    }
5894    #[inline]
5895    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
5896        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
5897    }
5898    #[inline]
5899    pub fn drop_token(&self) -> Option<SyntaxToken> {
5900        support::token(&self.syntax, SyntaxKind::DROP_KW)
5901    }
5902    #[inline]
5903    pub fn index_token(&self) -> Option<SyntaxToken> {
5904        support::token(&self.syntax, SyntaxKind::INDEX_KW)
5905    }
5906}
5907
5908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5909pub struct DropLanguage {
5910    pub(crate) syntax: SyntaxNode,
5911}
5912impl DropLanguage {
5913    #[inline]
5914    pub fn if_exists(&self) -> Option<IfExists> {
5915        support::child(&self.syntax)
5916    }
5917    #[inline]
5918    pub fn name_ref(&self) -> Option<NameRef> {
5919        support::child(&self.syntax)
5920    }
5921    #[inline]
5922    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5923        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5924    }
5925    #[inline]
5926    pub fn drop_token(&self) -> Option<SyntaxToken> {
5927        support::token(&self.syntax, SyntaxKind::DROP_KW)
5928    }
5929    #[inline]
5930    pub fn language_token(&self) -> Option<SyntaxToken> {
5931        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5932    }
5933    #[inline]
5934    pub fn procedural_token(&self) -> Option<SyntaxToken> {
5935        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
5936    }
5937    #[inline]
5938    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5939        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5940    }
5941}
5942
5943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5944pub struct DropMaterializedView {
5945    pub(crate) syntax: SyntaxNode,
5946}
5947impl DropMaterializedView {
5948    #[inline]
5949    pub fn if_exists(&self) -> Option<IfExists> {
5950        support::child(&self.syntax)
5951    }
5952    #[inline]
5953    pub fn paths(&self) -> AstChildren<Path> {
5954        support::children(&self.syntax)
5955    }
5956    #[inline]
5957    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5958        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5959    }
5960    #[inline]
5961    pub fn drop_token(&self) -> Option<SyntaxToken> {
5962        support::token(&self.syntax, SyntaxKind::DROP_KW)
5963    }
5964    #[inline]
5965    pub fn materialized_token(&self) -> Option<SyntaxToken> {
5966        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
5967    }
5968    #[inline]
5969    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5970        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5971    }
5972    #[inline]
5973    pub fn view_token(&self) -> Option<SyntaxToken> {
5974        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5975    }
5976}
5977
5978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5979pub struct DropNotNull {
5980    pub(crate) syntax: SyntaxNode,
5981}
5982impl DropNotNull {
5983    #[inline]
5984    pub fn drop_token(&self) -> Option<SyntaxToken> {
5985        support::token(&self.syntax, SyntaxKind::DROP_KW)
5986    }
5987    #[inline]
5988    pub fn not_token(&self) -> Option<SyntaxToken> {
5989        support::token(&self.syntax, SyntaxKind::NOT_KW)
5990    }
5991    #[inline]
5992    pub fn null_token(&self) -> Option<SyntaxToken> {
5993        support::token(&self.syntax, SyntaxKind::NULL_KW)
5994    }
5995}
5996
5997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5998pub struct DropOpClassOption {
5999    pub(crate) syntax: SyntaxNode,
6000}
6001impl DropOpClassOption {
6002    #[inline]
6003    pub fn literal(&self) -> Option<Literal> {
6004        support::child(&self.syntax)
6005    }
6006    #[inline]
6007    pub fn param_list(&self) -> Option<ParamList> {
6008        support::child(&self.syntax)
6009    }
6010    #[inline]
6011    pub fn function_token(&self) -> Option<SyntaxToken> {
6012        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6013    }
6014    #[inline]
6015    pub fn operator_token(&self) -> Option<SyntaxToken> {
6016        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6017    }
6018}
6019
6020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6021pub struct DropOpClassOptionList {
6022    pub(crate) syntax: SyntaxNode,
6023}
6024impl DropOpClassOptionList {
6025    #[inline]
6026    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6027        support::children(&self.syntax)
6028    }
6029}
6030
6031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6032pub struct DropOpClassOptions {
6033    pub(crate) syntax: SyntaxNode,
6034}
6035impl DropOpClassOptions {
6036    #[inline]
6037    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6038        support::child(&self.syntax)
6039    }
6040    #[inline]
6041    pub fn drop_token(&self) -> Option<SyntaxToken> {
6042        support::token(&self.syntax, SyntaxKind::DROP_KW)
6043    }
6044}
6045
6046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6047pub struct DropOperator {
6048    pub(crate) syntax: SyntaxNode,
6049}
6050impl DropOperator {
6051    #[inline]
6052    pub fn if_exists(&self) -> Option<IfExists> {
6053        support::child(&self.syntax)
6054    }
6055    #[inline]
6056    pub fn op_sig_list(&self) -> Option<OpSigList> {
6057        support::child(&self.syntax)
6058    }
6059    #[inline]
6060    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6061        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6062    }
6063    #[inline]
6064    pub fn drop_token(&self) -> Option<SyntaxToken> {
6065        support::token(&self.syntax, SyntaxKind::DROP_KW)
6066    }
6067    #[inline]
6068    pub fn operator_token(&self) -> Option<SyntaxToken> {
6069        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6070    }
6071    #[inline]
6072    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6073        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6074    }
6075}
6076
6077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6078pub struct DropOperatorClass {
6079    pub(crate) syntax: SyntaxNode,
6080}
6081impl DropOperatorClass {
6082    #[inline]
6083    pub fn if_exists(&self) -> Option<IfExists> {
6084        support::child(&self.syntax)
6085    }
6086    #[inline]
6087    pub fn name_ref(&self) -> Option<NameRef> {
6088        support::child(&self.syntax)
6089    }
6090    #[inline]
6091    pub fn path(&self) -> Option<Path> {
6092        support::child(&self.syntax)
6093    }
6094    #[inline]
6095    pub fn class_token(&self) -> Option<SyntaxToken> {
6096        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6097    }
6098    #[inline]
6099    pub fn drop_token(&self) -> Option<SyntaxToken> {
6100        support::token(&self.syntax, SyntaxKind::DROP_KW)
6101    }
6102    #[inline]
6103    pub fn operator_token(&self) -> Option<SyntaxToken> {
6104        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6105    }
6106    #[inline]
6107    pub fn using_token(&self) -> Option<SyntaxToken> {
6108        support::token(&self.syntax, SyntaxKind::USING_KW)
6109    }
6110}
6111
6112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6113pub struct DropOperatorFamily {
6114    pub(crate) syntax: SyntaxNode,
6115}
6116impl DropOperatorFamily {
6117    #[inline]
6118    pub fn if_exists(&self) -> Option<IfExists> {
6119        support::child(&self.syntax)
6120    }
6121    #[inline]
6122    pub fn name_ref(&self) -> Option<NameRef> {
6123        support::child(&self.syntax)
6124    }
6125    #[inline]
6126    pub fn path(&self) -> Option<Path> {
6127        support::child(&self.syntax)
6128    }
6129    #[inline]
6130    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6131        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6132    }
6133    #[inline]
6134    pub fn drop_token(&self) -> Option<SyntaxToken> {
6135        support::token(&self.syntax, SyntaxKind::DROP_KW)
6136    }
6137    #[inline]
6138    pub fn family_token(&self) -> Option<SyntaxToken> {
6139        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6140    }
6141    #[inline]
6142    pub fn operator_token(&self) -> Option<SyntaxToken> {
6143        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6144    }
6145    #[inline]
6146    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6147        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6148    }
6149    #[inline]
6150    pub fn using_token(&self) -> Option<SyntaxToken> {
6151        support::token(&self.syntax, SyntaxKind::USING_KW)
6152    }
6153}
6154
6155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6156pub struct DropOwned {
6157    pub(crate) syntax: SyntaxNode,
6158}
6159impl DropOwned {
6160    #[inline]
6161    pub fn role_list(&self) -> Option<RoleList> {
6162        support::child(&self.syntax)
6163    }
6164    #[inline]
6165    pub fn by_token(&self) -> Option<SyntaxToken> {
6166        support::token(&self.syntax, SyntaxKind::BY_KW)
6167    }
6168    #[inline]
6169    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6170        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6171    }
6172    #[inline]
6173    pub fn drop_token(&self) -> Option<SyntaxToken> {
6174        support::token(&self.syntax, SyntaxKind::DROP_KW)
6175    }
6176    #[inline]
6177    pub fn owned_token(&self) -> Option<SyntaxToken> {
6178        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6179    }
6180    #[inline]
6181    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6182        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6183    }
6184}
6185
6186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6187pub struct DropPolicy {
6188    pub(crate) syntax: SyntaxNode,
6189}
6190impl DropPolicy {
6191    #[inline]
6192    pub fn if_exists(&self) -> Option<IfExists> {
6193        support::child(&self.syntax)
6194    }
6195    #[inline]
6196    pub fn name_ref(&self) -> Option<NameRef> {
6197        support::child(&self.syntax)
6198    }
6199    #[inline]
6200    pub fn on_table(&self) -> Option<OnTable> {
6201        support::child(&self.syntax)
6202    }
6203    #[inline]
6204    pub fn drop_token(&self) -> Option<SyntaxToken> {
6205        support::token(&self.syntax, SyntaxKind::DROP_KW)
6206    }
6207    #[inline]
6208    pub fn policy_token(&self) -> Option<SyntaxToken> {
6209        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6210    }
6211}
6212
6213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6214pub struct DropProcedure {
6215    pub(crate) syntax: SyntaxNode,
6216}
6217impl DropProcedure {
6218    #[inline]
6219    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6220        support::child(&self.syntax)
6221    }
6222    #[inline]
6223    pub fn if_exists(&self) -> Option<IfExists> {
6224        support::child(&self.syntax)
6225    }
6226    #[inline]
6227    pub fn drop_token(&self) -> Option<SyntaxToken> {
6228        support::token(&self.syntax, SyntaxKind::DROP_KW)
6229    }
6230    #[inline]
6231    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6232        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6233    }
6234}
6235
6236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6237pub struct DropPublication {
6238    pub(crate) syntax: SyntaxNode,
6239}
6240impl DropPublication {
6241    #[inline]
6242    pub fn if_exists(&self) -> Option<IfExists> {
6243        support::child(&self.syntax)
6244    }
6245    #[inline]
6246    pub fn name_refs(&self) -> AstChildren<NameRef> {
6247        support::children(&self.syntax)
6248    }
6249    #[inline]
6250    pub fn drop_token(&self) -> Option<SyntaxToken> {
6251        support::token(&self.syntax, SyntaxKind::DROP_KW)
6252    }
6253    #[inline]
6254    pub fn publication_token(&self) -> Option<SyntaxToken> {
6255        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6256    }
6257}
6258
6259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6260pub struct DropRole {
6261    pub(crate) syntax: SyntaxNode,
6262}
6263impl DropRole {
6264    #[inline]
6265    pub fn if_exists(&self) -> Option<IfExists> {
6266        support::child(&self.syntax)
6267    }
6268    #[inline]
6269    pub fn name_refs(&self) -> AstChildren<NameRef> {
6270        support::children(&self.syntax)
6271    }
6272    #[inline]
6273    pub fn drop_token(&self) -> Option<SyntaxToken> {
6274        support::token(&self.syntax, SyntaxKind::DROP_KW)
6275    }
6276    #[inline]
6277    pub fn role_token(&self) -> Option<SyntaxToken> {
6278        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6279    }
6280}
6281
6282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6283pub struct DropRoutine {
6284    pub(crate) syntax: SyntaxNode,
6285}
6286impl DropRoutine {
6287    #[inline]
6288    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6289        support::child(&self.syntax)
6290    }
6291    #[inline]
6292    pub fn if_exists(&self) -> Option<IfExists> {
6293        support::child(&self.syntax)
6294    }
6295    #[inline]
6296    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6297        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6298    }
6299    #[inline]
6300    pub fn drop_token(&self) -> Option<SyntaxToken> {
6301        support::token(&self.syntax, SyntaxKind::DROP_KW)
6302    }
6303    #[inline]
6304    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6305        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6306    }
6307    #[inline]
6308    pub fn routine_token(&self) -> Option<SyntaxToken> {
6309        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6310    }
6311}
6312
6313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6314pub struct DropRule {
6315    pub(crate) syntax: SyntaxNode,
6316}
6317impl DropRule {
6318    #[inline]
6319    pub fn if_exists(&self) -> Option<IfExists> {
6320        support::child(&self.syntax)
6321    }
6322    #[inline]
6323    pub fn name_ref(&self) -> Option<NameRef> {
6324        support::child(&self.syntax)
6325    }
6326    #[inline]
6327    pub fn on_table(&self) -> Option<OnTable> {
6328        support::child(&self.syntax)
6329    }
6330    #[inline]
6331    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6332        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6333    }
6334    #[inline]
6335    pub fn drop_token(&self) -> Option<SyntaxToken> {
6336        support::token(&self.syntax, SyntaxKind::DROP_KW)
6337    }
6338    #[inline]
6339    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6340        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6341    }
6342    #[inline]
6343    pub fn rule_token(&self) -> Option<SyntaxToken> {
6344        support::token(&self.syntax, SyntaxKind::RULE_KW)
6345    }
6346}
6347
6348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6349pub struct DropSchema {
6350    pub(crate) syntax: SyntaxNode,
6351}
6352impl DropSchema {
6353    #[inline]
6354    pub fn if_exists(&self) -> Option<IfExists> {
6355        support::child(&self.syntax)
6356    }
6357    #[inline]
6358    pub fn name_refs(&self) -> AstChildren<NameRef> {
6359        support::children(&self.syntax)
6360    }
6361    #[inline]
6362    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6363        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6364    }
6365    #[inline]
6366    pub fn drop_token(&self) -> Option<SyntaxToken> {
6367        support::token(&self.syntax, SyntaxKind::DROP_KW)
6368    }
6369    #[inline]
6370    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6371        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6372    }
6373    #[inline]
6374    pub fn schema_token(&self) -> Option<SyntaxToken> {
6375        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6376    }
6377}
6378
6379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6380pub struct DropSequence {
6381    pub(crate) syntax: SyntaxNode,
6382}
6383impl DropSequence {
6384    #[inline]
6385    pub fn if_exists(&self) -> Option<IfExists> {
6386        support::child(&self.syntax)
6387    }
6388    #[inline]
6389    pub fn paths(&self) -> AstChildren<Path> {
6390        support::children(&self.syntax)
6391    }
6392    #[inline]
6393    pub fn drop_token(&self) -> Option<SyntaxToken> {
6394        support::token(&self.syntax, SyntaxKind::DROP_KW)
6395    }
6396    #[inline]
6397    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6398        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6399    }
6400}
6401
6402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6403pub struct DropServer {
6404    pub(crate) syntax: SyntaxNode,
6405}
6406impl DropServer {
6407    #[inline]
6408    pub fn if_exists(&self) -> Option<IfExists> {
6409        support::child(&self.syntax)
6410    }
6411    #[inline]
6412    pub fn name_ref(&self) -> Option<NameRef> {
6413        support::child(&self.syntax)
6414    }
6415    #[inline]
6416    pub fn drop_token(&self) -> Option<SyntaxToken> {
6417        support::token(&self.syntax, SyntaxKind::DROP_KW)
6418    }
6419    #[inline]
6420    pub fn server_token(&self) -> Option<SyntaxToken> {
6421        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6422    }
6423}
6424
6425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6426pub struct DropStatistics {
6427    pub(crate) syntax: SyntaxNode,
6428}
6429impl DropStatistics {
6430    #[inline]
6431    pub fn if_exists(&self) -> Option<IfExists> {
6432        support::child(&self.syntax)
6433    }
6434    #[inline]
6435    pub fn paths(&self) -> AstChildren<Path> {
6436        support::children(&self.syntax)
6437    }
6438    #[inline]
6439    pub fn drop_token(&self) -> Option<SyntaxToken> {
6440        support::token(&self.syntax, SyntaxKind::DROP_KW)
6441    }
6442    #[inline]
6443    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6444        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6445    }
6446}
6447
6448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6449pub struct DropSubscription {
6450    pub(crate) syntax: SyntaxNode,
6451}
6452impl DropSubscription {
6453    #[inline]
6454    pub fn if_exists(&self) -> Option<IfExists> {
6455        support::child(&self.syntax)
6456    }
6457    #[inline]
6458    pub fn name_ref(&self) -> Option<NameRef> {
6459        support::child(&self.syntax)
6460    }
6461    #[inline]
6462    pub fn drop_token(&self) -> Option<SyntaxToken> {
6463        support::token(&self.syntax, SyntaxKind::DROP_KW)
6464    }
6465    #[inline]
6466    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6467        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6468    }
6469}
6470
6471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6472pub struct DropTable {
6473    pub(crate) syntax: SyntaxNode,
6474}
6475impl DropTable {
6476    #[inline]
6477    pub fn if_exists(&self) -> Option<IfExists> {
6478        support::child(&self.syntax)
6479    }
6480    #[inline]
6481    pub fn path(&self) -> Option<Path> {
6482        support::child(&self.syntax)
6483    }
6484    #[inline]
6485    pub fn comma_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::COMMA)
6487    }
6488    #[inline]
6489    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6490        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6491    }
6492    #[inline]
6493    pub fn drop_token(&self) -> Option<SyntaxToken> {
6494        support::token(&self.syntax, SyntaxKind::DROP_KW)
6495    }
6496    #[inline]
6497    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6498        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6499    }
6500    #[inline]
6501    pub fn table_token(&self) -> Option<SyntaxToken> {
6502        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6503    }
6504}
6505
6506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6507pub struct DropTablespace {
6508    pub(crate) syntax: SyntaxNode,
6509}
6510impl DropTablespace {
6511    #[inline]
6512    pub fn if_exists(&self) -> Option<IfExists> {
6513        support::child(&self.syntax)
6514    }
6515    #[inline]
6516    pub fn name_ref(&self) -> Option<NameRef> {
6517        support::child(&self.syntax)
6518    }
6519    #[inline]
6520    pub fn drop_token(&self) -> Option<SyntaxToken> {
6521        support::token(&self.syntax, SyntaxKind::DROP_KW)
6522    }
6523    #[inline]
6524    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6526    }
6527}
6528
6529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6530pub struct DropTextSearchConfig {
6531    pub(crate) syntax: SyntaxNode,
6532}
6533impl DropTextSearchConfig {
6534    #[inline]
6535    pub fn if_exists(&self) -> Option<IfExists> {
6536        support::child(&self.syntax)
6537    }
6538    #[inline]
6539    pub fn path(&self) -> Option<Path> {
6540        support::child(&self.syntax)
6541    }
6542    #[inline]
6543    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6544        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6545    }
6546    #[inline]
6547    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6548        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6549    }
6550    #[inline]
6551    pub fn drop_token(&self) -> Option<SyntaxToken> {
6552        support::token(&self.syntax, SyntaxKind::DROP_KW)
6553    }
6554    #[inline]
6555    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6556        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6557    }
6558    #[inline]
6559    pub fn search_token(&self) -> Option<SyntaxToken> {
6560        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6561    }
6562    #[inline]
6563    pub fn text_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6565    }
6566}
6567
6568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6569pub struct DropTextSearchDict {
6570    pub(crate) syntax: SyntaxNode,
6571}
6572impl DropTextSearchDict {
6573    #[inline]
6574    pub fn if_exists(&self) -> Option<IfExists> {
6575        support::child(&self.syntax)
6576    }
6577    #[inline]
6578    pub fn path(&self) -> Option<Path> {
6579        support::child(&self.syntax)
6580    }
6581    #[inline]
6582    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6583        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6584    }
6585    #[inline]
6586    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6587        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6588    }
6589    #[inline]
6590    pub fn drop_token(&self) -> Option<SyntaxToken> {
6591        support::token(&self.syntax, SyntaxKind::DROP_KW)
6592    }
6593    #[inline]
6594    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6595        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6596    }
6597    #[inline]
6598    pub fn search_token(&self) -> Option<SyntaxToken> {
6599        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6600    }
6601    #[inline]
6602    pub fn text_token(&self) -> Option<SyntaxToken> {
6603        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6604    }
6605}
6606
6607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6608pub struct DropTextSearchParser {
6609    pub(crate) syntax: SyntaxNode,
6610}
6611impl DropTextSearchParser {
6612    #[inline]
6613    pub fn if_exists(&self) -> Option<IfExists> {
6614        support::child(&self.syntax)
6615    }
6616    #[inline]
6617    pub fn path(&self) -> Option<Path> {
6618        support::child(&self.syntax)
6619    }
6620    #[inline]
6621    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6623    }
6624    #[inline]
6625    pub fn drop_token(&self) -> Option<SyntaxToken> {
6626        support::token(&self.syntax, SyntaxKind::DROP_KW)
6627    }
6628    #[inline]
6629    pub fn parser_token(&self) -> Option<SyntaxToken> {
6630        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6631    }
6632    #[inline]
6633    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6634        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6635    }
6636    #[inline]
6637    pub fn search_token(&self) -> Option<SyntaxToken> {
6638        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6639    }
6640    #[inline]
6641    pub fn text_token(&self) -> Option<SyntaxToken> {
6642        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6643    }
6644}
6645
6646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6647pub struct DropTextSearchTemplate {
6648    pub(crate) syntax: SyntaxNode,
6649}
6650impl DropTextSearchTemplate {
6651    #[inline]
6652    pub fn if_exists(&self) -> Option<IfExists> {
6653        support::child(&self.syntax)
6654    }
6655    #[inline]
6656    pub fn path(&self) -> Option<Path> {
6657        support::child(&self.syntax)
6658    }
6659    #[inline]
6660    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6661        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6662    }
6663    #[inline]
6664    pub fn drop_token(&self) -> Option<SyntaxToken> {
6665        support::token(&self.syntax, SyntaxKind::DROP_KW)
6666    }
6667    #[inline]
6668    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6669        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6670    }
6671    #[inline]
6672    pub fn search_token(&self) -> Option<SyntaxToken> {
6673        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6674    }
6675    #[inline]
6676    pub fn template_token(&self) -> Option<SyntaxToken> {
6677        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6678    }
6679    #[inline]
6680    pub fn text_token(&self) -> Option<SyntaxToken> {
6681        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6682    }
6683}
6684
6685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6686pub struct DropTransform {
6687    pub(crate) syntax: SyntaxNode,
6688}
6689impl DropTransform {
6690    #[inline]
6691    pub fn if_exists(&self) -> Option<IfExists> {
6692        support::child(&self.syntax)
6693    }
6694    #[inline]
6695    pub fn language(&self) -> Option<NameRef> {
6696        support::child(&self.syntax)
6697    }
6698    #[inline]
6699    pub fn ty(&self) -> Option<Type> {
6700        support::child(&self.syntax)
6701    }
6702    #[inline]
6703    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6704        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6705    }
6706    #[inline]
6707    pub fn drop_token(&self) -> Option<SyntaxToken> {
6708        support::token(&self.syntax, SyntaxKind::DROP_KW)
6709    }
6710    #[inline]
6711    pub fn for_token(&self) -> Option<SyntaxToken> {
6712        support::token(&self.syntax, SyntaxKind::FOR_KW)
6713    }
6714    #[inline]
6715    pub fn language_token(&self) -> Option<SyntaxToken> {
6716        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6717    }
6718    #[inline]
6719    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6720        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6721    }
6722    #[inline]
6723    pub fn transform_token(&self) -> Option<SyntaxToken> {
6724        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6725    }
6726}
6727
6728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6729pub struct DropTrigger {
6730    pub(crate) syntax: SyntaxNode,
6731}
6732impl DropTrigger {
6733    #[inline]
6734    pub fn if_exists(&self) -> Option<IfExists> {
6735        support::child(&self.syntax)
6736    }
6737    #[inline]
6738    pub fn on_table(&self) -> Option<OnTable> {
6739        support::child(&self.syntax)
6740    }
6741    #[inline]
6742    pub fn path(&self) -> Option<Path> {
6743        support::child(&self.syntax)
6744    }
6745    #[inline]
6746    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6747        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6748    }
6749    #[inline]
6750    pub fn drop_token(&self) -> Option<SyntaxToken> {
6751        support::token(&self.syntax, SyntaxKind::DROP_KW)
6752    }
6753    #[inline]
6754    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6755        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6756    }
6757    #[inline]
6758    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6759        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6760    }
6761}
6762
6763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6764pub struct DropType {
6765    pub(crate) syntax: SyntaxNode,
6766}
6767impl DropType {
6768    #[inline]
6769    pub fn if_exists(&self) -> Option<IfExists> {
6770        support::child(&self.syntax)
6771    }
6772    #[inline]
6773    pub fn paths(&self) -> AstChildren<Path> {
6774        support::children(&self.syntax)
6775    }
6776    #[inline]
6777    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6778        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6779    }
6780    #[inline]
6781    pub fn drop_token(&self) -> Option<SyntaxToken> {
6782        support::token(&self.syntax, SyntaxKind::DROP_KW)
6783    }
6784    #[inline]
6785    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6786        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6787    }
6788    #[inline]
6789    pub fn type_token(&self) -> Option<SyntaxToken> {
6790        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6791    }
6792}
6793
6794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6795pub struct DropUser {
6796    pub(crate) syntax: SyntaxNode,
6797}
6798impl DropUser {
6799    #[inline]
6800    pub fn if_exists(&self) -> Option<IfExists> {
6801        support::child(&self.syntax)
6802    }
6803    #[inline]
6804    pub fn name_refs(&self) -> AstChildren<NameRef> {
6805        support::children(&self.syntax)
6806    }
6807    #[inline]
6808    pub fn drop_token(&self) -> Option<SyntaxToken> {
6809        support::token(&self.syntax, SyntaxKind::DROP_KW)
6810    }
6811    #[inline]
6812    pub fn user_token(&self) -> Option<SyntaxToken> {
6813        support::token(&self.syntax, SyntaxKind::USER_KW)
6814    }
6815}
6816
6817#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6818pub struct DropUserMapping {
6819    pub(crate) syntax: SyntaxNode,
6820}
6821impl DropUserMapping {
6822    #[inline]
6823    pub fn if_exists(&self) -> Option<IfExists> {
6824        support::child(&self.syntax)
6825    }
6826    #[inline]
6827    pub fn name_ref(&self) -> Option<NameRef> {
6828        support::child(&self.syntax)
6829    }
6830    #[inline]
6831    pub fn role(&self) -> Option<Role> {
6832        support::child(&self.syntax)
6833    }
6834    #[inline]
6835    pub fn drop_token(&self) -> Option<SyntaxToken> {
6836        support::token(&self.syntax, SyntaxKind::DROP_KW)
6837    }
6838    #[inline]
6839    pub fn for_token(&self) -> Option<SyntaxToken> {
6840        support::token(&self.syntax, SyntaxKind::FOR_KW)
6841    }
6842    #[inline]
6843    pub fn mapping_token(&self) -> Option<SyntaxToken> {
6844        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
6845    }
6846    #[inline]
6847    pub fn server_token(&self) -> Option<SyntaxToken> {
6848        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6849    }
6850    #[inline]
6851    pub fn user_token(&self) -> Option<SyntaxToken> {
6852        support::token(&self.syntax, SyntaxKind::USER_KW)
6853    }
6854}
6855
6856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6857pub struct DropView {
6858    pub(crate) syntax: SyntaxNode,
6859}
6860impl DropView {
6861    #[inline]
6862    pub fn if_exists(&self) -> Option<IfExists> {
6863        support::child(&self.syntax)
6864    }
6865    #[inline]
6866    pub fn path(&self) -> Option<Path> {
6867        support::child(&self.syntax)
6868    }
6869    #[inline]
6870    pub fn drop_token(&self) -> Option<SyntaxToken> {
6871        support::token(&self.syntax, SyntaxKind::DROP_KW)
6872    }
6873    #[inline]
6874    pub fn view_token(&self) -> Option<SyntaxToken> {
6875        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6876    }
6877}
6878
6879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6880pub struct ElseClause {
6881    pub(crate) syntax: SyntaxNode,
6882}
6883impl ElseClause {
6884    #[inline]
6885    pub fn expr(&self) -> Option<Expr> {
6886        support::child(&self.syntax)
6887    }
6888    #[inline]
6889    pub fn else_token(&self) -> Option<SyntaxToken> {
6890        support::token(&self.syntax, SyntaxKind::ELSE_KW)
6891    }
6892}
6893
6894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6895pub struct EnableAlwaysRule {
6896    pub(crate) syntax: SyntaxNode,
6897}
6898impl EnableAlwaysRule {
6899    #[inline]
6900    pub fn always_token(&self) -> Option<SyntaxToken> {
6901        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
6902    }
6903    #[inline]
6904    pub fn enable_token(&self) -> Option<SyntaxToken> {
6905        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
6906    }
6907    #[inline]
6908    pub fn rule_token(&self) -> Option<SyntaxToken> {
6909        support::token(&self.syntax, SyntaxKind::RULE_KW)
6910    }
6911}
6912
6913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6914pub struct EnableAlwaysTrigger {
6915    pub(crate) syntax: SyntaxNode,
6916}
6917impl EnableAlwaysTrigger {
6918    #[inline]
6919    pub fn always_token(&self) -> Option<SyntaxToken> {
6920        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
6921    }
6922    #[inline]
6923    pub fn enable_token(&self) -> Option<SyntaxToken> {
6924        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
6925    }
6926    #[inline]
6927    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6928        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6929    }
6930}
6931
6932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6933pub struct EnableReplicaRule {
6934    pub(crate) syntax: SyntaxNode,
6935}
6936impl EnableReplicaRule {
6937    #[inline]
6938    pub fn enable_token(&self) -> Option<SyntaxToken> {
6939        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
6940    }
6941    #[inline]
6942    pub fn replica_token(&self) -> Option<SyntaxToken> {
6943        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
6944    }
6945    #[inline]
6946    pub fn rule_token(&self) -> Option<SyntaxToken> {
6947        support::token(&self.syntax, SyntaxKind::RULE_KW)
6948    }
6949}
6950
6951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6952pub struct EnableReplicaTrigger {
6953    pub(crate) syntax: SyntaxNode,
6954}
6955impl EnableReplicaTrigger {
6956    #[inline]
6957    pub fn enable_token(&self) -> Option<SyntaxToken> {
6958        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
6959    }
6960    #[inline]
6961    pub fn replica_token(&self) -> Option<SyntaxToken> {
6962        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
6963    }
6964    #[inline]
6965    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6966        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6967    }
6968}
6969
6970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6971pub struct EnableRls {
6972    pub(crate) syntax: SyntaxNode,
6973}
6974impl EnableRls {
6975    #[inline]
6976    pub fn enable_token(&self) -> Option<SyntaxToken> {
6977        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
6978    }
6979    #[inline]
6980    pub fn level_token(&self) -> Option<SyntaxToken> {
6981        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6982    }
6983    #[inline]
6984    pub fn row_token(&self) -> Option<SyntaxToken> {
6985        support::token(&self.syntax, SyntaxKind::ROW_KW)
6986    }
6987    #[inline]
6988    pub fn security_token(&self) -> Option<SyntaxToken> {
6989        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6990    }
6991}
6992
6993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6994pub struct EnableRule {
6995    pub(crate) syntax: SyntaxNode,
6996}
6997impl EnableRule {
6998    #[inline]
6999    pub fn enable_token(&self) -> Option<SyntaxToken> {
7000        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7001    }
7002    #[inline]
7003    pub fn rule_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::RULE_KW)
7005    }
7006}
7007
7008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7009pub struct EnableTrigger {
7010    pub(crate) syntax: SyntaxNode,
7011}
7012impl EnableTrigger {
7013    #[inline]
7014    pub fn enable_token(&self) -> Option<SyntaxToken> {
7015        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7016    }
7017    #[inline]
7018    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7019        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7020    }
7021}
7022
7023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7024pub struct Enforced {
7025    pub(crate) syntax: SyntaxNode,
7026}
7027impl Enforced {
7028    #[inline]
7029    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7030        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7031    }
7032}
7033
7034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7035pub struct EventTriggerWhen {
7036    pub(crate) syntax: SyntaxNode,
7037}
7038impl EventTriggerWhen {
7039    #[inline]
7040    pub fn literals(&self) -> AstChildren<Literal> {
7041        support::children(&self.syntax)
7042    }
7043    #[inline]
7044    pub fn name_ref(&self) -> Option<NameRef> {
7045        support::child(&self.syntax)
7046    }
7047    #[inline]
7048    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7049        support::token(&self.syntax, SyntaxKind::L_PAREN)
7050    }
7051    #[inline]
7052    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7053        support::token(&self.syntax, SyntaxKind::R_PAREN)
7054    }
7055    #[inline]
7056    pub fn in_token(&self) -> Option<SyntaxToken> {
7057        support::token(&self.syntax, SyntaxKind::IN_KW)
7058    }
7059}
7060
7061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7062pub struct EventTriggerWhenClause {
7063    pub(crate) syntax: SyntaxNode,
7064}
7065impl EventTriggerWhenClause {
7066    #[inline]
7067    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7068        support::children(&self.syntax)
7069    }
7070    #[inline]
7071    pub fn when_token(&self) -> Option<SyntaxToken> {
7072        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7073    }
7074}
7075
7076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7077pub struct ExceptTables {
7078    pub(crate) syntax: SyntaxNode,
7079}
7080impl ExceptTables {
7081    #[inline]
7082    pub fn name_refs(&self) -> AstChildren<NameRef> {
7083        support::children(&self.syntax)
7084    }
7085    #[inline]
7086    pub fn except_token(&self) -> Option<SyntaxToken> {
7087        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7088    }
7089}
7090
7091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7092pub struct ExcludeConstraint {
7093    pub(crate) syntax: SyntaxNode,
7094}
7095impl ExcludeConstraint {
7096    #[inline]
7097    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7098        support::child(&self.syntax)
7099    }
7100    #[inline]
7101    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7102        support::child(&self.syntax)
7103    }
7104    #[inline]
7105    pub fn name(&self) -> Option<Name> {
7106        support::child(&self.syntax)
7107    }
7108    #[inline]
7109    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7110        support::child(&self.syntax)
7111    }
7112    #[inline]
7113    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7114        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7115    }
7116    #[inline]
7117    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7118        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7119    }
7120}
7121
7122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7123pub struct Execute {
7124    pub(crate) syntax: SyntaxNode,
7125}
7126impl Execute {
7127    #[inline]
7128    pub fn arg_list(&self) -> Option<ArgList> {
7129        support::child(&self.syntax)
7130    }
7131    #[inline]
7132    pub fn name_ref(&self) -> Option<NameRef> {
7133        support::child(&self.syntax)
7134    }
7135    #[inline]
7136    pub fn execute_token(&self) -> Option<SyntaxToken> {
7137        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7138    }
7139}
7140
7141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7142pub struct ExistsFn {
7143    pub(crate) syntax: SyntaxNode,
7144}
7145impl ExistsFn {
7146    #[inline]
7147    pub fn select_variant(&self) -> Option<SelectVariant> {
7148        support::child(&self.syntax)
7149    }
7150    #[inline]
7151    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7152        support::token(&self.syntax, SyntaxKind::L_PAREN)
7153    }
7154    #[inline]
7155    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::R_PAREN)
7157    }
7158    #[inline]
7159    pub fn exists_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7161    }
7162}
7163
7164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7165pub struct Explain {
7166    pub(crate) syntax: SyntaxNode,
7167}
7168impl Explain {
7169    #[inline]
7170    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7171        support::child(&self.syntax)
7172    }
7173    #[inline]
7174    pub fn explain_token(&self) -> Option<SyntaxToken> {
7175        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7176    }
7177}
7178
7179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7180pub struct ExprAsName {
7181    pub(crate) syntax: SyntaxNode,
7182}
7183impl ExprAsName {
7184    #[inline]
7185    pub fn as_name(&self) -> Option<AsName> {
7186        support::child(&self.syntax)
7187    }
7188    #[inline]
7189    pub fn expr(&self) -> Option<Expr> {
7190        support::child(&self.syntax)
7191    }
7192}
7193
7194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7195pub struct ExprType {
7196    pub(crate) syntax: SyntaxNode,
7197}
7198impl ExprType {
7199    #[inline]
7200    pub fn expr(&self) -> Option<Expr> {
7201        support::child(&self.syntax)
7202    }
7203}
7204
7205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7206pub struct ExtractFn {
7207    pub(crate) syntax: SyntaxNode,
7208}
7209impl ExtractFn {
7210    #[inline]
7211    pub fn expr(&self) -> Option<Expr> {
7212        support::child(&self.syntax)
7213    }
7214    #[inline]
7215    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7216        support::token(&self.syntax, SyntaxKind::L_PAREN)
7217    }
7218    #[inline]
7219    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7220        support::token(&self.syntax, SyntaxKind::R_PAREN)
7221    }
7222    #[inline]
7223    pub fn day_token(&self) -> Option<SyntaxToken> {
7224        support::token(&self.syntax, SyntaxKind::DAY_KW)
7225    }
7226    #[inline]
7227    pub fn extract_token(&self) -> Option<SyntaxToken> {
7228        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7229    }
7230    #[inline]
7231    pub fn from_token(&self) -> Option<SyntaxToken> {
7232        support::token(&self.syntax, SyntaxKind::FROM_KW)
7233    }
7234    #[inline]
7235    pub fn hour_token(&self) -> Option<SyntaxToken> {
7236        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7237    }
7238    #[inline]
7239    pub fn ident_token(&self) -> Option<SyntaxToken> {
7240        support::token(&self.syntax, SyntaxKind::IDENT)
7241    }
7242    #[inline]
7243    pub fn minute_token(&self) -> Option<SyntaxToken> {
7244        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7245    }
7246    #[inline]
7247    pub fn month_token(&self) -> Option<SyntaxToken> {
7248        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7249    }
7250    #[inline]
7251    pub fn second_token(&self) -> Option<SyntaxToken> {
7252        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7253    }
7254    #[inline]
7255    pub fn string_token(&self) -> Option<SyntaxToken> {
7256        support::token(&self.syntax, SyntaxKind::STRING_KW)
7257    }
7258    #[inline]
7259    pub fn year_token(&self) -> Option<SyntaxToken> {
7260        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7261    }
7262}
7263
7264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7265pub struct FatArrow {
7266    pub(crate) syntax: SyntaxNode,
7267}
7268impl FatArrow {
7269    #[inline]
7270    pub fn eq_token(&self) -> Option<SyntaxToken> {
7271        support::token(&self.syntax, SyntaxKind::EQ)
7272    }
7273    #[inline]
7274    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7275        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7276    }
7277}
7278
7279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7280pub struct FdwOption {
7281    pub(crate) syntax: SyntaxNode,
7282}
7283impl FdwOption {
7284    #[inline]
7285    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7286        support::child(&self.syntax)
7287    }
7288    #[inline]
7289    pub fn path(&self) -> Option<Path> {
7290        support::child(&self.syntax)
7291    }
7292    #[inline]
7293    pub fn handler_token(&self) -> Option<SyntaxToken> {
7294        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7295    }
7296    #[inline]
7297    pub fn no_token(&self) -> Option<SyntaxToken> {
7298        support::token(&self.syntax, SyntaxKind::NO_KW)
7299    }
7300    #[inline]
7301    pub fn options_token(&self) -> Option<SyntaxToken> {
7302        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7303    }
7304    #[inline]
7305    pub fn validator_token(&self) -> Option<SyntaxToken> {
7306        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7307    }
7308}
7309
7310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7311pub struct FdwOptionList {
7312    pub(crate) syntax: SyntaxNode,
7313}
7314impl FdwOptionList {
7315    #[inline]
7316    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7317        support::children(&self.syntax)
7318    }
7319}
7320
7321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7322pub struct Fetch {
7323    pub(crate) syntax: SyntaxNode,
7324}
7325impl Fetch {
7326    #[inline]
7327    pub fn name_ref(&self) -> Option<NameRef> {
7328        support::child(&self.syntax)
7329    }
7330    #[inline]
7331    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7332        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7333    }
7334    #[inline]
7335    pub fn from_token(&self) -> Option<SyntaxToken> {
7336        support::token(&self.syntax, SyntaxKind::FROM_KW)
7337    }
7338    #[inline]
7339    pub fn in_token(&self) -> Option<SyntaxToken> {
7340        support::token(&self.syntax, SyntaxKind::IN_KW)
7341    }
7342}
7343
7344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7345pub struct FetchClause {
7346    pub(crate) syntax: SyntaxNode,
7347}
7348impl FetchClause {
7349    #[inline]
7350    pub fn expr(&self) -> Option<Expr> {
7351        support::child(&self.syntax)
7352    }
7353    #[inline]
7354    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7355        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7356    }
7357    #[inline]
7358    pub fn first_token(&self) -> Option<SyntaxToken> {
7359        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7360    }
7361    #[inline]
7362    pub fn next_token(&self) -> Option<SyntaxToken> {
7363        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7364    }
7365    #[inline]
7366    pub fn only_token(&self) -> Option<SyntaxToken> {
7367        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7368    }
7369    #[inline]
7370    pub fn row_token(&self) -> Option<SyntaxToken> {
7371        support::token(&self.syntax, SyntaxKind::ROW_KW)
7372    }
7373    #[inline]
7374    pub fn rows_token(&self) -> Option<SyntaxToken> {
7375        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7376    }
7377    #[inline]
7378    pub fn ties_token(&self) -> Option<SyntaxToken> {
7379        support::token(&self.syntax, SyntaxKind::TIES_KW)
7380    }
7381    #[inline]
7382    pub fn with_token(&self) -> Option<SyntaxToken> {
7383        support::token(&self.syntax, SyntaxKind::WITH_KW)
7384    }
7385}
7386
7387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7388pub struct FieldExpr {
7389    pub(crate) syntax: SyntaxNode,
7390}
7391impl FieldExpr {
7392    #[inline]
7393    pub fn star_token(&self) -> Option<SyntaxToken> {
7394        support::token(&self.syntax, SyntaxKind::STAR)
7395    }
7396    #[inline]
7397    pub fn dot_token(&self) -> Option<SyntaxToken> {
7398        support::token(&self.syntax, SyntaxKind::DOT)
7399    }
7400}
7401
7402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7403pub struct FilterClause {
7404    pub(crate) syntax: SyntaxNode,
7405}
7406impl FilterClause {
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 filter_token(&self) -> Option<SyntaxToken> {
7421        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7422    }
7423    #[inline]
7424    pub fn where_token(&self) -> Option<SyntaxToken> {
7425        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7426    }
7427}
7428
7429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7430pub struct ForProvider {
7431    pub(crate) syntax: SyntaxNode,
7432}
7433impl ForProvider {
7434    #[inline]
7435    pub fn literal(&self) -> Option<Literal> {
7436        support::child(&self.syntax)
7437    }
7438    #[inline]
7439    pub fn name_ref(&self) -> Option<NameRef> {
7440        support::child(&self.syntax)
7441    }
7442    #[inline]
7443    pub fn for_token(&self) -> Option<SyntaxToken> {
7444        support::token(&self.syntax, SyntaxKind::FOR_KW)
7445    }
7446}
7447
7448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7449pub struct ForceRls {
7450    pub(crate) syntax: SyntaxNode,
7451}
7452impl ForceRls {
7453    #[inline]
7454    pub fn force_token(&self) -> Option<SyntaxToken> {
7455        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7456    }
7457    #[inline]
7458    pub fn level_token(&self) -> Option<SyntaxToken> {
7459        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7460    }
7461    #[inline]
7462    pub fn row_token(&self) -> Option<SyntaxToken> {
7463        support::token(&self.syntax, SyntaxKind::ROW_KW)
7464    }
7465    #[inline]
7466    pub fn security_token(&self) -> Option<SyntaxToken> {
7467        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7468    }
7469}
7470
7471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7472pub struct ForeignKeyConstraint {
7473    pub(crate) syntax: SyntaxNode,
7474}
7475impl ForeignKeyConstraint {
7476    #[inline]
7477    pub fn match_type(&self) -> Option<MatchType> {
7478        support::child(&self.syntax)
7479    }
7480    #[inline]
7481    pub fn name(&self) -> Option<Name> {
7482        support::child(&self.syntax)
7483    }
7484    #[inline]
7485    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7486        support::child(&self.syntax)
7487    }
7488    #[inline]
7489    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7490        support::child(&self.syntax)
7491    }
7492    #[inline]
7493    pub fn path(&self) -> Option<Path> {
7494        support::child(&self.syntax)
7495    }
7496    #[inline]
7497    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7498        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7499    }
7500    #[inline]
7501    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7502        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7503    }
7504    #[inline]
7505    pub fn key_token(&self) -> Option<SyntaxToken> {
7506        support::token(&self.syntax, SyntaxKind::KEY_KW)
7507    }
7508    #[inline]
7509    pub fn references_token(&self) -> Option<SyntaxToken> {
7510        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7511    }
7512}
7513
7514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7515pub struct FrameClause {
7516    pub(crate) syntax: SyntaxNode,
7517}
7518impl FrameClause {
7519    #[inline]
7520    pub fn groups_token(&self) -> Option<SyntaxToken> {
7521        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7522    }
7523    #[inline]
7524    pub fn range_token(&self) -> Option<SyntaxToken> {
7525        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7526    }
7527    #[inline]
7528    pub fn rows_token(&self) -> Option<SyntaxToken> {
7529        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7530    }
7531}
7532
7533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7534pub struct FromClause {
7535    pub(crate) syntax: SyntaxNode,
7536}
7537impl FromClause {
7538    #[inline]
7539    pub fn from_items(&self) -> AstChildren<FromItem> {
7540        support::children(&self.syntax)
7541    }
7542    #[inline]
7543    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7544        support::children(&self.syntax)
7545    }
7546    #[inline]
7547    pub fn from_token(&self) -> Option<SyntaxToken> {
7548        support::token(&self.syntax, SyntaxKind::FROM_KW)
7549    }
7550}
7551
7552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7553pub struct FromItem {
7554    pub(crate) syntax: SyntaxNode,
7555}
7556impl FromItem {
7557    #[inline]
7558    pub fn alias(&self) -> Option<Alias> {
7559        support::child(&self.syntax)
7560    }
7561    #[inline]
7562    pub fn call_expr(&self) -> Option<CallExpr> {
7563        support::child(&self.syntax)
7564    }
7565    #[inline]
7566    pub fn cast_expr(&self) -> Option<CastExpr> {
7567        support::child(&self.syntax)
7568    }
7569    #[inline]
7570    pub fn field_expr(&self) -> Option<FieldExpr> {
7571        support::child(&self.syntax)
7572    }
7573    #[inline]
7574    pub fn json_table(&self) -> Option<JsonTable> {
7575        support::child(&self.syntax)
7576    }
7577    #[inline]
7578    pub fn name_ref(&self) -> Option<NameRef> {
7579        support::child(&self.syntax)
7580    }
7581    #[inline]
7582    pub fn paren_select(&self) -> Option<ParenSelect> {
7583        support::child(&self.syntax)
7584    }
7585    #[inline]
7586    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7587        support::child(&self.syntax)
7588    }
7589    #[inline]
7590    pub fn xml_table(&self) -> Option<XmlTable> {
7591        support::child(&self.syntax)
7592    }
7593    #[inline]
7594    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7595        support::token(&self.syntax, SyntaxKind::L_PAREN)
7596    }
7597    #[inline]
7598    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7599        support::token(&self.syntax, SyntaxKind::R_PAREN)
7600    }
7601    #[inline]
7602    pub fn from_token(&self) -> Option<SyntaxToken> {
7603        support::token(&self.syntax, SyntaxKind::FROM_KW)
7604    }
7605    #[inline]
7606    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7607        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7608    }
7609    #[inline]
7610    pub fn only_token(&self) -> Option<SyntaxToken> {
7611        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7612    }
7613    #[inline]
7614    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7615        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7616    }
7617    #[inline]
7618    pub fn rows_token(&self) -> Option<SyntaxToken> {
7619        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7620    }
7621    #[inline]
7622    pub fn with_token(&self) -> Option<SyntaxToken> {
7623        support::token(&self.syntax, SyntaxKind::WITH_KW)
7624    }
7625}
7626
7627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7628pub struct FromServer {
7629    pub(crate) syntax: SyntaxNode,
7630}
7631impl FromServer {
7632    #[inline]
7633    pub fn name_ref(&self) -> Option<NameRef> {
7634        support::child(&self.syntax)
7635    }
7636    #[inline]
7637    pub fn from_token(&self) -> Option<SyntaxToken> {
7638        support::token(&self.syntax, SyntaxKind::FROM_KW)
7639    }
7640    #[inline]
7641    pub fn server_token(&self) -> Option<SyntaxToken> {
7642        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7643    }
7644}
7645
7646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7647pub struct FromTable {
7648    pub(crate) syntax: SyntaxNode,
7649}
7650impl FromTable {
7651    #[inline]
7652    pub fn path(&self) -> Option<Path> {
7653        support::child(&self.syntax)
7654    }
7655    #[inline]
7656    pub fn from_token(&self) -> Option<SyntaxToken> {
7657        support::token(&self.syntax, SyntaxKind::FROM_KW)
7658    }
7659}
7660
7661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7662pub struct FuncOptionList {
7663    pub(crate) syntax: SyntaxNode,
7664}
7665impl FuncOptionList {
7666    #[inline]
7667    pub fn options(&self) -> AstChildren<FuncOption> {
7668        support::children(&self.syntax)
7669    }
7670}
7671
7672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7673pub struct FunctionSig {
7674    pub(crate) syntax: SyntaxNode,
7675}
7676impl FunctionSig {
7677    #[inline]
7678    pub fn param_list(&self) -> Option<ParamList> {
7679        support::child(&self.syntax)
7680    }
7681    #[inline]
7682    pub fn path(&self) -> Option<Path> {
7683        support::child(&self.syntax)
7684    }
7685}
7686
7687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7688pub struct FunctionSigList {
7689    pub(crate) syntax: SyntaxNode,
7690}
7691impl FunctionSigList {
7692    #[inline]
7693    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7694        support::children(&self.syntax)
7695    }
7696}
7697
7698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7699pub struct GeneratedConstraint {
7700    pub(crate) syntax: SyntaxNode,
7701}
7702impl GeneratedConstraint {
7703    #[inline]
7704    pub fn expr(&self) -> Option<Expr> {
7705        support::child(&self.syntax)
7706    }
7707    #[inline]
7708    pub fn name_ref(&self) -> Option<NameRef> {
7709        support::child(&self.syntax)
7710    }
7711    #[inline]
7712    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7713        support::child(&self.syntax)
7714    }
7715    #[inline]
7716    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7717        support::token(&self.syntax, SyntaxKind::L_PAREN)
7718    }
7719    #[inline]
7720    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7721        support::token(&self.syntax, SyntaxKind::R_PAREN)
7722    }
7723    #[inline]
7724    pub fn always_token(&self) -> Option<SyntaxToken> {
7725        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7726    }
7727    #[inline]
7728    pub fn as_token(&self) -> Option<SyntaxToken> {
7729        support::token(&self.syntax, SyntaxKind::AS_KW)
7730    }
7731    #[inline]
7732    pub fn by_token(&self) -> Option<SyntaxToken> {
7733        support::token(&self.syntax, SyntaxKind::BY_KW)
7734    }
7735    #[inline]
7736    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7737        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7738    }
7739    #[inline]
7740    pub fn default_token(&self) -> Option<SyntaxToken> {
7741        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7742    }
7743    #[inline]
7744    pub fn generated_token(&self) -> Option<SyntaxToken> {
7745        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7746    }
7747    #[inline]
7748    pub fn identity_token(&self) -> Option<SyntaxToken> {
7749        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7750    }
7751    #[inline]
7752    pub fn stored_token(&self) -> Option<SyntaxToken> {
7753        support::token(&self.syntax, SyntaxKind::STORED_KW)
7754    }
7755}
7756
7757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7758pub struct Grant {
7759    pub(crate) syntax: SyntaxNode,
7760}
7761impl Grant {
7762    #[inline]
7763    pub fn name_refs(&self) -> AstChildren<NameRef> {
7764        support::children(&self.syntax)
7765    }
7766    #[inline]
7767    pub fn paths(&self) -> AstChildren<Path> {
7768        support::children(&self.syntax)
7769    }
7770    #[inline]
7771    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7772        support::child(&self.syntax)
7773    }
7774    #[inline]
7775    pub fn role(&self) -> Option<Role> {
7776        support::child(&self.syntax)
7777    }
7778    #[inline]
7779    pub fn role_list(&self) -> Option<RoleList> {
7780        support::child(&self.syntax)
7781    }
7782    #[inline]
7783    pub fn all_token(&self) -> Option<SyntaxToken> {
7784        support::token(&self.syntax, SyntaxKind::ALL_KW)
7785    }
7786    #[inline]
7787    pub fn by_token(&self) -> Option<SyntaxToken> {
7788        support::token(&self.syntax, SyntaxKind::BY_KW)
7789    }
7790    #[inline]
7791    pub fn grant_token(&self) -> Option<SyntaxToken> {
7792        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7793    }
7794    #[inline]
7795    pub fn granted_token(&self) -> Option<SyntaxToken> {
7796        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
7797    }
7798    #[inline]
7799    pub fn in_token(&self) -> Option<SyntaxToken> {
7800        support::token(&self.syntax, SyntaxKind::IN_KW)
7801    }
7802    #[inline]
7803    pub fn on_token(&self) -> Option<SyntaxToken> {
7804        support::token(&self.syntax, SyntaxKind::ON_KW)
7805    }
7806    #[inline]
7807    pub fn option_token(&self) -> Option<SyntaxToken> {
7808        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7809    }
7810    #[inline]
7811    pub fn privileges_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
7813    }
7814    #[inline]
7815    pub fn schema_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7817    }
7818    #[inline]
7819    pub fn table_token(&self) -> Option<SyntaxToken> {
7820        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7821    }
7822    #[inline]
7823    pub fn tables_token(&self) -> Option<SyntaxToken> {
7824        support::token(&self.syntax, SyntaxKind::TABLES_KW)
7825    }
7826    #[inline]
7827    pub fn to_token(&self) -> Option<SyntaxToken> {
7828        support::token(&self.syntax, SyntaxKind::TO_KW)
7829    }
7830    #[inline]
7831    pub fn with_token(&self) -> Option<SyntaxToken> {
7832        support::token(&self.syntax, SyntaxKind::WITH_KW)
7833    }
7834}
7835
7836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7837pub struct GrantDefaultPrivileges {
7838    pub(crate) syntax: SyntaxNode,
7839}
7840impl GrantDefaultPrivileges {
7841    #[inline]
7842    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
7843        support::child(&self.syntax)
7844    }
7845    #[inline]
7846    pub fn privileges(&self) -> Option<Privileges> {
7847        support::child(&self.syntax)
7848    }
7849    #[inline]
7850    pub fn role_list(&self) -> Option<RoleList> {
7851        support::child(&self.syntax)
7852    }
7853    #[inline]
7854    pub fn grant_token(&self) -> Option<SyntaxToken> {
7855        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7856    }
7857    #[inline]
7858    pub fn on_token(&self) -> Option<SyntaxToken> {
7859        support::token(&self.syntax, SyntaxKind::ON_KW)
7860    }
7861    #[inline]
7862    pub fn option_token(&self) -> Option<SyntaxToken> {
7863        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7864    }
7865    #[inline]
7866    pub fn to_token(&self) -> Option<SyntaxToken> {
7867        support::token(&self.syntax, SyntaxKind::TO_KW)
7868    }
7869    #[inline]
7870    pub fn with_token(&self) -> Option<SyntaxToken> {
7871        support::token(&self.syntax, SyntaxKind::WITH_KW)
7872    }
7873}
7874
7875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7876pub struct GroupByClause {
7877    pub(crate) syntax: SyntaxNode,
7878}
7879impl GroupByClause {
7880    #[inline]
7881    pub fn group_by_list(&self) -> Option<GroupByList> {
7882        support::child(&self.syntax)
7883    }
7884    #[inline]
7885    pub fn all_token(&self) -> Option<SyntaxToken> {
7886        support::token(&self.syntax, SyntaxKind::ALL_KW)
7887    }
7888    #[inline]
7889    pub fn by_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::BY_KW)
7891    }
7892    #[inline]
7893    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7895    }
7896    #[inline]
7897    pub fn group_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::GROUP_KW)
7899    }
7900}
7901
7902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7903pub struct GroupByList {
7904    pub(crate) syntax: SyntaxNode,
7905}
7906impl GroupByList {
7907    #[inline]
7908    pub fn group_bys(&self) -> AstChildren<GroupBy> {
7909        support::children(&self.syntax)
7910    }
7911}
7912
7913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7914pub struct GroupingCube {
7915    pub(crate) syntax: SyntaxNode,
7916}
7917impl GroupingCube {
7918    #[inline]
7919    pub fn expr(&self) -> Option<Expr> {
7920        support::child(&self.syntax)
7921    }
7922    #[inline]
7923    pub fn cube_token(&self) -> Option<SyntaxToken> {
7924        support::token(&self.syntax, SyntaxKind::CUBE_KW)
7925    }
7926}
7927
7928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7929pub struct GroupingExpr {
7930    pub(crate) syntax: SyntaxNode,
7931}
7932impl GroupingExpr {
7933    #[inline]
7934    pub fn expr(&self) -> Option<Expr> {
7935        support::child(&self.syntax)
7936    }
7937}
7938
7939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7940pub struct GroupingRollup {
7941    pub(crate) syntax: SyntaxNode,
7942}
7943impl GroupingRollup {
7944    #[inline]
7945    pub fn expr(&self) -> Option<Expr> {
7946        support::child(&self.syntax)
7947    }
7948    #[inline]
7949    pub fn rollup_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
7951    }
7952}
7953
7954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7955pub struct GroupingSets {
7956    pub(crate) syntax: SyntaxNode,
7957}
7958impl GroupingSets {
7959    #[inline]
7960    pub fn expr(&self) -> Option<Expr> {
7961        support::child(&self.syntax)
7962    }
7963    #[inline]
7964    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::L_PAREN)
7966    }
7967    #[inline]
7968    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7969        support::token(&self.syntax, SyntaxKind::R_PAREN)
7970    }
7971    #[inline]
7972    pub fn grouping_token(&self) -> Option<SyntaxToken> {
7973        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
7974    }
7975    #[inline]
7976    pub fn sets_token(&self) -> Option<SyntaxToken> {
7977        support::token(&self.syntax, SyntaxKind::SETS_KW)
7978    }
7979}
7980
7981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7982pub struct Gteq {
7983    pub(crate) syntax: SyntaxNode,
7984}
7985impl Gteq {
7986    #[inline]
7987    pub fn eq_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::EQ)
7989    }
7990    #[inline]
7991    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7993    }
7994}
7995
7996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7997pub struct HandlerClause {
7998    pub(crate) syntax: SyntaxNode,
7999}
8000impl HandlerClause {
8001    #[inline]
8002    pub fn path(&self) -> Option<Path> {
8003        support::child(&self.syntax)
8004    }
8005    #[inline]
8006    pub fn handler_token(&self) -> Option<SyntaxToken> {
8007        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8008    }
8009}
8010
8011#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8012pub struct HavingClause {
8013    pub(crate) syntax: SyntaxNode,
8014}
8015impl HavingClause {
8016    #[inline]
8017    pub fn expr(&self) -> Option<Expr> {
8018        support::child(&self.syntax)
8019    }
8020    #[inline]
8021    pub fn having_token(&self) -> Option<SyntaxToken> {
8022        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8023    }
8024}
8025
8026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8027pub struct IfExists {
8028    pub(crate) syntax: SyntaxNode,
8029}
8030impl IfExists {
8031    #[inline]
8032    pub fn exists_token(&self) -> Option<SyntaxToken> {
8033        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8034    }
8035    #[inline]
8036    pub fn if_token(&self) -> Option<SyntaxToken> {
8037        support::token(&self.syntax, SyntaxKind::IF_KW)
8038    }
8039}
8040
8041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8042pub struct IfNotExists {
8043    pub(crate) syntax: SyntaxNode,
8044}
8045impl IfNotExists {
8046    #[inline]
8047    pub fn exists_token(&self) -> Option<SyntaxToken> {
8048        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8049    }
8050    #[inline]
8051    pub fn if_token(&self) -> Option<SyntaxToken> {
8052        support::token(&self.syntax, SyntaxKind::IF_KW)
8053    }
8054    #[inline]
8055    pub fn not_token(&self) -> Option<SyntaxToken> {
8056        support::token(&self.syntax, SyntaxKind::NOT_KW)
8057    }
8058}
8059
8060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8061pub struct ImportForeignSchema {
8062    pub(crate) syntax: SyntaxNode,
8063}
8064impl ImportForeignSchema {
8065    #[inline]
8066    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8067        support::child(&self.syntax)
8068    }
8069    #[inline]
8070    pub fn except_tables(&self) -> Option<ExceptTables> {
8071        support::child(&self.syntax)
8072    }
8073    #[inline]
8074    pub fn from_server(&self) -> Option<FromServer> {
8075        support::child(&self.syntax)
8076    }
8077    #[inline]
8078    pub fn into_schema(&self) -> Option<IntoSchema> {
8079        support::child(&self.syntax)
8080    }
8081    #[inline]
8082    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8083        support::child(&self.syntax)
8084    }
8085    #[inline]
8086    pub fn name_ref(&self) -> Option<NameRef> {
8087        support::child(&self.syntax)
8088    }
8089    #[inline]
8090    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8091        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8092    }
8093    #[inline]
8094    pub fn import_token(&self) -> Option<SyntaxToken> {
8095        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8096    }
8097    #[inline]
8098    pub fn schema_token(&self) -> Option<SyntaxToken> {
8099        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8100    }
8101}
8102
8103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8104pub struct IndexExpr {
8105    pub(crate) syntax: SyntaxNode,
8106}
8107impl IndexExpr {
8108    #[inline]
8109    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8110        support::token(&self.syntax, SyntaxKind::L_BRACK)
8111    }
8112    #[inline]
8113    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8114        support::token(&self.syntax, SyntaxKind::R_BRACK)
8115    }
8116}
8117
8118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8119pub struct Inherit {
8120    pub(crate) syntax: SyntaxNode,
8121}
8122impl Inherit {
8123    #[inline]
8124    pub fn path(&self) -> Option<Path> {
8125        support::child(&self.syntax)
8126    }
8127    #[inline]
8128    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8129        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8130    }
8131}
8132
8133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8134pub struct InheritTable {
8135    pub(crate) syntax: SyntaxNode,
8136}
8137impl InheritTable {
8138    #[inline]
8139    pub fn path(&self) -> Option<Path> {
8140        support::child(&self.syntax)
8141    }
8142    #[inline]
8143    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8144        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8145    }
8146}
8147
8148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8149pub struct Inherits {
8150    pub(crate) syntax: SyntaxNode,
8151}
8152impl Inherits {
8153    #[inline]
8154    pub fn paths(&self) -> AstChildren<Path> {
8155        support::children(&self.syntax)
8156    }
8157    #[inline]
8158    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8159        support::token(&self.syntax, SyntaxKind::L_PAREN)
8160    }
8161    #[inline]
8162    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8163        support::token(&self.syntax, SyntaxKind::R_PAREN)
8164    }
8165    #[inline]
8166    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8167        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8168    }
8169}
8170
8171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8172pub struct InitiallyDeferredConstraintOption {
8173    pub(crate) syntax: SyntaxNode,
8174}
8175impl InitiallyDeferredConstraintOption {
8176    #[inline]
8177    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8178        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8179    }
8180    #[inline]
8181    pub fn initially_token(&self) -> Option<SyntaxToken> {
8182        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8183    }
8184}
8185
8186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8187pub struct InitiallyImmediateConstraintOption {
8188    pub(crate) syntax: SyntaxNode,
8189}
8190impl InitiallyImmediateConstraintOption {
8191    #[inline]
8192    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8193        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8194    }
8195    #[inline]
8196    pub fn initially_token(&self) -> Option<SyntaxToken> {
8197        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8198    }
8199}
8200
8201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8202pub struct Insert {
8203    pub(crate) syntax: SyntaxNode,
8204}
8205impl Insert {
8206    #[inline]
8207    pub fn alias(&self) -> Option<Alias> {
8208        support::child(&self.syntax)
8209    }
8210    #[inline]
8211    pub fn column_list(&self) -> Option<ColumnList> {
8212        support::child(&self.syntax)
8213    }
8214    #[inline]
8215    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8216        support::child(&self.syntax)
8217    }
8218    #[inline]
8219    pub fn path(&self) -> Option<Path> {
8220        support::child(&self.syntax)
8221    }
8222    #[inline]
8223    pub fn returning_clause(&self) -> Option<ReturningClause> {
8224        support::child(&self.syntax)
8225    }
8226    #[inline]
8227    pub fn stmt(&self) -> Option<Stmt> {
8228        support::child(&self.syntax)
8229    }
8230    #[inline]
8231    pub fn values(&self) -> Option<Values> {
8232        support::child(&self.syntax)
8233    }
8234    #[inline]
8235    pub fn default_token(&self) -> Option<SyntaxToken> {
8236        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8237    }
8238    #[inline]
8239    pub fn insert_token(&self) -> Option<SyntaxToken> {
8240        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8241    }
8242    #[inline]
8243    pub fn into_token(&self) -> Option<SyntaxToken> {
8244        support::token(&self.syntax, SyntaxKind::INTO_KW)
8245    }
8246    #[inline]
8247    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8248        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8249    }
8250    #[inline]
8251    pub fn system_token(&self) -> Option<SyntaxToken> {
8252        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8253    }
8254    #[inline]
8255    pub fn user_token(&self) -> Option<SyntaxToken> {
8256        support::token(&self.syntax, SyntaxKind::USER_KW)
8257    }
8258    #[inline]
8259    pub fn value_token(&self) -> Option<SyntaxToken> {
8260        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8261    }
8262    #[inline]
8263    pub fn values_token(&self) -> Option<SyntaxToken> {
8264        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8265    }
8266}
8267
8268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8269pub struct IntervalType {
8270    pub(crate) syntax: SyntaxNode,
8271}
8272impl IntervalType {
8273    #[inline]
8274    pub fn literal(&self) -> Option<Literal> {
8275        support::child(&self.syntax)
8276    }
8277    #[inline]
8278    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8279        support::token(&self.syntax, SyntaxKind::L_PAREN)
8280    }
8281    #[inline]
8282    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8283        support::token(&self.syntax, SyntaxKind::R_PAREN)
8284    }
8285    #[inline]
8286    pub fn day_token(&self) -> Option<SyntaxToken> {
8287        support::token(&self.syntax, SyntaxKind::DAY_KW)
8288    }
8289    #[inline]
8290    pub fn hour_token(&self) -> Option<SyntaxToken> {
8291        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8292    }
8293    #[inline]
8294    pub fn interval_token(&self) -> Option<SyntaxToken> {
8295        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8296    }
8297    #[inline]
8298    pub fn minute_token(&self) -> Option<SyntaxToken> {
8299        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8300    }
8301    #[inline]
8302    pub fn month_token(&self) -> Option<SyntaxToken> {
8303        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8304    }
8305    #[inline]
8306    pub fn second_token(&self) -> Option<SyntaxToken> {
8307        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8308    }
8309    #[inline]
8310    pub fn to_token(&self) -> Option<SyntaxToken> {
8311        support::token(&self.syntax, SyntaxKind::TO_KW)
8312    }
8313    #[inline]
8314    pub fn year_token(&self) -> Option<SyntaxToken> {
8315        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8316    }
8317}
8318
8319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8320pub struct IntoClause {
8321    pub(crate) syntax: SyntaxNode,
8322}
8323impl IntoClause {
8324    #[inline]
8325    pub fn path(&self) -> Option<Path> {
8326        support::child(&self.syntax)
8327    }
8328    #[inline]
8329    pub fn into_token(&self) -> Option<SyntaxToken> {
8330        support::token(&self.syntax, SyntaxKind::INTO_KW)
8331    }
8332}
8333
8334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8335pub struct IntoSchema {
8336    pub(crate) syntax: SyntaxNode,
8337}
8338impl IntoSchema {
8339    #[inline]
8340    pub fn name_ref(&self) -> Option<NameRef> {
8341        support::child(&self.syntax)
8342    }
8343    #[inline]
8344    pub fn into_token(&self) -> Option<SyntaxToken> {
8345        support::token(&self.syntax, SyntaxKind::INTO_KW)
8346    }
8347}
8348
8349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8350pub struct IsDistinctFrom {
8351    pub(crate) syntax: SyntaxNode,
8352}
8353impl IsDistinctFrom {
8354    #[inline]
8355    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8356        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8357    }
8358    #[inline]
8359    pub fn from_token(&self) -> Option<SyntaxToken> {
8360        support::token(&self.syntax, SyntaxKind::FROM_KW)
8361    }
8362    #[inline]
8363    pub fn is_token(&self) -> Option<SyntaxToken> {
8364        support::token(&self.syntax, SyntaxKind::IS_KW)
8365    }
8366}
8367
8368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8369pub struct IsJson {
8370    pub(crate) syntax: SyntaxNode,
8371}
8372impl IsJson {
8373    #[inline]
8374    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8375        support::child(&self.syntax)
8376    }
8377    #[inline]
8378    pub fn is_token(&self) -> Option<SyntaxToken> {
8379        support::token(&self.syntax, SyntaxKind::IS_KW)
8380    }
8381    #[inline]
8382    pub fn json_token(&self) -> Option<SyntaxToken> {
8383        support::token(&self.syntax, SyntaxKind::JSON_KW)
8384    }
8385}
8386
8387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8388pub struct IsJsonArray {
8389    pub(crate) syntax: SyntaxNode,
8390}
8391impl IsJsonArray {
8392    #[inline]
8393    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8394        support::child(&self.syntax)
8395    }
8396    #[inline]
8397    pub fn array_token(&self) -> Option<SyntaxToken> {
8398        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8399    }
8400    #[inline]
8401    pub fn is_token(&self) -> Option<SyntaxToken> {
8402        support::token(&self.syntax, SyntaxKind::IS_KW)
8403    }
8404    #[inline]
8405    pub fn json_token(&self) -> Option<SyntaxToken> {
8406        support::token(&self.syntax, SyntaxKind::JSON_KW)
8407    }
8408}
8409
8410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8411pub struct IsJsonObject {
8412    pub(crate) syntax: SyntaxNode,
8413}
8414impl IsJsonObject {
8415    #[inline]
8416    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8417        support::child(&self.syntax)
8418    }
8419    #[inline]
8420    pub fn is_token(&self) -> Option<SyntaxToken> {
8421        support::token(&self.syntax, SyntaxKind::IS_KW)
8422    }
8423    #[inline]
8424    pub fn json_token(&self) -> Option<SyntaxToken> {
8425        support::token(&self.syntax, SyntaxKind::JSON_KW)
8426    }
8427    #[inline]
8428    pub fn object_token(&self) -> Option<SyntaxToken> {
8429        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8430    }
8431}
8432
8433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8434pub struct IsJsonScalar {
8435    pub(crate) syntax: SyntaxNode,
8436}
8437impl IsJsonScalar {
8438    #[inline]
8439    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8440        support::child(&self.syntax)
8441    }
8442    #[inline]
8443    pub fn is_token(&self) -> Option<SyntaxToken> {
8444        support::token(&self.syntax, SyntaxKind::IS_KW)
8445    }
8446    #[inline]
8447    pub fn json_token(&self) -> Option<SyntaxToken> {
8448        support::token(&self.syntax, SyntaxKind::JSON_KW)
8449    }
8450    #[inline]
8451    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8452        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8453    }
8454}
8455
8456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8457pub struct IsJsonValue {
8458    pub(crate) syntax: SyntaxNode,
8459}
8460impl IsJsonValue {
8461    #[inline]
8462    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8463        support::child(&self.syntax)
8464    }
8465    #[inline]
8466    pub fn is_token(&self) -> Option<SyntaxToken> {
8467        support::token(&self.syntax, SyntaxKind::IS_KW)
8468    }
8469    #[inline]
8470    pub fn json_token(&self) -> Option<SyntaxToken> {
8471        support::token(&self.syntax, SyntaxKind::JSON_KW)
8472    }
8473    #[inline]
8474    pub fn value_token(&self) -> Option<SyntaxToken> {
8475        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8476    }
8477}
8478
8479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8480pub struct IsNormalized {
8481    pub(crate) syntax: SyntaxNode,
8482}
8483impl IsNormalized {
8484    #[inline]
8485    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8486        support::child(&self.syntax)
8487    }
8488    #[inline]
8489    pub fn is_token(&self) -> Option<SyntaxToken> {
8490        support::token(&self.syntax, SyntaxKind::IS_KW)
8491    }
8492    #[inline]
8493    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8494        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8495    }
8496}
8497
8498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8499pub struct IsNot {
8500    pub(crate) syntax: SyntaxNode,
8501}
8502impl IsNot {
8503    #[inline]
8504    pub fn is_token(&self) -> Option<SyntaxToken> {
8505        support::token(&self.syntax, SyntaxKind::IS_KW)
8506    }
8507    #[inline]
8508    pub fn not_token(&self) -> Option<SyntaxToken> {
8509        support::token(&self.syntax, SyntaxKind::NOT_KW)
8510    }
8511}
8512
8513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8514pub struct IsNotDistinctFrom {
8515    pub(crate) syntax: SyntaxNode,
8516}
8517impl IsNotDistinctFrom {
8518    #[inline]
8519    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8520        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8521    }
8522    #[inline]
8523    pub fn from_token(&self) -> Option<SyntaxToken> {
8524        support::token(&self.syntax, SyntaxKind::FROM_KW)
8525    }
8526    #[inline]
8527    pub fn is_token(&self) -> Option<SyntaxToken> {
8528        support::token(&self.syntax, SyntaxKind::IS_KW)
8529    }
8530    #[inline]
8531    pub fn not_token(&self) -> Option<SyntaxToken> {
8532        support::token(&self.syntax, SyntaxKind::NOT_KW)
8533    }
8534}
8535
8536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8537pub struct IsNotJson {
8538    pub(crate) syntax: SyntaxNode,
8539}
8540impl IsNotJson {
8541    #[inline]
8542    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8543        support::child(&self.syntax)
8544    }
8545    #[inline]
8546    pub fn is_token(&self) -> Option<SyntaxToken> {
8547        support::token(&self.syntax, SyntaxKind::IS_KW)
8548    }
8549    #[inline]
8550    pub fn json_token(&self) -> Option<SyntaxToken> {
8551        support::token(&self.syntax, SyntaxKind::JSON_KW)
8552    }
8553    #[inline]
8554    pub fn not_token(&self) -> Option<SyntaxToken> {
8555        support::token(&self.syntax, SyntaxKind::NOT_KW)
8556    }
8557}
8558
8559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8560pub struct IsNotJsonArray {
8561    pub(crate) syntax: SyntaxNode,
8562}
8563impl IsNotJsonArray {
8564    #[inline]
8565    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8566        support::child(&self.syntax)
8567    }
8568    #[inline]
8569    pub fn array_token(&self) -> Option<SyntaxToken> {
8570        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8571    }
8572    #[inline]
8573    pub fn is_token(&self) -> Option<SyntaxToken> {
8574        support::token(&self.syntax, SyntaxKind::IS_KW)
8575    }
8576    #[inline]
8577    pub fn json_token(&self) -> Option<SyntaxToken> {
8578        support::token(&self.syntax, SyntaxKind::JSON_KW)
8579    }
8580    #[inline]
8581    pub fn not_token(&self) -> Option<SyntaxToken> {
8582        support::token(&self.syntax, SyntaxKind::NOT_KW)
8583    }
8584}
8585
8586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8587pub struct IsNotJsonObject {
8588    pub(crate) syntax: SyntaxNode,
8589}
8590impl IsNotJsonObject {
8591    #[inline]
8592    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8593        support::child(&self.syntax)
8594    }
8595    #[inline]
8596    pub fn is_token(&self) -> Option<SyntaxToken> {
8597        support::token(&self.syntax, SyntaxKind::IS_KW)
8598    }
8599    #[inline]
8600    pub fn json_token(&self) -> Option<SyntaxToken> {
8601        support::token(&self.syntax, SyntaxKind::JSON_KW)
8602    }
8603    #[inline]
8604    pub fn not_token(&self) -> Option<SyntaxToken> {
8605        support::token(&self.syntax, SyntaxKind::NOT_KW)
8606    }
8607    #[inline]
8608    pub fn object_token(&self) -> Option<SyntaxToken> {
8609        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8610    }
8611}
8612
8613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8614pub struct IsNotJsonScalar {
8615    pub(crate) syntax: SyntaxNode,
8616}
8617impl IsNotJsonScalar {
8618    #[inline]
8619    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8620        support::child(&self.syntax)
8621    }
8622    #[inline]
8623    pub fn is_token(&self) -> Option<SyntaxToken> {
8624        support::token(&self.syntax, SyntaxKind::IS_KW)
8625    }
8626    #[inline]
8627    pub fn json_token(&self) -> Option<SyntaxToken> {
8628        support::token(&self.syntax, SyntaxKind::JSON_KW)
8629    }
8630    #[inline]
8631    pub fn not_token(&self) -> Option<SyntaxToken> {
8632        support::token(&self.syntax, SyntaxKind::NOT_KW)
8633    }
8634    #[inline]
8635    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8636        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8637    }
8638}
8639
8640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8641pub struct IsNotJsonValue {
8642    pub(crate) syntax: SyntaxNode,
8643}
8644impl IsNotJsonValue {
8645    #[inline]
8646    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8647        support::child(&self.syntax)
8648    }
8649    #[inline]
8650    pub fn is_token(&self) -> Option<SyntaxToken> {
8651        support::token(&self.syntax, SyntaxKind::IS_KW)
8652    }
8653    #[inline]
8654    pub fn json_token(&self) -> Option<SyntaxToken> {
8655        support::token(&self.syntax, SyntaxKind::JSON_KW)
8656    }
8657    #[inline]
8658    pub fn not_token(&self) -> Option<SyntaxToken> {
8659        support::token(&self.syntax, SyntaxKind::NOT_KW)
8660    }
8661    #[inline]
8662    pub fn value_token(&self) -> Option<SyntaxToken> {
8663        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8664    }
8665}
8666
8667#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8668pub struct IsNotNormalized {
8669    pub(crate) syntax: SyntaxNode,
8670}
8671impl IsNotNormalized {
8672    #[inline]
8673    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8674        support::child(&self.syntax)
8675    }
8676    #[inline]
8677    pub fn is_token(&self) -> Option<SyntaxToken> {
8678        support::token(&self.syntax, SyntaxKind::IS_KW)
8679    }
8680    #[inline]
8681    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8682        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8683    }
8684    #[inline]
8685    pub fn not_token(&self) -> Option<SyntaxToken> {
8686        support::token(&self.syntax, SyntaxKind::NOT_KW)
8687    }
8688}
8689
8690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8691pub struct Join {
8692    pub(crate) syntax: SyntaxNode,
8693}
8694impl Join {
8695    #[inline]
8696    pub fn from_item(&self) -> Option<FromItem> {
8697        support::child(&self.syntax)
8698    }
8699    #[inline]
8700    pub fn join_type(&self) -> Option<JoinType> {
8701        support::child(&self.syntax)
8702    }
8703    #[inline]
8704    pub fn on_clause(&self) -> Option<OnClause> {
8705        support::child(&self.syntax)
8706    }
8707    #[inline]
8708    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8709        support::child(&self.syntax)
8710    }
8711    #[inline]
8712    pub fn natural_token(&self) -> Option<SyntaxToken> {
8713        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8714    }
8715}
8716
8717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8718pub struct JoinCross {
8719    pub(crate) syntax: SyntaxNode,
8720}
8721impl JoinCross {
8722    #[inline]
8723    pub fn cross_token(&self) -> Option<SyntaxToken> {
8724        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8725    }
8726    #[inline]
8727    pub fn join_token(&self) -> Option<SyntaxToken> {
8728        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8729    }
8730}
8731
8732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8733pub struct JoinExpr {
8734    pub(crate) syntax: SyntaxNode,
8735}
8736impl JoinExpr {
8737    #[inline]
8738    pub fn from_item(&self) -> Option<FromItem> {
8739        support::child(&self.syntax)
8740    }
8741    #[inline]
8742    pub fn join(&self) -> Option<Join> {
8743        support::child(&self.syntax)
8744    }
8745    #[inline]
8746    pub fn join_expr(&self) -> Option<JoinExpr> {
8747        support::child(&self.syntax)
8748    }
8749}
8750
8751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8752pub struct JoinFull {
8753    pub(crate) syntax: SyntaxNode,
8754}
8755impl JoinFull {
8756    #[inline]
8757    pub fn full_token(&self) -> Option<SyntaxToken> {
8758        support::token(&self.syntax, SyntaxKind::FULL_KW)
8759    }
8760    #[inline]
8761    pub fn join_token(&self) -> Option<SyntaxToken> {
8762        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8763    }
8764    #[inline]
8765    pub fn outer_token(&self) -> Option<SyntaxToken> {
8766        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8767    }
8768}
8769
8770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8771pub struct JoinInner {
8772    pub(crate) syntax: SyntaxNode,
8773}
8774impl JoinInner {
8775    #[inline]
8776    pub fn inner_token(&self) -> Option<SyntaxToken> {
8777        support::token(&self.syntax, SyntaxKind::INNER_KW)
8778    }
8779    #[inline]
8780    pub fn join_token(&self) -> Option<SyntaxToken> {
8781        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8782    }
8783}
8784
8785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8786pub struct JoinLeft {
8787    pub(crate) syntax: SyntaxNode,
8788}
8789impl JoinLeft {
8790    #[inline]
8791    pub fn join_token(&self) -> Option<SyntaxToken> {
8792        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8793    }
8794    #[inline]
8795    pub fn left_token(&self) -> Option<SyntaxToken> {
8796        support::token(&self.syntax, SyntaxKind::LEFT_KW)
8797    }
8798    #[inline]
8799    pub fn outer_token(&self) -> Option<SyntaxToken> {
8800        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8801    }
8802}
8803
8804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8805pub struct JoinRight {
8806    pub(crate) syntax: SyntaxNode,
8807}
8808impl JoinRight {
8809    #[inline]
8810    pub fn join_token(&self) -> Option<SyntaxToken> {
8811        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8812    }
8813    #[inline]
8814    pub fn outer_token(&self) -> Option<SyntaxToken> {
8815        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8816    }
8817    #[inline]
8818    pub fn right_token(&self) -> Option<SyntaxToken> {
8819        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
8820    }
8821}
8822
8823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8824pub struct JoinUsingClause {
8825    pub(crate) syntax: SyntaxNode,
8826}
8827impl JoinUsingClause {
8828    #[inline]
8829    pub fn alias(&self) -> Option<Alias> {
8830        support::child(&self.syntax)
8831    }
8832    #[inline]
8833    pub fn column_list(&self) -> Option<ColumnList> {
8834        support::child(&self.syntax)
8835    }
8836    #[inline]
8837    pub fn using_token(&self) -> Option<SyntaxToken> {
8838        support::token(&self.syntax, SyntaxKind::USING_KW)
8839    }
8840}
8841
8842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8843pub struct JsonArrayAggFn {
8844    pub(crate) syntax: SyntaxNode,
8845}
8846impl JsonArrayAggFn {
8847    #[inline]
8848    pub fn expr(&self) -> Option<Expr> {
8849        support::child(&self.syntax)
8850    }
8851    #[inline]
8852    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
8853        support::child(&self.syntax)
8854    }
8855    #[inline]
8856    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
8857        support::child(&self.syntax)
8858    }
8859    #[inline]
8860    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
8861        support::children(&self.syntax)
8862    }
8863    #[inline]
8864    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8865        support::token(&self.syntax, SyntaxKind::L_PAREN)
8866    }
8867    #[inline]
8868    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8869        support::token(&self.syntax, SyntaxKind::R_PAREN)
8870    }
8871    #[inline]
8872    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
8873        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
8874    }
8875}
8876
8877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8878pub struct JsonArrayFn {
8879    pub(crate) syntax: SyntaxNode,
8880}
8881impl JsonArrayFn {
8882    #[inline]
8883    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
8884        support::children(&self.syntax)
8885    }
8886    #[inline]
8887    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
8888        support::child(&self.syntax)
8889    }
8890    #[inline]
8891    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
8892        support::child(&self.syntax)
8893    }
8894    #[inline]
8895    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
8896        support::children(&self.syntax)
8897    }
8898    #[inline]
8899    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8900        support::token(&self.syntax, SyntaxKind::L_PAREN)
8901    }
8902    #[inline]
8903    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8904        support::token(&self.syntax, SyntaxKind::R_PAREN)
8905    }
8906    #[inline]
8907    pub fn json_array_token(&self) -> Option<SyntaxToken> {
8908        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
8909    }
8910}
8911
8912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8913pub struct JsonBehaviorClause {
8914    pub(crate) syntax: SyntaxNode,
8915}
8916impl JsonBehaviorClause {
8917    #[inline]
8918    pub fn json_behavior(&self) -> Option<JsonBehavior> {
8919        support::child(&self.syntax)
8920    }
8921}
8922
8923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8924pub struct JsonBehaviorDefault {
8925    pub(crate) syntax: SyntaxNode,
8926}
8927impl JsonBehaviorDefault {
8928    #[inline]
8929    pub fn expr(&self) -> Option<Expr> {
8930        support::child(&self.syntax)
8931    }
8932    #[inline]
8933    pub fn default_token(&self) -> Option<SyntaxToken> {
8934        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8935    }
8936}
8937
8938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8939pub struct JsonBehaviorEmptyArray {
8940    pub(crate) syntax: SyntaxNode,
8941}
8942impl JsonBehaviorEmptyArray {
8943    #[inline]
8944    pub fn array_token(&self) -> Option<SyntaxToken> {
8945        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8946    }
8947    #[inline]
8948    pub fn empty_token(&self) -> Option<SyntaxToken> {
8949        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
8950    }
8951}
8952
8953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8954pub struct JsonBehaviorEmptyObject {
8955    pub(crate) syntax: SyntaxNode,
8956}
8957impl JsonBehaviorEmptyObject {
8958    #[inline]
8959    pub fn empty_token(&self) -> Option<SyntaxToken> {
8960        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
8961    }
8962    #[inline]
8963    pub fn object_token(&self) -> Option<SyntaxToken> {
8964        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8965    }
8966}
8967
8968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8969pub struct JsonBehaviorError {
8970    pub(crate) syntax: SyntaxNode,
8971}
8972impl JsonBehaviorError {
8973    #[inline]
8974    pub fn error_token(&self) -> Option<SyntaxToken> {
8975        support::token(&self.syntax, SyntaxKind::ERROR_KW)
8976    }
8977}
8978
8979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8980pub struct JsonBehaviorFalse {
8981    pub(crate) syntax: SyntaxNode,
8982}
8983impl JsonBehaviorFalse {
8984    #[inline]
8985    pub fn false_token(&self) -> Option<SyntaxToken> {
8986        support::token(&self.syntax, SyntaxKind::FALSE_KW)
8987    }
8988}
8989
8990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8991pub struct JsonBehaviorNull {
8992    pub(crate) syntax: SyntaxNode,
8993}
8994impl JsonBehaviorNull {
8995    #[inline]
8996    pub fn null_token(&self) -> Option<SyntaxToken> {
8997        support::token(&self.syntax, SyntaxKind::NULL_KW)
8998    }
8999}
9000
9001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9002pub struct JsonBehaviorTrue {
9003    pub(crate) syntax: SyntaxNode,
9004}
9005impl JsonBehaviorTrue {
9006    #[inline]
9007    pub fn true_token(&self) -> Option<SyntaxToken> {
9008        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9009    }
9010}
9011
9012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9013pub struct JsonBehaviorUnknown {
9014    pub(crate) syntax: SyntaxNode,
9015}
9016impl JsonBehaviorUnknown {
9017    #[inline]
9018    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9019        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9020    }
9021}
9022
9023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9024pub struct JsonEncodingClause {
9025    pub(crate) syntax: SyntaxNode,
9026}
9027impl JsonEncodingClause {
9028    #[inline]
9029    pub fn name_ref(&self) -> Option<NameRef> {
9030        support::child(&self.syntax)
9031    }
9032    #[inline]
9033    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9034        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9035    }
9036}
9037
9038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9039pub struct JsonExistsFn {
9040    pub(crate) syntax: SyntaxNode,
9041}
9042impl JsonExistsFn {
9043    #[inline]
9044    pub fn expr(&self) -> Option<Expr> {
9045        support::child(&self.syntax)
9046    }
9047    #[inline]
9048    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9049        support::child(&self.syntax)
9050    }
9051    #[inline]
9052    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9053        support::child(&self.syntax)
9054    }
9055    #[inline]
9056    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9057        support::child(&self.syntax)
9058    }
9059    #[inline]
9060    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9061        support::token(&self.syntax, SyntaxKind::L_PAREN)
9062    }
9063    #[inline]
9064    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9065        support::token(&self.syntax, SyntaxKind::R_PAREN)
9066    }
9067    #[inline]
9068    pub fn comma_token(&self) -> Option<SyntaxToken> {
9069        support::token(&self.syntax, SyntaxKind::COMMA)
9070    }
9071    #[inline]
9072    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9073        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9074    }
9075}
9076
9077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9078pub struct JsonExprFormat {
9079    pub(crate) syntax: SyntaxNode,
9080}
9081impl JsonExprFormat {
9082    #[inline]
9083    pub fn expr(&self) -> Option<Expr> {
9084        support::child(&self.syntax)
9085    }
9086    #[inline]
9087    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9088        support::child(&self.syntax)
9089    }
9090}
9091
9092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9093pub struct JsonFn {
9094    pub(crate) syntax: SyntaxNode,
9095}
9096impl JsonFn {
9097    #[inline]
9098    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9099        support::child(&self.syntax)
9100    }
9101    #[inline]
9102    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9103        support::child(&self.syntax)
9104    }
9105    #[inline]
9106    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9107        support::token(&self.syntax, SyntaxKind::L_PAREN)
9108    }
9109    #[inline]
9110    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9111        support::token(&self.syntax, SyntaxKind::R_PAREN)
9112    }
9113    #[inline]
9114    pub fn json_token(&self) -> Option<SyntaxToken> {
9115        support::token(&self.syntax, SyntaxKind::JSON_KW)
9116    }
9117}
9118
9119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9120pub struct JsonFormatClause {
9121    pub(crate) syntax: SyntaxNode,
9122}
9123impl JsonFormatClause {
9124    #[inline]
9125    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9126        support::child(&self.syntax)
9127    }
9128    #[inline]
9129    pub fn format_token(&self) -> Option<SyntaxToken> {
9130        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9131    }
9132    #[inline]
9133    pub fn json_token(&self) -> Option<SyntaxToken> {
9134        support::token(&self.syntax, SyntaxKind::JSON_KW)
9135    }
9136}
9137
9138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9139pub struct JsonKeyValue {
9140    pub(crate) syntax: SyntaxNode,
9141}
9142impl JsonKeyValue {
9143    #[inline]
9144    pub fn expr(&self) -> Option<Expr> {
9145        support::child(&self.syntax)
9146    }
9147    #[inline]
9148    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9149        support::child(&self.syntax)
9150    }
9151    #[inline]
9152    pub fn colon_token(&self) -> Option<SyntaxToken> {
9153        support::token(&self.syntax, SyntaxKind::COLON)
9154    }
9155}
9156
9157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9158pub struct JsonKeysUniqueClause {
9159    pub(crate) syntax: SyntaxNode,
9160}
9161impl JsonKeysUniqueClause {
9162    #[inline]
9163    pub fn keys_token(&self) -> Option<SyntaxToken> {
9164        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9165    }
9166    #[inline]
9167    pub fn unique_token(&self) -> Option<SyntaxToken> {
9168        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9169    }
9170    #[inline]
9171    pub fn with_token(&self) -> Option<SyntaxToken> {
9172        support::token(&self.syntax, SyntaxKind::WITH_KW)
9173    }
9174    #[inline]
9175    pub fn without_token(&self) -> Option<SyntaxToken> {
9176        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9177    }
9178}
9179
9180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9181pub struct JsonNullClause {
9182    pub(crate) syntax: SyntaxNode,
9183}
9184impl JsonNullClause {
9185    #[inline]
9186    pub fn absent_token(&self) -> Option<SyntaxToken> {
9187        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9188    }
9189    #[inline]
9190    pub fn null_token(&self) -> Option<SyntaxToken> {
9191        support::token(&self.syntax, SyntaxKind::NULL_KW)
9192    }
9193    #[inline]
9194    pub fn on_token(&self) -> Option<SyntaxToken> {
9195        support::token(&self.syntax, SyntaxKind::ON_KW)
9196    }
9197}
9198
9199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9200pub struct JsonObjectAggFn {
9201    pub(crate) syntax: SyntaxNode,
9202}
9203impl JsonObjectAggFn {
9204    #[inline]
9205    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9206        support::child(&self.syntax)
9207    }
9208    #[inline]
9209    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9210        support::child(&self.syntax)
9211    }
9212    #[inline]
9213    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9214        support::child(&self.syntax)
9215    }
9216    #[inline]
9217    pub fn returning_clause(&self) -> Option<ReturningClause> {
9218        support::child(&self.syntax)
9219    }
9220    #[inline]
9221    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9222        support::token(&self.syntax, SyntaxKind::L_PAREN)
9223    }
9224    #[inline]
9225    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9226        support::token(&self.syntax, SyntaxKind::R_PAREN)
9227    }
9228    #[inline]
9229    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9230        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9231    }
9232}
9233
9234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9235pub struct JsonObjectFn {
9236    pub(crate) syntax: SyntaxNode,
9237}
9238impl JsonObjectFn {
9239    #[inline]
9240    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9241        support::children(&self.syntax)
9242    }
9243    #[inline]
9244    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9245        support::child(&self.syntax)
9246    }
9247    #[inline]
9248    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9249        support::child(&self.syntax)
9250    }
9251    #[inline]
9252    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9253        support::child(&self.syntax)
9254    }
9255    #[inline]
9256    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9257        support::token(&self.syntax, SyntaxKind::L_PAREN)
9258    }
9259    #[inline]
9260    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9261        support::token(&self.syntax, SyntaxKind::R_PAREN)
9262    }
9263    #[inline]
9264    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9265        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9266    }
9267}
9268
9269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9270pub struct JsonOnEmptyClause {
9271    pub(crate) syntax: SyntaxNode,
9272}
9273impl JsonOnEmptyClause {
9274    #[inline]
9275    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9276        support::child(&self.syntax)
9277    }
9278    #[inline]
9279    pub fn empty_token(&self) -> Option<SyntaxToken> {
9280        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9281    }
9282    #[inline]
9283    pub fn on_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::ON_KW)
9285    }
9286}
9287
9288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9289pub struct JsonOnErrorClause {
9290    pub(crate) syntax: SyntaxNode,
9291}
9292impl JsonOnErrorClause {
9293    #[inline]
9294    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9295        support::child(&self.syntax)
9296    }
9297    #[inline]
9298    pub fn error_token(&self) -> Option<SyntaxToken> {
9299        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9300    }
9301    #[inline]
9302    pub fn on_token(&self) -> Option<SyntaxToken> {
9303        support::token(&self.syntax, SyntaxKind::ON_KW)
9304    }
9305}
9306
9307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9308pub struct JsonPassingArg {
9309    pub(crate) syntax: SyntaxNode,
9310}
9311impl JsonPassingArg {
9312    #[inline]
9313    pub fn expr(&self) -> Option<Expr> {
9314        support::child(&self.syntax)
9315    }
9316}
9317
9318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9319pub struct JsonPassingClause {
9320    pub(crate) syntax: SyntaxNode,
9321}
9322impl JsonPassingClause {
9323    #[inline]
9324    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9325        support::children(&self.syntax)
9326    }
9327    #[inline]
9328    pub fn passing_token(&self) -> Option<SyntaxToken> {
9329        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9330    }
9331}
9332
9333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9334pub struct JsonPathClause {
9335    pub(crate) syntax: SyntaxNode,
9336}
9337impl JsonPathClause {
9338    #[inline]
9339    pub fn expr(&self) -> Option<Expr> {
9340        support::child(&self.syntax)
9341    }
9342    #[inline]
9343    pub fn path_token(&self) -> Option<SyntaxToken> {
9344        support::token(&self.syntax, SyntaxKind::PATH_KW)
9345    }
9346}
9347
9348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9349pub struct JsonQueryFn {
9350    pub(crate) syntax: SyntaxNode,
9351}
9352impl JsonQueryFn {
9353    #[inline]
9354    pub fn expr(&self) -> Option<Expr> {
9355        support::child(&self.syntax)
9356    }
9357    #[inline]
9358    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9359        support::child(&self.syntax)
9360    }
9361    #[inline]
9362    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9363        support::child(&self.syntax)
9364    }
9365    #[inline]
9366    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9367        support::child(&self.syntax)
9368    }
9369    #[inline]
9370    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9371        support::child(&self.syntax)
9372    }
9373    #[inline]
9374    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9375        support::child(&self.syntax)
9376    }
9377    #[inline]
9378    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9379        support::child(&self.syntax)
9380    }
9381    #[inline]
9382    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9383        support::token(&self.syntax, SyntaxKind::L_PAREN)
9384    }
9385    #[inline]
9386    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9387        support::token(&self.syntax, SyntaxKind::R_PAREN)
9388    }
9389    #[inline]
9390    pub fn comma_token(&self) -> Option<SyntaxToken> {
9391        support::token(&self.syntax, SyntaxKind::COMMA)
9392    }
9393    #[inline]
9394    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9395        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9396    }
9397}
9398
9399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9400pub struct JsonQuotesClause {
9401    pub(crate) syntax: SyntaxNode,
9402}
9403impl JsonQuotesClause {
9404    #[inline]
9405    pub fn keep_token(&self) -> Option<SyntaxToken> {
9406        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9407    }
9408    #[inline]
9409    pub fn omit_token(&self) -> Option<SyntaxToken> {
9410        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9411    }
9412    #[inline]
9413    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9414        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9415    }
9416}
9417
9418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9419pub struct JsonReturningClause {
9420    pub(crate) syntax: SyntaxNode,
9421}
9422impl JsonReturningClause {
9423    #[inline]
9424    pub fn ty(&self) -> Option<Type> {
9425        support::child(&self.syntax)
9426    }
9427    #[inline]
9428    pub fn returning_token(&self) -> Option<SyntaxToken> {
9429        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9430    }
9431}
9432
9433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9434pub struct JsonScalarFn {
9435    pub(crate) syntax: SyntaxNode,
9436}
9437impl JsonScalarFn {
9438    #[inline]
9439    pub fn expr(&self) -> Option<Expr> {
9440        support::child(&self.syntax)
9441    }
9442    #[inline]
9443    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9444        support::token(&self.syntax, SyntaxKind::L_PAREN)
9445    }
9446    #[inline]
9447    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9448        support::token(&self.syntax, SyntaxKind::R_PAREN)
9449    }
9450    #[inline]
9451    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9452        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9453    }
9454}
9455
9456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9457pub struct JsonSelectFormat {
9458    pub(crate) syntax: SyntaxNode,
9459}
9460impl JsonSelectFormat {
9461    #[inline]
9462    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9463        support::child(&self.syntax)
9464    }
9465    #[inline]
9466    pub fn select_variant(&self) -> Option<SelectVariant> {
9467        support::child(&self.syntax)
9468    }
9469}
9470
9471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9472pub struct JsonSerializeFn {
9473    pub(crate) syntax: SyntaxNode,
9474}
9475impl JsonSerializeFn {
9476    #[inline]
9477    pub fn expr(&self) -> Option<Expr> {
9478        support::child(&self.syntax)
9479    }
9480    #[inline]
9481    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9482        support::child(&self.syntax)
9483    }
9484    #[inline]
9485    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9486        support::child(&self.syntax)
9487    }
9488    #[inline]
9489    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9490        support::token(&self.syntax, SyntaxKind::L_PAREN)
9491    }
9492    #[inline]
9493    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9494        support::token(&self.syntax, SyntaxKind::R_PAREN)
9495    }
9496    #[inline]
9497    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9498        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9499    }
9500}
9501
9502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9503pub struct JsonTable {
9504    pub(crate) syntax: SyntaxNode,
9505}
9506impl JsonTable {
9507    #[inline]
9508    pub fn expr(&self) -> Option<Expr> {
9509        support::child(&self.syntax)
9510    }
9511    #[inline]
9512    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9513        support::child(&self.syntax)
9514    }
9515    #[inline]
9516    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9517        support::child(&self.syntax)
9518    }
9519    #[inline]
9520    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9521        support::child(&self.syntax)
9522    }
9523    #[inline]
9524    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9525        support::child(&self.syntax)
9526    }
9527    #[inline]
9528    pub fn name(&self) -> Option<Name> {
9529        support::child(&self.syntax)
9530    }
9531    #[inline]
9532    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9533        support::token(&self.syntax, SyntaxKind::L_PAREN)
9534    }
9535    #[inline]
9536    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9537        support::token(&self.syntax, SyntaxKind::R_PAREN)
9538    }
9539    #[inline]
9540    pub fn comma_token(&self) -> Option<SyntaxToken> {
9541        support::token(&self.syntax, SyntaxKind::COMMA)
9542    }
9543    #[inline]
9544    pub fn as_token(&self) -> Option<SyntaxToken> {
9545        support::token(&self.syntax, SyntaxKind::AS_KW)
9546    }
9547    #[inline]
9548    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9549        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9550    }
9551}
9552
9553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9554pub struct JsonTableColumn {
9555    pub(crate) syntax: SyntaxNode,
9556}
9557impl JsonTableColumn {
9558    #[inline]
9559    pub fn expr(&self) -> Option<Expr> {
9560        support::child(&self.syntax)
9561    }
9562    #[inline]
9563    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9564        support::child(&self.syntax)
9565    }
9566    #[inline]
9567    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9568        support::child(&self.syntax)
9569    }
9570    #[inline]
9571    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9572        support::child(&self.syntax)
9573    }
9574    #[inline]
9575    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
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_table_column_list(&self) -> Option<JsonTableColumnList> {
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 name(&self) -> Option<Name> {
9592        support::child(&self.syntax)
9593    }
9594    #[inline]
9595    pub fn ty(&self) -> Option<Type> {
9596        support::child(&self.syntax)
9597    }
9598    #[inline]
9599    pub fn as_token(&self) -> Option<SyntaxToken> {
9600        support::token(&self.syntax, SyntaxKind::AS_KW)
9601    }
9602    #[inline]
9603    pub fn exists_token(&self) -> Option<SyntaxToken> {
9604        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9605    }
9606    #[inline]
9607    pub fn for_token(&self) -> Option<SyntaxToken> {
9608        support::token(&self.syntax, SyntaxKind::FOR_KW)
9609    }
9610    #[inline]
9611    pub fn nested_token(&self) -> Option<SyntaxToken> {
9612        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9613    }
9614    #[inline]
9615    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9616        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9617    }
9618    #[inline]
9619    pub fn path_token(&self) -> Option<SyntaxToken> {
9620        support::token(&self.syntax, SyntaxKind::PATH_KW)
9621    }
9622}
9623
9624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9625pub struct JsonTableColumnList {
9626    pub(crate) syntax: SyntaxNode,
9627}
9628impl JsonTableColumnList {
9629    #[inline]
9630    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9631        support::children(&self.syntax)
9632    }
9633    #[inline]
9634    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9635        support::token(&self.syntax, SyntaxKind::L_PAREN)
9636    }
9637    #[inline]
9638    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9639        support::token(&self.syntax, SyntaxKind::R_PAREN)
9640    }
9641    #[inline]
9642    pub fn columns_token(&self) -> Option<SyntaxToken> {
9643        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9644    }
9645}
9646
9647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9648pub struct JsonValueExpr {
9649    pub(crate) syntax: SyntaxNode,
9650}
9651impl JsonValueExpr {
9652    #[inline]
9653    pub fn expr(&self) -> Option<Expr> {
9654        support::child(&self.syntax)
9655    }
9656    #[inline]
9657    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9658        support::child(&self.syntax)
9659    }
9660}
9661
9662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9663pub struct JsonValueFn {
9664    pub(crate) syntax: SyntaxNode,
9665}
9666impl JsonValueFn {
9667    #[inline]
9668    pub fn expr(&self) -> Option<Expr> {
9669        support::child(&self.syntax)
9670    }
9671    #[inline]
9672    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9673        support::child(&self.syntax)
9674    }
9675    #[inline]
9676    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9677        support::child(&self.syntax)
9678    }
9679    #[inline]
9680    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9681        support::child(&self.syntax)
9682    }
9683    #[inline]
9684    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9685        support::child(&self.syntax)
9686    }
9687    #[inline]
9688    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9689        support::token(&self.syntax, SyntaxKind::L_PAREN)
9690    }
9691    #[inline]
9692    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9693        support::token(&self.syntax, SyntaxKind::R_PAREN)
9694    }
9695    #[inline]
9696    pub fn comma_token(&self) -> Option<SyntaxToken> {
9697        support::token(&self.syntax, SyntaxKind::COMMA)
9698    }
9699    #[inline]
9700    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9701        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9702    }
9703}
9704
9705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9706pub struct JsonWrapperBehaviorClause {
9707    pub(crate) syntax: SyntaxNode,
9708}
9709impl JsonWrapperBehaviorClause {
9710    #[inline]
9711    pub fn array_token(&self) -> Option<SyntaxToken> {
9712        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9713    }
9714    #[inline]
9715    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9716        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9717    }
9718    #[inline]
9719    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9720        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9721    }
9722    #[inline]
9723    pub fn with_token(&self) -> Option<SyntaxToken> {
9724        support::token(&self.syntax, SyntaxKind::WITH_KW)
9725    }
9726    #[inline]
9727    pub fn without_token(&self) -> Option<SyntaxToken> {
9728        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9729    }
9730    #[inline]
9731    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9732        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9733    }
9734}
9735
9736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9737pub struct LanguageFuncOption {
9738    pub(crate) syntax: SyntaxNode,
9739}
9740impl LanguageFuncOption {
9741    #[inline]
9742    pub fn name_ref(&self) -> Option<NameRef> {
9743        support::child(&self.syntax)
9744    }
9745    #[inline]
9746    pub fn language_token(&self) -> Option<SyntaxToken> {
9747        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9748    }
9749}
9750
9751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9752pub struct LeakproofFuncOption {
9753    pub(crate) syntax: SyntaxNode,
9754}
9755impl LeakproofFuncOption {
9756    #[inline]
9757    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9758        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9759    }
9760    #[inline]
9761    pub fn not_token(&self) -> Option<SyntaxToken> {
9762        support::token(&self.syntax, SyntaxKind::NOT_KW)
9763    }
9764}
9765
9766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9767pub struct LikeClause {
9768    pub(crate) syntax: SyntaxNode,
9769}
9770impl LikeClause {
9771    #[inline]
9772    pub fn like_options(&self) -> AstChildren<LikeOption> {
9773        support::children(&self.syntax)
9774    }
9775    #[inline]
9776    pub fn path(&self) -> Option<Path> {
9777        support::child(&self.syntax)
9778    }
9779    #[inline]
9780    pub fn like_token(&self) -> Option<SyntaxToken> {
9781        support::token(&self.syntax, SyntaxKind::LIKE_KW)
9782    }
9783}
9784
9785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9786pub struct LikeOption {
9787    pub(crate) syntax: SyntaxNode,
9788}
9789impl LikeOption {
9790    #[inline]
9791    pub fn all_token(&self) -> Option<SyntaxToken> {
9792        support::token(&self.syntax, SyntaxKind::ALL_KW)
9793    }
9794    #[inline]
9795    pub fn comments_token(&self) -> Option<SyntaxToken> {
9796        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
9797    }
9798    #[inline]
9799    pub fn compression_token(&self) -> Option<SyntaxToken> {
9800        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9801    }
9802    #[inline]
9803    pub fn constraints_token(&self) -> Option<SyntaxToken> {
9804        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
9805    }
9806    #[inline]
9807    pub fn defaults_token(&self) -> Option<SyntaxToken> {
9808        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
9809    }
9810    #[inline]
9811    pub fn excluding_token(&self) -> Option<SyntaxToken> {
9812        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
9813    }
9814    #[inline]
9815    pub fn generated_token(&self) -> Option<SyntaxToken> {
9816        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9817    }
9818    #[inline]
9819    pub fn identity_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9821    }
9822    #[inline]
9823    pub fn including_token(&self) -> Option<SyntaxToken> {
9824        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
9825    }
9826    #[inline]
9827    pub fn indexes_token(&self) -> Option<SyntaxToken> {
9828        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
9829    }
9830    #[inline]
9831    pub fn statistics_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
9833    }
9834    #[inline]
9835    pub fn storage_token(&self) -> Option<SyntaxToken> {
9836        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9837    }
9838}
9839
9840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9841pub struct LimitClause {
9842    pub(crate) syntax: SyntaxNode,
9843}
9844impl LimitClause {
9845    #[inline]
9846    pub fn expr(&self) -> Option<Expr> {
9847        support::child(&self.syntax)
9848    }
9849    #[inline]
9850    pub fn all_token(&self) -> Option<SyntaxToken> {
9851        support::token(&self.syntax, SyntaxKind::ALL_KW)
9852    }
9853    #[inline]
9854    pub fn limit_token(&self) -> Option<SyntaxToken> {
9855        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
9856    }
9857}
9858
9859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9860pub struct LimitToTables {
9861    pub(crate) syntax: SyntaxNode,
9862}
9863impl LimitToTables {
9864    #[inline]
9865    pub fn name_refs(&self) -> AstChildren<NameRef> {
9866        support::children(&self.syntax)
9867    }
9868    #[inline]
9869    pub fn limit_token(&self) -> Option<SyntaxToken> {
9870        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
9871    }
9872    #[inline]
9873    pub fn to_token(&self) -> Option<SyntaxToken> {
9874        support::token(&self.syntax, SyntaxKind::TO_KW)
9875    }
9876}
9877
9878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9879pub struct Listen {
9880    pub(crate) syntax: SyntaxNode,
9881}
9882impl Listen {
9883    #[inline]
9884    pub fn name(&self) -> Option<Name> {
9885        support::child(&self.syntax)
9886    }
9887    #[inline]
9888    pub fn listen_token(&self) -> Option<SyntaxToken> {
9889        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
9890    }
9891}
9892
9893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9894pub struct Literal {
9895    pub(crate) syntax: SyntaxNode,
9896}
9897impl Literal {}
9898
9899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9900pub struct Load {
9901    pub(crate) syntax: SyntaxNode,
9902}
9903impl Load {
9904    #[inline]
9905    pub fn literal(&self) -> Option<Literal> {
9906        support::child(&self.syntax)
9907    }
9908    #[inline]
9909    pub fn load_token(&self) -> Option<SyntaxToken> {
9910        support::token(&self.syntax, SyntaxKind::LOAD_KW)
9911    }
9912}
9913
9914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9915pub struct Lock {
9916    pub(crate) syntax: SyntaxNode,
9917}
9918impl Lock {
9919    #[inline]
9920    pub fn table_list(&self) -> Option<TableList> {
9921        support::child(&self.syntax)
9922    }
9923    #[inline]
9924    pub fn lock_token(&self) -> Option<SyntaxToken> {
9925        support::token(&self.syntax, SyntaxKind::LOCK_KW)
9926    }
9927    #[inline]
9928    pub fn table_token(&self) -> Option<SyntaxToken> {
9929        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9930    }
9931}
9932
9933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9934pub struct LockingClause {
9935    pub(crate) syntax: SyntaxNode,
9936}
9937impl LockingClause {
9938    #[inline]
9939    pub fn for_token(&self) -> Option<SyntaxToken> {
9940        support::token(&self.syntax, SyntaxKind::FOR_KW)
9941    }
9942}
9943
9944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9945pub struct Lteq {
9946    pub(crate) syntax: SyntaxNode,
9947}
9948impl Lteq {
9949    #[inline]
9950    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::L_ANGLE)
9952    }
9953    #[inline]
9954    pub fn eq_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::EQ)
9956    }
9957}
9958
9959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9960pub struct MatchFull {
9961    pub(crate) syntax: SyntaxNode,
9962}
9963impl MatchFull {
9964    #[inline]
9965    pub fn full_token(&self) -> Option<SyntaxToken> {
9966        support::token(&self.syntax, SyntaxKind::FULL_KW)
9967    }
9968    #[inline]
9969    pub fn match_token(&self) -> Option<SyntaxToken> {
9970        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9971    }
9972}
9973
9974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9975pub struct MatchPartial {
9976    pub(crate) syntax: SyntaxNode,
9977}
9978impl MatchPartial {
9979    #[inline]
9980    pub fn match_token(&self) -> Option<SyntaxToken> {
9981        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9982    }
9983    #[inline]
9984    pub fn partial_token(&self) -> Option<SyntaxToken> {
9985        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
9986    }
9987}
9988
9989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9990pub struct MatchSimple {
9991    pub(crate) syntax: SyntaxNode,
9992}
9993impl MatchSimple {
9994    #[inline]
9995    pub fn match_token(&self) -> Option<SyntaxToken> {
9996        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9997    }
9998    #[inline]
9999    pub fn simple_token(&self) -> Option<SyntaxToken> {
10000        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10001    }
10002}
10003
10004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10005pub struct Materialized {
10006    pub(crate) syntax: SyntaxNode,
10007}
10008impl Materialized {
10009    #[inline]
10010    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10011        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10012    }
10013}
10014
10015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10016pub struct Merge {
10017    pub(crate) syntax: SyntaxNode,
10018}
10019impl Merge {
10020    #[inline]
10021    pub fn alias(&self) -> Option<Alias> {
10022        support::child(&self.syntax)
10023    }
10024    #[inline]
10025    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10026        support::children(&self.syntax)
10027    }
10028    #[inline]
10029    pub fn relation_name(&self) -> Option<RelationName> {
10030        support::child(&self.syntax)
10031    }
10032    #[inline]
10033    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10034        support::child(&self.syntax)
10035    }
10036    #[inline]
10037    pub fn into_token(&self) -> Option<SyntaxToken> {
10038        support::token(&self.syntax, SyntaxKind::INTO_KW)
10039    }
10040    #[inline]
10041    pub fn merge_token(&self) -> Option<SyntaxToken> {
10042        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10043    }
10044}
10045
10046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10047pub struct MergeDelete {
10048    pub(crate) syntax: SyntaxNode,
10049}
10050impl MergeDelete {
10051    #[inline]
10052    pub fn delete_token(&self) -> Option<SyntaxToken> {
10053        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10054    }
10055}
10056
10057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10058pub struct MergeDoNothing {
10059    pub(crate) syntax: SyntaxNode,
10060}
10061impl MergeDoNothing {
10062    #[inline]
10063    pub fn do_token(&self) -> Option<SyntaxToken> {
10064        support::token(&self.syntax, SyntaxKind::DO_KW)
10065    }
10066    #[inline]
10067    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10068        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10069    }
10070}
10071
10072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10073pub struct MergeInsert {
10074    pub(crate) syntax: SyntaxNode,
10075}
10076impl MergeInsert {
10077    #[inline]
10078    pub fn column_list(&self) -> Option<ColumnList> {
10079        support::child(&self.syntax)
10080    }
10081    #[inline]
10082    pub fn values(&self) -> Option<Values> {
10083        support::child(&self.syntax)
10084    }
10085    #[inline]
10086    pub fn default_token(&self) -> Option<SyntaxToken> {
10087        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10088    }
10089    #[inline]
10090    pub fn insert_token(&self) -> Option<SyntaxToken> {
10091        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10092    }
10093    #[inline]
10094    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10095        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10096    }
10097    #[inline]
10098    pub fn system_token(&self) -> Option<SyntaxToken> {
10099        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10100    }
10101    #[inline]
10102    pub fn user_token(&self) -> Option<SyntaxToken> {
10103        support::token(&self.syntax, SyntaxKind::USER_KW)
10104    }
10105    #[inline]
10106    pub fn values_token(&self) -> Option<SyntaxToken> {
10107        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10108    }
10109}
10110
10111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10112pub struct MergeUpdate {
10113    pub(crate) syntax: SyntaxNode,
10114}
10115impl MergeUpdate {
10116    #[inline]
10117    pub fn set_clause(&self) -> Option<SetClause> {
10118        support::child(&self.syntax)
10119    }
10120    #[inline]
10121    pub fn set_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::SET_KW)
10123    }
10124    #[inline]
10125    pub fn update_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10127    }
10128}
10129
10130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10131pub struct MergeWhenMatched {
10132    pub(crate) syntax: SyntaxNode,
10133}
10134impl MergeWhenMatched {
10135    #[inline]
10136    pub fn expr(&self) -> Option<Expr> {
10137        support::child(&self.syntax)
10138    }
10139    #[inline]
10140    pub fn merge_action(&self) -> Option<MergeAction> {
10141        support::child(&self.syntax)
10142    }
10143    #[inline]
10144    pub fn and_token(&self) -> Option<SyntaxToken> {
10145        support::token(&self.syntax, SyntaxKind::AND_KW)
10146    }
10147    #[inline]
10148    pub fn matched_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10150    }
10151    #[inline]
10152    pub fn then_token(&self) -> Option<SyntaxToken> {
10153        support::token(&self.syntax, SyntaxKind::THEN_KW)
10154    }
10155    #[inline]
10156    pub fn when_token(&self) -> Option<SyntaxToken> {
10157        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10158    }
10159}
10160
10161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10162pub struct MergeWhenNotMatchedSource {
10163    pub(crate) syntax: SyntaxNode,
10164}
10165impl MergeWhenNotMatchedSource {
10166    #[inline]
10167    pub fn expr(&self) -> Option<Expr> {
10168        support::child(&self.syntax)
10169    }
10170    #[inline]
10171    pub fn merge_action(&self) -> Option<MergeAction> {
10172        support::child(&self.syntax)
10173    }
10174    #[inline]
10175    pub fn and_token(&self) -> Option<SyntaxToken> {
10176        support::token(&self.syntax, SyntaxKind::AND_KW)
10177    }
10178    #[inline]
10179    pub fn by_token(&self) -> Option<SyntaxToken> {
10180        support::token(&self.syntax, SyntaxKind::BY_KW)
10181    }
10182    #[inline]
10183    pub fn matched_token(&self) -> Option<SyntaxToken> {
10184        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10185    }
10186    #[inline]
10187    pub fn not_token(&self) -> Option<SyntaxToken> {
10188        support::token(&self.syntax, SyntaxKind::NOT_KW)
10189    }
10190    #[inline]
10191    pub fn source_token(&self) -> Option<SyntaxToken> {
10192        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10193    }
10194    #[inline]
10195    pub fn then_token(&self) -> Option<SyntaxToken> {
10196        support::token(&self.syntax, SyntaxKind::THEN_KW)
10197    }
10198    #[inline]
10199    pub fn when_token(&self) -> Option<SyntaxToken> {
10200        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10201    }
10202}
10203
10204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10205pub struct MergeWhenNotMatchedTarget {
10206    pub(crate) syntax: SyntaxNode,
10207}
10208impl MergeWhenNotMatchedTarget {
10209    #[inline]
10210    pub fn expr(&self) -> Option<Expr> {
10211        support::child(&self.syntax)
10212    }
10213    #[inline]
10214    pub fn merge_action(&self) -> Option<MergeAction> {
10215        support::child(&self.syntax)
10216    }
10217    #[inline]
10218    pub fn and_token(&self) -> Option<SyntaxToken> {
10219        support::token(&self.syntax, SyntaxKind::AND_KW)
10220    }
10221    #[inline]
10222    pub fn by_token(&self) -> Option<SyntaxToken> {
10223        support::token(&self.syntax, SyntaxKind::BY_KW)
10224    }
10225    #[inline]
10226    pub fn matched_token(&self) -> Option<SyntaxToken> {
10227        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10228    }
10229    #[inline]
10230    pub fn not_token(&self) -> Option<SyntaxToken> {
10231        support::token(&self.syntax, SyntaxKind::NOT_KW)
10232    }
10233    #[inline]
10234    pub fn target_token(&self) -> Option<SyntaxToken> {
10235        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10236    }
10237    #[inline]
10238    pub fn then_token(&self) -> Option<SyntaxToken> {
10239        support::token(&self.syntax, SyntaxKind::THEN_KW)
10240    }
10241    #[inline]
10242    pub fn when_token(&self) -> Option<SyntaxToken> {
10243        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10244    }
10245}
10246
10247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10248pub struct Move {
10249    pub(crate) syntax: SyntaxNode,
10250}
10251impl Move {
10252    #[inline]
10253    pub fn name_ref(&self) -> Option<NameRef> {
10254        support::child(&self.syntax)
10255    }
10256    #[inline]
10257    pub fn from_token(&self) -> Option<SyntaxToken> {
10258        support::token(&self.syntax, SyntaxKind::FROM_KW)
10259    }
10260    #[inline]
10261    pub fn in_token(&self) -> Option<SyntaxToken> {
10262        support::token(&self.syntax, SyntaxKind::IN_KW)
10263    }
10264    #[inline]
10265    pub fn move_token(&self) -> Option<SyntaxToken> {
10266        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10267    }
10268}
10269
10270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10271pub struct Name {
10272    pub(crate) syntax: SyntaxNode,
10273}
10274impl Name {
10275    #[inline]
10276    pub fn ident_token(&self) -> Option<SyntaxToken> {
10277        support::token(&self.syntax, SyntaxKind::IDENT)
10278    }
10279}
10280
10281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10282pub struct NameRef {
10283    pub(crate) syntax: SyntaxNode,
10284}
10285impl NameRef {
10286    #[inline]
10287    pub fn ident_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::IDENT)
10289    }
10290}
10291
10292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10293pub struct NamedArg {
10294    pub(crate) syntax: SyntaxNode,
10295}
10296impl NamedArg {
10297    #[inline]
10298    pub fn expr(&self) -> Option<Expr> {
10299        support::child(&self.syntax)
10300    }
10301    #[inline]
10302    pub fn fat_arrow(&self) -> Option<FatArrow> {
10303        support::child(&self.syntax)
10304    }
10305    #[inline]
10306    pub fn name_ref(&self) -> Option<NameRef> {
10307        support::child(&self.syntax)
10308    }
10309}
10310
10311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10312pub struct Neq {
10313    pub(crate) syntax: SyntaxNode,
10314}
10315impl Neq {
10316    #[inline]
10317    pub fn bang_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::BANG)
10319    }
10320    #[inline]
10321    pub fn eq_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::EQ)
10323    }
10324}
10325
10326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10327pub struct Neqb {
10328    pub(crate) syntax: SyntaxNode,
10329}
10330impl Neqb {
10331    #[inline]
10332    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10334    }
10335    #[inline]
10336    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10338    }
10339}
10340
10341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10342pub struct NoAction {
10343    pub(crate) syntax: SyntaxNode,
10344}
10345impl NoAction {
10346    #[inline]
10347    pub fn action_token(&self) -> Option<SyntaxToken> {
10348        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10349    }
10350    #[inline]
10351    pub fn no_token(&self) -> Option<SyntaxToken> {
10352        support::token(&self.syntax, SyntaxKind::NO_KW)
10353    }
10354}
10355
10356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10357pub struct NoDependsOnExtension {
10358    pub(crate) syntax: SyntaxNode,
10359}
10360impl NoDependsOnExtension {
10361    #[inline]
10362    pub fn name_ref(&self) -> Option<NameRef> {
10363        support::child(&self.syntax)
10364    }
10365    #[inline]
10366    pub fn depends_token(&self) -> Option<SyntaxToken> {
10367        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10368    }
10369    #[inline]
10370    pub fn extension_token(&self) -> Option<SyntaxToken> {
10371        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10372    }
10373    #[inline]
10374    pub fn no_token(&self) -> Option<SyntaxToken> {
10375        support::token(&self.syntax, SyntaxKind::NO_KW)
10376    }
10377    #[inline]
10378    pub fn on_token(&self) -> Option<SyntaxToken> {
10379        support::token(&self.syntax, SyntaxKind::ON_KW)
10380    }
10381}
10382
10383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10384pub struct NoForceRls {
10385    pub(crate) syntax: SyntaxNode,
10386}
10387impl NoForceRls {
10388    #[inline]
10389    pub fn force_token(&self) -> Option<SyntaxToken> {
10390        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10391    }
10392    #[inline]
10393    pub fn level_token(&self) -> Option<SyntaxToken> {
10394        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10395    }
10396    #[inline]
10397    pub fn no_token(&self) -> Option<SyntaxToken> {
10398        support::token(&self.syntax, SyntaxKind::NO_KW)
10399    }
10400    #[inline]
10401    pub fn row_token(&self) -> Option<SyntaxToken> {
10402        support::token(&self.syntax, SyntaxKind::ROW_KW)
10403    }
10404    #[inline]
10405    pub fn security_token(&self) -> Option<SyntaxToken> {
10406        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10407    }
10408}
10409
10410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10411pub struct NoInherit {
10412    pub(crate) syntax: SyntaxNode,
10413}
10414impl NoInherit {
10415    #[inline]
10416    pub fn path(&self) -> Option<Path> {
10417        support::child(&self.syntax)
10418    }
10419    #[inline]
10420    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10421        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10422    }
10423    #[inline]
10424    pub fn no_token(&self) -> Option<SyntaxToken> {
10425        support::token(&self.syntax, SyntaxKind::NO_KW)
10426    }
10427}
10428
10429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10430pub struct NoInheritTable {
10431    pub(crate) syntax: SyntaxNode,
10432}
10433impl NoInheritTable {
10434    #[inline]
10435    pub fn path(&self) -> Option<Path> {
10436        support::child(&self.syntax)
10437    }
10438    #[inline]
10439    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10440        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10441    }
10442    #[inline]
10443    pub fn no_token(&self) -> Option<SyntaxToken> {
10444        support::token(&self.syntax, SyntaxKind::NO_KW)
10445    }
10446}
10447
10448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10449pub struct NonStandardParam {
10450    pub(crate) syntax: SyntaxNode,
10451}
10452impl NonStandardParam {
10453    #[inline]
10454    pub fn name_ref(&self) -> Option<NameRef> {
10455        support::child(&self.syntax)
10456    }
10457    #[inline]
10458    pub fn colon_token(&self) -> Option<SyntaxToken> {
10459        support::token(&self.syntax, SyntaxKind::COLON)
10460    }
10461}
10462
10463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10464pub struct NotDeferrable {
10465    pub(crate) syntax: SyntaxNode,
10466}
10467impl NotDeferrable {
10468    #[inline]
10469    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10470        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10471    }
10472    #[inline]
10473    pub fn not_token(&self) -> Option<SyntaxToken> {
10474        support::token(&self.syntax, SyntaxKind::NOT_KW)
10475    }
10476}
10477
10478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10479pub struct NotDeferrableConstraintOption {
10480    pub(crate) syntax: SyntaxNode,
10481}
10482impl NotDeferrableConstraintOption {
10483    #[inline]
10484    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10485        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10486    }
10487    #[inline]
10488    pub fn not_token(&self) -> Option<SyntaxToken> {
10489        support::token(&self.syntax, SyntaxKind::NOT_KW)
10490    }
10491}
10492
10493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10494pub struct NotEnforced {
10495    pub(crate) syntax: SyntaxNode,
10496}
10497impl NotEnforced {
10498    #[inline]
10499    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10500        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10501    }
10502    #[inline]
10503    pub fn not_token(&self) -> Option<SyntaxToken> {
10504        support::token(&self.syntax, SyntaxKind::NOT_KW)
10505    }
10506}
10507
10508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10509pub struct NotIlike {
10510    pub(crate) syntax: SyntaxNode,
10511}
10512impl NotIlike {
10513    #[inline]
10514    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10515        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10516    }
10517    #[inline]
10518    pub fn not_token(&self) -> Option<SyntaxToken> {
10519        support::token(&self.syntax, SyntaxKind::NOT_KW)
10520    }
10521}
10522
10523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10524pub struct NotIn {
10525    pub(crate) syntax: SyntaxNode,
10526}
10527impl NotIn {
10528    #[inline]
10529    pub fn in_token(&self) -> Option<SyntaxToken> {
10530        support::token(&self.syntax, SyntaxKind::IN_KW)
10531    }
10532    #[inline]
10533    pub fn not_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::NOT_KW)
10535    }
10536}
10537
10538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10539pub struct NotLike {
10540    pub(crate) syntax: SyntaxNode,
10541}
10542impl NotLike {
10543    #[inline]
10544    pub fn like_token(&self) -> Option<SyntaxToken> {
10545        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10546    }
10547    #[inline]
10548    pub fn not_token(&self) -> Option<SyntaxToken> {
10549        support::token(&self.syntax, SyntaxKind::NOT_KW)
10550    }
10551}
10552
10553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10554pub struct NotMaterialized {
10555    pub(crate) syntax: SyntaxNode,
10556}
10557impl NotMaterialized {
10558    #[inline]
10559    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10560        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10561    }
10562    #[inline]
10563    pub fn not_token(&self) -> Option<SyntaxToken> {
10564        support::token(&self.syntax, SyntaxKind::NOT_KW)
10565    }
10566}
10567
10568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10569pub struct NotNullConstraint {
10570    pub(crate) syntax: SyntaxNode,
10571}
10572impl NotNullConstraint {
10573    #[inline]
10574    pub fn name_ref(&self) -> Option<NameRef> {
10575        support::child(&self.syntax)
10576    }
10577    #[inline]
10578    pub fn no_inherit(&self) -> Option<NoInherit> {
10579        support::child(&self.syntax)
10580    }
10581    #[inline]
10582    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10583        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10584    }
10585    #[inline]
10586    pub fn not_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::NOT_KW)
10588    }
10589    #[inline]
10590    pub fn null_token(&self) -> Option<SyntaxToken> {
10591        support::token(&self.syntax, SyntaxKind::NULL_KW)
10592    }
10593}
10594
10595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10596pub struct NotOf {
10597    pub(crate) syntax: SyntaxNode,
10598}
10599impl NotOf {
10600    #[inline]
10601    pub fn not_token(&self) -> Option<SyntaxToken> {
10602        support::token(&self.syntax, SyntaxKind::NOT_KW)
10603    }
10604    #[inline]
10605    pub fn of_token(&self) -> Option<SyntaxToken> {
10606        support::token(&self.syntax, SyntaxKind::OF_KW)
10607    }
10608}
10609
10610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10611pub struct NotSimilarTo {
10612    pub(crate) syntax: SyntaxNode,
10613}
10614impl NotSimilarTo {
10615    #[inline]
10616    pub fn not_token(&self) -> Option<SyntaxToken> {
10617        support::token(&self.syntax, SyntaxKind::NOT_KW)
10618    }
10619    #[inline]
10620    pub fn similar_token(&self) -> Option<SyntaxToken> {
10621        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10622    }
10623    #[inline]
10624    pub fn to_token(&self) -> Option<SyntaxToken> {
10625        support::token(&self.syntax, SyntaxKind::TO_KW)
10626    }
10627}
10628
10629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10630pub struct NotValid {
10631    pub(crate) syntax: SyntaxNode,
10632}
10633impl NotValid {
10634    #[inline]
10635    pub fn not_token(&self) -> Option<SyntaxToken> {
10636        support::token(&self.syntax, SyntaxKind::NOT_KW)
10637    }
10638    #[inline]
10639    pub fn valid_token(&self) -> Option<SyntaxToken> {
10640        support::token(&self.syntax, SyntaxKind::VALID_KW)
10641    }
10642}
10643
10644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10645pub struct Notify {
10646    pub(crate) syntax: SyntaxNode,
10647}
10648impl Notify {
10649    #[inline]
10650    pub fn literal(&self) -> Option<Literal> {
10651        support::child(&self.syntax)
10652    }
10653    #[inline]
10654    pub fn name_ref(&self) -> Option<NameRef> {
10655        support::child(&self.syntax)
10656    }
10657    #[inline]
10658    pub fn comma_token(&self) -> Option<SyntaxToken> {
10659        support::token(&self.syntax, SyntaxKind::COMMA)
10660    }
10661    #[inline]
10662    pub fn notify_token(&self) -> Option<SyntaxToken> {
10663        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10664    }
10665}
10666
10667#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10668pub struct NullConstraint {
10669    pub(crate) syntax: SyntaxNode,
10670}
10671impl NullConstraint {
10672    #[inline]
10673    pub fn name_ref(&self) -> Option<NameRef> {
10674        support::child(&self.syntax)
10675    }
10676    #[inline]
10677    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10678        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10679    }
10680    #[inline]
10681    pub fn null_token(&self) -> Option<SyntaxToken> {
10682        support::token(&self.syntax, SyntaxKind::NULL_KW)
10683    }
10684}
10685
10686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10687pub struct NullsDistinct {
10688    pub(crate) syntax: SyntaxNode,
10689}
10690impl NullsDistinct {
10691    #[inline]
10692    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10693        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10694    }
10695    #[inline]
10696    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10697        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10698    }
10699}
10700
10701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10702pub struct NullsFirst {
10703    pub(crate) syntax: SyntaxNode,
10704}
10705impl NullsFirst {
10706    #[inline]
10707    pub fn first_token(&self) -> Option<SyntaxToken> {
10708        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10709    }
10710    #[inline]
10711    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10712        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10713    }
10714}
10715
10716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10717pub struct NullsLast {
10718    pub(crate) syntax: SyntaxNode,
10719}
10720impl NullsLast {
10721    #[inline]
10722    pub fn last_token(&self) -> Option<SyntaxToken> {
10723        support::token(&self.syntax, SyntaxKind::LAST_KW)
10724    }
10725    #[inline]
10726    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10727        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10728    }
10729}
10730
10731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10732pub struct NullsNotDistinct {
10733    pub(crate) syntax: SyntaxNode,
10734}
10735impl NullsNotDistinct {
10736    #[inline]
10737    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10738        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10739    }
10740    #[inline]
10741    pub fn not_token(&self) -> Option<SyntaxToken> {
10742        support::token(&self.syntax, SyntaxKind::NOT_KW)
10743    }
10744    #[inline]
10745    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10746        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10747    }
10748}
10749
10750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10751pub struct OfType {
10752    pub(crate) syntax: SyntaxNode,
10753}
10754impl OfType {
10755    #[inline]
10756    pub fn ty(&self) -> Option<Type> {
10757        support::child(&self.syntax)
10758    }
10759    #[inline]
10760    pub fn of_token(&self) -> Option<SyntaxToken> {
10761        support::token(&self.syntax, SyntaxKind::OF_KW)
10762    }
10763}
10764
10765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10766pub struct OffsetClause {
10767    pub(crate) syntax: SyntaxNode,
10768}
10769impl OffsetClause {
10770    #[inline]
10771    pub fn expr(&self) -> Option<Expr> {
10772        support::child(&self.syntax)
10773    }
10774    #[inline]
10775    pub fn offset_token(&self) -> Option<SyntaxToken> {
10776        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
10777    }
10778    #[inline]
10779    pub fn row_token(&self) -> Option<SyntaxToken> {
10780        support::token(&self.syntax, SyntaxKind::ROW_KW)
10781    }
10782    #[inline]
10783    pub fn rows_token(&self) -> Option<SyntaxToken> {
10784        support::token(&self.syntax, SyntaxKind::ROWS_KW)
10785    }
10786}
10787
10788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10789pub struct OnClause {
10790    pub(crate) syntax: SyntaxNode,
10791}
10792impl OnClause {
10793    #[inline]
10794    pub fn expr(&self) -> Option<Expr> {
10795        support::child(&self.syntax)
10796    }
10797    #[inline]
10798    pub fn on_token(&self) -> Option<SyntaxToken> {
10799        support::token(&self.syntax, SyntaxKind::ON_KW)
10800    }
10801}
10802
10803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10804pub struct OnCommit {
10805    pub(crate) syntax: SyntaxNode,
10806}
10807impl OnCommit {
10808    #[inline]
10809    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
10810        support::child(&self.syntax)
10811    }
10812    #[inline]
10813    pub fn commit_token(&self) -> Option<SyntaxToken> {
10814        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
10815    }
10816    #[inline]
10817    pub fn on_token(&self) -> Option<SyntaxToken> {
10818        support::token(&self.syntax, SyntaxKind::ON_KW)
10819    }
10820}
10821
10822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10823pub struct OnConflictClause {
10824    pub(crate) syntax: SyntaxNode,
10825}
10826impl OnConflictClause {
10827    #[inline]
10828    pub fn conflict_action(&self) -> Option<ConflictAction> {
10829        support::child(&self.syntax)
10830    }
10831    #[inline]
10832    pub fn conflict_target(&self) -> Option<ConflictTarget> {
10833        support::child(&self.syntax)
10834    }
10835    #[inline]
10836    pub fn conflict_token(&self) -> Option<SyntaxToken> {
10837        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
10838    }
10839    #[inline]
10840    pub fn on_token(&self) -> Option<SyntaxToken> {
10841        support::token(&self.syntax, SyntaxKind::ON_KW)
10842    }
10843}
10844
10845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10846pub struct OnDeleteAction {
10847    pub(crate) syntax: SyntaxNode,
10848}
10849impl OnDeleteAction {
10850    #[inline]
10851    pub fn ref_action(&self) -> Option<RefAction> {
10852        support::child(&self.syntax)
10853    }
10854    #[inline]
10855    pub fn delete_token(&self) -> Option<SyntaxToken> {
10856        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10857    }
10858    #[inline]
10859    pub fn on_token(&self) -> Option<SyntaxToken> {
10860        support::token(&self.syntax, SyntaxKind::ON_KW)
10861    }
10862}
10863
10864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10865pub struct OnTable {
10866    pub(crate) syntax: SyntaxNode,
10867}
10868impl OnTable {
10869    #[inline]
10870    pub fn path(&self) -> Option<Path> {
10871        support::child(&self.syntax)
10872    }
10873    #[inline]
10874    pub fn on_token(&self) -> Option<SyntaxToken> {
10875        support::token(&self.syntax, SyntaxKind::ON_KW)
10876    }
10877}
10878
10879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10880pub struct OnUpdateAction {
10881    pub(crate) syntax: SyntaxNode,
10882}
10883impl OnUpdateAction {
10884    #[inline]
10885    pub fn ref_action(&self) -> Option<RefAction> {
10886        support::child(&self.syntax)
10887    }
10888    #[inline]
10889    pub fn on_token(&self) -> Option<SyntaxToken> {
10890        support::token(&self.syntax, SyntaxKind::ON_KW)
10891    }
10892    #[inline]
10893    pub fn update_token(&self) -> Option<SyntaxToken> {
10894        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10895    }
10896}
10897
10898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10899pub struct Op {
10900    pub(crate) syntax: SyntaxNode,
10901}
10902impl Op {
10903    #[inline]
10904    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
10905        support::child(&self.syntax)
10906    }
10907    #[inline]
10908    pub fn colon_colon(&self) -> Option<ColonColon> {
10909        support::child(&self.syntax)
10910    }
10911    #[inline]
10912    pub fn colon_eq(&self) -> Option<ColonEq> {
10913        support::child(&self.syntax)
10914    }
10915    #[inline]
10916    pub fn custom_op(&self) -> Option<CustomOp> {
10917        support::child(&self.syntax)
10918    }
10919    #[inline]
10920    pub fn fat_arrow(&self) -> Option<FatArrow> {
10921        support::child(&self.syntax)
10922    }
10923    #[inline]
10924    pub fn gteq(&self) -> Option<Gteq> {
10925        support::child(&self.syntax)
10926    }
10927    #[inline]
10928    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
10929        support::child(&self.syntax)
10930    }
10931    #[inline]
10932    pub fn is_json(&self) -> Option<IsJson> {
10933        support::child(&self.syntax)
10934    }
10935    #[inline]
10936    pub fn is_json_array(&self) -> Option<IsJsonArray> {
10937        support::child(&self.syntax)
10938    }
10939    #[inline]
10940    pub fn is_json_object(&self) -> Option<IsJsonObject> {
10941        support::child(&self.syntax)
10942    }
10943    #[inline]
10944    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
10945        support::child(&self.syntax)
10946    }
10947    #[inline]
10948    pub fn is_json_value(&self) -> Option<IsJsonValue> {
10949        support::child(&self.syntax)
10950    }
10951    #[inline]
10952    pub fn is_not(&self) -> Option<IsNot> {
10953        support::child(&self.syntax)
10954    }
10955    #[inline]
10956    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
10957        support::child(&self.syntax)
10958    }
10959    #[inline]
10960    pub fn is_not_json(&self) -> Option<IsNotJson> {
10961        support::child(&self.syntax)
10962    }
10963    #[inline]
10964    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
10965        support::child(&self.syntax)
10966    }
10967    #[inline]
10968    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
10969        support::child(&self.syntax)
10970    }
10971    #[inline]
10972    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
10973        support::child(&self.syntax)
10974    }
10975    #[inline]
10976    pub fn lteq(&self) -> Option<Lteq> {
10977        support::child(&self.syntax)
10978    }
10979    #[inline]
10980    pub fn neq(&self) -> Option<Neq> {
10981        support::child(&self.syntax)
10982    }
10983    #[inline]
10984    pub fn neqb(&self) -> Option<Neqb> {
10985        support::child(&self.syntax)
10986    }
10987    #[inline]
10988    pub fn not_ilike(&self) -> Option<NotIlike> {
10989        support::child(&self.syntax)
10990    }
10991    #[inline]
10992    pub fn not_in(&self) -> Option<NotIn> {
10993        support::child(&self.syntax)
10994    }
10995    #[inline]
10996    pub fn not_like(&self) -> Option<NotLike> {
10997        support::child(&self.syntax)
10998    }
10999    #[inline]
11000    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11001        support::child(&self.syntax)
11002    }
11003    #[inline]
11004    pub fn operator_call(&self) -> Option<OperatorCall> {
11005        support::child(&self.syntax)
11006    }
11007    #[inline]
11008    pub fn similar_to(&self) -> Option<SimilarTo> {
11009        support::child(&self.syntax)
11010    }
11011    #[inline]
11012    pub fn percent_token(&self) -> Option<SyntaxToken> {
11013        support::token(&self.syntax, SyntaxKind::PERCENT)
11014    }
11015    #[inline]
11016    pub fn plus_token(&self) -> Option<SyntaxToken> {
11017        support::token(&self.syntax, SyntaxKind::PLUS)
11018    }
11019    #[inline]
11020    pub fn minus_token(&self) -> Option<SyntaxToken> {
11021        support::token(&self.syntax, SyntaxKind::MINUS)
11022    }
11023    #[inline]
11024    pub fn slash_token(&self) -> Option<SyntaxToken> {
11025        support::token(&self.syntax, SyntaxKind::SLASH)
11026    }
11027    #[inline]
11028    pub fn colon_token(&self) -> Option<SyntaxToken> {
11029        support::token(&self.syntax, SyntaxKind::COLON)
11030    }
11031    #[inline]
11032    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11033        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11034    }
11035    #[inline]
11036    pub fn eq_token(&self) -> Option<SyntaxToken> {
11037        support::token(&self.syntax, SyntaxKind::EQ)
11038    }
11039    #[inline]
11040    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11041        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11042    }
11043    #[inline]
11044    pub fn caret_token(&self) -> Option<SyntaxToken> {
11045        support::token(&self.syntax, SyntaxKind::CARET)
11046    }
11047    #[inline]
11048    pub fn and_token(&self) -> Option<SyntaxToken> {
11049        support::token(&self.syntax, SyntaxKind::AND_KW)
11050    }
11051    #[inline]
11052    pub fn collate_token(&self) -> Option<SyntaxToken> {
11053        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11054    }
11055    #[inline]
11056    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11057        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11058    }
11059    #[inline]
11060    pub fn in_token(&self) -> Option<SyntaxToken> {
11061        support::token(&self.syntax, SyntaxKind::IN_KW)
11062    }
11063    #[inline]
11064    pub fn is_token(&self) -> Option<SyntaxToken> {
11065        support::token(&self.syntax, SyntaxKind::IS_KW)
11066    }
11067    #[inline]
11068    pub fn like_token(&self) -> Option<SyntaxToken> {
11069        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11070    }
11071    #[inline]
11072    pub fn or_token(&self) -> Option<SyntaxToken> {
11073        support::token(&self.syntax, SyntaxKind::OR_KW)
11074    }
11075    #[inline]
11076    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11077        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11078    }
11079    #[inline]
11080    pub fn value_token(&self) -> Option<SyntaxToken> {
11081        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11082    }
11083}
11084
11085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11086pub struct OpClassOption {
11087    pub(crate) syntax: SyntaxNode,
11088}
11089impl OpClassOption {
11090    #[inline]
11091    pub fn function_sig(&self) -> Option<FunctionSig> {
11092        support::child(&self.syntax)
11093    }
11094    #[inline]
11095    pub fn literal(&self) -> Option<Literal> {
11096        support::child(&self.syntax)
11097    }
11098    #[inline]
11099    pub fn op(&self) -> Option<Op> {
11100        support::child(&self.syntax)
11101    }
11102    #[inline]
11103    pub fn param_list(&self) -> Option<ParamList> {
11104        support::child(&self.syntax)
11105    }
11106    #[inline]
11107    pub fn path(&self) -> Option<Path> {
11108        support::child(&self.syntax)
11109    }
11110    #[inline]
11111    pub fn ty(&self) -> Option<Type> {
11112        support::child(&self.syntax)
11113    }
11114    #[inline]
11115    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11116        support::token(&self.syntax, SyntaxKind::L_PAREN)
11117    }
11118    #[inline]
11119    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11120        support::token(&self.syntax, SyntaxKind::R_PAREN)
11121    }
11122    #[inline]
11123    pub fn comma_token(&self) -> Option<SyntaxToken> {
11124        support::token(&self.syntax, SyntaxKind::COMMA)
11125    }
11126    #[inline]
11127    pub fn by_token(&self) -> Option<SyntaxToken> {
11128        support::token(&self.syntax, SyntaxKind::BY_KW)
11129    }
11130    #[inline]
11131    pub fn for_token(&self) -> Option<SyntaxToken> {
11132        support::token(&self.syntax, SyntaxKind::FOR_KW)
11133    }
11134    #[inline]
11135    pub fn function_token(&self) -> Option<SyntaxToken> {
11136        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11137    }
11138    #[inline]
11139    pub fn operator_token(&self) -> Option<SyntaxToken> {
11140        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11141    }
11142    #[inline]
11143    pub fn order_token(&self) -> Option<SyntaxToken> {
11144        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11145    }
11146    #[inline]
11147    pub fn search_token(&self) -> Option<SyntaxToken> {
11148        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11149    }
11150    #[inline]
11151    pub fn storage_token(&self) -> Option<SyntaxToken> {
11152        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11153    }
11154}
11155
11156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11157pub struct OpSig {
11158    pub(crate) syntax: SyntaxNode,
11159}
11160impl OpSig {
11161    #[inline]
11162    pub fn op(&self) -> Option<Op> {
11163        support::child(&self.syntax)
11164    }
11165    #[inline]
11166    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11167        support::token(&self.syntax, SyntaxKind::L_PAREN)
11168    }
11169    #[inline]
11170    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11171        support::token(&self.syntax, SyntaxKind::R_PAREN)
11172    }
11173    #[inline]
11174    pub fn comma_token(&self) -> Option<SyntaxToken> {
11175        support::token(&self.syntax, SyntaxKind::COMMA)
11176    }
11177    #[inline]
11178    pub fn none_token(&self) -> Option<SyntaxToken> {
11179        support::token(&self.syntax, SyntaxKind::NONE_KW)
11180    }
11181}
11182
11183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11184pub struct OpSigList {
11185    pub(crate) syntax: SyntaxNode,
11186}
11187impl OpSigList {
11188    #[inline]
11189    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11190        support::children(&self.syntax)
11191    }
11192}
11193
11194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11195pub struct OperatorCall {
11196    pub(crate) syntax: SyntaxNode,
11197}
11198impl OperatorCall {
11199    #[inline]
11200    pub fn op(&self) -> Option<Op> {
11201        support::child(&self.syntax)
11202    }
11203    #[inline]
11204    pub fn path(&self) -> Option<Path> {
11205        support::child(&self.syntax)
11206    }
11207    #[inline]
11208    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11209        support::token(&self.syntax, SyntaxKind::L_PAREN)
11210    }
11211    #[inline]
11212    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11213        support::token(&self.syntax, SyntaxKind::R_PAREN)
11214    }
11215    #[inline]
11216    pub fn dot_token(&self) -> Option<SyntaxToken> {
11217        support::token(&self.syntax, SyntaxKind::DOT)
11218    }
11219    #[inline]
11220    pub fn operator_token(&self) -> Option<SyntaxToken> {
11221        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11222    }
11223}
11224
11225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11226pub struct OperatorClassOptionList {
11227    pub(crate) syntax: SyntaxNode,
11228}
11229impl OperatorClassOptionList {
11230    #[inline]
11231    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11232        support::children(&self.syntax)
11233    }
11234}
11235
11236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11237pub struct OptionItem {
11238    pub(crate) syntax: SyntaxNode,
11239}
11240impl OptionItem {
11241    #[inline]
11242    pub fn expr(&self) -> Option<Expr> {
11243        support::child(&self.syntax)
11244    }
11245    #[inline]
11246    pub fn default_token(&self) -> Option<SyntaxToken> {
11247        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11248    }
11249}
11250
11251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11252pub struct OptionItemList {
11253    pub(crate) syntax: SyntaxNode,
11254}
11255impl OptionItemList {
11256    #[inline]
11257    pub fn option_items(&self) -> AstChildren<OptionItem> {
11258        support::children(&self.syntax)
11259    }
11260    #[inline]
11261    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11262        support::token(&self.syntax, SyntaxKind::L_PAREN)
11263    }
11264    #[inline]
11265    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11266        support::token(&self.syntax, SyntaxKind::R_PAREN)
11267    }
11268}
11269
11270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11271pub struct OrReplace {
11272    pub(crate) syntax: SyntaxNode,
11273}
11274impl OrReplace {
11275    #[inline]
11276    pub fn or_token(&self) -> Option<SyntaxToken> {
11277        support::token(&self.syntax, SyntaxKind::OR_KW)
11278    }
11279    #[inline]
11280    pub fn replace_token(&self) -> Option<SyntaxToken> {
11281        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11282    }
11283}
11284
11285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11286pub struct OrderByClause {
11287    pub(crate) syntax: SyntaxNode,
11288}
11289impl OrderByClause {
11290    #[inline]
11291    pub fn sort_by_list(&self) -> Option<SortByList> {
11292        support::child(&self.syntax)
11293    }
11294    #[inline]
11295    pub fn by_token(&self) -> Option<SyntaxToken> {
11296        support::token(&self.syntax, SyntaxKind::BY_KW)
11297    }
11298    #[inline]
11299    pub fn order_token(&self) -> Option<SyntaxToken> {
11300        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11301    }
11302}
11303
11304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11305pub struct OverClause {
11306    pub(crate) syntax: SyntaxNode,
11307}
11308impl OverClause {
11309    #[inline]
11310    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11311        support::token(&self.syntax, SyntaxKind::L_PAREN)
11312    }
11313    #[inline]
11314    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11315        support::token(&self.syntax, SyntaxKind::R_PAREN)
11316    }
11317    #[inline]
11318    pub fn over_token(&self) -> Option<SyntaxToken> {
11319        support::token(&self.syntax, SyntaxKind::OVER_KW)
11320    }
11321}
11322
11323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11324pub struct OverlayFn {
11325    pub(crate) syntax: SyntaxNode,
11326}
11327impl OverlayFn {
11328    #[inline]
11329    pub fn expr(&self) -> Option<Expr> {
11330        support::child(&self.syntax)
11331    }
11332    #[inline]
11333    pub fn exprs(&self) -> AstChildren<Expr> {
11334        support::children(&self.syntax)
11335    }
11336    #[inline]
11337    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11338        support::token(&self.syntax, SyntaxKind::L_PAREN)
11339    }
11340    #[inline]
11341    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::R_PAREN)
11343    }
11344    #[inline]
11345    pub fn for_token(&self) -> Option<SyntaxToken> {
11346        support::token(&self.syntax, SyntaxKind::FOR_KW)
11347    }
11348    #[inline]
11349    pub fn from_token(&self) -> Option<SyntaxToken> {
11350        support::token(&self.syntax, SyntaxKind::FROM_KW)
11351    }
11352    #[inline]
11353    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11354        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11355    }
11356    #[inline]
11357    pub fn placing_token(&self) -> Option<SyntaxToken> {
11358        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11359    }
11360}
11361
11362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11363pub struct OwnerTo {
11364    pub(crate) syntax: SyntaxNode,
11365}
11366impl OwnerTo {
11367    #[inline]
11368    pub fn role(&self) -> Option<Role> {
11369        support::child(&self.syntax)
11370    }
11371    #[inline]
11372    pub fn owner_token(&self) -> Option<SyntaxToken> {
11373        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11374    }
11375    #[inline]
11376    pub fn to_token(&self) -> Option<SyntaxToken> {
11377        support::token(&self.syntax, SyntaxKind::TO_KW)
11378    }
11379}
11380
11381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11382pub struct ParallelFuncOption {
11383    pub(crate) syntax: SyntaxNode,
11384}
11385impl ParallelFuncOption {
11386    #[inline]
11387    pub fn ident_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::IDENT)
11389    }
11390    #[inline]
11391    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11393    }
11394}
11395
11396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11397pub struct Param {
11398    pub(crate) syntax: SyntaxNode,
11399}
11400impl Param {
11401    #[inline]
11402    pub fn mode(&self) -> Option<ParamMode> {
11403        support::child(&self.syntax)
11404    }
11405    #[inline]
11406    pub fn name(&self) -> Option<Name> {
11407        support::child(&self.syntax)
11408    }
11409    #[inline]
11410    pub fn param_default(&self) -> Option<ParamDefault> {
11411        support::child(&self.syntax)
11412    }
11413    #[inline]
11414    pub fn ty(&self) -> Option<Type> {
11415        support::child(&self.syntax)
11416    }
11417}
11418
11419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11420pub struct ParamDefault {
11421    pub(crate) syntax: SyntaxNode,
11422}
11423impl ParamDefault {
11424    #[inline]
11425    pub fn expr(&self) -> Option<Expr> {
11426        support::child(&self.syntax)
11427    }
11428    #[inline]
11429    pub fn eq_token(&self) -> Option<SyntaxToken> {
11430        support::token(&self.syntax, SyntaxKind::EQ)
11431    }
11432    #[inline]
11433    pub fn default_token(&self) -> Option<SyntaxToken> {
11434        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11435    }
11436}
11437
11438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11439pub struct ParamIn {
11440    pub(crate) syntax: SyntaxNode,
11441}
11442impl ParamIn {
11443    #[inline]
11444    pub fn in_token(&self) -> Option<SyntaxToken> {
11445        support::token(&self.syntax, SyntaxKind::IN_KW)
11446    }
11447}
11448
11449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11450pub struct ParamInOut {
11451    pub(crate) syntax: SyntaxNode,
11452}
11453impl ParamInOut {
11454    #[inline]
11455    pub fn in_token(&self) -> Option<SyntaxToken> {
11456        support::token(&self.syntax, SyntaxKind::IN_KW)
11457    }
11458    #[inline]
11459    pub fn inout_token(&self) -> Option<SyntaxToken> {
11460        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11461    }
11462    #[inline]
11463    pub fn out_token(&self) -> Option<SyntaxToken> {
11464        support::token(&self.syntax, SyntaxKind::OUT_KW)
11465    }
11466}
11467
11468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11469pub struct ParamList {
11470    pub(crate) syntax: SyntaxNode,
11471}
11472impl ParamList {
11473    #[inline]
11474    pub fn params(&self) -> AstChildren<Param> {
11475        support::children(&self.syntax)
11476    }
11477}
11478
11479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11480pub struct ParamOut {
11481    pub(crate) syntax: SyntaxNode,
11482}
11483impl ParamOut {
11484    #[inline]
11485    pub fn out_token(&self) -> Option<SyntaxToken> {
11486        support::token(&self.syntax, SyntaxKind::OUT_KW)
11487    }
11488}
11489
11490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11491pub struct ParamVariadic {
11492    pub(crate) syntax: SyntaxNode,
11493}
11494impl ParamVariadic {
11495    #[inline]
11496    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11497        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11498    }
11499}
11500
11501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11502pub struct ParenExpr {
11503    pub(crate) syntax: SyntaxNode,
11504}
11505impl ParenExpr {
11506    #[inline]
11507    pub fn expr(&self) -> Option<Expr> {
11508        support::child(&self.syntax)
11509    }
11510    #[inline]
11511    pub fn select(&self) -> Option<Select> {
11512        support::child(&self.syntax)
11513    }
11514    #[inline]
11515    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11516        support::token(&self.syntax, SyntaxKind::L_PAREN)
11517    }
11518    #[inline]
11519    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11520        support::token(&self.syntax, SyntaxKind::R_PAREN)
11521    }
11522}
11523
11524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11525pub struct ParenSelect {
11526    pub(crate) syntax: SyntaxNode,
11527}
11528impl ParenSelect {
11529    #[inline]
11530    pub fn select(&self) -> Option<SelectVariant> {
11531        support::child(&self.syntax)
11532    }
11533    #[inline]
11534    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::L_PAREN)
11536    }
11537    #[inline]
11538    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11539        support::token(&self.syntax, SyntaxKind::R_PAREN)
11540    }
11541}
11542
11543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11544pub struct PartitionBy {
11545    pub(crate) syntax: SyntaxNode,
11546}
11547impl PartitionBy {
11548    #[inline]
11549    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11550        support::child(&self.syntax)
11551    }
11552    #[inline]
11553    pub fn by_token(&self) -> Option<SyntaxToken> {
11554        support::token(&self.syntax, SyntaxKind::BY_KW)
11555    }
11556    #[inline]
11557    pub fn ident_token(&self) -> Option<SyntaxToken> {
11558        support::token(&self.syntax, SyntaxKind::IDENT)
11559    }
11560    #[inline]
11561    pub fn partition_token(&self) -> Option<SyntaxToken> {
11562        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11563    }
11564    #[inline]
11565    pub fn range_token(&self) -> Option<SyntaxToken> {
11566        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11567    }
11568}
11569
11570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11571pub struct PartitionDefault {
11572    pub(crate) syntax: SyntaxNode,
11573}
11574impl PartitionDefault {
11575    #[inline]
11576    pub fn default_token(&self) -> Option<SyntaxToken> {
11577        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11578    }
11579}
11580
11581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11582pub struct PartitionForValuesFrom {
11583    pub(crate) syntax: SyntaxNode,
11584}
11585impl PartitionForValuesFrom {
11586    #[inline]
11587    pub fn exprs(&self) -> AstChildren<Expr> {
11588        support::children(&self.syntax)
11589    }
11590    #[inline]
11591    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11592        support::token(&self.syntax, SyntaxKind::L_PAREN)
11593    }
11594    #[inline]
11595    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11596        support::token(&self.syntax, SyntaxKind::R_PAREN)
11597    }
11598    #[inline]
11599    pub fn for_token(&self) -> Option<SyntaxToken> {
11600        support::token(&self.syntax, SyntaxKind::FOR_KW)
11601    }
11602    #[inline]
11603    pub fn from_token(&self) -> Option<SyntaxToken> {
11604        support::token(&self.syntax, SyntaxKind::FROM_KW)
11605    }
11606    #[inline]
11607    pub fn to_token(&self) -> Option<SyntaxToken> {
11608        support::token(&self.syntax, SyntaxKind::TO_KW)
11609    }
11610    #[inline]
11611    pub fn values_token(&self) -> Option<SyntaxToken> {
11612        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11613    }
11614}
11615
11616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11617pub struct PartitionForValuesIn {
11618    pub(crate) syntax: SyntaxNode,
11619}
11620impl PartitionForValuesIn {
11621    #[inline]
11622    pub fn exprs(&self) -> AstChildren<Expr> {
11623        support::children(&self.syntax)
11624    }
11625    #[inline]
11626    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11627        support::token(&self.syntax, SyntaxKind::L_PAREN)
11628    }
11629    #[inline]
11630    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11631        support::token(&self.syntax, SyntaxKind::R_PAREN)
11632    }
11633    #[inline]
11634    pub fn for_token(&self) -> Option<SyntaxToken> {
11635        support::token(&self.syntax, SyntaxKind::FOR_KW)
11636    }
11637    #[inline]
11638    pub fn in_token(&self) -> Option<SyntaxToken> {
11639        support::token(&self.syntax, SyntaxKind::IN_KW)
11640    }
11641    #[inline]
11642    pub fn values_token(&self) -> Option<SyntaxToken> {
11643        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11644    }
11645}
11646
11647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11648pub struct PartitionForValuesWith {
11649    pub(crate) syntax: SyntaxNode,
11650}
11651impl PartitionForValuesWith {
11652    #[inline]
11653    pub fn literal(&self) -> Option<Literal> {
11654        support::child(&self.syntax)
11655    }
11656    #[inline]
11657    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11658        support::token(&self.syntax, SyntaxKind::L_PAREN)
11659    }
11660    #[inline]
11661    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11662        support::token(&self.syntax, SyntaxKind::R_PAREN)
11663    }
11664    #[inline]
11665    pub fn comma_token(&self) -> Option<SyntaxToken> {
11666        support::token(&self.syntax, SyntaxKind::COMMA)
11667    }
11668    #[inline]
11669    pub fn for_token(&self) -> Option<SyntaxToken> {
11670        support::token(&self.syntax, SyntaxKind::FOR_KW)
11671    }
11672    #[inline]
11673    pub fn ident_token(&self) -> Option<SyntaxToken> {
11674        support::token(&self.syntax, SyntaxKind::IDENT)
11675    }
11676    #[inline]
11677    pub fn values_token(&self) -> Option<SyntaxToken> {
11678        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11679    }
11680    #[inline]
11681    pub fn with_token(&self) -> Option<SyntaxToken> {
11682        support::token(&self.syntax, SyntaxKind::WITH_KW)
11683    }
11684}
11685
11686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11687pub struct PartitionItem {
11688    pub(crate) syntax: SyntaxNode,
11689}
11690impl PartitionItem {
11691    #[inline]
11692    pub fn collate(&self) -> Option<Collate> {
11693        support::child(&self.syntax)
11694    }
11695    #[inline]
11696    pub fn expr(&self) -> Option<Expr> {
11697        support::child(&self.syntax)
11698    }
11699}
11700
11701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11702pub struct PartitionItemList {
11703    pub(crate) syntax: SyntaxNode,
11704}
11705impl PartitionItemList {
11706    #[inline]
11707    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
11708        support::children(&self.syntax)
11709    }
11710    #[inline]
11711    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11712        support::token(&self.syntax, SyntaxKind::L_PAREN)
11713    }
11714    #[inline]
11715    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11716        support::token(&self.syntax, SyntaxKind::R_PAREN)
11717    }
11718}
11719
11720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11721pub struct PartitionOf {
11722    pub(crate) syntax: SyntaxNode,
11723}
11724impl PartitionOf {
11725    #[inline]
11726    pub fn ty(&self) -> Option<Type> {
11727        support::child(&self.syntax)
11728    }
11729    #[inline]
11730    pub fn of_token(&self) -> Option<SyntaxToken> {
11731        support::token(&self.syntax, SyntaxKind::OF_KW)
11732    }
11733    #[inline]
11734    pub fn partition_token(&self) -> Option<SyntaxToken> {
11735        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11736    }
11737}
11738
11739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11740pub struct Path {
11741    pub(crate) syntax: SyntaxNode,
11742}
11743impl Path {
11744    #[inline]
11745    pub fn qualifier(&self) -> Option<Path> {
11746        support::child(&self.syntax)
11747    }
11748    #[inline]
11749    pub fn segment(&self) -> Option<PathSegment> {
11750        support::child(&self.syntax)
11751    }
11752    #[inline]
11753    pub fn dot_token(&self) -> Option<SyntaxToken> {
11754        support::token(&self.syntax, SyntaxKind::DOT)
11755    }
11756}
11757
11758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11759pub struct PathSegment {
11760    pub(crate) syntax: SyntaxNode,
11761}
11762impl PathSegment {
11763    #[inline]
11764    pub fn name(&self) -> Option<Name> {
11765        support::child(&self.syntax)
11766    }
11767    #[inline]
11768    pub fn name_ref(&self) -> Option<NameRef> {
11769        support::child(&self.syntax)
11770    }
11771}
11772
11773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11774pub struct PathType {
11775    pub(crate) syntax: SyntaxNode,
11776}
11777impl PathType {
11778    #[inline]
11779    pub fn arg_list(&self) -> Option<ArgList> {
11780        support::child(&self.syntax)
11781    }
11782    #[inline]
11783    pub fn path(&self) -> Option<Path> {
11784        support::child(&self.syntax)
11785    }
11786}
11787
11788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11789pub struct PercentType {
11790    pub(crate) syntax: SyntaxNode,
11791}
11792impl PercentType {
11793    #[inline]
11794    pub fn percent_token(&self) -> Option<SyntaxToken> {
11795        support::token(&self.syntax, SyntaxKind::PERCENT)
11796    }
11797    #[inline]
11798    pub fn type_token(&self) -> Option<SyntaxToken> {
11799        support::token(&self.syntax, SyntaxKind::TYPE_KW)
11800    }
11801}
11802
11803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11804pub struct PercentTypeClause {
11805    pub(crate) syntax: SyntaxNode,
11806}
11807impl PercentTypeClause {
11808    #[inline]
11809    pub fn path(&self) -> Option<Path> {
11810        support::child(&self.syntax)
11811    }
11812    #[inline]
11813    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
11814        support::child(&self.syntax)
11815    }
11816}
11817
11818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11819pub struct PositionFn {
11820    pub(crate) syntax: SyntaxNode,
11821}
11822impl PositionFn {
11823    #[inline]
11824    pub fn expr(&self) -> Option<Expr> {
11825        support::child(&self.syntax)
11826    }
11827    #[inline]
11828    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11829        support::token(&self.syntax, SyntaxKind::L_PAREN)
11830    }
11831    #[inline]
11832    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11833        support::token(&self.syntax, SyntaxKind::R_PAREN)
11834    }
11835    #[inline]
11836    pub fn in_token(&self) -> Option<SyntaxToken> {
11837        support::token(&self.syntax, SyntaxKind::IN_KW)
11838    }
11839    #[inline]
11840    pub fn position_token(&self) -> Option<SyntaxToken> {
11841        support::token(&self.syntax, SyntaxKind::POSITION_KW)
11842    }
11843}
11844
11845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11846pub struct PostfixExpr {
11847    pub(crate) syntax: SyntaxNode,
11848}
11849impl PostfixExpr {
11850    #[inline]
11851    pub fn expr(&self) -> Option<Expr> {
11852        support::child(&self.syntax)
11853    }
11854}
11855
11856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11857pub struct PrefixExpr {
11858    pub(crate) syntax: SyntaxNode,
11859}
11860impl PrefixExpr {
11861    #[inline]
11862    pub fn expr(&self) -> Option<Expr> {
11863        support::child(&self.syntax)
11864    }
11865}
11866
11867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11868pub struct Prepare {
11869    pub(crate) syntax: SyntaxNode,
11870}
11871impl Prepare {
11872    #[inline]
11873    pub fn name(&self) -> Option<Name> {
11874        support::child(&self.syntax)
11875    }
11876    #[inline]
11877    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
11878        support::child(&self.syntax)
11879    }
11880    #[inline]
11881    pub fn as_token(&self) -> Option<SyntaxToken> {
11882        support::token(&self.syntax, SyntaxKind::AS_KW)
11883    }
11884    #[inline]
11885    pub fn prepare_token(&self) -> Option<SyntaxToken> {
11886        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
11887    }
11888}
11889
11890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11891pub struct PrepareTransaction {
11892    pub(crate) syntax: SyntaxNode,
11893}
11894impl PrepareTransaction {
11895    #[inline]
11896    pub fn literal(&self) -> Option<Literal> {
11897        support::child(&self.syntax)
11898    }
11899    #[inline]
11900    pub fn prepare_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
11902    }
11903    #[inline]
11904    pub fn transaction_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
11906    }
11907}
11908
11909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11910pub struct PreserveRows {
11911    pub(crate) syntax: SyntaxNode,
11912}
11913impl PreserveRows {
11914    #[inline]
11915    pub fn preserve_token(&self) -> Option<SyntaxToken> {
11916        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
11917    }
11918    #[inline]
11919    pub fn rows_token(&self) -> Option<SyntaxToken> {
11920        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11921    }
11922}
11923
11924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11925pub struct PrimaryKeyConstraint {
11926    pub(crate) syntax: SyntaxNode,
11927}
11928impl PrimaryKeyConstraint {
11929    #[inline]
11930    pub fn column_list(&self) -> Option<ColumnList> {
11931        support::child(&self.syntax)
11932    }
11933    #[inline]
11934    pub fn name(&self) -> Option<Name> {
11935        support::child(&self.syntax)
11936    }
11937    #[inline]
11938    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11939        support::child(&self.syntax)
11940    }
11941    #[inline]
11942    pub fn using_index(&self) -> Option<UsingIndex> {
11943        support::child(&self.syntax)
11944    }
11945    #[inline]
11946    pub fn constraint_token(&self) -> Option<SyntaxToken> {
11947        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
11948    }
11949    #[inline]
11950    pub fn key_token(&self) -> Option<SyntaxToken> {
11951        support::token(&self.syntax, SyntaxKind::KEY_KW)
11952    }
11953    #[inline]
11954    pub fn primary_token(&self) -> Option<SyntaxToken> {
11955        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
11956    }
11957}
11958
11959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11960pub struct PrivilegeTarget {
11961    pub(crate) syntax: SyntaxNode,
11962}
11963impl PrivilegeTarget {
11964    #[inline]
11965    pub fn functions_token(&self) -> Option<SyntaxToken> {
11966        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
11967    }
11968    #[inline]
11969    pub fn large_token(&self) -> Option<SyntaxToken> {
11970        support::token(&self.syntax, SyntaxKind::LARGE_KW)
11971    }
11972    #[inline]
11973    pub fn objects_token(&self) -> Option<SyntaxToken> {
11974        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
11975    }
11976    #[inline]
11977    pub fn routines_token(&self) -> Option<SyntaxToken> {
11978        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
11979    }
11980    #[inline]
11981    pub fn schemas_token(&self) -> Option<SyntaxToken> {
11982        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
11983    }
11984    #[inline]
11985    pub fn sequences_token(&self) -> Option<SyntaxToken> {
11986        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
11987    }
11988    #[inline]
11989    pub fn tables_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::TABLES_KW)
11991    }
11992    #[inline]
11993    pub fn types_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::TYPES_KW)
11995    }
11996}
11997
11998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11999pub struct Privileges {
12000    pub(crate) syntax: SyntaxNode,
12001}
12002impl Privileges {
12003    #[inline]
12004    pub fn column_list(&self) -> Option<ColumnList> {
12005        support::child(&self.syntax)
12006    }
12007    #[inline]
12008    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12009        support::child(&self.syntax)
12010    }
12011    #[inline]
12012    pub fn all_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::ALL_KW)
12014    }
12015    #[inline]
12016    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12018    }
12019}
12020
12021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12022pub struct PublicationObject {
12023    pub(crate) syntax: SyntaxNode,
12024}
12025impl PublicationObject {
12026    #[inline]
12027    pub fn column_list(&self) -> Option<ColumnList> {
12028        support::child(&self.syntax)
12029    }
12030    #[inline]
12031    pub fn name_ref(&self) -> Option<NameRef> {
12032        support::child(&self.syntax)
12033    }
12034    #[inline]
12035    pub fn path(&self) -> Option<Path> {
12036        support::child(&self.syntax)
12037    }
12038    #[inline]
12039    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12040        support::child(&self.syntax)
12041    }
12042    #[inline]
12043    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12044        support::token(&self.syntax, SyntaxKind::L_PAREN)
12045    }
12046    #[inline]
12047    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12048        support::token(&self.syntax, SyntaxKind::R_PAREN)
12049    }
12050    #[inline]
12051    pub fn star_token(&self) -> Option<SyntaxToken> {
12052        support::token(&self.syntax, SyntaxKind::STAR)
12053    }
12054    #[inline]
12055    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12056        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12057    }
12058    #[inline]
12059    pub fn in_token(&self) -> Option<SyntaxToken> {
12060        support::token(&self.syntax, SyntaxKind::IN_KW)
12061    }
12062    #[inline]
12063    pub fn only_token(&self) -> Option<SyntaxToken> {
12064        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12065    }
12066    #[inline]
12067    pub fn schema_token(&self) -> Option<SyntaxToken> {
12068        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12069    }
12070    #[inline]
12071    pub fn table_token(&self) -> Option<SyntaxToken> {
12072        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12073    }
12074    #[inline]
12075    pub fn tables_token(&self) -> Option<SyntaxToken> {
12076        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12077    }
12078}
12079
12080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12081pub struct ReadCommitted {
12082    pub(crate) syntax: SyntaxNode,
12083}
12084impl ReadCommitted {
12085    #[inline]
12086    pub fn committed_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12088    }
12089    #[inline]
12090    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12091        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12092    }
12093    #[inline]
12094    pub fn level_token(&self) -> Option<SyntaxToken> {
12095        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12096    }
12097    #[inline]
12098    pub fn read_token(&self) -> Option<SyntaxToken> {
12099        support::token(&self.syntax, SyntaxKind::READ_KW)
12100    }
12101}
12102
12103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12104pub struct ReadOnly {
12105    pub(crate) syntax: SyntaxNode,
12106}
12107impl ReadOnly {
12108    #[inline]
12109    pub fn only_token(&self) -> Option<SyntaxToken> {
12110        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12111    }
12112    #[inline]
12113    pub fn read_token(&self) -> Option<SyntaxToken> {
12114        support::token(&self.syntax, SyntaxKind::READ_KW)
12115    }
12116}
12117
12118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12119pub struct ReadUncommitted {
12120    pub(crate) syntax: SyntaxNode,
12121}
12122impl ReadUncommitted {
12123    #[inline]
12124    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12125        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12126    }
12127    #[inline]
12128    pub fn level_token(&self) -> Option<SyntaxToken> {
12129        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12130    }
12131    #[inline]
12132    pub fn read_token(&self) -> Option<SyntaxToken> {
12133        support::token(&self.syntax, SyntaxKind::READ_KW)
12134    }
12135    #[inline]
12136    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12137        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12138    }
12139}
12140
12141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12142pub struct ReadWrite {
12143    pub(crate) syntax: SyntaxNode,
12144}
12145impl ReadWrite {
12146    #[inline]
12147    pub fn read_token(&self) -> Option<SyntaxToken> {
12148        support::token(&self.syntax, SyntaxKind::READ_KW)
12149    }
12150    #[inline]
12151    pub fn write_token(&self) -> Option<SyntaxToken> {
12152        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12153    }
12154}
12155
12156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12157pub struct Reassign {
12158    pub(crate) syntax: SyntaxNode,
12159}
12160impl Reassign {
12161    #[inline]
12162    pub fn new_roles(&self) -> Option<RoleList> {
12163        support::child(&self.syntax)
12164    }
12165    #[inline]
12166    pub fn old_roles(&self) -> Option<RoleList> {
12167        support::child(&self.syntax)
12168    }
12169    #[inline]
12170    pub fn by_token(&self) -> Option<SyntaxToken> {
12171        support::token(&self.syntax, SyntaxKind::BY_KW)
12172    }
12173    #[inline]
12174    pub fn owned_token(&self) -> Option<SyntaxToken> {
12175        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12176    }
12177    #[inline]
12178    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12179        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12180    }
12181    #[inline]
12182    pub fn to_token(&self) -> Option<SyntaxToken> {
12183        support::token(&self.syntax, SyntaxKind::TO_KW)
12184    }
12185}
12186
12187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12188pub struct ReferencesConstraint {
12189    pub(crate) syntax: SyntaxNode,
12190}
12191impl ReferencesConstraint {
12192    #[inline]
12193    pub fn match_type(&self) -> Option<MatchType> {
12194        support::child(&self.syntax)
12195    }
12196    #[inline]
12197    pub fn name(&self) -> Option<Name> {
12198        support::child(&self.syntax)
12199    }
12200    #[inline]
12201    pub fn name_ref(&self) -> Option<NameRef> {
12202        support::child(&self.syntax)
12203    }
12204    #[inline]
12205    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12206        support::child(&self.syntax)
12207    }
12208    #[inline]
12209    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12210        support::child(&self.syntax)
12211    }
12212    #[inline]
12213    pub fn path(&self) -> Option<Path> {
12214        support::child(&self.syntax)
12215    }
12216    #[inline]
12217    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12218        support::token(&self.syntax, SyntaxKind::L_PAREN)
12219    }
12220    #[inline]
12221    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12222        support::token(&self.syntax, SyntaxKind::R_PAREN)
12223    }
12224    #[inline]
12225    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12226        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12227    }
12228    #[inline]
12229    pub fn references_token(&self) -> Option<SyntaxToken> {
12230        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12231    }
12232}
12233
12234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12235pub struct Referencing {
12236    pub(crate) syntax: SyntaxNode,
12237}
12238impl Referencing {
12239    #[inline]
12240    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12241        support::children(&self.syntax)
12242    }
12243    #[inline]
12244    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12245        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12246    }
12247}
12248
12249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12250pub struct ReferencingTable {
12251    pub(crate) syntax: SyntaxNode,
12252}
12253impl ReferencingTable {
12254    #[inline]
12255    pub fn name_ref(&self) -> Option<NameRef> {
12256        support::child(&self.syntax)
12257    }
12258    #[inline]
12259    pub fn as_token(&self) -> Option<SyntaxToken> {
12260        support::token(&self.syntax, SyntaxKind::AS_KW)
12261    }
12262    #[inline]
12263    pub fn new_token(&self) -> Option<SyntaxToken> {
12264        support::token(&self.syntax, SyntaxKind::NEW_KW)
12265    }
12266    #[inline]
12267    pub fn old_token(&self) -> Option<SyntaxToken> {
12268        support::token(&self.syntax, SyntaxKind::OLD_KW)
12269    }
12270    #[inline]
12271    pub fn table_token(&self) -> Option<SyntaxToken> {
12272        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12273    }
12274}
12275
12276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12277pub struct Refresh {
12278    pub(crate) syntax: SyntaxNode,
12279}
12280impl Refresh {
12281    #[inline]
12282    pub fn path(&self) -> Option<Path> {
12283        support::child(&self.syntax)
12284    }
12285    #[inline]
12286    pub fn with_data(&self) -> Option<WithData> {
12287        support::child(&self.syntax)
12288    }
12289    #[inline]
12290    pub fn with_no_data(&self) -> Option<WithNoData> {
12291        support::child(&self.syntax)
12292    }
12293    #[inline]
12294    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12295        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12296    }
12297    #[inline]
12298    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12299        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12300    }
12301    #[inline]
12302    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12303        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12304    }
12305    #[inline]
12306    pub fn view_token(&self) -> Option<SyntaxToken> {
12307        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12308    }
12309}
12310
12311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12312pub struct RefreshCollationVersion {
12313    pub(crate) syntax: SyntaxNode,
12314}
12315impl RefreshCollationVersion {
12316    #[inline]
12317    pub fn collation_token(&self) -> Option<SyntaxToken> {
12318        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12319    }
12320    #[inline]
12321    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12322        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12323    }
12324    #[inline]
12325    pub fn version_token(&self) -> Option<SyntaxToken> {
12326        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12327    }
12328}
12329
12330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12331pub struct RefreshVersion {
12332    pub(crate) syntax: SyntaxNode,
12333}
12334impl RefreshVersion {
12335    #[inline]
12336    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12337        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12338    }
12339    #[inline]
12340    pub fn version_token(&self) -> Option<SyntaxToken> {
12341        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12342    }
12343}
12344
12345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12346pub struct Reindex {
12347    pub(crate) syntax: SyntaxNode,
12348}
12349impl Reindex {
12350    #[inline]
12351    pub fn path(&self) -> Option<Path> {
12352        support::child(&self.syntax)
12353    }
12354    #[inline]
12355    pub fn database_token(&self) -> Option<SyntaxToken> {
12356        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12357    }
12358    #[inline]
12359    pub fn index_token(&self) -> Option<SyntaxToken> {
12360        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12361    }
12362    #[inline]
12363    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12364        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12365    }
12366    #[inline]
12367    pub fn schema_token(&self) -> Option<SyntaxToken> {
12368        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12369    }
12370    #[inline]
12371    pub fn system_token(&self) -> Option<SyntaxToken> {
12372        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12373    }
12374    #[inline]
12375    pub fn table_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12377    }
12378}
12379
12380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12381pub struct RelationName {
12382    pub(crate) syntax: SyntaxNode,
12383}
12384impl RelationName {
12385    #[inline]
12386    pub fn path(&self) -> Option<Path> {
12387        support::child(&self.syntax)
12388    }
12389    #[inline]
12390    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12391        support::token(&self.syntax, SyntaxKind::L_PAREN)
12392    }
12393    #[inline]
12394    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12395        support::token(&self.syntax, SyntaxKind::R_PAREN)
12396    }
12397    #[inline]
12398    pub fn star_token(&self) -> Option<SyntaxToken> {
12399        support::token(&self.syntax, SyntaxKind::STAR)
12400    }
12401    #[inline]
12402    pub fn only_token(&self) -> Option<SyntaxToken> {
12403        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12404    }
12405}
12406
12407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12408pub struct ReleaseSavepoint {
12409    pub(crate) syntax: SyntaxNode,
12410}
12411impl ReleaseSavepoint {
12412    #[inline]
12413    pub fn name_ref(&self) -> Option<NameRef> {
12414        support::child(&self.syntax)
12415    }
12416    #[inline]
12417    pub fn release_token(&self) -> Option<SyntaxToken> {
12418        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12419    }
12420    #[inline]
12421    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12422        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12423    }
12424}
12425
12426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12427pub struct RenameColumn {
12428    pub(crate) syntax: SyntaxNode,
12429}
12430impl RenameColumn {
12431    #[inline]
12432    pub fn column_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12434    }
12435    #[inline]
12436    pub fn rename_token(&self) -> Option<SyntaxToken> {
12437        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12438    }
12439    #[inline]
12440    pub fn to_token(&self) -> Option<SyntaxToken> {
12441        support::token(&self.syntax, SyntaxKind::TO_KW)
12442    }
12443}
12444
12445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12446pub struct RenameConstraint {
12447    pub(crate) syntax: SyntaxNode,
12448}
12449impl RenameConstraint {
12450    #[inline]
12451    pub fn name(&self) -> Option<Name> {
12452        support::child(&self.syntax)
12453    }
12454    #[inline]
12455    pub fn name_ref(&self) -> Option<NameRef> {
12456        support::child(&self.syntax)
12457    }
12458    #[inline]
12459    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12460        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12461    }
12462    #[inline]
12463    pub fn rename_token(&self) -> Option<SyntaxToken> {
12464        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12465    }
12466    #[inline]
12467    pub fn to_token(&self) -> Option<SyntaxToken> {
12468        support::token(&self.syntax, SyntaxKind::TO_KW)
12469    }
12470}
12471
12472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12473pub struct RenameTo {
12474    pub(crate) syntax: SyntaxNode,
12475}
12476impl RenameTo {
12477    #[inline]
12478    pub fn name(&self) -> Option<Name> {
12479        support::child(&self.syntax)
12480    }
12481    #[inline]
12482    pub fn rename_token(&self) -> Option<SyntaxToken> {
12483        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12484    }
12485    #[inline]
12486    pub fn to_token(&self) -> Option<SyntaxToken> {
12487        support::token(&self.syntax, SyntaxKind::TO_KW)
12488    }
12489}
12490
12491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12492pub struct RepeatableClause {
12493    pub(crate) syntax: SyntaxNode,
12494}
12495impl RepeatableClause {
12496    #[inline]
12497    pub fn expr(&self) -> Option<Expr> {
12498        support::child(&self.syntax)
12499    }
12500    #[inline]
12501    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12502        support::token(&self.syntax, SyntaxKind::L_PAREN)
12503    }
12504    #[inline]
12505    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12506        support::token(&self.syntax, SyntaxKind::R_PAREN)
12507    }
12508    #[inline]
12509    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12510        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12511    }
12512}
12513
12514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12515pub struct RepeatableRead {
12516    pub(crate) syntax: SyntaxNode,
12517}
12518impl RepeatableRead {
12519    #[inline]
12520    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12521        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12522    }
12523    #[inline]
12524    pub fn level_token(&self) -> Option<SyntaxToken> {
12525        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12526    }
12527    #[inline]
12528    pub fn read_token(&self) -> Option<SyntaxToken> {
12529        support::token(&self.syntax, SyntaxKind::READ_KW)
12530    }
12531    #[inline]
12532    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12533        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12534    }
12535}
12536
12537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12538pub struct ReplicaIdentity {
12539    pub(crate) syntax: SyntaxNode,
12540}
12541impl ReplicaIdentity {
12542    #[inline]
12543    pub fn identity_token(&self) -> Option<SyntaxToken> {
12544        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
12545    }
12546    #[inline]
12547    pub fn replica_token(&self) -> Option<SyntaxToken> {
12548        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
12549    }
12550}
12551
12552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12553pub struct Reset {
12554    pub(crate) syntax: SyntaxNode,
12555}
12556impl Reset {
12557    #[inline]
12558    pub fn name_ref(&self) -> Option<NameRef> {
12559        support::child(&self.syntax)
12560    }
12561    #[inline]
12562    pub fn all_token(&self) -> Option<SyntaxToken> {
12563        support::token(&self.syntax, SyntaxKind::ALL_KW)
12564    }
12565    #[inline]
12566    pub fn reset_token(&self) -> Option<SyntaxToken> {
12567        support::token(&self.syntax, SyntaxKind::RESET_KW)
12568    }
12569}
12570
12571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12572pub struct ResetConfigParam {
12573    pub(crate) syntax: SyntaxNode,
12574}
12575impl ResetConfigParam {
12576    #[inline]
12577    pub fn path(&self) -> Option<Path> {
12578        support::child(&self.syntax)
12579    }
12580    #[inline]
12581    pub fn all_token(&self) -> Option<SyntaxToken> {
12582        support::token(&self.syntax, SyntaxKind::ALL_KW)
12583    }
12584    #[inline]
12585    pub fn reset_token(&self) -> Option<SyntaxToken> {
12586        support::token(&self.syntax, SyntaxKind::RESET_KW)
12587    }
12588}
12589
12590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12591pub struct ResetFuncOption {
12592    pub(crate) syntax: SyntaxNode,
12593}
12594impl ResetFuncOption {
12595    #[inline]
12596    pub fn name_ref(&self) -> Option<NameRef> {
12597        support::child(&self.syntax)
12598    }
12599    #[inline]
12600    pub fn reset_token(&self) -> Option<SyntaxToken> {
12601        support::token(&self.syntax, SyntaxKind::RESET_KW)
12602    }
12603}
12604
12605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12606pub struct ResetOptions {
12607    pub(crate) syntax: SyntaxNode,
12608}
12609impl ResetOptions {
12610    #[inline]
12611    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12612        support::token(&self.syntax, SyntaxKind::L_PAREN)
12613    }
12614    #[inline]
12615    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12616        support::token(&self.syntax, SyntaxKind::R_PAREN)
12617    }
12618    #[inline]
12619    pub fn reset_token(&self) -> Option<SyntaxToken> {
12620        support::token(&self.syntax, SyntaxKind::RESET_KW)
12621    }
12622}
12623
12624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12625pub struct ResetSessionAuth {
12626    pub(crate) syntax: SyntaxNode,
12627}
12628impl ResetSessionAuth {
12629    #[inline]
12630    pub fn authorization_token(&self) -> Option<SyntaxToken> {
12631        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
12632    }
12633    #[inline]
12634    pub fn reset_token(&self) -> Option<SyntaxToken> {
12635        support::token(&self.syntax, SyntaxKind::RESET_KW)
12636    }
12637    #[inline]
12638    pub fn session_token(&self) -> Option<SyntaxToken> {
12639        support::token(&self.syntax, SyntaxKind::SESSION_KW)
12640    }
12641}
12642
12643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12644pub struct Restart {
12645    pub(crate) syntax: SyntaxNode,
12646}
12647impl Restart {
12648    #[inline]
12649    pub fn restart_token(&self) -> Option<SyntaxToken> {
12650        support::token(&self.syntax, SyntaxKind::RESTART_KW)
12651    }
12652    #[inline]
12653    pub fn with_token(&self) -> Option<SyntaxToken> {
12654        support::token(&self.syntax, SyntaxKind::WITH_KW)
12655    }
12656}
12657
12658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12659pub struct Restrict {
12660    pub(crate) syntax: SyntaxNode,
12661}
12662impl Restrict {
12663    #[inline]
12664    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12665        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12666    }
12667}
12668
12669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12670pub struct RetType {
12671    pub(crate) syntax: SyntaxNode,
12672}
12673impl RetType {
12674    #[inline]
12675    pub fn ty(&self) -> Option<Type> {
12676        support::child(&self.syntax)
12677    }
12678    #[inline]
12679    pub fn returns_token(&self) -> Option<SyntaxToken> {
12680        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
12681    }
12682}
12683
12684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12685pub struct ReturnFuncOption {
12686    pub(crate) syntax: SyntaxNode,
12687}
12688impl ReturnFuncOption {
12689    #[inline]
12690    pub fn expr(&self) -> Option<Expr> {
12691        support::child(&self.syntax)
12692    }
12693    #[inline]
12694    pub fn return_token(&self) -> Option<SyntaxToken> {
12695        support::token(&self.syntax, SyntaxKind::RETURN_KW)
12696    }
12697}
12698
12699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12700pub struct ReturningClause {
12701    pub(crate) syntax: SyntaxNode,
12702}
12703impl ReturningClause {
12704    #[inline]
12705    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
12706        support::child(&self.syntax)
12707    }
12708    #[inline]
12709    pub fn target_list(&self) -> Option<TargetList> {
12710        support::child(&self.syntax)
12711    }
12712    #[inline]
12713    pub fn returning_token(&self) -> Option<SyntaxToken> {
12714        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
12715    }
12716}
12717
12718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12719pub struct ReturningOption {
12720    pub(crate) syntax: SyntaxNode,
12721}
12722impl ReturningOption {
12723    #[inline]
12724    pub fn name(&self) -> Option<Name> {
12725        support::child(&self.syntax)
12726    }
12727    #[inline]
12728    pub fn as_token(&self) -> Option<SyntaxToken> {
12729        support::token(&self.syntax, SyntaxKind::AS_KW)
12730    }
12731    #[inline]
12732    pub fn new_token(&self) -> Option<SyntaxToken> {
12733        support::token(&self.syntax, SyntaxKind::NEW_KW)
12734    }
12735    #[inline]
12736    pub fn old_token(&self) -> Option<SyntaxToken> {
12737        support::token(&self.syntax, SyntaxKind::OLD_KW)
12738    }
12739}
12740
12741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12742pub struct ReturningOptionList {
12743    pub(crate) syntax: SyntaxNode,
12744}
12745impl ReturningOptionList {
12746    #[inline]
12747    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
12748        support::children(&self.syntax)
12749    }
12750    #[inline]
12751    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12752        support::token(&self.syntax, SyntaxKind::L_PAREN)
12753    }
12754    #[inline]
12755    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12756        support::token(&self.syntax, SyntaxKind::R_PAREN)
12757    }
12758    #[inline]
12759    pub fn with_token(&self) -> Option<SyntaxToken> {
12760        support::token(&self.syntax, SyntaxKind::WITH_KW)
12761    }
12762}
12763
12764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12765pub struct Revoke {
12766    pub(crate) syntax: SyntaxNode,
12767}
12768impl Revoke {
12769    #[inline]
12770    pub fn name_refs(&self) -> AstChildren<NameRef> {
12771        support::children(&self.syntax)
12772    }
12773    #[inline]
12774    pub fn paths(&self) -> AstChildren<Path> {
12775        support::children(&self.syntax)
12776    }
12777    #[inline]
12778    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12779        support::child(&self.syntax)
12780    }
12781    #[inline]
12782    pub fn role(&self) -> Option<Role> {
12783        support::child(&self.syntax)
12784    }
12785    #[inline]
12786    pub fn role_list(&self) -> Option<RoleList> {
12787        support::child(&self.syntax)
12788    }
12789    #[inline]
12790    pub fn all_token(&self) -> Option<SyntaxToken> {
12791        support::token(&self.syntax, SyntaxKind::ALL_KW)
12792    }
12793    #[inline]
12794    pub fn by_token(&self) -> Option<SyntaxToken> {
12795        support::token(&self.syntax, SyntaxKind::BY_KW)
12796    }
12797    #[inline]
12798    pub fn cascade_token(&self) -> Option<SyntaxToken> {
12799        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
12800    }
12801    #[inline]
12802    pub fn for_token(&self) -> Option<SyntaxToken> {
12803        support::token(&self.syntax, SyntaxKind::FOR_KW)
12804    }
12805    #[inline]
12806    pub fn from_token(&self) -> Option<SyntaxToken> {
12807        support::token(&self.syntax, SyntaxKind::FROM_KW)
12808    }
12809    #[inline]
12810    pub fn grant_token(&self) -> Option<SyntaxToken> {
12811        support::token(&self.syntax, SyntaxKind::GRANT_KW)
12812    }
12813    #[inline]
12814    pub fn granted_token(&self) -> Option<SyntaxToken> {
12815        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
12816    }
12817    #[inline]
12818    pub fn in_token(&self) -> Option<SyntaxToken> {
12819        support::token(&self.syntax, SyntaxKind::IN_KW)
12820    }
12821    #[inline]
12822    pub fn on_token(&self) -> Option<SyntaxToken> {
12823        support::token(&self.syntax, SyntaxKind::ON_KW)
12824    }
12825    #[inline]
12826    pub fn option_token(&self) -> Option<SyntaxToken> {
12827        support::token(&self.syntax, SyntaxKind::OPTION_KW)
12828    }
12829    #[inline]
12830    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12831        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12832    }
12833    #[inline]
12834    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12835        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12836    }
12837    #[inline]
12838    pub fn revoke_token(&self) -> Option<SyntaxToken> {
12839        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
12840    }
12841    #[inline]
12842    pub fn schema_token(&self) -> Option<SyntaxToken> {
12843        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12844    }
12845    #[inline]
12846    pub fn table_token(&self) -> Option<SyntaxToken> {
12847        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12848    }
12849    #[inline]
12850    pub fn tables_token(&self) -> Option<SyntaxToken> {
12851        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12852    }
12853}
12854
12855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12856pub struct RevokeCommand {
12857    pub(crate) syntax: SyntaxNode,
12858}
12859impl RevokeCommand {
12860    #[inline]
12861    pub fn role(&self) -> Option<Role> {
12862        support::child(&self.syntax)
12863    }
12864    #[inline]
12865    pub fn all_token(&self) -> Option<SyntaxToken> {
12866        support::token(&self.syntax, SyntaxKind::ALL_KW)
12867    }
12868    #[inline]
12869    pub fn alter_token(&self) -> Option<SyntaxToken> {
12870        support::token(&self.syntax, SyntaxKind::ALTER_KW)
12871    }
12872    #[inline]
12873    pub fn create_token(&self) -> Option<SyntaxToken> {
12874        support::token(&self.syntax, SyntaxKind::CREATE_KW)
12875    }
12876    #[inline]
12877    pub fn delete_token(&self) -> Option<SyntaxToken> {
12878        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12879    }
12880    #[inline]
12881    pub fn execute_token(&self) -> Option<SyntaxToken> {
12882        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
12883    }
12884    #[inline]
12885    pub fn ident_token(&self) -> Option<SyntaxToken> {
12886        support::token(&self.syntax, SyntaxKind::IDENT)
12887    }
12888    #[inline]
12889    pub fn insert_token(&self) -> Option<SyntaxToken> {
12890        support::token(&self.syntax, SyntaxKind::INSERT_KW)
12891    }
12892    #[inline]
12893    pub fn references_token(&self) -> Option<SyntaxToken> {
12894        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12895    }
12896    #[inline]
12897    pub fn select_token(&self) -> Option<SyntaxToken> {
12898        support::token(&self.syntax, SyntaxKind::SELECT_KW)
12899    }
12900    #[inline]
12901    pub fn system_token(&self) -> Option<SyntaxToken> {
12902        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12903    }
12904    #[inline]
12905    pub fn temp_token(&self) -> Option<SyntaxToken> {
12906        support::token(&self.syntax, SyntaxKind::TEMP_KW)
12907    }
12908    #[inline]
12909    pub fn temporary_token(&self) -> Option<SyntaxToken> {
12910        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
12911    }
12912    #[inline]
12913    pub fn trigger_token(&self) -> Option<SyntaxToken> {
12914        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
12915    }
12916    #[inline]
12917    pub fn truncate_token(&self) -> Option<SyntaxToken> {
12918        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
12919    }
12920    #[inline]
12921    pub fn update_token(&self) -> Option<SyntaxToken> {
12922        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12923    }
12924}
12925
12926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12927pub struct RevokeCommandList {
12928    pub(crate) syntax: SyntaxNode,
12929}
12930impl RevokeCommandList {
12931    #[inline]
12932    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
12933        support::children(&self.syntax)
12934    }
12935}
12936
12937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12938pub struct RevokeDefaultPrivileges {
12939    pub(crate) syntax: SyntaxNode,
12940}
12941impl RevokeDefaultPrivileges {
12942    #[inline]
12943    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
12944        support::child(&self.syntax)
12945    }
12946    #[inline]
12947    pub fn privileges(&self) -> Option<Privileges> {
12948        support::child(&self.syntax)
12949    }
12950    #[inline]
12951    pub fn role_list(&self) -> Option<RoleList> {
12952        support::child(&self.syntax)
12953    }
12954    #[inline]
12955    pub fn cascade_token(&self) -> Option<SyntaxToken> {
12956        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
12957    }
12958    #[inline]
12959    pub fn for_token(&self) -> Option<SyntaxToken> {
12960        support::token(&self.syntax, SyntaxKind::FOR_KW)
12961    }
12962    #[inline]
12963    pub fn from_token(&self) -> Option<SyntaxToken> {
12964        support::token(&self.syntax, SyntaxKind::FROM_KW)
12965    }
12966    #[inline]
12967    pub fn grant_token(&self) -> Option<SyntaxToken> {
12968        support::token(&self.syntax, SyntaxKind::GRANT_KW)
12969    }
12970    #[inline]
12971    pub fn on_token(&self) -> Option<SyntaxToken> {
12972        support::token(&self.syntax, SyntaxKind::ON_KW)
12973    }
12974    #[inline]
12975    pub fn option_token(&self) -> Option<SyntaxToken> {
12976        support::token(&self.syntax, SyntaxKind::OPTION_KW)
12977    }
12978    #[inline]
12979    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12980        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12981    }
12982    #[inline]
12983    pub fn revoke_token(&self) -> Option<SyntaxToken> {
12984        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
12985    }
12986}
12987
12988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12989pub struct Role {
12990    pub(crate) syntax: SyntaxNode,
12991}
12992impl Role {
12993    #[inline]
12994    pub fn name_ref(&self) -> Option<NameRef> {
12995        support::child(&self.syntax)
12996    }
12997    #[inline]
12998    pub fn current_role_token(&self) -> Option<SyntaxToken> {
12999        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13000    }
13001    #[inline]
13002    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13003        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13004    }
13005    #[inline]
13006    pub fn group_token(&self) -> Option<SyntaxToken> {
13007        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13008    }
13009    #[inline]
13010    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13012    }
13013}
13014
13015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13016pub struct RoleList {
13017    pub(crate) syntax: SyntaxNode,
13018}
13019impl RoleList {
13020    #[inline]
13021    pub fn roles(&self) -> AstChildren<Role> {
13022        support::children(&self.syntax)
13023    }
13024}
13025
13026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13027pub struct RoleOption {
13028    pub(crate) syntax: SyntaxNode,
13029}
13030impl RoleOption {
13031    #[inline]
13032    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13033        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13034    }
13035}
13036
13037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13038pub struct RoleOptionList {
13039    pub(crate) syntax: SyntaxNode,
13040}
13041impl RoleOptionList {
13042    #[inline]
13043    pub fn role_options(&self) -> AstChildren<RoleOption> {
13044        support::children(&self.syntax)
13045    }
13046    #[inline]
13047    pub fn with_token(&self) -> Option<SyntaxToken> {
13048        support::token(&self.syntax, SyntaxKind::WITH_KW)
13049    }
13050}
13051
13052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13053pub struct Rollback {
13054    pub(crate) syntax: SyntaxNode,
13055}
13056impl Rollback {
13057    #[inline]
13058    pub fn literal(&self) -> Option<Literal> {
13059        support::child(&self.syntax)
13060    }
13061    #[inline]
13062    pub fn name_ref(&self) -> Option<NameRef> {
13063        support::child(&self.syntax)
13064    }
13065    #[inline]
13066    pub fn abort_token(&self) -> Option<SyntaxToken> {
13067        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13068    }
13069    #[inline]
13070    pub fn and_token(&self) -> Option<SyntaxToken> {
13071        support::token(&self.syntax, SyntaxKind::AND_KW)
13072    }
13073    #[inline]
13074    pub fn chain_token(&self) -> Option<SyntaxToken> {
13075        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13076    }
13077    #[inline]
13078    pub fn no_token(&self) -> Option<SyntaxToken> {
13079        support::token(&self.syntax, SyntaxKind::NO_KW)
13080    }
13081    #[inline]
13082    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13083        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13084    }
13085    #[inline]
13086    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13087        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13088    }
13089    #[inline]
13090    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13091        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13092    }
13093    #[inline]
13094    pub fn to_token(&self) -> Option<SyntaxToken> {
13095        support::token(&self.syntax, SyntaxKind::TO_KW)
13096    }
13097    #[inline]
13098    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13099        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13100    }
13101    #[inline]
13102    pub fn work_token(&self) -> Option<SyntaxToken> {
13103        support::token(&self.syntax, SyntaxKind::WORK_KW)
13104    }
13105}
13106
13107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13108pub struct Row {
13109    pub(crate) syntax: SyntaxNode,
13110}
13111impl Row {
13112    #[inline]
13113    pub fn exprs(&self) -> AstChildren<Expr> {
13114        support::children(&self.syntax)
13115    }
13116}
13117
13118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13119pub struct RowList {
13120    pub(crate) syntax: SyntaxNode,
13121}
13122impl RowList {
13123    #[inline]
13124    pub fn rows(&self) -> AstChildren<Row> {
13125        support::children(&self.syntax)
13126    }
13127}
13128
13129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13130pub struct RowsFuncOption {
13131    pub(crate) syntax: SyntaxNode,
13132}
13133impl RowsFuncOption {
13134    #[inline]
13135    pub fn rows_token(&self) -> Option<SyntaxToken> {
13136        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13137    }
13138}
13139
13140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13141pub struct Savepoint {
13142    pub(crate) syntax: SyntaxNode,
13143}
13144impl Savepoint {
13145    #[inline]
13146    pub fn name(&self) -> Option<Name> {
13147        support::child(&self.syntax)
13148    }
13149    #[inline]
13150    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13151        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13152    }
13153}
13154
13155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13156pub struct SchemaAuthorization {
13157    pub(crate) syntax: SyntaxNode,
13158}
13159impl SchemaAuthorization {
13160    #[inline]
13161    pub fn role(&self) -> Option<Role> {
13162        support::child(&self.syntax)
13163    }
13164    #[inline]
13165    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13166        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13167    }
13168}
13169
13170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13171pub struct SecurityFuncOption {
13172    pub(crate) syntax: SyntaxNode,
13173}
13174impl SecurityFuncOption {
13175    #[inline]
13176    pub fn definer_token(&self) -> Option<SyntaxToken> {
13177        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13178    }
13179    #[inline]
13180    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13181        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13182    }
13183    #[inline]
13184    pub fn security_token(&self) -> Option<SyntaxToken> {
13185        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13186    }
13187}
13188
13189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13190pub struct SecurityLabel {
13191    pub(crate) syntax: SyntaxNode,
13192}
13193impl SecurityLabel {
13194    #[inline]
13195    pub fn aggregate(&self) -> Option<Aggregate> {
13196        support::child(&self.syntax)
13197    }
13198    #[inline]
13199    pub fn for_provider(&self) -> Option<ForProvider> {
13200        support::child(&self.syntax)
13201    }
13202    #[inline]
13203    pub fn function_sig(&self) -> Option<FunctionSig> {
13204        support::child(&self.syntax)
13205    }
13206    #[inline]
13207    pub fn literal(&self) -> Option<Literal> {
13208        support::child(&self.syntax)
13209    }
13210    #[inline]
13211    pub fn path(&self) -> Option<Path> {
13212        support::child(&self.syntax)
13213    }
13214    #[inline]
13215    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13216        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13217    }
13218    #[inline]
13219    pub fn column_token(&self) -> Option<SyntaxToken> {
13220        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13221    }
13222    #[inline]
13223    pub fn database_token(&self) -> Option<SyntaxToken> {
13224        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13225    }
13226    #[inline]
13227    pub fn domain_token(&self) -> Option<SyntaxToken> {
13228        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13229    }
13230    #[inline]
13231    pub fn event_token(&self) -> Option<SyntaxToken> {
13232        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13233    }
13234    #[inline]
13235    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13236        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13237    }
13238    #[inline]
13239    pub fn function_token(&self) -> Option<SyntaxToken> {
13240        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13241    }
13242    #[inline]
13243    pub fn is_token(&self) -> Option<SyntaxToken> {
13244        support::token(&self.syntax, SyntaxKind::IS_KW)
13245    }
13246    #[inline]
13247    pub fn label_token(&self) -> Option<SyntaxToken> {
13248        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13249    }
13250    #[inline]
13251    pub fn language_token(&self) -> Option<SyntaxToken> {
13252        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13253    }
13254    #[inline]
13255    pub fn large_token(&self) -> Option<SyntaxToken> {
13256        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13257    }
13258    #[inline]
13259    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13260        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13261    }
13262    #[inline]
13263    pub fn null_token(&self) -> Option<SyntaxToken> {
13264        support::token(&self.syntax, SyntaxKind::NULL_KW)
13265    }
13266    #[inline]
13267    pub fn object_token(&self) -> Option<SyntaxToken> {
13268        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13269    }
13270    #[inline]
13271    pub fn on_token(&self) -> Option<SyntaxToken> {
13272        support::token(&self.syntax, SyntaxKind::ON_KW)
13273    }
13274    #[inline]
13275    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13276        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13277    }
13278    #[inline]
13279    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13280        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13281    }
13282    #[inline]
13283    pub fn publication_token(&self) -> Option<SyntaxToken> {
13284        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13285    }
13286    #[inline]
13287    pub fn role_token(&self) -> Option<SyntaxToken> {
13288        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13289    }
13290    #[inline]
13291    pub fn routine_token(&self) -> Option<SyntaxToken> {
13292        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13293    }
13294    #[inline]
13295    pub fn schema_token(&self) -> Option<SyntaxToken> {
13296        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13297    }
13298    #[inline]
13299    pub fn security_token(&self) -> Option<SyntaxToken> {
13300        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13301    }
13302    #[inline]
13303    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13304        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13305    }
13306    #[inline]
13307    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13308        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13309    }
13310    #[inline]
13311    pub fn table_token(&self) -> Option<SyntaxToken> {
13312        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13313    }
13314    #[inline]
13315    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13316        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13317    }
13318    #[inline]
13319    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13320        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13321    }
13322    #[inline]
13323    pub fn type_token(&self) -> Option<SyntaxToken> {
13324        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13325    }
13326    #[inline]
13327    pub fn view_token(&self) -> Option<SyntaxToken> {
13328        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13329    }
13330}
13331
13332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13333pub struct Select {
13334    pub(crate) syntax: SyntaxNode,
13335}
13336impl Select {
13337    #[inline]
13338    pub fn fetch_clause(&self) -> Option<FetchClause> {
13339        support::child(&self.syntax)
13340    }
13341    #[inline]
13342    pub fn filter_clause(&self) -> Option<FilterClause> {
13343        support::child(&self.syntax)
13344    }
13345    #[inline]
13346    pub fn from_clause(&self) -> Option<FromClause> {
13347        support::child(&self.syntax)
13348    }
13349    #[inline]
13350    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13351        support::child(&self.syntax)
13352    }
13353    #[inline]
13354    pub fn having_clause(&self) -> Option<HavingClause> {
13355        support::child(&self.syntax)
13356    }
13357    #[inline]
13358    pub fn limit_clause(&self) -> Option<LimitClause> {
13359        support::child(&self.syntax)
13360    }
13361    #[inline]
13362    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13363        support::children(&self.syntax)
13364    }
13365    #[inline]
13366    pub fn offset_clause(&self) -> Option<OffsetClause> {
13367        support::child(&self.syntax)
13368    }
13369    #[inline]
13370    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13371        support::child(&self.syntax)
13372    }
13373    #[inline]
13374    pub fn select_clause(&self) -> Option<SelectClause> {
13375        support::child(&self.syntax)
13376    }
13377    #[inline]
13378    pub fn where_clause(&self) -> Option<WhereClause> {
13379        support::child(&self.syntax)
13380    }
13381    #[inline]
13382    pub fn window_clause(&self) -> Option<WindowClause> {
13383        support::child(&self.syntax)
13384    }
13385    #[inline]
13386    pub fn with_clause(&self) -> Option<WithClause> {
13387        support::child(&self.syntax)
13388    }
13389}
13390
13391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13392pub struct SelectClause {
13393    pub(crate) syntax: SyntaxNode,
13394}
13395impl SelectClause {
13396    #[inline]
13397    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13398        support::child(&self.syntax)
13399    }
13400    #[inline]
13401    pub fn target_list(&self) -> Option<TargetList> {
13402        support::child(&self.syntax)
13403    }
13404    #[inline]
13405    pub fn all_token(&self) -> Option<SyntaxToken> {
13406        support::token(&self.syntax, SyntaxKind::ALL_KW)
13407    }
13408    #[inline]
13409    pub fn select_token(&self) -> Option<SyntaxToken> {
13410        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13411    }
13412}
13413
13414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13415pub struct SelectInto {
13416    pub(crate) syntax: SyntaxNode,
13417}
13418impl SelectInto {
13419    #[inline]
13420    pub fn filter_clause(&self) -> Option<FilterClause> {
13421        support::child(&self.syntax)
13422    }
13423    #[inline]
13424    pub fn from_clause(&self) -> Option<FromClause> {
13425        support::child(&self.syntax)
13426    }
13427    #[inline]
13428    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13429        support::child(&self.syntax)
13430    }
13431    #[inline]
13432    pub fn having_clause(&self) -> Option<HavingClause> {
13433        support::child(&self.syntax)
13434    }
13435    #[inline]
13436    pub fn into_clause(&self) -> Option<IntoClause> {
13437        support::child(&self.syntax)
13438    }
13439    #[inline]
13440    pub fn limit_clause(&self) -> Option<LimitClause> {
13441        support::child(&self.syntax)
13442    }
13443    #[inline]
13444    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13445        support::children(&self.syntax)
13446    }
13447    #[inline]
13448    pub fn offset_clause(&self) -> Option<OffsetClause> {
13449        support::child(&self.syntax)
13450    }
13451    #[inline]
13452    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13453        support::child(&self.syntax)
13454    }
13455    #[inline]
13456    pub fn select_clause(&self) -> Option<SelectClause> {
13457        support::child(&self.syntax)
13458    }
13459    #[inline]
13460    pub fn where_clause(&self) -> Option<WhereClause> {
13461        support::child(&self.syntax)
13462    }
13463    #[inline]
13464    pub fn window_clause(&self) -> Option<WindowClause> {
13465        support::child(&self.syntax)
13466    }
13467    #[inline]
13468    pub fn with_clause(&self) -> Option<WithClause> {
13469        support::child(&self.syntax)
13470    }
13471}
13472
13473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13474pub struct SequenceOption {
13475    pub(crate) syntax: SyntaxNode,
13476}
13477impl SequenceOption {
13478    #[inline]
13479    pub fn literal(&self) -> Option<Literal> {
13480        support::child(&self.syntax)
13481    }
13482    #[inline]
13483    pub fn name_ref(&self) -> Option<NameRef> {
13484        support::child(&self.syntax)
13485    }
13486    #[inline]
13487    pub fn path(&self) -> Option<Path> {
13488        support::child(&self.syntax)
13489    }
13490    #[inline]
13491    pub fn ty(&self) -> Option<Type> {
13492        support::child(&self.syntax)
13493    }
13494    #[inline]
13495    pub fn as_token(&self) -> Option<SyntaxToken> {
13496        support::token(&self.syntax, SyntaxKind::AS_KW)
13497    }
13498    #[inline]
13499    pub fn by_token(&self) -> Option<SyntaxToken> {
13500        support::token(&self.syntax, SyntaxKind::BY_KW)
13501    }
13502    #[inline]
13503    pub fn cycle_token(&self) -> Option<SyntaxToken> {
13504        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
13505    }
13506    #[inline]
13507    pub fn increment_token(&self) -> Option<SyntaxToken> {
13508        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
13509    }
13510    #[inline]
13511    pub fn logged_token(&self) -> Option<SyntaxToken> {
13512        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13513    }
13514    #[inline]
13515    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
13516        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
13517    }
13518    #[inline]
13519    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
13520        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
13521    }
13522    #[inline]
13523    pub fn name_token(&self) -> Option<SyntaxToken> {
13524        support::token(&self.syntax, SyntaxKind::NAME_KW)
13525    }
13526    #[inline]
13527    pub fn no_token(&self) -> Option<SyntaxToken> {
13528        support::token(&self.syntax, SyntaxKind::NO_KW)
13529    }
13530    #[inline]
13531    pub fn none_token(&self) -> Option<SyntaxToken> {
13532        support::token(&self.syntax, SyntaxKind::NONE_KW)
13533    }
13534    #[inline]
13535    pub fn owned_token(&self) -> Option<SyntaxToken> {
13536        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13537    }
13538    #[inline]
13539    pub fn restart_token(&self) -> Option<SyntaxToken> {
13540        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13541    }
13542    #[inline]
13543    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13544        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13545    }
13546    #[inline]
13547    pub fn start_token(&self) -> Option<SyntaxToken> {
13548        support::token(&self.syntax, SyntaxKind::START_KW)
13549    }
13550    #[inline]
13551    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
13552        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
13553    }
13554    #[inline]
13555    pub fn with_token(&self) -> Option<SyntaxToken> {
13556        support::token(&self.syntax, SyntaxKind::WITH_KW)
13557    }
13558}
13559
13560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13561pub struct SequenceOptionList {
13562    pub(crate) syntax: SyntaxNode,
13563}
13564impl SequenceOptionList {
13565    #[inline]
13566    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
13567        support::children(&self.syntax)
13568    }
13569    #[inline]
13570    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13571        support::token(&self.syntax, SyntaxKind::L_PAREN)
13572    }
13573    #[inline]
13574    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13575        support::token(&self.syntax, SyntaxKind::R_PAREN)
13576    }
13577}
13578
13579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13580pub struct Serializable {
13581    pub(crate) syntax: SyntaxNode,
13582}
13583impl Serializable {
13584    #[inline]
13585    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13586        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13587    }
13588    #[inline]
13589    pub fn level_token(&self) -> Option<SyntaxToken> {
13590        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13591    }
13592    #[inline]
13593    pub fn serializable_token(&self) -> Option<SyntaxToken> {
13594        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
13595    }
13596}
13597
13598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13599pub struct Set {
13600    pub(crate) syntax: SyntaxNode,
13601}
13602impl Set {
13603    #[inline]
13604    pub fn expr(&self) -> Option<Expr> {
13605        support::child(&self.syntax)
13606    }
13607    #[inline]
13608    pub fn path(&self) -> Option<Path> {
13609        support::child(&self.syntax)
13610    }
13611    #[inline]
13612    pub fn eq_token(&self) -> Option<SyntaxToken> {
13613        support::token(&self.syntax, SyntaxKind::EQ)
13614    }
13615    #[inline]
13616    pub fn default_token(&self) -> Option<SyntaxToken> {
13617        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13618    }
13619    #[inline]
13620    pub fn local_token(&self) -> Option<SyntaxToken> {
13621        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13622    }
13623    #[inline]
13624    pub fn session_token(&self) -> Option<SyntaxToken> {
13625        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13626    }
13627    #[inline]
13628    pub fn set_token(&self) -> Option<SyntaxToken> {
13629        support::token(&self.syntax, SyntaxKind::SET_KW)
13630    }
13631    #[inline]
13632    pub fn time_token(&self) -> Option<SyntaxToken> {
13633        support::token(&self.syntax, SyntaxKind::TIME_KW)
13634    }
13635    #[inline]
13636    pub fn to_token(&self) -> Option<SyntaxToken> {
13637        support::token(&self.syntax, SyntaxKind::TO_KW)
13638    }
13639    #[inline]
13640    pub fn zone_token(&self) -> Option<SyntaxToken> {
13641        support::token(&self.syntax, SyntaxKind::ZONE_KW)
13642    }
13643}
13644
13645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13646pub struct SetAccessMethod {
13647    pub(crate) syntax: SyntaxNode,
13648}
13649impl SetAccessMethod {
13650    #[inline]
13651    pub fn name_ref(&self) -> Option<NameRef> {
13652        support::child(&self.syntax)
13653    }
13654    #[inline]
13655    pub fn access_token(&self) -> Option<SyntaxToken> {
13656        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
13657    }
13658    #[inline]
13659    pub fn method_token(&self) -> Option<SyntaxToken> {
13660        support::token(&self.syntax, SyntaxKind::METHOD_KW)
13661    }
13662    #[inline]
13663    pub fn set_token(&self) -> Option<SyntaxToken> {
13664        support::token(&self.syntax, SyntaxKind::SET_KW)
13665    }
13666}
13667
13668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13669pub struct SetClause {
13670    pub(crate) syntax: SyntaxNode,
13671}
13672impl SetClause {
13673    #[inline]
13674    pub fn set_column_list(&self) -> Option<SetColumnList> {
13675        support::child(&self.syntax)
13676    }
13677    #[inline]
13678    pub fn set_token(&self) -> Option<SyntaxToken> {
13679        support::token(&self.syntax, SyntaxKind::SET_KW)
13680    }
13681}
13682
13683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13684pub struct SetColumnList {
13685    pub(crate) syntax: SyntaxNode,
13686}
13687impl SetColumnList {
13688    #[inline]
13689    pub fn set_columns(&self) -> AstChildren<SetColumn> {
13690        support::children(&self.syntax)
13691    }
13692}
13693
13694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13695pub struct SetCompression {
13696    pub(crate) syntax: SyntaxNode,
13697}
13698impl SetCompression {
13699    #[inline]
13700    pub fn compression_token(&self) -> Option<SyntaxToken> {
13701        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
13702    }
13703    #[inline]
13704    pub fn set_token(&self) -> Option<SyntaxToken> {
13705        support::token(&self.syntax, SyntaxKind::SET_KW)
13706    }
13707}
13708
13709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13710pub struct SetConfigParam {
13711    pub(crate) syntax: SyntaxNode,
13712}
13713impl SetConfigParam {
13714    #[inline]
13715    pub fn path(&self) -> Option<Path> {
13716        support::child(&self.syntax)
13717    }
13718    #[inline]
13719    pub fn set_token(&self) -> Option<SyntaxToken> {
13720        support::token(&self.syntax, SyntaxKind::SET_KW)
13721    }
13722}
13723
13724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13725pub struct SetConstraints {
13726    pub(crate) syntax: SyntaxNode,
13727}
13728impl SetConstraints {
13729    #[inline]
13730    pub fn paths(&self) -> AstChildren<Path> {
13731        support::children(&self.syntax)
13732    }
13733    #[inline]
13734    pub fn all_token(&self) -> Option<SyntaxToken> {
13735        support::token(&self.syntax, SyntaxKind::ALL_KW)
13736    }
13737    #[inline]
13738    pub fn constraints_token(&self) -> Option<SyntaxToken> {
13739        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
13740    }
13741    #[inline]
13742    pub fn deferred_token(&self) -> Option<SyntaxToken> {
13743        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
13744    }
13745    #[inline]
13746    pub fn immediate_token(&self) -> Option<SyntaxToken> {
13747        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
13748    }
13749    #[inline]
13750    pub fn set_token(&self) -> Option<SyntaxToken> {
13751        support::token(&self.syntax, SyntaxKind::SET_KW)
13752    }
13753}
13754
13755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13756pub struct SetDefault {
13757    pub(crate) syntax: SyntaxNode,
13758}
13759impl SetDefault {
13760    #[inline]
13761    pub fn expr(&self) -> Option<Expr> {
13762        support::child(&self.syntax)
13763    }
13764    #[inline]
13765    pub fn default_token(&self) -> Option<SyntaxToken> {
13766        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13767    }
13768    #[inline]
13769    pub fn set_token(&self) -> Option<SyntaxToken> {
13770        support::token(&self.syntax, SyntaxKind::SET_KW)
13771    }
13772}
13773
13774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13775pub struct SetDefaultColumns {
13776    pub(crate) syntax: SyntaxNode,
13777}
13778impl SetDefaultColumns {
13779    #[inline]
13780    pub fn column_list(&self) -> Option<ColumnList> {
13781        support::child(&self.syntax)
13782    }
13783    #[inline]
13784    pub fn default_token(&self) -> Option<SyntaxToken> {
13785        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13786    }
13787    #[inline]
13788    pub fn set_token(&self) -> Option<SyntaxToken> {
13789        support::token(&self.syntax, SyntaxKind::SET_KW)
13790    }
13791}
13792
13793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13794pub struct SetExpr {
13795    pub(crate) syntax: SyntaxNode,
13796}
13797impl SetExpr {
13798    #[inline]
13799    pub fn expr(&self) -> Option<Expr> {
13800        support::child(&self.syntax)
13801    }
13802    #[inline]
13803    pub fn default_token(&self) -> Option<SyntaxToken> {
13804        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13805    }
13806}
13807
13808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13809pub struct SetExprList {
13810    pub(crate) syntax: SyntaxNode,
13811}
13812impl SetExprList {
13813    #[inline]
13814    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
13815        support::children(&self.syntax)
13816    }
13817    #[inline]
13818    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::L_PAREN)
13820    }
13821    #[inline]
13822    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::R_PAREN)
13824    }
13825    #[inline]
13826    pub fn row_token(&self) -> Option<SyntaxToken> {
13827        support::token(&self.syntax, SyntaxKind::ROW_KW)
13828    }
13829}
13830
13831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13832pub struct SetExpression {
13833    pub(crate) syntax: SyntaxNode,
13834}
13835impl SetExpression {
13836    #[inline]
13837    pub fn expr(&self) -> Option<Expr> {
13838        support::child(&self.syntax)
13839    }
13840    #[inline]
13841    pub fn expression_token(&self) -> Option<SyntaxToken> {
13842        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
13843    }
13844    #[inline]
13845    pub fn set_token(&self) -> Option<SyntaxToken> {
13846        support::token(&self.syntax, SyntaxKind::SET_KW)
13847    }
13848}
13849
13850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13851pub struct SetFuncOption {
13852    pub(crate) syntax: SyntaxNode,
13853}
13854impl SetFuncOption {
13855    #[inline]
13856    pub fn set_token(&self) -> Option<SyntaxToken> {
13857        support::token(&self.syntax, SyntaxKind::SET_KW)
13858    }
13859}
13860
13861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13862pub struct SetGenerated {
13863    pub(crate) syntax: SyntaxNode,
13864}
13865impl SetGenerated {
13866    #[inline]
13867    pub fn set_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::SET_KW)
13869    }
13870}
13871
13872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13873pub struct SetGeneratedOptions {
13874    pub(crate) syntax: SyntaxNode,
13875}
13876impl SetGeneratedOptions {
13877    #[inline]
13878    pub fn generated_token(&self) -> Option<SyntaxToken> {
13879        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
13880    }
13881    #[inline]
13882    pub fn set_token(&self) -> Option<SyntaxToken> {
13883        support::token(&self.syntax, SyntaxKind::SET_KW)
13884    }
13885}
13886
13887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13888pub struct SetLogged {
13889    pub(crate) syntax: SyntaxNode,
13890}
13891impl SetLogged {
13892    #[inline]
13893    pub fn logged_token(&self) -> Option<SyntaxToken> {
13894        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13895    }
13896    #[inline]
13897    pub fn set_token(&self) -> Option<SyntaxToken> {
13898        support::token(&self.syntax, SyntaxKind::SET_KW)
13899    }
13900}
13901
13902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13903pub struct SetMultipleColumns {
13904    pub(crate) syntax: SyntaxNode,
13905}
13906impl SetMultipleColumns {
13907    #[inline]
13908    pub fn column_list(&self) -> Option<ColumnList> {
13909        support::child(&self.syntax)
13910    }
13911    #[inline]
13912    pub fn paren_select(&self) -> Option<ParenSelect> {
13913        support::child(&self.syntax)
13914    }
13915    #[inline]
13916    pub fn set_expr_list(&self) -> Option<SetExprList> {
13917        support::child(&self.syntax)
13918    }
13919    #[inline]
13920    pub fn eq_token(&self) -> Option<SyntaxToken> {
13921        support::token(&self.syntax, SyntaxKind::EQ)
13922    }
13923}
13924
13925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13926pub struct SetNotNull {
13927    pub(crate) syntax: SyntaxNode,
13928}
13929impl SetNotNull {
13930    #[inline]
13931    pub fn not_token(&self) -> Option<SyntaxToken> {
13932        support::token(&self.syntax, SyntaxKind::NOT_KW)
13933    }
13934    #[inline]
13935    pub fn null_token(&self) -> Option<SyntaxToken> {
13936        support::token(&self.syntax, SyntaxKind::NULL_KW)
13937    }
13938    #[inline]
13939    pub fn set_token(&self) -> Option<SyntaxToken> {
13940        support::token(&self.syntax, SyntaxKind::SET_KW)
13941    }
13942}
13943
13944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13945pub struct SetNullColumns {
13946    pub(crate) syntax: SyntaxNode,
13947}
13948impl SetNullColumns {
13949    #[inline]
13950    pub fn column_list(&self) -> Option<ColumnList> {
13951        support::child(&self.syntax)
13952    }
13953    #[inline]
13954    pub fn null_token(&self) -> Option<SyntaxToken> {
13955        support::token(&self.syntax, SyntaxKind::NULL_KW)
13956    }
13957    #[inline]
13958    pub fn set_token(&self) -> Option<SyntaxToken> {
13959        support::token(&self.syntax, SyntaxKind::SET_KW)
13960    }
13961}
13962
13963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13964pub struct SetOptions {
13965    pub(crate) syntax: SyntaxNode,
13966}
13967impl SetOptions {
13968    #[inline]
13969    pub fn attribute_list(&self) -> Option<AttributeList> {
13970        support::child(&self.syntax)
13971    }
13972    #[inline]
13973    pub fn set_token(&self) -> Option<SyntaxToken> {
13974        support::token(&self.syntax, SyntaxKind::SET_KW)
13975    }
13976}
13977
13978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13979pub struct SetOptionsList {
13980    pub(crate) syntax: SyntaxNode,
13981}
13982impl SetOptionsList {
13983    #[inline]
13984    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
13985        support::child(&self.syntax)
13986    }
13987    #[inline]
13988    pub fn options_token(&self) -> Option<SyntaxToken> {
13989        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
13990    }
13991    #[inline]
13992    pub fn set_token(&self) -> Option<SyntaxToken> {
13993        support::token(&self.syntax, SyntaxKind::SET_KW)
13994    }
13995}
13996
13997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13998pub struct SetRole {
13999    pub(crate) syntax: SyntaxNode,
14000}
14001impl SetRole {
14002    #[inline]
14003    pub fn role(&self) -> Option<Role> {
14004        support::child(&self.syntax)
14005    }
14006    #[inline]
14007    pub fn local_token(&self) -> Option<SyntaxToken> {
14008        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14009    }
14010    #[inline]
14011    pub fn none_token(&self) -> Option<SyntaxToken> {
14012        support::token(&self.syntax, SyntaxKind::NONE_KW)
14013    }
14014    #[inline]
14015    pub fn reset_token(&self) -> Option<SyntaxToken> {
14016        support::token(&self.syntax, SyntaxKind::RESET_KW)
14017    }
14018    #[inline]
14019    pub fn role_token(&self) -> Option<SyntaxToken> {
14020        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14021    }
14022    #[inline]
14023    pub fn session_token(&self) -> Option<SyntaxToken> {
14024        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14025    }
14026    #[inline]
14027    pub fn set_token(&self) -> Option<SyntaxToken> {
14028        support::token(&self.syntax, SyntaxKind::SET_KW)
14029    }
14030}
14031
14032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14033pub struct SetSchema {
14034    pub(crate) syntax: SyntaxNode,
14035}
14036impl SetSchema {
14037    #[inline]
14038    pub fn name_ref(&self) -> Option<NameRef> {
14039        support::child(&self.syntax)
14040    }
14041    #[inline]
14042    pub fn schema_token(&self) -> Option<SyntaxToken> {
14043        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14044    }
14045    #[inline]
14046    pub fn set_token(&self) -> Option<SyntaxToken> {
14047        support::token(&self.syntax, SyntaxKind::SET_KW)
14048    }
14049}
14050
14051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14052pub struct SetSequenceOption {
14053    pub(crate) syntax: SyntaxNode,
14054}
14055impl SetSequenceOption {
14056    #[inline]
14057    pub fn set_token(&self) -> Option<SyntaxToken> {
14058        support::token(&self.syntax, SyntaxKind::SET_KW)
14059    }
14060}
14061
14062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14063pub struct SetSessionAuth {
14064    pub(crate) syntax: SyntaxNode,
14065}
14066impl SetSessionAuth {
14067    #[inline]
14068    pub fn literal(&self) -> Option<Literal> {
14069        support::child(&self.syntax)
14070    }
14071    #[inline]
14072    pub fn role(&self) -> Option<Role> {
14073        support::child(&self.syntax)
14074    }
14075    #[inline]
14076    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14077        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14078    }
14079    #[inline]
14080    pub fn default_token(&self) -> Option<SyntaxToken> {
14081        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14082    }
14083    #[inline]
14084    pub fn local_token(&self) -> Option<SyntaxToken> {
14085        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14086    }
14087    #[inline]
14088    pub fn session_token(&self) -> Option<SyntaxToken> {
14089        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14090    }
14091    #[inline]
14092    pub fn set_token(&self) -> Option<SyntaxToken> {
14093        support::token(&self.syntax, SyntaxKind::SET_KW)
14094    }
14095}
14096
14097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14098pub struct SetSingleColumn {
14099    pub(crate) syntax: SyntaxNode,
14100}
14101impl SetSingleColumn {
14102    #[inline]
14103    pub fn column(&self) -> Option<Column> {
14104        support::child(&self.syntax)
14105    }
14106    #[inline]
14107    pub fn set_expr(&self) -> Option<SetExpr> {
14108        support::child(&self.syntax)
14109    }
14110    #[inline]
14111    pub fn eq_token(&self) -> Option<SyntaxToken> {
14112        support::token(&self.syntax, SyntaxKind::EQ)
14113    }
14114}
14115
14116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14117pub struct SetStatistics {
14118    pub(crate) syntax: SyntaxNode,
14119}
14120impl SetStatistics {
14121    #[inline]
14122    pub fn set_token(&self) -> Option<SyntaxToken> {
14123        support::token(&self.syntax, SyntaxKind::SET_KW)
14124    }
14125    #[inline]
14126    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14127        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14128    }
14129}
14130
14131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14132pub struct SetStorage {
14133    pub(crate) syntax: SyntaxNode,
14134}
14135impl SetStorage {
14136    #[inline]
14137    pub fn set_token(&self) -> Option<SyntaxToken> {
14138        support::token(&self.syntax, SyntaxKind::SET_KW)
14139    }
14140    #[inline]
14141    pub fn storage_token(&self) -> Option<SyntaxToken> {
14142        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14143    }
14144}
14145
14146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14147pub struct SetTablespace {
14148    pub(crate) syntax: SyntaxNode,
14149}
14150impl SetTablespace {
14151    #[inline]
14152    pub fn path(&self) -> Option<Path> {
14153        support::child(&self.syntax)
14154    }
14155    #[inline]
14156    pub fn set_token(&self) -> Option<SyntaxToken> {
14157        support::token(&self.syntax, SyntaxKind::SET_KW)
14158    }
14159    #[inline]
14160    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14161        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14162    }
14163}
14164
14165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14166pub struct SetTransaction {
14167    pub(crate) syntax: SyntaxNode,
14168}
14169impl SetTransaction {
14170    #[inline]
14171    pub fn literal(&self) -> Option<Literal> {
14172        support::child(&self.syntax)
14173    }
14174    #[inline]
14175    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14176        support::child(&self.syntax)
14177    }
14178    #[inline]
14179    pub fn as_token(&self) -> Option<SyntaxToken> {
14180        support::token(&self.syntax, SyntaxKind::AS_KW)
14181    }
14182    #[inline]
14183    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14184        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14185    }
14186    #[inline]
14187    pub fn session_token(&self) -> Option<SyntaxToken> {
14188        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14189    }
14190    #[inline]
14191    pub fn set_token(&self) -> Option<SyntaxToken> {
14192        support::token(&self.syntax, SyntaxKind::SET_KW)
14193    }
14194    #[inline]
14195    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14196        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14197    }
14198    #[inline]
14199    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14200        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14201    }
14202}
14203
14204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14205pub struct SetType {
14206    pub(crate) syntax: SyntaxNode,
14207}
14208impl SetType {
14209    #[inline]
14210    pub fn collate(&self) -> Option<Collate> {
14211        support::child(&self.syntax)
14212    }
14213    #[inline]
14214    pub fn ty(&self) -> Option<Type> {
14215        support::child(&self.syntax)
14216    }
14217    #[inline]
14218    pub fn set_token(&self) -> Option<SyntaxToken> {
14219        support::token(&self.syntax, SyntaxKind::SET_KW)
14220    }
14221    #[inline]
14222    pub fn type_token(&self) -> Option<SyntaxToken> {
14223        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14224    }
14225}
14226
14227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14228pub struct SetUnlogged {
14229    pub(crate) syntax: SyntaxNode,
14230}
14231impl SetUnlogged {
14232    #[inline]
14233    pub fn set_token(&self) -> Option<SyntaxToken> {
14234        support::token(&self.syntax, SyntaxKind::SET_KW)
14235    }
14236    #[inline]
14237    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14238        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14239    }
14240}
14241
14242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14243pub struct SetWithoutCluster {
14244    pub(crate) syntax: SyntaxNode,
14245}
14246impl SetWithoutCluster {
14247    #[inline]
14248    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14249        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14250    }
14251    #[inline]
14252    pub fn set_token(&self) -> Option<SyntaxToken> {
14253        support::token(&self.syntax, SyntaxKind::SET_KW)
14254    }
14255    #[inline]
14256    pub fn without_token(&self) -> Option<SyntaxToken> {
14257        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14258    }
14259}
14260
14261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14262pub struct SetWithoutOids {
14263    pub(crate) syntax: SyntaxNode,
14264}
14265impl SetWithoutOids {
14266    #[inline]
14267    pub fn oids_token(&self) -> Option<SyntaxToken> {
14268        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14269    }
14270    #[inline]
14271    pub fn set_token(&self) -> Option<SyntaxToken> {
14272        support::token(&self.syntax, SyntaxKind::SET_KW)
14273    }
14274    #[inline]
14275    pub fn without_token(&self) -> Option<SyntaxToken> {
14276        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14277    }
14278}
14279
14280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14281pub struct Show {
14282    pub(crate) syntax: SyntaxNode,
14283}
14284impl Show {
14285    #[inline]
14286    pub fn show_token(&self) -> Option<SyntaxToken> {
14287        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14288    }
14289}
14290
14291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14292pub struct SimilarTo {
14293    pub(crate) syntax: SyntaxNode,
14294}
14295impl SimilarTo {
14296    #[inline]
14297    pub fn similar_token(&self) -> Option<SyntaxToken> {
14298        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14299    }
14300    #[inline]
14301    pub fn to_token(&self) -> Option<SyntaxToken> {
14302        support::token(&self.syntax, SyntaxKind::TO_KW)
14303    }
14304}
14305
14306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14307pub struct SliceExpr {
14308    pub(crate) syntax: SyntaxNode,
14309}
14310impl SliceExpr {
14311    #[inline]
14312    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14313        support::token(&self.syntax, SyntaxKind::L_BRACK)
14314    }
14315    #[inline]
14316    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14317        support::token(&self.syntax, SyntaxKind::R_BRACK)
14318    }
14319    #[inline]
14320    pub fn colon_token(&self) -> Option<SyntaxToken> {
14321        support::token(&self.syntax, SyntaxKind::COLON)
14322    }
14323}
14324
14325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14326pub struct SomeFn {
14327    pub(crate) syntax: SyntaxNode,
14328}
14329impl SomeFn {
14330    #[inline]
14331    pub fn expr(&self) -> Option<Expr> {
14332        support::child(&self.syntax)
14333    }
14334    #[inline]
14335    pub fn select_variant(&self) -> Option<SelectVariant> {
14336        support::child(&self.syntax)
14337    }
14338    #[inline]
14339    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14340        support::token(&self.syntax, SyntaxKind::L_PAREN)
14341    }
14342    #[inline]
14343    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14344        support::token(&self.syntax, SyntaxKind::R_PAREN)
14345    }
14346    #[inline]
14347    pub fn some_token(&self) -> Option<SyntaxToken> {
14348        support::token(&self.syntax, SyntaxKind::SOME_KW)
14349    }
14350}
14351
14352#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14353pub struct SortAsc {
14354    pub(crate) syntax: SyntaxNode,
14355}
14356impl SortAsc {
14357    #[inline]
14358    pub fn asc_token(&self) -> Option<SyntaxToken> {
14359        support::token(&self.syntax, SyntaxKind::ASC_KW)
14360    }
14361}
14362
14363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14364pub struct SortBy {
14365    pub(crate) syntax: SyntaxNode,
14366}
14367impl SortBy {
14368    #[inline]
14369    pub fn expr(&self) -> Option<Expr> {
14370        support::child(&self.syntax)
14371    }
14372    #[inline]
14373    pub fn nulls_first(&self) -> Option<NullsFirst> {
14374        support::child(&self.syntax)
14375    }
14376    #[inline]
14377    pub fn nulls_last(&self) -> Option<NullsLast> {
14378        support::child(&self.syntax)
14379    }
14380    #[inline]
14381    pub fn sort_asc(&self) -> Option<SortAsc> {
14382        support::child(&self.syntax)
14383    }
14384    #[inline]
14385    pub fn sort_desc(&self) -> Option<SortDesc> {
14386        support::child(&self.syntax)
14387    }
14388    #[inline]
14389    pub fn sort_using(&self) -> Option<SortUsing> {
14390        support::child(&self.syntax)
14391    }
14392}
14393
14394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14395pub struct SortByList {
14396    pub(crate) syntax: SyntaxNode,
14397}
14398impl SortByList {
14399    #[inline]
14400    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14401        support::children(&self.syntax)
14402    }
14403}
14404
14405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14406pub struct SortDesc {
14407    pub(crate) syntax: SyntaxNode,
14408}
14409impl SortDesc {
14410    #[inline]
14411    pub fn desc_token(&self) -> Option<SyntaxToken> {
14412        support::token(&self.syntax, SyntaxKind::DESC_KW)
14413    }
14414}
14415
14416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14417pub struct SortUsing {
14418    pub(crate) syntax: SyntaxNode,
14419}
14420impl SortUsing {
14421    #[inline]
14422    pub fn op(&self) -> Option<Op> {
14423        support::child(&self.syntax)
14424    }
14425    #[inline]
14426    pub fn using_token(&self) -> Option<SyntaxToken> {
14427        support::token(&self.syntax, SyntaxKind::USING_KW)
14428    }
14429}
14430
14431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14432pub struct SourceFile {
14433    pub(crate) syntax: SyntaxNode,
14434}
14435impl SourceFile {
14436    #[inline]
14437    pub fn stmts(&self) -> AstChildren<Stmt> {
14438        support::children(&self.syntax)
14439    }
14440}
14441
14442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14443pub struct Storage {
14444    pub(crate) syntax: SyntaxNode,
14445}
14446impl Storage {
14447    #[inline]
14448    pub fn default_token(&self) -> Option<SyntaxToken> {
14449        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14450    }
14451    #[inline]
14452    pub fn external_token(&self) -> Option<SyntaxToken> {
14453        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14454    }
14455    #[inline]
14456    pub fn ident_token(&self) -> Option<SyntaxToken> {
14457        support::token(&self.syntax, SyntaxKind::IDENT)
14458    }
14459    #[inline]
14460    pub fn storage_token(&self) -> Option<SyntaxToken> {
14461        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14462    }
14463}
14464
14465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14466pub struct StrictFuncOption {
14467    pub(crate) syntax: SyntaxNode,
14468}
14469impl StrictFuncOption {
14470    #[inline]
14471    pub fn called_token(&self) -> Option<SyntaxToken> {
14472        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14473    }
14474    #[inline]
14475    pub fn input_token(&self) -> Option<SyntaxToken> {
14476        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14477    }
14478    #[inline]
14479    pub fn null_token(&self) -> Option<SyntaxToken> {
14480        support::token(&self.syntax, SyntaxKind::NULL_KW)
14481    }
14482    #[inline]
14483    pub fn on_token(&self) -> Option<SyntaxToken> {
14484        support::token(&self.syntax, SyntaxKind::ON_KW)
14485    }
14486    #[inline]
14487    pub fn returns_token(&self) -> Option<SyntaxToken> {
14488        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14489    }
14490    #[inline]
14491    pub fn strict_token(&self) -> Option<SyntaxToken> {
14492        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14493    }
14494}
14495
14496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14497pub struct SubstringFn {
14498    pub(crate) syntax: SyntaxNode,
14499}
14500impl SubstringFn {
14501    #[inline]
14502    pub fn expr(&self) -> Option<Expr> {
14503        support::child(&self.syntax)
14504    }
14505    #[inline]
14506    pub fn exprs(&self) -> AstChildren<Expr> {
14507        support::children(&self.syntax)
14508    }
14509    #[inline]
14510    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14511        support::token(&self.syntax, SyntaxKind::L_PAREN)
14512    }
14513    #[inline]
14514    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14515        support::token(&self.syntax, SyntaxKind::R_PAREN)
14516    }
14517    #[inline]
14518    pub fn for_token(&self) -> Option<SyntaxToken> {
14519        support::token(&self.syntax, SyntaxKind::FOR_KW)
14520    }
14521    #[inline]
14522    pub fn from_token(&self) -> Option<SyntaxToken> {
14523        support::token(&self.syntax, SyntaxKind::FROM_KW)
14524    }
14525    #[inline]
14526    pub fn similar_token(&self) -> Option<SyntaxToken> {
14527        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14528    }
14529    #[inline]
14530    pub fn substring_token(&self) -> Option<SyntaxToken> {
14531        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14532    }
14533}
14534
14535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14536pub struct SupportFuncOption {
14537    pub(crate) syntax: SyntaxNode,
14538}
14539impl SupportFuncOption {
14540    #[inline]
14541    pub fn support_token(&self) -> Option<SyntaxToken> {
14542        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14543    }
14544}
14545
14546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14547pub struct Table {
14548    pub(crate) syntax: SyntaxNode,
14549}
14550impl Table {
14551    #[inline]
14552    pub fn relation_name(&self) -> Option<RelationName> {
14553        support::child(&self.syntax)
14554    }
14555    #[inline]
14556    pub fn table_token(&self) -> Option<SyntaxToken> {
14557        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14558    }
14559}
14560
14561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14562pub struct TableArgList {
14563    pub(crate) syntax: SyntaxNode,
14564}
14565impl TableArgList {
14566    #[inline]
14567    pub fn args(&self) -> AstChildren<TableArg> {
14568        support::children(&self.syntax)
14569    }
14570    #[inline]
14571    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14572        support::token(&self.syntax, SyntaxKind::L_PAREN)
14573    }
14574    #[inline]
14575    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14576        support::token(&self.syntax, SyntaxKind::R_PAREN)
14577    }
14578}
14579
14580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14581pub struct TableList {
14582    pub(crate) syntax: SyntaxNode,
14583}
14584impl TableList {
14585    #[inline]
14586    pub fn relation_names(&self) -> AstChildren<RelationName> {
14587        support::children(&self.syntax)
14588    }
14589}
14590
14591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14592pub struct TablesampleClause {
14593    pub(crate) syntax: SyntaxNode,
14594}
14595impl TablesampleClause {
14596    #[inline]
14597    pub fn call_expr(&self) -> Option<CallExpr> {
14598        support::child(&self.syntax)
14599    }
14600    #[inline]
14601    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
14602        support::child(&self.syntax)
14603    }
14604    #[inline]
14605    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
14606        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
14607    }
14608}
14609
14610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14611pub struct Tablespace {
14612    pub(crate) syntax: SyntaxNode,
14613}
14614impl Tablespace {
14615    #[inline]
14616    pub fn name_ref(&self) -> Option<NameRef> {
14617        support::child(&self.syntax)
14618    }
14619    #[inline]
14620    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14621        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14622    }
14623}
14624
14625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14626pub struct Target {
14627    pub(crate) syntax: SyntaxNode,
14628}
14629impl Target {
14630    #[inline]
14631    pub fn as_name(&self) -> Option<AsName> {
14632        support::child(&self.syntax)
14633    }
14634    #[inline]
14635    pub fn expr(&self) -> Option<Expr> {
14636        support::child(&self.syntax)
14637    }
14638    #[inline]
14639    pub fn star_token(&self) -> Option<SyntaxToken> {
14640        support::token(&self.syntax, SyntaxKind::STAR)
14641    }
14642}
14643
14644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14645pub struct TargetList {
14646    pub(crate) syntax: SyntaxNode,
14647}
14648impl TargetList {
14649    #[inline]
14650    pub fn targets(&self) -> AstChildren<Target> {
14651        support::children(&self.syntax)
14652    }
14653}
14654
14655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14656pub struct TimeType {
14657    pub(crate) syntax: SyntaxNode,
14658}
14659impl TimeType {
14660    #[inline]
14661    pub fn literal(&self) -> Option<Literal> {
14662        support::child(&self.syntax)
14663    }
14664    #[inline]
14665    pub fn timezone(&self) -> Option<Timezone> {
14666        support::child(&self.syntax)
14667    }
14668    #[inline]
14669    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14670        support::token(&self.syntax, SyntaxKind::L_PAREN)
14671    }
14672    #[inline]
14673    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14674        support::token(&self.syntax, SyntaxKind::R_PAREN)
14675    }
14676    #[inline]
14677    pub fn time_token(&self) -> Option<SyntaxToken> {
14678        support::token(&self.syntax, SyntaxKind::TIME_KW)
14679    }
14680    #[inline]
14681    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
14682        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
14683    }
14684}
14685
14686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14687pub struct Timing {
14688    pub(crate) syntax: SyntaxNode,
14689}
14690impl Timing {
14691    #[inline]
14692    pub fn after_token(&self) -> Option<SyntaxToken> {
14693        support::token(&self.syntax, SyntaxKind::AFTER_KW)
14694    }
14695    #[inline]
14696    pub fn before_token(&self) -> Option<SyntaxToken> {
14697        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
14698    }
14699    #[inline]
14700    pub fn instead_token(&self) -> Option<SyntaxToken> {
14701        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
14702    }
14703    #[inline]
14704    pub fn of_token(&self) -> Option<SyntaxToken> {
14705        support::token(&self.syntax, SyntaxKind::OF_KW)
14706    }
14707}
14708
14709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14710pub struct TransactionModeList {
14711    pub(crate) syntax: SyntaxNode,
14712}
14713impl TransactionModeList {
14714    #[inline]
14715    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
14716        support::children(&self.syntax)
14717    }
14718}
14719
14720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14721pub struct TransformFromFunc {
14722    pub(crate) syntax: SyntaxNode,
14723}
14724impl TransformFromFunc {
14725    #[inline]
14726    pub fn function_sig(&self) -> Option<FunctionSig> {
14727        support::child(&self.syntax)
14728    }
14729    #[inline]
14730    pub fn from_token(&self) -> Option<SyntaxToken> {
14731        support::token(&self.syntax, SyntaxKind::FROM_KW)
14732    }
14733    #[inline]
14734    pub fn function_token(&self) -> Option<SyntaxToken> {
14735        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
14736    }
14737    #[inline]
14738    pub fn sql_token(&self) -> Option<SyntaxToken> {
14739        support::token(&self.syntax, SyntaxKind::SQL_KW)
14740    }
14741    #[inline]
14742    pub fn with_token(&self) -> Option<SyntaxToken> {
14743        support::token(&self.syntax, SyntaxKind::WITH_KW)
14744    }
14745}
14746
14747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14748pub struct TransformFuncOption {
14749    pub(crate) syntax: SyntaxNode,
14750}
14751impl TransformFuncOption {
14752    #[inline]
14753    pub fn transform_token(&self) -> Option<SyntaxToken> {
14754        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
14755    }
14756}
14757
14758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14759pub struct TransformToFunc {
14760    pub(crate) syntax: SyntaxNode,
14761}
14762impl TransformToFunc {
14763    #[inline]
14764    pub fn function_sig(&self) -> Option<FunctionSig> {
14765        support::child(&self.syntax)
14766    }
14767    #[inline]
14768    pub fn function_token(&self) -> Option<SyntaxToken> {
14769        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
14770    }
14771    #[inline]
14772    pub fn sql_token(&self) -> Option<SyntaxToken> {
14773        support::token(&self.syntax, SyntaxKind::SQL_KW)
14774    }
14775    #[inline]
14776    pub fn to_token(&self) -> Option<SyntaxToken> {
14777        support::token(&self.syntax, SyntaxKind::TO_KW)
14778    }
14779    #[inline]
14780    pub fn with_token(&self) -> Option<SyntaxToken> {
14781        support::token(&self.syntax, SyntaxKind::WITH_KW)
14782    }
14783}
14784
14785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14786pub struct TriggerEvent {
14787    pub(crate) syntax: SyntaxNode,
14788}
14789impl TriggerEvent {
14790    #[inline]
14791    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
14792        support::child(&self.syntax)
14793    }
14794    #[inline]
14795    pub fn delete_token(&self) -> Option<SyntaxToken> {
14796        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14797    }
14798    #[inline]
14799    pub fn insert_token(&self) -> Option<SyntaxToken> {
14800        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14801    }
14802    #[inline]
14803    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14804        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14805    }
14806}
14807
14808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14809pub struct TriggerEventList {
14810    pub(crate) syntax: SyntaxNode,
14811}
14812impl TriggerEventList {
14813    #[inline]
14814    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
14815        support::children(&self.syntax)
14816    }
14817}
14818
14819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14820pub struct TriggerEventUpdate {
14821    pub(crate) syntax: SyntaxNode,
14822}
14823impl TriggerEventUpdate {
14824    #[inline]
14825    pub fn name_refs(&self) -> AstChildren<NameRef> {
14826        support::children(&self.syntax)
14827    }
14828    #[inline]
14829    pub fn of_token(&self) -> Option<SyntaxToken> {
14830        support::token(&self.syntax, SyntaxKind::OF_KW)
14831    }
14832    #[inline]
14833    pub fn update_token(&self) -> Option<SyntaxToken> {
14834        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14835    }
14836}
14837
14838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14839pub struct TrimFn {
14840    pub(crate) syntax: SyntaxNode,
14841}
14842impl TrimFn {
14843    #[inline]
14844    pub fn expr(&self) -> Option<Expr> {
14845        support::child(&self.syntax)
14846    }
14847    #[inline]
14848    pub fn exprs(&self) -> AstChildren<Expr> {
14849        support::children(&self.syntax)
14850    }
14851    #[inline]
14852    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14853        support::token(&self.syntax, SyntaxKind::L_PAREN)
14854    }
14855    #[inline]
14856    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14857        support::token(&self.syntax, SyntaxKind::R_PAREN)
14858    }
14859    #[inline]
14860    pub fn from_token(&self) -> Option<SyntaxToken> {
14861        support::token(&self.syntax, SyntaxKind::FROM_KW)
14862    }
14863    #[inline]
14864    pub fn trim_token(&self) -> Option<SyntaxToken> {
14865        support::token(&self.syntax, SyntaxKind::TRIM_KW)
14866    }
14867}
14868
14869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14870pub struct Truncate {
14871    pub(crate) syntax: SyntaxNode,
14872}
14873impl Truncate {
14874    #[inline]
14875    pub fn table_list(&self) -> Option<TableList> {
14876        support::child(&self.syntax)
14877    }
14878    #[inline]
14879    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14880        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14881    }
14882    #[inline]
14883    pub fn continue_token(&self) -> Option<SyntaxToken> {
14884        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
14885    }
14886    #[inline]
14887    pub fn identity_token(&self) -> Option<SyntaxToken> {
14888        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14889    }
14890    #[inline]
14891    pub fn restart_token(&self) -> Option<SyntaxToken> {
14892        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14893    }
14894    #[inline]
14895    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14896        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14897    }
14898    #[inline]
14899    pub fn table_token(&self) -> Option<SyntaxToken> {
14900        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14901    }
14902    #[inline]
14903    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14904        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14905    }
14906}
14907
14908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14909pub struct TupleExpr {
14910    pub(crate) syntax: SyntaxNode,
14911}
14912impl TupleExpr {
14913    #[inline]
14914    pub fn exprs(&self) -> AstChildren<Expr> {
14915        support::children(&self.syntax)
14916    }
14917    #[inline]
14918    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14919        support::token(&self.syntax, SyntaxKind::L_PAREN)
14920    }
14921    #[inline]
14922    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14923        support::token(&self.syntax, SyntaxKind::R_PAREN)
14924    }
14925}
14926
14927#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14928pub struct UnicodeNormalForm {
14929    pub(crate) syntax: SyntaxNode,
14930}
14931impl UnicodeNormalForm {
14932    #[inline]
14933    pub fn nfc_token(&self) -> Option<SyntaxToken> {
14934        support::token(&self.syntax, SyntaxKind::NFC_KW)
14935    }
14936    #[inline]
14937    pub fn nfd_token(&self) -> Option<SyntaxToken> {
14938        support::token(&self.syntax, SyntaxKind::NFD_KW)
14939    }
14940    #[inline]
14941    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
14942        support::token(&self.syntax, SyntaxKind::NFKC_KW)
14943    }
14944    #[inline]
14945    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
14946        support::token(&self.syntax, SyntaxKind::NFKD_KW)
14947    }
14948}
14949
14950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14951pub struct UniqueConstraint {
14952    pub(crate) syntax: SyntaxNode,
14953}
14954impl UniqueConstraint {
14955    #[inline]
14956    pub fn column_list(&self) -> Option<ColumnList> {
14957        support::child(&self.syntax)
14958    }
14959    #[inline]
14960    pub fn name(&self) -> Option<Name> {
14961        support::child(&self.syntax)
14962    }
14963    #[inline]
14964    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
14965        support::child(&self.syntax)
14966    }
14967    #[inline]
14968    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
14969        support::child(&self.syntax)
14970    }
14971    #[inline]
14972    pub fn using_index(&self) -> Option<UsingIndex> {
14973        support::child(&self.syntax)
14974    }
14975    #[inline]
14976    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14977        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14978    }
14979    #[inline]
14980    pub fn unique_token(&self) -> Option<SyntaxToken> {
14981        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
14982    }
14983}
14984
14985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14986pub struct Unlisten {
14987    pub(crate) syntax: SyntaxNode,
14988}
14989impl Unlisten {
14990    #[inline]
14991    pub fn name_ref(&self) -> Option<NameRef> {
14992        support::child(&self.syntax)
14993    }
14994    #[inline]
14995    pub fn star_token(&self) -> Option<SyntaxToken> {
14996        support::token(&self.syntax, SyntaxKind::STAR)
14997    }
14998    #[inline]
14999    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15000        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15001    }
15002}
15003
15004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15005pub struct Update {
15006    pub(crate) syntax: SyntaxNode,
15007}
15008impl Update {
15009    #[inline]
15010    pub fn alias(&self) -> Option<Alias> {
15011        support::child(&self.syntax)
15012    }
15013    #[inline]
15014    pub fn from_clause(&self) -> Option<FromClause> {
15015        support::child(&self.syntax)
15016    }
15017    #[inline]
15018    pub fn relation_name(&self) -> Option<RelationName> {
15019        support::child(&self.syntax)
15020    }
15021    #[inline]
15022    pub fn returning_clause(&self) -> Option<ReturningClause> {
15023        support::child(&self.syntax)
15024    }
15025    #[inline]
15026    pub fn set_clause(&self) -> Option<SetClause> {
15027        support::child(&self.syntax)
15028    }
15029    #[inline]
15030    pub fn where_clause(&self) -> Option<WhereClause> {
15031        support::child(&self.syntax)
15032    }
15033    #[inline]
15034    pub fn update_token(&self) -> Option<SyntaxToken> {
15035        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15036    }
15037}
15038
15039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15040pub struct UsingClause {
15041    pub(crate) syntax: SyntaxNode,
15042}
15043impl UsingClause {
15044    #[inline]
15045    pub fn from_items(&self) -> AstChildren<FromItem> {
15046        support::children(&self.syntax)
15047    }
15048    #[inline]
15049    pub fn using_token(&self) -> Option<SyntaxToken> {
15050        support::token(&self.syntax, SyntaxKind::USING_KW)
15051    }
15052}
15053
15054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15055pub struct UsingIndex {
15056    pub(crate) syntax: SyntaxNode,
15057}
15058impl UsingIndex {
15059    #[inline]
15060    pub fn name_ref(&self) -> Option<NameRef> {
15061        support::child(&self.syntax)
15062    }
15063    #[inline]
15064    pub fn index_token(&self) -> Option<SyntaxToken> {
15065        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15066    }
15067    #[inline]
15068    pub fn using_token(&self) -> Option<SyntaxToken> {
15069        support::token(&self.syntax, SyntaxKind::USING_KW)
15070    }
15071}
15072
15073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15074pub struct UsingMethod {
15075    pub(crate) syntax: SyntaxNode,
15076}
15077impl UsingMethod {
15078    #[inline]
15079    pub fn name_ref(&self) -> Option<NameRef> {
15080        support::child(&self.syntax)
15081    }
15082    #[inline]
15083    pub fn using_token(&self) -> Option<SyntaxToken> {
15084        support::token(&self.syntax, SyntaxKind::USING_KW)
15085    }
15086}
15087
15088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15089pub struct UsingOnClause {
15090    pub(crate) syntax: SyntaxNode,
15091}
15092impl UsingOnClause {
15093    #[inline]
15094    pub fn expr(&self) -> Option<Expr> {
15095        support::child(&self.syntax)
15096    }
15097    #[inline]
15098    pub fn from_item(&self) -> Option<FromItem> {
15099        support::child(&self.syntax)
15100    }
15101    #[inline]
15102    pub fn on_token(&self) -> Option<SyntaxToken> {
15103        support::token(&self.syntax, SyntaxKind::ON_KW)
15104    }
15105    #[inline]
15106    pub fn using_token(&self) -> Option<SyntaxToken> {
15107        support::token(&self.syntax, SyntaxKind::USING_KW)
15108    }
15109}
15110
15111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15112pub struct Vacuum {
15113    pub(crate) syntax: SyntaxNode,
15114}
15115impl Vacuum {
15116    #[inline]
15117    pub fn relation_name(&self) -> Option<RelationName> {
15118        support::child(&self.syntax)
15119    }
15120    #[inline]
15121    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15122        support::child(&self.syntax)
15123    }
15124    #[inline]
15125    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15126        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15127    }
15128}
15129
15130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15131pub struct VacuumOption {
15132    pub(crate) syntax: SyntaxNode,
15133}
15134impl VacuumOption {
15135    #[inline]
15136    pub fn full_token(&self) -> Option<SyntaxToken> {
15137        support::token(&self.syntax, SyntaxKind::FULL_KW)
15138    }
15139}
15140
15141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15142pub struct VacuumOptionList {
15143    pub(crate) syntax: SyntaxNode,
15144}
15145impl VacuumOptionList {
15146    #[inline]
15147    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15148        support::children(&self.syntax)
15149    }
15150    #[inline]
15151    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15152        support::token(&self.syntax, SyntaxKind::L_PAREN)
15153    }
15154    #[inline]
15155    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15156        support::token(&self.syntax, SyntaxKind::R_PAREN)
15157    }
15158}
15159
15160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15161pub struct ValidateConstraint {
15162    pub(crate) syntax: SyntaxNode,
15163}
15164impl ValidateConstraint {
15165    #[inline]
15166    pub fn name_ref(&self) -> Option<NameRef> {
15167        support::child(&self.syntax)
15168    }
15169    #[inline]
15170    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15172    }
15173    #[inline]
15174    pub fn validate_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15176    }
15177}
15178
15179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15180pub struct Values {
15181    pub(crate) syntax: SyntaxNode,
15182}
15183impl Values {
15184    #[inline]
15185    pub fn row_list(&self) -> Option<RowList> {
15186        support::child(&self.syntax)
15187    }
15188    #[inline]
15189    pub fn values_token(&self) -> Option<SyntaxToken> {
15190        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15191    }
15192}
15193
15194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15195pub struct Variant {
15196    pub(crate) syntax: SyntaxNode,
15197}
15198impl Variant {
15199    #[inline]
15200    pub fn literal(&self) -> Option<Literal> {
15201        support::child(&self.syntax)
15202    }
15203}
15204
15205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15206pub struct VariantList {
15207    pub(crate) syntax: SyntaxNode,
15208}
15209impl VariantList {
15210    #[inline]
15211    pub fn variants(&self) -> AstChildren<Variant> {
15212        support::children(&self.syntax)
15213    }
15214    #[inline]
15215    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15216        support::token(&self.syntax, SyntaxKind::L_PAREN)
15217    }
15218    #[inline]
15219    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15220        support::token(&self.syntax, SyntaxKind::R_PAREN)
15221    }
15222}
15223
15224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15225pub struct VolatilityFuncOption {
15226    pub(crate) syntax: SyntaxNode,
15227}
15228impl VolatilityFuncOption {
15229    #[inline]
15230    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15231        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15232    }
15233    #[inline]
15234    pub fn stable_token(&self) -> Option<SyntaxToken> {
15235        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15236    }
15237    #[inline]
15238    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15239        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15240    }
15241}
15242
15243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15244pub struct WhenClause {
15245    pub(crate) syntax: SyntaxNode,
15246}
15247impl WhenClause {
15248    #[inline]
15249    pub fn then_token(&self) -> Option<SyntaxToken> {
15250        support::token(&self.syntax, SyntaxKind::THEN_KW)
15251    }
15252    #[inline]
15253    pub fn when_token(&self) -> Option<SyntaxToken> {
15254        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15255    }
15256}
15257
15258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15259pub struct WhenClauseList {
15260    pub(crate) syntax: SyntaxNode,
15261}
15262impl WhenClauseList {
15263    #[inline]
15264    pub fn when_clause(&self) -> Option<WhenClause> {
15265        support::child(&self.syntax)
15266    }
15267    #[inline]
15268    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15269        support::children(&self.syntax)
15270    }
15271}
15272
15273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15274pub struct WhenCondition {
15275    pub(crate) syntax: SyntaxNode,
15276}
15277impl WhenCondition {
15278    #[inline]
15279    pub fn expr(&self) -> Option<Expr> {
15280        support::child(&self.syntax)
15281    }
15282    #[inline]
15283    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15284        support::token(&self.syntax, SyntaxKind::L_PAREN)
15285    }
15286    #[inline]
15287    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15288        support::token(&self.syntax, SyntaxKind::R_PAREN)
15289    }
15290    #[inline]
15291    pub fn when_token(&self) -> Option<SyntaxToken> {
15292        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15293    }
15294}
15295
15296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15297pub struct WhereClause {
15298    pub(crate) syntax: SyntaxNode,
15299}
15300impl WhereClause {
15301    #[inline]
15302    pub fn expr(&self) -> Option<Expr> {
15303        support::child(&self.syntax)
15304    }
15305    #[inline]
15306    pub fn where_token(&self) -> Option<SyntaxToken> {
15307        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15308    }
15309}
15310
15311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15312pub struct WhereConditionClause {
15313    pub(crate) syntax: SyntaxNode,
15314}
15315impl WhereConditionClause {
15316    #[inline]
15317    pub fn expr(&self) -> Option<Expr> {
15318        support::child(&self.syntax)
15319    }
15320    #[inline]
15321    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15322        support::token(&self.syntax, SyntaxKind::L_PAREN)
15323    }
15324    #[inline]
15325    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15326        support::token(&self.syntax, SyntaxKind::R_PAREN)
15327    }
15328    #[inline]
15329    pub fn where_token(&self) -> Option<SyntaxToken> {
15330        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15331    }
15332}
15333
15334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15335pub struct WhereCurrentOf {
15336    pub(crate) syntax: SyntaxNode,
15337}
15338impl WhereCurrentOf {
15339    #[inline]
15340    pub fn name_ref(&self) -> Option<NameRef> {
15341        support::child(&self.syntax)
15342    }
15343    #[inline]
15344    pub fn current_token(&self) -> Option<SyntaxToken> {
15345        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15346    }
15347    #[inline]
15348    pub fn of_token(&self) -> Option<SyntaxToken> {
15349        support::token(&self.syntax, SyntaxKind::OF_KW)
15350    }
15351    #[inline]
15352    pub fn where_token(&self) -> Option<SyntaxToken> {
15353        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15354    }
15355}
15356
15357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15358pub struct WindowClause {
15359    pub(crate) syntax: SyntaxNode,
15360}
15361impl WindowClause {
15362    #[inline]
15363    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15364        support::children(&self.syntax)
15365    }
15366    #[inline]
15367    pub fn window_token(&self) -> Option<SyntaxToken> {
15368        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15369    }
15370}
15371
15372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15373pub struct WindowDef {
15374    pub(crate) syntax: SyntaxNode,
15375}
15376impl WindowDef {
15377    #[inline]
15378    pub fn name(&self) -> Option<Name> {
15379        support::child(&self.syntax)
15380    }
15381    #[inline]
15382    pub fn window_spec(&self) -> Option<WindowSpec> {
15383        support::child(&self.syntax)
15384    }
15385    #[inline]
15386    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15387        support::token(&self.syntax, SyntaxKind::L_PAREN)
15388    }
15389    #[inline]
15390    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15391        support::token(&self.syntax, SyntaxKind::R_PAREN)
15392    }
15393    #[inline]
15394    pub fn as_token(&self) -> Option<SyntaxToken> {
15395        support::token(&self.syntax, SyntaxKind::AS_KW)
15396    }
15397}
15398
15399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15400pub struct WindowFuncOption {
15401    pub(crate) syntax: SyntaxNode,
15402}
15403impl WindowFuncOption {
15404    #[inline]
15405    pub fn window_token(&self) -> Option<SyntaxToken> {
15406        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15407    }
15408}
15409
15410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15411pub struct WindowSpec {
15412    pub(crate) syntax: SyntaxNode,
15413}
15414impl WindowSpec {
15415    #[inline]
15416    pub fn exprs(&self) -> AstChildren<Expr> {
15417        support::children(&self.syntax)
15418    }
15419    #[inline]
15420    pub fn frame_clause(&self) -> Option<FrameClause> {
15421        support::child(&self.syntax)
15422    }
15423    #[inline]
15424    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15425        support::child(&self.syntax)
15426    }
15427    #[inline]
15428    pub fn by_token(&self) -> Option<SyntaxToken> {
15429        support::token(&self.syntax, SyntaxKind::BY_KW)
15430    }
15431    #[inline]
15432    pub fn ident_token(&self) -> Option<SyntaxToken> {
15433        support::token(&self.syntax, SyntaxKind::IDENT)
15434    }
15435    #[inline]
15436    pub fn partition_token(&self) -> Option<SyntaxToken> {
15437        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15438    }
15439}
15440
15441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15442pub struct WithClause {
15443    pub(crate) syntax: SyntaxNode,
15444}
15445impl WithClause {
15446    #[inline]
15447    pub fn with_tables(&self) -> AstChildren<WithTable> {
15448        support::children(&self.syntax)
15449    }
15450    #[inline]
15451    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15452        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15453    }
15454    #[inline]
15455    pub fn with_token(&self) -> Option<SyntaxToken> {
15456        support::token(&self.syntax, SyntaxKind::WITH_KW)
15457    }
15458}
15459
15460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15461pub struct WithData {
15462    pub(crate) syntax: SyntaxNode,
15463}
15464impl WithData {
15465    #[inline]
15466    pub fn data_token(&self) -> Option<SyntaxToken> {
15467        support::token(&self.syntax, SyntaxKind::DATA_KW)
15468    }
15469    #[inline]
15470    pub fn with_token(&self) -> Option<SyntaxToken> {
15471        support::token(&self.syntax, SyntaxKind::WITH_KW)
15472    }
15473}
15474
15475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15476pub struct WithNoData {
15477    pub(crate) syntax: SyntaxNode,
15478}
15479impl WithNoData {
15480    #[inline]
15481    pub fn data_token(&self) -> Option<SyntaxToken> {
15482        support::token(&self.syntax, SyntaxKind::DATA_KW)
15483    }
15484    #[inline]
15485    pub fn no_token(&self) -> Option<SyntaxToken> {
15486        support::token(&self.syntax, SyntaxKind::NO_KW)
15487    }
15488    #[inline]
15489    pub fn with_token(&self) -> Option<SyntaxToken> {
15490        support::token(&self.syntax, SyntaxKind::WITH_KW)
15491    }
15492}
15493
15494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15495pub struct WithOptions {
15496    pub(crate) syntax: SyntaxNode,
15497}
15498impl WithOptions {
15499    #[inline]
15500    pub fn options_token(&self) -> Option<SyntaxToken> {
15501        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15502    }
15503    #[inline]
15504    pub fn with_token(&self) -> Option<SyntaxToken> {
15505        support::token(&self.syntax, SyntaxKind::WITH_KW)
15506    }
15507}
15508
15509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15510pub struct WithParams {
15511    pub(crate) syntax: SyntaxNode,
15512}
15513impl WithParams {
15514    #[inline]
15515    pub fn attribute_list(&self) -> Option<AttributeList> {
15516        support::child(&self.syntax)
15517    }
15518    #[inline]
15519    pub fn with_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::WITH_KW)
15521    }
15522}
15523
15524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15525pub struct WithTable {
15526    pub(crate) syntax: SyntaxNode,
15527}
15528impl WithTable {
15529    #[inline]
15530    pub fn column_list(&self) -> Option<ColumnList> {
15531        support::child(&self.syntax)
15532    }
15533    #[inline]
15534    pub fn materialized(&self) -> Option<Materialized> {
15535        support::child(&self.syntax)
15536    }
15537    #[inline]
15538    pub fn name(&self) -> Option<Name> {
15539        support::child(&self.syntax)
15540    }
15541    #[inline]
15542    pub fn not_materialized(&self) -> Option<NotMaterialized> {
15543        support::child(&self.syntax)
15544    }
15545    #[inline]
15546    pub fn query(&self) -> Option<WithQuery> {
15547        support::child(&self.syntax)
15548    }
15549    #[inline]
15550    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15551        support::token(&self.syntax, SyntaxKind::L_PAREN)
15552    }
15553    #[inline]
15554    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15555        support::token(&self.syntax, SyntaxKind::R_PAREN)
15556    }
15557    #[inline]
15558    pub fn as_token(&self) -> Option<SyntaxToken> {
15559        support::token(&self.syntax, SyntaxKind::AS_KW)
15560    }
15561}
15562
15563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15564pub struct WithTimezone {
15565    pub(crate) syntax: SyntaxNode,
15566}
15567impl WithTimezone {
15568    #[inline]
15569    pub fn time_token(&self) -> Option<SyntaxToken> {
15570        support::token(&self.syntax, SyntaxKind::TIME_KW)
15571    }
15572    #[inline]
15573    pub fn with_token(&self) -> Option<SyntaxToken> {
15574        support::token(&self.syntax, SyntaxKind::WITH_KW)
15575    }
15576    #[inline]
15577    pub fn zone_token(&self) -> Option<SyntaxToken> {
15578        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15579    }
15580}
15581
15582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15583pub struct WithinClause {
15584    pub(crate) syntax: SyntaxNode,
15585}
15586impl WithinClause {
15587    #[inline]
15588    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15589        support::child(&self.syntax)
15590    }
15591    #[inline]
15592    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15593        support::token(&self.syntax, SyntaxKind::L_PAREN)
15594    }
15595    #[inline]
15596    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15597        support::token(&self.syntax, SyntaxKind::R_PAREN)
15598    }
15599    #[inline]
15600    pub fn group_token(&self) -> Option<SyntaxToken> {
15601        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15602    }
15603    #[inline]
15604    pub fn within_token(&self) -> Option<SyntaxToken> {
15605        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
15606    }
15607}
15608
15609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15610pub struct WithoutOids {
15611    pub(crate) syntax: SyntaxNode,
15612}
15613impl WithoutOids {
15614    #[inline]
15615    pub fn oids_token(&self) -> Option<SyntaxToken> {
15616        support::token(&self.syntax, SyntaxKind::OIDS_KW)
15617    }
15618    #[inline]
15619    pub fn without_token(&self) -> Option<SyntaxToken> {
15620        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15621    }
15622}
15623
15624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15625pub struct WithoutTimezone {
15626    pub(crate) syntax: SyntaxNode,
15627}
15628impl WithoutTimezone {
15629    #[inline]
15630    pub fn time_token(&self) -> Option<SyntaxToken> {
15631        support::token(&self.syntax, SyntaxKind::TIME_KW)
15632    }
15633    #[inline]
15634    pub fn without_token(&self) -> Option<SyntaxToken> {
15635        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15636    }
15637    #[inline]
15638    pub fn zone_token(&self) -> Option<SyntaxToken> {
15639        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15640    }
15641}
15642
15643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15644pub struct XmlAttributeList {
15645    pub(crate) syntax: SyntaxNode,
15646}
15647impl XmlAttributeList {
15648    #[inline]
15649    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
15650        support::children(&self.syntax)
15651    }
15652}
15653
15654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15655pub struct XmlColumnOption {
15656    pub(crate) syntax: SyntaxNode,
15657}
15658impl XmlColumnOption {
15659    #[inline]
15660    pub fn expr(&self) -> Option<Expr> {
15661        support::child(&self.syntax)
15662    }
15663    #[inline]
15664    pub fn default_token(&self) -> Option<SyntaxToken> {
15665        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15666    }
15667    #[inline]
15668    pub fn ident_token(&self) -> Option<SyntaxToken> {
15669        support::token(&self.syntax, SyntaxKind::IDENT)
15670    }
15671    #[inline]
15672    pub fn not_token(&self) -> Option<SyntaxToken> {
15673        support::token(&self.syntax, SyntaxKind::NOT_KW)
15674    }
15675    #[inline]
15676    pub fn null_token(&self) -> Option<SyntaxToken> {
15677        support::token(&self.syntax, SyntaxKind::NULL_KW)
15678    }
15679    #[inline]
15680    pub fn path_token(&self) -> Option<SyntaxToken> {
15681        support::token(&self.syntax, SyntaxKind::PATH_KW)
15682    }
15683}
15684
15685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15686pub struct XmlColumnOptionList {
15687    pub(crate) syntax: SyntaxNode,
15688}
15689impl XmlColumnOptionList {
15690    #[inline]
15691    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
15692        support::child(&self.syntax)
15693    }
15694    #[inline]
15695    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
15696        support::children(&self.syntax)
15697    }
15698}
15699
15700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15701pub struct XmlElementFn {
15702    pub(crate) syntax: SyntaxNode,
15703}
15704impl XmlElementFn {
15705    #[inline]
15706    pub fn exprs(&self) -> AstChildren<Expr> {
15707        support::children(&self.syntax)
15708    }
15709    #[inline]
15710    pub fn name(&self) -> Option<Name> {
15711        support::child(&self.syntax)
15712    }
15713    #[inline]
15714    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
15715        support::child(&self.syntax)
15716    }
15717    #[inline]
15718    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15719        support::token(&self.syntax, SyntaxKind::L_PAREN)
15720    }
15721    #[inline]
15722    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15723        support::token(&self.syntax, SyntaxKind::R_PAREN)
15724    }
15725    #[inline]
15726    pub fn comma_token(&self) -> Option<SyntaxToken> {
15727        support::token(&self.syntax, SyntaxKind::COMMA)
15728    }
15729    #[inline]
15730    pub fn name_token(&self) -> Option<SyntaxToken> {
15731        support::token(&self.syntax, SyntaxKind::NAME_KW)
15732    }
15733    #[inline]
15734    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
15735        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
15736    }
15737    #[inline]
15738    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
15739        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
15740    }
15741}
15742
15743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15744pub struct XmlExistsFn {
15745    pub(crate) syntax: SyntaxNode,
15746}
15747impl XmlExistsFn {
15748    #[inline]
15749    pub fn expr(&self) -> Option<Expr> {
15750        support::child(&self.syntax)
15751    }
15752    #[inline]
15753    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
15754        support::child(&self.syntax)
15755    }
15756    #[inline]
15757    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15758        support::token(&self.syntax, SyntaxKind::L_PAREN)
15759    }
15760    #[inline]
15761    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15762        support::token(&self.syntax, SyntaxKind::R_PAREN)
15763    }
15764    #[inline]
15765    pub fn passing_token(&self) -> Option<SyntaxToken> {
15766        support::token(&self.syntax, SyntaxKind::PASSING_KW)
15767    }
15768    #[inline]
15769    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
15770        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
15771    }
15772}
15773
15774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15775pub struct XmlForestFn {
15776    pub(crate) syntax: SyntaxNode,
15777}
15778impl XmlForestFn {
15779    #[inline]
15780    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
15781        support::child(&self.syntax)
15782    }
15783    #[inline]
15784    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15785        support::token(&self.syntax, SyntaxKind::L_PAREN)
15786    }
15787    #[inline]
15788    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15789        support::token(&self.syntax, SyntaxKind::R_PAREN)
15790    }
15791    #[inline]
15792    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
15793        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
15794    }
15795}
15796
15797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15798pub struct XmlNamespace {
15799    pub(crate) syntax: SyntaxNode,
15800}
15801impl XmlNamespace {
15802    #[inline]
15803    pub fn expr(&self) -> Option<Expr> {
15804        support::child(&self.syntax)
15805    }
15806    #[inline]
15807    pub fn name(&self) -> Option<Name> {
15808        support::child(&self.syntax)
15809    }
15810    #[inline]
15811    pub fn as_token(&self) -> Option<SyntaxToken> {
15812        support::token(&self.syntax, SyntaxKind::AS_KW)
15813    }
15814    #[inline]
15815    pub fn default_token(&self) -> Option<SyntaxToken> {
15816        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15817    }
15818}
15819
15820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15821pub struct XmlNamespaceList {
15822    pub(crate) syntax: SyntaxNode,
15823}
15824impl XmlNamespaceList {
15825    #[inline]
15826    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
15827        support::children(&self.syntax)
15828    }
15829    #[inline]
15830    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15831        support::token(&self.syntax, SyntaxKind::L_PAREN)
15832    }
15833    #[inline]
15834    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15835        support::token(&self.syntax, SyntaxKind::R_PAREN)
15836    }
15837}
15838
15839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15840pub struct XmlParseFn {
15841    pub(crate) syntax: SyntaxNode,
15842}
15843impl XmlParseFn {
15844    #[inline]
15845    pub fn expr(&self) -> Option<Expr> {
15846        support::child(&self.syntax)
15847    }
15848    #[inline]
15849    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15850        support::token(&self.syntax, SyntaxKind::L_PAREN)
15851    }
15852    #[inline]
15853    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15854        support::token(&self.syntax, SyntaxKind::R_PAREN)
15855    }
15856    #[inline]
15857    pub fn content_token(&self) -> Option<SyntaxToken> {
15858        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15859    }
15860    #[inline]
15861    pub fn document_token(&self) -> Option<SyntaxToken> {
15862        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15863    }
15864    #[inline]
15865    pub fn preserve_token(&self) -> Option<SyntaxToken> {
15866        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
15867    }
15868    #[inline]
15869    pub fn strip_token(&self) -> Option<SyntaxToken> {
15870        support::token(&self.syntax, SyntaxKind::STRIP_KW)
15871    }
15872    #[inline]
15873    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
15874        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
15875    }
15876    #[inline]
15877    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
15878        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
15879    }
15880}
15881
15882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15883pub struct XmlPassingMech {
15884    pub(crate) syntax: SyntaxNode,
15885}
15886impl XmlPassingMech {
15887    #[inline]
15888    pub fn by_token(&self) -> Option<SyntaxToken> {
15889        support::token(&self.syntax, SyntaxKind::BY_KW)
15890    }
15891    #[inline]
15892    pub fn ref_token(&self) -> Option<SyntaxToken> {
15893        support::token(&self.syntax, SyntaxKind::REF_KW)
15894    }
15895    #[inline]
15896    pub fn value_token(&self) -> Option<SyntaxToken> {
15897        support::token(&self.syntax, SyntaxKind::VALUE_KW)
15898    }
15899}
15900
15901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15902pub struct XmlPiFn {
15903    pub(crate) syntax: SyntaxNode,
15904}
15905impl XmlPiFn {
15906    #[inline]
15907    pub fn expr(&self) -> Option<Expr> {
15908        support::child(&self.syntax)
15909    }
15910    #[inline]
15911    pub fn name(&self) -> Option<Name> {
15912        support::child(&self.syntax)
15913    }
15914    #[inline]
15915    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15916        support::token(&self.syntax, SyntaxKind::L_PAREN)
15917    }
15918    #[inline]
15919    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15920        support::token(&self.syntax, SyntaxKind::R_PAREN)
15921    }
15922    #[inline]
15923    pub fn comma_token(&self) -> Option<SyntaxToken> {
15924        support::token(&self.syntax, SyntaxKind::COMMA)
15925    }
15926    #[inline]
15927    pub fn name_token(&self) -> Option<SyntaxToken> {
15928        support::token(&self.syntax, SyntaxKind::NAME_KW)
15929    }
15930    #[inline]
15931    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
15932        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
15933    }
15934}
15935
15936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15937pub struct XmlRootFn {
15938    pub(crate) syntax: SyntaxNode,
15939}
15940impl XmlRootFn {
15941    #[inline]
15942    pub fn expr(&self) -> Option<Expr> {
15943        support::child(&self.syntax)
15944    }
15945    #[inline]
15946    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15947        support::token(&self.syntax, SyntaxKind::L_PAREN)
15948    }
15949    #[inline]
15950    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15951        support::token(&self.syntax, SyntaxKind::R_PAREN)
15952    }
15953    #[inline]
15954    pub fn comma_token(&self) -> Option<SyntaxToken> {
15955        support::token(&self.syntax, SyntaxKind::COMMA)
15956    }
15957    #[inline]
15958    pub fn no_token(&self) -> Option<SyntaxToken> {
15959        support::token(&self.syntax, SyntaxKind::NO_KW)
15960    }
15961    #[inline]
15962    pub fn standalone_token(&self) -> Option<SyntaxToken> {
15963        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
15964    }
15965    #[inline]
15966    pub fn value_token(&self) -> Option<SyntaxToken> {
15967        support::token(&self.syntax, SyntaxKind::VALUE_KW)
15968    }
15969    #[inline]
15970    pub fn version_token(&self) -> Option<SyntaxToken> {
15971        support::token(&self.syntax, SyntaxKind::VERSION_KW)
15972    }
15973    #[inline]
15974    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
15975        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
15976    }
15977    #[inline]
15978    pub fn yes_token(&self) -> Option<SyntaxToken> {
15979        support::token(&self.syntax, SyntaxKind::YES_KW)
15980    }
15981}
15982
15983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15984pub struct XmlRowPassingClause {
15985    pub(crate) syntax: SyntaxNode,
15986}
15987impl XmlRowPassingClause {
15988    #[inline]
15989    pub fn expr(&self) -> Option<Expr> {
15990        support::child(&self.syntax)
15991    }
15992    #[inline]
15993    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
15994        support::child(&self.syntax)
15995    }
15996    #[inline]
15997    pub fn passing_token(&self) -> Option<SyntaxToken> {
15998        support::token(&self.syntax, SyntaxKind::PASSING_KW)
15999    }
16000}
16001
16002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16003pub struct XmlSerializeFn {
16004    pub(crate) syntax: SyntaxNode,
16005}
16006impl XmlSerializeFn {
16007    #[inline]
16008    pub fn expr(&self) -> Option<Expr> {
16009        support::child(&self.syntax)
16010    }
16011    #[inline]
16012    pub fn ty(&self) -> Option<Type> {
16013        support::child(&self.syntax)
16014    }
16015    #[inline]
16016    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16017        support::token(&self.syntax, SyntaxKind::L_PAREN)
16018    }
16019    #[inline]
16020    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16021        support::token(&self.syntax, SyntaxKind::R_PAREN)
16022    }
16023    #[inline]
16024    pub fn as_token(&self) -> Option<SyntaxToken> {
16025        support::token(&self.syntax, SyntaxKind::AS_KW)
16026    }
16027    #[inline]
16028    pub fn content_token(&self) -> Option<SyntaxToken> {
16029        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16030    }
16031    #[inline]
16032    pub fn document_token(&self) -> Option<SyntaxToken> {
16033        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16034    }
16035    #[inline]
16036    pub fn ident_token(&self) -> Option<SyntaxToken> {
16037        support::token(&self.syntax, SyntaxKind::IDENT)
16038    }
16039    #[inline]
16040    pub fn no_token(&self) -> Option<SyntaxToken> {
16041        support::token(&self.syntax, SyntaxKind::NO_KW)
16042    }
16043    #[inline]
16044    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16045        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16046    }
16047}
16048
16049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16050pub struct XmlTable {
16051    pub(crate) syntax: SyntaxNode,
16052}
16053impl XmlTable {
16054    #[inline]
16055    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16056        support::child(&self.syntax)
16057    }
16058    #[inline]
16059    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16060        support::child(&self.syntax)
16061    }
16062    #[inline]
16063    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16064        support::child(&self.syntax)
16065    }
16066    #[inline]
16067    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16068        support::token(&self.syntax, SyntaxKind::L_PAREN)
16069    }
16070    #[inline]
16071    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16072        support::token(&self.syntax, SyntaxKind::R_PAREN)
16073    }
16074    #[inline]
16075    pub fn comma_token(&self) -> Option<SyntaxToken> {
16076        support::token(&self.syntax, SyntaxKind::COMMA)
16077    }
16078    #[inline]
16079    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16080        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16081    }
16082    #[inline]
16083    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16084        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16085    }
16086}
16087
16088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16089pub struct XmlTableColumn {
16090    pub(crate) syntax: SyntaxNode,
16091}
16092impl XmlTableColumn {
16093    #[inline]
16094    pub fn name(&self) -> Option<Name> {
16095        support::child(&self.syntax)
16096    }
16097    #[inline]
16098    pub fn ty(&self) -> Option<Type> {
16099        support::child(&self.syntax)
16100    }
16101    #[inline]
16102    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16103        support::child(&self.syntax)
16104    }
16105    #[inline]
16106    pub fn for_token(&self) -> Option<SyntaxToken> {
16107        support::token(&self.syntax, SyntaxKind::FOR_KW)
16108    }
16109    #[inline]
16110    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16111        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16112    }
16113}
16114
16115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16116pub struct XmlTableColumnList {
16117    pub(crate) syntax: SyntaxNode,
16118}
16119impl XmlTableColumnList {
16120    #[inline]
16121    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16122        support::children(&self.syntax)
16123    }
16124}
16125
16126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16127pub enum AlterColumnOption {
16128    AddGenerated(AddGenerated),
16129    DropDefault(DropDefault),
16130    DropExpression(DropExpression),
16131    DropIdentity(DropIdentity),
16132    DropNotNull(DropNotNull),
16133    ResetOptions(ResetOptions),
16134    Restart(Restart),
16135    SetCompression(SetCompression),
16136    SetDefault(SetDefault),
16137    SetExpression(SetExpression),
16138    SetGenerated(SetGenerated),
16139    SetGeneratedOptions(SetGeneratedOptions),
16140    SetNotNull(SetNotNull),
16141    SetOptions(SetOptions),
16142    SetOptionsList(SetOptionsList),
16143    SetSequenceOption(SetSequenceOption),
16144    SetStatistics(SetStatistics),
16145    SetStorage(SetStorage),
16146    SetType(SetType),
16147}
16148
16149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16150pub enum AlterDomainAction {
16151    AddConstraint(AddConstraint),
16152    DropConstraint(DropConstraint),
16153    DropDefault(DropDefault),
16154    DropNotNull(DropNotNull),
16155    OwnerTo(OwnerTo),
16156    RenameConstraint(RenameConstraint),
16157    RenameTo(RenameTo),
16158    SetDefault(SetDefault),
16159    SetNotNull(SetNotNull),
16160    SetSchema(SetSchema),
16161    ValidateConstraint(ValidateConstraint),
16162}
16163
16164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16165pub enum AlterMaterializedViewAction {
16166    DependsOnExtension(DependsOnExtension),
16167    NoDependsOnExtension(NoDependsOnExtension),
16168    RenameColumn(RenameColumn),
16169    RenameTo(RenameTo),
16170    SetSchema(SetSchema),
16171    AlterTableAction(AlterTableAction),
16172}
16173
16174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16175pub enum AlterTableAction {
16176    AddColumn(AddColumn),
16177    AddConstraint(AddConstraint),
16178    AlterColumn(AlterColumn),
16179    AlterConstraint(AlterConstraint),
16180    AttachPartition(AttachPartition),
16181    ClusterOn(ClusterOn),
16182    DetachPartition(DetachPartition),
16183    DisableRls(DisableRls),
16184    DisableRule(DisableRule),
16185    DisableTrigger(DisableTrigger),
16186    DropColumn(DropColumn),
16187    DropConstraint(DropConstraint),
16188    EnableAlwaysRule(EnableAlwaysRule),
16189    EnableAlwaysTrigger(EnableAlwaysTrigger),
16190    EnableReplicaRule(EnableReplicaRule),
16191    EnableReplicaTrigger(EnableReplicaTrigger),
16192    EnableRls(EnableRls),
16193    EnableRule(EnableRule),
16194    EnableTrigger(EnableTrigger),
16195    ForceRls(ForceRls),
16196    InheritTable(InheritTable),
16197    NoForceRls(NoForceRls),
16198    NoInheritTable(NoInheritTable),
16199    NotOf(NotOf),
16200    OfType(OfType),
16201    OptionItemList(OptionItemList),
16202    OwnerTo(OwnerTo),
16203    RenameColumn(RenameColumn),
16204    RenameConstraint(RenameConstraint),
16205    RenameTo(RenameTo),
16206    ReplicaIdentity(ReplicaIdentity),
16207    ResetOptions(ResetOptions),
16208    SetAccessMethod(SetAccessMethod),
16209    SetLogged(SetLogged),
16210    SetOptions(SetOptions),
16211    SetSchema(SetSchema),
16212    SetTablespace(SetTablespace),
16213    SetUnlogged(SetUnlogged),
16214    SetWithoutCluster(SetWithoutCluster),
16215    SetWithoutOids(SetWithoutOids),
16216    ValidateConstraint(ValidateConstraint),
16217}
16218
16219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16220pub enum ColumnConstraint {
16221    CheckConstraint(CheckConstraint),
16222    DefaultConstraint(DefaultConstraint),
16223    ExcludeConstraint(ExcludeConstraint),
16224    NotNullConstraint(NotNullConstraint),
16225    PrimaryKeyConstraint(PrimaryKeyConstraint),
16226    ReferencesConstraint(ReferencesConstraint),
16227    UniqueConstraint(UniqueConstraint),
16228}
16229
16230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16231pub enum ConflictAction {
16232    ConflictDoNothing(ConflictDoNothing),
16233    ConflictDoUpdateSet(ConflictDoUpdateSet),
16234}
16235
16236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16237pub enum ConflictTarget {
16238    ConflictOnConstraint(ConflictOnConstraint),
16239    ConflictOnIndex(ConflictOnIndex),
16240}
16241
16242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16243pub enum Constraint {
16244    CheckConstraint(CheckConstraint),
16245    DefaultConstraint(DefaultConstraint),
16246    ForeignKeyConstraint(ForeignKeyConstraint),
16247    GeneratedConstraint(GeneratedConstraint),
16248    NotNullConstraint(NotNullConstraint),
16249    NullConstraint(NullConstraint),
16250    PrimaryKeyConstraint(PrimaryKeyConstraint),
16251    ReferencesConstraint(ReferencesConstraint),
16252    UniqueConstraint(UniqueConstraint),
16253}
16254
16255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16256pub enum ExplainStmt {
16257    CompoundSelect(CompoundSelect),
16258    CreateMaterializedView(CreateMaterializedView),
16259    CreateTableAs(CreateTableAs),
16260    Declare(Declare),
16261    Delete(Delete),
16262    Execute(Execute),
16263    Insert(Insert),
16264    Merge(Merge),
16265    ParenSelect(ParenSelect),
16266    Select(Select),
16267    SelectInto(SelectInto),
16268    Table(Table),
16269    Update(Update),
16270    Values(Values),
16271}
16272
16273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16274pub enum Expr {
16275    ArrayExpr(ArrayExpr),
16276    BetweenExpr(BetweenExpr),
16277    BinExpr(BinExpr),
16278    CallExpr(CallExpr),
16279    CaseExpr(CaseExpr),
16280    CastExpr(CastExpr),
16281    FieldExpr(FieldExpr),
16282    IndexExpr(IndexExpr),
16283    Literal(Literal),
16284    NameRef(NameRef),
16285    ParenExpr(ParenExpr),
16286    PostfixExpr(PostfixExpr),
16287    PrefixExpr(PrefixExpr),
16288    SliceExpr(SliceExpr),
16289    TupleExpr(TupleExpr),
16290}
16291
16292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16293pub enum FuncOption {
16294    AsFuncOption(AsFuncOption),
16295    BeginFuncOption(BeginFuncOption),
16296    CostFuncOption(CostFuncOption),
16297    LanguageFuncOption(LanguageFuncOption),
16298    LeakproofFuncOption(LeakproofFuncOption),
16299    ParallelFuncOption(ParallelFuncOption),
16300    ResetFuncOption(ResetFuncOption),
16301    ReturnFuncOption(ReturnFuncOption),
16302    RowsFuncOption(RowsFuncOption),
16303    SecurityFuncOption(SecurityFuncOption),
16304    SetFuncOption(SetFuncOption),
16305    StrictFuncOption(StrictFuncOption),
16306    SupportFuncOption(SupportFuncOption),
16307    TransformFuncOption(TransformFuncOption),
16308    VolatilityFuncOption(VolatilityFuncOption),
16309    WindowFuncOption(WindowFuncOption),
16310}
16311
16312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16313pub enum GroupBy {
16314    GroupingCube(GroupingCube),
16315    GroupingExpr(GroupingExpr),
16316    GroupingRollup(GroupingRollup),
16317    GroupingSets(GroupingSets),
16318}
16319
16320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16321pub enum JoinType {
16322    JoinCross(JoinCross),
16323    JoinFull(JoinFull),
16324    JoinInner(JoinInner),
16325    JoinLeft(JoinLeft),
16326    JoinRight(JoinRight),
16327}
16328
16329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16330pub enum JsonBehavior {
16331    JsonBehaviorDefault(JsonBehaviorDefault),
16332    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16333    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16334    JsonBehaviorError(JsonBehaviorError),
16335    JsonBehaviorFalse(JsonBehaviorFalse),
16336    JsonBehaviorNull(JsonBehaviorNull),
16337    JsonBehaviorTrue(JsonBehaviorTrue),
16338    JsonBehaviorUnknown(JsonBehaviorUnknown),
16339}
16340
16341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16342pub enum MatchType {
16343    MatchFull(MatchFull),
16344    MatchPartial(MatchPartial),
16345    MatchSimple(MatchSimple),
16346}
16347
16348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16349pub enum MergeAction {
16350    MergeDelete(MergeDelete),
16351    MergeDoNothing(MergeDoNothing),
16352    MergeInsert(MergeInsert),
16353    MergeUpdate(MergeUpdate),
16354}
16355
16356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16357pub enum MergeWhenClause {
16358    MergeWhenMatched(MergeWhenMatched),
16359    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16360    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16361}
16362
16363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16364pub enum OnCommitAction {
16365    DeleteRows(DeleteRows),
16366    Drop(Drop),
16367    PreserveRows(PreserveRows),
16368}
16369
16370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16371pub enum ParamMode {
16372    ParamIn(ParamIn),
16373    ParamInOut(ParamInOut),
16374    ParamOut(ParamOut),
16375    ParamVariadic(ParamVariadic),
16376}
16377
16378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16379pub enum PartitionType {
16380    PartitionDefault(PartitionDefault),
16381    PartitionForValuesFrom(PartitionForValuesFrom),
16382    PartitionForValuesIn(PartitionForValuesIn),
16383    PartitionForValuesWith(PartitionForValuesWith),
16384}
16385
16386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16387pub enum PreparableStmt {
16388    CompoundSelect(CompoundSelect),
16389    Delete(Delete),
16390    Insert(Insert),
16391    Merge(Merge),
16392    Select(Select),
16393    SelectInto(SelectInto),
16394    Table(Table),
16395    Update(Update),
16396    Values(Values),
16397}
16398
16399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16400pub enum RefAction {
16401    Cascade(Cascade),
16402    NoAction(NoAction),
16403    Restrict(Restrict),
16404    SetDefaultColumns(SetDefaultColumns),
16405    SetNullColumns(SetNullColumns),
16406}
16407
16408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16409pub enum SchemaElement {
16410    CreateIndex(CreateIndex),
16411    CreateSequence(CreateSequence),
16412    CreateTable(CreateTable),
16413    CreateTrigger(CreateTrigger),
16414    CreateView(CreateView),
16415    Grant(Grant),
16416}
16417
16418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16419pub enum SelectVariant {
16420    CompoundSelect(CompoundSelect),
16421    ParenSelect(ParenSelect),
16422    Select(Select),
16423    SelectInto(SelectInto),
16424    Table(Table),
16425    Values(Values),
16426}
16427
16428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16429pub enum SetColumn {
16430    SetMultipleColumns(SetMultipleColumns),
16431    SetSingleColumn(SetSingleColumn),
16432}
16433
16434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16435pub enum Stmt {
16436    AlterAggregate(AlterAggregate),
16437    AlterCollation(AlterCollation),
16438    AlterConversion(AlterConversion),
16439    AlterDatabase(AlterDatabase),
16440    AlterDefaultPrivileges(AlterDefaultPrivileges),
16441    AlterDomain(AlterDomain),
16442    AlterEventTrigger(AlterEventTrigger),
16443    AlterExtension(AlterExtension),
16444    AlterForeignDataWrapper(AlterForeignDataWrapper),
16445    AlterForeignTable(AlterForeignTable),
16446    AlterFunction(AlterFunction),
16447    AlterGroup(AlterGroup),
16448    AlterIndex(AlterIndex),
16449    AlterLanguage(AlterLanguage),
16450    AlterLargeObject(AlterLargeObject),
16451    AlterMaterializedView(AlterMaterializedView),
16452    AlterOperator(AlterOperator),
16453    AlterOperatorClass(AlterOperatorClass),
16454    AlterOperatorFamily(AlterOperatorFamily),
16455    AlterPolicy(AlterPolicy),
16456    AlterProcedure(AlterProcedure),
16457    AlterPublication(AlterPublication),
16458    AlterRole(AlterRole),
16459    AlterRoutine(AlterRoutine),
16460    AlterRule(AlterRule),
16461    AlterSchema(AlterSchema),
16462    AlterSequence(AlterSequence),
16463    AlterServer(AlterServer),
16464    AlterStatistics(AlterStatistics),
16465    AlterSubscription(AlterSubscription),
16466    AlterSystem(AlterSystem),
16467    AlterTable(AlterTable),
16468    AlterTablespace(AlterTablespace),
16469    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16470    AlterTextSearchDictionary(AlterTextSearchDictionary),
16471    AlterTextSearchParser(AlterTextSearchParser),
16472    AlterTextSearchTemplate(AlterTextSearchTemplate),
16473    AlterTrigger(AlterTrigger),
16474    AlterType(AlterType),
16475    AlterUser(AlterUser),
16476    AlterUserMapping(AlterUserMapping),
16477    AlterView(AlterView),
16478    Analyze(Analyze),
16479    Begin(Begin),
16480    Call(Call),
16481    Checkpoint(Checkpoint),
16482    Close(Close),
16483    Cluster(Cluster),
16484    CommentOn(CommentOn),
16485    Commit(Commit),
16486    Copy(Copy),
16487    CreateAccessMethod(CreateAccessMethod),
16488    CreateAggregate(CreateAggregate),
16489    CreateCast(CreateCast),
16490    CreateCollation(CreateCollation),
16491    CreateConversion(CreateConversion),
16492    CreateDatabase(CreateDatabase),
16493    CreateDomain(CreateDomain),
16494    CreateEventTrigger(CreateEventTrigger),
16495    CreateExtension(CreateExtension),
16496    CreateForeignDataWrapper(CreateForeignDataWrapper),
16497    CreateForeignTable(CreateForeignTable),
16498    CreateFunction(CreateFunction),
16499    CreateGroup(CreateGroup),
16500    CreateIndex(CreateIndex),
16501    CreateLanguage(CreateLanguage),
16502    CreateMaterializedView(CreateMaterializedView),
16503    CreateOperator(CreateOperator),
16504    CreateOperatorClass(CreateOperatorClass),
16505    CreateOperatorFamily(CreateOperatorFamily),
16506    CreatePolicy(CreatePolicy),
16507    CreateProcedure(CreateProcedure),
16508    CreatePublication(CreatePublication),
16509    CreateRole(CreateRole),
16510    CreateRule(CreateRule),
16511    CreateSchema(CreateSchema),
16512    CreateSequence(CreateSequence),
16513    CreateServer(CreateServer),
16514    CreateStatistics(CreateStatistics),
16515    CreateSubscription(CreateSubscription),
16516    CreateTable(CreateTable),
16517    CreateTableAs(CreateTableAs),
16518    CreateTablespace(CreateTablespace),
16519    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
16520    CreateTextSearchDictionary(CreateTextSearchDictionary),
16521    CreateTextSearchParser(CreateTextSearchParser),
16522    CreateTextSearchTemplate(CreateTextSearchTemplate),
16523    CreateTransform(CreateTransform),
16524    CreateTrigger(CreateTrigger),
16525    CreateType(CreateType),
16526    CreateUser(CreateUser),
16527    CreateUserMapping(CreateUserMapping),
16528    CreateView(CreateView),
16529    Deallocate(Deallocate),
16530    Declare(Declare),
16531    Delete(Delete),
16532    Discard(Discard),
16533    Do(Do),
16534    DropAccessMethod(DropAccessMethod),
16535    DropAggregate(DropAggregate),
16536    DropCast(DropCast),
16537    DropCollation(DropCollation),
16538    DropConversion(DropConversion),
16539    DropDatabase(DropDatabase),
16540    DropDomain(DropDomain),
16541    DropEventTrigger(DropEventTrigger),
16542    DropExtension(DropExtension),
16543    DropForeignDataWrapper(DropForeignDataWrapper),
16544    DropForeignTable(DropForeignTable),
16545    DropFunction(DropFunction),
16546    DropGroup(DropGroup),
16547    DropIndex(DropIndex),
16548    DropLanguage(DropLanguage),
16549    DropMaterializedView(DropMaterializedView),
16550    DropOperator(DropOperator),
16551    DropOperatorClass(DropOperatorClass),
16552    DropOperatorFamily(DropOperatorFamily),
16553    DropOwned(DropOwned),
16554    DropPolicy(DropPolicy),
16555    DropProcedure(DropProcedure),
16556    DropPublication(DropPublication),
16557    DropRole(DropRole),
16558    DropRoutine(DropRoutine),
16559    DropRule(DropRule),
16560    DropSchema(DropSchema),
16561    DropSequence(DropSequence),
16562    DropServer(DropServer),
16563    DropStatistics(DropStatistics),
16564    DropSubscription(DropSubscription),
16565    DropTable(DropTable),
16566    DropTablespace(DropTablespace),
16567    DropTextSearchConfig(DropTextSearchConfig),
16568    DropTextSearchDict(DropTextSearchDict),
16569    DropTextSearchParser(DropTextSearchParser),
16570    DropTextSearchTemplate(DropTextSearchTemplate),
16571    DropTransform(DropTransform),
16572    DropTrigger(DropTrigger),
16573    DropType(DropType),
16574    DropUser(DropUser),
16575    DropUserMapping(DropUserMapping),
16576    DropView(DropView),
16577    Execute(Execute),
16578    Explain(Explain),
16579    Fetch(Fetch),
16580    Grant(Grant),
16581    ImportForeignSchema(ImportForeignSchema),
16582    Insert(Insert),
16583    Listen(Listen),
16584    Load(Load),
16585    Lock(Lock),
16586    Merge(Merge),
16587    Move(Move),
16588    Notify(Notify),
16589    ParenSelect(ParenSelect),
16590    Prepare(Prepare),
16591    PrepareTransaction(PrepareTransaction),
16592    Reassign(Reassign),
16593    Refresh(Refresh),
16594    Reindex(Reindex),
16595    ReleaseSavepoint(ReleaseSavepoint),
16596    Reset(Reset),
16597    ResetSessionAuth(ResetSessionAuth),
16598    Revoke(Revoke),
16599    Rollback(Rollback),
16600    Savepoint(Savepoint),
16601    SecurityLabel(SecurityLabel),
16602    Select(Select),
16603    SelectInto(SelectInto),
16604    Set(Set),
16605    SetConstraints(SetConstraints),
16606    SetRole(SetRole),
16607    SetSessionAuth(SetSessionAuth),
16608    SetTransaction(SetTransaction),
16609    Show(Show),
16610    Table(Table),
16611    Truncate(Truncate),
16612    Unlisten(Unlisten),
16613    Update(Update),
16614    Vacuum(Vacuum),
16615    Values(Values),
16616}
16617
16618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16619pub enum TableArg {
16620    Column(Column),
16621    LikeClause(LikeClause),
16622    TableConstraint(TableConstraint),
16623}
16624
16625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16626pub enum TableConstraint {
16627    CheckConstraint(CheckConstraint),
16628    ExcludeConstraint(ExcludeConstraint),
16629    ForeignKeyConstraint(ForeignKeyConstraint),
16630    PrimaryKeyConstraint(PrimaryKeyConstraint),
16631    UniqueConstraint(UniqueConstraint),
16632}
16633
16634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16635pub enum Timezone {
16636    WithTimezone(WithTimezone),
16637    WithoutTimezone(WithoutTimezone),
16638}
16639
16640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16641pub enum TransactionMode {
16642    Deferrable(Deferrable),
16643    NotDeferrable(NotDeferrable),
16644    ReadCommitted(ReadCommitted),
16645    ReadOnly(ReadOnly),
16646    ReadUncommitted(ReadUncommitted),
16647    ReadWrite(ReadWrite),
16648    RepeatableRead(RepeatableRead),
16649    Serializable(Serializable),
16650}
16651
16652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16653pub enum Type {
16654    ArrayType(ArrayType),
16655    BitType(BitType),
16656    CharType(CharType),
16657    DoubleType(DoubleType),
16658    ExprType(ExprType),
16659    IntervalType(IntervalType),
16660    PathType(PathType),
16661    PercentType(PercentType),
16662    TimeType(TimeType),
16663}
16664
16665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16666pub enum WithQuery {
16667    CompoundSelect(CompoundSelect),
16668    Delete(Delete),
16669    Insert(Insert),
16670    Merge(Merge),
16671    ParenSelect(ParenSelect),
16672    Select(Select),
16673    Table(Table),
16674    Update(Update),
16675    Values(Values),
16676}
16677impl AstNode for AddColumn {
16678    #[inline]
16679    fn can_cast(kind: SyntaxKind) -> bool {
16680        kind == SyntaxKind::ADD_COLUMN
16681    }
16682    #[inline]
16683    fn cast(syntax: SyntaxNode) -> Option<Self> {
16684        if Self::can_cast(syntax.kind()) {
16685            Some(Self { syntax })
16686        } else {
16687            None
16688        }
16689    }
16690    #[inline]
16691    fn syntax(&self) -> &SyntaxNode {
16692        &self.syntax
16693    }
16694}
16695impl AstNode for AddConstraint {
16696    #[inline]
16697    fn can_cast(kind: SyntaxKind) -> bool {
16698        kind == SyntaxKind::ADD_CONSTRAINT
16699    }
16700    #[inline]
16701    fn cast(syntax: SyntaxNode) -> Option<Self> {
16702        if Self::can_cast(syntax.kind()) {
16703            Some(Self { syntax })
16704        } else {
16705            None
16706        }
16707    }
16708    #[inline]
16709    fn syntax(&self) -> &SyntaxNode {
16710        &self.syntax
16711    }
16712}
16713impl AstNode for AddGenerated {
16714    #[inline]
16715    fn can_cast(kind: SyntaxKind) -> bool {
16716        kind == SyntaxKind::ADD_GENERATED
16717    }
16718    #[inline]
16719    fn cast(syntax: SyntaxNode) -> Option<Self> {
16720        if Self::can_cast(syntax.kind()) {
16721            Some(Self { syntax })
16722        } else {
16723            None
16724        }
16725    }
16726    #[inline]
16727    fn syntax(&self) -> &SyntaxNode {
16728        &self.syntax
16729    }
16730}
16731impl AstNode for AddOpClassOptions {
16732    #[inline]
16733    fn can_cast(kind: SyntaxKind) -> bool {
16734        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
16735    }
16736    #[inline]
16737    fn cast(syntax: SyntaxNode) -> Option<Self> {
16738        if Self::can_cast(syntax.kind()) {
16739            Some(Self { syntax })
16740        } else {
16741            None
16742        }
16743    }
16744    #[inline]
16745    fn syntax(&self) -> &SyntaxNode {
16746        &self.syntax
16747    }
16748}
16749impl AstNode for Aggregate {
16750    #[inline]
16751    fn can_cast(kind: SyntaxKind) -> bool {
16752        kind == SyntaxKind::AGGREGATE
16753    }
16754    #[inline]
16755    fn cast(syntax: SyntaxNode) -> Option<Self> {
16756        if Self::can_cast(syntax.kind()) {
16757            Some(Self { syntax })
16758        } else {
16759            None
16760        }
16761    }
16762    #[inline]
16763    fn syntax(&self) -> &SyntaxNode {
16764        &self.syntax
16765    }
16766}
16767impl AstNode for Alias {
16768    #[inline]
16769    fn can_cast(kind: SyntaxKind) -> bool {
16770        kind == SyntaxKind::ALIAS
16771    }
16772    #[inline]
16773    fn cast(syntax: SyntaxNode) -> Option<Self> {
16774        if Self::can_cast(syntax.kind()) {
16775            Some(Self { syntax })
16776        } else {
16777            None
16778        }
16779    }
16780    #[inline]
16781    fn syntax(&self) -> &SyntaxNode {
16782        &self.syntax
16783    }
16784}
16785impl AstNode for AllFn {
16786    #[inline]
16787    fn can_cast(kind: SyntaxKind) -> bool {
16788        kind == SyntaxKind::ALL_FN
16789    }
16790    #[inline]
16791    fn cast(syntax: SyntaxNode) -> Option<Self> {
16792        if Self::can_cast(syntax.kind()) {
16793            Some(Self { syntax })
16794        } else {
16795            None
16796        }
16797    }
16798    #[inline]
16799    fn syntax(&self) -> &SyntaxNode {
16800        &self.syntax
16801    }
16802}
16803impl AstNode for AlterAggregate {
16804    #[inline]
16805    fn can_cast(kind: SyntaxKind) -> bool {
16806        kind == SyntaxKind::ALTER_AGGREGATE
16807    }
16808    #[inline]
16809    fn cast(syntax: SyntaxNode) -> Option<Self> {
16810        if Self::can_cast(syntax.kind()) {
16811            Some(Self { syntax })
16812        } else {
16813            None
16814        }
16815    }
16816    #[inline]
16817    fn syntax(&self) -> &SyntaxNode {
16818        &self.syntax
16819    }
16820}
16821impl AstNode for AlterCollation {
16822    #[inline]
16823    fn can_cast(kind: SyntaxKind) -> bool {
16824        kind == SyntaxKind::ALTER_COLLATION
16825    }
16826    #[inline]
16827    fn cast(syntax: SyntaxNode) -> Option<Self> {
16828        if Self::can_cast(syntax.kind()) {
16829            Some(Self { syntax })
16830        } else {
16831            None
16832        }
16833    }
16834    #[inline]
16835    fn syntax(&self) -> &SyntaxNode {
16836        &self.syntax
16837    }
16838}
16839impl AstNode for AlterColumn {
16840    #[inline]
16841    fn can_cast(kind: SyntaxKind) -> bool {
16842        kind == SyntaxKind::ALTER_COLUMN
16843    }
16844    #[inline]
16845    fn cast(syntax: SyntaxNode) -> Option<Self> {
16846        if Self::can_cast(syntax.kind()) {
16847            Some(Self { syntax })
16848        } else {
16849            None
16850        }
16851    }
16852    #[inline]
16853    fn syntax(&self) -> &SyntaxNode {
16854        &self.syntax
16855    }
16856}
16857impl AstNode for AlterConstraint {
16858    #[inline]
16859    fn can_cast(kind: SyntaxKind) -> bool {
16860        kind == SyntaxKind::ALTER_CONSTRAINT
16861    }
16862    #[inline]
16863    fn cast(syntax: SyntaxNode) -> Option<Self> {
16864        if Self::can_cast(syntax.kind()) {
16865            Some(Self { syntax })
16866        } else {
16867            None
16868        }
16869    }
16870    #[inline]
16871    fn syntax(&self) -> &SyntaxNode {
16872        &self.syntax
16873    }
16874}
16875impl AstNode for AlterConversion {
16876    #[inline]
16877    fn can_cast(kind: SyntaxKind) -> bool {
16878        kind == SyntaxKind::ALTER_CONVERSION
16879    }
16880    #[inline]
16881    fn cast(syntax: SyntaxNode) -> Option<Self> {
16882        if Self::can_cast(syntax.kind()) {
16883            Some(Self { syntax })
16884        } else {
16885            None
16886        }
16887    }
16888    #[inline]
16889    fn syntax(&self) -> &SyntaxNode {
16890        &self.syntax
16891    }
16892}
16893impl AstNode for AlterDatabase {
16894    #[inline]
16895    fn can_cast(kind: SyntaxKind) -> bool {
16896        kind == SyntaxKind::ALTER_DATABASE
16897    }
16898    #[inline]
16899    fn cast(syntax: SyntaxNode) -> Option<Self> {
16900        if Self::can_cast(syntax.kind()) {
16901            Some(Self { syntax })
16902        } else {
16903            None
16904        }
16905    }
16906    #[inline]
16907    fn syntax(&self) -> &SyntaxNode {
16908        &self.syntax
16909    }
16910}
16911impl AstNode for AlterDefaultPrivileges {
16912    #[inline]
16913    fn can_cast(kind: SyntaxKind) -> bool {
16914        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
16915    }
16916    #[inline]
16917    fn cast(syntax: SyntaxNode) -> Option<Self> {
16918        if Self::can_cast(syntax.kind()) {
16919            Some(Self { syntax })
16920        } else {
16921            None
16922        }
16923    }
16924    #[inline]
16925    fn syntax(&self) -> &SyntaxNode {
16926        &self.syntax
16927    }
16928}
16929impl AstNode for AlterDomain {
16930    #[inline]
16931    fn can_cast(kind: SyntaxKind) -> bool {
16932        kind == SyntaxKind::ALTER_DOMAIN
16933    }
16934    #[inline]
16935    fn cast(syntax: SyntaxNode) -> Option<Self> {
16936        if Self::can_cast(syntax.kind()) {
16937            Some(Self { syntax })
16938        } else {
16939            None
16940        }
16941    }
16942    #[inline]
16943    fn syntax(&self) -> &SyntaxNode {
16944        &self.syntax
16945    }
16946}
16947impl AstNode for AlterEventTrigger {
16948    #[inline]
16949    fn can_cast(kind: SyntaxKind) -> bool {
16950        kind == SyntaxKind::ALTER_EVENT_TRIGGER
16951    }
16952    #[inline]
16953    fn cast(syntax: SyntaxNode) -> Option<Self> {
16954        if Self::can_cast(syntax.kind()) {
16955            Some(Self { syntax })
16956        } else {
16957            None
16958        }
16959    }
16960    #[inline]
16961    fn syntax(&self) -> &SyntaxNode {
16962        &self.syntax
16963    }
16964}
16965impl AstNode for AlterExtension {
16966    #[inline]
16967    fn can_cast(kind: SyntaxKind) -> bool {
16968        kind == SyntaxKind::ALTER_EXTENSION
16969    }
16970    #[inline]
16971    fn cast(syntax: SyntaxNode) -> Option<Self> {
16972        if Self::can_cast(syntax.kind()) {
16973            Some(Self { syntax })
16974        } else {
16975            None
16976        }
16977    }
16978    #[inline]
16979    fn syntax(&self) -> &SyntaxNode {
16980        &self.syntax
16981    }
16982}
16983impl AstNode for AlterForeignDataWrapper {
16984    #[inline]
16985    fn can_cast(kind: SyntaxKind) -> bool {
16986        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
16987    }
16988    #[inline]
16989    fn cast(syntax: SyntaxNode) -> Option<Self> {
16990        if Self::can_cast(syntax.kind()) {
16991            Some(Self { syntax })
16992        } else {
16993            None
16994        }
16995    }
16996    #[inline]
16997    fn syntax(&self) -> &SyntaxNode {
16998        &self.syntax
16999    }
17000}
17001impl AstNode for AlterForeignTable {
17002    #[inline]
17003    fn can_cast(kind: SyntaxKind) -> bool {
17004        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17005    }
17006    #[inline]
17007    fn cast(syntax: SyntaxNode) -> Option<Self> {
17008        if Self::can_cast(syntax.kind()) {
17009            Some(Self { syntax })
17010        } else {
17011            None
17012        }
17013    }
17014    #[inline]
17015    fn syntax(&self) -> &SyntaxNode {
17016        &self.syntax
17017    }
17018}
17019impl AstNode for AlterFunction {
17020    #[inline]
17021    fn can_cast(kind: SyntaxKind) -> bool {
17022        kind == SyntaxKind::ALTER_FUNCTION
17023    }
17024    #[inline]
17025    fn cast(syntax: SyntaxNode) -> Option<Self> {
17026        if Self::can_cast(syntax.kind()) {
17027            Some(Self { syntax })
17028        } else {
17029            None
17030        }
17031    }
17032    #[inline]
17033    fn syntax(&self) -> &SyntaxNode {
17034        &self.syntax
17035    }
17036}
17037impl AstNode for AlterGroup {
17038    #[inline]
17039    fn can_cast(kind: SyntaxKind) -> bool {
17040        kind == SyntaxKind::ALTER_GROUP
17041    }
17042    #[inline]
17043    fn cast(syntax: SyntaxNode) -> Option<Self> {
17044        if Self::can_cast(syntax.kind()) {
17045            Some(Self { syntax })
17046        } else {
17047            None
17048        }
17049    }
17050    #[inline]
17051    fn syntax(&self) -> &SyntaxNode {
17052        &self.syntax
17053    }
17054}
17055impl AstNode for AlterIndex {
17056    #[inline]
17057    fn can_cast(kind: SyntaxKind) -> bool {
17058        kind == SyntaxKind::ALTER_INDEX
17059    }
17060    #[inline]
17061    fn cast(syntax: SyntaxNode) -> Option<Self> {
17062        if Self::can_cast(syntax.kind()) {
17063            Some(Self { syntax })
17064        } else {
17065            None
17066        }
17067    }
17068    #[inline]
17069    fn syntax(&self) -> &SyntaxNode {
17070        &self.syntax
17071    }
17072}
17073impl AstNode for AlterLanguage {
17074    #[inline]
17075    fn can_cast(kind: SyntaxKind) -> bool {
17076        kind == SyntaxKind::ALTER_LANGUAGE
17077    }
17078    #[inline]
17079    fn cast(syntax: SyntaxNode) -> Option<Self> {
17080        if Self::can_cast(syntax.kind()) {
17081            Some(Self { syntax })
17082        } else {
17083            None
17084        }
17085    }
17086    #[inline]
17087    fn syntax(&self) -> &SyntaxNode {
17088        &self.syntax
17089    }
17090}
17091impl AstNode for AlterLargeObject {
17092    #[inline]
17093    fn can_cast(kind: SyntaxKind) -> bool {
17094        kind == SyntaxKind::ALTER_LARGE_OBJECT
17095    }
17096    #[inline]
17097    fn cast(syntax: SyntaxNode) -> Option<Self> {
17098        if Self::can_cast(syntax.kind()) {
17099            Some(Self { syntax })
17100        } else {
17101            None
17102        }
17103    }
17104    #[inline]
17105    fn syntax(&self) -> &SyntaxNode {
17106        &self.syntax
17107    }
17108}
17109impl AstNode for AlterMaterializedView {
17110    #[inline]
17111    fn can_cast(kind: SyntaxKind) -> bool {
17112        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17113    }
17114    #[inline]
17115    fn cast(syntax: SyntaxNode) -> Option<Self> {
17116        if Self::can_cast(syntax.kind()) {
17117            Some(Self { syntax })
17118        } else {
17119            None
17120        }
17121    }
17122    #[inline]
17123    fn syntax(&self) -> &SyntaxNode {
17124        &self.syntax
17125    }
17126}
17127impl AstNode for AlterOperator {
17128    #[inline]
17129    fn can_cast(kind: SyntaxKind) -> bool {
17130        kind == SyntaxKind::ALTER_OPERATOR
17131    }
17132    #[inline]
17133    fn cast(syntax: SyntaxNode) -> Option<Self> {
17134        if Self::can_cast(syntax.kind()) {
17135            Some(Self { syntax })
17136        } else {
17137            None
17138        }
17139    }
17140    #[inline]
17141    fn syntax(&self) -> &SyntaxNode {
17142        &self.syntax
17143    }
17144}
17145impl AstNode for AlterOperatorClass {
17146    #[inline]
17147    fn can_cast(kind: SyntaxKind) -> bool {
17148        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17149    }
17150    #[inline]
17151    fn cast(syntax: SyntaxNode) -> Option<Self> {
17152        if Self::can_cast(syntax.kind()) {
17153            Some(Self { syntax })
17154        } else {
17155            None
17156        }
17157    }
17158    #[inline]
17159    fn syntax(&self) -> &SyntaxNode {
17160        &self.syntax
17161    }
17162}
17163impl AstNode for AlterOperatorFamily {
17164    #[inline]
17165    fn can_cast(kind: SyntaxKind) -> bool {
17166        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17167    }
17168    #[inline]
17169    fn cast(syntax: SyntaxNode) -> Option<Self> {
17170        if Self::can_cast(syntax.kind()) {
17171            Some(Self { syntax })
17172        } else {
17173            None
17174        }
17175    }
17176    #[inline]
17177    fn syntax(&self) -> &SyntaxNode {
17178        &self.syntax
17179    }
17180}
17181impl AstNode for AlterOption {
17182    #[inline]
17183    fn can_cast(kind: SyntaxKind) -> bool {
17184        kind == SyntaxKind::ALTER_OPTION
17185    }
17186    #[inline]
17187    fn cast(syntax: SyntaxNode) -> Option<Self> {
17188        if Self::can_cast(syntax.kind()) {
17189            Some(Self { syntax })
17190        } else {
17191            None
17192        }
17193    }
17194    #[inline]
17195    fn syntax(&self) -> &SyntaxNode {
17196        &self.syntax
17197    }
17198}
17199impl AstNode for AlterOptionList {
17200    #[inline]
17201    fn can_cast(kind: SyntaxKind) -> bool {
17202        kind == SyntaxKind::ALTER_OPTION_LIST
17203    }
17204    #[inline]
17205    fn cast(syntax: SyntaxNode) -> Option<Self> {
17206        if Self::can_cast(syntax.kind()) {
17207            Some(Self { syntax })
17208        } else {
17209            None
17210        }
17211    }
17212    #[inline]
17213    fn syntax(&self) -> &SyntaxNode {
17214        &self.syntax
17215    }
17216}
17217impl AstNode for AlterPolicy {
17218    #[inline]
17219    fn can_cast(kind: SyntaxKind) -> bool {
17220        kind == SyntaxKind::ALTER_POLICY
17221    }
17222    #[inline]
17223    fn cast(syntax: SyntaxNode) -> Option<Self> {
17224        if Self::can_cast(syntax.kind()) {
17225            Some(Self { syntax })
17226        } else {
17227            None
17228        }
17229    }
17230    #[inline]
17231    fn syntax(&self) -> &SyntaxNode {
17232        &self.syntax
17233    }
17234}
17235impl AstNode for AlterProcedure {
17236    #[inline]
17237    fn can_cast(kind: SyntaxKind) -> bool {
17238        kind == SyntaxKind::ALTER_PROCEDURE
17239    }
17240    #[inline]
17241    fn cast(syntax: SyntaxNode) -> Option<Self> {
17242        if Self::can_cast(syntax.kind()) {
17243            Some(Self { syntax })
17244        } else {
17245            None
17246        }
17247    }
17248    #[inline]
17249    fn syntax(&self) -> &SyntaxNode {
17250        &self.syntax
17251    }
17252}
17253impl AstNode for AlterPublication {
17254    #[inline]
17255    fn can_cast(kind: SyntaxKind) -> bool {
17256        kind == SyntaxKind::ALTER_PUBLICATION
17257    }
17258    #[inline]
17259    fn cast(syntax: SyntaxNode) -> Option<Self> {
17260        if Self::can_cast(syntax.kind()) {
17261            Some(Self { syntax })
17262        } else {
17263            None
17264        }
17265    }
17266    #[inline]
17267    fn syntax(&self) -> &SyntaxNode {
17268        &self.syntax
17269    }
17270}
17271impl AstNode for AlterRole {
17272    #[inline]
17273    fn can_cast(kind: SyntaxKind) -> bool {
17274        kind == SyntaxKind::ALTER_ROLE
17275    }
17276    #[inline]
17277    fn cast(syntax: SyntaxNode) -> Option<Self> {
17278        if Self::can_cast(syntax.kind()) {
17279            Some(Self { syntax })
17280        } else {
17281            None
17282        }
17283    }
17284    #[inline]
17285    fn syntax(&self) -> &SyntaxNode {
17286        &self.syntax
17287    }
17288}
17289impl AstNode for AlterRoutine {
17290    #[inline]
17291    fn can_cast(kind: SyntaxKind) -> bool {
17292        kind == SyntaxKind::ALTER_ROUTINE
17293    }
17294    #[inline]
17295    fn cast(syntax: SyntaxNode) -> Option<Self> {
17296        if Self::can_cast(syntax.kind()) {
17297            Some(Self { syntax })
17298        } else {
17299            None
17300        }
17301    }
17302    #[inline]
17303    fn syntax(&self) -> &SyntaxNode {
17304        &self.syntax
17305    }
17306}
17307impl AstNode for AlterRule {
17308    #[inline]
17309    fn can_cast(kind: SyntaxKind) -> bool {
17310        kind == SyntaxKind::ALTER_RULE
17311    }
17312    #[inline]
17313    fn cast(syntax: SyntaxNode) -> Option<Self> {
17314        if Self::can_cast(syntax.kind()) {
17315            Some(Self { syntax })
17316        } else {
17317            None
17318        }
17319    }
17320    #[inline]
17321    fn syntax(&self) -> &SyntaxNode {
17322        &self.syntax
17323    }
17324}
17325impl AstNode for AlterSchema {
17326    #[inline]
17327    fn can_cast(kind: SyntaxKind) -> bool {
17328        kind == SyntaxKind::ALTER_SCHEMA
17329    }
17330    #[inline]
17331    fn cast(syntax: SyntaxNode) -> Option<Self> {
17332        if Self::can_cast(syntax.kind()) {
17333            Some(Self { syntax })
17334        } else {
17335            None
17336        }
17337    }
17338    #[inline]
17339    fn syntax(&self) -> &SyntaxNode {
17340        &self.syntax
17341    }
17342}
17343impl AstNode for AlterSequence {
17344    #[inline]
17345    fn can_cast(kind: SyntaxKind) -> bool {
17346        kind == SyntaxKind::ALTER_SEQUENCE
17347    }
17348    #[inline]
17349    fn cast(syntax: SyntaxNode) -> Option<Self> {
17350        if Self::can_cast(syntax.kind()) {
17351            Some(Self { syntax })
17352        } else {
17353            None
17354        }
17355    }
17356    #[inline]
17357    fn syntax(&self) -> &SyntaxNode {
17358        &self.syntax
17359    }
17360}
17361impl AstNode for AlterServer {
17362    #[inline]
17363    fn can_cast(kind: SyntaxKind) -> bool {
17364        kind == SyntaxKind::ALTER_SERVER
17365    }
17366    #[inline]
17367    fn cast(syntax: SyntaxNode) -> Option<Self> {
17368        if Self::can_cast(syntax.kind()) {
17369            Some(Self { syntax })
17370        } else {
17371            None
17372        }
17373    }
17374    #[inline]
17375    fn syntax(&self) -> &SyntaxNode {
17376        &self.syntax
17377    }
17378}
17379impl AstNode for AlterSetStatistics {
17380    #[inline]
17381    fn can_cast(kind: SyntaxKind) -> bool {
17382        kind == SyntaxKind::ALTER_SET_STATISTICS
17383    }
17384    #[inline]
17385    fn cast(syntax: SyntaxNode) -> Option<Self> {
17386        if Self::can_cast(syntax.kind()) {
17387            Some(Self { syntax })
17388        } else {
17389            None
17390        }
17391    }
17392    #[inline]
17393    fn syntax(&self) -> &SyntaxNode {
17394        &self.syntax
17395    }
17396}
17397impl AstNode for AlterStatistics {
17398    #[inline]
17399    fn can_cast(kind: SyntaxKind) -> bool {
17400        kind == SyntaxKind::ALTER_STATISTICS
17401    }
17402    #[inline]
17403    fn cast(syntax: SyntaxNode) -> Option<Self> {
17404        if Self::can_cast(syntax.kind()) {
17405            Some(Self { syntax })
17406        } else {
17407            None
17408        }
17409    }
17410    #[inline]
17411    fn syntax(&self) -> &SyntaxNode {
17412        &self.syntax
17413    }
17414}
17415impl AstNode for AlterSubscription {
17416    #[inline]
17417    fn can_cast(kind: SyntaxKind) -> bool {
17418        kind == SyntaxKind::ALTER_SUBSCRIPTION
17419    }
17420    #[inline]
17421    fn cast(syntax: SyntaxNode) -> Option<Self> {
17422        if Self::can_cast(syntax.kind()) {
17423            Some(Self { syntax })
17424        } else {
17425            None
17426        }
17427    }
17428    #[inline]
17429    fn syntax(&self) -> &SyntaxNode {
17430        &self.syntax
17431    }
17432}
17433impl AstNode for AlterSystem {
17434    #[inline]
17435    fn can_cast(kind: SyntaxKind) -> bool {
17436        kind == SyntaxKind::ALTER_SYSTEM
17437    }
17438    #[inline]
17439    fn cast(syntax: SyntaxNode) -> Option<Self> {
17440        if Self::can_cast(syntax.kind()) {
17441            Some(Self { syntax })
17442        } else {
17443            None
17444        }
17445    }
17446    #[inline]
17447    fn syntax(&self) -> &SyntaxNode {
17448        &self.syntax
17449    }
17450}
17451impl AstNode for AlterTable {
17452    #[inline]
17453    fn can_cast(kind: SyntaxKind) -> bool {
17454        kind == SyntaxKind::ALTER_TABLE
17455    }
17456    #[inline]
17457    fn cast(syntax: SyntaxNode) -> Option<Self> {
17458        if Self::can_cast(syntax.kind()) {
17459            Some(Self { syntax })
17460        } else {
17461            None
17462        }
17463    }
17464    #[inline]
17465    fn syntax(&self) -> &SyntaxNode {
17466        &self.syntax
17467    }
17468}
17469impl AstNode for AlterTablespace {
17470    #[inline]
17471    fn can_cast(kind: SyntaxKind) -> bool {
17472        kind == SyntaxKind::ALTER_TABLESPACE
17473    }
17474    #[inline]
17475    fn cast(syntax: SyntaxNode) -> Option<Self> {
17476        if Self::can_cast(syntax.kind()) {
17477            Some(Self { syntax })
17478        } else {
17479            None
17480        }
17481    }
17482    #[inline]
17483    fn syntax(&self) -> &SyntaxNode {
17484        &self.syntax
17485    }
17486}
17487impl AstNode for AlterTextSearchConfiguration {
17488    #[inline]
17489    fn can_cast(kind: SyntaxKind) -> bool {
17490        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17491    }
17492    #[inline]
17493    fn cast(syntax: SyntaxNode) -> Option<Self> {
17494        if Self::can_cast(syntax.kind()) {
17495            Some(Self { syntax })
17496        } else {
17497            None
17498        }
17499    }
17500    #[inline]
17501    fn syntax(&self) -> &SyntaxNode {
17502        &self.syntax
17503    }
17504}
17505impl AstNode for AlterTextSearchDictionary {
17506    #[inline]
17507    fn can_cast(kind: SyntaxKind) -> bool {
17508        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
17509    }
17510    #[inline]
17511    fn cast(syntax: SyntaxNode) -> Option<Self> {
17512        if Self::can_cast(syntax.kind()) {
17513            Some(Self { syntax })
17514        } else {
17515            None
17516        }
17517    }
17518    #[inline]
17519    fn syntax(&self) -> &SyntaxNode {
17520        &self.syntax
17521    }
17522}
17523impl AstNode for AlterTextSearchParser {
17524    #[inline]
17525    fn can_cast(kind: SyntaxKind) -> bool {
17526        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
17527    }
17528    #[inline]
17529    fn cast(syntax: SyntaxNode) -> Option<Self> {
17530        if Self::can_cast(syntax.kind()) {
17531            Some(Self { syntax })
17532        } else {
17533            None
17534        }
17535    }
17536    #[inline]
17537    fn syntax(&self) -> &SyntaxNode {
17538        &self.syntax
17539    }
17540}
17541impl AstNode for AlterTextSearchTemplate {
17542    #[inline]
17543    fn can_cast(kind: SyntaxKind) -> bool {
17544        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
17545    }
17546    #[inline]
17547    fn cast(syntax: SyntaxNode) -> Option<Self> {
17548        if Self::can_cast(syntax.kind()) {
17549            Some(Self { syntax })
17550        } else {
17551            None
17552        }
17553    }
17554    #[inline]
17555    fn syntax(&self) -> &SyntaxNode {
17556        &self.syntax
17557    }
17558}
17559impl AstNode for AlterTrigger {
17560    #[inline]
17561    fn can_cast(kind: SyntaxKind) -> bool {
17562        kind == SyntaxKind::ALTER_TRIGGER
17563    }
17564    #[inline]
17565    fn cast(syntax: SyntaxNode) -> Option<Self> {
17566        if Self::can_cast(syntax.kind()) {
17567            Some(Self { syntax })
17568        } else {
17569            None
17570        }
17571    }
17572    #[inline]
17573    fn syntax(&self) -> &SyntaxNode {
17574        &self.syntax
17575    }
17576}
17577impl AstNode for AlterType {
17578    #[inline]
17579    fn can_cast(kind: SyntaxKind) -> bool {
17580        kind == SyntaxKind::ALTER_TYPE
17581    }
17582    #[inline]
17583    fn cast(syntax: SyntaxNode) -> Option<Self> {
17584        if Self::can_cast(syntax.kind()) {
17585            Some(Self { syntax })
17586        } else {
17587            None
17588        }
17589    }
17590    #[inline]
17591    fn syntax(&self) -> &SyntaxNode {
17592        &self.syntax
17593    }
17594}
17595impl AstNode for AlterUser {
17596    #[inline]
17597    fn can_cast(kind: SyntaxKind) -> bool {
17598        kind == SyntaxKind::ALTER_USER
17599    }
17600    #[inline]
17601    fn cast(syntax: SyntaxNode) -> Option<Self> {
17602        if Self::can_cast(syntax.kind()) {
17603            Some(Self { syntax })
17604        } else {
17605            None
17606        }
17607    }
17608    #[inline]
17609    fn syntax(&self) -> &SyntaxNode {
17610        &self.syntax
17611    }
17612}
17613impl AstNode for AlterUserMapping {
17614    #[inline]
17615    fn can_cast(kind: SyntaxKind) -> bool {
17616        kind == SyntaxKind::ALTER_USER_MAPPING
17617    }
17618    #[inline]
17619    fn cast(syntax: SyntaxNode) -> Option<Self> {
17620        if Self::can_cast(syntax.kind()) {
17621            Some(Self { syntax })
17622        } else {
17623            None
17624        }
17625    }
17626    #[inline]
17627    fn syntax(&self) -> &SyntaxNode {
17628        &self.syntax
17629    }
17630}
17631impl AstNode for AlterView {
17632    #[inline]
17633    fn can_cast(kind: SyntaxKind) -> bool {
17634        kind == SyntaxKind::ALTER_VIEW
17635    }
17636    #[inline]
17637    fn cast(syntax: SyntaxNode) -> Option<Self> {
17638        if Self::can_cast(syntax.kind()) {
17639            Some(Self { syntax })
17640        } else {
17641            None
17642        }
17643    }
17644    #[inline]
17645    fn syntax(&self) -> &SyntaxNode {
17646        &self.syntax
17647    }
17648}
17649impl AstNode for Analyze {
17650    #[inline]
17651    fn can_cast(kind: SyntaxKind) -> bool {
17652        kind == SyntaxKind::ANALYZE
17653    }
17654    #[inline]
17655    fn cast(syntax: SyntaxNode) -> Option<Self> {
17656        if Self::can_cast(syntax.kind()) {
17657            Some(Self { syntax })
17658        } else {
17659            None
17660        }
17661    }
17662    #[inline]
17663    fn syntax(&self) -> &SyntaxNode {
17664        &self.syntax
17665    }
17666}
17667impl AstNode for AnyFn {
17668    #[inline]
17669    fn can_cast(kind: SyntaxKind) -> bool {
17670        kind == SyntaxKind::ANY_FN
17671    }
17672    #[inline]
17673    fn cast(syntax: SyntaxNode) -> Option<Self> {
17674        if Self::can_cast(syntax.kind()) {
17675            Some(Self { syntax })
17676        } else {
17677            None
17678        }
17679    }
17680    #[inline]
17681    fn syntax(&self) -> &SyntaxNode {
17682        &self.syntax
17683    }
17684}
17685impl AstNode for Arg {
17686    #[inline]
17687    fn can_cast(kind: SyntaxKind) -> bool {
17688        kind == SyntaxKind::ARG
17689    }
17690    #[inline]
17691    fn cast(syntax: SyntaxNode) -> Option<Self> {
17692        if Self::can_cast(syntax.kind()) {
17693            Some(Self { syntax })
17694        } else {
17695            None
17696        }
17697    }
17698    #[inline]
17699    fn syntax(&self) -> &SyntaxNode {
17700        &self.syntax
17701    }
17702}
17703impl AstNode for ArgList {
17704    #[inline]
17705    fn can_cast(kind: SyntaxKind) -> bool {
17706        kind == SyntaxKind::ARG_LIST
17707    }
17708    #[inline]
17709    fn cast(syntax: SyntaxNode) -> Option<Self> {
17710        if Self::can_cast(syntax.kind()) {
17711            Some(Self { syntax })
17712        } else {
17713            None
17714        }
17715    }
17716    #[inline]
17717    fn syntax(&self) -> &SyntaxNode {
17718        &self.syntax
17719    }
17720}
17721impl AstNode for ArrayExpr {
17722    #[inline]
17723    fn can_cast(kind: SyntaxKind) -> bool {
17724        kind == SyntaxKind::ARRAY_EXPR
17725    }
17726    #[inline]
17727    fn cast(syntax: SyntaxNode) -> Option<Self> {
17728        if Self::can_cast(syntax.kind()) {
17729            Some(Self { syntax })
17730        } else {
17731            None
17732        }
17733    }
17734    #[inline]
17735    fn syntax(&self) -> &SyntaxNode {
17736        &self.syntax
17737    }
17738}
17739impl AstNode for ArrayType {
17740    #[inline]
17741    fn can_cast(kind: SyntaxKind) -> bool {
17742        kind == SyntaxKind::ARRAY_TYPE
17743    }
17744    #[inline]
17745    fn cast(syntax: SyntaxNode) -> Option<Self> {
17746        if Self::can_cast(syntax.kind()) {
17747            Some(Self { syntax })
17748        } else {
17749            None
17750        }
17751    }
17752    #[inline]
17753    fn syntax(&self) -> &SyntaxNode {
17754        &self.syntax
17755    }
17756}
17757impl AstNode for AsFuncOption {
17758    #[inline]
17759    fn can_cast(kind: SyntaxKind) -> bool {
17760        kind == SyntaxKind::AS_FUNC_OPTION
17761    }
17762    #[inline]
17763    fn cast(syntax: SyntaxNode) -> Option<Self> {
17764        if Self::can_cast(syntax.kind()) {
17765            Some(Self { syntax })
17766        } else {
17767            None
17768        }
17769    }
17770    #[inline]
17771    fn syntax(&self) -> &SyntaxNode {
17772        &self.syntax
17773    }
17774}
17775impl AstNode for AsName {
17776    #[inline]
17777    fn can_cast(kind: SyntaxKind) -> bool {
17778        kind == SyntaxKind::AS_NAME
17779    }
17780    #[inline]
17781    fn cast(syntax: SyntaxNode) -> Option<Self> {
17782        if Self::can_cast(syntax.kind()) {
17783            Some(Self { syntax })
17784        } else {
17785            None
17786        }
17787    }
17788    #[inline]
17789    fn syntax(&self) -> &SyntaxNode {
17790        &self.syntax
17791    }
17792}
17793impl AstNode for AtTimeZone {
17794    #[inline]
17795    fn can_cast(kind: SyntaxKind) -> bool {
17796        kind == SyntaxKind::AT_TIME_ZONE
17797    }
17798    #[inline]
17799    fn cast(syntax: SyntaxNode) -> Option<Self> {
17800        if Self::can_cast(syntax.kind()) {
17801            Some(Self { syntax })
17802        } else {
17803            None
17804        }
17805    }
17806    #[inline]
17807    fn syntax(&self) -> &SyntaxNode {
17808        &self.syntax
17809    }
17810}
17811impl AstNode for AttachPartition {
17812    #[inline]
17813    fn can_cast(kind: SyntaxKind) -> bool {
17814        kind == SyntaxKind::ATTACH_PARTITION
17815    }
17816    #[inline]
17817    fn cast(syntax: SyntaxNode) -> Option<Self> {
17818        if Self::can_cast(syntax.kind()) {
17819            Some(Self { syntax })
17820        } else {
17821            None
17822        }
17823    }
17824    #[inline]
17825    fn syntax(&self) -> &SyntaxNode {
17826        &self.syntax
17827    }
17828}
17829impl AstNode for AttributeList {
17830    #[inline]
17831    fn can_cast(kind: SyntaxKind) -> bool {
17832        kind == SyntaxKind::ATTRIBUTE_LIST
17833    }
17834    #[inline]
17835    fn cast(syntax: SyntaxNode) -> Option<Self> {
17836        if Self::can_cast(syntax.kind()) {
17837            Some(Self { syntax })
17838        } else {
17839            None
17840        }
17841    }
17842    #[inline]
17843    fn syntax(&self) -> &SyntaxNode {
17844        &self.syntax
17845    }
17846}
17847impl AstNode for AttributeOption {
17848    #[inline]
17849    fn can_cast(kind: SyntaxKind) -> bool {
17850        kind == SyntaxKind::ATTRIBUTE_OPTION
17851    }
17852    #[inline]
17853    fn cast(syntax: SyntaxNode) -> Option<Self> {
17854        if Self::can_cast(syntax.kind()) {
17855            Some(Self { syntax })
17856        } else {
17857            None
17858        }
17859    }
17860    #[inline]
17861    fn syntax(&self) -> &SyntaxNode {
17862        &self.syntax
17863    }
17864}
17865impl AstNode for AttributeValue {
17866    #[inline]
17867    fn can_cast(kind: SyntaxKind) -> bool {
17868        kind == SyntaxKind::ATTRIBUTE_VALUE
17869    }
17870    #[inline]
17871    fn cast(syntax: SyntaxNode) -> Option<Self> {
17872        if Self::can_cast(syntax.kind()) {
17873            Some(Self { syntax })
17874        } else {
17875            None
17876        }
17877    }
17878    #[inline]
17879    fn syntax(&self) -> &SyntaxNode {
17880        &self.syntax
17881    }
17882}
17883impl AstNode for Begin {
17884    #[inline]
17885    fn can_cast(kind: SyntaxKind) -> bool {
17886        kind == SyntaxKind::BEGIN
17887    }
17888    #[inline]
17889    fn cast(syntax: SyntaxNode) -> Option<Self> {
17890        if Self::can_cast(syntax.kind()) {
17891            Some(Self { syntax })
17892        } else {
17893            None
17894        }
17895    }
17896    #[inline]
17897    fn syntax(&self) -> &SyntaxNode {
17898        &self.syntax
17899    }
17900}
17901impl AstNode for BeginFuncOption {
17902    #[inline]
17903    fn can_cast(kind: SyntaxKind) -> bool {
17904        kind == SyntaxKind::BEGIN_FUNC_OPTION
17905    }
17906    #[inline]
17907    fn cast(syntax: SyntaxNode) -> Option<Self> {
17908        if Self::can_cast(syntax.kind()) {
17909            Some(Self { syntax })
17910        } else {
17911            None
17912        }
17913    }
17914    #[inline]
17915    fn syntax(&self) -> &SyntaxNode {
17916        &self.syntax
17917    }
17918}
17919impl AstNode for BetweenExpr {
17920    #[inline]
17921    fn can_cast(kind: SyntaxKind) -> bool {
17922        kind == SyntaxKind::BETWEEN_EXPR
17923    }
17924    #[inline]
17925    fn cast(syntax: SyntaxNode) -> Option<Self> {
17926        if Self::can_cast(syntax.kind()) {
17927            Some(Self { syntax })
17928        } else {
17929            None
17930        }
17931    }
17932    #[inline]
17933    fn syntax(&self) -> &SyntaxNode {
17934        &self.syntax
17935    }
17936}
17937impl AstNode for BinExpr {
17938    #[inline]
17939    fn can_cast(kind: SyntaxKind) -> bool {
17940        kind == SyntaxKind::BIN_EXPR
17941    }
17942    #[inline]
17943    fn cast(syntax: SyntaxNode) -> Option<Self> {
17944        if Self::can_cast(syntax.kind()) {
17945            Some(Self { syntax })
17946        } else {
17947            None
17948        }
17949    }
17950    #[inline]
17951    fn syntax(&self) -> &SyntaxNode {
17952        &self.syntax
17953    }
17954}
17955impl AstNode for BitType {
17956    #[inline]
17957    fn can_cast(kind: SyntaxKind) -> bool {
17958        kind == SyntaxKind::BIT_TYPE
17959    }
17960    #[inline]
17961    fn cast(syntax: SyntaxNode) -> Option<Self> {
17962        if Self::can_cast(syntax.kind()) {
17963            Some(Self { syntax })
17964        } else {
17965            None
17966        }
17967    }
17968    #[inline]
17969    fn syntax(&self) -> &SyntaxNode {
17970        &self.syntax
17971    }
17972}
17973impl AstNode for Call {
17974    #[inline]
17975    fn can_cast(kind: SyntaxKind) -> bool {
17976        kind == SyntaxKind::CALL
17977    }
17978    #[inline]
17979    fn cast(syntax: SyntaxNode) -> Option<Self> {
17980        if Self::can_cast(syntax.kind()) {
17981            Some(Self { syntax })
17982        } else {
17983            None
17984        }
17985    }
17986    #[inline]
17987    fn syntax(&self) -> &SyntaxNode {
17988        &self.syntax
17989    }
17990}
17991impl AstNode for CallExpr {
17992    #[inline]
17993    fn can_cast(kind: SyntaxKind) -> bool {
17994        kind == SyntaxKind::CALL_EXPR
17995    }
17996    #[inline]
17997    fn cast(syntax: SyntaxNode) -> Option<Self> {
17998        if Self::can_cast(syntax.kind()) {
17999            Some(Self { syntax })
18000        } else {
18001            None
18002        }
18003    }
18004    #[inline]
18005    fn syntax(&self) -> &SyntaxNode {
18006        &self.syntax
18007    }
18008}
18009impl AstNode for Cascade {
18010    #[inline]
18011    fn can_cast(kind: SyntaxKind) -> bool {
18012        kind == SyntaxKind::CASCADE
18013    }
18014    #[inline]
18015    fn cast(syntax: SyntaxNode) -> Option<Self> {
18016        if Self::can_cast(syntax.kind()) {
18017            Some(Self { syntax })
18018        } else {
18019            None
18020        }
18021    }
18022    #[inline]
18023    fn syntax(&self) -> &SyntaxNode {
18024        &self.syntax
18025    }
18026}
18027impl AstNode for CaseExpr {
18028    #[inline]
18029    fn can_cast(kind: SyntaxKind) -> bool {
18030        kind == SyntaxKind::CASE_EXPR
18031    }
18032    #[inline]
18033    fn cast(syntax: SyntaxNode) -> Option<Self> {
18034        if Self::can_cast(syntax.kind()) {
18035            Some(Self { syntax })
18036        } else {
18037            None
18038        }
18039    }
18040    #[inline]
18041    fn syntax(&self) -> &SyntaxNode {
18042        &self.syntax
18043    }
18044}
18045impl AstNode for CastExpr {
18046    #[inline]
18047    fn can_cast(kind: SyntaxKind) -> bool {
18048        kind == SyntaxKind::CAST_EXPR
18049    }
18050    #[inline]
18051    fn cast(syntax: SyntaxNode) -> Option<Self> {
18052        if Self::can_cast(syntax.kind()) {
18053            Some(Self { syntax })
18054        } else {
18055            None
18056        }
18057    }
18058    #[inline]
18059    fn syntax(&self) -> &SyntaxNode {
18060        &self.syntax
18061    }
18062}
18063impl AstNode for CastSig {
18064    #[inline]
18065    fn can_cast(kind: SyntaxKind) -> bool {
18066        kind == SyntaxKind::CAST_SIG
18067    }
18068    #[inline]
18069    fn cast(syntax: SyntaxNode) -> Option<Self> {
18070        if Self::can_cast(syntax.kind()) {
18071            Some(Self { syntax })
18072        } else {
18073            None
18074        }
18075    }
18076    #[inline]
18077    fn syntax(&self) -> &SyntaxNode {
18078        &self.syntax
18079    }
18080}
18081impl AstNode for CharType {
18082    #[inline]
18083    fn can_cast(kind: SyntaxKind) -> bool {
18084        kind == SyntaxKind::CHAR_TYPE
18085    }
18086    #[inline]
18087    fn cast(syntax: SyntaxNode) -> Option<Self> {
18088        if Self::can_cast(syntax.kind()) {
18089            Some(Self { syntax })
18090        } else {
18091            None
18092        }
18093    }
18094    #[inline]
18095    fn syntax(&self) -> &SyntaxNode {
18096        &self.syntax
18097    }
18098}
18099impl AstNode for CheckConstraint {
18100    #[inline]
18101    fn can_cast(kind: SyntaxKind) -> bool {
18102        kind == SyntaxKind::CHECK_CONSTRAINT
18103    }
18104    #[inline]
18105    fn cast(syntax: SyntaxNode) -> Option<Self> {
18106        if Self::can_cast(syntax.kind()) {
18107            Some(Self { syntax })
18108        } else {
18109            None
18110        }
18111    }
18112    #[inline]
18113    fn syntax(&self) -> &SyntaxNode {
18114        &self.syntax
18115    }
18116}
18117impl AstNode for Checkpoint {
18118    #[inline]
18119    fn can_cast(kind: SyntaxKind) -> bool {
18120        kind == SyntaxKind::CHECKPOINT
18121    }
18122    #[inline]
18123    fn cast(syntax: SyntaxNode) -> Option<Self> {
18124        if Self::can_cast(syntax.kind()) {
18125            Some(Self { syntax })
18126        } else {
18127            None
18128        }
18129    }
18130    #[inline]
18131    fn syntax(&self) -> &SyntaxNode {
18132        &self.syntax
18133    }
18134}
18135impl AstNode for Close {
18136    #[inline]
18137    fn can_cast(kind: SyntaxKind) -> bool {
18138        kind == SyntaxKind::CLOSE
18139    }
18140    #[inline]
18141    fn cast(syntax: SyntaxNode) -> Option<Self> {
18142        if Self::can_cast(syntax.kind()) {
18143            Some(Self { syntax })
18144        } else {
18145            None
18146        }
18147    }
18148    #[inline]
18149    fn syntax(&self) -> &SyntaxNode {
18150        &self.syntax
18151    }
18152}
18153impl AstNode for Cluster {
18154    #[inline]
18155    fn can_cast(kind: SyntaxKind) -> bool {
18156        kind == SyntaxKind::CLUSTER
18157    }
18158    #[inline]
18159    fn cast(syntax: SyntaxNode) -> Option<Self> {
18160        if Self::can_cast(syntax.kind()) {
18161            Some(Self { syntax })
18162        } else {
18163            None
18164        }
18165    }
18166    #[inline]
18167    fn syntax(&self) -> &SyntaxNode {
18168        &self.syntax
18169    }
18170}
18171impl AstNode for ClusterOn {
18172    #[inline]
18173    fn can_cast(kind: SyntaxKind) -> bool {
18174        kind == SyntaxKind::CLUSTER_ON
18175    }
18176    #[inline]
18177    fn cast(syntax: SyntaxNode) -> Option<Self> {
18178        if Self::can_cast(syntax.kind()) {
18179            Some(Self { syntax })
18180        } else {
18181            None
18182        }
18183    }
18184    #[inline]
18185    fn syntax(&self) -> &SyntaxNode {
18186        &self.syntax
18187    }
18188}
18189impl AstNode for Collate {
18190    #[inline]
18191    fn can_cast(kind: SyntaxKind) -> bool {
18192        kind == SyntaxKind::COLLATE
18193    }
18194    #[inline]
18195    fn cast(syntax: SyntaxNode) -> Option<Self> {
18196        if Self::can_cast(syntax.kind()) {
18197            Some(Self { syntax })
18198        } else {
18199            None
18200        }
18201    }
18202    #[inline]
18203    fn syntax(&self) -> &SyntaxNode {
18204        &self.syntax
18205    }
18206}
18207impl AstNode for ColonColon {
18208    #[inline]
18209    fn can_cast(kind: SyntaxKind) -> bool {
18210        kind == SyntaxKind::COLON_COLON
18211    }
18212    #[inline]
18213    fn cast(syntax: SyntaxNode) -> Option<Self> {
18214        if Self::can_cast(syntax.kind()) {
18215            Some(Self { syntax })
18216        } else {
18217            None
18218        }
18219    }
18220    #[inline]
18221    fn syntax(&self) -> &SyntaxNode {
18222        &self.syntax
18223    }
18224}
18225impl AstNode for ColonEq {
18226    #[inline]
18227    fn can_cast(kind: SyntaxKind) -> bool {
18228        kind == SyntaxKind::COLON_EQ
18229    }
18230    #[inline]
18231    fn cast(syntax: SyntaxNode) -> Option<Self> {
18232        if Self::can_cast(syntax.kind()) {
18233            Some(Self { syntax })
18234        } else {
18235            None
18236        }
18237    }
18238    #[inline]
18239    fn syntax(&self) -> &SyntaxNode {
18240        &self.syntax
18241    }
18242}
18243impl AstNode for Column {
18244    #[inline]
18245    fn can_cast(kind: SyntaxKind) -> bool {
18246        kind == SyntaxKind::COLUMN
18247    }
18248    #[inline]
18249    fn cast(syntax: SyntaxNode) -> Option<Self> {
18250        if Self::can_cast(syntax.kind()) {
18251            Some(Self { syntax })
18252        } else {
18253            None
18254        }
18255    }
18256    #[inline]
18257    fn syntax(&self) -> &SyntaxNode {
18258        &self.syntax
18259    }
18260}
18261impl AstNode for ColumnList {
18262    #[inline]
18263    fn can_cast(kind: SyntaxKind) -> bool {
18264        kind == SyntaxKind::COLUMN_LIST
18265    }
18266    #[inline]
18267    fn cast(syntax: SyntaxNode) -> Option<Self> {
18268        if Self::can_cast(syntax.kind()) {
18269            Some(Self { syntax })
18270        } else {
18271            None
18272        }
18273    }
18274    #[inline]
18275    fn syntax(&self) -> &SyntaxNode {
18276        &self.syntax
18277    }
18278}
18279impl AstNode for CommentOn {
18280    #[inline]
18281    fn can_cast(kind: SyntaxKind) -> bool {
18282        kind == SyntaxKind::COMMENT_ON
18283    }
18284    #[inline]
18285    fn cast(syntax: SyntaxNode) -> Option<Self> {
18286        if Self::can_cast(syntax.kind()) {
18287            Some(Self { syntax })
18288        } else {
18289            None
18290        }
18291    }
18292    #[inline]
18293    fn syntax(&self) -> &SyntaxNode {
18294        &self.syntax
18295    }
18296}
18297impl AstNode for Commit {
18298    #[inline]
18299    fn can_cast(kind: SyntaxKind) -> bool {
18300        kind == SyntaxKind::COMMIT
18301    }
18302    #[inline]
18303    fn cast(syntax: SyntaxNode) -> Option<Self> {
18304        if Self::can_cast(syntax.kind()) {
18305            Some(Self { syntax })
18306        } else {
18307            None
18308        }
18309    }
18310    #[inline]
18311    fn syntax(&self) -> &SyntaxNode {
18312        &self.syntax
18313    }
18314}
18315impl AstNode for CompoundSelect {
18316    #[inline]
18317    fn can_cast(kind: SyntaxKind) -> bool {
18318        kind == SyntaxKind::COMPOUND_SELECT
18319    }
18320    #[inline]
18321    fn cast(syntax: SyntaxNode) -> Option<Self> {
18322        if Self::can_cast(syntax.kind()) {
18323            Some(Self { syntax })
18324        } else {
18325            None
18326        }
18327    }
18328    #[inline]
18329    fn syntax(&self) -> &SyntaxNode {
18330        &self.syntax
18331    }
18332}
18333impl AstNode for CompressionMethod {
18334    #[inline]
18335    fn can_cast(kind: SyntaxKind) -> bool {
18336        kind == SyntaxKind::COMPRESSION_METHOD
18337    }
18338    #[inline]
18339    fn cast(syntax: SyntaxNode) -> Option<Self> {
18340        if Self::can_cast(syntax.kind()) {
18341            Some(Self { syntax })
18342        } else {
18343            None
18344        }
18345    }
18346    #[inline]
18347    fn syntax(&self) -> &SyntaxNode {
18348        &self.syntax
18349    }
18350}
18351impl AstNode for ConflictDoNothing {
18352    #[inline]
18353    fn can_cast(kind: SyntaxKind) -> bool {
18354        kind == SyntaxKind::CONFLICT_DO_NOTHING
18355    }
18356    #[inline]
18357    fn cast(syntax: SyntaxNode) -> Option<Self> {
18358        if Self::can_cast(syntax.kind()) {
18359            Some(Self { syntax })
18360        } else {
18361            None
18362        }
18363    }
18364    #[inline]
18365    fn syntax(&self) -> &SyntaxNode {
18366        &self.syntax
18367    }
18368}
18369impl AstNode for ConflictDoUpdateSet {
18370    #[inline]
18371    fn can_cast(kind: SyntaxKind) -> bool {
18372        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18373    }
18374    #[inline]
18375    fn cast(syntax: SyntaxNode) -> Option<Self> {
18376        if Self::can_cast(syntax.kind()) {
18377            Some(Self { syntax })
18378        } else {
18379            None
18380        }
18381    }
18382    #[inline]
18383    fn syntax(&self) -> &SyntaxNode {
18384        &self.syntax
18385    }
18386}
18387impl AstNode for ConflictIndexItem {
18388    #[inline]
18389    fn can_cast(kind: SyntaxKind) -> bool {
18390        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18391    }
18392    #[inline]
18393    fn cast(syntax: SyntaxNode) -> Option<Self> {
18394        if Self::can_cast(syntax.kind()) {
18395            Some(Self { syntax })
18396        } else {
18397            None
18398        }
18399    }
18400    #[inline]
18401    fn syntax(&self) -> &SyntaxNode {
18402        &self.syntax
18403    }
18404}
18405impl AstNode for ConflictIndexItemList {
18406    #[inline]
18407    fn can_cast(kind: SyntaxKind) -> bool {
18408        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18409    }
18410    #[inline]
18411    fn cast(syntax: SyntaxNode) -> Option<Self> {
18412        if Self::can_cast(syntax.kind()) {
18413            Some(Self { syntax })
18414        } else {
18415            None
18416        }
18417    }
18418    #[inline]
18419    fn syntax(&self) -> &SyntaxNode {
18420        &self.syntax
18421    }
18422}
18423impl AstNode for ConflictOnConstraint {
18424    #[inline]
18425    fn can_cast(kind: SyntaxKind) -> bool {
18426        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18427    }
18428    #[inline]
18429    fn cast(syntax: SyntaxNode) -> Option<Self> {
18430        if Self::can_cast(syntax.kind()) {
18431            Some(Self { syntax })
18432        } else {
18433            None
18434        }
18435    }
18436    #[inline]
18437    fn syntax(&self) -> &SyntaxNode {
18438        &self.syntax
18439    }
18440}
18441impl AstNode for ConflictOnIndex {
18442    #[inline]
18443    fn can_cast(kind: SyntaxKind) -> bool {
18444        kind == SyntaxKind::CONFLICT_ON_INDEX
18445    }
18446    #[inline]
18447    fn cast(syntax: SyntaxNode) -> Option<Self> {
18448        if Self::can_cast(syntax.kind()) {
18449            Some(Self { syntax })
18450        } else {
18451            None
18452        }
18453    }
18454    #[inline]
18455    fn syntax(&self) -> &SyntaxNode {
18456        &self.syntax
18457    }
18458}
18459impl AstNode for ConstraintExclusion {
18460    #[inline]
18461    fn can_cast(kind: SyntaxKind) -> bool {
18462        kind == SyntaxKind::CONSTRAINT_EXCLUSION
18463    }
18464    #[inline]
18465    fn cast(syntax: SyntaxNode) -> Option<Self> {
18466        if Self::can_cast(syntax.kind()) {
18467            Some(Self { syntax })
18468        } else {
18469            None
18470        }
18471    }
18472    #[inline]
18473    fn syntax(&self) -> &SyntaxNode {
18474        &self.syntax
18475    }
18476}
18477impl AstNode for ConstraintExclusionList {
18478    #[inline]
18479    fn can_cast(kind: SyntaxKind) -> bool {
18480        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
18481    }
18482    #[inline]
18483    fn cast(syntax: SyntaxNode) -> Option<Self> {
18484        if Self::can_cast(syntax.kind()) {
18485            Some(Self { syntax })
18486        } else {
18487            None
18488        }
18489    }
18490    #[inline]
18491    fn syntax(&self) -> &SyntaxNode {
18492        &self.syntax
18493    }
18494}
18495impl AstNode for ConstraintIncludeClause {
18496    #[inline]
18497    fn can_cast(kind: SyntaxKind) -> bool {
18498        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
18499    }
18500    #[inline]
18501    fn cast(syntax: SyntaxNode) -> Option<Self> {
18502        if Self::can_cast(syntax.kind()) {
18503            Some(Self { syntax })
18504        } else {
18505            None
18506        }
18507    }
18508    #[inline]
18509    fn syntax(&self) -> &SyntaxNode {
18510        &self.syntax
18511    }
18512}
18513impl AstNode for ConstraintIndexMethod {
18514    #[inline]
18515    fn can_cast(kind: SyntaxKind) -> bool {
18516        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
18517    }
18518    #[inline]
18519    fn cast(syntax: SyntaxNode) -> Option<Self> {
18520        if Self::can_cast(syntax.kind()) {
18521            Some(Self { syntax })
18522        } else {
18523            None
18524        }
18525    }
18526    #[inline]
18527    fn syntax(&self) -> &SyntaxNode {
18528        &self.syntax
18529    }
18530}
18531impl AstNode for ConstraintIndexTablespace {
18532    #[inline]
18533    fn can_cast(kind: SyntaxKind) -> bool {
18534        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
18535    }
18536    #[inline]
18537    fn cast(syntax: SyntaxNode) -> Option<Self> {
18538        if Self::can_cast(syntax.kind()) {
18539            Some(Self { syntax })
18540        } else {
18541            None
18542        }
18543    }
18544    #[inline]
18545    fn syntax(&self) -> &SyntaxNode {
18546        &self.syntax
18547    }
18548}
18549impl AstNode for Copy {
18550    #[inline]
18551    fn can_cast(kind: SyntaxKind) -> bool {
18552        kind == SyntaxKind::COPY
18553    }
18554    #[inline]
18555    fn cast(syntax: SyntaxNode) -> Option<Self> {
18556        if Self::can_cast(syntax.kind()) {
18557            Some(Self { syntax })
18558        } else {
18559            None
18560        }
18561    }
18562    #[inline]
18563    fn syntax(&self) -> &SyntaxNode {
18564        &self.syntax
18565    }
18566}
18567impl AstNode for CostFuncOption {
18568    #[inline]
18569    fn can_cast(kind: SyntaxKind) -> bool {
18570        kind == SyntaxKind::COST_FUNC_OPTION
18571    }
18572    #[inline]
18573    fn cast(syntax: SyntaxNode) -> Option<Self> {
18574        if Self::can_cast(syntax.kind()) {
18575            Some(Self { syntax })
18576        } else {
18577            None
18578        }
18579    }
18580    #[inline]
18581    fn syntax(&self) -> &SyntaxNode {
18582        &self.syntax
18583    }
18584}
18585impl AstNode for CreateAccessMethod {
18586    #[inline]
18587    fn can_cast(kind: SyntaxKind) -> bool {
18588        kind == SyntaxKind::CREATE_ACCESS_METHOD
18589    }
18590    #[inline]
18591    fn cast(syntax: SyntaxNode) -> Option<Self> {
18592        if Self::can_cast(syntax.kind()) {
18593            Some(Self { syntax })
18594        } else {
18595            None
18596        }
18597    }
18598    #[inline]
18599    fn syntax(&self) -> &SyntaxNode {
18600        &self.syntax
18601    }
18602}
18603impl AstNode for CreateAggregate {
18604    #[inline]
18605    fn can_cast(kind: SyntaxKind) -> bool {
18606        kind == SyntaxKind::CREATE_AGGREGATE
18607    }
18608    #[inline]
18609    fn cast(syntax: SyntaxNode) -> Option<Self> {
18610        if Self::can_cast(syntax.kind()) {
18611            Some(Self { syntax })
18612        } else {
18613            None
18614        }
18615    }
18616    #[inline]
18617    fn syntax(&self) -> &SyntaxNode {
18618        &self.syntax
18619    }
18620}
18621impl AstNode for CreateCast {
18622    #[inline]
18623    fn can_cast(kind: SyntaxKind) -> bool {
18624        kind == SyntaxKind::CREATE_CAST
18625    }
18626    #[inline]
18627    fn cast(syntax: SyntaxNode) -> Option<Self> {
18628        if Self::can_cast(syntax.kind()) {
18629            Some(Self { syntax })
18630        } else {
18631            None
18632        }
18633    }
18634    #[inline]
18635    fn syntax(&self) -> &SyntaxNode {
18636        &self.syntax
18637    }
18638}
18639impl AstNode for CreateCollation {
18640    #[inline]
18641    fn can_cast(kind: SyntaxKind) -> bool {
18642        kind == SyntaxKind::CREATE_COLLATION
18643    }
18644    #[inline]
18645    fn cast(syntax: SyntaxNode) -> Option<Self> {
18646        if Self::can_cast(syntax.kind()) {
18647            Some(Self { syntax })
18648        } else {
18649            None
18650        }
18651    }
18652    #[inline]
18653    fn syntax(&self) -> &SyntaxNode {
18654        &self.syntax
18655    }
18656}
18657impl AstNode for CreateConversion {
18658    #[inline]
18659    fn can_cast(kind: SyntaxKind) -> bool {
18660        kind == SyntaxKind::CREATE_CONVERSION
18661    }
18662    #[inline]
18663    fn cast(syntax: SyntaxNode) -> Option<Self> {
18664        if Self::can_cast(syntax.kind()) {
18665            Some(Self { syntax })
18666        } else {
18667            None
18668        }
18669    }
18670    #[inline]
18671    fn syntax(&self) -> &SyntaxNode {
18672        &self.syntax
18673    }
18674}
18675impl AstNode for CreateDatabase {
18676    #[inline]
18677    fn can_cast(kind: SyntaxKind) -> bool {
18678        kind == SyntaxKind::CREATE_DATABASE
18679    }
18680    #[inline]
18681    fn cast(syntax: SyntaxNode) -> Option<Self> {
18682        if Self::can_cast(syntax.kind()) {
18683            Some(Self { syntax })
18684        } else {
18685            None
18686        }
18687    }
18688    #[inline]
18689    fn syntax(&self) -> &SyntaxNode {
18690        &self.syntax
18691    }
18692}
18693impl AstNode for CreateDatabaseOption {
18694    #[inline]
18695    fn can_cast(kind: SyntaxKind) -> bool {
18696        kind == SyntaxKind::CREATE_DATABASE_OPTION
18697    }
18698    #[inline]
18699    fn cast(syntax: SyntaxNode) -> Option<Self> {
18700        if Self::can_cast(syntax.kind()) {
18701            Some(Self { syntax })
18702        } else {
18703            None
18704        }
18705    }
18706    #[inline]
18707    fn syntax(&self) -> &SyntaxNode {
18708        &self.syntax
18709    }
18710}
18711impl AstNode for CreateDatabaseOptionList {
18712    #[inline]
18713    fn can_cast(kind: SyntaxKind) -> bool {
18714        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
18715    }
18716    #[inline]
18717    fn cast(syntax: SyntaxNode) -> Option<Self> {
18718        if Self::can_cast(syntax.kind()) {
18719            Some(Self { syntax })
18720        } else {
18721            None
18722        }
18723    }
18724    #[inline]
18725    fn syntax(&self) -> &SyntaxNode {
18726        &self.syntax
18727    }
18728}
18729impl AstNode for CreateDomain {
18730    #[inline]
18731    fn can_cast(kind: SyntaxKind) -> bool {
18732        kind == SyntaxKind::CREATE_DOMAIN
18733    }
18734    #[inline]
18735    fn cast(syntax: SyntaxNode) -> Option<Self> {
18736        if Self::can_cast(syntax.kind()) {
18737            Some(Self { syntax })
18738        } else {
18739            None
18740        }
18741    }
18742    #[inline]
18743    fn syntax(&self) -> &SyntaxNode {
18744        &self.syntax
18745    }
18746}
18747impl AstNode for CreateEventTrigger {
18748    #[inline]
18749    fn can_cast(kind: SyntaxKind) -> bool {
18750        kind == SyntaxKind::CREATE_EVENT_TRIGGER
18751    }
18752    #[inline]
18753    fn cast(syntax: SyntaxNode) -> Option<Self> {
18754        if Self::can_cast(syntax.kind()) {
18755            Some(Self { syntax })
18756        } else {
18757            None
18758        }
18759    }
18760    #[inline]
18761    fn syntax(&self) -> &SyntaxNode {
18762        &self.syntax
18763    }
18764}
18765impl AstNode for CreateExtension {
18766    #[inline]
18767    fn can_cast(kind: SyntaxKind) -> bool {
18768        kind == SyntaxKind::CREATE_EXTENSION
18769    }
18770    #[inline]
18771    fn cast(syntax: SyntaxNode) -> Option<Self> {
18772        if Self::can_cast(syntax.kind()) {
18773            Some(Self { syntax })
18774        } else {
18775            None
18776        }
18777    }
18778    #[inline]
18779    fn syntax(&self) -> &SyntaxNode {
18780        &self.syntax
18781    }
18782}
18783impl AstNode for CreateForeignDataWrapper {
18784    #[inline]
18785    fn can_cast(kind: SyntaxKind) -> bool {
18786        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
18787    }
18788    #[inline]
18789    fn cast(syntax: SyntaxNode) -> Option<Self> {
18790        if Self::can_cast(syntax.kind()) {
18791            Some(Self { syntax })
18792        } else {
18793            None
18794        }
18795    }
18796    #[inline]
18797    fn syntax(&self) -> &SyntaxNode {
18798        &self.syntax
18799    }
18800}
18801impl AstNode for CreateForeignTable {
18802    #[inline]
18803    fn can_cast(kind: SyntaxKind) -> bool {
18804        kind == SyntaxKind::CREATE_FOREIGN_TABLE
18805    }
18806    #[inline]
18807    fn cast(syntax: SyntaxNode) -> Option<Self> {
18808        if Self::can_cast(syntax.kind()) {
18809            Some(Self { syntax })
18810        } else {
18811            None
18812        }
18813    }
18814    #[inline]
18815    fn syntax(&self) -> &SyntaxNode {
18816        &self.syntax
18817    }
18818}
18819impl AstNode for CreateFunction {
18820    #[inline]
18821    fn can_cast(kind: SyntaxKind) -> bool {
18822        kind == SyntaxKind::CREATE_FUNCTION
18823    }
18824    #[inline]
18825    fn cast(syntax: SyntaxNode) -> Option<Self> {
18826        if Self::can_cast(syntax.kind()) {
18827            Some(Self { syntax })
18828        } else {
18829            None
18830        }
18831    }
18832    #[inline]
18833    fn syntax(&self) -> &SyntaxNode {
18834        &self.syntax
18835    }
18836}
18837impl AstNode for CreateGroup {
18838    #[inline]
18839    fn can_cast(kind: SyntaxKind) -> bool {
18840        kind == SyntaxKind::CREATE_GROUP
18841    }
18842    #[inline]
18843    fn cast(syntax: SyntaxNode) -> Option<Self> {
18844        if Self::can_cast(syntax.kind()) {
18845            Some(Self { syntax })
18846        } else {
18847            None
18848        }
18849    }
18850    #[inline]
18851    fn syntax(&self) -> &SyntaxNode {
18852        &self.syntax
18853    }
18854}
18855impl AstNode for CreateIndex {
18856    #[inline]
18857    fn can_cast(kind: SyntaxKind) -> bool {
18858        kind == SyntaxKind::CREATE_INDEX
18859    }
18860    #[inline]
18861    fn cast(syntax: SyntaxNode) -> Option<Self> {
18862        if Self::can_cast(syntax.kind()) {
18863            Some(Self { syntax })
18864        } else {
18865            None
18866        }
18867    }
18868    #[inline]
18869    fn syntax(&self) -> &SyntaxNode {
18870        &self.syntax
18871    }
18872}
18873impl AstNode for CreateLanguage {
18874    #[inline]
18875    fn can_cast(kind: SyntaxKind) -> bool {
18876        kind == SyntaxKind::CREATE_LANGUAGE
18877    }
18878    #[inline]
18879    fn cast(syntax: SyntaxNode) -> Option<Self> {
18880        if Self::can_cast(syntax.kind()) {
18881            Some(Self { syntax })
18882        } else {
18883            None
18884        }
18885    }
18886    #[inline]
18887    fn syntax(&self) -> &SyntaxNode {
18888        &self.syntax
18889    }
18890}
18891impl AstNode for CreateMaterializedView {
18892    #[inline]
18893    fn can_cast(kind: SyntaxKind) -> bool {
18894        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
18895    }
18896    #[inline]
18897    fn cast(syntax: SyntaxNode) -> Option<Self> {
18898        if Self::can_cast(syntax.kind()) {
18899            Some(Self { syntax })
18900        } else {
18901            None
18902        }
18903    }
18904    #[inline]
18905    fn syntax(&self) -> &SyntaxNode {
18906        &self.syntax
18907    }
18908}
18909impl AstNode for CreateOperator {
18910    #[inline]
18911    fn can_cast(kind: SyntaxKind) -> bool {
18912        kind == SyntaxKind::CREATE_OPERATOR
18913    }
18914    #[inline]
18915    fn cast(syntax: SyntaxNode) -> Option<Self> {
18916        if Self::can_cast(syntax.kind()) {
18917            Some(Self { syntax })
18918        } else {
18919            None
18920        }
18921    }
18922    #[inline]
18923    fn syntax(&self) -> &SyntaxNode {
18924        &self.syntax
18925    }
18926}
18927impl AstNode for CreateOperatorClass {
18928    #[inline]
18929    fn can_cast(kind: SyntaxKind) -> bool {
18930        kind == SyntaxKind::CREATE_OPERATOR_CLASS
18931    }
18932    #[inline]
18933    fn cast(syntax: SyntaxNode) -> Option<Self> {
18934        if Self::can_cast(syntax.kind()) {
18935            Some(Self { syntax })
18936        } else {
18937            None
18938        }
18939    }
18940    #[inline]
18941    fn syntax(&self) -> &SyntaxNode {
18942        &self.syntax
18943    }
18944}
18945impl AstNode for CreateOperatorFamily {
18946    #[inline]
18947    fn can_cast(kind: SyntaxKind) -> bool {
18948        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
18949    }
18950    #[inline]
18951    fn cast(syntax: SyntaxNode) -> Option<Self> {
18952        if Self::can_cast(syntax.kind()) {
18953            Some(Self { syntax })
18954        } else {
18955            None
18956        }
18957    }
18958    #[inline]
18959    fn syntax(&self) -> &SyntaxNode {
18960        &self.syntax
18961    }
18962}
18963impl AstNode for CreatePolicy {
18964    #[inline]
18965    fn can_cast(kind: SyntaxKind) -> bool {
18966        kind == SyntaxKind::CREATE_POLICY
18967    }
18968    #[inline]
18969    fn cast(syntax: SyntaxNode) -> Option<Self> {
18970        if Self::can_cast(syntax.kind()) {
18971            Some(Self { syntax })
18972        } else {
18973            None
18974        }
18975    }
18976    #[inline]
18977    fn syntax(&self) -> &SyntaxNode {
18978        &self.syntax
18979    }
18980}
18981impl AstNode for CreateProcedure {
18982    #[inline]
18983    fn can_cast(kind: SyntaxKind) -> bool {
18984        kind == SyntaxKind::CREATE_PROCEDURE
18985    }
18986    #[inline]
18987    fn cast(syntax: SyntaxNode) -> Option<Self> {
18988        if Self::can_cast(syntax.kind()) {
18989            Some(Self { syntax })
18990        } else {
18991            None
18992        }
18993    }
18994    #[inline]
18995    fn syntax(&self) -> &SyntaxNode {
18996        &self.syntax
18997    }
18998}
18999impl AstNode for CreatePublication {
19000    #[inline]
19001    fn can_cast(kind: SyntaxKind) -> bool {
19002        kind == SyntaxKind::CREATE_PUBLICATION
19003    }
19004    #[inline]
19005    fn cast(syntax: SyntaxNode) -> Option<Self> {
19006        if Self::can_cast(syntax.kind()) {
19007            Some(Self { syntax })
19008        } else {
19009            None
19010        }
19011    }
19012    #[inline]
19013    fn syntax(&self) -> &SyntaxNode {
19014        &self.syntax
19015    }
19016}
19017impl AstNode for CreateRole {
19018    #[inline]
19019    fn can_cast(kind: SyntaxKind) -> bool {
19020        kind == SyntaxKind::CREATE_ROLE
19021    }
19022    #[inline]
19023    fn cast(syntax: SyntaxNode) -> Option<Self> {
19024        if Self::can_cast(syntax.kind()) {
19025            Some(Self { syntax })
19026        } else {
19027            None
19028        }
19029    }
19030    #[inline]
19031    fn syntax(&self) -> &SyntaxNode {
19032        &self.syntax
19033    }
19034}
19035impl AstNode for CreateRule {
19036    #[inline]
19037    fn can_cast(kind: SyntaxKind) -> bool {
19038        kind == SyntaxKind::CREATE_RULE
19039    }
19040    #[inline]
19041    fn cast(syntax: SyntaxNode) -> Option<Self> {
19042        if Self::can_cast(syntax.kind()) {
19043            Some(Self { syntax })
19044        } else {
19045            None
19046        }
19047    }
19048    #[inline]
19049    fn syntax(&self) -> &SyntaxNode {
19050        &self.syntax
19051    }
19052}
19053impl AstNode for CreateSchema {
19054    #[inline]
19055    fn can_cast(kind: SyntaxKind) -> bool {
19056        kind == SyntaxKind::CREATE_SCHEMA
19057    }
19058    #[inline]
19059    fn cast(syntax: SyntaxNode) -> Option<Self> {
19060        if Self::can_cast(syntax.kind()) {
19061            Some(Self { syntax })
19062        } else {
19063            None
19064        }
19065    }
19066    #[inline]
19067    fn syntax(&self) -> &SyntaxNode {
19068        &self.syntax
19069    }
19070}
19071impl AstNode for CreateSequence {
19072    #[inline]
19073    fn can_cast(kind: SyntaxKind) -> bool {
19074        kind == SyntaxKind::CREATE_SEQUENCE
19075    }
19076    #[inline]
19077    fn cast(syntax: SyntaxNode) -> Option<Self> {
19078        if Self::can_cast(syntax.kind()) {
19079            Some(Self { syntax })
19080        } else {
19081            None
19082        }
19083    }
19084    #[inline]
19085    fn syntax(&self) -> &SyntaxNode {
19086        &self.syntax
19087    }
19088}
19089impl AstNode for CreateServer {
19090    #[inline]
19091    fn can_cast(kind: SyntaxKind) -> bool {
19092        kind == SyntaxKind::CREATE_SERVER
19093    }
19094    #[inline]
19095    fn cast(syntax: SyntaxNode) -> Option<Self> {
19096        if Self::can_cast(syntax.kind()) {
19097            Some(Self { syntax })
19098        } else {
19099            None
19100        }
19101    }
19102    #[inline]
19103    fn syntax(&self) -> &SyntaxNode {
19104        &self.syntax
19105    }
19106}
19107impl AstNode for CreateStatistics {
19108    #[inline]
19109    fn can_cast(kind: SyntaxKind) -> bool {
19110        kind == SyntaxKind::CREATE_STATISTICS
19111    }
19112    #[inline]
19113    fn cast(syntax: SyntaxNode) -> Option<Self> {
19114        if Self::can_cast(syntax.kind()) {
19115            Some(Self { syntax })
19116        } else {
19117            None
19118        }
19119    }
19120    #[inline]
19121    fn syntax(&self) -> &SyntaxNode {
19122        &self.syntax
19123    }
19124}
19125impl AstNode for CreateSubscription {
19126    #[inline]
19127    fn can_cast(kind: SyntaxKind) -> bool {
19128        kind == SyntaxKind::CREATE_SUBSCRIPTION
19129    }
19130    #[inline]
19131    fn cast(syntax: SyntaxNode) -> Option<Self> {
19132        if Self::can_cast(syntax.kind()) {
19133            Some(Self { syntax })
19134        } else {
19135            None
19136        }
19137    }
19138    #[inline]
19139    fn syntax(&self) -> &SyntaxNode {
19140        &self.syntax
19141    }
19142}
19143impl AstNode for CreateTable {
19144    #[inline]
19145    fn can_cast(kind: SyntaxKind) -> bool {
19146        kind == SyntaxKind::CREATE_TABLE
19147    }
19148    #[inline]
19149    fn cast(syntax: SyntaxNode) -> Option<Self> {
19150        if Self::can_cast(syntax.kind()) {
19151            Some(Self { syntax })
19152        } else {
19153            None
19154        }
19155    }
19156    #[inline]
19157    fn syntax(&self) -> &SyntaxNode {
19158        &self.syntax
19159    }
19160}
19161impl AstNode for CreateTableAs {
19162    #[inline]
19163    fn can_cast(kind: SyntaxKind) -> bool {
19164        kind == SyntaxKind::CREATE_TABLE_AS
19165    }
19166    #[inline]
19167    fn cast(syntax: SyntaxNode) -> Option<Self> {
19168        if Self::can_cast(syntax.kind()) {
19169            Some(Self { syntax })
19170        } else {
19171            None
19172        }
19173    }
19174    #[inline]
19175    fn syntax(&self) -> &SyntaxNode {
19176        &self.syntax
19177    }
19178}
19179impl AstNode for CreateTablespace {
19180    #[inline]
19181    fn can_cast(kind: SyntaxKind) -> bool {
19182        kind == SyntaxKind::CREATE_TABLESPACE
19183    }
19184    #[inline]
19185    fn cast(syntax: SyntaxNode) -> Option<Self> {
19186        if Self::can_cast(syntax.kind()) {
19187            Some(Self { syntax })
19188        } else {
19189            None
19190        }
19191    }
19192    #[inline]
19193    fn syntax(&self) -> &SyntaxNode {
19194        &self.syntax
19195    }
19196}
19197impl AstNode for CreateTextSearchConfiguration {
19198    #[inline]
19199    fn can_cast(kind: SyntaxKind) -> bool {
19200        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19201    }
19202    #[inline]
19203    fn cast(syntax: SyntaxNode) -> Option<Self> {
19204        if Self::can_cast(syntax.kind()) {
19205            Some(Self { syntax })
19206        } else {
19207            None
19208        }
19209    }
19210    #[inline]
19211    fn syntax(&self) -> &SyntaxNode {
19212        &self.syntax
19213    }
19214}
19215impl AstNode for CreateTextSearchDictionary {
19216    #[inline]
19217    fn can_cast(kind: SyntaxKind) -> bool {
19218        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19219    }
19220    #[inline]
19221    fn cast(syntax: SyntaxNode) -> Option<Self> {
19222        if Self::can_cast(syntax.kind()) {
19223            Some(Self { syntax })
19224        } else {
19225            None
19226        }
19227    }
19228    #[inline]
19229    fn syntax(&self) -> &SyntaxNode {
19230        &self.syntax
19231    }
19232}
19233impl AstNode for CreateTextSearchParser {
19234    #[inline]
19235    fn can_cast(kind: SyntaxKind) -> bool {
19236        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19237    }
19238    #[inline]
19239    fn cast(syntax: SyntaxNode) -> Option<Self> {
19240        if Self::can_cast(syntax.kind()) {
19241            Some(Self { syntax })
19242        } else {
19243            None
19244        }
19245    }
19246    #[inline]
19247    fn syntax(&self) -> &SyntaxNode {
19248        &self.syntax
19249    }
19250}
19251impl AstNode for CreateTextSearchTemplate {
19252    #[inline]
19253    fn can_cast(kind: SyntaxKind) -> bool {
19254        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19255    }
19256    #[inline]
19257    fn cast(syntax: SyntaxNode) -> Option<Self> {
19258        if Self::can_cast(syntax.kind()) {
19259            Some(Self { syntax })
19260        } else {
19261            None
19262        }
19263    }
19264    #[inline]
19265    fn syntax(&self) -> &SyntaxNode {
19266        &self.syntax
19267    }
19268}
19269impl AstNode for CreateTransform {
19270    #[inline]
19271    fn can_cast(kind: SyntaxKind) -> bool {
19272        kind == SyntaxKind::CREATE_TRANSFORM
19273    }
19274    #[inline]
19275    fn cast(syntax: SyntaxNode) -> Option<Self> {
19276        if Self::can_cast(syntax.kind()) {
19277            Some(Self { syntax })
19278        } else {
19279            None
19280        }
19281    }
19282    #[inline]
19283    fn syntax(&self) -> &SyntaxNode {
19284        &self.syntax
19285    }
19286}
19287impl AstNode for CreateTrigger {
19288    #[inline]
19289    fn can_cast(kind: SyntaxKind) -> bool {
19290        kind == SyntaxKind::CREATE_TRIGGER
19291    }
19292    #[inline]
19293    fn cast(syntax: SyntaxNode) -> Option<Self> {
19294        if Self::can_cast(syntax.kind()) {
19295            Some(Self { syntax })
19296        } else {
19297            None
19298        }
19299    }
19300    #[inline]
19301    fn syntax(&self) -> &SyntaxNode {
19302        &self.syntax
19303    }
19304}
19305impl AstNode for CreateType {
19306    #[inline]
19307    fn can_cast(kind: SyntaxKind) -> bool {
19308        kind == SyntaxKind::CREATE_TYPE
19309    }
19310    #[inline]
19311    fn cast(syntax: SyntaxNode) -> Option<Self> {
19312        if Self::can_cast(syntax.kind()) {
19313            Some(Self { syntax })
19314        } else {
19315            None
19316        }
19317    }
19318    #[inline]
19319    fn syntax(&self) -> &SyntaxNode {
19320        &self.syntax
19321    }
19322}
19323impl AstNode for CreateUser {
19324    #[inline]
19325    fn can_cast(kind: SyntaxKind) -> bool {
19326        kind == SyntaxKind::CREATE_USER
19327    }
19328    #[inline]
19329    fn cast(syntax: SyntaxNode) -> Option<Self> {
19330        if Self::can_cast(syntax.kind()) {
19331            Some(Self { syntax })
19332        } else {
19333            None
19334        }
19335    }
19336    #[inline]
19337    fn syntax(&self) -> &SyntaxNode {
19338        &self.syntax
19339    }
19340}
19341impl AstNode for CreateUserMapping {
19342    #[inline]
19343    fn can_cast(kind: SyntaxKind) -> bool {
19344        kind == SyntaxKind::CREATE_USER_MAPPING
19345    }
19346    #[inline]
19347    fn cast(syntax: SyntaxNode) -> Option<Self> {
19348        if Self::can_cast(syntax.kind()) {
19349            Some(Self { syntax })
19350        } else {
19351            None
19352        }
19353    }
19354    #[inline]
19355    fn syntax(&self) -> &SyntaxNode {
19356        &self.syntax
19357    }
19358}
19359impl AstNode for CreateView {
19360    #[inline]
19361    fn can_cast(kind: SyntaxKind) -> bool {
19362        kind == SyntaxKind::CREATE_VIEW
19363    }
19364    #[inline]
19365    fn cast(syntax: SyntaxNode) -> Option<Self> {
19366        if Self::can_cast(syntax.kind()) {
19367            Some(Self { syntax })
19368        } else {
19369            None
19370        }
19371    }
19372    #[inline]
19373    fn syntax(&self) -> &SyntaxNode {
19374        &self.syntax
19375    }
19376}
19377impl AstNode for CustomOp {
19378    #[inline]
19379    fn can_cast(kind: SyntaxKind) -> bool {
19380        kind == SyntaxKind::CUSTOM_OP
19381    }
19382    #[inline]
19383    fn cast(syntax: SyntaxNode) -> Option<Self> {
19384        if Self::can_cast(syntax.kind()) {
19385            Some(Self { syntax })
19386        } else {
19387            None
19388        }
19389    }
19390    #[inline]
19391    fn syntax(&self) -> &SyntaxNode {
19392        &self.syntax
19393    }
19394}
19395impl AstNode for Deallocate {
19396    #[inline]
19397    fn can_cast(kind: SyntaxKind) -> bool {
19398        kind == SyntaxKind::DEALLOCATE
19399    }
19400    #[inline]
19401    fn cast(syntax: SyntaxNode) -> Option<Self> {
19402        if Self::can_cast(syntax.kind()) {
19403            Some(Self { syntax })
19404        } else {
19405            None
19406        }
19407    }
19408    #[inline]
19409    fn syntax(&self) -> &SyntaxNode {
19410        &self.syntax
19411    }
19412}
19413impl AstNode for Declare {
19414    #[inline]
19415    fn can_cast(kind: SyntaxKind) -> bool {
19416        kind == SyntaxKind::DECLARE
19417    }
19418    #[inline]
19419    fn cast(syntax: SyntaxNode) -> Option<Self> {
19420        if Self::can_cast(syntax.kind()) {
19421            Some(Self { syntax })
19422        } else {
19423            None
19424        }
19425    }
19426    #[inline]
19427    fn syntax(&self) -> &SyntaxNode {
19428        &self.syntax
19429    }
19430}
19431impl AstNode for DefaultConstraint {
19432    #[inline]
19433    fn can_cast(kind: SyntaxKind) -> bool {
19434        kind == SyntaxKind::DEFAULT_CONSTRAINT
19435    }
19436    #[inline]
19437    fn cast(syntax: SyntaxNode) -> Option<Self> {
19438        if Self::can_cast(syntax.kind()) {
19439            Some(Self { syntax })
19440        } else {
19441            None
19442        }
19443    }
19444    #[inline]
19445    fn syntax(&self) -> &SyntaxNode {
19446        &self.syntax
19447    }
19448}
19449impl AstNode for Deferrable {
19450    #[inline]
19451    fn can_cast(kind: SyntaxKind) -> bool {
19452        kind == SyntaxKind::DEFERRABLE
19453    }
19454    #[inline]
19455    fn cast(syntax: SyntaxNode) -> Option<Self> {
19456        if Self::can_cast(syntax.kind()) {
19457            Some(Self { syntax })
19458        } else {
19459            None
19460        }
19461    }
19462    #[inline]
19463    fn syntax(&self) -> &SyntaxNode {
19464        &self.syntax
19465    }
19466}
19467impl AstNode for DeferrableConstraintOption {
19468    #[inline]
19469    fn can_cast(kind: SyntaxKind) -> bool {
19470        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
19471    }
19472    #[inline]
19473    fn cast(syntax: SyntaxNode) -> Option<Self> {
19474        if Self::can_cast(syntax.kind()) {
19475            Some(Self { syntax })
19476        } else {
19477            None
19478        }
19479    }
19480    #[inline]
19481    fn syntax(&self) -> &SyntaxNode {
19482        &self.syntax
19483    }
19484}
19485impl AstNode for Delete {
19486    #[inline]
19487    fn can_cast(kind: SyntaxKind) -> bool {
19488        kind == SyntaxKind::DELETE
19489    }
19490    #[inline]
19491    fn cast(syntax: SyntaxNode) -> Option<Self> {
19492        if Self::can_cast(syntax.kind()) {
19493            Some(Self { syntax })
19494        } else {
19495            None
19496        }
19497    }
19498    #[inline]
19499    fn syntax(&self) -> &SyntaxNode {
19500        &self.syntax
19501    }
19502}
19503impl AstNode for DeleteRows {
19504    #[inline]
19505    fn can_cast(kind: SyntaxKind) -> bool {
19506        kind == SyntaxKind::DELETE_ROWS
19507    }
19508    #[inline]
19509    fn cast(syntax: SyntaxNode) -> Option<Self> {
19510        if Self::can_cast(syntax.kind()) {
19511            Some(Self { syntax })
19512        } else {
19513            None
19514        }
19515    }
19516    #[inline]
19517    fn syntax(&self) -> &SyntaxNode {
19518        &self.syntax
19519    }
19520}
19521impl AstNode for DependsOnExtension {
19522    #[inline]
19523    fn can_cast(kind: SyntaxKind) -> bool {
19524        kind == SyntaxKind::DEPENDS_ON_EXTENSION
19525    }
19526    #[inline]
19527    fn cast(syntax: SyntaxNode) -> Option<Self> {
19528        if Self::can_cast(syntax.kind()) {
19529            Some(Self { syntax })
19530        } else {
19531            None
19532        }
19533    }
19534    #[inline]
19535    fn syntax(&self) -> &SyntaxNode {
19536        &self.syntax
19537    }
19538}
19539impl AstNode for DetachPartition {
19540    #[inline]
19541    fn can_cast(kind: SyntaxKind) -> bool {
19542        kind == SyntaxKind::DETACH_PARTITION
19543    }
19544    #[inline]
19545    fn cast(syntax: SyntaxNode) -> Option<Self> {
19546        if Self::can_cast(syntax.kind()) {
19547            Some(Self { syntax })
19548        } else {
19549            None
19550        }
19551    }
19552    #[inline]
19553    fn syntax(&self) -> &SyntaxNode {
19554        &self.syntax
19555    }
19556}
19557impl AstNode for DisableRls {
19558    #[inline]
19559    fn can_cast(kind: SyntaxKind) -> bool {
19560        kind == SyntaxKind::DISABLE_RLS
19561    }
19562    #[inline]
19563    fn cast(syntax: SyntaxNode) -> Option<Self> {
19564        if Self::can_cast(syntax.kind()) {
19565            Some(Self { syntax })
19566        } else {
19567            None
19568        }
19569    }
19570    #[inline]
19571    fn syntax(&self) -> &SyntaxNode {
19572        &self.syntax
19573    }
19574}
19575impl AstNode for DisableRule {
19576    #[inline]
19577    fn can_cast(kind: SyntaxKind) -> bool {
19578        kind == SyntaxKind::DISABLE_RULE
19579    }
19580    #[inline]
19581    fn cast(syntax: SyntaxNode) -> Option<Self> {
19582        if Self::can_cast(syntax.kind()) {
19583            Some(Self { syntax })
19584        } else {
19585            None
19586        }
19587    }
19588    #[inline]
19589    fn syntax(&self) -> &SyntaxNode {
19590        &self.syntax
19591    }
19592}
19593impl AstNode for DisableTrigger {
19594    #[inline]
19595    fn can_cast(kind: SyntaxKind) -> bool {
19596        kind == SyntaxKind::DISABLE_TRIGGER
19597    }
19598    #[inline]
19599    fn cast(syntax: SyntaxNode) -> Option<Self> {
19600        if Self::can_cast(syntax.kind()) {
19601            Some(Self { syntax })
19602        } else {
19603            None
19604        }
19605    }
19606    #[inline]
19607    fn syntax(&self) -> &SyntaxNode {
19608        &self.syntax
19609    }
19610}
19611impl AstNode for Discard {
19612    #[inline]
19613    fn can_cast(kind: SyntaxKind) -> bool {
19614        kind == SyntaxKind::DISCARD
19615    }
19616    #[inline]
19617    fn cast(syntax: SyntaxNode) -> Option<Self> {
19618        if Self::can_cast(syntax.kind()) {
19619            Some(Self { syntax })
19620        } else {
19621            None
19622        }
19623    }
19624    #[inline]
19625    fn syntax(&self) -> &SyntaxNode {
19626        &self.syntax
19627    }
19628}
19629impl AstNode for DistinctClause {
19630    #[inline]
19631    fn can_cast(kind: SyntaxKind) -> bool {
19632        kind == SyntaxKind::DISTINCT_CLAUSE
19633    }
19634    #[inline]
19635    fn cast(syntax: SyntaxNode) -> Option<Self> {
19636        if Self::can_cast(syntax.kind()) {
19637            Some(Self { syntax })
19638        } else {
19639            None
19640        }
19641    }
19642    #[inline]
19643    fn syntax(&self) -> &SyntaxNode {
19644        &self.syntax
19645    }
19646}
19647impl AstNode for Do {
19648    #[inline]
19649    fn can_cast(kind: SyntaxKind) -> bool {
19650        kind == SyntaxKind::DO
19651    }
19652    #[inline]
19653    fn cast(syntax: SyntaxNode) -> Option<Self> {
19654        if Self::can_cast(syntax.kind()) {
19655            Some(Self { syntax })
19656        } else {
19657            None
19658        }
19659    }
19660    #[inline]
19661    fn syntax(&self) -> &SyntaxNode {
19662        &self.syntax
19663    }
19664}
19665impl AstNode for DoubleType {
19666    #[inline]
19667    fn can_cast(kind: SyntaxKind) -> bool {
19668        kind == SyntaxKind::DOUBLE_TYPE
19669    }
19670    #[inline]
19671    fn cast(syntax: SyntaxNode) -> Option<Self> {
19672        if Self::can_cast(syntax.kind()) {
19673            Some(Self { syntax })
19674        } else {
19675            None
19676        }
19677    }
19678    #[inline]
19679    fn syntax(&self) -> &SyntaxNode {
19680        &self.syntax
19681    }
19682}
19683impl AstNode for Drop {
19684    #[inline]
19685    fn can_cast(kind: SyntaxKind) -> bool {
19686        kind == SyntaxKind::DROP
19687    }
19688    #[inline]
19689    fn cast(syntax: SyntaxNode) -> Option<Self> {
19690        if Self::can_cast(syntax.kind()) {
19691            Some(Self { syntax })
19692        } else {
19693            None
19694        }
19695    }
19696    #[inline]
19697    fn syntax(&self) -> &SyntaxNode {
19698        &self.syntax
19699    }
19700}
19701impl AstNode for DropAccessMethod {
19702    #[inline]
19703    fn can_cast(kind: SyntaxKind) -> bool {
19704        kind == SyntaxKind::DROP_ACCESS_METHOD
19705    }
19706    #[inline]
19707    fn cast(syntax: SyntaxNode) -> Option<Self> {
19708        if Self::can_cast(syntax.kind()) {
19709            Some(Self { syntax })
19710        } else {
19711            None
19712        }
19713    }
19714    #[inline]
19715    fn syntax(&self) -> &SyntaxNode {
19716        &self.syntax
19717    }
19718}
19719impl AstNode for DropAggregate {
19720    #[inline]
19721    fn can_cast(kind: SyntaxKind) -> bool {
19722        kind == SyntaxKind::DROP_AGGREGATE
19723    }
19724    #[inline]
19725    fn cast(syntax: SyntaxNode) -> Option<Self> {
19726        if Self::can_cast(syntax.kind()) {
19727            Some(Self { syntax })
19728        } else {
19729            None
19730        }
19731    }
19732    #[inline]
19733    fn syntax(&self) -> &SyntaxNode {
19734        &self.syntax
19735    }
19736}
19737impl AstNode for DropCast {
19738    #[inline]
19739    fn can_cast(kind: SyntaxKind) -> bool {
19740        kind == SyntaxKind::DROP_CAST
19741    }
19742    #[inline]
19743    fn cast(syntax: SyntaxNode) -> Option<Self> {
19744        if Self::can_cast(syntax.kind()) {
19745            Some(Self { syntax })
19746        } else {
19747            None
19748        }
19749    }
19750    #[inline]
19751    fn syntax(&self) -> &SyntaxNode {
19752        &self.syntax
19753    }
19754}
19755impl AstNode for DropCollation {
19756    #[inline]
19757    fn can_cast(kind: SyntaxKind) -> bool {
19758        kind == SyntaxKind::DROP_COLLATION
19759    }
19760    #[inline]
19761    fn cast(syntax: SyntaxNode) -> Option<Self> {
19762        if Self::can_cast(syntax.kind()) {
19763            Some(Self { syntax })
19764        } else {
19765            None
19766        }
19767    }
19768    #[inline]
19769    fn syntax(&self) -> &SyntaxNode {
19770        &self.syntax
19771    }
19772}
19773impl AstNode for DropColumn {
19774    #[inline]
19775    fn can_cast(kind: SyntaxKind) -> bool {
19776        kind == SyntaxKind::DROP_COLUMN
19777    }
19778    #[inline]
19779    fn cast(syntax: SyntaxNode) -> Option<Self> {
19780        if Self::can_cast(syntax.kind()) {
19781            Some(Self { syntax })
19782        } else {
19783            None
19784        }
19785    }
19786    #[inline]
19787    fn syntax(&self) -> &SyntaxNode {
19788        &self.syntax
19789    }
19790}
19791impl AstNode for DropConstraint {
19792    #[inline]
19793    fn can_cast(kind: SyntaxKind) -> bool {
19794        kind == SyntaxKind::DROP_CONSTRAINT
19795    }
19796    #[inline]
19797    fn cast(syntax: SyntaxNode) -> Option<Self> {
19798        if Self::can_cast(syntax.kind()) {
19799            Some(Self { syntax })
19800        } else {
19801            None
19802        }
19803    }
19804    #[inline]
19805    fn syntax(&self) -> &SyntaxNode {
19806        &self.syntax
19807    }
19808}
19809impl AstNode for DropConversion {
19810    #[inline]
19811    fn can_cast(kind: SyntaxKind) -> bool {
19812        kind == SyntaxKind::DROP_CONVERSION
19813    }
19814    #[inline]
19815    fn cast(syntax: SyntaxNode) -> Option<Self> {
19816        if Self::can_cast(syntax.kind()) {
19817            Some(Self { syntax })
19818        } else {
19819            None
19820        }
19821    }
19822    #[inline]
19823    fn syntax(&self) -> &SyntaxNode {
19824        &self.syntax
19825    }
19826}
19827impl AstNode for DropDatabase {
19828    #[inline]
19829    fn can_cast(kind: SyntaxKind) -> bool {
19830        kind == SyntaxKind::DROP_DATABASE
19831    }
19832    #[inline]
19833    fn cast(syntax: SyntaxNode) -> Option<Self> {
19834        if Self::can_cast(syntax.kind()) {
19835            Some(Self { syntax })
19836        } else {
19837            None
19838        }
19839    }
19840    #[inline]
19841    fn syntax(&self) -> &SyntaxNode {
19842        &self.syntax
19843    }
19844}
19845impl AstNode for DropDefault {
19846    #[inline]
19847    fn can_cast(kind: SyntaxKind) -> bool {
19848        kind == SyntaxKind::DROP_DEFAULT
19849    }
19850    #[inline]
19851    fn cast(syntax: SyntaxNode) -> Option<Self> {
19852        if Self::can_cast(syntax.kind()) {
19853            Some(Self { syntax })
19854        } else {
19855            None
19856        }
19857    }
19858    #[inline]
19859    fn syntax(&self) -> &SyntaxNode {
19860        &self.syntax
19861    }
19862}
19863impl AstNode for DropDomain {
19864    #[inline]
19865    fn can_cast(kind: SyntaxKind) -> bool {
19866        kind == SyntaxKind::DROP_DOMAIN
19867    }
19868    #[inline]
19869    fn cast(syntax: SyntaxNode) -> Option<Self> {
19870        if Self::can_cast(syntax.kind()) {
19871            Some(Self { syntax })
19872        } else {
19873            None
19874        }
19875    }
19876    #[inline]
19877    fn syntax(&self) -> &SyntaxNode {
19878        &self.syntax
19879    }
19880}
19881impl AstNode for DropEventTrigger {
19882    #[inline]
19883    fn can_cast(kind: SyntaxKind) -> bool {
19884        kind == SyntaxKind::DROP_EVENT_TRIGGER
19885    }
19886    #[inline]
19887    fn cast(syntax: SyntaxNode) -> Option<Self> {
19888        if Self::can_cast(syntax.kind()) {
19889            Some(Self { syntax })
19890        } else {
19891            None
19892        }
19893    }
19894    #[inline]
19895    fn syntax(&self) -> &SyntaxNode {
19896        &self.syntax
19897    }
19898}
19899impl AstNode for DropExpression {
19900    #[inline]
19901    fn can_cast(kind: SyntaxKind) -> bool {
19902        kind == SyntaxKind::DROP_EXPRESSION
19903    }
19904    #[inline]
19905    fn cast(syntax: SyntaxNode) -> Option<Self> {
19906        if Self::can_cast(syntax.kind()) {
19907            Some(Self { syntax })
19908        } else {
19909            None
19910        }
19911    }
19912    #[inline]
19913    fn syntax(&self) -> &SyntaxNode {
19914        &self.syntax
19915    }
19916}
19917impl AstNode for DropExtension {
19918    #[inline]
19919    fn can_cast(kind: SyntaxKind) -> bool {
19920        kind == SyntaxKind::DROP_EXTENSION
19921    }
19922    #[inline]
19923    fn cast(syntax: SyntaxNode) -> Option<Self> {
19924        if Self::can_cast(syntax.kind()) {
19925            Some(Self { syntax })
19926        } else {
19927            None
19928        }
19929    }
19930    #[inline]
19931    fn syntax(&self) -> &SyntaxNode {
19932        &self.syntax
19933    }
19934}
19935impl AstNode for DropForeignDataWrapper {
19936    #[inline]
19937    fn can_cast(kind: SyntaxKind) -> bool {
19938        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
19939    }
19940    #[inline]
19941    fn cast(syntax: SyntaxNode) -> Option<Self> {
19942        if Self::can_cast(syntax.kind()) {
19943            Some(Self { syntax })
19944        } else {
19945            None
19946        }
19947    }
19948    #[inline]
19949    fn syntax(&self) -> &SyntaxNode {
19950        &self.syntax
19951    }
19952}
19953impl AstNode for DropForeignTable {
19954    #[inline]
19955    fn can_cast(kind: SyntaxKind) -> bool {
19956        kind == SyntaxKind::DROP_FOREIGN_TABLE
19957    }
19958    #[inline]
19959    fn cast(syntax: SyntaxNode) -> Option<Self> {
19960        if Self::can_cast(syntax.kind()) {
19961            Some(Self { syntax })
19962        } else {
19963            None
19964        }
19965    }
19966    #[inline]
19967    fn syntax(&self) -> &SyntaxNode {
19968        &self.syntax
19969    }
19970}
19971impl AstNode for DropFunction {
19972    #[inline]
19973    fn can_cast(kind: SyntaxKind) -> bool {
19974        kind == SyntaxKind::DROP_FUNCTION
19975    }
19976    #[inline]
19977    fn cast(syntax: SyntaxNode) -> Option<Self> {
19978        if Self::can_cast(syntax.kind()) {
19979            Some(Self { syntax })
19980        } else {
19981            None
19982        }
19983    }
19984    #[inline]
19985    fn syntax(&self) -> &SyntaxNode {
19986        &self.syntax
19987    }
19988}
19989impl AstNode for DropGroup {
19990    #[inline]
19991    fn can_cast(kind: SyntaxKind) -> bool {
19992        kind == SyntaxKind::DROP_GROUP
19993    }
19994    #[inline]
19995    fn cast(syntax: SyntaxNode) -> Option<Self> {
19996        if Self::can_cast(syntax.kind()) {
19997            Some(Self { syntax })
19998        } else {
19999            None
20000        }
20001    }
20002    #[inline]
20003    fn syntax(&self) -> &SyntaxNode {
20004        &self.syntax
20005    }
20006}
20007impl AstNode for DropIdentity {
20008    #[inline]
20009    fn can_cast(kind: SyntaxKind) -> bool {
20010        kind == SyntaxKind::DROP_IDENTITY
20011    }
20012    #[inline]
20013    fn cast(syntax: SyntaxNode) -> Option<Self> {
20014        if Self::can_cast(syntax.kind()) {
20015            Some(Self { syntax })
20016        } else {
20017            None
20018        }
20019    }
20020    #[inline]
20021    fn syntax(&self) -> &SyntaxNode {
20022        &self.syntax
20023    }
20024}
20025impl AstNode for DropIndex {
20026    #[inline]
20027    fn can_cast(kind: SyntaxKind) -> bool {
20028        kind == SyntaxKind::DROP_INDEX
20029    }
20030    #[inline]
20031    fn cast(syntax: SyntaxNode) -> Option<Self> {
20032        if Self::can_cast(syntax.kind()) {
20033            Some(Self { syntax })
20034        } else {
20035            None
20036        }
20037    }
20038    #[inline]
20039    fn syntax(&self) -> &SyntaxNode {
20040        &self.syntax
20041    }
20042}
20043impl AstNode for DropLanguage {
20044    #[inline]
20045    fn can_cast(kind: SyntaxKind) -> bool {
20046        kind == SyntaxKind::DROP_LANGUAGE
20047    }
20048    #[inline]
20049    fn cast(syntax: SyntaxNode) -> Option<Self> {
20050        if Self::can_cast(syntax.kind()) {
20051            Some(Self { syntax })
20052        } else {
20053            None
20054        }
20055    }
20056    #[inline]
20057    fn syntax(&self) -> &SyntaxNode {
20058        &self.syntax
20059    }
20060}
20061impl AstNode for DropMaterializedView {
20062    #[inline]
20063    fn can_cast(kind: SyntaxKind) -> bool {
20064        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20065    }
20066    #[inline]
20067    fn cast(syntax: SyntaxNode) -> Option<Self> {
20068        if Self::can_cast(syntax.kind()) {
20069            Some(Self { syntax })
20070        } else {
20071            None
20072        }
20073    }
20074    #[inline]
20075    fn syntax(&self) -> &SyntaxNode {
20076        &self.syntax
20077    }
20078}
20079impl AstNode for DropNotNull {
20080    #[inline]
20081    fn can_cast(kind: SyntaxKind) -> bool {
20082        kind == SyntaxKind::DROP_NOT_NULL
20083    }
20084    #[inline]
20085    fn cast(syntax: SyntaxNode) -> Option<Self> {
20086        if Self::can_cast(syntax.kind()) {
20087            Some(Self { syntax })
20088        } else {
20089            None
20090        }
20091    }
20092    #[inline]
20093    fn syntax(&self) -> &SyntaxNode {
20094        &self.syntax
20095    }
20096}
20097impl AstNode for DropOpClassOption {
20098    #[inline]
20099    fn can_cast(kind: SyntaxKind) -> bool {
20100        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20101    }
20102    #[inline]
20103    fn cast(syntax: SyntaxNode) -> Option<Self> {
20104        if Self::can_cast(syntax.kind()) {
20105            Some(Self { syntax })
20106        } else {
20107            None
20108        }
20109    }
20110    #[inline]
20111    fn syntax(&self) -> &SyntaxNode {
20112        &self.syntax
20113    }
20114}
20115impl AstNode for DropOpClassOptionList {
20116    #[inline]
20117    fn can_cast(kind: SyntaxKind) -> bool {
20118        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20119    }
20120    #[inline]
20121    fn cast(syntax: SyntaxNode) -> Option<Self> {
20122        if Self::can_cast(syntax.kind()) {
20123            Some(Self { syntax })
20124        } else {
20125            None
20126        }
20127    }
20128    #[inline]
20129    fn syntax(&self) -> &SyntaxNode {
20130        &self.syntax
20131    }
20132}
20133impl AstNode for DropOpClassOptions {
20134    #[inline]
20135    fn can_cast(kind: SyntaxKind) -> bool {
20136        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20137    }
20138    #[inline]
20139    fn cast(syntax: SyntaxNode) -> Option<Self> {
20140        if Self::can_cast(syntax.kind()) {
20141            Some(Self { syntax })
20142        } else {
20143            None
20144        }
20145    }
20146    #[inline]
20147    fn syntax(&self) -> &SyntaxNode {
20148        &self.syntax
20149    }
20150}
20151impl AstNode for DropOperator {
20152    #[inline]
20153    fn can_cast(kind: SyntaxKind) -> bool {
20154        kind == SyntaxKind::DROP_OPERATOR
20155    }
20156    #[inline]
20157    fn cast(syntax: SyntaxNode) -> Option<Self> {
20158        if Self::can_cast(syntax.kind()) {
20159            Some(Self { syntax })
20160        } else {
20161            None
20162        }
20163    }
20164    #[inline]
20165    fn syntax(&self) -> &SyntaxNode {
20166        &self.syntax
20167    }
20168}
20169impl AstNode for DropOperatorClass {
20170    #[inline]
20171    fn can_cast(kind: SyntaxKind) -> bool {
20172        kind == SyntaxKind::DROP_OPERATOR_CLASS
20173    }
20174    #[inline]
20175    fn cast(syntax: SyntaxNode) -> Option<Self> {
20176        if Self::can_cast(syntax.kind()) {
20177            Some(Self { syntax })
20178        } else {
20179            None
20180        }
20181    }
20182    #[inline]
20183    fn syntax(&self) -> &SyntaxNode {
20184        &self.syntax
20185    }
20186}
20187impl AstNode for DropOperatorFamily {
20188    #[inline]
20189    fn can_cast(kind: SyntaxKind) -> bool {
20190        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20191    }
20192    #[inline]
20193    fn cast(syntax: SyntaxNode) -> Option<Self> {
20194        if Self::can_cast(syntax.kind()) {
20195            Some(Self { syntax })
20196        } else {
20197            None
20198        }
20199    }
20200    #[inline]
20201    fn syntax(&self) -> &SyntaxNode {
20202        &self.syntax
20203    }
20204}
20205impl AstNode for DropOwned {
20206    #[inline]
20207    fn can_cast(kind: SyntaxKind) -> bool {
20208        kind == SyntaxKind::DROP_OWNED
20209    }
20210    #[inline]
20211    fn cast(syntax: SyntaxNode) -> Option<Self> {
20212        if Self::can_cast(syntax.kind()) {
20213            Some(Self { syntax })
20214        } else {
20215            None
20216        }
20217    }
20218    #[inline]
20219    fn syntax(&self) -> &SyntaxNode {
20220        &self.syntax
20221    }
20222}
20223impl AstNode for DropPolicy {
20224    #[inline]
20225    fn can_cast(kind: SyntaxKind) -> bool {
20226        kind == SyntaxKind::DROP_POLICY
20227    }
20228    #[inline]
20229    fn cast(syntax: SyntaxNode) -> Option<Self> {
20230        if Self::can_cast(syntax.kind()) {
20231            Some(Self { syntax })
20232        } else {
20233            None
20234        }
20235    }
20236    #[inline]
20237    fn syntax(&self) -> &SyntaxNode {
20238        &self.syntax
20239    }
20240}
20241impl AstNode for DropProcedure {
20242    #[inline]
20243    fn can_cast(kind: SyntaxKind) -> bool {
20244        kind == SyntaxKind::DROP_PROCEDURE
20245    }
20246    #[inline]
20247    fn cast(syntax: SyntaxNode) -> Option<Self> {
20248        if Self::can_cast(syntax.kind()) {
20249            Some(Self { syntax })
20250        } else {
20251            None
20252        }
20253    }
20254    #[inline]
20255    fn syntax(&self) -> &SyntaxNode {
20256        &self.syntax
20257    }
20258}
20259impl AstNode for DropPublication {
20260    #[inline]
20261    fn can_cast(kind: SyntaxKind) -> bool {
20262        kind == SyntaxKind::DROP_PUBLICATION
20263    }
20264    #[inline]
20265    fn cast(syntax: SyntaxNode) -> Option<Self> {
20266        if Self::can_cast(syntax.kind()) {
20267            Some(Self { syntax })
20268        } else {
20269            None
20270        }
20271    }
20272    #[inline]
20273    fn syntax(&self) -> &SyntaxNode {
20274        &self.syntax
20275    }
20276}
20277impl AstNode for DropRole {
20278    #[inline]
20279    fn can_cast(kind: SyntaxKind) -> bool {
20280        kind == SyntaxKind::DROP_ROLE
20281    }
20282    #[inline]
20283    fn cast(syntax: SyntaxNode) -> Option<Self> {
20284        if Self::can_cast(syntax.kind()) {
20285            Some(Self { syntax })
20286        } else {
20287            None
20288        }
20289    }
20290    #[inline]
20291    fn syntax(&self) -> &SyntaxNode {
20292        &self.syntax
20293    }
20294}
20295impl AstNode for DropRoutine {
20296    #[inline]
20297    fn can_cast(kind: SyntaxKind) -> bool {
20298        kind == SyntaxKind::DROP_ROUTINE
20299    }
20300    #[inline]
20301    fn cast(syntax: SyntaxNode) -> Option<Self> {
20302        if Self::can_cast(syntax.kind()) {
20303            Some(Self { syntax })
20304        } else {
20305            None
20306        }
20307    }
20308    #[inline]
20309    fn syntax(&self) -> &SyntaxNode {
20310        &self.syntax
20311    }
20312}
20313impl AstNode for DropRule {
20314    #[inline]
20315    fn can_cast(kind: SyntaxKind) -> bool {
20316        kind == SyntaxKind::DROP_RULE
20317    }
20318    #[inline]
20319    fn cast(syntax: SyntaxNode) -> Option<Self> {
20320        if Self::can_cast(syntax.kind()) {
20321            Some(Self { syntax })
20322        } else {
20323            None
20324        }
20325    }
20326    #[inline]
20327    fn syntax(&self) -> &SyntaxNode {
20328        &self.syntax
20329    }
20330}
20331impl AstNode for DropSchema {
20332    #[inline]
20333    fn can_cast(kind: SyntaxKind) -> bool {
20334        kind == SyntaxKind::DROP_SCHEMA
20335    }
20336    #[inline]
20337    fn cast(syntax: SyntaxNode) -> Option<Self> {
20338        if Self::can_cast(syntax.kind()) {
20339            Some(Self { syntax })
20340        } else {
20341            None
20342        }
20343    }
20344    #[inline]
20345    fn syntax(&self) -> &SyntaxNode {
20346        &self.syntax
20347    }
20348}
20349impl AstNode for DropSequence {
20350    #[inline]
20351    fn can_cast(kind: SyntaxKind) -> bool {
20352        kind == SyntaxKind::DROP_SEQUENCE
20353    }
20354    #[inline]
20355    fn cast(syntax: SyntaxNode) -> Option<Self> {
20356        if Self::can_cast(syntax.kind()) {
20357            Some(Self { syntax })
20358        } else {
20359            None
20360        }
20361    }
20362    #[inline]
20363    fn syntax(&self) -> &SyntaxNode {
20364        &self.syntax
20365    }
20366}
20367impl AstNode for DropServer {
20368    #[inline]
20369    fn can_cast(kind: SyntaxKind) -> bool {
20370        kind == SyntaxKind::DROP_SERVER
20371    }
20372    #[inline]
20373    fn cast(syntax: SyntaxNode) -> Option<Self> {
20374        if Self::can_cast(syntax.kind()) {
20375            Some(Self { syntax })
20376        } else {
20377            None
20378        }
20379    }
20380    #[inline]
20381    fn syntax(&self) -> &SyntaxNode {
20382        &self.syntax
20383    }
20384}
20385impl AstNode for DropStatistics {
20386    #[inline]
20387    fn can_cast(kind: SyntaxKind) -> bool {
20388        kind == SyntaxKind::DROP_STATISTICS
20389    }
20390    #[inline]
20391    fn cast(syntax: SyntaxNode) -> Option<Self> {
20392        if Self::can_cast(syntax.kind()) {
20393            Some(Self { syntax })
20394        } else {
20395            None
20396        }
20397    }
20398    #[inline]
20399    fn syntax(&self) -> &SyntaxNode {
20400        &self.syntax
20401    }
20402}
20403impl AstNode for DropSubscription {
20404    #[inline]
20405    fn can_cast(kind: SyntaxKind) -> bool {
20406        kind == SyntaxKind::DROP_SUBSCRIPTION
20407    }
20408    #[inline]
20409    fn cast(syntax: SyntaxNode) -> Option<Self> {
20410        if Self::can_cast(syntax.kind()) {
20411            Some(Self { syntax })
20412        } else {
20413            None
20414        }
20415    }
20416    #[inline]
20417    fn syntax(&self) -> &SyntaxNode {
20418        &self.syntax
20419    }
20420}
20421impl AstNode for DropTable {
20422    #[inline]
20423    fn can_cast(kind: SyntaxKind) -> bool {
20424        kind == SyntaxKind::DROP_TABLE
20425    }
20426    #[inline]
20427    fn cast(syntax: SyntaxNode) -> Option<Self> {
20428        if Self::can_cast(syntax.kind()) {
20429            Some(Self { syntax })
20430        } else {
20431            None
20432        }
20433    }
20434    #[inline]
20435    fn syntax(&self) -> &SyntaxNode {
20436        &self.syntax
20437    }
20438}
20439impl AstNode for DropTablespace {
20440    #[inline]
20441    fn can_cast(kind: SyntaxKind) -> bool {
20442        kind == SyntaxKind::DROP_TABLESPACE
20443    }
20444    #[inline]
20445    fn cast(syntax: SyntaxNode) -> Option<Self> {
20446        if Self::can_cast(syntax.kind()) {
20447            Some(Self { syntax })
20448        } else {
20449            None
20450        }
20451    }
20452    #[inline]
20453    fn syntax(&self) -> &SyntaxNode {
20454        &self.syntax
20455    }
20456}
20457impl AstNode for DropTextSearchConfig {
20458    #[inline]
20459    fn can_cast(kind: SyntaxKind) -> bool {
20460        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
20461    }
20462    #[inline]
20463    fn cast(syntax: SyntaxNode) -> Option<Self> {
20464        if Self::can_cast(syntax.kind()) {
20465            Some(Self { syntax })
20466        } else {
20467            None
20468        }
20469    }
20470    #[inline]
20471    fn syntax(&self) -> &SyntaxNode {
20472        &self.syntax
20473    }
20474}
20475impl AstNode for DropTextSearchDict {
20476    #[inline]
20477    fn can_cast(kind: SyntaxKind) -> bool {
20478        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
20479    }
20480    #[inline]
20481    fn cast(syntax: SyntaxNode) -> Option<Self> {
20482        if Self::can_cast(syntax.kind()) {
20483            Some(Self { syntax })
20484        } else {
20485            None
20486        }
20487    }
20488    #[inline]
20489    fn syntax(&self) -> &SyntaxNode {
20490        &self.syntax
20491    }
20492}
20493impl AstNode for DropTextSearchParser {
20494    #[inline]
20495    fn can_cast(kind: SyntaxKind) -> bool {
20496        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
20497    }
20498    #[inline]
20499    fn cast(syntax: SyntaxNode) -> Option<Self> {
20500        if Self::can_cast(syntax.kind()) {
20501            Some(Self { syntax })
20502        } else {
20503            None
20504        }
20505    }
20506    #[inline]
20507    fn syntax(&self) -> &SyntaxNode {
20508        &self.syntax
20509    }
20510}
20511impl AstNode for DropTextSearchTemplate {
20512    #[inline]
20513    fn can_cast(kind: SyntaxKind) -> bool {
20514        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
20515    }
20516    #[inline]
20517    fn cast(syntax: SyntaxNode) -> Option<Self> {
20518        if Self::can_cast(syntax.kind()) {
20519            Some(Self { syntax })
20520        } else {
20521            None
20522        }
20523    }
20524    #[inline]
20525    fn syntax(&self) -> &SyntaxNode {
20526        &self.syntax
20527    }
20528}
20529impl AstNode for DropTransform {
20530    #[inline]
20531    fn can_cast(kind: SyntaxKind) -> bool {
20532        kind == SyntaxKind::DROP_TRANSFORM
20533    }
20534    #[inline]
20535    fn cast(syntax: SyntaxNode) -> Option<Self> {
20536        if Self::can_cast(syntax.kind()) {
20537            Some(Self { syntax })
20538        } else {
20539            None
20540        }
20541    }
20542    #[inline]
20543    fn syntax(&self) -> &SyntaxNode {
20544        &self.syntax
20545    }
20546}
20547impl AstNode for DropTrigger {
20548    #[inline]
20549    fn can_cast(kind: SyntaxKind) -> bool {
20550        kind == SyntaxKind::DROP_TRIGGER
20551    }
20552    #[inline]
20553    fn cast(syntax: SyntaxNode) -> Option<Self> {
20554        if Self::can_cast(syntax.kind()) {
20555            Some(Self { syntax })
20556        } else {
20557            None
20558        }
20559    }
20560    #[inline]
20561    fn syntax(&self) -> &SyntaxNode {
20562        &self.syntax
20563    }
20564}
20565impl AstNode for DropType {
20566    #[inline]
20567    fn can_cast(kind: SyntaxKind) -> bool {
20568        kind == SyntaxKind::DROP_TYPE
20569    }
20570    #[inline]
20571    fn cast(syntax: SyntaxNode) -> Option<Self> {
20572        if Self::can_cast(syntax.kind()) {
20573            Some(Self { syntax })
20574        } else {
20575            None
20576        }
20577    }
20578    #[inline]
20579    fn syntax(&self) -> &SyntaxNode {
20580        &self.syntax
20581    }
20582}
20583impl AstNode for DropUser {
20584    #[inline]
20585    fn can_cast(kind: SyntaxKind) -> bool {
20586        kind == SyntaxKind::DROP_USER
20587    }
20588    #[inline]
20589    fn cast(syntax: SyntaxNode) -> Option<Self> {
20590        if Self::can_cast(syntax.kind()) {
20591            Some(Self { syntax })
20592        } else {
20593            None
20594        }
20595    }
20596    #[inline]
20597    fn syntax(&self) -> &SyntaxNode {
20598        &self.syntax
20599    }
20600}
20601impl AstNode for DropUserMapping {
20602    #[inline]
20603    fn can_cast(kind: SyntaxKind) -> bool {
20604        kind == SyntaxKind::DROP_USER_MAPPING
20605    }
20606    #[inline]
20607    fn cast(syntax: SyntaxNode) -> Option<Self> {
20608        if Self::can_cast(syntax.kind()) {
20609            Some(Self { syntax })
20610        } else {
20611            None
20612        }
20613    }
20614    #[inline]
20615    fn syntax(&self) -> &SyntaxNode {
20616        &self.syntax
20617    }
20618}
20619impl AstNode for DropView {
20620    #[inline]
20621    fn can_cast(kind: SyntaxKind) -> bool {
20622        kind == SyntaxKind::DROP_VIEW
20623    }
20624    #[inline]
20625    fn cast(syntax: SyntaxNode) -> Option<Self> {
20626        if Self::can_cast(syntax.kind()) {
20627            Some(Self { syntax })
20628        } else {
20629            None
20630        }
20631    }
20632    #[inline]
20633    fn syntax(&self) -> &SyntaxNode {
20634        &self.syntax
20635    }
20636}
20637impl AstNode for ElseClause {
20638    #[inline]
20639    fn can_cast(kind: SyntaxKind) -> bool {
20640        kind == SyntaxKind::ELSE_CLAUSE
20641    }
20642    #[inline]
20643    fn cast(syntax: SyntaxNode) -> Option<Self> {
20644        if Self::can_cast(syntax.kind()) {
20645            Some(Self { syntax })
20646        } else {
20647            None
20648        }
20649    }
20650    #[inline]
20651    fn syntax(&self) -> &SyntaxNode {
20652        &self.syntax
20653    }
20654}
20655impl AstNode for EnableAlwaysRule {
20656    #[inline]
20657    fn can_cast(kind: SyntaxKind) -> bool {
20658        kind == SyntaxKind::ENABLE_ALWAYS_RULE
20659    }
20660    #[inline]
20661    fn cast(syntax: SyntaxNode) -> Option<Self> {
20662        if Self::can_cast(syntax.kind()) {
20663            Some(Self { syntax })
20664        } else {
20665            None
20666        }
20667    }
20668    #[inline]
20669    fn syntax(&self) -> &SyntaxNode {
20670        &self.syntax
20671    }
20672}
20673impl AstNode for EnableAlwaysTrigger {
20674    #[inline]
20675    fn can_cast(kind: SyntaxKind) -> bool {
20676        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
20677    }
20678    #[inline]
20679    fn cast(syntax: SyntaxNode) -> Option<Self> {
20680        if Self::can_cast(syntax.kind()) {
20681            Some(Self { syntax })
20682        } else {
20683            None
20684        }
20685    }
20686    #[inline]
20687    fn syntax(&self) -> &SyntaxNode {
20688        &self.syntax
20689    }
20690}
20691impl AstNode for EnableReplicaRule {
20692    #[inline]
20693    fn can_cast(kind: SyntaxKind) -> bool {
20694        kind == SyntaxKind::ENABLE_REPLICA_RULE
20695    }
20696    #[inline]
20697    fn cast(syntax: SyntaxNode) -> Option<Self> {
20698        if Self::can_cast(syntax.kind()) {
20699            Some(Self { syntax })
20700        } else {
20701            None
20702        }
20703    }
20704    #[inline]
20705    fn syntax(&self) -> &SyntaxNode {
20706        &self.syntax
20707    }
20708}
20709impl AstNode for EnableReplicaTrigger {
20710    #[inline]
20711    fn can_cast(kind: SyntaxKind) -> bool {
20712        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
20713    }
20714    #[inline]
20715    fn cast(syntax: SyntaxNode) -> Option<Self> {
20716        if Self::can_cast(syntax.kind()) {
20717            Some(Self { syntax })
20718        } else {
20719            None
20720        }
20721    }
20722    #[inline]
20723    fn syntax(&self) -> &SyntaxNode {
20724        &self.syntax
20725    }
20726}
20727impl AstNode for EnableRls {
20728    #[inline]
20729    fn can_cast(kind: SyntaxKind) -> bool {
20730        kind == SyntaxKind::ENABLE_RLS
20731    }
20732    #[inline]
20733    fn cast(syntax: SyntaxNode) -> Option<Self> {
20734        if Self::can_cast(syntax.kind()) {
20735            Some(Self { syntax })
20736        } else {
20737            None
20738        }
20739    }
20740    #[inline]
20741    fn syntax(&self) -> &SyntaxNode {
20742        &self.syntax
20743    }
20744}
20745impl AstNode for EnableRule {
20746    #[inline]
20747    fn can_cast(kind: SyntaxKind) -> bool {
20748        kind == SyntaxKind::ENABLE_RULE
20749    }
20750    #[inline]
20751    fn cast(syntax: SyntaxNode) -> Option<Self> {
20752        if Self::can_cast(syntax.kind()) {
20753            Some(Self { syntax })
20754        } else {
20755            None
20756        }
20757    }
20758    #[inline]
20759    fn syntax(&self) -> &SyntaxNode {
20760        &self.syntax
20761    }
20762}
20763impl AstNode for EnableTrigger {
20764    #[inline]
20765    fn can_cast(kind: SyntaxKind) -> bool {
20766        kind == SyntaxKind::ENABLE_TRIGGER
20767    }
20768    #[inline]
20769    fn cast(syntax: SyntaxNode) -> Option<Self> {
20770        if Self::can_cast(syntax.kind()) {
20771            Some(Self { syntax })
20772        } else {
20773            None
20774        }
20775    }
20776    #[inline]
20777    fn syntax(&self) -> &SyntaxNode {
20778        &self.syntax
20779    }
20780}
20781impl AstNode for Enforced {
20782    #[inline]
20783    fn can_cast(kind: SyntaxKind) -> bool {
20784        kind == SyntaxKind::ENFORCED
20785    }
20786    #[inline]
20787    fn cast(syntax: SyntaxNode) -> Option<Self> {
20788        if Self::can_cast(syntax.kind()) {
20789            Some(Self { syntax })
20790        } else {
20791            None
20792        }
20793    }
20794    #[inline]
20795    fn syntax(&self) -> &SyntaxNode {
20796        &self.syntax
20797    }
20798}
20799impl AstNode for EventTriggerWhen {
20800    #[inline]
20801    fn can_cast(kind: SyntaxKind) -> bool {
20802        kind == SyntaxKind::EVENT_TRIGGER_WHEN
20803    }
20804    #[inline]
20805    fn cast(syntax: SyntaxNode) -> Option<Self> {
20806        if Self::can_cast(syntax.kind()) {
20807            Some(Self { syntax })
20808        } else {
20809            None
20810        }
20811    }
20812    #[inline]
20813    fn syntax(&self) -> &SyntaxNode {
20814        &self.syntax
20815    }
20816}
20817impl AstNode for EventTriggerWhenClause {
20818    #[inline]
20819    fn can_cast(kind: SyntaxKind) -> bool {
20820        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
20821    }
20822    #[inline]
20823    fn cast(syntax: SyntaxNode) -> Option<Self> {
20824        if Self::can_cast(syntax.kind()) {
20825            Some(Self { syntax })
20826        } else {
20827            None
20828        }
20829    }
20830    #[inline]
20831    fn syntax(&self) -> &SyntaxNode {
20832        &self.syntax
20833    }
20834}
20835impl AstNode for ExceptTables {
20836    #[inline]
20837    fn can_cast(kind: SyntaxKind) -> bool {
20838        kind == SyntaxKind::EXCEPT_TABLES
20839    }
20840    #[inline]
20841    fn cast(syntax: SyntaxNode) -> Option<Self> {
20842        if Self::can_cast(syntax.kind()) {
20843            Some(Self { syntax })
20844        } else {
20845            None
20846        }
20847    }
20848    #[inline]
20849    fn syntax(&self) -> &SyntaxNode {
20850        &self.syntax
20851    }
20852}
20853impl AstNode for ExcludeConstraint {
20854    #[inline]
20855    fn can_cast(kind: SyntaxKind) -> bool {
20856        kind == SyntaxKind::EXCLUDE_CONSTRAINT
20857    }
20858    #[inline]
20859    fn cast(syntax: SyntaxNode) -> Option<Self> {
20860        if Self::can_cast(syntax.kind()) {
20861            Some(Self { syntax })
20862        } else {
20863            None
20864        }
20865    }
20866    #[inline]
20867    fn syntax(&self) -> &SyntaxNode {
20868        &self.syntax
20869    }
20870}
20871impl AstNode for Execute {
20872    #[inline]
20873    fn can_cast(kind: SyntaxKind) -> bool {
20874        kind == SyntaxKind::EXECUTE
20875    }
20876    #[inline]
20877    fn cast(syntax: SyntaxNode) -> Option<Self> {
20878        if Self::can_cast(syntax.kind()) {
20879            Some(Self { syntax })
20880        } else {
20881            None
20882        }
20883    }
20884    #[inline]
20885    fn syntax(&self) -> &SyntaxNode {
20886        &self.syntax
20887    }
20888}
20889impl AstNode for ExistsFn {
20890    #[inline]
20891    fn can_cast(kind: SyntaxKind) -> bool {
20892        kind == SyntaxKind::EXISTS_FN
20893    }
20894    #[inline]
20895    fn cast(syntax: SyntaxNode) -> Option<Self> {
20896        if Self::can_cast(syntax.kind()) {
20897            Some(Self { syntax })
20898        } else {
20899            None
20900        }
20901    }
20902    #[inline]
20903    fn syntax(&self) -> &SyntaxNode {
20904        &self.syntax
20905    }
20906}
20907impl AstNode for Explain {
20908    #[inline]
20909    fn can_cast(kind: SyntaxKind) -> bool {
20910        kind == SyntaxKind::EXPLAIN
20911    }
20912    #[inline]
20913    fn cast(syntax: SyntaxNode) -> Option<Self> {
20914        if Self::can_cast(syntax.kind()) {
20915            Some(Self { syntax })
20916        } else {
20917            None
20918        }
20919    }
20920    #[inline]
20921    fn syntax(&self) -> &SyntaxNode {
20922        &self.syntax
20923    }
20924}
20925impl AstNode for ExprAsName {
20926    #[inline]
20927    fn can_cast(kind: SyntaxKind) -> bool {
20928        kind == SyntaxKind::EXPR_AS_NAME
20929    }
20930    #[inline]
20931    fn cast(syntax: SyntaxNode) -> Option<Self> {
20932        if Self::can_cast(syntax.kind()) {
20933            Some(Self { syntax })
20934        } else {
20935            None
20936        }
20937    }
20938    #[inline]
20939    fn syntax(&self) -> &SyntaxNode {
20940        &self.syntax
20941    }
20942}
20943impl AstNode for ExprType {
20944    #[inline]
20945    fn can_cast(kind: SyntaxKind) -> bool {
20946        kind == SyntaxKind::EXPR_TYPE
20947    }
20948    #[inline]
20949    fn cast(syntax: SyntaxNode) -> Option<Self> {
20950        if Self::can_cast(syntax.kind()) {
20951            Some(Self { syntax })
20952        } else {
20953            None
20954        }
20955    }
20956    #[inline]
20957    fn syntax(&self) -> &SyntaxNode {
20958        &self.syntax
20959    }
20960}
20961impl AstNode for ExtractFn {
20962    #[inline]
20963    fn can_cast(kind: SyntaxKind) -> bool {
20964        kind == SyntaxKind::EXTRACT_FN
20965    }
20966    #[inline]
20967    fn cast(syntax: SyntaxNode) -> Option<Self> {
20968        if Self::can_cast(syntax.kind()) {
20969            Some(Self { syntax })
20970        } else {
20971            None
20972        }
20973    }
20974    #[inline]
20975    fn syntax(&self) -> &SyntaxNode {
20976        &self.syntax
20977    }
20978}
20979impl AstNode for FatArrow {
20980    #[inline]
20981    fn can_cast(kind: SyntaxKind) -> bool {
20982        kind == SyntaxKind::FAT_ARROW
20983    }
20984    #[inline]
20985    fn cast(syntax: SyntaxNode) -> Option<Self> {
20986        if Self::can_cast(syntax.kind()) {
20987            Some(Self { syntax })
20988        } else {
20989            None
20990        }
20991    }
20992    #[inline]
20993    fn syntax(&self) -> &SyntaxNode {
20994        &self.syntax
20995    }
20996}
20997impl AstNode for FdwOption {
20998    #[inline]
20999    fn can_cast(kind: SyntaxKind) -> bool {
21000        kind == SyntaxKind::FDW_OPTION
21001    }
21002    #[inline]
21003    fn cast(syntax: SyntaxNode) -> Option<Self> {
21004        if Self::can_cast(syntax.kind()) {
21005            Some(Self { syntax })
21006        } else {
21007            None
21008        }
21009    }
21010    #[inline]
21011    fn syntax(&self) -> &SyntaxNode {
21012        &self.syntax
21013    }
21014}
21015impl AstNode for FdwOptionList {
21016    #[inline]
21017    fn can_cast(kind: SyntaxKind) -> bool {
21018        kind == SyntaxKind::FDW_OPTION_LIST
21019    }
21020    #[inline]
21021    fn cast(syntax: SyntaxNode) -> Option<Self> {
21022        if Self::can_cast(syntax.kind()) {
21023            Some(Self { syntax })
21024        } else {
21025            None
21026        }
21027    }
21028    #[inline]
21029    fn syntax(&self) -> &SyntaxNode {
21030        &self.syntax
21031    }
21032}
21033impl AstNode for Fetch {
21034    #[inline]
21035    fn can_cast(kind: SyntaxKind) -> bool {
21036        kind == SyntaxKind::FETCH
21037    }
21038    #[inline]
21039    fn cast(syntax: SyntaxNode) -> Option<Self> {
21040        if Self::can_cast(syntax.kind()) {
21041            Some(Self { syntax })
21042        } else {
21043            None
21044        }
21045    }
21046    #[inline]
21047    fn syntax(&self) -> &SyntaxNode {
21048        &self.syntax
21049    }
21050}
21051impl AstNode for FetchClause {
21052    #[inline]
21053    fn can_cast(kind: SyntaxKind) -> bool {
21054        kind == SyntaxKind::FETCH_CLAUSE
21055    }
21056    #[inline]
21057    fn cast(syntax: SyntaxNode) -> Option<Self> {
21058        if Self::can_cast(syntax.kind()) {
21059            Some(Self { syntax })
21060        } else {
21061            None
21062        }
21063    }
21064    #[inline]
21065    fn syntax(&self) -> &SyntaxNode {
21066        &self.syntax
21067    }
21068}
21069impl AstNode for FieldExpr {
21070    #[inline]
21071    fn can_cast(kind: SyntaxKind) -> bool {
21072        kind == SyntaxKind::FIELD_EXPR
21073    }
21074    #[inline]
21075    fn cast(syntax: SyntaxNode) -> Option<Self> {
21076        if Self::can_cast(syntax.kind()) {
21077            Some(Self { syntax })
21078        } else {
21079            None
21080        }
21081    }
21082    #[inline]
21083    fn syntax(&self) -> &SyntaxNode {
21084        &self.syntax
21085    }
21086}
21087impl AstNode for FilterClause {
21088    #[inline]
21089    fn can_cast(kind: SyntaxKind) -> bool {
21090        kind == SyntaxKind::FILTER_CLAUSE
21091    }
21092    #[inline]
21093    fn cast(syntax: SyntaxNode) -> Option<Self> {
21094        if Self::can_cast(syntax.kind()) {
21095            Some(Self { syntax })
21096        } else {
21097            None
21098        }
21099    }
21100    #[inline]
21101    fn syntax(&self) -> &SyntaxNode {
21102        &self.syntax
21103    }
21104}
21105impl AstNode for ForProvider {
21106    #[inline]
21107    fn can_cast(kind: SyntaxKind) -> bool {
21108        kind == SyntaxKind::FOR_PROVIDER
21109    }
21110    #[inline]
21111    fn cast(syntax: SyntaxNode) -> Option<Self> {
21112        if Self::can_cast(syntax.kind()) {
21113            Some(Self { syntax })
21114        } else {
21115            None
21116        }
21117    }
21118    #[inline]
21119    fn syntax(&self) -> &SyntaxNode {
21120        &self.syntax
21121    }
21122}
21123impl AstNode for ForceRls {
21124    #[inline]
21125    fn can_cast(kind: SyntaxKind) -> bool {
21126        kind == SyntaxKind::FORCE_RLS
21127    }
21128    #[inline]
21129    fn cast(syntax: SyntaxNode) -> Option<Self> {
21130        if Self::can_cast(syntax.kind()) {
21131            Some(Self { syntax })
21132        } else {
21133            None
21134        }
21135    }
21136    #[inline]
21137    fn syntax(&self) -> &SyntaxNode {
21138        &self.syntax
21139    }
21140}
21141impl AstNode for ForeignKeyConstraint {
21142    #[inline]
21143    fn can_cast(kind: SyntaxKind) -> bool {
21144        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21145    }
21146    #[inline]
21147    fn cast(syntax: SyntaxNode) -> Option<Self> {
21148        if Self::can_cast(syntax.kind()) {
21149            Some(Self { syntax })
21150        } else {
21151            None
21152        }
21153    }
21154    #[inline]
21155    fn syntax(&self) -> &SyntaxNode {
21156        &self.syntax
21157    }
21158}
21159impl AstNode for FrameClause {
21160    #[inline]
21161    fn can_cast(kind: SyntaxKind) -> bool {
21162        kind == SyntaxKind::FRAME_CLAUSE
21163    }
21164    #[inline]
21165    fn cast(syntax: SyntaxNode) -> Option<Self> {
21166        if Self::can_cast(syntax.kind()) {
21167            Some(Self { syntax })
21168        } else {
21169            None
21170        }
21171    }
21172    #[inline]
21173    fn syntax(&self) -> &SyntaxNode {
21174        &self.syntax
21175    }
21176}
21177impl AstNode for FromClause {
21178    #[inline]
21179    fn can_cast(kind: SyntaxKind) -> bool {
21180        kind == SyntaxKind::FROM_CLAUSE
21181    }
21182    #[inline]
21183    fn cast(syntax: SyntaxNode) -> Option<Self> {
21184        if Self::can_cast(syntax.kind()) {
21185            Some(Self { syntax })
21186        } else {
21187            None
21188        }
21189    }
21190    #[inline]
21191    fn syntax(&self) -> &SyntaxNode {
21192        &self.syntax
21193    }
21194}
21195impl AstNode for FromItem {
21196    #[inline]
21197    fn can_cast(kind: SyntaxKind) -> bool {
21198        kind == SyntaxKind::FROM_ITEM
21199    }
21200    #[inline]
21201    fn cast(syntax: SyntaxNode) -> Option<Self> {
21202        if Self::can_cast(syntax.kind()) {
21203            Some(Self { syntax })
21204        } else {
21205            None
21206        }
21207    }
21208    #[inline]
21209    fn syntax(&self) -> &SyntaxNode {
21210        &self.syntax
21211    }
21212}
21213impl AstNode for FromServer {
21214    #[inline]
21215    fn can_cast(kind: SyntaxKind) -> bool {
21216        kind == SyntaxKind::FROM_SERVER
21217    }
21218    #[inline]
21219    fn cast(syntax: SyntaxNode) -> Option<Self> {
21220        if Self::can_cast(syntax.kind()) {
21221            Some(Self { syntax })
21222        } else {
21223            None
21224        }
21225    }
21226    #[inline]
21227    fn syntax(&self) -> &SyntaxNode {
21228        &self.syntax
21229    }
21230}
21231impl AstNode for FromTable {
21232    #[inline]
21233    fn can_cast(kind: SyntaxKind) -> bool {
21234        kind == SyntaxKind::FROM_TABLE
21235    }
21236    #[inline]
21237    fn cast(syntax: SyntaxNode) -> Option<Self> {
21238        if Self::can_cast(syntax.kind()) {
21239            Some(Self { syntax })
21240        } else {
21241            None
21242        }
21243    }
21244    #[inline]
21245    fn syntax(&self) -> &SyntaxNode {
21246        &self.syntax
21247    }
21248}
21249impl AstNode for FuncOptionList {
21250    #[inline]
21251    fn can_cast(kind: SyntaxKind) -> bool {
21252        kind == SyntaxKind::FUNC_OPTION_LIST
21253    }
21254    #[inline]
21255    fn cast(syntax: SyntaxNode) -> Option<Self> {
21256        if Self::can_cast(syntax.kind()) {
21257            Some(Self { syntax })
21258        } else {
21259            None
21260        }
21261    }
21262    #[inline]
21263    fn syntax(&self) -> &SyntaxNode {
21264        &self.syntax
21265    }
21266}
21267impl AstNode for FunctionSig {
21268    #[inline]
21269    fn can_cast(kind: SyntaxKind) -> bool {
21270        kind == SyntaxKind::FUNCTION_SIG
21271    }
21272    #[inline]
21273    fn cast(syntax: SyntaxNode) -> Option<Self> {
21274        if Self::can_cast(syntax.kind()) {
21275            Some(Self { syntax })
21276        } else {
21277            None
21278        }
21279    }
21280    #[inline]
21281    fn syntax(&self) -> &SyntaxNode {
21282        &self.syntax
21283    }
21284}
21285impl AstNode for FunctionSigList {
21286    #[inline]
21287    fn can_cast(kind: SyntaxKind) -> bool {
21288        kind == SyntaxKind::FUNCTION_SIG_LIST
21289    }
21290    #[inline]
21291    fn cast(syntax: SyntaxNode) -> Option<Self> {
21292        if Self::can_cast(syntax.kind()) {
21293            Some(Self { syntax })
21294        } else {
21295            None
21296        }
21297    }
21298    #[inline]
21299    fn syntax(&self) -> &SyntaxNode {
21300        &self.syntax
21301    }
21302}
21303impl AstNode for GeneratedConstraint {
21304    #[inline]
21305    fn can_cast(kind: SyntaxKind) -> bool {
21306        kind == SyntaxKind::GENERATED_CONSTRAINT
21307    }
21308    #[inline]
21309    fn cast(syntax: SyntaxNode) -> Option<Self> {
21310        if Self::can_cast(syntax.kind()) {
21311            Some(Self { syntax })
21312        } else {
21313            None
21314        }
21315    }
21316    #[inline]
21317    fn syntax(&self) -> &SyntaxNode {
21318        &self.syntax
21319    }
21320}
21321impl AstNode for Grant {
21322    #[inline]
21323    fn can_cast(kind: SyntaxKind) -> bool {
21324        kind == SyntaxKind::GRANT
21325    }
21326    #[inline]
21327    fn cast(syntax: SyntaxNode) -> Option<Self> {
21328        if Self::can_cast(syntax.kind()) {
21329            Some(Self { syntax })
21330        } else {
21331            None
21332        }
21333    }
21334    #[inline]
21335    fn syntax(&self) -> &SyntaxNode {
21336        &self.syntax
21337    }
21338}
21339impl AstNode for GrantDefaultPrivileges {
21340    #[inline]
21341    fn can_cast(kind: SyntaxKind) -> bool {
21342        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21343    }
21344    #[inline]
21345    fn cast(syntax: SyntaxNode) -> Option<Self> {
21346        if Self::can_cast(syntax.kind()) {
21347            Some(Self { syntax })
21348        } else {
21349            None
21350        }
21351    }
21352    #[inline]
21353    fn syntax(&self) -> &SyntaxNode {
21354        &self.syntax
21355    }
21356}
21357impl AstNode for GroupByClause {
21358    #[inline]
21359    fn can_cast(kind: SyntaxKind) -> bool {
21360        kind == SyntaxKind::GROUP_BY_CLAUSE
21361    }
21362    #[inline]
21363    fn cast(syntax: SyntaxNode) -> Option<Self> {
21364        if Self::can_cast(syntax.kind()) {
21365            Some(Self { syntax })
21366        } else {
21367            None
21368        }
21369    }
21370    #[inline]
21371    fn syntax(&self) -> &SyntaxNode {
21372        &self.syntax
21373    }
21374}
21375impl AstNode for GroupByList {
21376    #[inline]
21377    fn can_cast(kind: SyntaxKind) -> bool {
21378        kind == SyntaxKind::GROUP_BY_LIST
21379    }
21380    #[inline]
21381    fn cast(syntax: SyntaxNode) -> Option<Self> {
21382        if Self::can_cast(syntax.kind()) {
21383            Some(Self { syntax })
21384        } else {
21385            None
21386        }
21387    }
21388    #[inline]
21389    fn syntax(&self) -> &SyntaxNode {
21390        &self.syntax
21391    }
21392}
21393impl AstNode for GroupingCube {
21394    #[inline]
21395    fn can_cast(kind: SyntaxKind) -> bool {
21396        kind == SyntaxKind::GROUPING_CUBE
21397    }
21398    #[inline]
21399    fn cast(syntax: SyntaxNode) -> Option<Self> {
21400        if Self::can_cast(syntax.kind()) {
21401            Some(Self { syntax })
21402        } else {
21403            None
21404        }
21405    }
21406    #[inline]
21407    fn syntax(&self) -> &SyntaxNode {
21408        &self.syntax
21409    }
21410}
21411impl AstNode for GroupingExpr {
21412    #[inline]
21413    fn can_cast(kind: SyntaxKind) -> bool {
21414        kind == SyntaxKind::GROUPING_EXPR
21415    }
21416    #[inline]
21417    fn cast(syntax: SyntaxNode) -> Option<Self> {
21418        if Self::can_cast(syntax.kind()) {
21419            Some(Self { syntax })
21420        } else {
21421            None
21422        }
21423    }
21424    #[inline]
21425    fn syntax(&self) -> &SyntaxNode {
21426        &self.syntax
21427    }
21428}
21429impl AstNode for GroupingRollup {
21430    #[inline]
21431    fn can_cast(kind: SyntaxKind) -> bool {
21432        kind == SyntaxKind::GROUPING_ROLLUP
21433    }
21434    #[inline]
21435    fn cast(syntax: SyntaxNode) -> Option<Self> {
21436        if Self::can_cast(syntax.kind()) {
21437            Some(Self { syntax })
21438        } else {
21439            None
21440        }
21441    }
21442    #[inline]
21443    fn syntax(&self) -> &SyntaxNode {
21444        &self.syntax
21445    }
21446}
21447impl AstNode for GroupingSets {
21448    #[inline]
21449    fn can_cast(kind: SyntaxKind) -> bool {
21450        kind == SyntaxKind::GROUPING_SETS
21451    }
21452    #[inline]
21453    fn cast(syntax: SyntaxNode) -> Option<Self> {
21454        if Self::can_cast(syntax.kind()) {
21455            Some(Self { syntax })
21456        } else {
21457            None
21458        }
21459    }
21460    #[inline]
21461    fn syntax(&self) -> &SyntaxNode {
21462        &self.syntax
21463    }
21464}
21465impl AstNode for Gteq {
21466    #[inline]
21467    fn can_cast(kind: SyntaxKind) -> bool {
21468        kind == SyntaxKind::GTEQ
21469    }
21470    #[inline]
21471    fn cast(syntax: SyntaxNode) -> Option<Self> {
21472        if Self::can_cast(syntax.kind()) {
21473            Some(Self { syntax })
21474        } else {
21475            None
21476        }
21477    }
21478    #[inline]
21479    fn syntax(&self) -> &SyntaxNode {
21480        &self.syntax
21481    }
21482}
21483impl AstNode for HandlerClause {
21484    #[inline]
21485    fn can_cast(kind: SyntaxKind) -> bool {
21486        kind == SyntaxKind::HANDLER_CLAUSE
21487    }
21488    #[inline]
21489    fn cast(syntax: SyntaxNode) -> Option<Self> {
21490        if Self::can_cast(syntax.kind()) {
21491            Some(Self { syntax })
21492        } else {
21493            None
21494        }
21495    }
21496    #[inline]
21497    fn syntax(&self) -> &SyntaxNode {
21498        &self.syntax
21499    }
21500}
21501impl AstNode for HavingClause {
21502    #[inline]
21503    fn can_cast(kind: SyntaxKind) -> bool {
21504        kind == SyntaxKind::HAVING_CLAUSE
21505    }
21506    #[inline]
21507    fn cast(syntax: SyntaxNode) -> Option<Self> {
21508        if Self::can_cast(syntax.kind()) {
21509            Some(Self { syntax })
21510        } else {
21511            None
21512        }
21513    }
21514    #[inline]
21515    fn syntax(&self) -> &SyntaxNode {
21516        &self.syntax
21517    }
21518}
21519impl AstNode for IfExists {
21520    #[inline]
21521    fn can_cast(kind: SyntaxKind) -> bool {
21522        kind == SyntaxKind::IF_EXISTS
21523    }
21524    #[inline]
21525    fn cast(syntax: SyntaxNode) -> Option<Self> {
21526        if Self::can_cast(syntax.kind()) {
21527            Some(Self { syntax })
21528        } else {
21529            None
21530        }
21531    }
21532    #[inline]
21533    fn syntax(&self) -> &SyntaxNode {
21534        &self.syntax
21535    }
21536}
21537impl AstNode for IfNotExists {
21538    #[inline]
21539    fn can_cast(kind: SyntaxKind) -> bool {
21540        kind == SyntaxKind::IF_NOT_EXISTS
21541    }
21542    #[inline]
21543    fn cast(syntax: SyntaxNode) -> Option<Self> {
21544        if Self::can_cast(syntax.kind()) {
21545            Some(Self { syntax })
21546        } else {
21547            None
21548        }
21549    }
21550    #[inline]
21551    fn syntax(&self) -> &SyntaxNode {
21552        &self.syntax
21553    }
21554}
21555impl AstNode for ImportForeignSchema {
21556    #[inline]
21557    fn can_cast(kind: SyntaxKind) -> bool {
21558        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
21559    }
21560    #[inline]
21561    fn cast(syntax: SyntaxNode) -> Option<Self> {
21562        if Self::can_cast(syntax.kind()) {
21563            Some(Self { syntax })
21564        } else {
21565            None
21566        }
21567    }
21568    #[inline]
21569    fn syntax(&self) -> &SyntaxNode {
21570        &self.syntax
21571    }
21572}
21573impl AstNode for IndexExpr {
21574    #[inline]
21575    fn can_cast(kind: SyntaxKind) -> bool {
21576        kind == SyntaxKind::INDEX_EXPR
21577    }
21578    #[inline]
21579    fn cast(syntax: SyntaxNode) -> Option<Self> {
21580        if Self::can_cast(syntax.kind()) {
21581            Some(Self { syntax })
21582        } else {
21583            None
21584        }
21585    }
21586    #[inline]
21587    fn syntax(&self) -> &SyntaxNode {
21588        &self.syntax
21589    }
21590}
21591impl AstNode for Inherit {
21592    #[inline]
21593    fn can_cast(kind: SyntaxKind) -> bool {
21594        kind == SyntaxKind::INHERIT
21595    }
21596    #[inline]
21597    fn cast(syntax: SyntaxNode) -> Option<Self> {
21598        if Self::can_cast(syntax.kind()) {
21599            Some(Self { syntax })
21600        } else {
21601            None
21602        }
21603    }
21604    #[inline]
21605    fn syntax(&self) -> &SyntaxNode {
21606        &self.syntax
21607    }
21608}
21609impl AstNode for InheritTable {
21610    #[inline]
21611    fn can_cast(kind: SyntaxKind) -> bool {
21612        kind == SyntaxKind::INHERIT_TABLE
21613    }
21614    #[inline]
21615    fn cast(syntax: SyntaxNode) -> Option<Self> {
21616        if Self::can_cast(syntax.kind()) {
21617            Some(Self { syntax })
21618        } else {
21619            None
21620        }
21621    }
21622    #[inline]
21623    fn syntax(&self) -> &SyntaxNode {
21624        &self.syntax
21625    }
21626}
21627impl AstNode for Inherits {
21628    #[inline]
21629    fn can_cast(kind: SyntaxKind) -> bool {
21630        kind == SyntaxKind::INHERITS
21631    }
21632    #[inline]
21633    fn cast(syntax: SyntaxNode) -> Option<Self> {
21634        if Self::can_cast(syntax.kind()) {
21635            Some(Self { syntax })
21636        } else {
21637            None
21638        }
21639    }
21640    #[inline]
21641    fn syntax(&self) -> &SyntaxNode {
21642        &self.syntax
21643    }
21644}
21645impl AstNode for InitiallyDeferredConstraintOption {
21646    #[inline]
21647    fn can_cast(kind: SyntaxKind) -> bool {
21648        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
21649    }
21650    #[inline]
21651    fn cast(syntax: SyntaxNode) -> Option<Self> {
21652        if Self::can_cast(syntax.kind()) {
21653            Some(Self { syntax })
21654        } else {
21655            None
21656        }
21657    }
21658    #[inline]
21659    fn syntax(&self) -> &SyntaxNode {
21660        &self.syntax
21661    }
21662}
21663impl AstNode for InitiallyImmediateConstraintOption {
21664    #[inline]
21665    fn can_cast(kind: SyntaxKind) -> bool {
21666        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
21667    }
21668    #[inline]
21669    fn cast(syntax: SyntaxNode) -> Option<Self> {
21670        if Self::can_cast(syntax.kind()) {
21671            Some(Self { syntax })
21672        } else {
21673            None
21674        }
21675    }
21676    #[inline]
21677    fn syntax(&self) -> &SyntaxNode {
21678        &self.syntax
21679    }
21680}
21681impl AstNode for Insert {
21682    #[inline]
21683    fn can_cast(kind: SyntaxKind) -> bool {
21684        kind == SyntaxKind::INSERT
21685    }
21686    #[inline]
21687    fn cast(syntax: SyntaxNode) -> Option<Self> {
21688        if Self::can_cast(syntax.kind()) {
21689            Some(Self { syntax })
21690        } else {
21691            None
21692        }
21693    }
21694    #[inline]
21695    fn syntax(&self) -> &SyntaxNode {
21696        &self.syntax
21697    }
21698}
21699impl AstNode for IntervalType {
21700    #[inline]
21701    fn can_cast(kind: SyntaxKind) -> bool {
21702        kind == SyntaxKind::INTERVAL_TYPE
21703    }
21704    #[inline]
21705    fn cast(syntax: SyntaxNode) -> Option<Self> {
21706        if Self::can_cast(syntax.kind()) {
21707            Some(Self { syntax })
21708        } else {
21709            None
21710        }
21711    }
21712    #[inline]
21713    fn syntax(&self) -> &SyntaxNode {
21714        &self.syntax
21715    }
21716}
21717impl AstNode for IntoClause {
21718    #[inline]
21719    fn can_cast(kind: SyntaxKind) -> bool {
21720        kind == SyntaxKind::INTO_CLAUSE
21721    }
21722    #[inline]
21723    fn cast(syntax: SyntaxNode) -> Option<Self> {
21724        if Self::can_cast(syntax.kind()) {
21725            Some(Self { syntax })
21726        } else {
21727            None
21728        }
21729    }
21730    #[inline]
21731    fn syntax(&self) -> &SyntaxNode {
21732        &self.syntax
21733    }
21734}
21735impl AstNode for IntoSchema {
21736    #[inline]
21737    fn can_cast(kind: SyntaxKind) -> bool {
21738        kind == SyntaxKind::INTO_SCHEMA
21739    }
21740    #[inline]
21741    fn cast(syntax: SyntaxNode) -> Option<Self> {
21742        if Self::can_cast(syntax.kind()) {
21743            Some(Self { syntax })
21744        } else {
21745            None
21746        }
21747    }
21748    #[inline]
21749    fn syntax(&self) -> &SyntaxNode {
21750        &self.syntax
21751    }
21752}
21753impl AstNode for IsDistinctFrom {
21754    #[inline]
21755    fn can_cast(kind: SyntaxKind) -> bool {
21756        kind == SyntaxKind::IS_DISTINCT_FROM
21757    }
21758    #[inline]
21759    fn cast(syntax: SyntaxNode) -> Option<Self> {
21760        if Self::can_cast(syntax.kind()) {
21761            Some(Self { syntax })
21762        } else {
21763            None
21764        }
21765    }
21766    #[inline]
21767    fn syntax(&self) -> &SyntaxNode {
21768        &self.syntax
21769    }
21770}
21771impl AstNode for IsJson {
21772    #[inline]
21773    fn can_cast(kind: SyntaxKind) -> bool {
21774        kind == SyntaxKind::IS_JSON
21775    }
21776    #[inline]
21777    fn cast(syntax: SyntaxNode) -> Option<Self> {
21778        if Self::can_cast(syntax.kind()) {
21779            Some(Self { syntax })
21780        } else {
21781            None
21782        }
21783    }
21784    #[inline]
21785    fn syntax(&self) -> &SyntaxNode {
21786        &self.syntax
21787    }
21788}
21789impl AstNode for IsJsonArray {
21790    #[inline]
21791    fn can_cast(kind: SyntaxKind) -> bool {
21792        kind == SyntaxKind::IS_JSON_ARRAY
21793    }
21794    #[inline]
21795    fn cast(syntax: SyntaxNode) -> Option<Self> {
21796        if Self::can_cast(syntax.kind()) {
21797            Some(Self { syntax })
21798        } else {
21799            None
21800        }
21801    }
21802    #[inline]
21803    fn syntax(&self) -> &SyntaxNode {
21804        &self.syntax
21805    }
21806}
21807impl AstNode for IsJsonObject {
21808    #[inline]
21809    fn can_cast(kind: SyntaxKind) -> bool {
21810        kind == SyntaxKind::IS_JSON_OBJECT
21811    }
21812    #[inline]
21813    fn cast(syntax: SyntaxNode) -> Option<Self> {
21814        if Self::can_cast(syntax.kind()) {
21815            Some(Self { syntax })
21816        } else {
21817            None
21818        }
21819    }
21820    #[inline]
21821    fn syntax(&self) -> &SyntaxNode {
21822        &self.syntax
21823    }
21824}
21825impl AstNode for IsJsonScalar {
21826    #[inline]
21827    fn can_cast(kind: SyntaxKind) -> bool {
21828        kind == SyntaxKind::IS_JSON_SCALAR
21829    }
21830    #[inline]
21831    fn cast(syntax: SyntaxNode) -> Option<Self> {
21832        if Self::can_cast(syntax.kind()) {
21833            Some(Self { syntax })
21834        } else {
21835            None
21836        }
21837    }
21838    #[inline]
21839    fn syntax(&self) -> &SyntaxNode {
21840        &self.syntax
21841    }
21842}
21843impl AstNode for IsJsonValue {
21844    #[inline]
21845    fn can_cast(kind: SyntaxKind) -> bool {
21846        kind == SyntaxKind::IS_JSON_VALUE
21847    }
21848    #[inline]
21849    fn cast(syntax: SyntaxNode) -> Option<Self> {
21850        if Self::can_cast(syntax.kind()) {
21851            Some(Self { syntax })
21852        } else {
21853            None
21854        }
21855    }
21856    #[inline]
21857    fn syntax(&self) -> &SyntaxNode {
21858        &self.syntax
21859    }
21860}
21861impl AstNode for IsNormalized {
21862    #[inline]
21863    fn can_cast(kind: SyntaxKind) -> bool {
21864        kind == SyntaxKind::IS_NORMALIZED
21865    }
21866    #[inline]
21867    fn cast(syntax: SyntaxNode) -> Option<Self> {
21868        if Self::can_cast(syntax.kind()) {
21869            Some(Self { syntax })
21870        } else {
21871            None
21872        }
21873    }
21874    #[inline]
21875    fn syntax(&self) -> &SyntaxNode {
21876        &self.syntax
21877    }
21878}
21879impl AstNode for IsNot {
21880    #[inline]
21881    fn can_cast(kind: SyntaxKind) -> bool {
21882        kind == SyntaxKind::IS_NOT
21883    }
21884    #[inline]
21885    fn cast(syntax: SyntaxNode) -> Option<Self> {
21886        if Self::can_cast(syntax.kind()) {
21887            Some(Self { syntax })
21888        } else {
21889            None
21890        }
21891    }
21892    #[inline]
21893    fn syntax(&self) -> &SyntaxNode {
21894        &self.syntax
21895    }
21896}
21897impl AstNode for IsNotDistinctFrom {
21898    #[inline]
21899    fn can_cast(kind: SyntaxKind) -> bool {
21900        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
21901    }
21902    #[inline]
21903    fn cast(syntax: SyntaxNode) -> Option<Self> {
21904        if Self::can_cast(syntax.kind()) {
21905            Some(Self { syntax })
21906        } else {
21907            None
21908        }
21909    }
21910    #[inline]
21911    fn syntax(&self) -> &SyntaxNode {
21912        &self.syntax
21913    }
21914}
21915impl AstNode for IsNotJson {
21916    #[inline]
21917    fn can_cast(kind: SyntaxKind) -> bool {
21918        kind == SyntaxKind::IS_NOT_JSON
21919    }
21920    #[inline]
21921    fn cast(syntax: SyntaxNode) -> Option<Self> {
21922        if Self::can_cast(syntax.kind()) {
21923            Some(Self { syntax })
21924        } else {
21925            None
21926        }
21927    }
21928    #[inline]
21929    fn syntax(&self) -> &SyntaxNode {
21930        &self.syntax
21931    }
21932}
21933impl AstNode for IsNotJsonArray {
21934    #[inline]
21935    fn can_cast(kind: SyntaxKind) -> bool {
21936        kind == SyntaxKind::IS_NOT_JSON_ARRAY
21937    }
21938    #[inline]
21939    fn cast(syntax: SyntaxNode) -> Option<Self> {
21940        if Self::can_cast(syntax.kind()) {
21941            Some(Self { syntax })
21942        } else {
21943            None
21944        }
21945    }
21946    #[inline]
21947    fn syntax(&self) -> &SyntaxNode {
21948        &self.syntax
21949    }
21950}
21951impl AstNode for IsNotJsonObject {
21952    #[inline]
21953    fn can_cast(kind: SyntaxKind) -> bool {
21954        kind == SyntaxKind::IS_NOT_JSON_OBJECT
21955    }
21956    #[inline]
21957    fn cast(syntax: SyntaxNode) -> Option<Self> {
21958        if Self::can_cast(syntax.kind()) {
21959            Some(Self { syntax })
21960        } else {
21961            None
21962        }
21963    }
21964    #[inline]
21965    fn syntax(&self) -> &SyntaxNode {
21966        &self.syntax
21967    }
21968}
21969impl AstNode for IsNotJsonScalar {
21970    #[inline]
21971    fn can_cast(kind: SyntaxKind) -> bool {
21972        kind == SyntaxKind::IS_NOT_JSON_SCALAR
21973    }
21974    #[inline]
21975    fn cast(syntax: SyntaxNode) -> Option<Self> {
21976        if Self::can_cast(syntax.kind()) {
21977            Some(Self { syntax })
21978        } else {
21979            None
21980        }
21981    }
21982    #[inline]
21983    fn syntax(&self) -> &SyntaxNode {
21984        &self.syntax
21985    }
21986}
21987impl AstNode for IsNotJsonValue {
21988    #[inline]
21989    fn can_cast(kind: SyntaxKind) -> bool {
21990        kind == SyntaxKind::IS_NOT_JSON_VALUE
21991    }
21992    #[inline]
21993    fn cast(syntax: SyntaxNode) -> Option<Self> {
21994        if Self::can_cast(syntax.kind()) {
21995            Some(Self { syntax })
21996        } else {
21997            None
21998        }
21999    }
22000    #[inline]
22001    fn syntax(&self) -> &SyntaxNode {
22002        &self.syntax
22003    }
22004}
22005impl AstNode for IsNotNormalized {
22006    #[inline]
22007    fn can_cast(kind: SyntaxKind) -> bool {
22008        kind == SyntaxKind::IS_NOT_NORMALIZED
22009    }
22010    #[inline]
22011    fn cast(syntax: SyntaxNode) -> Option<Self> {
22012        if Self::can_cast(syntax.kind()) {
22013            Some(Self { syntax })
22014        } else {
22015            None
22016        }
22017    }
22018    #[inline]
22019    fn syntax(&self) -> &SyntaxNode {
22020        &self.syntax
22021    }
22022}
22023impl AstNode for Join {
22024    #[inline]
22025    fn can_cast(kind: SyntaxKind) -> bool {
22026        kind == SyntaxKind::JOIN
22027    }
22028    #[inline]
22029    fn cast(syntax: SyntaxNode) -> Option<Self> {
22030        if Self::can_cast(syntax.kind()) {
22031            Some(Self { syntax })
22032        } else {
22033            None
22034        }
22035    }
22036    #[inline]
22037    fn syntax(&self) -> &SyntaxNode {
22038        &self.syntax
22039    }
22040}
22041impl AstNode for JoinCross {
22042    #[inline]
22043    fn can_cast(kind: SyntaxKind) -> bool {
22044        kind == SyntaxKind::JOIN_CROSS
22045    }
22046    #[inline]
22047    fn cast(syntax: SyntaxNode) -> Option<Self> {
22048        if Self::can_cast(syntax.kind()) {
22049            Some(Self { syntax })
22050        } else {
22051            None
22052        }
22053    }
22054    #[inline]
22055    fn syntax(&self) -> &SyntaxNode {
22056        &self.syntax
22057    }
22058}
22059impl AstNode for JoinExpr {
22060    #[inline]
22061    fn can_cast(kind: SyntaxKind) -> bool {
22062        kind == SyntaxKind::JOIN_EXPR
22063    }
22064    #[inline]
22065    fn cast(syntax: SyntaxNode) -> Option<Self> {
22066        if Self::can_cast(syntax.kind()) {
22067            Some(Self { syntax })
22068        } else {
22069            None
22070        }
22071    }
22072    #[inline]
22073    fn syntax(&self) -> &SyntaxNode {
22074        &self.syntax
22075    }
22076}
22077impl AstNode for JoinFull {
22078    #[inline]
22079    fn can_cast(kind: SyntaxKind) -> bool {
22080        kind == SyntaxKind::JOIN_FULL
22081    }
22082    #[inline]
22083    fn cast(syntax: SyntaxNode) -> Option<Self> {
22084        if Self::can_cast(syntax.kind()) {
22085            Some(Self { syntax })
22086        } else {
22087            None
22088        }
22089    }
22090    #[inline]
22091    fn syntax(&self) -> &SyntaxNode {
22092        &self.syntax
22093    }
22094}
22095impl AstNode for JoinInner {
22096    #[inline]
22097    fn can_cast(kind: SyntaxKind) -> bool {
22098        kind == SyntaxKind::JOIN_INNER
22099    }
22100    #[inline]
22101    fn cast(syntax: SyntaxNode) -> Option<Self> {
22102        if Self::can_cast(syntax.kind()) {
22103            Some(Self { syntax })
22104        } else {
22105            None
22106        }
22107    }
22108    #[inline]
22109    fn syntax(&self) -> &SyntaxNode {
22110        &self.syntax
22111    }
22112}
22113impl AstNode for JoinLeft {
22114    #[inline]
22115    fn can_cast(kind: SyntaxKind) -> bool {
22116        kind == SyntaxKind::JOIN_LEFT
22117    }
22118    #[inline]
22119    fn cast(syntax: SyntaxNode) -> Option<Self> {
22120        if Self::can_cast(syntax.kind()) {
22121            Some(Self { syntax })
22122        } else {
22123            None
22124        }
22125    }
22126    #[inline]
22127    fn syntax(&self) -> &SyntaxNode {
22128        &self.syntax
22129    }
22130}
22131impl AstNode for JoinRight {
22132    #[inline]
22133    fn can_cast(kind: SyntaxKind) -> bool {
22134        kind == SyntaxKind::JOIN_RIGHT
22135    }
22136    #[inline]
22137    fn cast(syntax: SyntaxNode) -> Option<Self> {
22138        if Self::can_cast(syntax.kind()) {
22139            Some(Self { syntax })
22140        } else {
22141            None
22142        }
22143    }
22144    #[inline]
22145    fn syntax(&self) -> &SyntaxNode {
22146        &self.syntax
22147    }
22148}
22149impl AstNode for JoinUsingClause {
22150    #[inline]
22151    fn can_cast(kind: SyntaxKind) -> bool {
22152        kind == SyntaxKind::JOIN_USING_CLAUSE
22153    }
22154    #[inline]
22155    fn cast(syntax: SyntaxNode) -> Option<Self> {
22156        if Self::can_cast(syntax.kind()) {
22157            Some(Self { syntax })
22158        } else {
22159            None
22160        }
22161    }
22162    #[inline]
22163    fn syntax(&self) -> &SyntaxNode {
22164        &self.syntax
22165    }
22166}
22167impl AstNode for JsonArrayAggFn {
22168    #[inline]
22169    fn can_cast(kind: SyntaxKind) -> bool {
22170        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22171    }
22172    #[inline]
22173    fn cast(syntax: SyntaxNode) -> Option<Self> {
22174        if Self::can_cast(syntax.kind()) {
22175            Some(Self { syntax })
22176        } else {
22177            None
22178        }
22179    }
22180    #[inline]
22181    fn syntax(&self) -> &SyntaxNode {
22182        &self.syntax
22183    }
22184}
22185impl AstNode for JsonArrayFn {
22186    #[inline]
22187    fn can_cast(kind: SyntaxKind) -> bool {
22188        kind == SyntaxKind::JSON_ARRAY_FN
22189    }
22190    #[inline]
22191    fn cast(syntax: SyntaxNode) -> Option<Self> {
22192        if Self::can_cast(syntax.kind()) {
22193            Some(Self { syntax })
22194        } else {
22195            None
22196        }
22197    }
22198    #[inline]
22199    fn syntax(&self) -> &SyntaxNode {
22200        &self.syntax
22201    }
22202}
22203impl AstNode for JsonBehaviorClause {
22204    #[inline]
22205    fn can_cast(kind: SyntaxKind) -> bool {
22206        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22207    }
22208    #[inline]
22209    fn cast(syntax: SyntaxNode) -> Option<Self> {
22210        if Self::can_cast(syntax.kind()) {
22211            Some(Self { syntax })
22212        } else {
22213            None
22214        }
22215    }
22216    #[inline]
22217    fn syntax(&self) -> &SyntaxNode {
22218        &self.syntax
22219    }
22220}
22221impl AstNode for JsonBehaviorDefault {
22222    #[inline]
22223    fn can_cast(kind: SyntaxKind) -> bool {
22224        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22225    }
22226    #[inline]
22227    fn cast(syntax: SyntaxNode) -> Option<Self> {
22228        if Self::can_cast(syntax.kind()) {
22229            Some(Self { syntax })
22230        } else {
22231            None
22232        }
22233    }
22234    #[inline]
22235    fn syntax(&self) -> &SyntaxNode {
22236        &self.syntax
22237    }
22238}
22239impl AstNode for JsonBehaviorEmptyArray {
22240    #[inline]
22241    fn can_cast(kind: SyntaxKind) -> bool {
22242        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22243    }
22244    #[inline]
22245    fn cast(syntax: SyntaxNode) -> Option<Self> {
22246        if Self::can_cast(syntax.kind()) {
22247            Some(Self { syntax })
22248        } else {
22249            None
22250        }
22251    }
22252    #[inline]
22253    fn syntax(&self) -> &SyntaxNode {
22254        &self.syntax
22255    }
22256}
22257impl AstNode for JsonBehaviorEmptyObject {
22258    #[inline]
22259    fn can_cast(kind: SyntaxKind) -> bool {
22260        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22261    }
22262    #[inline]
22263    fn cast(syntax: SyntaxNode) -> Option<Self> {
22264        if Self::can_cast(syntax.kind()) {
22265            Some(Self { syntax })
22266        } else {
22267            None
22268        }
22269    }
22270    #[inline]
22271    fn syntax(&self) -> &SyntaxNode {
22272        &self.syntax
22273    }
22274}
22275impl AstNode for JsonBehaviorError {
22276    #[inline]
22277    fn can_cast(kind: SyntaxKind) -> bool {
22278        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22279    }
22280    #[inline]
22281    fn cast(syntax: SyntaxNode) -> Option<Self> {
22282        if Self::can_cast(syntax.kind()) {
22283            Some(Self { syntax })
22284        } else {
22285            None
22286        }
22287    }
22288    #[inline]
22289    fn syntax(&self) -> &SyntaxNode {
22290        &self.syntax
22291    }
22292}
22293impl AstNode for JsonBehaviorFalse {
22294    #[inline]
22295    fn can_cast(kind: SyntaxKind) -> bool {
22296        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22297    }
22298    #[inline]
22299    fn cast(syntax: SyntaxNode) -> Option<Self> {
22300        if Self::can_cast(syntax.kind()) {
22301            Some(Self { syntax })
22302        } else {
22303            None
22304        }
22305    }
22306    #[inline]
22307    fn syntax(&self) -> &SyntaxNode {
22308        &self.syntax
22309    }
22310}
22311impl AstNode for JsonBehaviorNull {
22312    #[inline]
22313    fn can_cast(kind: SyntaxKind) -> bool {
22314        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22315    }
22316    #[inline]
22317    fn cast(syntax: SyntaxNode) -> Option<Self> {
22318        if Self::can_cast(syntax.kind()) {
22319            Some(Self { syntax })
22320        } else {
22321            None
22322        }
22323    }
22324    #[inline]
22325    fn syntax(&self) -> &SyntaxNode {
22326        &self.syntax
22327    }
22328}
22329impl AstNode for JsonBehaviorTrue {
22330    #[inline]
22331    fn can_cast(kind: SyntaxKind) -> bool {
22332        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22333    }
22334    #[inline]
22335    fn cast(syntax: SyntaxNode) -> Option<Self> {
22336        if Self::can_cast(syntax.kind()) {
22337            Some(Self { syntax })
22338        } else {
22339            None
22340        }
22341    }
22342    #[inline]
22343    fn syntax(&self) -> &SyntaxNode {
22344        &self.syntax
22345    }
22346}
22347impl AstNode for JsonBehaviorUnknown {
22348    #[inline]
22349    fn can_cast(kind: SyntaxKind) -> bool {
22350        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22351    }
22352    #[inline]
22353    fn cast(syntax: SyntaxNode) -> Option<Self> {
22354        if Self::can_cast(syntax.kind()) {
22355            Some(Self { syntax })
22356        } else {
22357            None
22358        }
22359    }
22360    #[inline]
22361    fn syntax(&self) -> &SyntaxNode {
22362        &self.syntax
22363    }
22364}
22365impl AstNode for JsonEncodingClause {
22366    #[inline]
22367    fn can_cast(kind: SyntaxKind) -> bool {
22368        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22369    }
22370    #[inline]
22371    fn cast(syntax: SyntaxNode) -> Option<Self> {
22372        if Self::can_cast(syntax.kind()) {
22373            Some(Self { syntax })
22374        } else {
22375            None
22376        }
22377    }
22378    #[inline]
22379    fn syntax(&self) -> &SyntaxNode {
22380        &self.syntax
22381    }
22382}
22383impl AstNode for JsonExistsFn {
22384    #[inline]
22385    fn can_cast(kind: SyntaxKind) -> bool {
22386        kind == SyntaxKind::JSON_EXISTS_FN
22387    }
22388    #[inline]
22389    fn cast(syntax: SyntaxNode) -> Option<Self> {
22390        if Self::can_cast(syntax.kind()) {
22391            Some(Self { syntax })
22392        } else {
22393            None
22394        }
22395    }
22396    #[inline]
22397    fn syntax(&self) -> &SyntaxNode {
22398        &self.syntax
22399    }
22400}
22401impl AstNode for JsonExprFormat {
22402    #[inline]
22403    fn can_cast(kind: SyntaxKind) -> bool {
22404        kind == SyntaxKind::JSON_EXPR_FORMAT
22405    }
22406    #[inline]
22407    fn cast(syntax: SyntaxNode) -> Option<Self> {
22408        if Self::can_cast(syntax.kind()) {
22409            Some(Self { syntax })
22410        } else {
22411            None
22412        }
22413    }
22414    #[inline]
22415    fn syntax(&self) -> &SyntaxNode {
22416        &self.syntax
22417    }
22418}
22419impl AstNode for JsonFn {
22420    #[inline]
22421    fn can_cast(kind: SyntaxKind) -> bool {
22422        kind == SyntaxKind::JSON_FN
22423    }
22424    #[inline]
22425    fn cast(syntax: SyntaxNode) -> Option<Self> {
22426        if Self::can_cast(syntax.kind()) {
22427            Some(Self { syntax })
22428        } else {
22429            None
22430        }
22431    }
22432    #[inline]
22433    fn syntax(&self) -> &SyntaxNode {
22434        &self.syntax
22435    }
22436}
22437impl AstNode for JsonFormatClause {
22438    #[inline]
22439    fn can_cast(kind: SyntaxKind) -> bool {
22440        kind == SyntaxKind::JSON_FORMAT_CLAUSE
22441    }
22442    #[inline]
22443    fn cast(syntax: SyntaxNode) -> Option<Self> {
22444        if Self::can_cast(syntax.kind()) {
22445            Some(Self { syntax })
22446        } else {
22447            None
22448        }
22449    }
22450    #[inline]
22451    fn syntax(&self) -> &SyntaxNode {
22452        &self.syntax
22453    }
22454}
22455impl AstNode for JsonKeyValue {
22456    #[inline]
22457    fn can_cast(kind: SyntaxKind) -> bool {
22458        kind == SyntaxKind::JSON_KEY_VALUE
22459    }
22460    #[inline]
22461    fn cast(syntax: SyntaxNode) -> Option<Self> {
22462        if Self::can_cast(syntax.kind()) {
22463            Some(Self { syntax })
22464        } else {
22465            None
22466        }
22467    }
22468    #[inline]
22469    fn syntax(&self) -> &SyntaxNode {
22470        &self.syntax
22471    }
22472}
22473impl AstNode for JsonKeysUniqueClause {
22474    #[inline]
22475    fn can_cast(kind: SyntaxKind) -> bool {
22476        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
22477    }
22478    #[inline]
22479    fn cast(syntax: SyntaxNode) -> Option<Self> {
22480        if Self::can_cast(syntax.kind()) {
22481            Some(Self { syntax })
22482        } else {
22483            None
22484        }
22485    }
22486    #[inline]
22487    fn syntax(&self) -> &SyntaxNode {
22488        &self.syntax
22489    }
22490}
22491impl AstNode for JsonNullClause {
22492    #[inline]
22493    fn can_cast(kind: SyntaxKind) -> bool {
22494        kind == SyntaxKind::JSON_NULL_CLAUSE
22495    }
22496    #[inline]
22497    fn cast(syntax: SyntaxNode) -> Option<Self> {
22498        if Self::can_cast(syntax.kind()) {
22499            Some(Self { syntax })
22500        } else {
22501            None
22502        }
22503    }
22504    #[inline]
22505    fn syntax(&self) -> &SyntaxNode {
22506        &self.syntax
22507    }
22508}
22509impl AstNode for JsonObjectAggFn {
22510    #[inline]
22511    fn can_cast(kind: SyntaxKind) -> bool {
22512        kind == SyntaxKind::JSON_OBJECT_AGG_FN
22513    }
22514    #[inline]
22515    fn cast(syntax: SyntaxNode) -> Option<Self> {
22516        if Self::can_cast(syntax.kind()) {
22517            Some(Self { syntax })
22518        } else {
22519            None
22520        }
22521    }
22522    #[inline]
22523    fn syntax(&self) -> &SyntaxNode {
22524        &self.syntax
22525    }
22526}
22527impl AstNode for JsonObjectFn {
22528    #[inline]
22529    fn can_cast(kind: SyntaxKind) -> bool {
22530        kind == SyntaxKind::JSON_OBJECT_FN
22531    }
22532    #[inline]
22533    fn cast(syntax: SyntaxNode) -> Option<Self> {
22534        if Self::can_cast(syntax.kind()) {
22535            Some(Self { syntax })
22536        } else {
22537            None
22538        }
22539    }
22540    #[inline]
22541    fn syntax(&self) -> &SyntaxNode {
22542        &self.syntax
22543    }
22544}
22545impl AstNode for JsonOnEmptyClause {
22546    #[inline]
22547    fn can_cast(kind: SyntaxKind) -> bool {
22548        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
22549    }
22550    #[inline]
22551    fn cast(syntax: SyntaxNode) -> Option<Self> {
22552        if Self::can_cast(syntax.kind()) {
22553            Some(Self { syntax })
22554        } else {
22555            None
22556        }
22557    }
22558    #[inline]
22559    fn syntax(&self) -> &SyntaxNode {
22560        &self.syntax
22561    }
22562}
22563impl AstNode for JsonOnErrorClause {
22564    #[inline]
22565    fn can_cast(kind: SyntaxKind) -> bool {
22566        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
22567    }
22568    #[inline]
22569    fn cast(syntax: SyntaxNode) -> Option<Self> {
22570        if Self::can_cast(syntax.kind()) {
22571            Some(Self { syntax })
22572        } else {
22573            None
22574        }
22575    }
22576    #[inline]
22577    fn syntax(&self) -> &SyntaxNode {
22578        &self.syntax
22579    }
22580}
22581impl AstNode for JsonPassingArg {
22582    #[inline]
22583    fn can_cast(kind: SyntaxKind) -> bool {
22584        kind == SyntaxKind::JSON_PASSING_ARG
22585    }
22586    #[inline]
22587    fn cast(syntax: SyntaxNode) -> Option<Self> {
22588        if Self::can_cast(syntax.kind()) {
22589            Some(Self { syntax })
22590        } else {
22591            None
22592        }
22593    }
22594    #[inline]
22595    fn syntax(&self) -> &SyntaxNode {
22596        &self.syntax
22597    }
22598}
22599impl AstNode for JsonPassingClause {
22600    #[inline]
22601    fn can_cast(kind: SyntaxKind) -> bool {
22602        kind == SyntaxKind::JSON_PASSING_CLAUSE
22603    }
22604    #[inline]
22605    fn cast(syntax: SyntaxNode) -> Option<Self> {
22606        if Self::can_cast(syntax.kind()) {
22607            Some(Self { syntax })
22608        } else {
22609            None
22610        }
22611    }
22612    #[inline]
22613    fn syntax(&self) -> &SyntaxNode {
22614        &self.syntax
22615    }
22616}
22617impl AstNode for JsonPathClause {
22618    #[inline]
22619    fn can_cast(kind: SyntaxKind) -> bool {
22620        kind == SyntaxKind::JSON_PATH_CLAUSE
22621    }
22622    #[inline]
22623    fn cast(syntax: SyntaxNode) -> Option<Self> {
22624        if Self::can_cast(syntax.kind()) {
22625            Some(Self { syntax })
22626        } else {
22627            None
22628        }
22629    }
22630    #[inline]
22631    fn syntax(&self) -> &SyntaxNode {
22632        &self.syntax
22633    }
22634}
22635impl AstNode for JsonQueryFn {
22636    #[inline]
22637    fn can_cast(kind: SyntaxKind) -> bool {
22638        kind == SyntaxKind::JSON_QUERY_FN
22639    }
22640    #[inline]
22641    fn cast(syntax: SyntaxNode) -> Option<Self> {
22642        if Self::can_cast(syntax.kind()) {
22643            Some(Self { syntax })
22644        } else {
22645            None
22646        }
22647    }
22648    #[inline]
22649    fn syntax(&self) -> &SyntaxNode {
22650        &self.syntax
22651    }
22652}
22653impl AstNode for JsonQuotesClause {
22654    #[inline]
22655    fn can_cast(kind: SyntaxKind) -> bool {
22656        kind == SyntaxKind::JSON_QUOTES_CLAUSE
22657    }
22658    #[inline]
22659    fn cast(syntax: SyntaxNode) -> Option<Self> {
22660        if Self::can_cast(syntax.kind()) {
22661            Some(Self { syntax })
22662        } else {
22663            None
22664        }
22665    }
22666    #[inline]
22667    fn syntax(&self) -> &SyntaxNode {
22668        &self.syntax
22669    }
22670}
22671impl AstNode for JsonReturningClause {
22672    #[inline]
22673    fn can_cast(kind: SyntaxKind) -> bool {
22674        kind == SyntaxKind::JSON_RETURNING_CLAUSE
22675    }
22676    #[inline]
22677    fn cast(syntax: SyntaxNode) -> Option<Self> {
22678        if Self::can_cast(syntax.kind()) {
22679            Some(Self { syntax })
22680        } else {
22681            None
22682        }
22683    }
22684    #[inline]
22685    fn syntax(&self) -> &SyntaxNode {
22686        &self.syntax
22687    }
22688}
22689impl AstNode for JsonScalarFn {
22690    #[inline]
22691    fn can_cast(kind: SyntaxKind) -> bool {
22692        kind == SyntaxKind::JSON_SCALAR_FN
22693    }
22694    #[inline]
22695    fn cast(syntax: SyntaxNode) -> Option<Self> {
22696        if Self::can_cast(syntax.kind()) {
22697            Some(Self { syntax })
22698        } else {
22699            None
22700        }
22701    }
22702    #[inline]
22703    fn syntax(&self) -> &SyntaxNode {
22704        &self.syntax
22705    }
22706}
22707impl AstNode for JsonSelectFormat {
22708    #[inline]
22709    fn can_cast(kind: SyntaxKind) -> bool {
22710        kind == SyntaxKind::JSON_SELECT_FORMAT
22711    }
22712    #[inline]
22713    fn cast(syntax: SyntaxNode) -> Option<Self> {
22714        if Self::can_cast(syntax.kind()) {
22715            Some(Self { syntax })
22716        } else {
22717            None
22718        }
22719    }
22720    #[inline]
22721    fn syntax(&self) -> &SyntaxNode {
22722        &self.syntax
22723    }
22724}
22725impl AstNode for JsonSerializeFn {
22726    #[inline]
22727    fn can_cast(kind: SyntaxKind) -> bool {
22728        kind == SyntaxKind::JSON_SERIALIZE_FN
22729    }
22730    #[inline]
22731    fn cast(syntax: SyntaxNode) -> Option<Self> {
22732        if Self::can_cast(syntax.kind()) {
22733            Some(Self { syntax })
22734        } else {
22735            None
22736        }
22737    }
22738    #[inline]
22739    fn syntax(&self) -> &SyntaxNode {
22740        &self.syntax
22741    }
22742}
22743impl AstNode for JsonTable {
22744    #[inline]
22745    fn can_cast(kind: SyntaxKind) -> bool {
22746        kind == SyntaxKind::JSON_TABLE
22747    }
22748    #[inline]
22749    fn cast(syntax: SyntaxNode) -> Option<Self> {
22750        if Self::can_cast(syntax.kind()) {
22751            Some(Self { syntax })
22752        } else {
22753            None
22754        }
22755    }
22756    #[inline]
22757    fn syntax(&self) -> &SyntaxNode {
22758        &self.syntax
22759    }
22760}
22761impl AstNode for JsonTableColumn {
22762    #[inline]
22763    fn can_cast(kind: SyntaxKind) -> bool {
22764        kind == SyntaxKind::JSON_TABLE_COLUMN
22765    }
22766    #[inline]
22767    fn cast(syntax: SyntaxNode) -> Option<Self> {
22768        if Self::can_cast(syntax.kind()) {
22769            Some(Self { syntax })
22770        } else {
22771            None
22772        }
22773    }
22774    #[inline]
22775    fn syntax(&self) -> &SyntaxNode {
22776        &self.syntax
22777    }
22778}
22779impl AstNode for JsonTableColumnList {
22780    #[inline]
22781    fn can_cast(kind: SyntaxKind) -> bool {
22782        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
22783    }
22784    #[inline]
22785    fn cast(syntax: SyntaxNode) -> Option<Self> {
22786        if Self::can_cast(syntax.kind()) {
22787            Some(Self { syntax })
22788        } else {
22789            None
22790        }
22791    }
22792    #[inline]
22793    fn syntax(&self) -> &SyntaxNode {
22794        &self.syntax
22795    }
22796}
22797impl AstNode for JsonValueExpr {
22798    #[inline]
22799    fn can_cast(kind: SyntaxKind) -> bool {
22800        kind == SyntaxKind::JSON_VALUE_EXPR
22801    }
22802    #[inline]
22803    fn cast(syntax: SyntaxNode) -> Option<Self> {
22804        if Self::can_cast(syntax.kind()) {
22805            Some(Self { syntax })
22806        } else {
22807            None
22808        }
22809    }
22810    #[inline]
22811    fn syntax(&self) -> &SyntaxNode {
22812        &self.syntax
22813    }
22814}
22815impl AstNode for JsonValueFn {
22816    #[inline]
22817    fn can_cast(kind: SyntaxKind) -> bool {
22818        kind == SyntaxKind::JSON_VALUE_FN
22819    }
22820    #[inline]
22821    fn cast(syntax: SyntaxNode) -> Option<Self> {
22822        if Self::can_cast(syntax.kind()) {
22823            Some(Self { syntax })
22824        } else {
22825            None
22826        }
22827    }
22828    #[inline]
22829    fn syntax(&self) -> &SyntaxNode {
22830        &self.syntax
22831    }
22832}
22833impl AstNode for JsonWrapperBehaviorClause {
22834    #[inline]
22835    fn can_cast(kind: SyntaxKind) -> bool {
22836        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
22837    }
22838    #[inline]
22839    fn cast(syntax: SyntaxNode) -> Option<Self> {
22840        if Self::can_cast(syntax.kind()) {
22841            Some(Self { syntax })
22842        } else {
22843            None
22844        }
22845    }
22846    #[inline]
22847    fn syntax(&self) -> &SyntaxNode {
22848        &self.syntax
22849    }
22850}
22851impl AstNode for LanguageFuncOption {
22852    #[inline]
22853    fn can_cast(kind: SyntaxKind) -> bool {
22854        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
22855    }
22856    #[inline]
22857    fn cast(syntax: SyntaxNode) -> Option<Self> {
22858        if Self::can_cast(syntax.kind()) {
22859            Some(Self { syntax })
22860        } else {
22861            None
22862        }
22863    }
22864    #[inline]
22865    fn syntax(&self) -> &SyntaxNode {
22866        &self.syntax
22867    }
22868}
22869impl AstNode for LeakproofFuncOption {
22870    #[inline]
22871    fn can_cast(kind: SyntaxKind) -> bool {
22872        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
22873    }
22874    #[inline]
22875    fn cast(syntax: SyntaxNode) -> Option<Self> {
22876        if Self::can_cast(syntax.kind()) {
22877            Some(Self { syntax })
22878        } else {
22879            None
22880        }
22881    }
22882    #[inline]
22883    fn syntax(&self) -> &SyntaxNode {
22884        &self.syntax
22885    }
22886}
22887impl AstNode for LikeClause {
22888    #[inline]
22889    fn can_cast(kind: SyntaxKind) -> bool {
22890        kind == SyntaxKind::LIKE_CLAUSE
22891    }
22892    #[inline]
22893    fn cast(syntax: SyntaxNode) -> Option<Self> {
22894        if Self::can_cast(syntax.kind()) {
22895            Some(Self { syntax })
22896        } else {
22897            None
22898        }
22899    }
22900    #[inline]
22901    fn syntax(&self) -> &SyntaxNode {
22902        &self.syntax
22903    }
22904}
22905impl AstNode for LikeOption {
22906    #[inline]
22907    fn can_cast(kind: SyntaxKind) -> bool {
22908        kind == SyntaxKind::LIKE_OPTION
22909    }
22910    #[inline]
22911    fn cast(syntax: SyntaxNode) -> Option<Self> {
22912        if Self::can_cast(syntax.kind()) {
22913            Some(Self { syntax })
22914        } else {
22915            None
22916        }
22917    }
22918    #[inline]
22919    fn syntax(&self) -> &SyntaxNode {
22920        &self.syntax
22921    }
22922}
22923impl AstNode for LimitClause {
22924    #[inline]
22925    fn can_cast(kind: SyntaxKind) -> bool {
22926        kind == SyntaxKind::LIMIT_CLAUSE
22927    }
22928    #[inline]
22929    fn cast(syntax: SyntaxNode) -> Option<Self> {
22930        if Self::can_cast(syntax.kind()) {
22931            Some(Self { syntax })
22932        } else {
22933            None
22934        }
22935    }
22936    #[inline]
22937    fn syntax(&self) -> &SyntaxNode {
22938        &self.syntax
22939    }
22940}
22941impl AstNode for LimitToTables {
22942    #[inline]
22943    fn can_cast(kind: SyntaxKind) -> bool {
22944        kind == SyntaxKind::LIMIT_TO_TABLES
22945    }
22946    #[inline]
22947    fn cast(syntax: SyntaxNode) -> Option<Self> {
22948        if Self::can_cast(syntax.kind()) {
22949            Some(Self { syntax })
22950        } else {
22951            None
22952        }
22953    }
22954    #[inline]
22955    fn syntax(&self) -> &SyntaxNode {
22956        &self.syntax
22957    }
22958}
22959impl AstNode for Listen {
22960    #[inline]
22961    fn can_cast(kind: SyntaxKind) -> bool {
22962        kind == SyntaxKind::LISTEN
22963    }
22964    #[inline]
22965    fn cast(syntax: SyntaxNode) -> Option<Self> {
22966        if Self::can_cast(syntax.kind()) {
22967            Some(Self { syntax })
22968        } else {
22969            None
22970        }
22971    }
22972    #[inline]
22973    fn syntax(&self) -> &SyntaxNode {
22974        &self.syntax
22975    }
22976}
22977impl AstNode for Literal {
22978    #[inline]
22979    fn can_cast(kind: SyntaxKind) -> bool {
22980        kind == SyntaxKind::LITERAL
22981    }
22982    #[inline]
22983    fn cast(syntax: SyntaxNode) -> Option<Self> {
22984        if Self::can_cast(syntax.kind()) {
22985            Some(Self { syntax })
22986        } else {
22987            None
22988        }
22989    }
22990    #[inline]
22991    fn syntax(&self) -> &SyntaxNode {
22992        &self.syntax
22993    }
22994}
22995impl AstNode for Load {
22996    #[inline]
22997    fn can_cast(kind: SyntaxKind) -> bool {
22998        kind == SyntaxKind::LOAD
22999    }
23000    #[inline]
23001    fn cast(syntax: SyntaxNode) -> Option<Self> {
23002        if Self::can_cast(syntax.kind()) {
23003            Some(Self { syntax })
23004        } else {
23005            None
23006        }
23007    }
23008    #[inline]
23009    fn syntax(&self) -> &SyntaxNode {
23010        &self.syntax
23011    }
23012}
23013impl AstNode for Lock {
23014    #[inline]
23015    fn can_cast(kind: SyntaxKind) -> bool {
23016        kind == SyntaxKind::LOCK
23017    }
23018    #[inline]
23019    fn cast(syntax: SyntaxNode) -> Option<Self> {
23020        if Self::can_cast(syntax.kind()) {
23021            Some(Self { syntax })
23022        } else {
23023            None
23024        }
23025    }
23026    #[inline]
23027    fn syntax(&self) -> &SyntaxNode {
23028        &self.syntax
23029    }
23030}
23031impl AstNode for LockingClause {
23032    #[inline]
23033    fn can_cast(kind: SyntaxKind) -> bool {
23034        kind == SyntaxKind::LOCKING_CLAUSE
23035    }
23036    #[inline]
23037    fn cast(syntax: SyntaxNode) -> Option<Self> {
23038        if Self::can_cast(syntax.kind()) {
23039            Some(Self { syntax })
23040        } else {
23041            None
23042        }
23043    }
23044    #[inline]
23045    fn syntax(&self) -> &SyntaxNode {
23046        &self.syntax
23047    }
23048}
23049impl AstNode for Lteq {
23050    #[inline]
23051    fn can_cast(kind: SyntaxKind) -> bool {
23052        kind == SyntaxKind::LTEQ
23053    }
23054    #[inline]
23055    fn cast(syntax: SyntaxNode) -> Option<Self> {
23056        if Self::can_cast(syntax.kind()) {
23057            Some(Self { syntax })
23058        } else {
23059            None
23060        }
23061    }
23062    #[inline]
23063    fn syntax(&self) -> &SyntaxNode {
23064        &self.syntax
23065    }
23066}
23067impl AstNode for MatchFull {
23068    #[inline]
23069    fn can_cast(kind: SyntaxKind) -> bool {
23070        kind == SyntaxKind::MATCH_FULL
23071    }
23072    #[inline]
23073    fn cast(syntax: SyntaxNode) -> Option<Self> {
23074        if Self::can_cast(syntax.kind()) {
23075            Some(Self { syntax })
23076        } else {
23077            None
23078        }
23079    }
23080    #[inline]
23081    fn syntax(&self) -> &SyntaxNode {
23082        &self.syntax
23083    }
23084}
23085impl AstNode for MatchPartial {
23086    #[inline]
23087    fn can_cast(kind: SyntaxKind) -> bool {
23088        kind == SyntaxKind::MATCH_PARTIAL
23089    }
23090    #[inline]
23091    fn cast(syntax: SyntaxNode) -> Option<Self> {
23092        if Self::can_cast(syntax.kind()) {
23093            Some(Self { syntax })
23094        } else {
23095            None
23096        }
23097    }
23098    #[inline]
23099    fn syntax(&self) -> &SyntaxNode {
23100        &self.syntax
23101    }
23102}
23103impl AstNode for MatchSimple {
23104    #[inline]
23105    fn can_cast(kind: SyntaxKind) -> bool {
23106        kind == SyntaxKind::MATCH_SIMPLE
23107    }
23108    #[inline]
23109    fn cast(syntax: SyntaxNode) -> Option<Self> {
23110        if Self::can_cast(syntax.kind()) {
23111            Some(Self { syntax })
23112        } else {
23113            None
23114        }
23115    }
23116    #[inline]
23117    fn syntax(&self) -> &SyntaxNode {
23118        &self.syntax
23119    }
23120}
23121impl AstNode for Materialized {
23122    #[inline]
23123    fn can_cast(kind: SyntaxKind) -> bool {
23124        kind == SyntaxKind::MATERIALIZED
23125    }
23126    #[inline]
23127    fn cast(syntax: SyntaxNode) -> Option<Self> {
23128        if Self::can_cast(syntax.kind()) {
23129            Some(Self { syntax })
23130        } else {
23131            None
23132        }
23133    }
23134    #[inline]
23135    fn syntax(&self) -> &SyntaxNode {
23136        &self.syntax
23137    }
23138}
23139impl AstNode for Merge {
23140    #[inline]
23141    fn can_cast(kind: SyntaxKind) -> bool {
23142        kind == SyntaxKind::MERGE
23143    }
23144    #[inline]
23145    fn cast(syntax: SyntaxNode) -> Option<Self> {
23146        if Self::can_cast(syntax.kind()) {
23147            Some(Self { syntax })
23148        } else {
23149            None
23150        }
23151    }
23152    #[inline]
23153    fn syntax(&self) -> &SyntaxNode {
23154        &self.syntax
23155    }
23156}
23157impl AstNode for MergeDelete {
23158    #[inline]
23159    fn can_cast(kind: SyntaxKind) -> bool {
23160        kind == SyntaxKind::MERGE_DELETE
23161    }
23162    #[inline]
23163    fn cast(syntax: SyntaxNode) -> Option<Self> {
23164        if Self::can_cast(syntax.kind()) {
23165            Some(Self { syntax })
23166        } else {
23167            None
23168        }
23169    }
23170    #[inline]
23171    fn syntax(&self) -> &SyntaxNode {
23172        &self.syntax
23173    }
23174}
23175impl AstNode for MergeDoNothing {
23176    #[inline]
23177    fn can_cast(kind: SyntaxKind) -> bool {
23178        kind == SyntaxKind::MERGE_DO_NOTHING
23179    }
23180    #[inline]
23181    fn cast(syntax: SyntaxNode) -> Option<Self> {
23182        if Self::can_cast(syntax.kind()) {
23183            Some(Self { syntax })
23184        } else {
23185            None
23186        }
23187    }
23188    #[inline]
23189    fn syntax(&self) -> &SyntaxNode {
23190        &self.syntax
23191    }
23192}
23193impl AstNode for MergeInsert {
23194    #[inline]
23195    fn can_cast(kind: SyntaxKind) -> bool {
23196        kind == SyntaxKind::MERGE_INSERT
23197    }
23198    #[inline]
23199    fn cast(syntax: SyntaxNode) -> Option<Self> {
23200        if Self::can_cast(syntax.kind()) {
23201            Some(Self { syntax })
23202        } else {
23203            None
23204        }
23205    }
23206    #[inline]
23207    fn syntax(&self) -> &SyntaxNode {
23208        &self.syntax
23209    }
23210}
23211impl AstNode for MergeUpdate {
23212    #[inline]
23213    fn can_cast(kind: SyntaxKind) -> bool {
23214        kind == SyntaxKind::MERGE_UPDATE
23215    }
23216    #[inline]
23217    fn cast(syntax: SyntaxNode) -> Option<Self> {
23218        if Self::can_cast(syntax.kind()) {
23219            Some(Self { syntax })
23220        } else {
23221            None
23222        }
23223    }
23224    #[inline]
23225    fn syntax(&self) -> &SyntaxNode {
23226        &self.syntax
23227    }
23228}
23229impl AstNode for MergeWhenMatched {
23230    #[inline]
23231    fn can_cast(kind: SyntaxKind) -> bool {
23232        kind == SyntaxKind::MERGE_WHEN_MATCHED
23233    }
23234    #[inline]
23235    fn cast(syntax: SyntaxNode) -> Option<Self> {
23236        if Self::can_cast(syntax.kind()) {
23237            Some(Self { syntax })
23238        } else {
23239            None
23240        }
23241    }
23242    #[inline]
23243    fn syntax(&self) -> &SyntaxNode {
23244        &self.syntax
23245    }
23246}
23247impl AstNode for MergeWhenNotMatchedSource {
23248    #[inline]
23249    fn can_cast(kind: SyntaxKind) -> bool {
23250        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23251    }
23252    #[inline]
23253    fn cast(syntax: SyntaxNode) -> Option<Self> {
23254        if Self::can_cast(syntax.kind()) {
23255            Some(Self { syntax })
23256        } else {
23257            None
23258        }
23259    }
23260    #[inline]
23261    fn syntax(&self) -> &SyntaxNode {
23262        &self.syntax
23263    }
23264}
23265impl AstNode for MergeWhenNotMatchedTarget {
23266    #[inline]
23267    fn can_cast(kind: SyntaxKind) -> bool {
23268        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23269    }
23270    #[inline]
23271    fn cast(syntax: SyntaxNode) -> Option<Self> {
23272        if Self::can_cast(syntax.kind()) {
23273            Some(Self { syntax })
23274        } else {
23275            None
23276        }
23277    }
23278    #[inline]
23279    fn syntax(&self) -> &SyntaxNode {
23280        &self.syntax
23281    }
23282}
23283impl AstNode for Move {
23284    #[inline]
23285    fn can_cast(kind: SyntaxKind) -> bool {
23286        kind == SyntaxKind::MOVE
23287    }
23288    #[inline]
23289    fn cast(syntax: SyntaxNode) -> Option<Self> {
23290        if Self::can_cast(syntax.kind()) {
23291            Some(Self { syntax })
23292        } else {
23293            None
23294        }
23295    }
23296    #[inline]
23297    fn syntax(&self) -> &SyntaxNode {
23298        &self.syntax
23299    }
23300}
23301impl AstNode for Name {
23302    #[inline]
23303    fn can_cast(kind: SyntaxKind) -> bool {
23304        kind == SyntaxKind::NAME
23305    }
23306    #[inline]
23307    fn cast(syntax: SyntaxNode) -> Option<Self> {
23308        if Self::can_cast(syntax.kind()) {
23309            Some(Self { syntax })
23310        } else {
23311            None
23312        }
23313    }
23314    #[inline]
23315    fn syntax(&self) -> &SyntaxNode {
23316        &self.syntax
23317    }
23318}
23319impl AstNode for NameRef {
23320    #[inline]
23321    fn can_cast(kind: SyntaxKind) -> bool {
23322        kind == SyntaxKind::NAME_REF
23323    }
23324    #[inline]
23325    fn cast(syntax: SyntaxNode) -> Option<Self> {
23326        if Self::can_cast(syntax.kind()) {
23327            Some(Self { syntax })
23328        } else {
23329            None
23330        }
23331    }
23332    #[inline]
23333    fn syntax(&self) -> &SyntaxNode {
23334        &self.syntax
23335    }
23336}
23337impl AstNode for NamedArg {
23338    #[inline]
23339    fn can_cast(kind: SyntaxKind) -> bool {
23340        kind == SyntaxKind::NAMED_ARG
23341    }
23342    #[inline]
23343    fn cast(syntax: SyntaxNode) -> Option<Self> {
23344        if Self::can_cast(syntax.kind()) {
23345            Some(Self { syntax })
23346        } else {
23347            None
23348        }
23349    }
23350    #[inline]
23351    fn syntax(&self) -> &SyntaxNode {
23352        &self.syntax
23353    }
23354}
23355impl AstNode for Neq {
23356    #[inline]
23357    fn can_cast(kind: SyntaxKind) -> bool {
23358        kind == SyntaxKind::NEQ
23359    }
23360    #[inline]
23361    fn cast(syntax: SyntaxNode) -> Option<Self> {
23362        if Self::can_cast(syntax.kind()) {
23363            Some(Self { syntax })
23364        } else {
23365            None
23366        }
23367    }
23368    #[inline]
23369    fn syntax(&self) -> &SyntaxNode {
23370        &self.syntax
23371    }
23372}
23373impl AstNode for Neqb {
23374    #[inline]
23375    fn can_cast(kind: SyntaxKind) -> bool {
23376        kind == SyntaxKind::NEQB
23377    }
23378    #[inline]
23379    fn cast(syntax: SyntaxNode) -> Option<Self> {
23380        if Self::can_cast(syntax.kind()) {
23381            Some(Self { syntax })
23382        } else {
23383            None
23384        }
23385    }
23386    #[inline]
23387    fn syntax(&self) -> &SyntaxNode {
23388        &self.syntax
23389    }
23390}
23391impl AstNode for NoAction {
23392    #[inline]
23393    fn can_cast(kind: SyntaxKind) -> bool {
23394        kind == SyntaxKind::NO_ACTION
23395    }
23396    #[inline]
23397    fn cast(syntax: SyntaxNode) -> Option<Self> {
23398        if Self::can_cast(syntax.kind()) {
23399            Some(Self { syntax })
23400        } else {
23401            None
23402        }
23403    }
23404    #[inline]
23405    fn syntax(&self) -> &SyntaxNode {
23406        &self.syntax
23407    }
23408}
23409impl AstNode for NoDependsOnExtension {
23410    #[inline]
23411    fn can_cast(kind: SyntaxKind) -> bool {
23412        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
23413    }
23414    #[inline]
23415    fn cast(syntax: SyntaxNode) -> Option<Self> {
23416        if Self::can_cast(syntax.kind()) {
23417            Some(Self { syntax })
23418        } else {
23419            None
23420        }
23421    }
23422    #[inline]
23423    fn syntax(&self) -> &SyntaxNode {
23424        &self.syntax
23425    }
23426}
23427impl AstNode for NoForceRls {
23428    #[inline]
23429    fn can_cast(kind: SyntaxKind) -> bool {
23430        kind == SyntaxKind::NO_FORCE_RLS
23431    }
23432    #[inline]
23433    fn cast(syntax: SyntaxNode) -> Option<Self> {
23434        if Self::can_cast(syntax.kind()) {
23435            Some(Self { syntax })
23436        } else {
23437            None
23438        }
23439    }
23440    #[inline]
23441    fn syntax(&self) -> &SyntaxNode {
23442        &self.syntax
23443    }
23444}
23445impl AstNode for NoInherit {
23446    #[inline]
23447    fn can_cast(kind: SyntaxKind) -> bool {
23448        kind == SyntaxKind::NO_INHERIT
23449    }
23450    #[inline]
23451    fn cast(syntax: SyntaxNode) -> Option<Self> {
23452        if Self::can_cast(syntax.kind()) {
23453            Some(Self { syntax })
23454        } else {
23455            None
23456        }
23457    }
23458    #[inline]
23459    fn syntax(&self) -> &SyntaxNode {
23460        &self.syntax
23461    }
23462}
23463impl AstNode for NoInheritTable {
23464    #[inline]
23465    fn can_cast(kind: SyntaxKind) -> bool {
23466        kind == SyntaxKind::NO_INHERIT_TABLE
23467    }
23468    #[inline]
23469    fn cast(syntax: SyntaxNode) -> Option<Self> {
23470        if Self::can_cast(syntax.kind()) {
23471            Some(Self { syntax })
23472        } else {
23473            None
23474        }
23475    }
23476    #[inline]
23477    fn syntax(&self) -> &SyntaxNode {
23478        &self.syntax
23479    }
23480}
23481impl AstNode for NonStandardParam {
23482    #[inline]
23483    fn can_cast(kind: SyntaxKind) -> bool {
23484        kind == SyntaxKind::NON_STANDARD_PARAM
23485    }
23486    #[inline]
23487    fn cast(syntax: SyntaxNode) -> Option<Self> {
23488        if Self::can_cast(syntax.kind()) {
23489            Some(Self { syntax })
23490        } else {
23491            None
23492        }
23493    }
23494    #[inline]
23495    fn syntax(&self) -> &SyntaxNode {
23496        &self.syntax
23497    }
23498}
23499impl AstNode for NotDeferrable {
23500    #[inline]
23501    fn can_cast(kind: SyntaxKind) -> bool {
23502        kind == SyntaxKind::NOT_DEFERRABLE
23503    }
23504    #[inline]
23505    fn cast(syntax: SyntaxNode) -> Option<Self> {
23506        if Self::can_cast(syntax.kind()) {
23507            Some(Self { syntax })
23508        } else {
23509            None
23510        }
23511    }
23512    #[inline]
23513    fn syntax(&self) -> &SyntaxNode {
23514        &self.syntax
23515    }
23516}
23517impl AstNode for NotDeferrableConstraintOption {
23518    #[inline]
23519    fn can_cast(kind: SyntaxKind) -> bool {
23520        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
23521    }
23522    #[inline]
23523    fn cast(syntax: SyntaxNode) -> Option<Self> {
23524        if Self::can_cast(syntax.kind()) {
23525            Some(Self { syntax })
23526        } else {
23527            None
23528        }
23529    }
23530    #[inline]
23531    fn syntax(&self) -> &SyntaxNode {
23532        &self.syntax
23533    }
23534}
23535impl AstNode for NotEnforced {
23536    #[inline]
23537    fn can_cast(kind: SyntaxKind) -> bool {
23538        kind == SyntaxKind::NOT_ENFORCED
23539    }
23540    #[inline]
23541    fn cast(syntax: SyntaxNode) -> Option<Self> {
23542        if Self::can_cast(syntax.kind()) {
23543            Some(Self { syntax })
23544        } else {
23545            None
23546        }
23547    }
23548    #[inline]
23549    fn syntax(&self) -> &SyntaxNode {
23550        &self.syntax
23551    }
23552}
23553impl AstNode for NotIlike {
23554    #[inline]
23555    fn can_cast(kind: SyntaxKind) -> bool {
23556        kind == SyntaxKind::NOT_ILIKE
23557    }
23558    #[inline]
23559    fn cast(syntax: SyntaxNode) -> Option<Self> {
23560        if Self::can_cast(syntax.kind()) {
23561            Some(Self { syntax })
23562        } else {
23563            None
23564        }
23565    }
23566    #[inline]
23567    fn syntax(&self) -> &SyntaxNode {
23568        &self.syntax
23569    }
23570}
23571impl AstNode for NotIn {
23572    #[inline]
23573    fn can_cast(kind: SyntaxKind) -> bool {
23574        kind == SyntaxKind::NOT_IN
23575    }
23576    #[inline]
23577    fn cast(syntax: SyntaxNode) -> Option<Self> {
23578        if Self::can_cast(syntax.kind()) {
23579            Some(Self { syntax })
23580        } else {
23581            None
23582        }
23583    }
23584    #[inline]
23585    fn syntax(&self) -> &SyntaxNode {
23586        &self.syntax
23587    }
23588}
23589impl AstNode for NotLike {
23590    #[inline]
23591    fn can_cast(kind: SyntaxKind) -> bool {
23592        kind == SyntaxKind::NOT_LIKE
23593    }
23594    #[inline]
23595    fn cast(syntax: SyntaxNode) -> Option<Self> {
23596        if Self::can_cast(syntax.kind()) {
23597            Some(Self { syntax })
23598        } else {
23599            None
23600        }
23601    }
23602    #[inline]
23603    fn syntax(&self) -> &SyntaxNode {
23604        &self.syntax
23605    }
23606}
23607impl AstNode for NotMaterialized {
23608    #[inline]
23609    fn can_cast(kind: SyntaxKind) -> bool {
23610        kind == SyntaxKind::NOT_MATERIALIZED
23611    }
23612    #[inline]
23613    fn cast(syntax: SyntaxNode) -> Option<Self> {
23614        if Self::can_cast(syntax.kind()) {
23615            Some(Self { syntax })
23616        } else {
23617            None
23618        }
23619    }
23620    #[inline]
23621    fn syntax(&self) -> &SyntaxNode {
23622        &self.syntax
23623    }
23624}
23625impl AstNode for NotNullConstraint {
23626    #[inline]
23627    fn can_cast(kind: SyntaxKind) -> bool {
23628        kind == SyntaxKind::NOT_NULL_CONSTRAINT
23629    }
23630    #[inline]
23631    fn cast(syntax: SyntaxNode) -> Option<Self> {
23632        if Self::can_cast(syntax.kind()) {
23633            Some(Self { syntax })
23634        } else {
23635            None
23636        }
23637    }
23638    #[inline]
23639    fn syntax(&self) -> &SyntaxNode {
23640        &self.syntax
23641    }
23642}
23643impl AstNode for NotOf {
23644    #[inline]
23645    fn can_cast(kind: SyntaxKind) -> bool {
23646        kind == SyntaxKind::NOT_OF
23647    }
23648    #[inline]
23649    fn cast(syntax: SyntaxNode) -> Option<Self> {
23650        if Self::can_cast(syntax.kind()) {
23651            Some(Self { syntax })
23652        } else {
23653            None
23654        }
23655    }
23656    #[inline]
23657    fn syntax(&self) -> &SyntaxNode {
23658        &self.syntax
23659    }
23660}
23661impl AstNode for NotSimilarTo {
23662    #[inline]
23663    fn can_cast(kind: SyntaxKind) -> bool {
23664        kind == SyntaxKind::NOT_SIMILAR_TO
23665    }
23666    #[inline]
23667    fn cast(syntax: SyntaxNode) -> Option<Self> {
23668        if Self::can_cast(syntax.kind()) {
23669            Some(Self { syntax })
23670        } else {
23671            None
23672        }
23673    }
23674    #[inline]
23675    fn syntax(&self) -> &SyntaxNode {
23676        &self.syntax
23677    }
23678}
23679impl AstNode for NotValid {
23680    #[inline]
23681    fn can_cast(kind: SyntaxKind) -> bool {
23682        kind == SyntaxKind::NOT_VALID
23683    }
23684    #[inline]
23685    fn cast(syntax: SyntaxNode) -> Option<Self> {
23686        if Self::can_cast(syntax.kind()) {
23687            Some(Self { syntax })
23688        } else {
23689            None
23690        }
23691    }
23692    #[inline]
23693    fn syntax(&self) -> &SyntaxNode {
23694        &self.syntax
23695    }
23696}
23697impl AstNode for Notify {
23698    #[inline]
23699    fn can_cast(kind: SyntaxKind) -> bool {
23700        kind == SyntaxKind::NOTIFY
23701    }
23702    #[inline]
23703    fn cast(syntax: SyntaxNode) -> Option<Self> {
23704        if Self::can_cast(syntax.kind()) {
23705            Some(Self { syntax })
23706        } else {
23707            None
23708        }
23709    }
23710    #[inline]
23711    fn syntax(&self) -> &SyntaxNode {
23712        &self.syntax
23713    }
23714}
23715impl AstNode for NullConstraint {
23716    #[inline]
23717    fn can_cast(kind: SyntaxKind) -> bool {
23718        kind == SyntaxKind::NULL_CONSTRAINT
23719    }
23720    #[inline]
23721    fn cast(syntax: SyntaxNode) -> Option<Self> {
23722        if Self::can_cast(syntax.kind()) {
23723            Some(Self { syntax })
23724        } else {
23725            None
23726        }
23727    }
23728    #[inline]
23729    fn syntax(&self) -> &SyntaxNode {
23730        &self.syntax
23731    }
23732}
23733impl AstNode for NullsDistinct {
23734    #[inline]
23735    fn can_cast(kind: SyntaxKind) -> bool {
23736        kind == SyntaxKind::NULLS_DISTINCT
23737    }
23738    #[inline]
23739    fn cast(syntax: SyntaxNode) -> Option<Self> {
23740        if Self::can_cast(syntax.kind()) {
23741            Some(Self { syntax })
23742        } else {
23743            None
23744        }
23745    }
23746    #[inline]
23747    fn syntax(&self) -> &SyntaxNode {
23748        &self.syntax
23749    }
23750}
23751impl AstNode for NullsFirst {
23752    #[inline]
23753    fn can_cast(kind: SyntaxKind) -> bool {
23754        kind == SyntaxKind::NULLS_FIRST
23755    }
23756    #[inline]
23757    fn cast(syntax: SyntaxNode) -> Option<Self> {
23758        if Self::can_cast(syntax.kind()) {
23759            Some(Self { syntax })
23760        } else {
23761            None
23762        }
23763    }
23764    #[inline]
23765    fn syntax(&self) -> &SyntaxNode {
23766        &self.syntax
23767    }
23768}
23769impl AstNode for NullsLast {
23770    #[inline]
23771    fn can_cast(kind: SyntaxKind) -> bool {
23772        kind == SyntaxKind::NULLS_LAST
23773    }
23774    #[inline]
23775    fn cast(syntax: SyntaxNode) -> Option<Self> {
23776        if Self::can_cast(syntax.kind()) {
23777            Some(Self { syntax })
23778        } else {
23779            None
23780        }
23781    }
23782    #[inline]
23783    fn syntax(&self) -> &SyntaxNode {
23784        &self.syntax
23785    }
23786}
23787impl AstNode for NullsNotDistinct {
23788    #[inline]
23789    fn can_cast(kind: SyntaxKind) -> bool {
23790        kind == SyntaxKind::NULLS_NOT_DISTINCT
23791    }
23792    #[inline]
23793    fn cast(syntax: SyntaxNode) -> Option<Self> {
23794        if Self::can_cast(syntax.kind()) {
23795            Some(Self { syntax })
23796        } else {
23797            None
23798        }
23799    }
23800    #[inline]
23801    fn syntax(&self) -> &SyntaxNode {
23802        &self.syntax
23803    }
23804}
23805impl AstNode for OfType {
23806    #[inline]
23807    fn can_cast(kind: SyntaxKind) -> bool {
23808        kind == SyntaxKind::OF_TYPE
23809    }
23810    #[inline]
23811    fn cast(syntax: SyntaxNode) -> Option<Self> {
23812        if Self::can_cast(syntax.kind()) {
23813            Some(Self { syntax })
23814        } else {
23815            None
23816        }
23817    }
23818    #[inline]
23819    fn syntax(&self) -> &SyntaxNode {
23820        &self.syntax
23821    }
23822}
23823impl AstNode for OffsetClause {
23824    #[inline]
23825    fn can_cast(kind: SyntaxKind) -> bool {
23826        kind == SyntaxKind::OFFSET_CLAUSE
23827    }
23828    #[inline]
23829    fn cast(syntax: SyntaxNode) -> Option<Self> {
23830        if Self::can_cast(syntax.kind()) {
23831            Some(Self { syntax })
23832        } else {
23833            None
23834        }
23835    }
23836    #[inline]
23837    fn syntax(&self) -> &SyntaxNode {
23838        &self.syntax
23839    }
23840}
23841impl AstNode for OnClause {
23842    #[inline]
23843    fn can_cast(kind: SyntaxKind) -> bool {
23844        kind == SyntaxKind::ON_CLAUSE
23845    }
23846    #[inline]
23847    fn cast(syntax: SyntaxNode) -> Option<Self> {
23848        if Self::can_cast(syntax.kind()) {
23849            Some(Self { syntax })
23850        } else {
23851            None
23852        }
23853    }
23854    #[inline]
23855    fn syntax(&self) -> &SyntaxNode {
23856        &self.syntax
23857    }
23858}
23859impl AstNode for OnCommit {
23860    #[inline]
23861    fn can_cast(kind: SyntaxKind) -> bool {
23862        kind == SyntaxKind::ON_COMMIT
23863    }
23864    #[inline]
23865    fn cast(syntax: SyntaxNode) -> Option<Self> {
23866        if Self::can_cast(syntax.kind()) {
23867            Some(Self { syntax })
23868        } else {
23869            None
23870        }
23871    }
23872    #[inline]
23873    fn syntax(&self) -> &SyntaxNode {
23874        &self.syntax
23875    }
23876}
23877impl AstNode for OnConflictClause {
23878    #[inline]
23879    fn can_cast(kind: SyntaxKind) -> bool {
23880        kind == SyntaxKind::ON_CONFLICT_CLAUSE
23881    }
23882    #[inline]
23883    fn cast(syntax: SyntaxNode) -> Option<Self> {
23884        if Self::can_cast(syntax.kind()) {
23885            Some(Self { syntax })
23886        } else {
23887            None
23888        }
23889    }
23890    #[inline]
23891    fn syntax(&self) -> &SyntaxNode {
23892        &self.syntax
23893    }
23894}
23895impl AstNode for OnDeleteAction {
23896    #[inline]
23897    fn can_cast(kind: SyntaxKind) -> bool {
23898        kind == SyntaxKind::ON_DELETE_ACTION
23899    }
23900    #[inline]
23901    fn cast(syntax: SyntaxNode) -> Option<Self> {
23902        if Self::can_cast(syntax.kind()) {
23903            Some(Self { syntax })
23904        } else {
23905            None
23906        }
23907    }
23908    #[inline]
23909    fn syntax(&self) -> &SyntaxNode {
23910        &self.syntax
23911    }
23912}
23913impl AstNode for OnTable {
23914    #[inline]
23915    fn can_cast(kind: SyntaxKind) -> bool {
23916        kind == SyntaxKind::ON_TABLE
23917    }
23918    #[inline]
23919    fn cast(syntax: SyntaxNode) -> Option<Self> {
23920        if Self::can_cast(syntax.kind()) {
23921            Some(Self { syntax })
23922        } else {
23923            None
23924        }
23925    }
23926    #[inline]
23927    fn syntax(&self) -> &SyntaxNode {
23928        &self.syntax
23929    }
23930}
23931impl AstNode for OnUpdateAction {
23932    #[inline]
23933    fn can_cast(kind: SyntaxKind) -> bool {
23934        kind == SyntaxKind::ON_UPDATE_ACTION
23935    }
23936    #[inline]
23937    fn cast(syntax: SyntaxNode) -> Option<Self> {
23938        if Self::can_cast(syntax.kind()) {
23939            Some(Self { syntax })
23940        } else {
23941            None
23942        }
23943    }
23944    #[inline]
23945    fn syntax(&self) -> &SyntaxNode {
23946        &self.syntax
23947    }
23948}
23949impl AstNode for Op {
23950    #[inline]
23951    fn can_cast(kind: SyntaxKind) -> bool {
23952        kind == SyntaxKind::OP
23953    }
23954    #[inline]
23955    fn cast(syntax: SyntaxNode) -> Option<Self> {
23956        if Self::can_cast(syntax.kind()) {
23957            Some(Self { syntax })
23958        } else {
23959            None
23960        }
23961    }
23962    #[inline]
23963    fn syntax(&self) -> &SyntaxNode {
23964        &self.syntax
23965    }
23966}
23967impl AstNode for OpClassOption {
23968    #[inline]
23969    fn can_cast(kind: SyntaxKind) -> bool {
23970        kind == SyntaxKind::OP_CLASS_OPTION
23971    }
23972    #[inline]
23973    fn cast(syntax: SyntaxNode) -> Option<Self> {
23974        if Self::can_cast(syntax.kind()) {
23975            Some(Self { syntax })
23976        } else {
23977            None
23978        }
23979    }
23980    #[inline]
23981    fn syntax(&self) -> &SyntaxNode {
23982        &self.syntax
23983    }
23984}
23985impl AstNode for OpSig {
23986    #[inline]
23987    fn can_cast(kind: SyntaxKind) -> bool {
23988        kind == SyntaxKind::OP_SIG
23989    }
23990    #[inline]
23991    fn cast(syntax: SyntaxNode) -> Option<Self> {
23992        if Self::can_cast(syntax.kind()) {
23993            Some(Self { syntax })
23994        } else {
23995            None
23996        }
23997    }
23998    #[inline]
23999    fn syntax(&self) -> &SyntaxNode {
24000        &self.syntax
24001    }
24002}
24003impl AstNode for OpSigList {
24004    #[inline]
24005    fn can_cast(kind: SyntaxKind) -> bool {
24006        kind == SyntaxKind::OP_SIG_LIST
24007    }
24008    #[inline]
24009    fn cast(syntax: SyntaxNode) -> Option<Self> {
24010        if Self::can_cast(syntax.kind()) {
24011            Some(Self { syntax })
24012        } else {
24013            None
24014        }
24015    }
24016    #[inline]
24017    fn syntax(&self) -> &SyntaxNode {
24018        &self.syntax
24019    }
24020}
24021impl AstNode for OperatorCall {
24022    #[inline]
24023    fn can_cast(kind: SyntaxKind) -> bool {
24024        kind == SyntaxKind::OPERATOR_CALL
24025    }
24026    #[inline]
24027    fn cast(syntax: SyntaxNode) -> Option<Self> {
24028        if Self::can_cast(syntax.kind()) {
24029            Some(Self { syntax })
24030        } else {
24031            None
24032        }
24033    }
24034    #[inline]
24035    fn syntax(&self) -> &SyntaxNode {
24036        &self.syntax
24037    }
24038}
24039impl AstNode for OperatorClassOptionList {
24040    #[inline]
24041    fn can_cast(kind: SyntaxKind) -> bool {
24042        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24043    }
24044    #[inline]
24045    fn cast(syntax: SyntaxNode) -> Option<Self> {
24046        if Self::can_cast(syntax.kind()) {
24047            Some(Self { syntax })
24048        } else {
24049            None
24050        }
24051    }
24052    #[inline]
24053    fn syntax(&self) -> &SyntaxNode {
24054        &self.syntax
24055    }
24056}
24057impl AstNode for OptionItem {
24058    #[inline]
24059    fn can_cast(kind: SyntaxKind) -> bool {
24060        kind == SyntaxKind::OPTION_ITEM
24061    }
24062    #[inline]
24063    fn cast(syntax: SyntaxNode) -> Option<Self> {
24064        if Self::can_cast(syntax.kind()) {
24065            Some(Self { syntax })
24066        } else {
24067            None
24068        }
24069    }
24070    #[inline]
24071    fn syntax(&self) -> &SyntaxNode {
24072        &self.syntax
24073    }
24074}
24075impl AstNode for OptionItemList {
24076    #[inline]
24077    fn can_cast(kind: SyntaxKind) -> bool {
24078        kind == SyntaxKind::OPTION_ITEM_LIST
24079    }
24080    #[inline]
24081    fn cast(syntax: SyntaxNode) -> Option<Self> {
24082        if Self::can_cast(syntax.kind()) {
24083            Some(Self { syntax })
24084        } else {
24085            None
24086        }
24087    }
24088    #[inline]
24089    fn syntax(&self) -> &SyntaxNode {
24090        &self.syntax
24091    }
24092}
24093impl AstNode for OrReplace {
24094    #[inline]
24095    fn can_cast(kind: SyntaxKind) -> bool {
24096        kind == SyntaxKind::OR_REPLACE
24097    }
24098    #[inline]
24099    fn cast(syntax: SyntaxNode) -> Option<Self> {
24100        if Self::can_cast(syntax.kind()) {
24101            Some(Self { syntax })
24102        } else {
24103            None
24104        }
24105    }
24106    #[inline]
24107    fn syntax(&self) -> &SyntaxNode {
24108        &self.syntax
24109    }
24110}
24111impl AstNode for OrderByClause {
24112    #[inline]
24113    fn can_cast(kind: SyntaxKind) -> bool {
24114        kind == SyntaxKind::ORDER_BY_CLAUSE
24115    }
24116    #[inline]
24117    fn cast(syntax: SyntaxNode) -> Option<Self> {
24118        if Self::can_cast(syntax.kind()) {
24119            Some(Self { syntax })
24120        } else {
24121            None
24122        }
24123    }
24124    #[inline]
24125    fn syntax(&self) -> &SyntaxNode {
24126        &self.syntax
24127    }
24128}
24129impl AstNode for OverClause {
24130    #[inline]
24131    fn can_cast(kind: SyntaxKind) -> bool {
24132        kind == SyntaxKind::OVER_CLAUSE
24133    }
24134    #[inline]
24135    fn cast(syntax: SyntaxNode) -> Option<Self> {
24136        if Self::can_cast(syntax.kind()) {
24137            Some(Self { syntax })
24138        } else {
24139            None
24140        }
24141    }
24142    #[inline]
24143    fn syntax(&self) -> &SyntaxNode {
24144        &self.syntax
24145    }
24146}
24147impl AstNode for OverlayFn {
24148    #[inline]
24149    fn can_cast(kind: SyntaxKind) -> bool {
24150        kind == SyntaxKind::OVERLAY_FN
24151    }
24152    #[inline]
24153    fn cast(syntax: SyntaxNode) -> Option<Self> {
24154        if Self::can_cast(syntax.kind()) {
24155            Some(Self { syntax })
24156        } else {
24157            None
24158        }
24159    }
24160    #[inline]
24161    fn syntax(&self) -> &SyntaxNode {
24162        &self.syntax
24163    }
24164}
24165impl AstNode for OwnerTo {
24166    #[inline]
24167    fn can_cast(kind: SyntaxKind) -> bool {
24168        kind == SyntaxKind::OWNER_TO
24169    }
24170    #[inline]
24171    fn cast(syntax: SyntaxNode) -> Option<Self> {
24172        if Self::can_cast(syntax.kind()) {
24173            Some(Self { syntax })
24174        } else {
24175            None
24176        }
24177    }
24178    #[inline]
24179    fn syntax(&self) -> &SyntaxNode {
24180        &self.syntax
24181    }
24182}
24183impl AstNode for ParallelFuncOption {
24184    #[inline]
24185    fn can_cast(kind: SyntaxKind) -> bool {
24186        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24187    }
24188    #[inline]
24189    fn cast(syntax: SyntaxNode) -> Option<Self> {
24190        if Self::can_cast(syntax.kind()) {
24191            Some(Self { syntax })
24192        } else {
24193            None
24194        }
24195    }
24196    #[inline]
24197    fn syntax(&self) -> &SyntaxNode {
24198        &self.syntax
24199    }
24200}
24201impl AstNode for Param {
24202    #[inline]
24203    fn can_cast(kind: SyntaxKind) -> bool {
24204        kind == SyntaxKind::PARAM
24205    }
24206    #[inline]
24207    fn cast(syntax: SyntaxNode) -> Option<Self> {
24208        if Self::can_cast(syntax.kind()) {
24209            Some(Self { syntax })
24210        } else {
24211            None
24212        }
24213    }
24214    #[inline]
24215    fn syntax(&self) -> &SyntaxNode {
24216        &self.syntax
24217    }
24218}
24219impl AstNode for ParamDefault {
24220    #[inline]
24221    fn can_cast(kind: SyntaxKind) -> bool {
24222        kind == SyntaxKind::PARAM_DEFAULT
24223    }
24224    #[inline]
24225    fn cast(syntax: SyntaxNode) -> Option<Self> {
24226        if Self::can_cast(syntax.kind()) {
24227            Some(Self { syntax })
24228        } else {
24229            None
24230        }
24231    }
24232    #[inline]
24233    fn syntax(&self) -> &SyntaxNode {
24234        &self.syntax
24235    }
24236}
24237impl AstNode for ParamIn {
24238    #[inline]
24239    fn can_cast(kind: SyntaxKind) -> bool {
24240        kind == SyntaxKind::PARAM_IN
24241    }
24242    #[inline]
24243    fn cast(syntax: SyntaxNode) -> Option<Self> {
24244        if Self::can_cast(syntax.kind()) {
24245            Some(Self { syntax })
24246        } else {
24247            None
24248        }
24249    }
24250    #[inline]
24251    fn syntax(&self) -> &SyntaxNode {
24252        &self.syntax
24253    }
24254}
24255impl AstNode for ParamInOut {
24256    #[inline]
24257    fn can_cast(kind: SyntaxKind) -> bool {
24258        kind == SyntaxKind::PARAM_IN_OUT
24259    }
24260    #[inline]
24261    fn cast(syntax: SyntaxNode) -> Option<Self> {
24262        if Self::can_cast(syntax.kind()) {
24263            Some(Self { syntax })
24264        } else {
24265            None
24266        }
24267    }
24268    #[inline]
24269    fn syntax(&self) -> &SyntaxNode {
24270        &self.syntax
24271    }
24272}
24273impl AstNode for ParamList {
24274    #[inline]
24275    fn can_cast(kind: SyntaxKind) -> bool {
24276        kind == SyntaxKind::PARAM_LIST
24277    }
24278    #[inline]
24279    fn cast(syntax: SyntaxNode) -> Option<Self> {
24280        if Self::can_cast(syntax.kind()) {
24281            Some(Self { syntax })
24282        } else {
24283            None
24284        }
24285    }
24286    #[inline]
24287    fn syntax(&self) -> &SyntaxNode {
24288        &self.syntax
24289    }
24290}
24291impl AstNode for ParamOut {
24292    #[inline]
24293    fn can_cast(kind: SyntaxKind) -> bool {
24294        kind == SyntaxKind::PARAM_OUT
24295    }
24296    #[inline]
24297    fn cast(syntax: SyntaxNode) -> Option<Self> {
24298        if Self::can_cast(syntax.kind()) {
24299            Some(Self { syntax })
24300        } else {
24301            None
24302        }
24303    }
24304    #[inline]
24305    fn syntax(&self) -> &SyntaxNode {
24306        &self.syntax
24307    }
24308}
24309impl AstNode for ParamVariadic {
24310    #[inline]
24311    fn can_cast(kind: SyntaxKind) -> bool {
24312        kind == SyntaxKind::PARAM_VARIADIC
24313    }
24314    #[inline]
24315    fn cast(syntax: SyntaxNode) -> Option<Self> {
24316        if Self::can_cast(syntax.kind()) {
24317            Some(Self { syntax })
24318        } else {
24319            None
24320        }
24321    }
24322    #[inline]
24323    fn syntax(&self) -> &SyntaxNode {
24324        &self.syntax
24325    }
24326}
24327impl AstNode for ParenExpr {
24328    #[inline]
24329    fn can_cast(kind: SyntaxKind) -> bool {
24330        kind == SyntaxKind::PAREN_EXPR
24331    }
24332    #[inline]
24333    fn cast(syntax: SyntaxNode) -> Option<Self> {
24334        if Self::can_cast(syntax.kind()) {
24335            Some(Self { syntax })
24336        } else {
24337            None
24338        }
24339    }
24340    #[inline]
24341    fn syntax(&self) -> &SyntaxNode {
24342        &self.syntax
24343    }
24344}
24345impl AstNode for ParenSelect {
24346    #[inline]
24347    fn can_cast(kind: SyntaxKind) -> bool {
24348        kind == SyntaxKind::PAREN_SELECT
24349    }
24350    #[inline]
24351    fn cast(syntax: SyntaxNode) -> Option<Self> {
24352        if Self::can_cast(syntax.kind()) {
24353            Some(Self { syntax })
24354        } else {
24355            None
24356        }
24357    }
24358    #[inline]
24359    fn syntax(&self) -> &SyntaxNode {
24360        &self.syntax
24361    }
24362}
24363impl AstNode for PartitionBy {
24364    #[inline]
24365    fn can_cast(kind: SyntaxKind) -> bool {
24366        kind == SyntaxKind::PARTITION_BY
24367    }
24368    #[inline]
24369    fn cast(syntax: SyntaxNode) -> Option<Self> {
24370        if Self::can_cast(syntax.kind()) {
24371            Some(Self { syntax })
24372        } else {
24373            None
24374        }
24375    }
24376    #[inline]
24377    fn syntax(&self) -> &SyntaxNode {
24378        &self.syntax
24379    }
24380}
24381impl AstNode for PartitionDefault {
24382    #[inline]
24383    fn can_cast(kind: SyntaxKind) -> bool {
24384        kind == SyntaxKind::PARTITION_DEFAULT
24385    }
24386    #[inline]
24387    fn cast(syntax: SyntaxNode) -> Option<Self> {
24388        if Self::can_cast(syntax.kind()) {
24389            Some(Self { syntax })
24390        } else {
24391            None
24392        }
24393    }
24394    #[inline]
24395    fn syntax(&self) -> &SyntaxNode {
24396        &self.syntax
24397    }
24398}
24399impl AstNode for PartitionForValuesFrom {
24400    #[inline]
24401    fn can_cast(kind: SyntaxKind) -> bool {
24402        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
24403    }
24404    #[inline]
24405    fn cast(syntax: SyntaxNode) -> Option<Self> {
24406        if Self::can_cast(syntax.kind()) {
24407            Some(Self { syntax })
24408        } else {
24409            None
24410        }
24411    }
24412    #[inline]
24413    fn syntax(&self) -> &SyntaxNode {
24414        &self.syntax
24415    }
24416}
24417impl AstNode for PartitionForValuesIn {
24418    #[inline]
24419    fn can_cast(kind: SyntaxKind) -> bool {
24420        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
24421    }
24422    #[inline]
24423    fn cast(syntax: SyntaxNode) -> Option<Self> {
24424        if Self::can_cast(syntax.kind()) {
24425            Some(Self { syntax })
24426        } else {
24427            None
24428        }
24429    }
24430    #[inline]
24431    fn syntax(&self) -> &SyntaxNode {
24432        &self.syntax
24433    }
24434}
24435impl AstNode for PartitionForValuesWith {
24436    #[inline]
24437    fn can_cast(kind: SyntaxKind) -> bool {
24438        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
24439    }
24440    #[inline]
24441    fn cast(syntax: SyntaxNode) -> Option<Self> {
24442        if Self::can_cast(syntax.kind()) {
24443            Some(Self { syntax })
24444        } else {
24445            None
24446        }
24447    }
24448    #[inline]
24449    fn syntax(&self) -> &SyntaxNode {
24450        &self.syntax
24451    }
24452}
24453impl AstNode for PartitionItem {
24454    #[inline]
24455    fn can_cast(kind: SyntaxKind) -> bool {
24456        kind == SyntaxKind::PARTITION_ITEM
24457    }
24458    #[inline]
24459    fn cast(syntax: SyntaxNode) -> Option<Self> {
24460        if Self::can_cast(syntax.kind()) {
24461            Some(Self { syntax })
24462        } else {
24463            None
24464        }
24465    }
24466    #[inline]
24467    fn syntax(&self) -> &SyntaxNode {
24468        &self.syntax
24469    }
24470}
24471impl AstNode for PartitionItemList {
24472    #[inline]
24473    fn can_cast(kind: SyntaxKind) -> bool {
24474        kind == SyntaxKind::PARTITION_ITEM_LIST
24475    }
24476    #[inline]
24477    fn cast(syntax: SyntaxNode) -> Option<Self> {
24478        if Self::can_cast(syntax.kind()) {
24479            Some(Self { syntax })
24480        } else {
24481            None
24482        }
24483    }
24484    #[inline]
24485    fn syntax(&self) -> &SyntaxNode {
24486        &self.syntax
24487    }
24488}
24489impl AstNode for PartitionOf {
24490    #[inline]
24491    fn can_cast(kind: SyntaxKind) -> bool {
24492        kind == SyntaxKind::PARTITION_OF
24493    }
24494    #[inline]
24495    fn cast(syntax: SyntaxNode) -> Option<Self> {
24496        if Self::can_cast(syntax.kind()) {
24497            Some(Self { syntax })
24498        } else {
24499            None
24500        }
24501    }
24502    #[inline]
24503    fn syntax(&self) -> &SyntaxNode {
24504        &self.syntax
24505    }
24506}
24507impl AstNode for Path {
24508    #[inline]
24509    fn can_cast(kind: SyntaxKind) -> bool {
24510        kind == SyntaxKind::PATH
24511    }
24512    #[inline]
24513    fn cast(syntax: SyntaxNode) -> Option<Self> {
24514        if Self::can_cast(syntax.kind()) {
24515            Some(Self { syntax })
24516        } else {
24517            None
24518        }
24519    }
24520    #[inline]
24521    fn syntax(&self) -> &SyntaxNode {
24522        &self.syntax
24523    }
24524}
24525impl AstNode for PathSegment {
24526    #[inline]
24527    fn can_cast(kind: SyntaxKind) -> bool {
24528        kind == SyntaxKind::PATH_SEGMENT
24529    }
24530    #[inline]
24531    fn cast(syntax: SyntaxNode) -> Option<Self> {
24532        if Self::can_cast(syntax.kind()) {
24533            Some(Self { syntax })
24534        } else {
24535            None
24536        }
24537    }
24538    #[inline]
24539    fn syntax(&self) -> &SyntaxNode {
24540        &self.syntax
24541    }
24542}
24543impl AstNode for PathType {
24544    #[inline]
24545    fn can_cast(kind: SyntaxKind) -> bool {
24546        kind == SyntaxKind::PATH_TYPE
24547    }
24548    #[inline]
24549    fn cast(syntax: SyntaxNode) -> Option<Self> {
24550        if Self::can_cast(syntax.kind()) {
24551            Some(Self { syntax })
24552        } else {
24553            None
24554        }
24555    }
24556    #[inline]
24557    fn syntax(&self) -> &SyntaxNode {
24558        &self.syntax
24559    }
24560}
24561impl AstNode for PercentType {
24562    #[inline]
24563    fn can_cast(kind: SyntaxKind) -> bool {
24564        kind == SyntaxKind::PERCENT_TYPE
24565    }
24566    #[inline]
24567    fn cast(syntax: SyntaxNode) -> Option<Self> {
24568        if Self::can_cast(syntax.kind()) {
24569            Some(Self { syntax })
24570        } else {
24571            None
24572        }
24573    }
24574    #[inline]
24575    fn syntax(&self) -> &SyntaxNode {
24576        &self.syntax
24577    }
24578}
24579impl AstNode for PercentTypeClause {
24580    #[inline]
24581    fn can_cast(kind: SyntaxKind) -> bool {
24582        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
24583    }
24584    #[inline]
24585    fn cast(syntax: SyntaxNode) -> Option<Self> {
24586        if Self::can_cast(syntax.kind()) {
24587            Some(Self { syntax })
24588        } else {
24589            None
24590        }
24591    }
24592    #[inline]
24593    fn syntax(&self) -> &SyntaxNode {
24594        &self.syntax
24595    }
24596}
24597impl AstNode for PositionFn {
24598    #[inline]
24599    fn can_cast(kind: SyntaxKind) -> bool {
24600        kind == SyntaxKind::POSITION_FN
24601    }
24602    #[inline]
24603    fn cast(syntax: SyntaxNode) -> Option<Self> {
24604        if Self::can_cast(syntax.kind()) {
24605            Some(Self { syntax })
24606        } else {
24607            None
24608        }
24609    }
24610    #[inline]
24611    fn syntax(&self) -> &SyntaxNode {
24612        &self.syntax
24613    }
24614}
24615impl AstNode for PostfixExpr {
24616    #[inline]
24617    fn can_cast(kind: SyntaxKind) -> bool {
24618        kind == SyntaxKind::POSTFIX_EXPR
24619    }
24620    #[inline]
24621    fn cast(syntax: SyntaxNode) -> Option<Self> {
24622        if Self::can_cast(syntax.kind()) {
24623            Some(Self { syntax })
24624        } else {
24625            None
24626        }
24627    }
24628    #[inline]
24629    fn syntax(&self) -> &SyntaxNode {
24630        &self.syntax
24631    }
24632}
24633impl AstNode for PrefixExpr {
24634    #[inline]
24635    fn can_cast(kind: SyntaxKind) -> bool {
24636        kind == SyntaxKind::PREFIX_EXPR
24637    }
24638    #[inline]
24639    fn cast(syntax: SyntaxNode) -> Option<Self> {
24640        if Self::can_cast(syntax.kind()) {
24641            Some(Self { syntax })
24642        } else {
24643            None
24644        }
24645    }
24646    #[inline]
24647    fn syntax(&self) -> &SyntaxNode {
24648        &self.syntax
24649    }
24650}
24651impl AstNode for Prepare {
24652    #[inline]
24653    fn can_cast(kind: SyntaxKind) -> bool {
24654        kind == SyntaxKind::PREPARE
24655    }
24656    #[inline]
24657    fn cast(syntax: SyntaxNode) -> Option<Self> {
24658        if Self::can_cast(syntax.kind()) {
24659            Some(Self { syntax })
24660        } else {
24661            None
24662        }
24663    }
24664    #[inline]
24665    fn syntax(&self) -> &SyntaxNode {
24666        &self.syntax
24667    }
24668}
24669impl AstNode for PrepareTransaction {
24670    #[inline]
24671    fn can_cast(kind: SyntaxKind) -> bool {
24672        kind == SyntaxKind::PREPARE_TRANSACTION
24673    }
24674    #[inline]
24675    fn cast(syntax: SyntaxNode) -> Option<Self> {
24676        if Self::can_cast(syntax.kind()) {
24677            Some(Self { syntax })
24678        } else {
24679            None
24680        }
24681    }
24682    #[inline]
24683    fn syntax(&self) -> &SyntaxNode {
24684        &self.syntax
24685    }
24686}
24687impl AstNode for PreserveRows {
24688    #[inline]
24689    fn can_cast(kind: SyntaxKind) -> bool {
24690        kind == SyntaxKind::PRESERVE_ROWS
24691    }
24692    #[inline]
24693    fn cast(syntax: SyntaxNode) -> Option<Self> {
24694        if Self::can_cast(syntax.kind()) {
24695            Some(Self { syntax })
24696        } else {
24697            None
24698        }
24699    }
24700    #[inline]
24701    fn syntax(&self) -> &SyntaxNode {
24702        &self.syntax
24703    }
24704}
24705impl AstNode for PrimaryKeyConstraint {
24706    #[inline]
24707    fn can_cast(kind: SyntaxKind) -> bool {
24708        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
24709    }
24710    #[inline]
24711    fn cast(syntax: SyntaxNode) -> Option<Self> {
24712        if Self::can_cast(syntax.kind()) {
24713            Some(Self { syntax })
24714        } else {
24715            None
24716        }
24717    }
24718    #[inline]
24719    fn syntax(&self) -> &SyntaxNode {
24720        &self.syntax
24721    }
24722}
24723impl AstNode for PrivilegeTarget {
24724    #[inline]
24725    fn can_cast(kind: SyntaxKind) -> bool {
24726        kind == SyntaxKind::PRIVILEGE_TARGET
24727    }
24728    #[inline]
24729    fn cast(syntax: SyntaxNode) -> Option<Self> {
24730        if Self::can_cast(syntax.kind()) {
24731            Some(Self { syntax })
24732        } else {
24733            None
24734        }
24735    }
24736    #[inline]
24737    fn syntax(&self) -> &SyntaxNode {
24738        &self.syntax
24739    }
24740}
24741impl AstNode for Privileges {
24742    #[inline]
24743    fn can_cast(kind: SyntaxKind) -> bool {
24744        kind == SyntaxKind::PRIVILEGES
24745    }
24746    #[inline]
24747    fn cast(syntax: SyntaxNode) -> Option<Self> {
24748        if Self::can_cast(syntax.kind()) {
24749            Some(Self { syntax })
24750        } else {
24751            None
24752        }
24753    }
24754    #[inline]
24755    fn syntax(&self) -> &SyntaxNode {
24756        &self.syntax
24757    }
24758}
24759impl AstNode for PublicationObject {
24760    #[inline]
24761    fn can_cast(kind: SyntaxKind) -> bool {
24762        kind == SyntaxKind::PUBLICATION_OBJECT
24763    }
24764    #[inline]
24765    fn cast(syntax: SyntaxNode) -> Option<Self> {
24766        if Self::can_cast(syntax.kind()) {
24767            Some(Self { syntax })
24768        } else {
24769            None
24770        }
24771    }
24772    #[inline]
24773    fn syntax(&self) -> &SyntaxNode {
24774        &self.syntax
24775    }
24776}
24777impl AstNode for ReadCommitted {
24778    #[inline]
24779    fn can_cast(kind: SyntaxKind) -> bool {
24780        kind == SyntaxKind::READ_COMMITTED
24781    }
24782    #[inline]
24783    fn cast(syntax: SyntaxNode) -> Option<Self> {
24784        if Self::can_cast(syntax.kind()) {
24785            Some(Self { syntax })
24786        } else {
24787            None
24788        }
24789    }
24790    #[inline]
24791    fn syntax(&self) -> &SyntaxNode {
24792        &self.syntax
24793    }
24794}
24795impl AstNode for ReadOnly {
24796    #[inline]
24797    fn can_cast(kind: SyntaxKind) -> bool {
24798        kind == SyntaxKind::READ_ONLY
24799    }
24800    #[inline]
24801    fn cast(syntax: SyntaxNode) -> Option<Self> {
24802        if Self::can_cast(syntax.kind()) {
24803            Some(Self { syntax })
24804        } else {
24805            None
24806        }
24807    }
24808    #[inline]
24809    fn syntax(&self) -> &SyntaxNode {
24810        &self.syntax
24811    }
24812}
24813impl AstNode for ReadUncommitted {
24814    #[inline]
24815    fn can_cast(kind: SyntaxKind) -> bool {
24816        kind == SyntaxKind::READ_UNCOMMITTED
24817    }
24818    #[inline]
24819    fn cast(syntax: SyntaxNode) -> Option<Self> {
24820        if Self::can_cast(syntax.kind()) {
24821            Some(Self { syntax })
24822        } else {
24823            None
24824        }
24825    }
24826    #[inline]
24827    fn syntax(&self) -> &SyntaxNode {
24828        &self.syntax
24829    }
24830}
24831impl AstNode for ReadWrite {
24832    #[inline]
24833    fn can_cast(kind: SyntaxKind) -> bool {
24834        kind == SyntaxKind::READ_WRITE
24835    }
24836    #[inline]
24837    fn cast(syntax: SyntaxNode) -> Option<Self> {
24838        if Self::can_cast(syntax.kind()) {
24839            Some(Self { syntax })
24840        } else {
24841            None
24842        }
24843    }
24844    #[inline]
24845    fn syntax(&self) -> &SyntaxNode {
24846        &self.syntax
24847    }
24848}
24849impl AstNode for Reassign {
24850    #[inline]
24851    fn can_cast(kind: SyntaxKind) -> bool {
24852        kind == SyntaxKind::REASSIGN
24853    }
24854    #[inline]
24855    fn cast(syntax: SyntaxNode) -> Option<Self> {
24856        if Self::can_cast(syntax.kind()) {
24857            Some(Self { syntax })
24858        } else {
24859            None
24860        }
24861    }
24862    #[inline]
24863    fn syntax(&self) -> &SyntaxNode {
24864        &self.syntax
24865    }
24866}
24867impl AstNode for ReferencesConstraint {
24868    #[inline]
24869    fn can_cast(kind: SyntaxKind) -> bool {
24870        kind == SyntaxKind::REFERENCES_CONSTRAINT
24871    }
24872    #[inline]
24873    fn cast(syntax: SyntaxNode) -> Option<Self> {
24874        if Self::can_cast(syntax.kind()) {
24875            Some(Self { syntax })
24876        } else {
24877            None
24878        }
24879    }
24880    #[inline]
24881    fn syntax(&self) -> &SyntaxNode {
24882        &self.syntax
24883    }
24884}
24885impl AstNode for Referencing {
24886    #[inline]
24887    fn can_cast(kind: SyntaxKind) -> bool {
24888        kind == SyntaxKind::REFERENCING
24889    }
24890    #[inline]
24891    fn cast(syntax: SyntaxNode) -> Option<Self> {
24892        if Self::can_cast(syntax.kind()) {
24893            Some(Self { syntax })
24894        } else {
24895            None
24896        }
24897    }
24898    #[inline]
24899    fn syntax(&self) -> &SyntaxNode {
24900        &self.syntax
24901    }
24902}
24903impl AstNode for ReferencingTable {
24904    #[inline]
24905    fn can_cast(kind: SyntaxKind) -> bool {
24906        kind == SyntaxKind::REFERENCING_TABLE
24907    }
24908    #[inline]
24909    fn cast(syntax: SyntaxNode) -> Option<Self> {
24910        if Self::can_cast(syntax.kind()) {
24911            Some(Self { syntax })
24912        } else {
24913            None
24914        }
24915    }
24916    #[inline]
24917    fn syntax(&self) -> &SyntaxNode {
24918        &self.syntax
24919    }
24920}
24921impl AstNode for Refresh {
24922    #[inline]
24923    fn can_cast(kind: SyntaxKind) -> bool {
24924        kind == SyntaxKind::REFRESH
24925    }
24926    #[inline]
24927    fn cast(syntax: SyntaxNode) -> Option<Self> {
24928        if Self::can_cast(syntax.kind()) {
24929            Some(Self { syntax })
24930        } else {
24931            None
24932        }
24933    }
24934    #[inline]
24935    fn syntax(&self) -> &SyntaxNode {
24936        &self.syntax
24937    }
24938}
24939impl AstNode for RefreshCollationVersion {
24940    #[inline]
24941    fn can_cast(kind: SyntaxKind) -> bool {
24942        kind == SyntaxKind::REFRESH_COLLATION_VERSION
24943    }
24944    #[inline]
24945    fn cast(syntax: SyntaxNode) -> Option<Self> {
24946        if Self::can_cast(syntax.kind()) {
24947            Some(Self { syntax })
24948        } else {
24949            None
24950        }
24951    }
24952    #[inline]
24953    fn syntax(&self) -> &SyntaxNode {
24954        &self.syntax
24955    }
24956}
24957impl AstNode for RefreshVersion {
24958    #[inline]
24959    fn can_cast(kind: SyntaxKind) -> bool {
24960        kind == SyntaxKind::REFRESH_VERSION
24961    }
24962    #[inline]
24963    fn cast(syntax: SyntaxNode) -> Option<Self> {
24964        if Self::can_cast(syntax.kind()) {
24965            Some(Self { syntax })
24966        } else {
24967            None
24968        }
24969    }
24970    #[inline]
24971    fn syntax(&self) -> &SyntaxNode {
24972        &self.syntax
24973    }
24974}
24975impl AstNode for Reindex {
24976    #[inline]
24977    fn can_cast(kind: SyntaxKind) -> bool {
24978        kind == SyntaxKind::REINDEX
24979    }
24980    #[inline]
24981    fn cast(syntax: SyntaxNode) -> Option<Self> {
24982        if Self::can_cast(syntax.kind()) {
24983            Some(Self { syntax })
24984        } else {
24985            None
24986        }
24987    }
24988    #[inline]
24989    fn syntax(&self) -> &SyntaxNode {
24990        &self.syntax
24991    }
24992}
24993impl AstNode for RelationName {
24994    #[inline]
24995    fn can_cast(kind: SyntaxKind) -> bool {
24996        kind == SyntaxKind::RELATION_NAME
24997    }
24998    #[inline]
24999    fn cast(syntax: SyntaxNode) -> Option<Self> {
25000        if Self::can_cast(syntax.kind()) {
25001            Some(Self { syntax })
25002        } else {
25003            None
25004        }
25005    }
25006    #[inline]
25007    fn syntax(&self) -> &SyntaxNode {
25008        &self.syntax
25009    }
25010}
25011impl AstNode for ReleaseSavepoint {
25012    #[inline]
25013    fn can_cast(kind: SyntaxKind) -> bool {
25014        kind == SyntaxKind::RELEASE_SAVEPOINT
25015    }
25016    #[inline]
25017    fn cast(syntax: SyntaxNode) -> Option<Self> {
25018        if Self::can_cast(syntax.kind()) {
25019            Some(Self { syntax })
25020        } else {
25021            None
25022        }
25023    }
25024    #[inline]
25025    fn syntax(&self) -> &SyntaxNode {
25026        &self.syntax
25027    }
25028}
25029impl AstNode for RenameColumn {
25030    #[inline]
25031    fn can_cast(kind: SyntaxKind) -> bool {
25032        kind == SyntaxKind::RENAME_COLUMN
25033    }
25034    #[inline]
25035    fn cast(syntax: SyntaxNode) -> Option<Self> {
25036        if Self::can_cast(syntax.kind()) {
25037            Some(Self { syntax })
25038        } else {
25039            None
25040        }
25041    }
25042    #[inline]
25043    fn syntax(&self) -> &SyntaxNode {
25044        &self.syntax
25045    }
25046}
25047impl AstNode for RenameConstraint {
25048    #[inline]
25049    fn can_cast(kind: SyntaxKind) -> bool {
25050        kind == SyntaxKind::RENAME_CONSTRAINT
25051    }
25052    #[inline]
25053    fn cast(syntax: SyntaxNode) -> Option<Self> {
25054        if Self::can_cast(syntax.kind()) {
25055            Some(Self { syntax })
25056        } else {
25057            None
25058        }
25059    }
25060    #[inline]
25061    fn syntax(&self) -> &SyntaxNode {
25062        &self.syntax
25063    }
25064}
25065impl AstNode for RenameTo {
25066    #[inline]
25067    fn can_cast(kind: SyntaxKind) -> bool {
25068        kind == SyntaxKind::RENAME_TO
25069    }
25070    #[inline]
25071    fn cast(syntax: SyntaxNode) -> Option<Self> {
25072        if Self::can_cast(syntax.kind()) {
25073            Some(Self { syntax })
25074        } else {
25075            None
25076        }
25077    }
25078    #[inline]
25079    fn syntax(&self) -> &SyntaxNode {
25080        &self.syntax
25081    }
25082}
25083impl AstNode for RepeatableClause {
25084    #[inline]
25085    fn can_cast(kind: SyntaxKind) -> bool {
25086        kind == SyntaxKind::REPEATABLE_CLAUSE
25087    }
25088    #[inline]
25089    fn cast(syntax: SyntaxNode) -> Option<Self> {
25090        if Self::can_cast(syntax.kind()) {
25091            Some(Self { syntax })
25092        } else {
25093            None
25094        }
25095    }
25096    #[inline]
25097    fn syntax(&self) -> &SyntaxNode {
25098        &self.syntax
25099    }
25100}
25101impl AstNode for RepeatableRead {
25102    #[inline]
25103    fn can_cast(kind: SyntaxKind) -> bool {
25104        kind == SyntaxKind::REPEATABLE_READ
25105    }
25106    #[inline]
25107    fn cast(syntax: SyntaxNode) -> Option<Self> {
25108        if Self::can_cast(syntax.kind()) {
25109            Some(Self { syntax })
25110        } else {
25111            None
25112        }
25113    }
25114    #[inline]
25115    fn syntax(&self) -> &SyntaxNode {
25116        &self.syntax
25117    }
25118}
25119impl AstNode for ReplicaIdentity {
25120    #[inline]
25121    fn can_cast(kind: SyntaxKind) -> bool {
25122        kind == SyntaxKind::REPLICA_IDENTITY
25123    }
25124    #[inline]
25125    fn cast(syntax: SyntaxNode) -> Option<Self> {
25126        if Self::can_cast(syntax.kind()) {
25127            Some(Self { syntax })
25128        } else {
25129            None
25130        }
25131    }
25132    #[inline]
25133    fn syntax(&self) -> &SyntaxNode {
25134        &self.syntax
25135    }
25136}
25137impl AstNode for Reset {
25138    #[inline]
25139    fn can_cast(kind: SyntaxKind) -> bool {
25140        kind == SyntaxKind::RESET
25141    }
25142    #[inline]
25143    fn cast(syntax: SyntaxNode) -> Option<Self> {
25144        if Self::can_cast(syntax.kind()) {
25145            Some(Self { syntax })
25146        } else {
25147            None
25148        }
25149    }
25150    #[inline]
25151    fn syntax(&self) -> &SyntaxNode {
25152        &self.syntax
25153    }
25154}
25155impl AstNode for ResetConfigParam {
25156    #[inline]
25157    fn can_cast(kind: SyntaxKind) -> bool {
25158        kind == SyntaxKind::RESET_CONFIG_PARAM
25159    }
25160    #[inline]
25161    fn cast(syntax: SyntaxNode) -> Option<Self> {
25162        if Self::can_cast(syntax.kind()) {
25163            Some(Self { syntax })
25164        } else {
25165            None
25166        }
25167    }
25168    #[inline]
25169    fn syntax(&self) -> &SyntaxNode {
25170        &self.syntax
25171    }
25172}
25173impl AstNode for ResetFuncOption {
25174    #[inline]
25175    fn can_cast(kind: SyntaxKind) -> bool {
25176        kind == SyntaxKind::RESET_FUNC_OPTION
25177    }
25178    #[inline]
25179    fn cast(syntax: SyntaxNode) -> Option<Self> {
25180        if Self::can_cast(syntax.kind()) {
25181            Some(Self { syntax })
25182        } else {
25183            None
25184        }
25185    }
25186    #[inline]
25187    fn syntax(&self) -> &SyntaxNode {
25188        &self.syntax
25189    }
25190}
25191impl AstNode for ResetOptions {
25192    #[inline]
25193    fn can_cast(kind: SyntaxKind) -> bool {
25194        kind == SyntaxKind::RESET_OPTIONS
25195    }
25196    #[inline]
25197    fn cast(syntax: SyntaxNode) -> Option<Self> {
25198        if Self::can_cast(syntax.kind()) {
25199            Some(Self { syntax })
25200        } else {
25201            None
25202        }
25203    }
25204    #[inline]
25205    fn syntax(&self) -> &SyntaxNode {
25206        &self.syntax
25207    }
25208}
25209impl AstNode for ResetSessionAuth {
25210    #[inline]
25211    fn can_cast(kind: SyntaxKind) -> bool {
25212        kind == SyntaxKind::RESET_SESSION_AUTH
25213    }
25214    #[inline]
25215    fn cast(syntax: SyntaxNode) -> Option<Self> {
25216        if Self::can_cast(syntax.kind()) {
25217            Some(Self { syntax })
25218        } else {
25219            None
25220        }
25221    }
25222    #[inline]
25223    fn syntax(&self) -> &SyntaxNode {
25224        &self.syntax
25225    }
25226}
25227impl AstNode for Restart {
25228    #[inline]
25229    fn can_cast(kind: SyntaxKind) -> bool {
25230        kind == SyntaxKind::RESTART
25231    }
25232    #[inline]
25233    fn cast(syntax: SyntaxNode) -> Option<Self> {
25234        if Self::can_cast(syntax.kind()) {
25235            Some(Self { syntax })
25236        } else {
25237            None
25238        }
25239    }
25240    #[inline]
25241    fn syntax(&self) -> &SyntaxNode {
25242        &self.syntax
25243    }
25244}
25245impl AstNode for Restrict {
25246    #[inline]
25247    fn can_cast(kind: SyntaxKind) -> bool {
25248        kind == SyntaxKind::RESTRICT
25249    }
25250    #[inline]
25251    fn cast(syntax: SyntaxNode) -> Option<Self> {
25252        if Self::can_cast(syntax.kind()) {
25253            Some(Self { syntax })
25254        } else {
25255            None
25256        }
25257    }
25258    #[inline]
25259    fn syntax(&self) -> &SyntaxNode {
25260        &self.syntax
25261    }
25262}
25263impl AstNode for RetType {
25264    #[inline]
25265    fn can_cast(kind: SyntaxKind) -> bool {
25266        kind == SyntaxKind::RET_TYPE
25267    }
25268    #[inline]
25269    fn cast(syntax: SyntaxNode) -> Option<Self> {
25270        if Self::can_cast(syntax.kind()) {
25271            Some(Self { syntax })
25272        } else {
25273            None
25274        }
25275    }
25276    #[inline]
25277    fn syntax(&self) -> &SyntaxNode {
25278        &self.syntax
25279    }
25280}
25281impl AstNode for ReturnFuncOption {
25282    #[inline]
25283    fn can_cast(kind: SyntaxKind) -> bool {
25284        kind == SyntaxKind::RETURN_FUNC_OPTION
25285    }
25286    #[inline]
25287    fn cast(syntax: SyntaxNode) -> Option<Self> {
25288        if Self::can_cast(syntax.kind()) {
25289            Some(Self { syntax })
25290        } else {
25291            None
25292        }
25293    }
25294    #[inline]
25295    fn syntax(&self) -> &SyntaxNode {
25296        &self.syntax
25297    }
25298}
25299impl AstNode for ReturningClause {
25300    #[inline]
25301    fn can_cast(kind: SyntaxKind) -> bool {
25302        kind == SyntaxKind::RETURNING_CLAUSE
25303    }
25304    #[inline]
25305    fn cast(syntax: SyntaxNode) -> Option<Self> {
25306        if Self::can_cast(syntax.kind()) {
25307            Some(Self { syntax })
25308        } else {
25309            None
25310        }
25311    }
25312    #[inline]
25313    fn syntax(&self) -> &SyntaxNode {
25314        &self.syntax
25315    }
25316}
25317impl AstNode for ReturningOption {
25318    #[inline]
25319    fn can_cast(kind: SyntaxKind) -> bool {
25320        kind == SyntaxKind::RETURNING_OPTION
25321    }
25322    #[inline]
25323    fn cast(syntax: SyntaxNode) -> Option<Self> {
25324        if Self::can_cast(syntax.kind()) {
25325            Some(Self { syntax })
25326        } else {
25327            None
25328        }
25329    }
25330    #[inline]
25331    fn syntax(&self) -> &SyntaxNode {
25332        &self.syntax
25333    }
25334}
25335impl AstNode for ReturningOptionList {
25336    #[inline]
25337    fn can_cast(kind: SyntaxKind) -> bool {
25338        kind == SyntaxKind::RETURNING_OPTION_LIST
25339    }
25340    #[inline]
25341    fn cast(syntax: SyntaxNode) -> Option<Self> {
25342        if Self::can_cast(syntax.kind()) {
25343            Some(Self { syntax })
25344        } else {
25345            None
25346        }
25347    }
25348    #[inline]
25349    fn syntax(&self) -> &SyntaxNode {
25350        &self.syntax
25351    }
25352}
25353impl AstNode for Revoke {
25354    #[inline]
25355    fn can_cast(kind: SyntaxKind) -> bool {
25356        kind == SyntaxKind::REVOKE
25357    }
25358    #[inline]
25359    fn cast(syntax: SyntaxNode) -> Option<Self> {
25360        if Self::can_cast(syntax.kind()) {
25361            Some(Self { syntax })
25362        } else {
25363            None
25364        }
25365    }
25366    #[inline]
25367    fn syntax(&self) -> &SyntaxNode {
25368        &self.syntax
25369    }
25370}
25371impl AstNode for RevokeCommand {
25372    #[inline]
25373    fn can_cast(kind: SyntaxKind) -> bool {
25374        kind == SyntaxKind::REVOKE_COMMAND
25375    }
25376    #[inline]
25377    fn cast(syntax: SyntaxNode) -> Option<Self> {
25378        if Self::can_cast(syntax.kind()) {
25379            Some(Self { syntax })
25380        } else {
25381            None
25382        }
25383    }
25384    #[inline]
25385    fn syntax(&self) -> &SyntaxNode {
25386        &self.syntax
25387    }
25388}
25389impl AstNode for RevokeCommandList {
25390    #[inline]
25391    fn can_cast(kind: SyntaxKind) -> bool {
25392        kind == SyntaxKind::REVOKE_COMMAND_LIST
25393    }
25394    #[inline]
25395    fn cast(syntax: SyntaxNode) -> Option<Self> {
25396        if Self::can_cast(syntax.kind()) {
25397            Some(Self { syntax })
25398        } else {
25399            None
25400        }
25401    }
25402    #[inline]
25403    fn syntax(&self) -> &SyntaxNode {
25404        &self.syntax
25405    }
25406}
25407impl AstNode for RevokeDefaultPrivileges {
25408    #[inline]
25409    fn can_cast(kind: SyntaxKind) -> bool {
25410        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
25411    }
25412    #[inline]
25413    fn cast(syntax: SyntaxNode) -> Option<Self> {
25414        if Self::can_cast(syntax.kind()) {
25415            Some(Self { syntax })
25416        } else {
25417            None
25418        }
25419    }
25420    #[inline]
25421    fn syntax(&self) -> &SyntaxNode {
25422        &self.syntax
25423    }
25424}
25425impl AstNode for Role {
25426    #[inline]
25427    fn can_cast(kind: SyntaxKind) -> bool {
25428        kind == SyntaxKind::ROLE
25429    }
25430    #[inline]
25431    fn cast(syntax: SyntaxNode) -> Option<Self> {
25432        if Self::can_cast(syntax.kind()) {
25433            Some(Self { syntax })
25434        } else {
25435            None
25436        }
25437    }
25438    #[inline]
25439    fn syntax(&self) -> &SyntaxNode {
25440        &self.syntax
25441    }
25442}
25443impl AstNode for RoleList {
25444    #[inline]
25445    fn can_cast(kind: SyntaxKind) -> bool {
25446        kind == SyntaxKind::ROLE_LIST
25447    }
25448    #[inline]
25449    fn cast(syntax: SyntaxNode) -> Option<Self> {
25450        if Self::can_cast(syntax.kind()) {
25451            Some(Self { syntax })
25452        } else {
25453            None
25454        }
25455    }
25456    #[inline]
25457    fn syntax(&self) -> &SyntaxNode {
25458        &self.syntax
25459    }
25460}
25461impl AstNode for RoleOption {
25462    #[inline]
25463    fn can_cast(kind: SyntaxKind) -> bool {
25464        kind == SyntaxKind::ROLE_OPTION
25465    }
25466    #[inline]
25467    fn cast(syntax: SyntaxNode) -> Option<Self> {
25468        if Self::can_cast(syntax.kind()) {
25469            Some(Self { syntax })
25470        } else {
25471            None
25472        }
25473    }
25474    #[inline]
25475    fn syntax(&self) -> &SyntaxNode {
25476        &self.syntax
25477    }
25478}
25479impl AstNode for RoleOptionList {
25480    #[inline]
25481    fn can_cast(kind: SyntaxKind) -> bool {
25482        kind == SyntaxKind::ROLE_OPTION_LIST
25483    }
25484    #[inline]
25485    fn cast(syntax: SyntaxNode) -> Option<Self> {
25486        if Self::can_cast(syntax.kind()) {
25487            Some(Self { syntax })
25488        } else {
25489            None
25490        }
25491    }
25492    #[inline]
25493    fn syntax(&self) -> &SyntaxNode {
25494        &self.syntax
25495    }
25496}
25497impl AstNode for Rollback {
25498    #[inline]
25499    fn can_cast(kind: SyntaxKind) -> bool {
25500        kind == SyntaxKind::ROLLBACK
25501    }
25502    #[inline]
25503    fn cast(syntax: SyntaxNode) -> Option<Self> {
25504        if Self::can_cast(syntax.kind()) {
25505            Some(Self { syntax })
25506        } else {
25507            None
25508        }
25509    }
25510    #[inline]
25511    fn syntax(&self) -> &SyntaxNode {
25512        &self.syntax
25513    }
25514}
25515impl AstNode for Row {
25516    #[inline]
25517    fn can_cast(kind: SyntaxKind) -> bool {
25518        kind == SyntaxKind::ROW
25519    }
25520    #[inline]
25521    fn cast(syntax: SyntaxNode) -> Option<Self> {
25522        if Self::can_cast(syntax.kind()) {
25523            Some(Self { syntax })
25524        } else {
25525            None
25526        }
25527    }
25528    #[inline]
25529    fn syntax(&self) -> &SyntaxNode {
25530        &self.syntax
25531    }
25532}
25533impl AstNode for RowList {
25534    #[inline]
25535    fn can_cast(kind: SyntaxKind) -> bool {
25536        kind == SyntaxKind::ROW_LIST
25537    }
25538    #[inline]
25539    fn cast(syntax: SyntaxNode) -> Option<Self> {
25540        if Self::can_cast(syntax.kind()) {
25541            Some(Self { syntax })
25542        } else {
25543            None
25544        }
25545    }
25546    #[inline]
25547    fn syntax(&self) -> &SyntaxNode {
25548        &self.syntax
25549    }
25550}
25551impl AstNode for RowsFuncOption {
25552    #[inline]
25553    fn can_cast(kind: SyntaxKind) -> bool {
25554        kind == SyntaxKind::ROWS_FUNC_OPTION
25555    }
25556    #[inline]
25557    fn cast(syntax: SyntaxNode) -> Option<Self> {
25558        if Self::can_cast(syntax.kind()) {
25559            Some(Self { syntax })
25560        } else {
25561            None
25562        }
25563    }
25564    #[inline]
25565    fn syntax(&self) -> &SyntaxNode {
25566        &self.syntax
25567    }
25568}
25569impl AstNode for Savepoint {
25570    #[inline]
25571    fn can_cast(kind: SyntaxKind) -> bool {
25572        kind == SyntaxKind::SAVEPOINT
25573    }
25574    #[inline]
25575    fn cast(syntax: SyntaxNode) -> Option<Self> {
25576        if Self::can_cast(syntax.kind()) {
25577            Some(Self { syntax })
25578        } else {
25579            None
25580        }
25581    }
25582    #[inline]
25583    fn syntax(&self) -> &SyntaxNode {
25584        &self.syntax
25585    }
25586}
25587impl AstNode for SchemaAuthorization {
25588    #[inline]
25589    fn can_cast(kind: SyntaxKind) -> bool {
25590        kind == SyntaxKind::SCHEMA_AUTHORIZATION
25591    }
25592    #[inline]
25593    fn cast(syntax: SyntaxNode) -> Option<Self> {
25594        if Self::can_cast(syntax.kind()) {
25595            Some(Self { syntax })
25596        } else {
25597            None
25598        }
25599    }
25600    #[inline]
25601    fn syntax(&self) -> &SyntaxNode {
25602        &self.syntax
25603    }
25604}
25605impl AstNode for SecurityFuncOption {
25606    #[inline]
25607    fn can_cast(kind: SyntaxKind) -> bool {
25608        kind == SyntaxKind::SECURITY_FUNC_OPTION
25609    }
25610    #[inline]
25611    fn cast(syntax: SyntaxNode) -> Option<Self> {
25612        if Self::can_cast(syntax.kind()) {
25613            Some(Self { syntax })
25614        } else {
25615            None
25616        }
25617    }
25618    #[inline]
25619    fn syntax(&self) -> &SyntaxNode {
25620        &self.syntax
25621    }
25622}
25623impl AstNode for SecurityLabel {
25624    #[inline]
25625    fn can_cast(kind: SyntaxKind) -> bool {
25626        kind == SyntaxKind::SECURITY_LABEL
25627    }
25628    #[inline]
25629    fn cast(syntax: SyntaxNode) -> Option<Self> {
25630        if Self::can_cast(syntax.kind()) {
25631            Some(Self { syntax })
25632        } else {
25633            None
25634        }
25635    }
25636    #[inline]
25637    fn syntax(&self) -> &SyntaxNode {
25638        &self.syntax
25639    }
25640}
25641impl AstNode for Select {
25642    #[inline]
25643    fn can_cast(kind: SyntaxKind) -> bool {
25644        kind == SyntaxKind::SELECT
25645    }
25646    #[inline]
25647    fn cast(syntax: SyntaxNode) -> Option<Self> {
25648        if Self::can_cast(syntax.kind()) {
25649            Some(Self { syntax })
25650        } else {
25651            None
25652        }
25653    }
25654    #[inline]
25655    fn syntax(&self) -> &SyntaxNode {
25656        &self.syntax
25657    }
25658}
25659impl AstNode for SelectClause {
25660    #[inline]
25661    fn can_cast(kind: SyntaxKind) -> bool {
25662        kind == SyntaxKind::SELECT_CLAUSE
25663    }
25664    #[inline]
25665    fn cast(syntax: SyntaxNode) -> Option<Self> {
25666        if Self::can_cast(syntax.kind()) {
25667            Some(Self { syntax })
25668        } else {
25669            None
25670        }
25671    }
25672    #[inline]
25673    fn syntax(&self) -> &SyntaxNode {
25674        &self.syntax
25675    }
25676}
25677impl AstNode for SelectInto {
25678    #[inline]
25679    fn can_cast(kind: SyntaxKind) -> bool {
25680        kind == SyntaxKind::SELECT_INTO
25681    }
25682    #[inline]
25683    fn cast(syntax: SyntaxNode) -> Option<Self> {
25684        if Self::can_cast(syntax.kind()) {
25685            Some(Self { syntax })
25686        } else {
25687            None
25688        }
25689    }
25690    #[inline]
25691    fn syntax(&self) -> &SyntaxNode {
25692        &self.syntax
25693    }
25694}
25695impl AstNode for SequenceOption {
25696    #[inline]
25697    fn can_cast(kind: SyntaxKind) -> bool {
25698        kind == SyntaxKind::SEQUENCE_OPTION
25699    }
25700    #[inline]
25701    fn cast(syntax: SyntaxNode) -> Option<Self> {
25702        if Self::can_cast(syntax.kind()) {
25703            Some(Self { syntax })
25704        } else {
25705            None
25706        }
25707    }
25708    #[inline]
25709    fn syntax(&self) -> &SyntaxNode {
25710        &self.syntax
25711    }
25712}
25713impl AstNode for SequenceOptionList {
25714    #[inline]
25715    fn can_cast(kind: SyntaxKind) -> bool {
25716        kind == SyntaxKind::SEQUENCE_OPTION_LIST
25717    }
25718    #[inline]
25719    fn cast(syntax: SyntaxNode) -> Option<Self> {
25720        if Self::can_cast(syntax.kind()) {
25721            Some(Self { syntax })
25722        } else {
25723            None
25724        }
25725    }
25726    #[inline]
25727    fn syntax(&self) -> &SyntaxNode {
25728        &self.syntax
25729    }
25730}
25731impl AstNode for Serializable {
25732    #[inline]
25733    fn can_cast(kind: SyntaxKind) -> bool {
25734        kind == SyntaxKind::SERIALIZABLE
25735    }
25736    #[inline]
25737    fn cast(syntax: SyntaxNode) -> Option<Self> {
25738        if Self::can_cast(syntax.kind()) {
25739            Some(Self { syntax })
25740        } else {
25741            None
25742        }
25743    }
25744    #[inline]
25745    fn syntax(&self) -> &SyntaxNode {
25746        &self.syntax
25747    }
25748}
25749impl AstNode for Set {
25750    #[inline]
25751    fn can_cast(kind: SyntaxKind) -> bool {
25752        kind == SyntaxKind::SET
25753    }
25754    #[inline]
25755    fn cast(syntax: SyntaxNode) -> Option<Self> {
25756        if Self::can_cast(syntax.kind()) {
25757            Some(Self { syntax })
25758        } else {
25759            None
25760        }
25761    }
25762    #[inline]
25763    fn syntax(&self) -> &SyntaxNode {
25764        &self.syntax
25765    }
25766}
25767impl AstNode for SetAccessMethod {
25768    #[inline]
25769    fn can_cast(kind: SyntaxKind) -> bool {
25770        kind == SyntaxKind::SET_ACCESS_METHOD
25771    }
25772    #[inline]
25773    fn cast(syntax: SyntaxNode) -> Option<Self> {
25774        if Self::can_cast(syntax.kind()) {
25775            Some(Self { syntax })
25776        } else {
25777            None
25778        }
25779    }
25780    #[inline]
25781    fn syntax(&self) -> &SyntaxNode {
25782        &self.syntax
25783    }
25784}
25785impl AstNode for SetClause {
25786    #[inline]
25787    fn can_cast(kind: SyntaxKind) -> bool {
25788        kind == SyntaxKind::SET_CLAUSE
25789    }
25790    #[inline]
25791    fn cast(syntax: SyntaxNode) -> Option<Self> {
25792        if Self::can_cast(syntax.kind()) {
25793            Some(Self { syntax })
25794        } else {
25795            None
25796        }
25797    }
25798    #[inline]
25799    fn syntax(&self) -> &SyntaxNode {
25800        &self.syntax
25801    }
25802}
25803impl AstNode for SetColumnList {
25804    #[inline]
25805    fn can_cast(kind: SyntaxKind) -> bool {
25806        kind == SyntaxKind::SET_COLUMN_LIST
25807    }
25808    #[inline]
25809    fn cast(syntax: SyntaxNode) -> Option<Self> {
25810        if Self::can_cast(syntax.kind()) {
25811            Some(Self { syntax })
25812        } else {
25813            None
25814        }
25815    }
25816    #[inline]
25817    fn syntax(&self) -> &SyntaxNode {
25818        &self.syntax
25819    }
25820}
25821impl AstNode for SetCompression {
25822    #[inline]
25823    fn can_cast(kind: SyntaxKind) -> bool {
25824        kind == SyntaxKind::SET_COMPRESSION
25825    }
25826    #[inline]
25827    fn cast(syntax: SyntaxNode) -> Option<Self> {
25828        if Self::can_cast(syntax.kind()) {
25829            Some(Self { syntax })
25830        } else {
25831            None
25832        }
25833    }
25834    #[inline]
25835    fn syntax(&self) -> &SyntaxNode {
25836        &self.syntax
25837    }
25838}
25839impl AstNode for SetConfigParam {
25840    #[inline]
25841    fn can_cast(kind: SyntaxKind) -> bool {
25842        kind == SyntaxKind::SET_CONFIG_PARAM
25843    }
25844    #[inline]
25845    fn cast(syntax: SyntaxNode) -> Option<Self> {
25846        if Self::can_cast(syntax.kind()) {
25847            Some(Self { syntax })
25848        } else {
25849            None
25850        }
25851    }
25852    #[inline]
25853    fn syntax(&self) -> &SyntaxNode {
25854        &self.syntax
25855    }
25856}
25857impl AstNode for SetConstraints {
25858    #[inline]
25859    fn can_cast(kind: SyntaxKind) -> bool {
25860        kind == SyntaxKind::SET_CONSTRAINTS
25861    }
25862    #[inline]
25863    fn cast(syntax: SyntaxNode) -> Option<Self> {
25864        if Self::can_cast(syntax.kind()) {
25865            Some(Self { syntax })
25866        } else {
25867            None
25868        }
25869    }
25870    #[inline]
25871    fn syntax(&self) -> &SyntaxNode {
25872        &self.syntax
25873    }
25874}
25875impl AstNode for SetDefault {
25876    #[inline]
25877    fn can_cast(kind: SyntaxKind) -> bool {
25878        kind == SyntaxKind::SET_DEFAULT
25879    }
25880    #[inline]
25881    fn cast(syntax: SyntaxNode) -> Option<Self> {
25882        if Self::can_cast(syntax.kind()) {
25883            Some(Self { syntax })
25884        } else {
25885            None
25886        }
25887    }
25888    #[inline]
25889    fn syntax(&self) -> &SyntaxNode {
25890        &self.syntax
25891    }
25892}
25893impl AstNode for SetDefaultColumns {
25894    #[inline]
25895    fn can_cast(kind: SyntaxKind) -> bool {
25896        kind == SyntaxKind::SET_DEFAULT_COLUMNS
25897    }
25898    #[inline]
25899    fn cast(syntax: SyntaxNode) -> Option<Self> {
25900        if Self::can_cast(syntax.kind()) {
25901            Some(Self { syntax })
25902        } else {
25903            None
25904        }
25905    }
25906    #[inline]
25907    fn syntax(&self) -> &SyntaxNode {
25908        &self.syntax
25909    }
25910}
25911impl AstNode for SetExpr {
25912    #[inline]
25913    fn can_cast(kind: SyntaxKind) -> bool {
25914        kind == SyntaxKind::SET_EXPR
25915    }
25916    #[inline]
25917    fn cast(syntax: SyntaxNode) -> Option<Self> {
25918        if Self::can_cast(syntax.kind()) {
25919            Some(Self { syntax })
25920        } else {
25921            None
25922        }
25923    }
25924    #[inline]
25925    fn syntax(&self) -> &SyntaxNode {
25926        &self.syntax
25927    }
25928}
25929impl AstNode for SetExprList {
25930    #[inline]
25931    fn can_cast(kind: SyntaxKind) -> bool {
25932        kind == SyntaxKind::SET_EXPR_LIST
25933    }
25934    #[inline]
25935    fn cast(syntax: SyntaxNode) -> Option<Self> {
25936        if Self::can_cast(syntax.kind()) {
25937            Some(Self { syntax })
25938        } else {
25939            None
25940        }
25941    }
25942    #[inline]
25943    fn syntax(&self) -> &SyntaxNode {
25944        &self.syntax
25945    }
25946}
25947impl AstNode for SetExpression {
25948    #[inline]
25949    fn can_cast(kind: SyntaxKind) -> bool {
25950        kind == SyntaxKind::SET_EXPRESSION
25951    }
25952    #[inline]
25953    fn cast(syntax: SyntaxNode) -> Option<Self> {
25954        if Self::can_cast(syntax.kind()) {
25955            Some(Self { syntax })
25956        } else {
25957            None
25958        }
25959    }
25960    #[inline]
25961    fn syntax(&self) -> &SyntaxNode {
25962        &self.syntax
25963    }
25964}
25965impl AstNode for SetFuncOption {
25966    #[inline]
25967    fn can_cast(kind: SyntaxKind) -> bool {
25968        kind == SyntaxKind::SET_FUNC_OPTION
25969    }
25970    #[inline]
25971    fn cast(syntax: SyntaxNode) -> Option<Self> {
25972        if Self::can_cast(syntax.kind()) {
25973            Some(Self { syntax })
25974        } else {
25975            None
25976        }
25977    }
25978    #[inline]
25979    fn syntax(&self) -> &SyntaxNode {
25980        &self.syntax
25981    }
25982}
25983impl AstNode for SetGenerated {
25984    #[inline]
25985    fn can_cast(kind: SyntaxKind) -> bool {
25986        kind == SyntaxKind::SET_GENERATED
25987    }
25988    #[inline]
25989    fn cast(syntax: SyntaxNode) -> Option<Self> {
25990        if Self::can_cast(syntax.kind()) {
25991            Some(Self { syntax })
25992        } else {
25993            None
25994        }
25995    }
25996    #[inline]
25997    fn syntax(&self) -> &SyntaxNode {
25998        &self.syntax
25999    }
26000}
26001impl AstNode for SetGeneratedOptions {
26002    #[inline]
26003    fn can_cast(kind: SyntaxKind) -> bool {
26004        kind == SyntaxKind::SET_GENERATED_OPTIONS
26005    }
26006    #[inline]
26007    fn cast(syntax: SyntaxNode) -> Option<Self> {
26008        if Self::can_cast(syntax.kind()) {
26009            Some(Self { syntax })
26010        } else {
26011            None
26012        }
26013    }
26014    #[inline]
26015    fn syntax(&self) -> &SyntaxNode {
26016        &self.syntax
26017    }
26018}
26019impl AstNode for SetLogged {
26020    #[inline]
26021    fn can_cast(kind: SyntaxKind) -> bool {
26022        kind == SyntaxKind::SET_LOGGED
26023    }
26024    #[inline]
26025    fn cast(syntax: SyntaxNode) -> Option<Self> {
26026        if Self::can_cast(syntax.kind()) {
26027            Some(Self { syntax })
26028        } else {
26029            None
26030        }
26031    }
26032    #[inline]
26033    fn syntax(&self) -> &SyntaxNode {
26034        &self.syntax
26035    }
26036}
26037impl AstNode for SetMultipleColumns {
26038    #[inline]
26039    fn can_cast(kind: SyntaxKind) -> bool {
26040        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26041    }
26042    #[inline]
26043    fn cast(syntax: SyntaxNode) -> Option<Self> {
26044        if Self::can_cast(syntax.kind()) {
26045            Some(Self { syntax })
26046        } else {
26047            None
26048        }
26049    }
26050    #[inline]
26051    fn syntax(&self) -> &SyntaxNode {
26052        &self.syntax
26053    }
26054}
26055impl AstNode for SetNotNull {
26056    #[inline]
26057    fn can_cast(kind: SyntaxKind) -> bool {
26058        kind == SyntaxKind::SET_NOT_NULL
26059    }
26060    #[inline]
26061    fn cast(syntax: SyntaxNode) -> Option<Self> {
26062        if Self::can_cast(syntax.kind()) {
26063            Some(Self { syntax })
26064        } else {
26065            None
26066        }
26067    }
26068    #[inline]
26069    fn syntax(&self) -> &SyntaxNode {
26070        &self.syntax
26071    }
26072}
26073impl AstNode for SetNullColumns {
26074    #[inline]
26075    fn can_cast(kind: SyntaxKind) -> bool {
26076        kind == SyntaxKind::SET_NULL_COLUMNS
26077    }
26078    #[inline]
26079    fn cast(syntax: SyntaxNode) -> Option<Self> {
26080        if Self::can_cast(syntax.kind()) {
26081            Some(Self { syntax })
26082        } else {
26083            None
26084        }
26085    }
26086    #[inline]
26087    fn syntax(&self) -> &SyntaxNode {
26088        &self.syntax
26089    }
26090}
26091impl AstNode for SetOptions {
26092    #[inline]
26093    fn can_cast(kind: SyntaxKind) -> bool {
26094        kind == SyntaxKind::SET_OPTIONS
26095    }
26096    #[inline]
26097    fn cast(syntax: SyntaxNode) -> Option<Self> {
26098        if Self::can_cast(syntax.kind()) {
26099            Some(Self { syntax })
26100        } else {
26101            None
26102        }
26103    }
26104    #[inline]
26105    fn syntax(&self) -> &SyntaxNode {
26106        &self.syntax
26107    }
26108}
26109impl AstNode for SetOptionsList {
26110    #[inline]
26111    fn can_cast(kind: SyntaxKind) -> bool {
26112        kind == SyntaxKind::SET_OPTIONS_LIST
26113    }
26114    #[inline]
26115    fn cast(syntax: SyntaxNode) -> Option<Self> {
26116        if Self::can_cast(syntax.kind()) {
26117            Some(Self { syntax })
26118        } else {
26119            None
26120        }
26121    }
26122    #[inline]
26123    fn syntax(&self) -> &SyntaxNode {
26124        &self.syntax
26125    }
26126}
26127impl AstNode for SetRole {
26128    #[inline]
26129    fn can_cast(kind: SyntaxKind) -> bool {
26130        kind == SyntaxKind::SET_ROLE
26131    }
26132    #[inline]
26133    fn cast(syntax: SyntaxNode) -> Option<Self> {
26134        if Self::can_cast(syntax.kind()) {
26135            Some(Self { syntax })
26136        } else {
26137            None
26138        }
26139    }
26140    #[inline]
26141    fn syntax(&self) -> &SyntaxNode {
26142        &self.syntax
26143    }
26144}
26145impl AstNode for SetSchema {
26146    #[inline]
26147    fn can_cast(kind: SyntaxKind) -> bool {
26148        kind == SyntaxKind::SET_SCHEMA
26149    }
26150    #[inline]
26151    fn cast(syntax: SyntaxNode) -> Option<Self> {
26152        if Self::can_cast(syntax.kind()) {
26153            Some(Self { syntax })
26154        } else {
26155            None
26156        }
26157    }
26158    #[inline]
26159    fn syntax(&self) -> &SyntaxNode {
26160        &self.syntax
26161    }
26162}
26163impl AstNode for SetSequenceOption {
26164    #[inline]
26165    fn can_cast(kind: SyntaxKind) -> bool {
26166        kind == SyntaxKind::SET_SEQUENCE_OPTION
26167    }
26168    #[inline]
26169    fn cast(syntax: SyntaxNode) -> Option<Self> {
26170        if Self::can_cast(syntax.kind()) {
26171            Some(Self { syntax })
26172        } else {
26173            None
26174        }
26175    }
26176    #[inline]
26177    fn syntax(&self) -> &SyntaxNode {
26178        &self.syntax
26179    }
26180}
26181impl AstNode for SetSessionAuth {
26182    #[inline]
26183    fn can_cast(kind: SyntaxKind) -> bool {
26184        kind == SyntaxKind::SET_SESSION_AUTH
26185    }
26186    #[inline]
26187    fn cast(syntax: SyntaxNode) -> Option<Self> {
26188        if Self::can_cast(syntax.kind()) {
26189            Some(Self { syntax })
26190        } else {
26191            None
26192        }
26193    }
26194    #[inline]
26195    fn syntax(&self) -> &SyntaxNode {
26196        &self.syntax
26197    }
26198}
26199impl AstNode for SetSingleColumn {
26200    #[inline]
26201    fn can_cast(kind: SyntaxKind) -> bool {
26202        kind == SyntaxKind::SET_SINGLE_COLUMN
26203    }
26204    #[inline]
26205    fn cast(syntax: SyntaxNode) -> Option<Self> {
26206        if Self::can_cast(syntax.kind()) {
26207            Some(Self { syntax })
26208        } else {
26209            None
26210        }
26211    }
26212    #[inline]
26213    fn syntax(&self) -> &SyntaxNode {
26214        &self.syntax
26215    }
26216}
26217impl AstNode for SetStatistics {
26218    #[inline]
26219    fn can_cast(kind: SyntaxKind) -> bool {
26220        kind == SyntaxKind::SET_STATISTICS
26221    }
26222    #[inline]
26223    fn cast(syntax: SyntaxNode) -> Option<Self> {
26224        if Self::can_cast(syntax.kind()) {
26225            Some(Self { syntax })
26226        } else {
26227            None
26228        }
26229    }
26230    #[inline]
26231    fn syntax(&self) -> &SyntaxNode {
26232        &self.syntax
26233    }
26234}
26235impl AstNode for SetStorage {
26236    #[inline]
26237    fn can_cast(kind: SyntaxKind) -> bool {
26238        kind == SyntaxKind::SET_STORAGE
26239    }
26240    #[inline]
26241    fn cast(syntax: SyntaxNode) -> Option<Self> {
26242        if Self::can_cast(syntax.kind()) {
26243            Some(Self { syntax })
26244        } else {
26245            None
26246        }
26247    }
26248    #[inline]
26249    fn syntax(&self) -> &SyntaxNode {
26250        &self.syntax
26251    }
26252}
26253impl AstNode for SetTablespace {
26254    #[inline]
26255    fn can_cast(kind: SyntaxKind) -> bool {
26256        kind == SyntaxKind::SET_TABLESPACE
26257    }
26258    #[inline]
26259    fn cast(syntax: SyntaxNode) -> Option<Self> {
26260        if Self::can_cast(syntax.kind()) {
26261            Some(Self { syntax })
26262        } else {
26263            None
26264        }
26265    }
26266    #[inline]
26267    fn syntax(&self) -> &SyntaxNode {
26268        &self.syntax
26269    }
26270}
26271impl AstNode for SetTransaction {
26272    #[inline]
26273    fn can_cast(kind: SyntaxKind) -> bool {
26274        kind == SyntaxKind::SET_TRANSACTION
26275    }
26276    #[inline]
26277    fn cast(syntax: SyntaxNode) -> Option<Self> {
26278        if Self::can_cast(syntax.kind()) {
26279            Some(Self { syntax })
26280        } else {
26281            None
26282        }
26283    }
26284    #[inline]
26285    fn syntax(&self) -> &SyntaxNode {
26286        &self.syntax
26287    }
26288}
26289impl AstNode for SetType {
26290    #[inline]
26291    fn can_cast(kind: SyntaxKind) -> bool {
26292        kind == SyntaxKind::SET_TYPE
26293    }
26294    #[inline]
26295    fn cast(syntax: SyntaxNode) -> Option<Self> {
26296        if Self::can_cast(syntax.kind()) {
26297            Some(Self { syntax })
26298        } else {
26299            None
26300        }
26301    }
26302    #[inline]
26303    fn syntax(&self) -> &SyntaxNode {
26304        &self.syntax
26305    }
26306}
26307impl AstNode for SetUnlogged {
26308    #[inline]
26309    fn can_cast(kind: SyntaxKind) -> bool {
26310        kind == SyntaxKind::SET_UNLOGGED
26311    }
26312    #[inline]
26313    fn cast(syntax: SyntaxNode) -> Option<Self> {
26314        if Self::can_cast(syntax.kind()) {
26315            Some(Self { syntax })
26316        } else {
26317            None
26318        }
26319    }
26320    #[inline]
26321    fn syntax(&self) -> &SyntaxNode {
26322        &self.syntax
26323    }
26324}
26325impl AstNode for SetWithoutCluster {
26326    #[inline]
26327    fn can_cast(kind: SyntaxKind) -> bool {
26328        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26329    }
26330    #[inline]
26331    fn cast(syntax: SyntaxNode) -> Option<Self> {
26332        if Self::can_cast(syntax.kind()) {
26333            Some(Self { syntax })
26334        } else {
26335            None
26336        }
26337    }
26338    #[inline]
26339    fn syntax(&self) -> &SyntaxNode {
26340        &self.syntax
26341    }
26342}
26343impl AstNode for SetWithoutOids {
26344    #[inline]
26345    fn can_cast(kind: SyntaxKind) -> bool {
26346        kind == SyntaxKind::SET_WITHOUT_OIDS
26347    }
26348    #[inline]
26349    fn cast(syntax: SyntaxNode) -> Option<Self> {
26350        if Self::can_cast(syntax.kind()) {
26351            Some(Self { syntax })
26352        } else {
26353            None
26354        }
26355    }
26356    #[inline]
26357    fn syntax(&self) -> &SyntaxNode {
26358        &self.syntax
26359    }
26360}
26361impl AstNode for Show {
26362    #[inline]
26363    fn can_cast(kind: SyntaxKind) -> bool {
26364        kind == SyntaxKind::SHOW
26365    }
26366    #[inline]
26367    fn cast(syntax: SyntaxNode) -> Option<Self> {
26368        if Self::can_cast(syntax.kind()) {
26369            Some(Self { syntax })
26370        } else {
26371            None
26372        }
26373    }
26374    #[inline]
26375    fn syntax(&self) -> &SyntaxNode {
26376        &self.syntax
26377    }
26378}
26379impl AstNode for SimilarTo {
26380    #[inline]
26381    fn can_cast(kind: SyntaxKind) -> bool {
26382        kind == SyntaxKind::SIMILAR_TO
26383    }
26384    #[inline]
26385    fn cast(syntax: SyntaxNode) -> Option<Self> {
26386        if Self::can_cast(syntax.kind()) {
26387            Some(Self { syntax })
26388        } else {
26389            None
26390        }
26391    }
26392    #[inline]
26393    fn syntax(&self) -> &SyntaxNode {
26394        &self.syntax
26395    }
26396}
26397impl AstNode for SliceExpr {
26398    #[inline]
26399    fn can_cast(kind: SyntaxKind) -> bool {
26400        kind == SyntaxKind::SLICE_EXPR
26401    }
26402    #[inline]
26403    fn cast(syntax: SyntaxNode) -> Option<Self> {
26404        if Self::can_cast(syntax.kind()) {
26405            Some(Self { syntax })
26406        } else {
26407            None
26408        }
26409    }
26410    #[inline]
26411    fn syntax(&self) -> &SyntaxNode {
26412        &self.syntax
26413    }
26414}
26415impl AstNode for SomeFn {
26416    #[inline]
26417    fn can_cast(kind: SyntaxKind) -> bool {
26418        kind == SyntaxKind::SOME_FN
26419    }
26420    #[inline]
26421    fn cast(syntax: SyntaxNode) -> Option<Self> {
26422        if Self::can_cast(syntax.kind()) {
26423            Some(Self { syntax })
26424        } else {
26425            None
26426        }
26427    }
26428    #[inline]
26429    fn syntax(&self) -> &SyntaxNode {
26430        &self.syntax
26431    }
26432}
26433impl AstNode for SortAsc {
26434    #[inline]
26435    fn can_cast(kind: SyntaxKind) -> bool {
26436        kind == SyntaxKind::SORT_ASC
26437    }
26438    #[inline]
26439    fn cast(syntax: SyntaxNode) -> Option<Self> {
26440        if Self::can_cast(syntax.kind()) {
26441            Some(Self { syntax })
26442        } else {
26443            None
26444        }
26445    }
26446    #[inline]
26447    fn syntax(&self) -> &SyntaxNode {
26448        &self.syntax
26449    }
26450}
26451impl AstNode for SortBy {
26452    #[inline]
26453    fn can_cast(kind: SyntaxKind) -> bool {
26454        kind == SyntaxKind::SORT_BY
26455    }
26456    #[inline]
26457    fn cast(syntax: SyntaxNode) -> Option<Self> {
26458        if Self::can_cast(syntax.kind()) {
26459            Some(Self { syntax })
26460        } else {
26461            None
26462        }
26463    }
26464    #[inline]
26465    fn syntax(&self) -> &SyntaxNode {
26466        &self.syntax
26467    }
26468}
26469impl AstNode for SortByList {
26470    #[inline]
26471    fn can_cast(kind: SyntaxKind) -> bool {
26472        kind == SyntaxKind::SORT_BY_LIST
26473    }
26474    #[inline]
26475    fn cast(syntax: SyntaxNode) -> Option<Self> {
26476        if Self::can_cast(syntax.kind()) {
26477            Some(Self { syntax })
26478        } else {
26479            None
26480        }
26481    }
26482    #[inline]
26483    fn syntax(&self) -> &SyntaxNode {
26484        &self.syntax
26485    }
26486}
26487impl AstNode for SortDesc {
26488    #[inline]
26489    fn can_cast(kind: SyntaxKind) -> bool {
26490        kind == SyntaxKind::SORT_DESC
26491    }
26492    #[inline]
26493    fn cast(syntax: SyntaxNode) -> Option<Self> {
26494        if Self::can_cast(syntax.kind()) {
26495            Some(Self { syntax })
26496        } else {
26497            None
26498        }
26499    }
26500    #[inline]
26501    fn syntax(&self) -> &SyntaxNode {
26502        &self.syntax
26503    }
26504}
26505impl AstNode for SortUsing {
26506    #[inline]
26507    fn can_cast(kind: SyntaxKind) -> bool {
26508        kind == SyntaxKind::SORT_USING
26509    }
26510    #[inline]
26511    fn cast(syntax: SyntaxNode) -> Option<Self> {
26512        if Self::can_cast(syntax.kind()) {
26513            Some(Self { syntax })
26514        } else {
26515            None
26516        }
26517    }
26518    #[inline]
26519    fn syntax(&self) -> &SyntaxNode {
26520        &self.syntax
26521    }
26522}
26523impl AstNode for SourceFile {
26524    #[inline]
26525    fn can_cast(kind: SyntaxKind) -> bool {
26526        kind == SyntaxKind::SOURCE_FILE
26527    }
26528    #[inline]
26529    fn cast(syntax: SyntaxNode) -> Option<Self> {
26530        if Self::can_cast(syntax.kind()) {
26531            Some(Self { syntax })
26532        } else {
26533            None
26534        }
26535    }
26536    #[inline]
26537    fn syntax(&self) -> &SyntaxNode {
26538        &self.syntax
26539    }
26540}
26541impl AstNode for Storage {
26542    #[inline]
26543    fn can_cast(kind: SyntaxKind) -> bool {
26544        kind == SyntaxKind::STORAGE
26545    }
26546    #[inline]
26547    fn cast(syntax: SyntaxNode) -> Option<Self> {
26548        if Self::can_cast(syntax.kind()) {
26549            Some(Self { syntax })
26550        } else {
26551            None
26552        }
26553    }
26554    #[inline]
26555    fn syntax(&self) -> &SyntaxNode {
26556        &self.syntax
26557    }
26558}
26559impl AstNode for StrictFuncOption {
26560    #[inline]
26561    fn can_cast(kind: SyntaxKind) -> bool {
26562        kind == SyntaxKind::STRICT_FUNC_OPTION
26563    }
26564    #[inline]
26565    fn cast(syntax: SyntaxNode) -> Option<Self> {
26566        if Self::can_cast(syntax.kind()) {
26567            Some(Self { syntax })
26568        } else {
26569            None
26570        }
26571    }
26572    #[inline]
26573    fn syntax(&self) -> &SyntaxNode {
26574        &self.syntax
26575    }
26576}
26577impl AstNode for SubstringFn {
26578    #[inline]
26579    fn can_cast(kind: SyntaxKind) -> bool {
26580        kind == SyntaxKind::SUBSTRING_FN
26581    }
26582    #[inline]
26583    fn cast(syntax: SyntaxNode) -> Option<Self> {
26584        if Self::can_cast(syntax.kind()) {
26585            Some(Self { syntax })
26586        } else {
26587            None
26588        }
26589    }
26590    #[inline]
26591    fn syntax(&self) -> &SyntaxNode {
26592        &self.syntax
26593    }
26594}
26595impl AstNode for SupportFuncOption {
26596    #[inline]
26597    fn can_cast(kind: SyntaxKind) -> bool {
26598        kind == SyntaxKind::SUPPORT_FUNC_OPTION
26599    }
26600    #[inline]
26601    fn cast(syntax: SyntaxNode) -> Option<Self> {
26602        if Self::can_cast(syntax.kind()) {
26603            Some(Self { syntax })
26604        } else {
26605            None
26606        }
26607    }
26608    #[inline]
26609    fn syntax(&self) -> &SyntaxNode {
26610        &self.syntax
26611    }
26612}
26613impl AstNode for Table {
26614    #[inline]
26615    fn can_cast(kind: SyntaxKind) -> bool {
26616        kind == SyntaxKind::TABLE
26617    }
26618    #[inline]
26619    fn cast(syntax: SyntaxNode) -> Option<Self> {
26620        if Self::can_cast(syntax.kind()) {
26621            Some(Self { syntax })
26622        } else {
26623            None
26624        }
26625    }
26626    #[inline]
26627    fn syntax(&self) -> &SyntaxNode {
26628        &self.syntax
26629    }
26630}
26631impl AstNode for TableArgList {
26632    #[inline]
26633    fn can_cast(kind: SyntaxKind) -> bool {
26634        kind == SyntaxKind::TABLE_ARG_LIST
26635    }
26636    #[inline]
26637    fn cast(syntax: SyntaxNode) -> Option<Self> {
26638        if Self::can_cast(syntax.kind()) {
26639            Some(Self { syntax })
26640        } else {
26641            None
26642        }
26643    }
26644    #[inline]
26645    fn syntax(&self) -> &SyntaxNode {
26646        &self.syntax
26647    }
26648}
26649impl AstNode for TableList {
26650    #[inline]
26651    fn can_cast(kind: SyntaxKind) -> bool {
26652        kind == SyntaxKind::TABLE_LIST
26653    }
26654    #[inline]
26655    fn cast(syntax: SyntaxNode) -> Option<Self> {
26656        if Self::can_cast(syntax.kind()) {
26657            Some(Self { syntax })
26658        } else {
26659            None
26660        }
26661    }
26662    #[inline]
26663    fn syntax(&self) -> &SyntaxNode {
26664        &self.syntax
26665    }
26666}
26667impl AstNode for TablesampleClause {
26668    #[inline]
26669    fn can_cast(kind: SyntaxKind) -> bool {
26670        kind == SyntaxKind::TABLESAMPLE_CLAUSE
26671    }
26672    #[inline]
26673    fn cast(syntax: SyntaxNode) -> Option<Self> {
26674        if Self::can_cast(syntax.kind()) {
26675            Some(Self { syntax })
26676        } else {
26677            None
26678        }
26679    }
26680    #[inline]
26681    fn syntax(&self) -> &SyntaxNode {
26682        &self.syntax
26683    }
26684}
26685impl AstNode for Tablespace {
26686    #[inline]
26687    fn can_cast(kind: SyntaxKind) -> bool {
26688        kind == SyntaxKind::TABLESPACE
26689    }
26690    #[inline]
26691    fn cast(syntax: SyntaxNode) -> Option<Self> {
26692        if Self::can_cast(syntax.kind()) {
26693            Some(Self { syntax })
26694        } else {
26695            None
26696        }
26697    }
26698    #[inline]
26699    fn syntax(&self) -> &SyntaxNode {
26700        &self.syntax
26701    }
26702}
26703impl AstNode for Target {
26704    #[inline]
26705    fn can_cast(kind: SyntaxKind) -> bool {
26706        kind == SyntaxKind::TARGET
26707    }
26708    #[inline]
26709    fn cast(syntax: SyntaxNode) -> Option<Self> {
26710        if Self::can_cast(syntax.kind()) {
26711            Some(Self { syntax })
26712        } else {
26713            None
26714        }
26715    }
26716    #[inline]
26717    fn syntax(&self) -> &SyntaxNode {
26718        &self.syntax
26719    }
26720}
26721impl AstNode for TargetList {
26722    #[inline]
26723    fn can_cast(kind: SyntaxKind) -> bool {
26724        kind == SyntaxKind::TARGET_LIST
26725    }
26726    #[inline]
26727    fn cast(syntax: SyntaxNode) -> Option<Self> {
26728        if Self::can_cast(syntax.kind()) {
26729            Some(Self { syntax })
26730        } else {
26731            None
26732        }
26733    }
26734    #[inline]
26735    fn syntax(&self) -> &SyntaxNode {
26736        &self.syntax
26737    }
26738}
26739impl AstNode for TimeType {
26740    #[inline]
26741    fn can_cast(kind: SyntaxKind) -> bool {
26742        kind == SyntaxKind::TIME_TYPE
26743    }
26744    #[inline]
26745    fn cast(syntax: SyntaxNode) -> Option<Self> {
26746        if Self::can_cast(syntax.kind()) {
26747            Some(Self { syntax })
26748        } else {
26749            None
26750        }
26751    }
26752    #[inline]
26753    fn syntax(&self) -> &SyntaxNode {
26754        &self.syntax
26755    }
26756}
26757impl AstNode for Timing {
26758    #[inline]
26759    fn can_cast(kind: SyntaxKind) -> bool {
26760        kind == SyntaxKind::TIMING
26761    }
26762    #[inline]
26763    fn cast(syntax: SyntaxNode) -> Option<Self> {
26764        if Self::can_cast(syntax.kind()) {
26765            Some(Self { syntax })
26766        } else {
26767            None
26768        }
26769    }
26770    #[inline]
26771    fn syntax(&self) -> &SyntaxNode {
26772        &self.syntax
26773    }
26774}
26775impl AstNode for TransactionModeList {
26776    #[inline]
26777    fn can_cast(kind: SyntaxKind) -> bool {
26778        kind == SyntaxKind::TRANSACTION_MODE_LIST
26779    }
26780    #[inline]
26781    fn cast(syntax: SyntaxNode) -> Option<Self> {
26782        if Self::can_cast(syntax.kind()) {
26783            Some(Self { syntax })
26784        } else {
26785            None
26786        }
26787    }
26788    #[inline]
26789    fn syntax(&self) -> &SyntaxNode {
26790        &self.syntax
26791    }
26792}
26793impl AstNode for TransformFromFunc {
26794    #[inline]
26795    fn can_cast(kind: SyntaxKind) -> bool {
26796        kind == SyntaxKind::TRANSFORM_FROM_FUNC
26797    }
26798    #[inline]
26799    fn cast(syntax: SyntaxNode) -> Option<Self> {
26800        if Self::can_cast(syntax.kind()) {
26801            Some(Self { syntax })
26802        } else {
26803            None
26804        }
26805    }
26806    #[inline]
26807    fn syntax(&self) -> &SyntaxNode {
26808        &self.syntax
26809    }
26810}
26811impl AstNode for TransformFuncOption {
26812    #[inline]
26813    fn can_cast(kind: SyntaxKind) -> bool {
26814        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
26815    }
26816    #[inline]
26817    fn cast(syntax: SyntaxNode) -> Option<Self> {
26818        if Self::can_cast(syntax.kind()) {
26819            Some(Self { syntax })
26820        } else {
26821            None
26822        }
26823    }
26824    #[inline]
26825    fn syntax(&self) -> &SyntaxNode {
26826        &self.syntax
26827    }
26828}
26829impl AstNode for TransformToFunc {
26830    #[inline]
26831    fn can_cast(kind: SyntaxKind) -> bool {
26832        kind == SyntaxKind::TRANSFORM_TO_FUNC
26833    }
26834    #[inline]
26835    fn cast(syntax: SyntaxNode) -> Option<Self> {
26836        if Self::can_cast(syntax.kind()) {
26837            Some(Self { syntax })
26838        } else {
26839            None
26840        }
26841    }
26842    #[inline]
26843    fn syntax(&self) -> &SyntaxNode {
26844        &self.syntax
26845    }
26846}
26847impl AstNode for TriggerEvent {
26848    #[inline]
26849    fn can_cast(kind: SyntaxKind) -> bool {
26850        kind == SyntaxKind::TRIGGER_EVENT
26851    }
26852    #[inline]
26853    fn cast(syntax: SyntaxNode) -> Option<Self> {
26854        if Self::can_cast(syntax.kind()) {
26855            Some(Self { syntax })
26856        } else {
26857            None
26858        }
26859    }
26860    #[inline]
26861    fn syntax(&self) -> &SyntaxNode {
26862        &self.syntax
26863    }
26864}
26865impl AstNode for TriggerEventList {
26866    #[inline]
26867    fn can_cast(kind: SyntaxKind) -> bool {
26868        kind == SyntaxKind::TRIGGER_EVENT_LIST
26869    }
26870    #[inline]
26871    fn cast(syntax: SyntaxNode) -> Option<Self> {
26872        if Self::can_cast(syntax.kind()) {
26873            Some(Self { syntax })
26874        } else {
26875            None
26876        }
26877    }
26878    #[inline]
26879    fn syntax(&self) -> &SyntaxNode {
26880        &self.syntax
26881    }
26882}
26883impl AstNode for TriggerEventUpdate {
26884    #[inline]
26885    fn can_cast(kind: SyntaxKind) -> bool {
26886        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
26887    }
26888    #[inline]
26889    fn cast(syntax: SyntaxNode) -> Option<Self> {
26890        if Self::can_cast(syntax.kind()) {
26891            Some(Self { syntax })
26892        } else {
26893            None
26894        }
26895    }
26896    #[inline]
26897    fn syntax(&self) -> &SyntaxNode {
26898        &self.syntax
26899    }
26900}
26901impl AstNode for TrimFn {
26902    #[inline]
26903    fn can_cast(kind: SyntaxKind) -> bool {
26904        kind == SyntaxKind::TRIM_FN
26905    }
26906    #[inline]
26907    fn cast(syntax: SyntaxNode) -> Option<Self> {
26908        if Self::can_cast(syntax.kind()) {
26909            Some(Self { syntax })
26910        } else {
26911            None
26912        }
26913    }
26914    #[inline]
26915    fn syntax(&self) -> &SyntaxNode {
26916        &self.syntax
26917    }
26918}
26919impl AstNode for Truncate {
26920    #[inline]
26921    fn can_cast(kind: SyntaxKind) -> bool {
26922        kind == SyntaxKind::TRUNCATE
26923    }
26924    #[inline]
26925    fn cast(syntax: SyntaxNode) -> Option<Self> {
26926        if Self::can_cast(syntax.kind()) {
26927            Some(Self { syntax })
26928        } else {
26929            None
26930        }
26931    }
26932    #[inline]
26933    fn syntax(&self) -> &SyntaxNode {
26934        &self.syntax
26935    }
26936}
26937impl AstNode for TupleExpr {
26938    #[inline]
26939    fn can_cast(kind: SyntaxKind) -> bool {
26940        kind == SyntaxKind::TUPLE_EXPR
26941    }
26942    #[inline]
26943    fn cast(syntax: SyntaxNode) -> Option<Self> {
26944        if Self::can_cast(syntax.kind()) {
26945            Some(Self { syntax })
26946        } else {
26947            None
26948        }
26949    }
26950    #[inline]
26951    fn syntax(&self) -> &SyntaxNode {
26952        &self.syntax
26953    }
26954}
26955impl AstNode for UnicodeNormalForm {
26956    #[inline]
26957    fn can_cast(kind: SyntaxKind) -> bool {
26958        kind == SyntaxKind::UNICODE_NORMAL_FORM
26959    }
26960    #[inline]
26961    fn cast(syntax: SyntaxNode) -> Option<Self> {
26962        if Self::can_cast(syntax.kind()) {
26963            Some(Self { syntax })
26964        } else {
26965            None
26966        }
26967    }
26968    #[inline]
26969    fn syntax(&self) -> &SyntaxNode {
26970        &self.syntax
26971    }
26972}
26973impl AstNode for UniqueConstraint {
26974    #[inline]
26975    fn can_cast(kind: SyntaxKind) -> bool {
26976        kind == SyntaxKind::UNIQUE_CONSTRAINT
26977    }
26978    #[inline]
26979    fn cast(syntax: SyntaxNode) -> Option<Self> {
26980        if Self::can_cast(syntax.kind()) {
26981            Some(Self { syntax })
26982        } else {
26983            None
26984        }
26985    }
26986    #[inline]
26987    fn syntax(&self) -> &SyntaxNode {
26988        &self.syntax
26989    }
26990}
26991impl AstNode for Unlisten {
26992    #[inline]
26993    fn can_cast(kind: SyntaxKind) -> bool {
26994        kind == SyntaxKind::UNLISTEN
26995    }
26996    #[inline]
26997    fn cast(syntax: SyntaxNode) -> Option<Self> {
26998        if Self::can_cast(syntax.kind()) {
26999            Some(Self { syntax })
27000        } else {
27001            None
27002        }
27003    }
27004    #[inline]
27005    fn syntax(&self) -> &SyntaxNode {
27006        &self.syntax
27007    }
27008}
27009impl AstNode for Update {
27010    #[inline]
27011    fn can_cast(kind: SyntaxKind) -> bool {
27012        kind == SyntaxKind::UPDATE
27013    }
27014    #[inline]
27015    fn cast(syntax: SyntaxNode) -> Option<Self> {
27016        if Self::can_cast(syntax.kind()) {
27017            Some(Self { syntax })
27018        } else {
27019            None
27020        }
27021    }
27022    #[inline]
27023    fn syntax(&self) -> &SyntaxNode {
27024        &self.syntax
27025    }
27026}
27027impl AstNode for UsingClause {
27028    #[inline]
27029    fn can_cast(kind: SyntaxKind) -> bool {
27030        kind == SyntaxKind::USING_CLAUSE
27031    }
27032    #[inline]
27033    fn cast(syntax: SyntaxNode) -> Option<Self> {
27034        if Self::can_cast(syntax.kind()) {
27035            Some(Self { syntax })
27036        } else {
27037            None
27038        }
27039    }
27040    #[inline]
27041    fn syntax(&self) -> &SyntaxNode {
27042        &self.syntax
27043    }
27044}
27045impl AstNode for UsingIndex {
27046    #[inline]
27047    fn can_cast(kind: SyntaxKind) -> bool {
27048        kind == SyntaxKind::USING_INDEX
27049    }
27050    #[inline]
27051    fn cast(syntax: SyntaxNode) -> Option<Self> {
27052        if Self::can_cast(syntax.kind()) {
27053            Some(Self { syntax })
27054        } else {
27055            None
27056        }
27057    }
27058    #[inline]
27059    fn syntax(&self) -> &SyntaxNode {
27060        &self.syntax
27061    }
27062}
27063impl AstNode for UsingMethod {
27064    #[inline]
27065    fn can_cast(kind: SyntaxKind) -> bool {
27066        kind == SyntaxKind::USING_METHOD
27067    }
27068    #[inline]
27069    fn cast(syntax: SyntaxNode) -> Option<Self> {
27070        if Self::can_cast(syntax.kind()) {
27071            Some(Self { syntax })
27072        } else {
27073            None
27074        }
27075    }
27076    #[inline]
27077    fn syntax(&self) -> &SyntaxNode {
27078        &self.syntax
27079    }
27080}
27081impl AstNode for UsingOnClause {
27082    #[inline]
27083    fn can_cast(kind: SyntaxKind) -> bool {
27084        kind == SyntaxKind::USING_ON_CLAUSE
27085    }
27086    #[inline]
27087    fn cast(syntax: SyntaxNode) -> Option<Self> {
27088        if Self::can_cast(syntax.kind()) {
27089            Some(Self { syntax })
27090        } else {
27091            None
27092        }
27093    }
27094    #[inline]
27095    fn syntax(&self) -> &SyntaxNode {
27096        &self.syntax
27097    }
27098}
27099impl AstNode for Vacuum {
27100    #[inline]
27101    fn can_cast(kind: SyntaxKind) -> bool {
27102        kind == SyntaxKind::VACUUM
27103    }
27104    #[inline]
27105    fn cast(syntax: SyntaxNode) -> Option<Self> {
27106        if Self::can_cast(syntax.kind()) {
27107            Some(Self { syntax })
27108        } else {
27109            None
27110        }
27111    }
27112    #[inline]
27113    fn syntax(&self) -> &SyntaxNode {
27114        &self.syntax
27115    }
27116}
27117impl AstNode for VacuumOption {
27118    #[inline]
27119    fn can_cast(kind: SyntaxKind) -> bool {
27120        kind == SyntaxKind::VACUUM_OPTION
27121    }
27122    #[inline]
27123    fn cast(syntax: SyntaxNode) -> Option<Self> {
27124        if Self::can_cast(syntax.kind()) {
27125            Some(Self { syntax })
27126        } else {
27127            None
27128        }
27129    }
27130    #[inline]
27131    fn syntax(&self) -> &SyntaxNode {
27132        &self.syntax
27133    }
27134}
27135impl AstNode for VacuumOptionList {
27136    #[inline]
27137    fn can_cast(kind: SyntaxKind) -> bool {
27138        kind == SyntaxKind::VACUUM_OPTION_LIST
27139    }
27140    #[inline]
27141    fn cast(syntax: SyntaxNode) -> Option<Self> {
27142        if Self::can_cast(syntax.kind()) {
27143            Some(Self { syntax })
27144        } else {
27145            None
27146        }
27147    }
27148    #[inline]
27149    fn syntax(&self) -> &SyntaxNode {
27150        &self.syntax
27151    }
27152}
27153impl AstNode for ValidateConstraint {
27154    #[inline]
27155    fn can_cast(kind: SyntaxKind) -> bool {
27156        kind == SyntaxKind::VALIDATE_CONSTRAINT
27157    }
27158    #[inline]
27159    fn cast(syntax: SyntaxNode) -> Option<Self> {
27160        if Self::can_cast(syntax.kind()) {
27161            Some(Self { syntax })
27162        } else {
27163            None
27164        }
27165    }
27166    #[inline]
27167    fn syntax(&self) -> &SyntaxNode {
27168        &self.syntax
27169    }
27170}
27171impl AstNode for Values {
27172    #[inline]
27173    fn can_cast(kind: SyntaxKind) -> bool {
27174        kind == SyntaxKind::VALUES
27175    }
27176    #[inline]
27177    fn cast(syntax: SyntaxNode) -> Option<Self> {
27178        if Self::can_cast(syntax.kind()) {
27179            Some(Self { syntax })
27180        } else {
27181            None
27182        }
27183    }
27184    #[inline]
27185    fn syntax(&self) -> &SyntaxNode {
27186        &self.syntax
27187    }
27188}
27189impl AstNode for Variant {
27190    #[inline]
27191    fn can_cast(kind: SyntaxKind) -> bool {
27192        kind == SyntaxKind::VARIANT
27193    }
27194    #[inline]
27195    fn cast(syntax: SyntaxNode) -> Option<Self> {
27196        if Self::can_cast(syntax.kind()) {
27197            Some(Self { syntax })
27198        } else {
27199            None
27200        }
27201    }
27202    #[inline]
27203    fn syntax(&self) -> &SyntaxNode {
27204        &self.syntax
27205    }
27206}
27207impl AstNode for VariantList {
27208    #[inline]
27209    fn can_cast(kind: SyntaxKind) -> bool {
27210        kind == SyntaxKind::VARIANT_LIST
27211    }
27212    #[inline]
27213    fn cast(syntax: SyntaxNode) -> Option<Self> {
27214        if Self::can_cast(syntax.kind()) {
27215            Some(Self { syntax })
27216        } else {
27217            None
27218        }
27219    }
27220    #[inline]
27221    fn syntax(&self) -> &SyntaxNode {
27222        &self.syntax
27223    }
27224}
27225impl AstNode for VolatilityFuncOption {
27226    #[inline]
27227    fn can_cast(kind: SyntaxKind) -> bool {
27228        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27229    }
27230    #[inline]
27231    fn cast(syntax: SyntaxNode) -> Option<Self> {
27232        if Self::can_cast(syntax.kind()) {
27233            Some(Self { syntax })
27234        } else {
27235            None
27236        }
27237    }
27238    #[inline]
27239    fn syntax(&self) -> &SyntaxNode {
27240        &self.syntax
27241    }
27242}
27243impl AstNode for WhenClause {
27244    #[inline]
27245    fn can_cast(kind: SyntaxKind) -> bool {
27246        kind == SyntaxKind::WHEN_CLAUSE
27247    }
27248    #[inline]
27249    fn cast(syntax: SyntaxNode) -> Option<Self> {
27250        if Self::can_cast(syntax.kind()) {
27251            Some(Self { syntax })
27252        } else {
27253            None
27254        }
27255    }
27256    #[inline]
27257    fn syntax(&self) -> &SyntaxNode {
27258        &self.syntax
27259    }
27260}
27261impl AstNode for WhenClauseList {
27262    #[inline]
27263    fn can_cast(kind: SyntaxKind) -> bool {
27264        kind == SyntaxKind::WHEN_CLAUSE_LIST
27265    }
27266    #[inline]
27267    fn cast(syntax: SyntaxNode) -> Option<Self> {
27268        if Self::can_cast(syntax.kind()) {
27269            Some(Self { syntax })
27270        } else {
27271            None
27272        }
27273    }
27274    #[inline]
27275    fn syntax(&self) -> &SyntaxNode {
27276        &self.syntax
27277    }
27278}
27279impl AstNode for WhenCondition {
27280    #[inline]
27281    fn can_cast(kind: SyntaxKind) -> bool {
27282        kind == SyntaxKind::WHEN_CONDITION
27283    }
27284    #[inline]
27285    fn cast(syntax: SyntaxNode) -> Option<Self> {
27286        if Self::can_cast(syntax.kind()) {
27287            Some(Self { syntax })
27288        } else {
27289            None
27290        }
27291    }
27292    #[inline]
27293    fn syntax(&self) -> &SyntaxNode {
27294        &self.syntax
27295    }
27296}
27297impl AstNode for WhereClause {
27298    #[inline]
27299    fn can_cast(kind: SyntaxKind) -> bool {
27300        kind == SyntaxKind::WHERE_CLAUSE
27301    }
27302    #[inline]
27303    fn cast(syntax: SyntaxNode) -> Option<Self> {
27304        if Self::can_cast(syntax.kind()) {
27305            Some(Self { syntax })
27306        } else {
27307            None
27308        }
27309    }
27310    #[inline]
27311    fn syntax(&self) -> &SyntaxNode {
27312        &self.syntax
27313    }
27314}
27315impl AstNode for WhereConditionClause {
27316    #[inline]
27317    fn can_cast(kind: SyntaxKind) -> bool {
27318        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
27319    }
27320    #[inline]
27321    fn cast(syntax: SyntaxNode) -> Option<Self> {
27322        if Self::can_cast(syntax.kind()) {
27323            Some(Self { syntax })
27324        } else {
27325            None
27326        }
27327    }
27328    #[inline]
27329    fn syntax(&self) -> &SyntaxNode {
27330        &self.syntax
27331    }
27332}
27333impl AstNode for WhereCurrentOf {
27334    #[inline]
27335    fn can_cast(kind: SyntaxKind) -> bool {
27336        kind == SyntaxKind::WHERE_CURRENT_OF
27337    }
27338    #[inline]
27339    fn cast(syntax: SyntaxNode) -> Option<Self> {
27340        if Self::can_cast(syntax.kind()) {
27341            Some(Self { syntax })
27342        } else {
27343            None
27344        }
27345    }
27346    #[inline]
27347    fn syntax(&self) -> &SyntaxNode {
27348        &self.syntax
27349    }
27350}
27351impl AstNode for WindowClause {
27352    #[inline]
27353    fn can_cast(kind: SyntaxKind) -> bool {
27354        kind == SyntaxKind::WINDOW_CLAUSE
27355    }
27356    #[inline]
27357    fn cast(syntax: SyntaxNode) -> Option<Self> {
27358        if Self::can_cast(syntax.kind()) {
27359            Some(Self { syntax })
27360        } else {
27361            None
27362        }
27363    }
27364    #[inline]
27365    fn syntax(&self) -> &SyntaxNode {
27366        &self.syntax
27367    }
27368}
27369impl AstNode for WindowDef {
27370    #[inline]
27371    fn can_cast(kind: SyntaxKind) -> bool {
27372        kind == SyntaxKind::WINDOW_DEF
27373    }
27374    #[inline]
27375    fn cast(syntax: SyntaxNode) -> Option<Self> {
27376        if Self::can_cast(syntax.kind()) {
27377            Some(Self { syntax })
27378        } else {
27379            None
27380        }
27381    }
27382    #[inline]
27383    fn syntax(&self) -> &SyntaxNode {
27384        &self.syntax
27385    }
27386}
27387impl AstNode for WindowFuncOption {
27388    #[inline]
27389    fn can_cast(kind: SyntaxKind) -> bool {
27390        kind == SyntaxKind::WINDOW_FUNC_OPTION
27391    }
27392    #[inline]
27393    fn cast(syntax: SyntaxNode) -> Option<Self> {
27394        if Self::can_cast(syntax.kind()) {
27395            Some(Self { syntax })
27396        } else {
27397            None
27398        }
27399    }
27400    #[inline]
27401    fn syntax(&self) -> &SyntaxNode {
27402        &self.syntax
27403    }
27404}
27405impl AstNode for WindowSpec {
27406    #[inline]
27407    fn can_cast(kind: SyntaxKind) -> bool {
27408        kind == SyntaxKind::WINDOW_SPEC
27409    }
27410    #[inline]
27411    fn cast(syntax: SyntaxNode) -> Option<Self> {
27412        if Self::can_cast(syntax.kind()) {
27413            Some(Self { syntax })
27414        } else {
27415            None
27416        }
27417    }
27418    #[inline]
27419    fn syntax(&self) -> &SyntaxNode {
27420        &self.syntax
27421    }
27422}
27423impl AstNode for WithClause {
27424    #[inline]
27425    fn can_cast(kind: SyntaxKind) -> bool {
27426        kind == SyntaxKind::WITH_CLAUSE
27427    }
27428    #[inline]
27429    fn cast(syntax: SyntaxNode) -> Option<Self> {
27430        if Self::can_cast(syntax.kind()) {
27431            Some(Self { syntax })
27432        } else {
27433            None
27434        }
27435    }
27436    #[inline]
27437    fn syntax(&self) -> &SyntaxNode {
27438        &self.syntax
27439    }
27440}
27441impl AstNode for WithData {
27442    #[inline]
27443    fn can_cast(kind: SyntaxKind) -> bool {
27444        kind == SyntaxKind::WITH_DATA
27445    }
27446    #[inline]
27447    fn cast(syntax: SyntaxNode) -> Option<Self> {
27448        if Self::can_cast(syntax.kind()) {
27449            Some(Self { syntax })
27450        } else {
27451            None
27452        }
27453    }
27454    #[inline]
27455    fn syntax(&self) -> &SyntaxNode {
27456        &self.syntax
27457    }
27458}
27459impl AstNode for WithNoData {
27460    #[inline]
27461    fn can_cast(kind: SyntaxKind) -> bool {
27462        kind == SyntaxKind::WITH_NO_DATA
27463    }
27464    #[inline]
27465    fn cast(syntax: SyntaxNode) -> Option<Self> {
27466        if Self::can_cast(syntax.kind()) {
27467            Some(Self { syntax })
27468        } else {
27469            None
27470        }
27471    }
27472    #[inline]
27473    fn syntax(&self) -> &SyntaxNode {
27474        &self.syntax
27475    }
27476}
27477impl AstNode for WithOptions {
27478    #[inline]
27479    fn can_cast(kind: SyntaxKind) -> bool {
27480        kind == SyntaxKind::WITH_OPTIONS
27481    }
27482    #[inline]
27483    fn cast(syntax: SyntaxNode) -> Option<Self> {
27484        if Self::can_cast(syntax.kind()) {
27485            Some(Self { syntax })
27486        } else {
27487            None
27488        }
27489    }
27490    #[inline]
27491    fn syntax(&self) -> &SyntaxNode {
27492        &self.syntax
27493    }
27494}
27495impl AstNode for WithParams {
27496    #[inline]
27497    fn can_cast(kind: SyntaxKind) -> bool {
27498        kind == SyntaxKind::WITH_PARAMS
27499    }
27500    #[inline]
27501    fn cast(syntax: SyntaxNode) -> Option<Self> {
27502        if Self::can_cast(syntax.kind()) {
27503            Some(Self { syntax })
27504        } else {
27505            None
27506        }
27507    }
27508    #[inline]
27509    fn syntax(&self) -> &SyntaxNode {
27510        &self.syntax
27511    }
27512}
27513impl AstNode for WithTable {
27514    #[inline]
27515    fn can_cast(kind: SyntaxKind) -> bool {
27516        kind == SyntaxKind::WITH_TABLE
27517    }
27518    #[inline]
27519    fn cast(syntax: SyntaxNode) -> Option<Self> {
27520        if Self::can_cast(syntax.kind()) {
27521            Some(Self { syntax })
27522        } else {
27523            None
27524        }
27525    }
27526    #[inline]
27527    fn syntax(&self) -> &SyntaxNode {
27528        &self.syntax
27529    }
27530}
27531impl AstNode for WithTimezone {
27532    #[inline]
27533    fn can_cast(kind: SyntaxKind) -> bool {
27534        kind == SyntaxKind::WITH_TIMEZONE
27535    }
27536    #[inline]
27537    fn cast(syntax: SyntaxNode) -> Option<Self> {
27538        if Self::can_cast(syntax.kind()) {
27539            Some(Self { syntax })
27540        } else {
27541            None
27542        }
27543    }
27544    #[inline]
27545    fn syntax(&self) -> &SyntaxNode {
27546        &self.syntax
27547    }
27548}
27549impl AstNode for WithinClause {
27550    #[inline]
27551    fn can_cast(kind: SyntaxKind) -> bool {
27552        kind == SyntaxKind::WITHIN_CLAUSE
27553    }
27554    #[inline]
27555    fn cast(syntax: SyntaxNode) -> Option<Self> {
27556        if Self::can_cast(syntax.kind()) {
27557            Some(Self { syntax })
27558        } else {
27559            None
27560        }
27561    }
27562    #[inline]
27563    fn syntax(&self) -> &SyntaxNode {
27564        &self.syntax
27565    }
27566}
27567impl AstNode for WithoutOids {
27568    #[inline]
27569    fn can_cast(kind: SyntaxKind) -> bool {
27570        kind == SyntaxKind::WITHOUT_OIDS
27571    }
27572    #[inline]
27573    fn cast(syntax: SyntaxNode) -> Option<Self> {
27574        if Self::can_cast(syntax.kind()) {
27575            Some(Self { syntax })
27576        } else {
27577            None
27578        }
27579    }
27580    #[inline]
27581    fn syntax(&self) -> &SyntaxNode {
27582        &self.syntax
27583    }
27584}
27585impl AstNode for WithoutTimezone {
27586    #[inline]
27587    fn can_cast(kind: SyntaxKind) -> bool {
27588        kind == SyntaxKind::WITHOUT_TIMEZONE
27589    }
27590    #[inline]
27591    fn cast(syntax: SyntaxNode) -> Option<Self> {
27592        if Self::can_cast(syntax.kind()) {
27593            Some(Self { syntax })
27594        } else {
27595            None
27596        }
27597    }
27598    #[inline]
27599    fn syntax(&self) -> &SyntaxNode {
27600        &self.syntax
27601    }
27602}
27603impl AstNode for XmlAttributeList {
27604    #[inline]
27605    fn can_cast(kind: SyntaxKind) -> bool {
27606        kind == SyntaxKind::XML_ATTRIBUTE_LIST
27607    }
27608    #[inline]
27609    fn cast(syntax: SyntaxNode) -> Option<Self> {
27610        if Self::can_cast(syntax.kind()) {
27611            Some(Self { syntax })
27612        } else {
27613            None
27614        }
27615    }
27616    #[inline]
27617    fn syntax(&self) -> &SyntaxNode {
27618        &self.syntax
27619    }
27620}
27621impl AstNode for XmlColumnOption {
27622    #[inline]
27623    fn can_cast(kind: SyntaxKind) -> bool {
27624        kind == SyntaxKind::XML_COLUMN_OPTION
27625    }
27626    #[inline]
27627    fn cast(syntax: SyntaxNode) -> Option<Self> {
27628        if Self::can_cast(syntax.kind()) {
27629            Some(Self { syntax })
27630        } else {
27631            None
27632        }
27633    }
27634    #[inline]
27635    fn syntax(&self) -> &SyntaxNode {
27636        &self.syntax
27637    }
27638}
27639impl AstNode for XmlColumnOptionList {
27640    #[inline]
27641    fn can_cast(kind: SyntaxKind) -> bool {
27642        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
27643    }
27644    #[inline]
27645    fn cast(syntax: SyntaxNode) -> Option<Self> {
27646        if Self::can_cast(syntax.kind()) {
27647            Some(Self { syntax })
27648        } else {
27649            None
27650        }
27651    }
27652    #[inline]
27653    fn syntax(&self) -> &SyntaxNode {
27654        &self.syntax
27655    }
27656}
27657impl AstNode for XmlElementFn {
27658    #[inline]
27659    fn can_cast(kind: SyntaxKind) -> bool {
27660        kind == SyntaxKind::XML_ELEMENT_FN
27661    }
27662    #[inline]
27663    fn cast(syntax: SyntaxNode) -> Option<Self> {
27664        if Self::can_cast(syntax.kind()) {
27665            Some(Self { syntax })
27666        } else {
27667            None
27668        }
27669    }
27670    #[inline]
27671    fn syntax(&self) -> &SyntaxNode {
27672        &self.syntax
27673    }
27674}
27675impl AstNode for XmlExistsFn {
27676    #[inline]
27677    fn can_cast(kind: SyntaxKind) -> bool {
27678        kind == SyntaxKind::XML_EXISTS_FN
27679    }
27680    #[inline]
27681    fn cast(syntax: SyntaxNode) -> Option<Self> {
27682        if Self::can_cast(syntax.kind()) {
27683            Some(Self { syntax })
27684        } else {
27685            None
27686        }
27687    }
27688    #[inline]
27689    fn syntax(&self) -> &SyntaxNode {
27690        &self.syntax
27691    }
27692}
27693impl AstNode for XmlForestFn {
27694    #[inline]
27695    fn can_cast(kind: SyntaxKind) -> bool {
27696        kind == SyntaxKind::XML_FOREST_FN
27697    }
27698    #[inline]
27699    fn cast(syntax: SyntaxNode) -> Option<Self> {
27700        if Self::can_cast(syntax.kind()) {
27701            Some(Self { syntax })
27702        } else {
27703            None
27704        }
27705    }
27706    #[inline]
27707    fn syntax(&self) -> &SyntaxNode {
27708        &self.syntax
27709    }
27710}
27711impl AstNode for XmlNamespace {
27712    #[inline]
27713    fn can_cast(kind: SyntaxKind) -> bool {
27714        kind == SyntaxKind::XML_NAMESPACE
27715    }
27716    #[inline]
27717    fn cast(syntax: SyntaxNode) -> Option<Self> {
27718        if Self::can_cast(syntax.kind()) {
27719            Some(Self { syntax })
27720        } else {
27721            None
27722        }
27723    }
27724    #[inline]
27725    fn syntax(&self) -> &SyntaxNode {
27726        &self.syntax
27727    }
27728}
27729impl AstNode for XmlNamespaceList {
27730    #[inline]
27731    fn can_cast(kind: SyntaxKind) -> bool {
27732        kind == SyntaxKind::XML_NAMESPACE_LIST
27733    }
27734    #[inline]
27735    fn cast(syntax: SyntaxNode) -> Option<Self> {
27736        if Self::can_cast(syntax.kind()) {
27737            Some(Self { syntax })
27738        } else {
27739            None
27740        }
27741    }
27742    #[inline]
27743    fn syntax(&self) -> &SyntaxNode {
27744        &self.syntax
27745    }
27746}
27747impl AstNode for XmlParseFn {
27748    #[inline]
27749    fn can_cast(kind: SyntaxKind) -> bool {
27750        kind == SyntaxKind::XML_PARSE_FN
27751    }
27752    #[inline]
27753    fn cast(syntax: SyntaxNode) -> Option<Self> {
27754        if Self::can_cast(syntax.kind()) {
27755            Some(Self { syntax })
27756        } else {
27757            None
27758        }
27759    }
27760    #[inline]
27761    fn syntax(&self) -> &SyntaxNode {
27762        &self.syntax
27763    }
27764}
27765impl AstNode for XmlPassingMech {
27766    #[inline]
27767    fn can_cast(kind: SyntaxKind) -> bool {
27768        kind == SyntaxKind::XML_PASSING_MECH
27769    }
27770    #[inline]
27771    fn cast(syntax: SyntaxNode) -> Option<Self> {
27772        if Self::can_cast(syntax.kind()) {
27773            Some(Self { syntax })
27774        } else {
27775            None
27776        }
27777    }
27778    #[inline]
27779    fn syntax(&self) -> &SyntaxNode {
27780        &self.syntax
27781    }
27782}
27783impl AstNode for XmlPiFn {
27784    #[inline]
27785    fn can_cast(kind: SyntaxKind) -> bool {
27786        kind == SyntaxKind::XML_PI_FN
27787    }
27788    #[inline]
27789    fn cast(syntax: SyntaxNode) -> Option<Self> {
27790        if Self::can_cast(syntax.kind()) {
27791            Some(Self { syntax })
27792        } else {
27793            None
27794        }
27795    }
27796    #[inline]
27797    fn syntax(&self) -> &SyntaxNode {
27798        &self.syntax
27799    }
27800}
27801impl AstNode for XmlRootFn {
27802    #[inline]
27803    fn can_cast(kind: SyntaxKind) -> bool {
27804        kind == SyntaxKind::XML_ROOT_FN
27805    }
27806    #[inline]
27807    fn cast(syntax: SyntaxNode) -> Option<Self> {
27808        if Self::can_cast(syntax.kind()) {
27809            Some(Self { syntax })
27810        } else {
27811            None
27812        }
27813    }
27814    #[inline]
27815    fn syntax(&self) -> &SyntaxNode {
27816        &self.syntax
27817    }
27818}
27819impl AstNode for XmlRowPassingClause {
27820    #[inline]
27821    fn can_cast(kind: SyntaxKind) -> bool {
27822        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
27823    }
27824    #[inline]
27825    fn cast(syntax: SyntaxNode) -> Option<Self> {
27826        if Self::can_cast(syntax.kind()) {
27827            Some(Self { syntax })
27828        } else {
27829            None
27830        }
27831    }
27832    #[inline]
27833    fn syntax(&self) -> &SyntaxNode {
27834        &self.syntax
27835    }
27836}
27837impl AstNode for XmlSerializeFn {
27838    #[inline]
27839    fn can_cast(kind: SyntaxKind) -> bool {
27840        kind == SyntaxKind::XML_SERIALIZE_FN
27841    }
27842    #[inline]
27843    fn cast(syntax: SyntaxNode) -> Option<Self> {
27844        if Self::can_cast(syntax.kind()) {
27845            Some(Self { syntax })
27846        } else {
27847            None
27848        }
27849    }
27850    #[inline]
27851    fn syntax(&self) -> &SyntaxNode {
27852        &self.syntax
27853    }
27854}
27855impl AstNode for XmlTable {
27856    #[inline]
27857    fn can_cast(kind: SyntaxKind) -> bool {
27858        kind == SyntaxKind::XML_TABLE
27859    }
27860    #[inline]
27861    fn cast(syntax: SyntaxNode) -> Option<Self> {
27862        if Self::can_cast(syntax.kind()) {
27863            Some(Self { syntax })
27864        } else {
27865            None
27866        }
27867    }
27868    #[inline]
27869    fn syntax(&self) -> &SyntaxNode {
27870        &self.syntax
27871    }
27872}
27873impl AstNode for XmlTableColumn {
27874    #[inline]
27875    fn can_cast(kind: SyntaxKind) -> bool {
27876        kind == SyntaxKind::XML_TABLE_COLUMN
27877    }
27878    #[inline]
27879    fn cast(syntax: SyntaxNode) -> Option<Self> {
27880        if Self::can_cast(syntax.kind()) {
27881            Some(Self { syntax })
27882        } else {
27883            None
27884        }
27885    }
27886    #[inline]
27887    fn syntax(&self) -> &SyntaxNode {
27888        &self.syntax
27889    }
27890}
27891impl AstNode for XmlTableColumnList {
27892    #[inline]
27893    fn can_cast(kind: SyntaxKind) -> bool {
27894        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
27895    }
27896    #[inline]
27897    fn cast(syntax: SyntaxNode) -> Option<Self> {
27898        if Self::can_cast(syntax.kind()) {
27899            Some(Self { syntax })
27900        } else {
27901            None
27902        }
27903    }
27904    #[inline]
27905    fn syntax(&self) -> &SyntaxNode {
27906        &self.syntax
27907    }
27908}
27909impl AstNode for AlterColumnOption {
27910    #[inline]
27911    fn can_cast(kind: SyntaxKind) -> bool {
27912        matches!(
27913            kind,
27914            SyntaxKind::ADD_GENERATED
27915                | SyntaxKind::DROP_DEFAULT
27916                | SyntaxKind::DROP_EXPRESSION
27917                | SyntaxKind::DROP_IDENTITY
27918                | SyntaxKind::DROP_NOT_NULL
27919                | SyntaxKind::RESET_OPTIONS
27920                | SyntaxKind::RESTART
27921                | SyntaxKind::SET_COMPRESSION
27922                | SyntaxKind::SET_DEFAULT
27923                | SyntaxKind::SET_EXPRESSION
27924                | SyntaxKind::SET_GENERATED
27925                | SyntaxKind::SET_GENERATED_OPTIONS
27926                | SyntaxKind::SET_NOT_NULL
27927                | SyntaxKind::SET_OPTIONS
27928                | SyntaxKind::SET_OPTIONS_LIST
27929                | SyntaxKind::SET_SEQUENCE_OPTION
27930                | SyntaxKind::SET_STATISTICS
27931                | SyntaxKind::SET_STORAGE
27932                | SyntaxKind::SET_TYPE
27933        )
27934    }
27935    #[inline]
27936    fn cast(syntax: SyntaxNode) -> Option<Self> {
27937        let res = match syntax.kind() {
27938            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
27939            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
27940            SyntaxKind::DROP_EXPRESSION => {
27941                AlterColumnOption::DropExpression(DropExpression { syntax })
27942            }
27943            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
27944            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
27945            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
27946            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
27947            SyntaxKind::SET_COMPRESSION => {
27948                AlterColumnOption::SetCompression(SetCompression { syntax })
27949            }
27950            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
27951            SyntaxKind::SET_EXPRESSION => {
27952                AlterColumnOption::SetExpression(SetExpression { syntax })
27953            }
27954            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
27955            SyntaxKind::SET_GENERATED_OPTIONS => {
27956                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
27957            }
27958            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
27959            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
27960            SyntaxKind::SET_OPTIONS_LIST => {
27961                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
27962            }
27963            SyntaxKind::SET_SEQUENCE_OPTION => {
27964                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
27965            }
27966            SyntaxKind::SET_STATISTICS => {
27967                AlterColumnOption::SetStatistics(SetStatistics { syntax })
27968            }
27969            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
27970            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
27971            _ => {
27972                return None;
27973            }
27974        };
27975        Some(res)
27976    }
27977    #[inline]
27978    fn syntax(&self) -> &SyntaxNode {
27979        match self {
27980            AlterColumnOption::AddGenerated(it) => &it.syntax,
27981            AlterColumnOption::DropDefault(it) => &it.syntax,
27982            AlterColumnOption::DropExpression(it) => &it.syntax,
27983            AlterColumnOption::DropIdentity(it) => &it.syntax,
27984            AlterColumnOption::DropNotNull(it) => &it.syntax,
27985            AlterColumnOption::ResetOptions(it) => &it.syntax,
27986            AlterColumnOption::Restart(it) => &it.syntax,
27987            AlterColumnOption::SetCompression(it) => &it.syntax,
27988            AlterColumnOption::SetDefault(it) => &it.syntax,
27989            AlterColumnOption::SetExpression(it) => &it.syntax,
27990            AlterColumnOption::SetGenerated(it) => &it.syntax,
27991            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
27992            AlterColumnOption::SetNotNull(it) => &it.syntax,
27993            AlterColumnOption::SetOptions(it) => &it.syntax,
27994            AlterColumnOption::SetOptionsList(it) => &it.syntax,
27995            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
27996            AlterColumnOption::SetStatistics(it) => &it.syntax,
27997            AlterColumnOption::SetStorage(it) => &it.syntax,
27998            AlterColumnOption::SetType(it) => &it.syntax,
27999        }
28000    }
28001}
28002impl From<AddGenerated> for AlterColumnOption {
28003    #[inline]
28004    fn from(node: AddGenerated) -> AlterColumnOption {
28005        AlterColumnOption::AddGenerated(node)
28006    }
28007}
28008impl From<DropDefault> for AlterColumnOption {
28009    #[inline]
28010    fn from(node: DropDefault) -> AlterColumnOption {
28011        AlterColumnOption::DropDefault(node)
28012    }
28013}
28014impl From<DropExpression> for AlterColumnOption {
28015    #[inline]
28016    fn from(node: DropExpression) -> AlterColumnOption {
28017        AlterColumnOption::DropExpression(node)
28018    }
28019}
28020impl From<DropIdentity> for AlterColumnOption {
28021    #[inline]
28022    fn from(node: DropIdentity) -> AlterColumnOption {
28023        AlterColumnOption::DropIdentity(node)
28024    }
28025}
28026impl From<DropNotNull> for AlterColumnOption {
28027    #[inline]
28028    fn from(node: DropNotNull) -> AlterColumnOption {
28029        AlterColumnOption::DropNotNull(node)
28030    }
28031}
28032impl From<ResetOptions> for AlterColumnOption {
28033    #[inline]
28034    fn from(node: ResetOptions) -> AlterColumnOption {
28035        AlterColumnOption::ResetOptions(node)
28036    }
28037}
28038impl From<Restart> for AlterColumnOption {
28039    #[inline]
28040    fn from(node: Restart) -> AlterColumnOption {
28041        AlterColumnOption::Restart(node)
28042    }
28043}
28044impl From<SetCompression> for AlterColumnOption {
28045    #[inline]
28046    fn from(node: SetCompression) -> AlterColumnOption {
28047        AlterColumnOption::SetCompression(node)
28048    }
28049}
28050impl From<SetDefault> for AlterColumnOption {
28051    #[inline]
28052    fn from(node: SetDefault) -> AlterColumnOption {
28053        AlterColumnOption::SetDefault(node)
28054    }
28055}
28056impl From<SetExpression> for AlterColumnOption {
28057    #[inline]
28058    fn from(node: SetExpression) -> AlterColumnOption {
28059        AlterColumnOption::SetExpression(node)
28060    }
28061}
28062impl From<SetGenerated> for AlterColumnOption {
28063    #[inline]
28064    fn from(node: SetGenerated) -> AlterColumnOption {
28065        AlterColumnOption::SetGenerated(node)
28066    }
28067}
28068impl From<SetGeneratedOptions> for AlterColumnOption {
28069    #[inline]
28070    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28071        AlterColumnOption::SetGeneratedOptions(node)
28072    }
28073}
28074impl From<SetNotNull> for AlterColumnOption {
28075    #[inline]
28076    fn from(node: SetNotNull) -> AlterColumnOption {
28077        AlterColumnOption::SetNotNull(node)
28078    }
28079}
28080impl From<SetOptions> for AlterColumnOption {
28081    #[inline]
28082    fn from(node: SetOptions) -> AlterColumnOption {
28083        AlterColumnOption::SetOptions(node)
28084    }
28085}
28086impl From<SetOptionsList> for AlterColumnOption {
28087    #[inline]
28088    fn from(node: SetOptionsList) -> AlterColumnOption {
28089        AlterColumnOption::SetOptionsList(node)
28090    }
28091}
28092impl From<SetSequenceOption> for AlterColumnOption {
28093    #[inline]
28094    fn from(node: SetSequenceOption) -> AlterColumnOption {
28095        AlterColumnOption::SetSequenceOption(node)
28096    }
28097}
28098impl From<SetStatistics> for AlterColumnOption {
28099    #[inline]
28100    fn from(node: SetStatistics) -> AlterColumnOption {
28101        AlterColumnOption::SetStatistics(node)
28102    }
28103}
28104impl From<SetStorage> for AlterColumnOption {
28105    #[inline]
28106    fn from(node: SetStorage) -> AlterColumnOption {
28107        AlterColumnOption::SetStorage(node)
28108    }
28109}
28110impl From<SetType> for AlterColumnOption {
28111    #[inline]
28112    fn from(node: SetType) -> AlterColumnOption {
28113        AlterColumnOption::SetType(node)
28114    }
28115}
28116impl AstNode for AlterDomainAction {
28117    #[inline]
28118    fn can_cast(kind: SyntaxKind) -> bool {
28119        matches!(
28120            kind,
28121            SyntaxKind::ADD_CONSTRAINT
28122                | SyntaxKind::DROP_CONSTRAINT
28123                | SyntaxKind::DROP_DEFAULT
28124                | SyntaxKind::DROP_NOT_NULL
28125                | SyntaxKind::OWNER_TO
28126                | SyntaxKind::RENAME_CONSTRAINT
28127                | SyntaxKind::RENAME_TO
28128                | SyntaxKind::SET_DEFAULT
28129                | SyntaxKind::SET_NOT_NULL
28130                | SyntaxKind::SET_SCHEMA
28131                | SyntaxKind::VALIDATE_CONSTRAINT
28132        )
28133    }
28134    #[inline]
28135    fn cast(syntax: SyntaxNode) -> Option<Self> {
28136        let res = match syntax.kind() {
28137            SyntaxKind::ADD_CONSTRAINT => {
28138                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28139            }
28140            SyntaxKind::DROP_CONSTRAINT => {
28141                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28142            }
28143            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28144            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28145            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28146            SyntaxKind::RENAME_CONSTRAINT => {
28147                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28148            }
28149            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28150            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28151            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28152            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28153            SyntaxKind::VALIDATE_CONSTRAINT => {
28154                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28155            }
28156            _ => {
28157                return None;
28158            }
28159        };
28160        Some(res)
28161    }
28162    #[inline]
28163    fn syntax(&self) -> &SyntaxNode {
28164        match self {
28165            AlterDomainAction::AddConstraint(it) => &it.syntax,
28166            AlterDomainAction::DropConstraint(it) => &it.syntax,
28167            AlterDomainAction::DropDefault(it) => &it.syntax,
28168            AlterDomainAction::DropNotNull(it) => &it.syntax,
28169            AlterDomainAction::OwnerTo(it) => &it.syntax,
28170            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28171            AlterDomainAction::RenameTo(it) => &it.syntax,
28172            AlterDomainAction::SetDefault(it) => &it.syntax,
28173            AlterDomainAction::SetNotNull(it) => &it.syntax,
28174            AlterDomainAction::SetSchema(it) => &it.syntax,
28175            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28176        }
28177    }
28178}
28179impl From<AddConstraint> for AlterDomainAction {
28180    #[inline]
28181    fn from(node: AddConstraint) -> AlterDomainAction {
28182        AlterDomainAction::AddConstraint(node)
28183    }
28184}
28185impl From<DropConstraint> for AlterDomainAction {
28186    #[inline]
28187    fn from(node: DropConstraint) -> AlterDomainAction {
28188        AlterDomainAction::DropConstraint(node)
28189    }
28190}
28191impl From<DropDefault> for AlterDomainAction {
28192    #[inline]
28193    fn from(node: DropDefault) -> AlterDomainAction {
28194        AlterDomainAction::DropDefault(node)
28195    }
28196}
28197impl From<DropNotNull> for AlterDomainAction {
28198    #[inline]
28199    fn from(node: DropNotNull) -> AlterDomainAction {
28200        AlterDomainAction::DropNotNull(node)
28201    }
28202}
28203impl From<OwnerTo> for AlterDomainAction {
28204    #[inline]
28205    fn from(node: OwnerTo) -> AlterDomainAction {
28206        AlterDomainAction::OwnerTo(node)
28207    }
28208}
28209impl From<RenameConstraint> for AlterDomainAction {
28210    #[inline]
28211    fn from(node: RenameConstraint) -> AlterDomainAction {
28212        AlterDomainAction::RenameConstraint(node)
28213    }
28214}
28215impl From<RenameTo> for AlterDomainAction {
28216    #[inline]
28217    fn from(node: RenameTo) -> AlterDomainAction {
28218        AlterDomainAction::RenameTo(node)
28219    }
28220}
28221impl From<SetDefault> for AlterDomainAction {
28222    #[inline]
28223    fn from(node: SetDefault) -> AlterDomainAction {
28224        AlterDomainAction::SetDefault(node)
28225    }
28226}
28227impl From<SetNotNull> for AlterDomainAction {
28228    #[inline]
28229    fn from(node: SetNotNull) -> AlterDomainAction {
28230        AlterDomainAction::SetNotNull(node)
28231    }
28232}
28233impl From<SetSchema> for AlterDomainAction {
28234    #[inline]
28235    fn from(node: SetSchema) -> AlterDomainAction {
28236        AlterDomainAction::SetSchema(node)
28237    }
28238}
28239impl From<ValidateConstraint> for AlterDomainAction {
28240    #[inline]
28241    fn from(node: ValidateConstraint) -> AlterDomainAction {
28242        AlterDomainAction::ValidateConstraint(node)
28243    }
28244}
28245impl AstNode for AlterMaterializedViewAction {
28246    #[inline]
28247    fn can_cast(kind: SyntaxKind) -> bool {
28248        matches!(
28249            kind,
28250            SyntaxKind::DEPENDS_ON_EXTENSION
28251                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
28252                | SyntaxKind::RENAME_COLUMN
28253                | SyntaxKind::RENAME_TO
28254                | SyntaxKind::SET_SCHEMA
28255        )
28256    }
28257    #[inline]
28258    fn cast(syntax: SyntaxNode) -> Option<Self> {
28259        let res = match syntax.kind() {
28260            SyntaxKind::DEPENDS_ON_EXTENSION => {
28261                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
28262            }
28263            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
28264                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
28265            }
28266            SyntaxKind::RENAME_COLUMN => {
28267                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
28268            }
28269            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
28270            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
28271            _ => {
28272                if let Some(result) = AlterTableAction::cast(syntax) {
28273                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
28274                }
28275                return None;
28276            }
28277        };
28278        Some(res)
28279    }
28280    #[inline]
28281    fn syntax(&self) -> &SyntaxNode {
28282        match self {
28283            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
28284            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
28285            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
28286            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
28287            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
28288            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
28289        }
28290    }
28291}
28292impl From<DependsOnExtension> for AlterMaterializedViewAction {
28293    #[inline]
28294    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
28295        AlterMaterializedViewAction::DependsOnExtension(node)
28296    }
28297}
28298impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
28299    #[inline]
28300    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
28301        AlterMaterializedViewAction::NoDependsOnExtension(node)
28302    }
28303}
28304impl From<RenameColumn> for AlterMaterializedViewAction {
28305    #[inline]
28306    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
28307        AlterMaterializedViewAction::RenameColumn(node)
28308    }
28309}
28310impl From<RenameTo> for AlterMaterializedViewAction {
28311    #[inline]
28312    fn from(node: RenameTo) -> AlterMaterializedViewAction {
28313        AlterMaterializedViewAction::RenameTo(node)
28314    }
28315}
28316impl From<SetSchema> for AlterMaterializedViewAction {
28317    #[inline]
28318    fn from(node: SetSchema) -> AlterMaterializedViewAction {
28319        AlterMaterializedViewAction::SetSchema(node)
28320    }
28321}
28322impl AstNode for AlterTableAction {
28323    #[inline]
28324    fn can_cast(kind: SyntaxKind) -> bool {
28325        matches!(
28326            kind,
28327            SyntaxKind::ADD_COLUMN
28328                | SyntaxKind::ADD_CONSTRAINT
28329                | SyntaxKind::ALTER_COLUMN
28330                | SyntaxKind::ALTER_CONSTRAINT
28331                | SyntaxKind::ATTACH_PARTITION
28332                | SyntaxKind::CLUSTER_ON
28333                | SyntaxKind::DETACH_PARTITION
28334                | SyntaxKind::DISABLE_RLS
28335                | SyntaxKind::DISABLE_RULE
28336                | SyntaxKind::DISABLE_TRIGGER
28337                | SyntaxKind::DROP_COLUMN
28338                | SyntaxKind::DROP_CONSTRAINT
28339                | SyntaxKind::ENABLE_ALWAYS_RULE
28340                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
28341                | SyntaxKind::ENABLE_REPLICA_RULE
28342                | SyntaxKind::ENABLE_REPLICA_TRIGGER
28343                | SyntaxKind::ENABLE_RLS
28344                | SyntaxKind::ENABLE_RULE
28345                | SyntaxKind::ENABLE_TRIGGER
28346                | SyntaxKind::FORCE_RLS
28347                | SyntaxKind::INHERIT_TABLE
28348                | SyntaxKind::NO_FORCE_RLS
28349                | SyntaxKind::NO_INHERIT_TABLE
28350                | SyntaxKind::NOT_OF
28351                | SyntaxKind::OF_TYPE
28352                | SyntaxKind::OPTION_ITEM_LIST
28353                | SyntaxKind::OWNER_TO
28354                | SyntaxKind::RENAME_COLUMN
28355                | SyntaxKind::RENAME_CONSTRAINT
28356                | SyntaxKind::RENAME_TO
28357                | SyntaxKind::REPLICA_IDENTITY
28358                | SyntaxKind::RESET_OPTIONS
28359                | SyntaxKind::SET_ACCESS_METHOD
28360                | SyntaxKind::SET_LOGGED
28361                | SyntaxKind::SET_OPTIONS
28362                | SyntaxKind::SET_SCHEMA
28363                | SyntaxKind::SET_TABLESPACE
28364                | SyntaxKind::SET_UNLOGGED
28365                | SyntaxKind::SET_WITHOUT_CLUSTER
28366                | SyntaxKind::SET_WITHOUT_OIDS
28367                | SyntaxKind::VALIDATE_CONSTRAINT
28368        )
28369    }
28370    #[inline]
28371    fn cast(syntax: SyntaxNode) -> Option<Self> {
28372        let res = match syntax.kind() {
28373            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
28374            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
28375            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
28376            SyntaxKind::ALTER_CONSTRAINT => {
28377                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
28378            }
28379            SyntaxKind::ATTACH_PARTITION => {
28380                AlterTableAction::AttachPartition(AttachPartition { syntax })
28381            }
28382            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
28383            SyntaxKind::DETACH_PARTITION => {
28384                AlterTableAction::DetachPartition(DetachPartition { syntax })
28385            }
28386            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
28387            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
28388            SyntaxKind::DISABLE_TRIGGER => {
28389                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
28390            }
28391            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
28392            SyntaxKind::DROP_CONSTRAINT => {
28393                AlterTableAction::DropConstraint(DropConstraint { syntax })
28394            }
28395            SyntaxKind::ENABLE_ALWAYS_RULE => {
28396                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
28397            }
28398            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
28399                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
28400            }
28401            SyntaxKind::ENABLE_REPLICA_RULE => {
28402                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
28403            }
28404            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
28405                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
28406            }
28407            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
28408            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
28409            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
28410            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
28411            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
28412            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
28413            SyntaxKind::NO_INHERIT_TABLE => {
28414                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
28415            }
28416            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
28417            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
28418            SyntaxKind::OPTION_ITEM_LIST => {
28419                AlterTableAction::OptionItemList(OptionItemList { syntax })
28420            }
28421            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
28422            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
28423            SyntaxKind::RENAME_CONSTRAINT => {
28424                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
28425            }
28426            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
28427            SyntaxKind::REPLICA_IDENTITY => {
28428                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
28429            }
28430            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
28431            SyntaxKind::SET_ACCESS_METHOD => {
28432                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
28433            }
28434            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
28435            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
28436            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
28437            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
28438            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
28439            SyntaxKind::SET_WITHOUT_CLUSTER => {
28440                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
28441            }
28442            SyntaxKind::SET_WITHOUT_OIDS => {
28443                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
28444            }
28445            SyntaxKind::VALIDATE_CONSTRAINT => {
28446                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
28447            }
28448            _ => {
28449                return None;
28450            }
28451        };
28452        Some(res)
28453    }
28454    #[inline]
28455    fn syntax(&self) -> &SyntaxNode {
28456        match self {
28457            AlterTableAction::AddColumn(it) => &it.syntax,
28458            AlterTableAction::AddConstraint(it) => &it.syntax,
28459            AlterTableAction::AlterColumn(it) => &it.syntax,
28460            AlterTableAction::AlterConstraint(it) => &it.syntax,
28461            AlterTableAction::AttachPartition(it) => &it.syntax,
28462            AlterTableAction::ClusterOn(it) => &it.syntax,
28463            AlterTableAction::DetachPartition(it) => &it.syntax,
28464            AlterTableAction::DisableRls(it) => &it.syntax,
28465            AlterTableAction::DisableRule(it) => &it.syntax,
28466            AlterTableAction::DisableTrigger(it) => &it.syntax,
28467            AlterTableAction::DropColumn(it) => &it.syntax,
28468            AlterTableAction::DropConstraint(it) => &it.syntax,
28469            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
28470            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
28471            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
28472            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
28473            AlterTableAction::EnableRls(it) => &it.syntax,
28474            AlterTableAction::EnableRule(it) => &it.syntax,
28475            AlterTableAction::EnableTrigger(it) => &it.syntax,
28476            AlterTableAction::ForceRls(it) => &it.syntax,
28477            AlterTableAction::InheritTable(it) => &it.syntax,
28478            AlterTableAction::NoForceRls(it) => &it.syntax,
28479            AlterTableAction::NoInheritTable(it) => &it.syntax,
28480            AlterTableAction::NotOf(it) => &it.syntax,
28481            AlterTableAction::OfType(it) => &it.syntax,
28482            AlterTableAction::OptionItemList(it) => &it.syntax,
28483            AlterTableAction::OwnerTo(it) => &it.syntax,
28484            AlterTableAction::RenameColumn(it) => &it.syntax,
28485            AlterTableAction::RenameConstraint(it) => &it.syntax,
28486            AlterTableAction::RenameTo(it) => &it.syntax,
28487            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
28488            AlterTableAction::ResetOptions(it) => &it.syntax,
28489            AlterTableAction::SetAccessMethod(it) => &it.syntax,
28490            AlterTableAction::SetLogged(it) => &it.syntax,
28491            AlterTableAction::SetOptions(it) => &it.syntax,
28492            AlterTableAction::SetSchema(it) => &it.syntax,
28493            AlterTableAction::SetTablespace(it) => &it.syntax,
28494            AlterTableAction::SetUnlogged(it) => &it.syntax,
28495            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
28496            AlterTableAction::SetWithoutOids(it) => &it.syntax,
28497            AlterTableAction::ValidateConstraint(it) => &it.syntax,
28498        }
28499    }
28500}
28501impl From<AddColumn> for AlterTableAction {
28502    #[inline]
28503    fn from(node: AddColumn) -> AlterTableAction {
28504        AlterTableAction::AddColumn(node)
28505    }
28506}
28507impl From<AddConstraint> for AlterTableAction {
28508    #[inline]
28509    fn from(node: AddConstraint) -> AlterTableAction {
28510        AlterTableAction::AddConstraint(node)
28511    }
28512}
28513impl From<AlterColumn> for AlterTableAction {
28514    #[inline]
28515    fn from(node: AlterColumn) -> AlterTableAction {
28516        AlterTableAction::AlterColumn(node)
28517    }
28518}
28519impl From<AlterConstraint> for AlterTableAction {
28520    #[inline]
28521    fn from(node: AlterConstraint) -> AlterTableAction {
28522        AlterTableAction::AlterConstraint(node)
28523    }
28524}
28525impl From<AttachPartition> for AlterTableAction {
28526    #[inline]
28527    fn from(node: AttachPartition) -> AlterTableAction {
28528        AlterTableAction::AttachPartition(node)
28529    }
28530}
28531impl From<ClusterOn> for AlterTableAction {
28532    #[inline]
28533    fn from(node: ClusterOn) -> AlterTableAction {
28534        AlterTableAction::ClusterOn(node)
28535    }
28536}
28537impl From<DetachPartition> for AlterTableAction {
28538    #[inline]
28539    fn from(node: DetachPartition) -> AlterTableAction {
28540        AlterTableAction::DetachPartition(node)
28541    }
28542}
28543impl From<DisableRls> for AlterTableAction {
28544    #[inline]
28545    fn from(node: DisableRls) -> AlterTableAction {
28546        AlterTableAction::DisableRls(node)
28547    }
28548}
28549impl From<DisableRule> for AlterTableAction {
28550    #[inline]
28551    fn from(node: DisableRule) -> AlterTableAction {
28552        AlterTableAction::DisableRule(node)
28553    }
28554}
28555impl From<DisableTrigger> for AlterTableAction {
28556    #[inline]
28557    fn from(node: DisableTrigger) -> AlterTableAction {
28558        AlterTableAction::DisableTrigger(node)
28559    }
28560}
28561impl From<DropColumn> for AlterTableAction {
28562    #[inline]
28563    fn from(node: DropColumn) -> AlterTableAction {
28564        AlterTableAction::DropColumn(node)
28565    }
28566}
28567impl From<DropConstraint> for AlterTableAction {
28568    #[inline]
28569    fn from(node: DropConstraint) -> AlterTableAction {
28570        AlterTableAction::DropConstraint(node)
28571    }
28572}
28573impl From<EnableAlwaysRule> for AlterTableAction {
28574    #[inline]
28575    fn from(node: EnableAlwaysRule) -> AlterTableAction {
28576        AlterTableAction::EnableAlwaysRule(node)
28577    }
28578}
28579impl From<EnableAlwaysTrigger> for AlterTableAction {
28580    #[inline]
28581    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
28582        AlterTableAction::EnableAlwaysTrigger(node)
28583    }
28584}
28585impl From<EnableReplicaRule> for AlterTableAction {
28586    #[inline]
28587    fn from(node: EnableReplicaRule) -> AlterTableAction {
28588        AlterTableAction::EnableReplicaRule(node)
28589    }
28590}
28591impl From<EnableReplicaTrigger> for AlterTableAction {
28592    #[inline]
28593    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
28594        AlterTableAction::EnableReplicaTrigger(node)
28595    }
28596}
28597impl From<EnableRls> for AlterTableAction {
28598    #[inline]
28599    fn from(node: EnableRls) -> AlterTableAction {
28600        AlterTableAction::EnableRls(node)
28601    }
28602}
28603impl From<EnableRule> for AlterTableAction {
28604    #[inline]
28605    fn from(node: EnableRule) -> AlterTableAction {
28606        AlterTableAction::EnableRule(node)
28607    }
28608}
28609impl From<EnableTrigger> for AlterTableAction {
28610    #[inline]
28611    fn from(node: EnableTrigger) -> AlterTableAction {
28612        AlterTableAction::EnableTrigger(node)
28613    }
28614}
28615impl From<ForceRls> for AlterTableAction {
28616    #[inline]
28617    fn from(node: ForceRls) -> AlterTableAction {
28618        AlterTableAction::ForceRls(node)
28619    }
28620}
28621impl From<InheritTable> for AlterTableAction {
28622    #[inline]
28623    fn from(node: InheritTable) -> AlterTableAction {
28624        AlterTableAction::InheritTable(node)
28625    }
28626}
28627impl From<NoForceRls> for AlterTableAction {
28628    #[inline]
28629    fn from(node: NoForceRls) -> AlterTableAction {
28630        AlterTableAction::NoForceRls(node)
28631    }
28632}
28633impl From<NoInheritTable> for AlterTableAction {
28634    #[inline]
28635    fn from(node: NoInheritTable) -> AlterTableAction {
28636        AlterTableAction::NoInheritTable(node)
28637    }
28638}
28639impl From<NotOf> for AlterTableAction {
28640    #[inline]
28641    fn from(node: NotOf) -> AlterTableAction {
28642        AlterTableAction::NotOf(node)
28643    }
28644}
28645impl From<OfType> for AlterTableAction {
28646    #[inline]
28647    fn from(node: OfType) -> AlterTableAction {
28648        AlterTableAction::OfType(node)
28649    }
28650}
28651impl From<OptionItemList> for AlterTableAction {
28652    #[inline]
28653    fn from(node: OptionItemList) -> AlterTableAction {
28654        AlterTableAction::OptionItemList(node)
28655    }
28656}
28657impl From<OwnerTo> for AlterTableAction {
28658    #[inline]
28659    fn from(node: OwnerTo) -> AlterTableAction {
28660        AlterTableAction::OwnerTo(node)
28661    }
28662}
28663impl From<RenameColumn> for AlterTableAction {
28664    #[inline]
28665    fn from(node: RenameColumn) -> AlterTableAction {
28666        AlterTableAction::RenameColumn(node)
28667    }
28668}
28669impl From<RenameConstraint> for AlterTableAction {
28670    #[inline]
28671    fn from(node: RenameConstraint) -> AlterTableAction {
28672        AlterTableAction::RenameConstraint(node)
28673    }
28674}
28675impl From<RenameTo> for AlterTableAction {
28676    #[inline]
28677    fn from(node: RenameTo) -> AlterTableAction {
28678        AlterTableAction::RenameTo(node)
28679    }
28680}
28681impl From<ReplicaIdentity> for AlterTableAction {
28682    #[inline]
28683    fn from(node: ReplicaIdentity) -> AlterTableAction {
28684        AlterTableAction::ReplicaIdentity(node)
28685    }
28686}
28687impl From<ResetOptions> for AlterTableAction {
28688    #[inline]
28689    fn from(node: ResetOptions) -> AlterTableAction {
28690        AlterTableAction::ResetOptions(node)
28691    }
28692}
28693impl From<SetAccessMethod> for AlterTableAction {
28694    #[inline]
28695    fn from(node: SetAccessMethod) -> AlterTableAction {
28696        AlterTableAction::SetAccessMethod(node)
28697    }
28698}
28699impl From<SetLogged> for AlterTableAction {
28700    #[inline]
28701    fn from(node: SetLogged) -> AlterTableAction {
28702        AlterTableAction::SetLogged(node)
28703    }
28704}
28705impl From<SetOptions> for AlterTableAction {
28706    #[inline]
28707    fn from(node: SetOptions) -> AlterTableAction {
28708        AlterTableAction::SetOptions(node)
28709    }
28710}
28711impl From<SetSchema> for AlterTableAction {
28712    #[inline]
28713    fn from(node: SetSchema) -> AlterTableAction {
28714        AlterTableAction::SetSchema(node)
28715    }
28716}
28717impl From<SetTablespace> for AlterTableAction {
28718    #[inline]
28719    fn from(node: SetTablespace) -> AlterTableAction {
28720        AlterTableAction::SetTablespace(node)
28721    }
28722}
28723impl From<SetUnlogged> for AlterTableAction {
28724    #[inline]
28725    fn from(node: SetUnlogged) -> AlterTableAction {
28726        AlterTableAction::SetUnlogged(node)
28727    }
28728}
28729impl From<SetWithoutCluster> for AlterTableAction {
28730    #[inline]
28731    fn from(node: SetWithoutCluster) -> AlterTableAction {
28732        AlterTableAction::SetWithoutCluster(node)
28733    }
28734}
28735impl From<SetWithoutOids> for AlterTableAction {
28736    #[inline]
28737    fn from(node: SetWithoutOids) -> AlterTableAction {
28738        AlterTableAction::SetWithoutOids(node)
28739    }
28740}
28741impl From<ValidateConstraint> for AlterTableAction {
28742    #[inline]
28743    fn from(node: ValidateConstraint) -> AlterTableAction {
28744        AlterTableAction::ValidateConstraint(node)
28745    }
28746}
28747impl AstNode for ColumnConstraint {
28748    #[inline]
28749    fn can_cast(kind: SyntaxKind) -> bool {
28750        matches!(
28751            kind,
28752            SyntaxKind::CHECK_CONSTRAINT
28753                | SyntaxKind::DEFAULT_CONSTRAINT
28754                | SyntaxKind::EXCLUDE_CONSTRAINT
28755                | SyntaxKind::NOT_NULL_CONSTRAINT
28756                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
28757                | SyntaxKind::REFERENCES_CONSTRAINT
28758                | SyntaxKind::UNIQUE_CONSTRAINT
28759        )
28760    }
28761    #[inline]
28762    fn cast(syntax: SyntaxNode) -> Option<Self> {
28763        let res = match syntax.kind() {
28764            SyntaxKind::CHECK_CONSTRAINT => {
28765                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
28766            }
28767            SyntaxKind::DEFAULT_CONSTRAINT => {
28768                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
28769            }
28770            SyntaxKind::EXCLUDE_CONSTRAINT => {
28771                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
28772            }
28773            SyntaxKind::NOT_NULL_CONSTRAINT => {
28774                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
28775            }
28776            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
28777                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
28778            }
28779            SyntaxKind::REFERENCES_CONSTRAINT => {
28780                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
28781            }
28782            SyntaxKind::UNIQUE_CONSTRAINT => {
28783                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
28784            }
28785            _ => {
28786                return None;
28787            }
28788        };
28789        Some(res)
28790    }
28791    #[inline]
28792    fn syntax(&self) -> &SyntaxNode {
28793        match self {
28794            ColumnConstraint::CheckConstraint(it) => &it.syntax,
28795            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
28796            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
28797            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
28798            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
28799            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
28800            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
28801        }
28802    }
28803}
28804impl From<CheckConstraint> for ColumnConstraint {
28805    #[inline]
28806    fn from(node: CheckConstraint) -> ColumnConstraint {
28807        ColumnConstraint::CheckConstraint(node)
28808    }
28809}
28810impl From<DefaultConstraint> for ColumnConstraint {
28811    #[inline]
28812    fn from(node: DefaultConstraint) -> ColumnConstraint {
28813        ColumnConstraint::DefaultConstraint(node)
28814    }
28815}
28816impl From<ExcludeConstraint> for ColumnConstraint {
28817    #[inline]
28818    fn from(node: ExcludeConstraint) -> ColumnConstraint {
28819        ColumnConstraint::ExcludeConstraint(node)
28820    }
28821}
28822impl From<NotNullConstraint> for ColumnConstraint {
28823    #[inline]
28824    fn from(node: NotNullConstraint) -> ColumnConstraint {
28825        ColumnConstraint::NotNullConstraint(node)
28826    }
28827}
28828impl From<PrimaryKeyConstraint> for ColumnConstraint {
28829    #[inline]
28830    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
28831        ColumnConstraint::PrimaryKeyConstraint(node)
28832    }
28833}
28834impl From<ReferencesConstraint> for ColumnConstraint {
28835    #[inline]
28836    fn from(node: ReferencesConstraint) -> ColumnConstraint {
28837        ColumnConstraint::ReferencesConstraint(node)
28838    }
28839}
28840impl From<UniqueConstraint> for ColumnConstraint {
28841    #[inline]
28842    fn from(node: UniqueConstraint) -> ColumnConstraint {
28843        ColumnConstraint::UniqueConstraint(node)
28844    }
28845}
28846impl AstNode for ConflictAction {
28847    #[inline]
28848    fn can_cast(kind: SyntaxKind) -> bool {
28849        matches!(
28850            kind,
28851            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
28852        )
28853    }
28854    #[inline]
28855    fn cast(syntax: SyntaxNode) -> Option<Self> {
28856        let res = match syntax.kind() {
28857            SyntaxKind::CONFLICT_DO_NOTHING => {
28858                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
28859            }
28860            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
28861                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
28862            }
28863            _ => {
28864                return None;
28865            }
28866        };
28867        Some(res)
28868    }
28869    #[inline]
28870    fn syntax(&self) -> &SyntaxNode {
28871        match self {
28872            ConflictAction::ConflictDoNothing(it) => &it.syntax,
28873            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
28874        }
28875    }
28876}
28877impl From<ConflictDoNothing> for ConflictAction {
28878    #[inline]
28879    fn from(node: ConflictDoNothing) -> ConflictAction {
28880        ConflictAction::ConflictDoNothing(node)
28881    }
28882}
28883impl From<ConflictDoUpdateSet> for ConflictAction {
28884    #[inline]
28885    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
28886        ConflictAction::ConflictDoUpdateSet(node)
28887    }
28888}
28889impl AstNode for ConflictTarget {
28890    #[inline]
28891    fn can_cast(kind: SyntaxKind) -> bool {
28892        matches!(
28893            kind,
28894            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
28895        )
28896    }
28897    #[inline]
28898    fn cast(syntax: SyntaxNode) -> Option<Self> {
28899        let res = match syntax.kind() {
28900            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
28901                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
28902            }
28903            SyntaxKind::CONFLICT_ON_INDEX => {
28904                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
28905            }
28906            _ => {
28907                return None;
28908            }
28909        };
28910        Some(res)
28911    }
28912    #[inline]
28913    fn syntax(&self) -> &SyntaxNode {
28914        match self {
28915            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
28916            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
28917        }
28918    }
28919}
28920impl From<ConflictOnConstraint> for ConflictTarget {
28921    #[inline]
28922    fn from(node: ConflictOnConstraint) -> ConflictTarget {
28923        ConflictTarget::ConflictOnConstraint(node)
28924    }
28925}
28926impl From<ConflictOnIndex> for ConflictTarget {
28927    #[inline]
28928    fn from(node: ConflictOnIndex) -> ConflictTarget {
28929        ConflictTarget::ConflictOnIndex(node)
28930    }
28931}
28932impl AstNode for Constraint {
28933    #[inline]
28934    fn can_cast(kind: SyntaxKind) -> bool {
28935        matches!(
28936            kind,
28937            SyntaxKind::CHECK_CONSTRAINT
28938                | SyntaxKind::DEFAULT_CONSTRAINT
28939                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
28940                | SyntaxKind::GENERATED_CONSTRAINT
28941                | SyntaxKind::NOT_NULL_CONSTRAINT
28942                | SyntaxKind::NULL_CONSTRAINT
28943                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
28944                | SyntaxKind::REFERENCES_CONSTRAINT
28945                | SyntaxKind::UNIQUE_CONSTRAINT
28946        )
28947    }
28948    #[inline]
28949    fn cast(syntax: SyntaxNode) -> Option<Self> {
28950        let res = match syntax.kind() {
28951            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
28952            SyntaxKind::DEFAULT_CONSTRAINT => {
28953                Constraint::DefaultConstraint(DefaultConstraint { syntax })
28954            }
28955            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
28956                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
28957            }
28958            SyntaxKind::GENERATED_CONSTRAINT => {
28959                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
28960            }
28961            SyntaxKind::NOT_NULL_CONSTRAINT => {
28962                Constraint::NotNullConstraint(NotNullConstraint { syntax })
28963            }
28964            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
28965            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
28966                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
28967            }
28968            SyntaxKind::REFERENCES_CONSTRAINT => {
28969                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
28970            }
28971            SyntaxKind::UNIQUE_CONSTRAINT => {
28972                Constraint::UniqueConstraint(UniqueConstraint { syntax })
28973            }
28974            _ => {
28975                return None;
28976            }
28977        };
28978        Some(res)
28979    }
28980    #[inline]
28981    fn syntax(&self) -> &SyntaxNode {
28982        match self {
28983            Constraint::CheckConstraint(it) => &it.syntax,
28984            Constraint::DefaultConstraint(it) => &it.syntax,
28985            Constraint::ForeignKeyConstraint(it) => &it.syntax,
28986            Constraint::GeneratedConstraint(it) => &it.syntax,
28987            Constraint::NotNullConstraint(it) => &it.syntax,
28988            Constraint::NullConstraint(it) => &it.syntax,
28989            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
28990            Constraint::ReferencesConstraint(it) => &it.syntax,
28991            Constraint::UniqueConstraint(it) => &it.syntax,
28992        }
28993    }
28994}
28995impl From<CheckConstraint> for Constraint {
28996    #[inline]
28997    fn from(node: CheckConstraint) -> Constraint {
28998        Constraint::CheckConstraint(node)
28999    }
29000}
29001impl From<DefaultConstraint> for Constraint {
29002    #[inline]
29003    fn from(node: DefaultConstraint) -> Constraint {
29004        Constraint::DefaultConstraint(node)
29005    }
29006}
29007impl From<ForeignKeyConstraint> for Constraint {
29008    #[inline]
29009    fn from(node: ForeignKeyConstraint) -> Constraint {
29010        Constraint::ForeignKeyConstraint(node)
29011    }
29012}
29013impl From<GeneratedConstraint> for Constraint {
29014    #[inline]
29015    fn from(node: GeneratedConstraint) -> Constraint {
29016        Constraint::GeneratedConstraint(node)
29017    }
29018}
29019impl From<NotNullConstraint> for Constraint {
29020    #[inline]
29021    fn from(node: NotNullConstraint) -> Constraint {
29022        Constraint::NotNullConstraint(node)
29023    }
29024}
29025impl From<NullConstraint> for Constraint {
29026    #[inline]
29027    fn from(node: NullConstraint) -> Constraint {
29028        Constraint::NullConstraint(node)
29029    }
29030}
29031impl From<PrimaryKeyConstraint> for Constraint {
29032    #[inline]
29033    fn from(node: PrimaryKeyConstraint) -> Constraint {
29034        Constraint::PrimaryKeyConstraint(node)
29035    }
29036}
29037impl From<ReferencesConstraint> for Constraint {
29038    #[inline]
29039    fn from(node: ReferencesConstraint) -> Constraint {
29040        Constraint::ReferencesConstraint(node)
29041    }
29042}
29043impl From<UniqueConstraint> for Constraint {
29044    #[inline]
29045    fn from(node: UniqueConstraint) -> Constraint {
29046        Constraint::UniqueConstraint(node)
29047    }
29048}
29049impl AstNode for ExplainStmt {
29050    #[inline]
29051    fn can_cast(kind: SyntaxKind) -> bool {
29052        matches!(
29053            kind,
29054            SyntaxKind::COMPOUND_SELECT
29055                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29056                | SyntaxKind::CREATE_TABLE_AS
29057                | SyntaxKind::DECLARE
29058                | SyntaxKind::DELETE
29059                | SyntaxKind::EXECUTE
29060                | SyntaxKind::INSERT
29061                | SyntaxKind::MERGE
29062                | SyntaxKind::PAREN_SELECT
29063                | SyntaxKind::SELECT
29064                | SyntaxKind::SELECT_INTO
29065                | SyntaxKind::TABLE
29066                | SyntaxKind::UPDATE
29067                | SyntaxKind::VALUES
29068        )
29069    }
29070    #[inline]
29071    fn cast(syntax: SyntaxNode) -> Option<Self> {
29072        let res = match syntax.kind() {
29073            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
29074            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
29075                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
29076            }
29077            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
29078            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
29079            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
29080            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
29081            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
29082            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
29083            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
29084            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
29085            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
29086            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
29087            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
29088            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
29089            _ => {
29090                return None;
29091            }
29092        };
29093        Some(res)
29094    }
29095    #[inline]
29096    fn syntax(&self) -> &SyntaxNode {
29097        match self {
29098            ExplainStmt::CompoundSelect(it) => &it.syntax,
29099            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
29100            ExplainStmt::CreateTableAs(it) => &it.syntax,
29101            ExplainStmt::Declare(it) => &it.syntax,
29102            ExplainStmt::Delete(it) => &it.syntax,
29103            ExplainStmt::Execute(it) => &it.syntax,
29104            ExplainStmt::Insert(it) => &it.syntax,
29105            ExplainStmt::Merge(it) => &it.syntax,
29106            ExplainStmt::ParenSelect(it) => &it.syntax,
29107            ExplainStmt::Select(it) => &it.syntax,
29108            ExplainStmt::SelectInto(it) => &it.syntax,
29109            ExplainStmt::Table(it) => &it.syntax,
29110            ExplainStmt::Update(it) => &it.syntax,
29111            ExplainStmt::Values(it) => &it.syntax,
29112        }
29113    }
29114}
29115impl From<CompoundSelect> for ExplainStmt {
29116    #[inline]
29117    fn from(node: CompoundSelect) -> ExplainStmt {
29118        ExplainStmt::CompoundSelect(node)
29119    }
29120}
29121impl From<CreateMaterializedView> for ExplainStmt {
29122    #[inline]
29123    fn from(node: CreateMaterializedView) -> ExplainStmt {
29124        ExplainStmt::CreateMaterializedView(node)
29125    }
29126}
29127impl From<CreateTableAs> for ExplainStmt {
29128    #[inline]
29129    fn from(node: CreateTableAs) -> ExplainStmt {
29130        ExplainStmt::CreateTableAs(node)
29131    }
29132}
29133impl From<Declare> for ExplainStmt {
29134    #[inline]
29135    fn from(node: Declare) -> ExplainStmt {
29136        ExplainStmt::Declare(node)
29137    }
29138}
29139impl From<Delete> for ExplainStmt {
29140    #[inline]
29141    fn from(node: Delete) -> ExplainStmt {
29142        ExplainStmt::Delete(node)
29143    }
29144}
29145impl From<Execute> for ExplainStmt {
29146    #[inline]
29147    fn from(node: Execute) -> ExplainStmt {
29148        ExplainStmt::Execute(node)
29149    }
29150}
29151impl From<Insert> for ExplainStmt {
29152    #[inline]
29153    fn from(node: Insert) -> ExplainStmt {
29154        ExplainStmt::Insert(node)
29155    }
29156}
29157impl From<Merge> for ExplainStmt {
29158    #[inline]
29159    fn from(node: Merge) -> ExplainStmt {
29160        ExplainStmt::Merge(node)
29161    }
29162}
29163impl From<ParenSelect> for ExplainStmt {
29164    #[inline]
29165    fn from(node: ParenSelect) -> ExplainStmt {
29166        ExplainStmt::ParenSelect(node)
29167    }
29168}
29169impl From<Select> for ExplainStmt {
29170    #[inline]
29171    fn from(node: Select) -> ExplainStmt {
29172        ExplainStmt::Select(node)
29173    }
29174}
29175impl From<SelectInto> for ExplainStmt {
29176    #[inline]
29177    fn from(node: SelectInto) -> ExplainStmt {
29178        ExplainStmt::SelectInto(node)
29179    }
29180}
29181impl From<Table> for ExplainStmt {
29182    #[inline]
29183    fn from(node: Table) -> ExplainStmt {
29184        ExplainStmt::Table(node)
29185    }
29186}
29187impl From<Update> for ExplainStmt {
29188    #[inline]
29189    fn from(node: Update) -> ExplainStmt {
29190        ExplainStmt::Update(node)
29191    }
29192}
29193impl From<Values> for ExplainStmt {
29194    #[inline]
29195    fn from(node: Values) -> ExplainStmt {
29196        ExplainStmt::Values(node)
29197    }
29198}
29199impl AstNode for Expr {
29200    #[inline]
29201    fn can_cast(kind: SyntaxKind) -> bool {
29202        matches!(
29203            kind,
29204            SyntaxKind::ARRAY_EXPR
29205                | SyntaxKind::BETWEEN_EXPR
29206                | SyntaxKind::BIN_EXPR
29207                | SyntaxKind::CALL_EXPR
29208                | SyntaxKind::CASE_EXPR
29209                | SyntaxKind::CAST_EXPR
29210                | SyntaxKind::FIELD_EXPR
29211                | SyntaxKind::INDEX_EXPR
29212                | SyntaxKind::LITERAL
29213                | SyntaxKind::NAME_REF
29214                | SyntaxKind::PAREN_EXPR
29215                | SyntaxKind::POSTFIX_EXPR
29216                | SyntaxKind::PREFIX_EXPR
29217                | SyntaxKind::SLICE_EXPR
29218                | SyntaxKind::TUPLE_EXPR
29219        )
29220    }
29221    #[inline]
29222    fn cast(syntax: SyntaxNode) -> Option<Self> {
29223        let res = match syntax.kind() {
29224            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
29225            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
29226            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
29227            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
29228            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
29229            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
29230            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
29231            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
29232            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
29233            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
29234            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
29235            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
29236            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
29237            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
29238            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
29239            _ => {
29240                return None;
29241            }
29242        };
29243        Some(res)
29244    }
29245    #[inline]
29246    fn syntax(&self) -> &SyntaxNode {
29247        match self {
29248            Expr::ArrayExpr(it) => &it.syntax,
29249            Expr::BetweenExpr(it) => &it.syntax,
29250            Expr::BinExpr(it) => &it.syntax,
29251            Expr::CallExpr(it) => &it.syntax,
29252            Expr::CaseExpr(it) => &it.syntax,
29253            Expr::CastExpr(it) => &it.syntax,
29254            Expr::FieldExpr(it) => &it.syntax,
29255            Expr::IndexExpr(it) => &it.syntax,
29256            Expr::Literal(it) => &it.syntax,
29257            Expr::NameRef(it) => &it.syntax,
29258            Expr::ParenExpr(it) => &it.syntax,
29259            Expr::PostfixExpr(it) => &it.syntax,
29260            Expr::PrefixExpr(it) => &it.syntax,
29261            Expr::SliceExpr(it) => &it.syntax,
29262            Expr::TupleExpr(it) => &it.syntax,
29263        }
29264    }
29265}
29266impl From<ArrayExpr> for Expr {
29267    #[inline]
29268    fn from(node: ArrayExpr) -> Expr {
29269        Expr::ArrayExpr(node)
29270    }
29271}
29272impl From<BetweenExpr> for Expr {
29273    #[inline]
29274    fn from(node: BetweenExpr) -> Expr {
29275        Expr::BetweenExpr(node)
29276    }
29277}
29278impl From<BinExpr> for Expr {
29279    #[inline]
29280    fn from(node: BinExpr) -> Expr {
29281        Expr::BinExpr(node)
29282    }
29283}
29284impl From<CallExpr> for Expr {
29285    #[inline]
29286    fn from(node: CallExpr) -> Expr {
29287        Expr::CallExpr(node)
29288    }
29289}
29290impl From<CaseExpr> for Expr {
29291    #[inline]
29292    fn from(node: CaseExpr) -> Expr {
29293        Expr::CaseExpr(node)
29294    }
29295}
29296impl From<CastExpr> for Expr {
29297    #[inline]
29298    fn from(node: CastExpr) -> Expr {
29299        Expr::CastExpr(node)
29300    }
29301}
29302impl From<FieldExpr> for Expr {
29303    #[inline]
29304    fn from(node: FieldExpr) -> Expr {
29305        Expr::FieldExpr(node)
29306    }
29307}
29308impl From<IndexExpr> for Expr {
29309    #[inline]
29310    fn from(node: IndexExpr) -> Expr {
29311        Expr::IndexExpr(node)
29312    }
29313}
29314impl From<Literal> for Expr {
29315    #[inline]
29316    fn from(node: Literal) -> Expr {
29317        Expr::Literal(node)
29318    }
29319}
29320impl From<NameRef> for Expr {
29321    #[inline]
29322    fn from(node: NameRef) -> Expr {
29323        Expr::NameRef(node)
29324    }
29325}
29326impl From<ParenExpr> for Expr {
29327    #[inline]
29328    fn from(node: ParenExpr) -> Expr {
29329        Expr::ParenExpr(node)
29330    }
29331}
29332impl From<PostfixExpr> for Expr {
29333    #[inline]
29334    fn from(node: PostfixExpr) -> Expr {
29335        Expr::PostfixExpr(node)
29336    }
29337}
29338impl From<PrefixExpr> for Expr {
29339    #[inline]
29340    fn from(node: PrefixExpr) -> Expr {
29341        Expr::PrefixExpr(node)
29342    }
29343}
29344impl From<SliceExpr> for Expr {
29345    #[inline]
29346    fn from(node: SliceExpr) -> Expr {
29347        Expr::SliceExpr(node)
29348    }
29349}
29350impl From<TupleExpr> for Expr {
29351    #[inline]
29352    fn from(node: TupleExpr) -> Expr {
29353        Expr::TupleExpr(node)
29354    }
29355}
29356impl AstNode for FuncOption {
29357    #[inline]
29358    fn can_cast(kind: SyntaxKind) -> bool {
29359        matches!(
29360            kind,
29361            SyntaxKind::AS_FUNC_OPTION
29362                | SyntaxKind::BEGIN_FUNC_OPTION
29363                | SyntaxKind::COST_FUNC_OPTION
29364                | SyntaxKind::LANGUAGE_FUNC_OPTION
29365                | SyntaxKind::LEAKPROOF_FUNC_OPTION
29366                | SyntaxKind::PARALLEL_FUNC_OPTION
29367                | SyntaxKind::RESET_FUNC_OPTION
29368                | SyntaxKind::RETURN_FUNC_OPTION
29369                | SyntaxKind::ROWS_FUNC_OPTION
29370                | SyntaxKind::SECURITY_FUNC_OPTION
29371                | SyntaxKind::SET_FUNC_OPTION
29372                | SyntaxKind::STRICT_FUNC_OPTION
29373                | SyntaxKind::SUPPORT_FUNC_OPTION
29374                | SyntaxKind::TRANSFORM_FUNC_OPTION
29375                | SyntaxKind::VOLATILITY_FUNC_OPTION
29376                | SyntaxKind::WINDOW_FUNC_OPTION
29377        )
29378    }
29379    #[inline]
29380    fn cast(syntax: SyntaxNode) -> Option<Self> {
29381        let res = match syntax.kind() {
29382            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
29383            SyntaxKind::BEGIN_FUNC_OPTION => {
29384                FuncOption::BeginFuncOption(BeginFuncOption { syntax })
29385            }
29386            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
29387            SyntaxKind::LANGUAGE_FUNC_OPTION => {
29388                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
29389            }
29390            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
29391                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
29392            }
29393            SyntaxKind::PARALLEL_FUNC_OPTION => {
29394                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
29395            }
29396            SyntaxKind::RESET_FUNC_OPTION => {
29397                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
29398            }
29399            SyntaxKind::RETURN_FUNC_OPTION => {
29400                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
29401            }
29402            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
29403            SyntaxKind::SECURITY_FUNC_OPTION => {
29404                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
29405            }
29406            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
29407            SyntaxKind::STRICT_FUNC_OPTION => {
29408                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
29409            }
29410            SyntaxKind::SUPPORT_FUNC_OPTION => {
29411                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
29412            }
29413            SyntaxKind::TRANSFORM_FUNC_OPTION => {
29414                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
29415            }
29416            SyntaxKind::VOLATILITY_FUNC_OPTION => {
29417                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
29418            }
29419            SyntaxKind::WINDOW_FUNC_OPTION => {
29420                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
29421            }
29422            _ => {
29423                return None;
29424            }
29425        };
29426        Some(res)
29427    }
29428    #[inline]
29429    fn syntax(&self) -> &SyntaxNode {
29430        match self {
29431            FuncOption::AsFuncOption(it) => &it.syntax,
29432            FuncOption::BeginFuncOption(it) => &it.syntax,
29433            FuncOption::CostFuncOption(it) => &it.syntax,
29434            FuncOption::LanguageFuncOption(it) => &it.syntax,
29435            FuncOption::LeakproofFuncOption(it) => &it.syntax,
29436            FuncOption::ParallelFuncOption(it) => &it.syntax,
29437            FuncOption::ResetFuncOption(it) => &it.syntax,
29438            FuncOption::ReturnFuncOption(it) => &it.syntax,
29439            FuncOption::RowsFuncOption(it) => &it.syntax,
29440            FuncOption::SecurityFuncOption(it) => &it.syntax,
29441            FuncOption::SetFuncOption(it) => &it.syntax,
29442            FuncOption::StrictFuncOption(it) => &it.syntax,
29443            FuncOption::SupportFuncOption(it) => &it.syntax,
29444            FuncOption::TransformFuncOption(it) => &it.syntax,
29445            FuncOption::VolatilityFuncOption(it) => &it.syntax,
29446            FuncOption::WindowFuncOption(it) => &it.syntax,
29447        }
29448    }
29449}
29450impl From<AsFuncOption> for FuncOption {
29451    #[inline]
29452    fn from(node: AsFuncOption) -> FuncOption {
29453        FuncOption::AsFuncOption(node)
29454    }
29455}
29456impl From<BeginFuncOption> for FuncOption {
29457    #[inline]
29458    fn from(node: BeginFuncOption) -> FuncOption {
29459        FuncOption::BeginFuncOption(node)
29460    }
29461}
29462impl From<CostFuncOption> for FuncOption {
29463    #[inline]
29464    fn from(node: CostFuncOption) -> FuncOption {
29465        FuncOption::CostFuncOption(node)
29466    }
29467}
29468impl From<LanguageFuncOption> for FuncOption {
29469    #[inline]
29470    fn from(node: LanguageFuncOption) -> FuncOption {
29471        FuncOption::LanguageFuncOption(node)
29472    }
29473}
29474impl From<LeakproofFuncOption> for FuncOption {
29475    #[inline]
29476    fn from(node: LeakproofFuncOption) -> FuncOption {
29477        FuncOption::LeakproofFuncOption(node)
29478    }
29479}
29480impl From<ParallelFuncOption> for FuncOption {
29481    #[inline]
29482    fn from(node: ParallelFuncOption) -> FuncOption {
29483        FuncOption::ParallelFuncOption(node)
29484    }
29485}
29486impl From<ResetFuncOption> for FuncOption {
29487    #[inline]
29488    fn from(node: ResetFuncOption) -> FuncOption {
29489        FuncOption::ResetFuncOption(node)
29490    }
29491}
29492impl From<ReturnFuncOption> for FuncOption {
29493    #[inline]
29494    fn from(node: ReturnFuncOption) -> FuncOption {
29495        FuncOption::ReturnFuncOption(node)
29496    }
29497}
29498impl From<RowsFuncOption> for FuncOption {
29499    #[inline]
29500    fn from(node: RowsFuncOption) -> FuncOption {
29501        FuncOption::RowsFuncOption(node)
29502    }
29503}
29504impl From<SecurityFuncOption> for FuncOption {
29505    #[inline]
29506    fn from(node: SecurityFuncOption) -> FuncOption {
29507        FuncOption::SecurityFuncOption(node)
29508    }
29509}
29510impl From<SetFuncOption> for FuncOption {
29511    #[inline]
29512    fn from(node: SetFuncOption) -> FuncOption {
29513        FuncOption::SetFuncOption(node)
29514    }
29515}
29516impl From<StrictFuncOption> for FuncOption {
29517    #[inline]
29518    fn from(node: StrictFuncOption) -> FuncOption {
29519        FuncOption::StrictFuncOption(node)
29520    }
29521}
29522impl From<SupportFuncOption> for FuncOption {
29523    #[inline]
29524    fn from(node: SupportFuncOption) -> FuncOption {
29525        FuncOption::SupportFuncOption(node)
29526    }
29527}
29528impl From<TransformFuncOption> for FuncOption {
29529    #[inline]
29530    fn from(node: TransformFuncOption) -> FuncOption {
29531        FuncOption::TransformFuncOption(node)
29532    }
29533}
29534impl From<VolatilityFuncOption> for FuncOption {
29535    #[inline]
29536    fn from(node: VolatilityFuncOption) -> FuncOption {
29537        FuncOption::VolatilityFuncOption(node)
29538    }
29539}
29540impl From<WindowFuncOption> for FuncOption {
29541    #[inline]
29542    fn from(node: WindowFuncOption) -> FuncOption {
29543        FuncOption::WindowFuncOption(node)
29544    }
29545}
29546impl AstNode for GroupBy {
29547    #[inline]
29548    fn can_cast(kind: SyntaxKind) -> bool {
29549        matches!(
29550            kind,
29551            SyntaxKind::GROUPING_CUBE
29552                | SyntaxKind::GROUPING_EXPR
29553                | SyntaxKind::GROUPING_ROLLUP
29554                | SyntaxKind::GROUPING_SETS
29555        )
29556    }
29557    #[inline]
29558    fn cast(syntax: SyntaxNode) -> Option<Self> {
29559        let res = match syntax.kind() {
29560            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
29561            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
29562            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
29563            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
29564            _ => {
29565                return None;
29566            }
29567        };
29568        Some(res)
29569    }
29570    #[inline]
29571    fn syntax(&self) -> &SyntaxNode {
29572        match self {
29573            GroupBy::GroupingCube(it) => &it.syntax,
29574            GroupBy::GroupingExpr(it) => &it.syntax,
29575            GroupBy::GroupingRollup(it) => &it.syntax,
29576            GroupBy::GroupingSets(it) => &it.syntax,
29577        }
29578    }
29579}
29580impl From<GroupingCube> for GroupBy {
29581    #[inline]
29582    fn from(node: GroupingCube) -> GroupBy {
29583        GroupBy::GroupingCube(node)
29584    }
29585}
29586impl From<GroupingExpr> for GroupBy {
29587    #[inline]
29588    fn from(node: GroupingExpr) -> GroupBy {
29589        GroupBy::GroupingExpr(node)
29590    }
29591}
29592impl From<GroupingRollup> for GroupBy {
29593    #[inline]
29594    fn from(node: GroupingRollup) -> GroupBy {
29595        GroupBy::GroupingRollup(node)
29596    }
29597}
29598impl From<GroupingSets> for GroupBy {
29599    #[inline]
29600    fn from(node: GroupingSets) -> GroupBy {
29601        GroupBy::GroupingSets(node)
29602    }
29603}
29604impl AstNode for JoinType {
29605    #[inline]
29606    fn can_cast(kind: SyntaxKind) -> bool {
29607        matches!(
29608            kind,
29609            SyntaxKind::JOIN_CROSS
29610                | SyntaxKind::JOIN_FULL
29611                | SyntaxKind::JOIN_INNER
29612                | SyntaxKind::JOIN_LEFT
29613                | SyntaxKind::JOIN_RIGHT
29614        )
29615    }
29616    #[inline]
29617    fn cast(syntax: SyntaxNode) -> Option<Self> {
29618        let res = match syntax.kind() {
29619            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
29620            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
29621            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
29622            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
29623            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
29624            _ => {
29625                return None;
29626            }
29627        };
29628        Some(res)
29629    }
29630    #[inline]
29631    fn syntax(&self) -> &SyntaxNode {
29632        match self {
29633            JoinType::JoinCross(it) => &it.syntax,
29634            JoinType::JoinFull(it) => &it.syntax,
29635            JoinType::JoinInner(it) => &it.syntax,
29636            JoinType::JoinLeft(it) => &it.syntax,
29637            JoinType::JoinRight(it) => &it.syntax,
29638        }
29639    }
29640}
29641impl From<JoinCross> for JoinType {
29642    #[inline]
29643    fn from(node: JoinCross) -> JoinType {
29644        JoinType::JoinCross(node)
29645    }
29646}
29647impl From<JoinFull> for JoinType {
29648    #[inline]
29649    fn from(node: JoinFull) -> JoinType {
29650        JoinType::JoinFull(node)
29651    }
29652}
29653impl From<JoinInner> for JoinType {
29654    #[inline]
29655    fn from(node: JoinInner) -> JoinType {
29656        JoinType::JoinInner(node)
29657    }
29658}
29659impl From<JoinLeft> for JoinType {
29660    #[inline]
29661    fn from(node: JoinLeft) -> JoinType {
29662        JoinType::JoinLeft(node)
29663    }
29664}
29665impl From<JoinRight> for JoinType {
29666    #[inline]
29667    fn from(node: JoinRight) -> JoinType {
29668        JoinType::JoinRight(node)
29669    }
29670}
29671impl AstNode for JsonBehavior {
29672    #[inline]
29673    fn can_cast(kind: SyntaxKind) -> bool {
29674        matches!(
29675            kind,
29676            SyntaxKind::JSON_BEHAVIOR_DEFAULT
29677                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
29678                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
29679                | SyntaxKind::JSON_BEHAVIOR_ERROR
29680                | SyntaxKind::JSON_BEHAVIOR_FALSE
29681                | SyntaxKind::JSON_BEHAVIOR_NULL
29682                | SyntaxKind::JSON_BEHAVIOR_TRUE
29683                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
29684        )
29685    }
29686    #[inline]
29687    fn cast(syntax: SyntaxNode) -> Option<Self> {
29688        let res = match syntax.kind() {
29689            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
29690                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
29691            }
29692            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
29693                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
29694            }
29695            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
29696                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
29697            }
29698            SyntaxKind::JSON_BEHAVIOR_ERROR => {
29699                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
29700            }
29701            SyntaxKind::JSON_BEHAVIOR_FALSE => {
29702                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
29703            }
29704            SyntaxKind::JSON_BEHAVIOR_NULL => {
29705                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
29706            }
29707            SyntaxKind::JSON_BEHAVIOR_TRUE => {
29708                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
29709            }
29710            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
29711                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
29712            }
29713            _ => {
29714                return None;
29715            }
29716        };
29717        Some(res)
29718    }
29719    #[inline]
29720    fn syntax(&self) -> &SyntaxNode {
29721        match self {
29722            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
29723            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
29724            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
29725            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
29726            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
29727            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
29728            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
29729            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
29730        }
29731    }
29732}
29733impl From<JsonBehaviorDefault> for JsonBehavior {
29734    #[inline]
29735    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
29736        JsonBehavior::JsonBehaviorDefault(node)
29737    }
29738}
29739impl From<JsonBehaviorEmptyArray> for JsonBehavior {
29740    #[inline]
29741    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
29742        JsonBehavior::JsonBehaviorEmptyArray(node)
29743    }
29744}
29745impl From<JsonBehaviorEmptyObject> for JsonBehavior {
29746    #[inline]
29747    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
29748        JsonBehavior::JsonBehaviorEmptyObject(node)
29749    }
29750}
29751impl From<JsonBehaviorError> for JsonBehavior {
29752    #[inline]
29753    fn from(node: JsonBehaviorError) -> JsonBehavior {
29754        JsonBehavior::JsonBehaviorError(node)
29755    }
29756}
29757impl From<JsonBehaviorFalse> for JsonBehavior {
29758    #[inline]
29759    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
29760        JsonBehavior::JsonBehaviorFalse(node)
29761    }
29762}
29763impl From<JsonBehaviorNull> for JsonBehavior {
29764    #[inline]
29765    fn from(node: JsonBehaviorNull) -> JsonBehavior {
29766        JsonBehavior::JsonBehaviorNull(node)
29767    }
29768}
29769impl From<JsonBehaviorTrue> for JsonBehavior {
29770    #[inline]
29771    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
29772        JsonBehavior::JsonBehaviorTrue(node)
29773    }
29774}
29775impl From<JsonBehaviorUnknown> for JsonBehavior {
29776    #[inline]
29777    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
29778        JsonBehavior::JsonBehaviorUnknown(node)
29779    }
29780}
29781impl AstNode for MatchType {
29782    #[inline]
29783    fn can_cast(kind: SyntaxKind) -> bool {
29784        matches!(
29785            kind,
29786            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
29787        )
29788    }
29789    #[inline]
29790    fn cast(syntax: SyntaxNode) -> Option<Self> {
29791        let res = match syntax.kind() {
29792            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
29793            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
29794            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
29795            _ => {
29796                return None;
29797            }
29798        };
29799        Some(res)
29800    }
29801    #[inline]
29802    fn syntax(&self) -> &SyntaxNode {
29803        match self {
29804            MatchType::MatchFull(it) => &it.syntax,
29805            MatchType::MatchPartial(it) => &it.syntax,
29806            MatchType::MatchSimple(it) => &it.syntax,
29807        }
29808    }
29809}
29810impl From<MatchFull> for MatchType {
29811    #[inline]
29812    fn from(node: MatchFull) -> MatchType {
29813        MatchType::MatchFull(node)
29814    }
29815}
29816impl From<MatchPartial> for MatchType {
29817    #[inline]
29818    fn from(node: MatchPartial) -> MatchType {
29819        MatchType::MatchPartial(node)
29820    }
29821}
29822impl From<MatchSimple> for MatchType {
29823    #[inline]
29824    fn from(node: MatchSimple) -> MatchType {
29825        MatchType::MatchSimple(node)
29826    }
29827}
29828impl AstNode for MergeAction {
29829    #[inline]
29830    fn can_cast(kind: SyntaxKind) -> bool {
29831        matches!(
29832            kind,
29833            SyntaxKind::MERGE_DELETE
29834                | SyntaxKind::MERGE_DO_NOTHING
29835                | SyntaxKind::MERGE_INSERT
29836                | SyntaxKind::MERGE_UPDATE
29837        )
29838    }
29839    #[inline]
29840    fn cast(syntax: SyntaxNode) -> Option<Self> {
29841        let res = match syntax.kind() {
29842            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
29843            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
29844            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
29845            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
29846            _ => {
29847                return None;
29848            }
29849        };
29850        Some(res)
29851    }
29852    #[inline]
29853    fn syntax(&self) -> &SyntaxNode {
29854        match self {
29855            MergeAction::MergeDelete(it) => &it.syntax,
29856            MergeAction::MergeDoNothing(it) => &it.syntax,
29857            MergeAction::MergeInsert(it) => &it.syntax,
29858            MergeAction::MergeUpdate(it) => &it.syntax,
29859        }
29860    }
29861}
29862impl From<MergeDelete> for MergeAction {
29863    #[inline]
29864    fn from(node: MergeDelete) -> MergeAction {
29865        MergeAction::MergeDelete(node)
29866    }
29867}
29868impl From<MergeDoNothing> for MergeAction {
29869    #[inline]
29870    fn from(node: MergeDoNothing) -> MergeAction {
29871        MergeAction::MergeDoNothing(node)
29872    }
29873}
29874impl From<MergeInsert> for MergeAction {
29875    #[inline]
29876    fn from(node: MergeInsert) -> MergeAction {
29877        MergeAction::MergeInsert(node)
29878    }
29879}
29880impl From<MergeUpdate> for MergeAction {
29881    #[inline]
29882    fn from(node: MergeUpdate) -> MergeAction {
29883        MergeAction::MergeUpdate(node)
29884    }
29885}
29886impl AstNode for MergeWhenClause {
29887    #[inline]
29888    fn can_cast(kind: SyntaxKind) -> bool {
29889        matches!(
29890            kind,
29891            SyntaxKind::MERGE_WHEN_MATCHED
29892                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
29893                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
29894        )
29895    }
29896    #[inline]
29897    fn cast(syntax: SyntaxNode) -> Option<Self> {
29898        let res = match syntax.kind() {
29899            SyntaxKind::MERGE_WHEN_MATCHED => {
29900                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
29901            }
29902            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
29903                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
29904            }
29905            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
29906                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
29907            }
29908            _ => {
29909                return None;
29910            }
29911        };
29912        Some(res)
29913    }
29914    #[inline]
29915    fn syntax(&self) -> &SyntaxNode {
29916        match self {
29917            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
29918            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
29919            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
29920        }
29921    }
29922}
29923impl From<MergeWhenMatched> for MergeWhenClause {
29924    #[inline]
29925    fn from(node: MergeWhenMatched) -> MergeWhenClause {
29926        MergeWhenClause::MergeWhenMatched(node)
29927    }
29928}
29929impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
29930    #[inline]
29931    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
29932        MergeWhenClause::MergeWhenNotMatchedSource(node)
29933    }
29934}
29935impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
29936    #[inline]
29937    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
29938        MergeWhenClause::MergeWhenNotMatchedTarget(node)
29939    }
29940}
29941impl AstNode for OnCommitAction {
29942    #[inline]
29943    fn can_cast(kind: SyntaxKind) -> bool {
29944        matches!(
29945            kind,
29946            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
29947        )
29948    }
29949    #[inline]
29950    fn cast(syntax: SyntaxNode) -> Option<Self> {
29951        let res = match syntax.kind() {
29952            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
29953            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
29954            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
29955            _ => {
29956                return None;
29957            }
29958        };
29959        Some(res)
29960    }
29961    #[inline]
29962    fn syntax(&self) -> &SyntaxNode {
29963        match self {
29964            OnCommitAction::DeleteRows(it) => &it.syntax,
29965            OnCommitAction::Drop(it) => &it.syntax,
29966            OnCommitAction::PreserveRows(it) => &it.syntax,
29967        }
29968    }
29969}
29970impl From<DeleteRows> for OnCommitAction {
29971    #[inline]
29972    fn from(node: DeleteRows) -> OnCommitAction {
29973        OnCommitAction::DeleteRows(node)
29974    }
29975}
29976impl From<Drop> for OnCommitAction {
29977    #[inline]
29978    fn from(node: Drop) -> OnCommitAction {
29979        OnCommitAction::Drop(node)
29980    }
29981}
29982impl From<PreserveRows> for OnCommitAction {
29983    #[inline]
29984    fn from(node: PreserveRows) -> OnCommitAction {
29985        OnCommitAction::PreserveRows(node)
29986    }
29987}
29988impl AstNode for ParamMode {
29989    #[inline]
29990    fn can_cast(kind: SyntaxKind) -> bool {
29991        matches!(
29992            kind,
29993            SyntaxKind::PARAM_IN
29994                | SyntaxKind::PARAM_IN_OUT
29995                | SyntaxKind::PARAM_OUT
29996                | SyntaxKind::PARAM_VARIADIC
29997        )
29998    }
29999    #[inline]
30000    fn cast(syntax: SyntaxNode) -> Option<Self> {
30001        let res = match syntax.kind() {
30002            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30003            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30004            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30005            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30006            _ => {
30007                return None;
30008            }
30009        };
30010        Some(res)
30011    }
30012    #[inline]
30013    fn syntax(&self) -> &SyntaxNode {
30014        match self {
30015            ParamMode::ParamIn(it) => &it.syntax,
30016            ParamMode::ParamInOut(it) => &it.syntax,
30017            ParamMode::ParamOut(it) => &it.syntax,
30018            ParamMode::ParamVariadic(it) => &it.syntax,
30019        }
30020    }
30021}
30022impl From<ParamIn> for ParamMode {
30023    #[inline]
30024    fn from(node: ParamIn) -> ParamMode {
30025        ParamMode::ParamIn(node)
30026    }
30027}
30028impl From<ParamInOut> for ParamMode {
30029    #[inline]
30030    fn from(node: ParamInOut) -> ParamMode {
30031        ParamMode::ParamInOut(node)
30032    }
30033}
30034impl From<ParamOut> for ParamMode {
30035    #[inline]
30036    fn from(node: ParamOut) -> ParamMode {
30037        ParamMode::ParamOut(node)
30038    }
30039}
30040impl From<ParamVariadic> for ParamMode {
30041    #[inline]
30042    fn from(node: ParamVariadic) -> ParamMode {
30043        ParamMode::ParamVariadic(node)
30044    }
30045}
30046impl AstNode for PartitionType {
30047    #[inline]
30048    fn can_cast(kind: SyntaxKind) -> bool {
30049        matches!(
30050            kind,
30051            SyntaxKind::PARTITION_DEFAULT
30052                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30053                | SyntaxKind::PARTITION_FOR_VALUES_IN
30054                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30055        )
30056    }
30057    #[inline]
30058    fn cast(syntax: SyntaxNode) -> Option<Self> {
30059        let res = match syntax.kind() {
30060            SyntaxKind::PARTITION_DEFAULT => {
30061                PartitionType::PartitionDefault(PartitionDefault { syntax })
30062            }
30063            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
30064                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
30065            }
30066            SyntaxKind::PARTITION_FOR_VALUES_IN => {
30067                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
30068            }
30069            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
30070                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
30071            }
30072            _ => {
30073                return None;
30074            }
30075        };
30076        Some(res)
30077    }
30078    #[inline]
30079    fn syntax(&self) -> &SyntaxNode {
30080        match self {
30081            PartitionType::PartitionDefault(it) => &it.syntax,
30082            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
30083            PartitionType::PartitionForValuesIn(it) => &it.syntax,
30084            PartitionType::PartitionForValuesWith(it) => &it.syntax,
30085        }
30086    }
30087}
30088impl From<PartitionDefault> for PartitionType {
30089    #[inline]
30090    fn from(node: PartitionDefault) -> PartitionType {
30091        PartitionType::PartitionDefault(node)
30092    }
30093}
30094impl From<PartitionForValuesFrom> for PartitionType {
30095    #[inline]
30096    fn from(node: PartitionForValuesFrom) -> PartitionType {
30097        PartitionType::PartitionForValuesFrom(node)
30098    }
30099}
30100impl From<PartitionForValuesIn> for PartitionType {
30101    #[inline]
30102    fn from(node: PartitionForValuesIn) -> PartitionType {
30103        PartitionType::PartitionForValuesIn(node)
30104    }
30105}
30106impl From<PartitionForValuesWith> for PartitionType {
30107    #[inline]
30108    fn from(node: PartitionForValuesWith) -> PartitionType {
30109        PartitionType::PartitionForValuesWith(node)
30110    }
30111}
30112impl AstNode for PreparableStmt {
30113    #[inline]
30114    fn can_cast(kind: SyntaxKind) -> bool {
30115        matches!(
30116            kind,
30117            SyntaxKind::COMPOUND_SELECT
30118                | SyntaxKind::DELETE
30119                | SyntaxKind::INSERT
30120                | SyntaxKind::MERGE
30121                | SyntaxKind::SELECT
30122                | SyntaxKind::SELECT_INTO
30123                | SyntaxKind::TABLE
30124                | SyntaxKind::UPDATE
30125                | SyntaxKind::VALUES
30126        )
30127    }
30128    #[inline]
30129    fn cast(syntax: SyntaxNode) -> Option<Self> {
30130        let res = match syntax.kind() {
30131            SyntaxKind::COMPOUND_SELECT => {
30132                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
30133            }
30134            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
30135            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
30136            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
30137            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
30138            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
30139            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
30140            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
30141            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
30142            _ => {
30143                return None;
30144            }
30145        };
30146        Some(res)
30147    }
30148    #[inline]
30149    fn syntax(&self) -> &SyntaxNode {
30150        match self {
30151            PreparableStmt::CompoundSelect(it) => &it.syntax,
30152            PreparableStmt::Delete(it) => &it.syntax,
30153            PreparableStmt::Insert(it) => &it.syntax,
30154            PreparableStmt::Merge(it) => &it.syntax,
30155            PreparableStmt::Select(it) => &it.syntax,
30156            PreparableStmt::SelectInto(it) => &it.syntax,
30157            PreparableStmt::Table(it) => &it.syntax,
30158            PreparableStmt::Update(it) => &it.syntax,
30159            PreparableStmt::Values(it) => &it.syntax,
30160        }
30161    }
30162}
30163impl From<CompoundSelect> for PreparableStmt {
30164    #[inline]
30165    fn from(node: CompoundSelect) -> PreparableStmt {
30166        PreparableStmt::CompoundSelect(node)
30167    }
30168}
30169impl From<Delete> for PreparableStmt {
30170    #[inline]
30171    fn from(node: Delete) -> PreparableStmt {
30172        PreparableStmt::Delete(node)
30173    }
30174}
30175impl From<Insert> for PreparableStmt {
30176    #[inline]
30177    fn from(node: Insert) -> PreparableStmt {
30178        PreparableStmt::Insert(node)
30179    }
30180}
30181impl From<Merge> for PreparableStmt {
30182    #[inline]
30183    fn from(node: Merge) -> PreparableStmt {
30184        PreparableStmt::Merge(node)
30185    }
30186}
30187impl From<Select> for PreparableStmt {
30188    #[inline]
30189    fn from(node: Select) -> PreparableStmt {
30190        PreparableStmt::Select(node)
30191    }
30192}
30193impl From<SelectInto> for PreparableStmt {
30194    #[inline]
30195    fn from(node: SelectInto) -> PreparableStmt {
30196        PreparableStmt::SelectInto(node)
30197    }
30198}
30199impl From<Table> for PreparableStmt {
30200    #[inline]
30201    fn from(node: Table) -> PreparableStmt {
30202        PreparableStmt::Table(node)
30203    }
30204}
30205impl From<Update> for PreparableStmt {
30206    #[inline]
30207    fn from(node: Update) -> PreparableStmt {
30208        PreparableStmt::Update(node)
30209    }
30210}
30211impl From<Values> for PreparableStmt {
30212    #[inline]
30213    fn from(node: Values) -> PreparableStmt {
30214        PreparableStmt::Values(node)
30215    }
30216}
30217impl AstNode for RefAction {
30218    #[inline]
30219    fn can_cast(kind: SyntaxKind) -> bool {
30220        matches!(
30221            kind,
30222            SyntaxKind::CASCADE
30223                | SyntaxKind::NO_ACTION
30224                | SyntaxKind::RESTRICT
30225                | SyntaxKind::SET_DEFAULT_COLUMNS
30226                | SyntaxKind::SET_NULL_COLUMNS
30227        )
30228    }
30229    #[inline]
30230    fn cast(syntax: SyntaxNode) -> Option<Self> {
30231        let res = match syntax.kind() {
30232            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
30233            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
30234            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
30235            SyntaxKind::SET_DEFAULT_COLUMNS => {
30236                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
30237            }
30238            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
30239            _ => {
30240                return None;
30241            }
30242        };
30243        Some(res)
30244    }
30245    #[inline]
30246    fn syntax(&self) -> &SyntaxNode {
30247        match self {
30248            RefAction::Cascade(it) => &it.syntax,
30249            RefAction::NoAction(it) => &it.syntax,
30250            RefAction::Restrict(it) => &it.syntax,
30251            RefAction::SetDefaultColumns(it) => &it.syntax,
30252            RefAction::SetNullColumns(it) => &it.syntax,
30253        }
30254    }
30255}
30256impl From<Cascade> for RefAction {
30257    #[inline]
30258    fn from(node: Cascade) -> RefAction {
30259        RefAction::Cascade(node)
30260    }
30261}
30262impl From<NoAction> for RefAction {
30263    #[inline]
30264    fn from(node: NoAction) -> RefAction {
30265        RefAction::NoAction(node)
30266    }
30267}
30268impl From<Restrict> for RefAction {
30269    #[inline]
30270    fn from(node: Restrict) -> RefAction {
30271        RefAction::Restrict(node)
30272    }
30273}
30274impl From<SetDefaultColumns> for RefAction {
30275    #[inline]
30276    fn from(node: SetDefaultColumns) -> RefAction {
30277        RefAction::SetDefaultColumns(node)
30278    }
30279}
30280impl From<SetNullColumns> for RefAction {
30281    #[inline]
30282    fn from(node: SetNullColumns) -> RefAction {
30283        RefAction::SetNullColumns(node)
30284    }
30285}
30286impl AstNode for SchemaElement {
30287    #[inline]
30288    fn can_cast(kind: SyntaxKind) -> bool {
30289        matches!(
30290            kind,
30291            SyntaxKind::CREATE_INDEX
30292                | SyntaxKind::CREATE_SEQUENCE
30293                | SyntaxKind::CREATE_TABLE
30294                | SyntaxKind::CREATE_TRIGGER
30295                | SyntaxKind::CREATE_VIEW
30296                | SyntaxKind::GRANT
30297        )
30298    }
30299    #[inline]
30300    fn cast(syntax: SyntaxNode) -> Option<Self> {
30301        let res = match syntax.kind() {
30302            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
30303            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
30304            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
30305            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
30306            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
30307            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
30308            _ => {
30309                return None;
30310            }
30311        };
30312        Some(res)
30313    }
30314    #[inline]
30315    fn syntax(&self) -> &SyntaxNode {
30316        match self {
30317            SchemaElement::CreateIndex(it) => &it.syntax,
30318            SchemaElement::CreateSequence(it) => &it.syntax,
30319            SchemaElement::CreateTable(it) => &it.syntax,
30320            SchemaElement::CreateTrigger(it) => &it.syntax,
30321            SchemaElement::CreateView(it) => &it.syntax,
30322            SchemaElement::Grant(it) => &it.syntax,
30323        }
30324    }
30325}
30326impl From<CreateIndex> for SchemaElement {
30327    #[inline]
30328    fn from(node: CreateIndex) -> SchemaElement {
30329        SchemaElement::CreateIndex(node)
30330    }
30331}
30332impl From<CreateSequence> for SchemaElement {
30333    #[inline]
30334    fn from(node: CreateSequence) -> SchemaElement {
30335        SchemaElement::CreateSequence(node)
30336    }
30337}
30338impl From<CreateTable> for SchemaElement {
30339    #[inline]
30340    fn from(node: CreateTable) -> SchemaElement {
30341        SchemaElement::CreateTable(node)
30342    }
30343}
30344impl From<CreateTrigger> for SchemaElement {
30345    #[inline]
30346    fn from(node: CreateTrigger) -> SchemaElement {
30347        SchemaElement::CreateTrigger(node)
30348    }
30349}
30350impl From<CreateView> for SchemaElement {
30351    #[inline]
30352    fn from(node: CreateView) -> SchemaElement {
30353        SchemaElement::CreateView(node)
30354    }
30355}
30356impl From<Grant> for SchemaElement {
30357    #[inline]
30358    fn from(node: Grant) -> SchemaElement {
30359        SchemaElement::Grant(node)
30360    }
30361}
30362impl AstNode for SelectVariant {
30363    #[inline]
30364    fn can_cast(kind: SyntaxKind) -> bool {
30365        matches!(
30366            kind,
30367            SyntaxKind::COMPOUND_SELECT
30368                | SyntaxKind::PAREN_SELECT
30369                | SyntaxKind::SELECT
30370                | SyntaxKind::SELECT_INTO
30371                | SyntaxKind::TABLE
30372                | SyntaxKind::VALUES
30373        )
30374    }
30375    #[inline]
30376    fn cast(syntax: SyntaxNode) -> Option<Self> {
30377        let res = match syntax.kind() {
30378            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
30379            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
30380            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
30381            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
30382            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
30383            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
30384            _ => {
30385                return None;
30386            }
30387        };
30388        Some(res)
30389    }
30390    #[inline]
30391    fn syntax(&self) -> &SyntaxNode {
30392        match self {
30393            SelectVariant::CompoundSelect(it) => &it.syntax,
30394            SelectVariant::ParenSelect(it) => &it.syntax,
30395            SelectVariant::Select(it) => &it.syntax,
30396            SelectVariant::SelectInto(it) => &it.syntax,
30397            SelectVariant::Table(it) => &it.syntax,
30398            SelectVariant::Values(it) => &it.syntax,
30399        }
30400    }
30401}
30402impl From<CompoundSelect> for SelectVariant {
30403    #[inline]
30404    fn from(node: CompoundSelect) -> SelectVariant {
30405        SelectVariant::CompoundSelect(node)
30406    }
30407}
30408impl From<ParenSelect> for SelectVariant {
30409    #[inline]
30410    fn from(node: ParenSelect) -> SelectVariant {
30411        SelectVariant::ParenSelect(node)
30412    }
30413}
30414impl From<Select> for SelectVariant {
30415    #[inline]
30416    fn from(node: Select) -> SelectVariant {
30417        SelectVariant::Select(node)
30418    }
30419}
30420impl From<SelectInto> for SelectVariant {
30421    #[inline]
30422    fn from(node: SelectInto) -> SelectVariant {
30423        SelectVariant::SelectInto(node)
30424    }
30425}
30426impl From<Table> for SelectVariant {
30427    #[inline]
30428    fn from(node: Table) -> SelectVariant {
30429        SelectVariant::Table(node)
30430    }
30431}
30432impl From<Values> for SelectVariant {
30433    #[inline]
30434    fn from(node: Values) -> SelectVariant {
30435        SelectVariant::Values(node)
30436    }
30437}
30438impl AstNode for SetColumn {
30439    #[inline]
30440    fn can_cast(kind: SyntaxKind) -> bool {
30441        matches!(
30442            kind,
30443            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
30444        )
30445    }
30446    #[inline]
30447    fn cast(syntax: SyntaxNode) -> Option<Self> {
30448        let res = match syntax.kind() {
30449            SyntaxKind::SET_MULTIPLE_COLUMNS => {
30450                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
30451            }
30452            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
30453            _ => {
30454                return None;
30455            }
30456        };
30457        Some(res)
30458    }
30459    #[inline]
30460    fn syntax(&self) -> &SyntaxNode {
30461        match self {
30462            SetColumn::SetMultipleColumns(it) => &it.syntax,
30463            SetColumn::SetSingleColumn(it) => &it.syntax,
30464        }
30465    }
30466}
30467impl From<SetMultipleColumns> for SetColumn {
30468    #[inline]
30469    fn from(node: SetMultipleColumns) -> SetColumn {
30470        SetColumn::SetMultipleColumns(node)
30471    }
30472}
30473impl From<SetSingleColumn> for SetColumn {
30474    #[inline]
30475    fn from(node: SetSingleColumn) -> SetColumn {
30476        SetColumn::SetSingleColumn(node)
30477    }
30478}
30479impl AstNode for Stmt {
30480    #[inline]
30481    fn can_cast(kind: SyntaxKind) -> bool {
30482        matches!(
30483            kind,
30484            SyntaxKind::ALTER_AGGREGATE
30485                | SyntaxKind::ALTER_COLLATION
30486                | SyntaxKind::ALTER_CONVERSION
30487                | SyntaxKind::ALTER_DATABASE
30488                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
30489                | SyntaxKind::ALTER_DOMAIN
30490                | SyntaxKind::ALTER_EVENT_TRIGGER
30491                | SyntaxKind::ALTER_EXTENSION
30492                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
30493                | SyntaxKind::ALTER_FOREIGN_TABLE
30494                | SyntaxKind::ALTER_FUNCTION
30495                | SyntaxKind::ALTER_GROUP
30496                | SyntaxKind::ALTER_INDEX
30497                | SyntaxKind::ALTER_LANGUAGE
30498                | SyntaxKind::ALTER_LARGE_OBJECT
30499                | SyntaxKind::ALTER_MATERIALIZED_VIEW
30500                | SyntaxKind::ALTER_OPERATOR
30501                | SyntaxKind::ALTER_OPERATOR_CLASS
30502                | SyntaxKind::ALTER_OPERATOR_FAMILY
30503                | SyntaxKind::ALTER_POLICY
30504                | SyntaxKind::ALTER_PROCEDURE
30505                | SyntaxKind::ALTER_PUBLICATION
30506                | SyntaxKind::ALTER_ROLE
30507                | SyntaxKind::ALTER_ROUTINE
30508                | SyntaxKind::ALTER_RULE
30509                | SyntaxKind::ALTER_SCHEMA
30510                | SyntaxKind::ALTER_SEQUENCE
30511                | SyntaxKind::ALTER_SERVER
30512                | SyntaxKind::ALTER_STATISTICS
30513                | SyntaxKind::ALTER_SUBSCRIPTION
30514                | SyntaxKind::ALTER_SYSTEM
30515                | SyntaxKind::ALTER_TABLE
30516                | SyntaxKind::ALTER_TABLESPACE
30517                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
30518                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
30519                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
30520                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
30521                | SyntaxKind::ALTER_TRIGGER
30522                | SyntaxKind::ALTER_TYPE
30523                | SyntaxKind::ALTER_USER
30524                | SyntaxKind::ALTER_USER_MAPPING
30525                | SyntaxKind::ALTER_VIEW
30526                | SyntaxKind::ANALYZE
30527                | SyntaxKind::BEGIN
30528                | SyntaxKind::CALL
30529                | SyntaxKind::CHECKPOINT
30530                | SyntaxKind::CLOSE
30531                | SyntaxKind::CLUSTER
30532                | SyntaxKind::COMMENT_ON
30533                | SyntaxKind::COMMIT
30534                | SyntaxKind::COPY
30535                | SyntaxKind::CREATE_ACCESS_METHOD
30536                | SyntaxKind::CREATE_AGGREGATE
30537                | SyntaxKind::CREATE_CAST
30538                | SyntaxKind::CREATE_COLLATION
30539                | SyntaxKind::CREATE_CONVERSION
30540                | SyntaxKind::CREATE_DATABASE
30541                | SyntaxKind::CREATE_DOMAIN
30542                | SyntaxKind::CREATE_EVENT_TRIGGER
30543                | SyntaxKind::CREATE_EXTENSION
30544                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
30545                | SyntaxKind::CREATE_FOREIGN_TABLE
30546                | SyntaxKind::CREATE_FUNCTION
30547                | SyntaxKind::CREATE_GROUP
30548                | SyntaxKind::CREATE_INDEX
30549                | SyntaxKind::CREATE_LANGUAGE
30550                | SyntaxKind::CREATE_MATERIALIZED_VIEW
30551                | SyntaxKind::CREATE_OPERATOR
30552                | SyntaxKind::CREATE_OPERATOR_CLASS
30553                | SyntaxKind::CREATE_OPERATOR_FAMILY
30554                | SyntaxKind::CREATE_POLICY
30555                | SyntaxKind::CREATE_PROCEDURE
30556                | SyntaxKind::CREATE_PUBLICATION
30557                | SyntaxKind::CREATE_ROLE
30558                | SyntaxKind::CREATE_RULE
30559                | SyntaxKind::CREATE_SCHEMA
30560                | SyntaxKind::CREATE_SEQUENCE
30561                | SyntaxKind::CREATE_SERVER
30562                | SyntaxKind::CREATE_STATISTICS
30563                | SyntaxKind::CREATE_SUBSCRIPTION
30564                | SyntaxKind::CREATE_TABLE
30565                | SyntaxKind::CREATE_TABLE_AS
30566                | SyntaxKind::CREATE_TABLESPACE
30567                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
30568                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
30569                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
30570                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
30571                | SyntaxKind::CREATE_TRANSFORM
30572                | SyntaxKind::CREATE_TRIGGER
30573                | SyntaxKind::CREATE_TYPE
30574                | SyntaxKind::CREATE_USER
30575                | SyntaxKind::CREATE_USER_MAPPING
30576                | SyntaxKind::CREATE_VIEW
30577                | SyntaxKind::DEALLOCATE
30578                | SyntaxKind::DECLARE
30579                | SyntaxKind::DELETE
30580                | SyntaxKind::DISCARD
30581                | SyntaxKind::DO
30582                | SyntaxKind::DROP_ACCESS_METHOD
30583                | SyntaxKind::DROP_AGGREGATE
30584                | SyntaxKind::DROP_CAST
30585                | SyntaxKind::DROP_COLLATION
30586                | SyntaxKind::DROP_CONVERSION
30587                | SyntaxKind::DROP_DATABASE
30588                | SyntaxKind::DROP_DOMAIN
30589                | SyntaxKind::DROP_EVENT_TRIGGER
30590                | SyntaxKind::DROP_EXTENSION
30591                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
30592                | SyntaxKind::DROP_FOREIGN_TABLE
30593                | SyntaxKind::DROP_FUNCTION
30594                | SyntaxKind::DROP_GROUP
30595                | SyntaxKind::DROP_INDEX
30596                | SyntaxKind::DROP_LANGUAGE
30597                | SyntaxKind::DROP_MATERIALIZED_VIEW
30598                | SyntaxKind::DROP_OPERATOR
30599                | SyntaxKind::DROP_OPERATOR_CLASS
30600                | SyntaxKind::DROP_OPERATOR_FAMILY
30601                | SyntaxKind::DROP_OWNED
30602                | SyntaxKind::DROP_POLICY
30603                | SyntaxKind::DROP_PROCEDURE
30604                | SyntaxKind::DROP_PUBLICATION
30605                | SyntaxKind::DROP_ROLE
30606                | SyntaxKind::DROP_ROUTINE
30607                | SyntaxKind::DROP_RULE
30608                | SyntaxKind::DROP_SCHEMA
30609                | SyntaxKind::DROP_SEQUENCE
30610                | SyntaxKind::DROP_SERVER
30611                | SyntaxKind::DROP_STATISTICS
30612                | SyntaxKind::DROP_SUBSCRIPTION
30613                | SyntaxKind::DROP_TABLE
30614                | SyntaxKind::DROP_TABLESPACE
30615                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
30616                | SyntaxKind::DROP_TEXT_SEARCH_DICT
30617                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
30618                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
30619                | SyntaxKind::DROP_TRANSFORM
30620                | SyntaxKind::DROP_TRIGGER
30621                | SyntaxKind::DROP_TYPE
30622                | SyntaxKind::DROP_USER
30623                | SyntaxKind::DROP_USER_MAPPING
30624                | SyntaxKind::DROP_VIEW
30625                | SyntaxKind::EXECUTE
30626                | SyntaxKind::EXPLAIN
30627                | SyntaxKind::FETCH
30628                | SyntaxKind::GRANT
30629                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
30630                | SyntaxKind::INSERT
30631                | SyntaxKind::LISTEN
30632                | SyntaxKind::LOAD
30633                | SyntaxKind::LOCK
30634                | SyntaxKind::MERGE
30635                | SyntaxKind::MOVE
30636                | SyntaxKind::NOTIFY
30637                | SyntaxKind::PAREN_SELECT
30638                | SyntaxKind::PREPARE
30639                | SyntaxKind::PREPARE_TRANSACTION
30640                | SyntaxKind::REASSIGN
30641                | SyntaxKind::REFRESH
30642                | SyntaxKind::REINDEX
30643                | SyntaxKind::RELEASE_SAVEPOINT
30644                | SyntaxKind::RESET
30645                | SyntaxKind::RESET_SESSION_AUTH
30646                | SyntaxKind::REVOKE
30647                | SyntaxKind::ROLLBACK
30648                | SyntaxKind::SAVEPOINT
30649                | SyntaxKind::SECURITY_LABEL
30650                | SyntaxKind::SELECT
30651                | SyntaxKind::SELECT_INTO
30652                | SyntaxKind::SET
30653                | SyntaxKind::SET_CONSTRAINTS
30654                | SyntaxKind::SET_ROLE
30655                | SyntaxKind::SET_SESSION_AUTH
30656                | SyntaxKind::SET_TRANSACTION
30657                | SyntaxKind::SHOW
30658                | SyntaxKind::TABLE
30659                | SyntaxKind::TRUNCATE
30660                | SyntaxKind::UNLISTEN
30661                | SyntaxKind::UPDATE
30662                | SyntaxKind::VACUUM
30663                | SyntaxKind::VALUES
30664        )
30665    }
30666    #[inline]
30667    fn cast(syntax: SyntaxNode) -> Option<Self> {
30668        let res = match syntax.kind() {
30669            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
30670            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
30671            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
30672            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
30673            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
30674                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
30675            }
30676            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
30677            SyntaxKind::ALTER_EVENT_TRIGGER => {
30678                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
30679            }
30680            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
30681            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
30682                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
30683            }
30684            SyntaxKind::ALTER_FOREIGN_TABLE => {
30685                Stmt::AlterForeignTable(AlterForeignTable { syntax })
30686            }
30687            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
30688            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
30689            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
30690            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
30691            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
30692            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
30693                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
30694            }
30695            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
30696            SyntaxKind::ALTER_OPERATOR_CLASS => {
30697                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
30698            }
30699            SyntaxKind::ALTER_OPERATOR_FAMILY => {
30700                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
30701            }
30702            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
30703            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
30704            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
30705            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
30706            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
30707            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
30708            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
30709            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
30710            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
30711            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
30712            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
30713            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
30714            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
30715            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
30716            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
30717                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
30718            }
30719            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
30720                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
30721            }
30722            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
30723                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
30724            }
30725            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
30726                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
30727            }
30728            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
30729            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
30730            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
30731            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
30732            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
30733            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
30734            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
30735            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
30736            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
30737            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
30738            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
30739            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
30740            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
30741            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
30742            SyntaxKind::CREATE_ACCESS_METHOD => {
30743                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
30744            }
30745            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
30746            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
30747            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
30748            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
30749            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
30750            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
30751            SyntaxKind::CREATE_EVENT_TRIGGER => {
30752                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
30753            }
30754            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
30755            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
30756                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
30757            }
30758            SyntaxKind::CREATE_FOREIGN_TABLE => {
30759                Stmt::CreateForeignTable(CreateForeignTable { syntax })
30760            }
30761            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
30762            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
30763            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
30764            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
30765            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
30766                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
30767            }
30768            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
30769            SyntaxKind::CREATE_OPERATOR_CLASS => {
30770                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
30771            }
30772            SyntaxKind::CREATE_OPERATOR_FAMILY => {
30773                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
30774            }
30775            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
30776            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
30777            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
30778            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
30779            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
30780            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
30781            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
30782            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
30783            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
30784            SyntaxKind::CREATE_SUBSCRIPTION => {
30785                Stmt::CreateSubscription(CreateSubscription { syntax })
30786            }
30787            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
30788            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
30789            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
30790            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
30791                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
30792            }
30793            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
30794                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
30795            }
30796            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
30797                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
30798            }
30799            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
30800                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
30801            }
30802            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
30803            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
30804            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
30805            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
30806            SyntaxKind::CREATE_USER_MAPPING => {
30807                Stmt::CreateUserMapping(CreateUserMapping { syntax })
30808            }
30809            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
30810            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
30811            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
30812            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
30813            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
30814            SyntaxKind::DO => Stmt::Do(Do { syntax }),
30815            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
30816            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
30817            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
30818            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
30819            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
30820            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
30821            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
30822            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
30823            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
30824            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
30825                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
30826            }
30827            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
30828            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
30829            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
30830            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
30831            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
30832            SyntaxKind::DROP_MATERIALIZED_VIEW => {
30833                Stmt::DropMaterializedView(DropMaterializedView { syntax })
30834            }
30835            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
30836            SyntaxKind::DROP_OPERATOR_CLASS => {
30837                Stmt::DropOperatorClass(DropOperatorClass { syntax })
30838            }
30839            SyntaxKind::DROP_OPERATOR_FAMILY => {
30840                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
30841            }
30842            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
30843            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
30844            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
30845            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
30846            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
30847            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
30848            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
30849            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
30850            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
30851            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
30852            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
30853            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
30854            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
30855            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
30856            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
30857                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
30858            }
30859            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
30860                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
30861            }
30862            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
30863                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
30864            }
30865            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
30866                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
30867            }
30868            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
30869            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
30870            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
30871            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
30872            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
30873            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
30874            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
30875            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
30876            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
30877            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
30878            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
30879                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
30880            }
30881            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
30882            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
30883            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
30884            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
30885            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
30886            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
30887            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
30888            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
30889            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
30890            SyntaxKind::PREPARE_TRANSACTION => {
30891                Stmt::PrepareTransaction(PrepareTransaction { syntax })
30892            }
30893            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
30894            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
30895            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
30896            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
30897            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
30898            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
30899            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
30900            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
30901            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
30902            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
30903            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
30904            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
30905            SyntaxKind::SET => Stmt::Set(Set { syntax }),
30906            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
30907            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
30908            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
30909            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
30910            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
30911            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
30912            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
30913            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
30914            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
30915            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
30916            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
30917            _ => {
30918                return None;
30919            }
30920        };
30921        Some(res)
30922    }
30923    #[inline]
30924    fn syntax(&self) -> &SyntaxNode {
30925        match self {
30926            Stmt::AlterAggregate(it) => &it.syntax,
30927            Stmt::AlterCollation(it) => &it.syntax,
30928            Stmt::AlterConversion(it) => &it.syntax,
30929            Stmt::AlterDatabase(it) => &it.syntax,
30930            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
30931            Stmt::AlterDomain(it) => &it.syntax,
30932            Stmt::AlterEventTrigger(it) => &it.syntax,
30933            Stmt::AlterExtension(it) => &it.syntax,
30934            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
30935            Stmt::AlterForeignTable(it) => &it.syntax,
30936            Stmt::AlterFunction(it) => &it.syntax,
30937            Stmt::AlterGroup(it) => &it.syntax,
30938            Stmt::AlterIndex(it) => &it.syntax,
30939            Stmt::AlterLanguage(it) => &it.syntax,
30940            Stmt::AlterLargeObject(it) => &it.syntax,
30941            Stmt::AlterMaterializedView(it) => &it.syntax,
30942            Stmt::AlterOperator(it) => &it.syntax,
30943            Stmt::AlterOperatorClass(it) => &it.syntax,
30944            Stmt::AlterOperatorFamily(it) => &it.syntax,
30945            Stmt::AlterPolicy(it) => &it.syntax,
30946            Stmt::AlterProcedure(it) => &it.syntax,
30947            Stmt::AlterPublication(it) => &it.syntax,
30948            Stmt::AlterRole(it) => &it.syntax,
30949            Stmt::AlterRoutine(it) => &it.syntax,
30950            Stmt::AlterRule(it) => &it.syntax,
30951            Stmt::AlterSchema(it) => &it.syntax,
30952            Stmt::AlterSequence(it) => &it.syntax,
30953            Stmt::AlterServer(it) => &it.syntax,
30954            Stmt::AlterStatistics(it) => &it.syntax,
30955            Stmt::AlterSubscription(it) => &it.syntax,
30956            Stmt::AlterSystem(it) => &it.syntax,
30957            Stmt::AlterTable(it) => &it.syntax,
30958            Stmt::AlterTablespace(it) => &it.syntax,
30959            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
30960            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
30961            Stmt::AlterTextSearchParser(it) => &it.syntax,
30962            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
30963            Stmt::AlterTrigger(it) => &it.syntax,
30964            Stmt::AlterType(it) => &it.syntax,
30965            Stmt::AlterUser(it) => &it.syntax,
30966            Stmt::AlterUserMapping(it) => &it.syntax,
30967            Stmt::AlterView(it) => &it.syntax,
30968            Stmt::Analyze(it) => &it.syntax,
30969            Stmt::Begin(it) => &it.syntax,
30970            Stmt::Call(it) => &it.syntax,
30971            Stmt::Checkpoint(it) => &it.syntax,
30972            Stmt::Close(it) => &it.syntax,
30973            Stmt::Cluster(it) => &it.syntax,
30974            Stmt::CommentOn(it) => &it.syntax,
30975            Stmt::Commit(it) => &it.syntax,
30976            Stmt::Copy(it) => &it.syntax,
30977            Stmt::CreateAccessMethod(it) => &it.syntax,
30978            Stmt::CreateAggregate(it) => &it.syntax,
30979            Stmt::CreateCast(it) => &it.syntax,
30980            Stmt::CreateCollation(it) => &it.syntax,
30981            Stmt::CreateConversion(it) => &it.syntax,
30982            Stmt::CreateDatabase(it) => &it.syntax,
30983            Stmt::CreateDomain(it) => &it.syntax,
30984            Stmt::CreateEventTrigger(it) => &it.syntax,
30985            Stmt::CreateExtension(it) => &it.syntax,
30986            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
30987            Stmt::CreateForeignTable(it) => &it.syntax,
30988            Stmt::CreateFunction(it) => &it.syntax,
30989            Stmt::CreateGroup(it) => &it.syntax,
30990            Stmt::CreateIndex(it) => &it.syntax,
30991            Stmt::CreateLanguage(it) => &it.syntax,
30992            Stmt::CreateMaterializedView(it) => &it.syntax,
30993            Stmt::CreateOperator(it) => &it.syntax,
30994            Stmt::CreateOperatorClass(it) => &it.syntax,
30995            Stmt::CreateOperatorFamily(it) => &it.syntax,
30996            Stmt::CreatePolicy(it) => &it.syntax,
30997            Stmt::CreateProcedure(it) => &it.syntax,
30998            Stmt::CreatePublication(it) => &it.syntax,
30999            Stmt::CreateRole(it) => &it.syntax,
31000            Stmt::CreateRule(it) => &it.syntax,
31001            Stmt::CreateSchema(it) => &it.syntax,
31002            Stmt::CreateSequence(it) => &it.syntax,
31003            Stmt::CreateServer(it) => &it.syntax,
31004            Stmt::CreateStatistics(it) => &it.syntax,
31005            Stmt::CreateSubscription(it) => &it.syntax,
31006            Stmt::CreateTable(it) => &it.syntax,
31007            Stmt::CreateTableAs(it) => &it.syntax,
31008            Stmt::CreateTablespace(it) => &it.syntax,
31009            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31010            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31011            Stmt::CreateTextSearchParser(it) => &it.syntax,
31012            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31013            Stmt::CreateTransform(it) => &it.syntax,
31014            Stmt::CreateTrigger(it) => &it.syntax,
31015            Stmt::CreateType(it) => &it.syntax,
31016            Stmt::CreateUser(it) => &it.syntax,
31017            Stmt::CreateUserMapping(it) => &it.syntax,
31018            Stmt::CreateView(it) => &it.syntax,
31019            Stmt::Deallocate(it) => &it.syntax,
31020            Stmt::Declare(it) => &it.syntax,
31021            Stmt::Delete(it) => &it.syntax,
31022            Stmt::Discard(it) => &it.syntax,
31023            Stmt::Do(it) => &it.syntax,
31024            Stmt::DropAccessMethod(it) => &it.syntax,
31025            Stmt::DropAggregate(it) => &it.syntax,
31026            Stmt::DropCast(it) => &it.syntax,
31027            Stmt::DropCollation(it) => &it.syntax,
31028            Stmt::DropConversion(it) => &it.syntax,
31029            Stmt::DropDatabase(it) => &it.syntax,
31030            Stmt::DropDomain(it) => &it.syntax,
31031            Stmt::DropEventTrigger(it) => &it.syntax,
31032            Stmt::DropExtension(it) => &it.syntax,
31033            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31034            Stmt::DropForeignTable(it) => &it.syntax,
31035            Stmt::DropFunction(it) => &it.syntax,
31036            Stmt::DropGroup(it) => &it.syntax,
31037            Stmt::DropIndex(it) => &it.syntax,
31038            Stmt::DropLanguage(it) => &it.syntax,
31039            Stmt::DropMaterializedView(it) => &it.syntax,
31040            Stmt::DropOperator(it) => &it.syntax,
31041            Stmt::DropOperatorClass(it) => &it.syntax,
31042            Stmt::DropOperatorFamily(it) => &it.syntax,
31043            Stmt::DropOwned(it) => &it.syntax,
31044            Stmt::DropPolicy(it) => &it.syntax,
31045            Stmt::DropProcedure(it) => &it.syntax,
31046            Stmt::DropPublication(it) => &it.syntax,
31047            Stmt::DropRole(it) => &it.syntax,
31048            Stmt::DropRoutine(it) => &it.syntax,
31049            Stmt::DropRule(it) => &it.syntax,
31050            Stmt::DropSchema(it) => &it.syntax,
31051            Stmt::DropSequence(it) => &it.syntax,
31052            Stmt::DropServer(it) => &it.syntax,
31053            Stmt::DropStatistics(it) => &it.syntax,
31054            Stmt::DropSubscription(it) => &it.syntax,
31055            Stmt::DropTable(it) => &it.syntax,
31056            Stmt::DropTablespace(it) => &it.syntax,
31057            Stmt::DropTextSearchConfig(it) => &it.syntax,
31058            Stmt::DropTextSearchDict(it) => &it.syntax,
31059            Stmt::DropTextSearchParser(it) => &it.syntax,
31060            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31061            Stmt::DropTransform(it) => &it.syntax,
31062            Stmt::DropTrigger(it) => &it.syntax,
31063            Stmt::DropType(it) => &it.syntax,
31064            Stmt::DropUser(it) => &it.syntax,
31065            Stmt::DropUserMapping(it) => &it.syntax,
31066            Stmt::DropView(it) => &it.syntax,
31067            Stmt::Execute(it) => &it.syntax,
31068            Stmt::Explain(it) => &it.syntax,
31069            Stmt::Fetch(it) => &it.syntax,
31070            Stmt::Grant(it) => &it.syntax,
31071            Stmt::ImportForeignSchema(it) => &it.syntax,
31072            Stmt::Insert(it) => &it.syntax,
31073            Stmt::Listen(it) => &it.syntax,
31074            Stmt::Load(it) => &it.syntax,
31075            Stmt::Lock(it) => &it.syntax,
31076            Stmt::Merge(it) => &it.syntax,
31077            Stmt::Move(it) => &it.syntax,
31078            Stmt::Notify(it) => &it.syntax,
31079            Stmt::ParenSelect(it) => &it.syntax,
31080            Stmt::Prepare(it) => &it.syntax,
31081            Stmt::PrepareTransaction(it) => &it.syntax,
31082            Stmt::Reassign(it) => &it.syntax,
31083            Stmt::Refresh(it) => &it.syntax,
31084            Stmt::Reindex(it) => &it.syntax,
31085            Stmt::ReleaseSavepoint(it) => &it.syntax,
31086            Stmt::Reset(it) => &it.syntax,
31087            Stmt::ResetSessionAuth(it) => &it.syntax,
31088            Stmt::Revoke(it) => &it.syntax,
31089            Stmt::Rollback(it) => &it.syntax,
31090            Stmt::Savepoint(it) => &it.syntax,
31091            Stmt::SecurityLabel(it) => &it.syntax,
31092            Stmt::Select(it) => &it.syntax,
31093            Stmt::SelectInto(it) => &it.syntax,
31094            Stmt::Set(it) => &it.syntax,
31095            Stmt::SetConstraints(it) => &it.syntax,
31096            Stmt::SetRole(it) => &it.syntax,
31097            Stmt::SetSessionAuth(it) => &it.syntax,
31098            Stmt::SetTransaction(it) => &it.syntax,
31099            Stmt::Show(it) => &it.syntax,
31100            Stmt::Table(it) => &it.syntax,
31101            Stmt::Truncate(it) => &it.syntax,
31102            Stmt::Unlisten(it) => &it.syntax,
31103            Stmt::Update(it) => &it.syntax,
31104            Stmt::Vacuum(it) => &it.syntax,
31105            Stmt::Values(it) => &it.syntax,
31106        }
31107    }
31108}
31109impl From<AlterAggregate> for Stmt {
31110    #[inline]
31111    fn from(node: AlterAggregate) -> Stmt {
31112        Stmt::AlterAggregate(node)
31113    }
31114}
31115impl From<AlterCollation> for Stmt {
31116    #[inline]
31117    fn from(node: AlterCollation) -> Stmt {
31118        Stmt::AlterCollation(node)
31119    }
31120}
31121impl From<AlterConversion> for Stmt {
31122    #[inline]
31123    fn from(node: AlterConversion) -> Stmt {
31124        Stmt::AlterConversion(node)
31125    }
31126}
31127impl From<AlterDatabase> for Stmt {
31128    #[inline]
31129    fn from(node: AlterDatabase) -> Stmt {
31130        Stmt::AlterDatabase(node)
31131    }
31132}
31133impl From<AlterDefaultPrivileges> for Stmt {
31134    #[inline]
31135    fn from(node: AlterDefaultPrivileges) -> Stmt {
31136        Stmt::AlterDefaultPrivileges(node)
31137    }
31138}
31139impl From<AlterDomain> for Stmt {
31140    #[inline]
31141    fn from(node: AlterDomain) -> Stmt {
31142        Stmt::AlterDomain(node)
31143    }
31144}
31145impl From<AlterEventTrigger> for Stmt {
31146    #[inline]
31147    fn from(node: AlterEventTrigger) -> Stmt {
31148        Stmt::AlterEventTrigger(node)
31149    }
31150}
31151impl From<AlterExtension> for Stmt {
31152    #[inline]
31153    fn from(node: AlterExtension) -> Stmt {
31154        Stmt::AlterExtension(node)
31155    }
31156}
31157impl From<AlterForeignDataWrapper> for Stmt {
31158    #[inline]
31159    fn from(node: AlterForeignDataWrapper) -> Stmt {
31160        Stmt::AlterForeignDataWrapper(node)
31161    }
31162}
31163impl From<AlterForeignTable> for Stmt {
31164    #[inline]
31165    fn from(node: AlterForeignTable) -> Stmt {
31166        Stmt::AlterForeignTable(node)
31167    }
31168}
31169impl From<AlterFunction> for Stmt {
31170    #[inline]
31171    fn from(node: AlterFunction) -> Stmt {
31172        Stmt::AlterFunction(node)
31173    }
31174}
31175impl From<AlterGroup> for Stmt {
31176    #[inline]
31177    fn from(node: AlterGroup) -> Stmt {
31178        Stmt::AlterGroup(node)
31179    }
31180}
31181impl From<AlterIndex> for Stmt {
31182    #[inline]
31183    fn from(node: AlterIndex) -> Stmt {
31184        Stmt::AlterIndex(node)
31185    }
31186}
31187impl From<AlterLanguage> for Stmt {
31188    #[inline]
31189    fn from(node: AlterLanguage) -> Stmt {
31190        Stmt::AlterLanguage(node)
31191    }
31192}
31193impl From<AlterLargeObject> for Stmt {
31194    #[inline]
31195    fn from(node: AlterLargeObject) -> Stmt {
31196        Stmt::AlterLargeObject(node)
31197    }
31198}
31199impl From<AlterMaterializedView> for Stmt {
31200    #[inline]
31201    fn from(node: AlterMaterializedView) -> Stmt {
31202        Stmt::AlterMaterializedView(node)
31203    }
31204}
31205impl From<AlterOperator> for Stmt {
31206    #[inline]
31207    fn from(node: AlterOperator) -> Stmt {
31208        Stmt::AlterOperator(node)
31209    }
31210}
31211impl From<AlterOperatorClass> for Stmt {
31212    #[inline]
31213    fn from(node: AlterOperatorClass) -> Stmt {
31214        Stmt::AlterOperatorClass(node)
31215    }
31216}
31217impl From<AlterOperatorFamily> for Stmt {
31218    #[inline]
31219    fn from(node: AlterOperatorFamily) -> Stmt {
31220        Stmt::AlterOperatorFamily(node)
31221    }
31222}
31223impl From<AlterPolicy> for Stmt {
31224    #[inline]
31225    fn from(node: AlterPolicy) -> Stmt {
31226        Stmt::AlterPolicy(node)
31227    }
31228}
31229impl From<AlterProcedure> for Stmt {
31230    #[inline]
31231    fn from(node: AlterProcedure) -> Stmt {
31232        Stmt::AlterProcedure(node)
31233    }
31234}
31235impl From<AlterPublication> for Stmt {
31236    #[inline]
31237    fn from(node: AlterPublication) -> Stmt {
31238        Stmt::AlterPublication(node)
31239    }
31240}
31241impl From<AlterRole> for Stmt {
31242    #[inline]
31243    fn from(node: AlterRole) -> Stmt {
31244        Stmt::AlterRole(node)
31245    }
31246}
31247impl From<AlterRoutine> for Stmt {
31248    #[inline]
31249    fn from(node: AlterRoutine) -> Stmt {
31250        Stmt::AlterRoutine(node)
31251    }
31252}
31253impl From<AlterRule> for Stmt {
31254    #[inline]
31255    fn from(node: AlterRule) -> Stmt {
31256        Stmt::AlterRule(node)
31257    }
31258}
31259impl From<AlterSchema> for Stmt {
31260    #[inline]
31261    fn from(node: AlterSchema) -> Stmt {
31262        Stmt::AlterSchema(node)
31263    }
31264}
31265impl From<AlterSequence> for Stmt {
31266    #[inline]
31267    fn from(node: AlterSequence) -> Stmt {
31268        Stmt::AlterSequence(node)
31269    }
31270}
31271impl From<AlterServer> for Stmt {
31272    #[inline]
31273    fn from(node: AlterServer) -> Stmt {
31274        Stmt::AlterServer(node)
31275    }
31276}
31277impl From<AlterStatistics> for Stmt {
31278    #[inline]
31279    fn from(node: AlterStatistics) -> Stmt {
31280        Stmt::AlterStatistics(node)
31281    }
31282}
31283impl From<AlterSubscription> for Stmt {
31284    #[inline]
31285    fn from(node: AlterSubscription) -> Stmt {
31286        Stmt::AlterSubscription(node)
31287    }
31288}
31289impl From<AlterSystem> for Stmt {
31290    #[inline]
31291    fn from(node: AlterSystem) -> Stmt {
31292        Stmt::AlterSystem(node)
31293    }
31294}
31295impl From<AlterTable> for Stmt {
31296    #[inline]
31297    fn from(node: AlterTable) -> Stmt {
31298        Stmt::AlterTable(node)
31299    }
31300}
31301impl From<AlterTablespace> for Stmt {
31302    #[inline]
31303    fn from(node: AlterTablespace) -> Stmt {
31304        Stmt::AlterTablespace(node)
31305    }
31306}
31307impl From<AlterTextSearchConfiguration> for Stmt {
31308    #[inline]
31309    fn from(node: AlterTextSearchConfiguration) -> Stmt {
31310        Stmt::AlterTextSearchConfiguration(node)
31311    }
31312}
31313impl From<AlterTextSearchDictionary> for Stmt {
31314    #[inline]
31315    fn from(node: AlterTextSearchDictionary) -> Stmt {
31316        Stmt::AlterTextSearchDictionary(node)
31317    }
31318}
31319impl From<AlterTextSearchParser> for Stmt {
31320    #[inline]
31321    fn from(node: AlterTextSearchParser) -> Stmt {
31322        Stmt::AlterTextSearchParser(node)
31323    }
31324}
31325impl From<AlterTextSearchTemplate> for Stmt {
31326    #[inline]
31327    fn from(node: AlterTextSearchTemplate) -> Stmt {
31328        Stmt::AlterTextSearchTemplate(node)
31329    }
31330}
31331impl From<AlterTrigger> for Stmt {
31332    #[inline]
31333    fn from(node: AlterTrigger) -> Stmt {
31334        Stmt::AlterTrigger(node)
31335    }
31336}
31337impl From<AlterType> for Stmt {
31338    #[inline]
31339    fn from(node: AlterType) -> Stmt {
31340        Stmt::AlterType(node)
31341    }
31342}
31343impl From<AlterUser> for Stmt {
31344    #[inline]
31345    fn from(node: AlterUser) -> Stmt {
31346        Stmt::AlterUser(node)
31347    }
31348}
31349impl From<AlterUserMapping> for Stmt {
31350    #[inline]
31351    fn from(node: AlterUserMapping) -> Stmt {
31352        Stmt::AlterUserMapping(node)
31353    }
31354}
31355impl From<AlterView> for Stmt {
31356    #[inline]
31357    fn from(node: AlterView) -> Stmt {
31358        Stmt::AlterView(node)
31359    }
31360}
31361impl From<Analyze> for Stmt {
31362    #[inline]
31363    fn from(node: Analyze) -> Stmt {
31364        Stmt::Analyze(node)
31365    }
31366}
31367impl From<Begin> for Stmt {
31368    #[inline]
31369    fn from(node: Begin) -> Stmt {
31370        Stmt::Begin(node)
31371    }
31372}
31373impl From<Call> for Stmt {
31374    #[inline]
31375    fn from(node: Call) -> Stmt {
31376        Stmt::Call(node)
31377    }
31378}
31379impl From<Checkpoint> for Stmt {
31380    #[inline]
31381    fn from(node: Checkpoint) -> Stmt {
31382        Stmt::Checkpoint(node)
31383    }
31384}
31385impl From<Close> for Stmt {
31386    #[inline]
31387    fn from(node: Close) -> Stmt {
31388        Stmt::Close(node)
31389    }
31390}
31391impl From<Cluster> for Stmt {
31392    #[inline]
31393    fn from(node: Cluster) -> Stmt {
31394        Stmt::Cluster(node)
31395    }
31396}
31397impl From<CommentOn> for Stmt {
31398    #[inline]
31399    fn from(node: CommentOn) -> Stmt {
31400        Stmt::CommentOn(node)
31401    }
31402}
31403impl From<Commit> for Stmt {
31404    #[inline]
31405    fn from(node: Commit) -> Stmt {
31406        Stmt::Commit(node)
31407    }
31408}
31409impl From<Copy> for Stmt {
31410    #[inline]
31411    fn from(node: Copy) -> Stmt {
31412        Stmt::Copy(node)
31413    }
31414}
31415impl From<CreateAccessMethod> for Stmt {
31416    #[inline]
31417    fn from(node: CreateAccessMethod) -> Stmt {
31418        Stmt::CreateAccessMethod(node)
31419    }
31420}
31421impl From<CreateAggregate> for Stmt {
31422    #[inline]
31423    fn from(node: CreateAggregate) -> Stmt {
31424        Stmt::CreateAggregate(node)
31425    }
31426}
31427impl From<CreateCast> for Stmt {
31428    #[inline]
31429    fn from(node: CreateCast) -> Stmt {
31430        Stmt::CreateCast(node)
31431    }
31432}
31433impl From<CreateCollation> for Stmt {
31434    #[inline]
31435    fn from(node: CreateCollation) -> Stmt {
31436        Stmt::CreateCollation(node)
31437    }
31438}
31439impl From<CreateConversion> for Stmt {
31440    #[inline]
31441    fn from(node: CreateConversion) -> Stmt {
31442        Stmt::CreateConversion(node)
31443    }
31444}
31445impl From<CreateDatabase> for Stmt {
31446    #[inline]
31447    fn from(node: CreateDatabase) -> Stmt {
31448        Stmt::CreateDatabase(node)
31449    }
31450}
31451impl From<CreateDomain> for Stmt {
31452    #[inline]
31453    fn from(node: CreateDomain) -> Stmt {
31454        Stmt::CreateDomain(node)
31455    }
31456}
31457impl From<CreateEventTrigger> for Stmt {
31458    #[inline]
31459    fn from(node: CreateEventTrigger) -> Stmt {
31460        Stmt::CreateEventTrigger(node)
31461    }
31462}
31463impl From<CreateExtension> for Stmt {
31464    #[inline]
31465    fn from(node: CreateExtension) -> Stmt {
31466        Stmt::CreateExtension(node)
31467    }
31468}
31469impl From<CreateForeignDataWrapper> for Stmt {
31470    #[inline]
31471    fn from(node: CreateForeignDataWrapper) -> Stmt {
31472        Stmt::CreateForeignDataWrapper(node)
31473    }
31474}
31475impl From<CreateForeignTable> for Stmt {
31476    #[inline]
31477    fn from(node: CreateForeignTable) -> Stmt {
31478        Stmt::CreateForeignTable(node)
31479    }
31480}
31481impl From<CreateFunction> for Stmt {
31482    #[inline]
31483    fn from(node: CreateFunction) -> Stmt {
31484        Stmt::CreateFunction(node)
31485    }
31486}
31487impl From<CreateGroup> for Stmt {
31488    #[inline]
31489    fn from(node: CreateGroup) -> Stmt {
31490        Stmt::CreateGroup(node)
31491    }
31492}
31493impl From<CreateIndex> for Stmt {
31494    #[inline]
31495    fn from(node: CreateIndex) -> Stmt {
31496        Stmt::CreateIndex(node)
31497    }
31498}
31499impl From<CreateLanguage> for Stmt {
31500    #[inline]
31501    fn from(node: CreateLanguage) -> Stmt {
31502        Stmt::CreateLanguage(node)
31503    }
31504}
31505impl From<CreateMaterializedView> for Stmt {
31506    #[inline]
31507    fn from(node: CreateMaterializedView) -> Stmt {
31508        Stmt::CreateMaterializedView(node)
31509    }
31510}
31511impl From<CreateOperator> for Stmt {
31512    #[inline]
31513    fn from(node: CreateOperator) -> Stmt {
31514        Stmt::CreateOperator(node)
31515    }
31516}
31517impl From<CreateOperatorClass> for Stmt {
31518    #[inline]
31519    fn from(node: CreateOperatorClass) -> Stmt {
31520        Stmt::CreateOperatorClass(node)
31521    }
31522}
31523impl From<CreateOperatorFamily> for Stmt {
31524    #[inline]
31525    fn from(node: CreateOperatorFamily) -> Stmt {
31526        Stmt::CreateOperatorFamily(node)
31527    }
31528}
31529impl From<CreatePolicy> for Stmt {
31530    #[inline]
31531    fn from(node: CreatePolicy) -> Stmt {
31532        Stmt::CreatePolicy(node)
31533    }
31534}
31535impl From<CreateProcedure> for Stmt {
31536    #[inline]
31537    fn from(node: CreateProcedure) -> Stmt {
31538        Stmt::CreateProcedure(node)
31539    }
31540}
31541impl From<CreatePublication> for Stmt {
31542    #[inline]
31543    fn from(node: CreatePublication) -> Stmt {
31544        Stmt::CreatePublication(node)
31545    }
31546}
31547impl From<CreateRole> for Stmt {
31548    #[inline]
31549    fn from(node: CreateRole) -> Stmt {
31550        Stmt::CreateRole(node)
31551    }
31552}
31553impl From<CreateRule> for Stmt {
31554    #[inline]
31555    fn from(node: CreateRule) -> Stmt {
31556        Stmt::CreateRule(node)
31557    }
31558}
31559impl From<CreateSchema> for Stmt {
31560    #[inline]
31561    fn from(node: CreateSchema) -> Stmt {
31562        Stmt::CreateSchema(node)
31563    }
31564}
31565impl From<CreateSequence> for Stmt {
31566    #[inline]
31567    fn from(node: CreateSequence) -> Stmt {
31568        Stmt::CreateSequence(node)
31569    }
31570}
31571impl From<CreateServer> for Stmt {
31572    #[inline]
31573    fn from(node: CreateServer) -> Stmt {
31574        Stmt::CreateServer(node)
31575    }
31576}
31577impl From<CreateStatistics> for Stmt {
31578    #[inline]
31579    fn from(node: CreateStatistics) -> Stmt {
31580        Stmt::CreateStatistics(node)
31581    }
31582}
31583impl From<CreateSubscription> for Stmt {
31584    #[inline]
31585    fn from(node: CreateSubscription) -> Stmt {
31586        Stmt::CreateSubscription(node)
31587    }
31588}
31589impl From<CreateTable> for Stmt {
31590    #[inline]
31591    fn from(node: CreateTable) -> Stmt {
31592        Stmt::CreateTable(node)
31593    }
31594}
31595impl From<CreateTableAs> for Stmt {
31596    #[inline]
31597    fn from(node: CreateTableAs) -> Stmt {
31598        Stmt::CreateTableAs(node)
31599    }
31600}
31601impl From<CreateTablespace> for Stmt {
31602    #[inline]
31603    fn from(node: CreateTablespace) -> Stmt {
31604        Stmt::CreateTablespace(node)
31605    }
31606}
31607impl From<CreateTextSearchConfiguration> for Stmt {
31608    #[inline]
31609    fn from(node: CreateTextSearchConfiguration) -> Stmt {
31610        Stmt::CreateTextSearchConfiguration(node)
31611    }
31612}
31613impl From<CreateTextSearchDictionary> for Stmt {
31614    #[inline]
31615    fn from(node: CreateTextSearchDictionary) -> Stmt {
31616        Stmt::CreateTextSearchDictionary(node)
31617    }
31618}
31619impl From<CreateTextSearchParser> for Stmt {
31620    #[inline]
31621    fn from(node: CreateTextSearchParser) -> Stmt {
31622        Stmt::CreateTextSearchParser(node)
31623    }
31624}
31625impl From<CreateTextSearchTemplate> for Stmt {
31626    #[inline]
31627    fn from(node: CreateTextSearchTemplate) -> Stmt {
31628        Stmt::CreateTextSearchTemplate(node)
31629    }
31630}
31631impl From<CreateTransform> for Stmt {
31632    #[inline]
31633    fn from(node: CreateTransform) -> Stmt {
31634        Stmt::CreateTransform(node)
31635    }
31636}
31637impl From<CreateTrigger> for Stmt {
31638    #[inline]
31639    fn from(node: CreateTrigger) -> Stmt {
31640        Stmt::CreateTrigger(node)
31641    }
31642}
31643impl From<CreateType> for Stmt {
31644    #[inline]
31645    fn from(node: CreateType) -> Stmt {
31646        Stmt::CreateType(node)
31647    }
31648}
31649impl From<CreateUser> for Stmt {
31650    #[inline]
31651    fn from(node: CreateUser) -> Stmt {
31652        Stmt::CreateUser(node)
31653    }
31654}
31655impl From<CreateUserMapping> for Stmt {
31656    #[inline]
31657    fn from(node: CreateUserMapping) -> Stmt {
31658        Stmt::CreateUserMapping(node)
31659    }
31660}
31661impl From<CreateView> for Stmt {
31662    #[inline]
31663    fn from(node: CreateView) -> Stmt {
31664        Stmt::CreateView(node)
31665    }
31666}
31667impl From<Deallocate> for Stmt {
31668    #[inline]
31669    fn from(node: Deallocate) -> Stmt {
31670        Stmt::Deallocate(node)
31671    }
31672}
31673impl From<Declare> for Stmt {
31674    #[inline]
31675    fn from(node: Declare) -> Stmt {
31676        Stmt::Declare(node)
31677    }
31678}
31679impl From<Delete> for Stmt {
31680    #[inline]
31681    fn from(node: Delete) -> Stmt {
31682        Stmt::Delete(node)
31683    }
31684}
31685impl From<Discard> for Stmt {
31686    #[inline]
31687    fn from(node: Discard) -> Stmt {
31688        Stmt::Discard(node)
31689    }
31690}
31691impl From<Do> for Stmt {
31692    #[inline]
31693    fn from(node: Do) -> Stmt {
31694        Stmt::Do(node)
31695    }
31696}
31697impl From<DropAccessMethod> for Stmt {
31698    #[inline]
31699    fn from(node: DropAccessMethod) -> Stmt {
31700        Stmt::DropAccessMethod(node)
31701    }
31702}
31703impl From<DropAggregate> for Stmt {
31704    #[inline]
31705    fn from(node: DropAggregate) -> Stmt {
31706        Stmt::DropAggregate(node)
31707    }
31708}
31709impl From<DropCast> for Stmt {
31710    #[inline]
31711    fn from(node: DropCast) -> Stmt {
31712        Stmt::DropCast(node)
31713    }
31714}
31715impl From<DropCollation> for Stmt {
31716    #[inline]
31717    fn from(node: DropCollation) -> Stmt {
31718        Stmt::DropCollation(node)
31719    }
31720}
31721impl From<DropConversion> for Stmt {
31722    #[inline]
31723    fn from(node: DropConversion) -> Stmt {
31724        Stmt::DropConversion(node)
31725    }
31726}
31727impl From<DropDatabase> for Stmt {
31728    #[inline]
31729    fn from(node: DropDatabase) -> Stmt {
31730        Stmt::DropDatabase(node)
31731    }
31732}
31733impl From<DropDomain> for Stmt {
31734    #[inline]
31735    fn from(node: DropDomain) -> Stmt {
31736        Stmt::DropDomain(node)
31737    }
31738}
31739impl From<DropEventTrigger> for Stmt {
31740    #[inline]
31741    fn from(node: DropEventTrigger) -> Stmt {
31742        Stmt::DropEventTrigger(node)
31743    }
31744}
31745impl From<DropExtension> for Stmt {
31746    #[inline]
31747    fn from(node: DropExtension) -> Stmt {
31748        Stmt::DropExtension(node)
31749    }
31750}
31751impl From<DropForeignDataWrapper> for Stmt {
31752    #[inline]
31753    fn from(node: DropForeignDataWrapper) -> Stmt {
31754        Stmt::DropForeignDataWrapper(node)
31755    }
31756}
31757impl From<DropForeignTable> for Stmt {
31758    #[inline]
31759    fn from(node: DropForeignTable) -> Stmt {
31760        Stmt::DropForeignTable(node)
31761    }
31762}
31763impl From<DropFunction> for Stmt {
31764    #[inline]
31765    fn from(node: DropFunction) -> Stmt {
31766        Stmt::DropFunction(node)
31767    }
31768}
31769impl From<DropGroup> for Stmt {
31770    #[inline]
31771    fn from(node: DropGroup) -> Stmt {
31772        Stmt::DropGroup(node)
31773    }
31774}
31775impl From<DropIndex> for Stmt {
31776    #[inline]
31777    fn from(node: DropIndex) -> Stmt {
31778        Stmt::DropIndex(node)
31779    }
31780}
31781impl From<DropLanguage> for Stmt {
31782    #[inline]
31783    fn from(node: DropLanguage) -> Stmt {
31784        Stmt::DropLanguage(node)
31785    }
31786}
31787impl From<DropMaterializedView> for Stmt {
31788    #[inline]
31789    fn from(node: DropMaterializedView) -> Stmt {
31790        Stmt::DropMaterializedView(node)
31791    }
31792}
31793impl From<DropOperator> for Stmt {
31794    #[inline]
31795    fn from(node: DropOperator) -> Stmt {
31796        Stmt::DropOperator(node)
31797    }
31798}
31799impl From<DropOperatorClass> for Stmt {
31800    #[inline]
31801    fn from(node: DropOperatorClass) -> Stmt {
31802        Stmt::DropOperatorClass(node)
31803    }
31804}
31805impl From<DropOperatorFamily> for Stmt {
31806    #[inline]
31807    fn from(node: DropOperatorFamily) -> Stmt {
31808        Stmt::DropOperatorFamily(node)
31809    }
31810}
31811impl From<DropOwned> for Stmt {
31812    #[inline]
31813    fn from(node: DropOwned) -> Stmt {
31814        Stmt::DropOwned(node)
31815    }
31816}
31817impl From<DropPolicy> for Stmt {
31818    #[inline]
31819    fn from(node: DropPolicy) -> Stmt {
31820        Stmt::DropPolicy(node)
31821    }
31822}
31823impl From<DropProcedure> for Stmt {
31824    #[inline]
31825    fn from(node: DropProcedure) -> Stmt {
31826        Stmt::DropProcedure(node)
31827    }
31828}
31829impl From<DropPublication> for Stmt {
31830    #[inline]
31831    fn from(node: DropPublication) -> Stmt {
31832        Stmt::DropPublication(node)
31833    }
31834}
31835impl From<DropRole> for Stmt {
31836    #[inline]
31837    fn from(node: DropRole) -> Stmt {
31838        Stmt::DropRole(node)
31839    }
31840}
31841impl From<DropRoutine> for Stmt {
31842    #[inline]
31843    fn from(node: DropRoutine) -> Stmt {
31844        Stmt::DropRoutine(node)
31845    }
31846}
31847impl From<DropRule> for Stmt {
31848    #[inline]
31849    fn from(node: DropRule) -> Stmt {
31850        Stmt::DropRule(node)
31851    }
31852}
31853impl From<DropSchema> for Stmt {
31854    #[inline]
31855    fn from(node: DropSchema) -> Stmt {
31856        Stmt::DropSchema(node)
31857    }
31858}
31859impl From<DropSequence> for Stmt {
31860    #[inline]
31861    fn from(node: DropSequence) -> Stmt {
31862        Stmt::DropSequence(node)
31863    }
31864}
31865impl From<DropServer> for Stmt {
31866    #[inline]
31867    fn from(node: DropServer) -> Stmt {
31868        Stmt::DropServer(node)
31869    }
31870}
31871impl From<DropStatistics> for Stmt {
31872    #[inline]
31873    fn from(node: DropStatistics) -> Stmt {
31874        Stmt::DropStatistics(node)
31875    }
31876}
31877impl From<DropSubscription> for Stmt {
31878    #[inline]
31879    fn from(node: DropSubscription) -> Stmt {
31880        Stmt::DropSubscription(node)
31881    }
31882}
31883impl From<DropTable> for Stmt {
31884    #[inline]
31885    fn from(node: DropTable) -> Stmt {
31886        Stmt::DropTable(node)
31887    }
31888}
31889impl From<DropTablespace> for Stmt {
31890    #[inline]
31891    fn from(node: DropTablespace) -> Stmt {
31892        Stmt::DropTablespace(node)
31893    }
31894}
31895impl From<DropTextSearchConfig> for Stmt {
31896    #[inline]
31897    fn from(node: DropTextSearchConfig) -> Stmt {
31898        Stmt::DropTextSearchConfig(node)
31899    }
31900}
31901impl From<DropTextSearchDict> for Stmt {
31902    #[inline]
31903    fn from(node: DropTextSearchDict) -> Stmt {
31904        Stmt::DropTextSearchDict(node)
31905    }
31906}
31907impl From<DropTextSearchParser> for Stmt {
31908    #[inline]
31909    fn from(node: DropTextSearchParser) -> Stmt {
31910        Stmt::DropTextSearchParser(node)
31911    }
31912}
31913impl From<DropTextSearchTemplate> for Stmt {
31914    #[inline]
31915    fn from(node: DropTextSearchTemplate) -> Stmt {
31916        Stmt::DropTextSearchTemplate(node)
31917    }
31918}
31919impl From<DropTransform> for Stmt {
31920    #[inline]
31921    fn from(node: DropTransform) -> Stmt {
31922        Stmt::DropTransform(node)
31923    }
31924}
31925impl From<DropTrigger> for Stmt {
31926    #[inline]
31927    fn from(node: DropTrigger) -> Stmt {
31928        Stmt::DropTrigger(node)
31929    }
31930}
31931impl From<DropType> for Stmt {
31932    #[inline]
31933    fn from(node: DropType) -> Stmt {
31934        Stmt::DropType(node)
31935    }
31936}
31937impl From<DropUser> for Stmt {
31938    #[inline]
31939    fn from(node: DropUser) -> Stmt {
31940        Stmt::DropUser(node)
31941    }
31942}
31943impl From<DropUserMapping> for Stmt {
31944    #[inline]
31945    fn from(node: DropUserMapping) -> Stmt {
31946        Stmt::DropUserMapping(node)
31947    }
31948}
31949impl From<DropView> for Stmt {
31950    #[inline]
31951    fn from(node: DropView) -> Stmt {
31952        Stmt::DropView(node)
31953    }
31954}
31955impl From<Execute> for Stmt {
31956    #[inline]
31957    fn from(node: Execute) -> Stmt {
31958        Stmt::Execute(node)
31959    }
31960}
31961impl From<Explain> for Stmt {
31962    #[inline]
31963    fn from(node: Explain) -> Stmt {
31964        Stmt::Explain(node)
31965    }
31966}
31967impl From<Fetch> for Stmt {
31968    #[inline]
31969    fn from(node: Fetch) -> Stmt {
31970        Stmt::Fetch(node)
31971    }
31972}
31973impl From<Grant> for Stmt {
31974    #[inline]
31975    fn from(node: Grant) -> Stmt {
31976        Stmt::Grant(node)
31977    }
31978}
31979impl From<ImportForeignSchema> for Stmt {
31980    #[inline]
31981    fn from(node: ImportForeignSchema) -> Stmt {
31982        Stmt::ImportForeignSchema(node)
31983    }
31984}
31985impl From<Insert> for Stmt {
31986    #[inline]
31987    fn from(node: Insert) -> Stmt {
31988        Stmt::Insert(node)
31989    }
31990}
31991impl From<Listen> for Stmt {
31992    #[inline]
31993    fn from(node: Listen) -> Stmt {
31994        Stmt::Listen(node)
31995    }
31996}
31997impl From<Load> for Stmt {
31998    #[inline]
31999    fn from(node: Load) -> Stmt {
32000        Stmt::Load(node)
32001    }
32002}
32003impl From<Lock> for Stmt {
32004    #[inline]
32005    fn from(node: Lock) -> Stmt {
32006        Stmt::Lock(node)
32007    }
32008}
32009impl From<Merge> for Stmt {
32010    #[inline]
32011    fn from(node: Merge) -> Stmt {
32012        Stmt::Merge(node)
32013    }
32014}
32015impl From<Move> for Stmt {
32016    #[inline]
32017    fn from(node: Move) -> Stmt {
32018        Stmt::Move(node)
32019    }
32020}
32021impl From<Notify> for Stmt {
32022    #[inline]
32023    fn from(node: Notify) -> Stmt {
32024        Stmt::Notify(node)
32025    }
32026}
32027impl From<ParenSelect> for Stmt {
32028    #[inline]
32029    fn from(node: ParenSelect) -> Stmt {
32030        Stmt::ParenSelect(node)
32031    }
32032}
32033impl From<Prepare> for Stmt {
32034    #[inline]
32035    fn from(node: Prepare) -> Stmt {
32036        Stmt::Prepare(node)
32037    }
32038}
32039impl From<PrepareTransaction> for Stmt {
32040    #[inline]
32041    fn from(node: PrepareTransaction) -> Stmt {
32042        Stmt::PrepareTransaction(node)
32043    }
32044}
32045impl From<Reassign> for Stmt {
32046    #[inline]
32047    fn from(node: Reassign) -> Stmt {
32048        Stmt::Reassign(node)
32049    }
32050}
32051impl From<Refresh> for Stmt {
32052    #[inline]
32053    fn from(node: Refresh) -> Stmt {
32054        Stmt::Refresh(node)
32055    }
32056}
32057impl From<Reindex> for Stmt {
32058    #[inline]
32059    fn from(node: Reindex) -> Stmt {
32060        Stmt::Reindex(node)
32061    }
32062}
32063impl From<ReleaseSavepoint> for Stmt {
32064    #[inline]
32065    fn from(node: ReleaseSavepoint) -> Stmt {
32066        Stmt::ReleaseSavepoint(node)
32067    }
32068}
32069impl From<Reset> for Stmt {
32070    #[inline]
32071    fn from(node: Reset) -> Stmt {
32072        Stmt::Reset(node)
32073    }
32074}
32075impl From<ResetSessionAuth> for Stmt {
32076    #[inline]
32077    fn from(node: ResetSessionAuth) -> Stmt {
32078        Stmt::ResetSessionAuth(node)
32079    }
32080}
32081impl From<Revoke> for Stmt {
32082    #[inline]
32083    fn from(node: Revoke) -> Stmt {
32084        Stmt::Revoke(node)
32085    }
32086}
32087impl From<Rollback> for Stmt {
32088    #[inline]
32089    fn from(node: Rollback) -> Stmt {
32090        Stmt::Rollback(node)
32091    }
32092}
32093impl From<Savepoint> for Stmt {
32094    #[inline]
32095    fn from(node: Savepoint) -> Stmt {
32096        Stmt::Savepoint(node)
32097    }
32098}
32099impl From<SecurityLabel> for Stmt {
32100    #[inline]
32101    fn from(node: SecurityLabel) -> Stmt {
32102        Stmt::SecurityLabel(node)
32103    }
32104}
32105impl From<Select> for Stmt {
32106    #[inline]
32107    fn from(node: Select) -> Stmt {
32108        Stmt::Select(node)
32109    }
32110}
32111impl From<SelectInto> for Stmt {
32112    #[inline]
32113    fn from(node: SelectInto) -> Stmt {
32114        Stmt::SelectInto(node)
32115    }
32116}
32117impl From<Set> for Stmt {
32118    #[inline]
32119    fn from(node: Set) -> Stmt {
32120        Stmt::Set(node)
32121    }
32122}
32123impl From<SetConstraints> for Stmt {
32124    #[inline]
32125    fn from(node: SetConstraints) -> Stmt {
32126        Stmt::SetConstraints(node)
32127    }
32128}
32129impl From<SetRole> for Stmt {
32130    #[inline]
32131    fn from(node: SetRole) -> Stmt {
32132        Stmt::SetRole(node)
32133    }
32134}
32135impl From<SetSessionAuth> for Stmt {
32136    #[inline]
32137    fn from(node: SetSessionAuth) -> Stmt {
32138        Stmt::SetSessionAuth(node)
32139    }
32140}
32141impl From<SetTransaction> for Stmt {
32142    #[inline]
32143    fn from(node: SetTransaction) -> Stmt {
32144        Stmt::SetTransaction(node)
32145    }
32146}
32147impl From<Show> for Stmt {
32148    #[inline]
32149    fn from(node: Show) -> Stmt {
32150        Stmt::Show(node)
32151    }
32152}
32153impl From<Table> for Stmt {
32154    #[inline]
32155    fn from(node: Table) -> Stmt {
32156        Stmt::Table(node)
32157    }
32158}
32159impl From<Truncate> for Stmt {
32160    #[inline]
32161    fn from(node: Truncate) -> Stmt {
32162        Stmt::Truncate(node)
32163    }
32164}
32165impl From<Unlisten> for Stmt {
32166    #[inline]
32167    fn from(node: Unlisten) -> Stmt {
32168        Stmt::Unlisten(node)
32169    }
32170}
32171impl From<Update> for Stmt {
32172    #[inline]
32173    fn from(node: Update) -> Stmt {
32174        Stmt::Update(node)
32175    }
32176}
32177impl From<Vacuum> for Stmt {
32178    #[inline]
32179    fn from(node: Vacuum) -> Stmt {
32180        Stmt::Vacuum(node)
32181    }
32182}
32183impl From<Values> for Stmt {
32184    #[inline]
32185    fn from(node: Values) -> Stmt {
32186        Stmt::Values(node)
32187    }
32188}
32189impl AstNode for TableArg {
32190    #[inline]
32191    fn can_cast(kind: SyntaxKind) -> bool {
32192        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
32193    }
32194    #[inline]
32195    fn cast(syntax: SyntaxNode) -> Option<Self> {
32196        let res = match syntax.kind() {
32197            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
32198            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
32199            _ => {
32200                if let Some(result) = TableConstraint::cast(syntax) {
32201                    return Some(TableArg::TableConstraint(result));
32202                }
32203                return None;
32204            }
32205        };
32206        Some(res)
32207    }
32208    #[inline]
32209    fn syntax(&self) -> &SyntaxNode {
32210        match self {
32211            TableArg::Column(it) => &it.syntax,
32212            TableArg::LikeClause(it) => &it.syntax,
32213            TableArg::TableConstraint(it) => it.syntax(),
32214        }
32215    }
32216}
32217impl From<Column> for TableArg {
32218    #[inline]
32219    fn from(node: Column) -> TableArg {
32220        TableArg::Column(node)
32221    }
32222}
32223impl From<LikeClause> for TableArg {
32224    #[inline]
32225    fn from(node: LikeClause) -> TableArg {
32226        TableArg::LikeClause(node)
32227    }
32228}
32229impl AstNode for TableConstraint {
32230    #[inline]
32231    fn can_cast(kind: SyntaxKind) -> bool {
32232        matches!(
32233            kind,
32234            SyntaxKind::CHECK_CONSTRAINT
32235                | SyntaxKind::EXCLUDE_CONSTRAINT
32236                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32237                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32238                | SyntaxKind::UNIQUE_CONSTRAINT
32239        )
32240    }
32241    #[inline]
32242    fn cast(syntax: SyntaxNode) -> Option<Self> {
32243        let res = match syntax.kind() {
32244            SyntaxKind::CHECK_CONSTRAINT => {
32245                TableConstraint::CheckConstraint(CheckConstraint { syntax })
32246            }
32247            SyntaxKind::EXCLUDE_CONSTRAINT => {
32248                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32249            }
32250            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32251                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32252            }
32253            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32254                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32255            }
32256            SyntaxKind::UNIQUE_CONSTRAINT => {
32257                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
32258            }
32259            _ => {
32260                return None;
32261            }
32262        };
32263        Some(res)
32264    }
32265    #[inline]
32266    fn syntax(&self) -> &SyntaxNode {
32267        match self {
32268            TableConstraint::CheckConstraint(it) => &it.syntax,
32269            TableConstraint::ExcludeConstraint(it) => &it.syntax,
32270            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
32271            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32272            TableConstraint::UniqueConstraint(it) => &it.syntax,
32273        }
32274    }
32275}
32276impl From<CheckConstraint> for TableConstraint {
32277    #[inline]
32278    fn from(node: CheckConstraint) -> TableConstraint {
32279        TableConstraint::CheckConstraint(node)
32280    }
32281}
32282impl From<ExcludeConstraint> for TableConstraint {
32283    #[inline]
32284    fn from(node: ExcludeConstraint) -> TableConstraint {
32285        TableConstraint::ExcludeConstraint(node)
32286    }
32287}
32288impl From<ForeignKeyConstraint> for TableConstraint {
32289    #[inline]
32290    fn from(node: ForeignKeyConstraint) -> TableConstraint {
32291        TableConstraint::ForeignKeyConstraint(node)
32292    }
32293}
32294impl From<PrimaryKeyConstraint> for TableConstraint {
32295    #[inline]
32296    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
32297        TableConstraint::PrimaryKeyConstraint(node)
32298    }
32299}
32300impl From<UniqueConstraint> for TableConstraint {
32301    #[inline]
32302    fn from(node: UniqueConstraint) -> TableConstraint {
32303        TableConstraint::UniqueConstraint(node)
32304    }
32305}
32306impl AstNode for Timezone {
32307    #[inline]
32308    fn can_cast(kind: SyntaxKind) -> bool {
32309        matches!(
32310            kind,
32311            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
32312        )
32313    }
32314    #[inline]
32315    fn cast(syntax: SyntaxNode) -> Option<Self> {
32316        let res = match syntax.kind() {
32317            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
32318            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
32319            _ => {
32320                return None;
32321            }
32322        };
32323        Some(res)
32324    }
32325    #[inline]
32326    fn syntax(&self) -> &SyntaxNode {
32327        match self {
32328            Timezone::WithTimezone(it) => &it.syntax,
32329            Timezone::WithoutTimezone(it) => &it.syntax,
32330        }
32331    }
32332}
32333impl From<WithTimezone> for Timezone {
32334    #[inline]
32335    fn from(node: WithTimezone) -> Timezone {
32336        Timezone::WithTimezone(node)
32337    }
32338}
32339impl From<WithoutTimezone> for Timezone {
32340    #[inline]
32341    fn from(node: WithoutTimezone) -> Timezone {
32342        Timezone::WithoutTimezone(node)
32343    }
32344}
32345impl AstNode for TransactionMode {
32346    #[inline]
32347    fn can_cast(kind: SyntaxKind) -> bool {
32348        matches!(
32349            kind,
32350            SyntaxKind::DEFERRABLE
32351                | SyntaxKind::NOT_DEFERRABLE
32352                | SyntaxKind::READ_COMMITTED
32353                | SyntaxKind::READ_ONLY
32354                | SyntaxKind::READ_UNCOMMITTED
32355                | SyntaxKind::READ_WRITE
32356                | SyntaxKind::REPEATABLE_READ
32357                | SyntaxKind::SERIALIZABLE
32358        )
32359    }
32360    #[inline]
32361    fn cast(syntax: SyntaxNode) -> Option<Self> {
32362        let res = match syntax.kind() {
32363            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
32364            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
32365            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
32366            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
32367            SyntaxKind::READ_UNCOMMITTED => {
32368                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
32369            }
32370            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
32371            SyntaxKind::REPEATABLE_READ => {
32372                TransactionMode::RepeatableRead(RepeatableRead { syntax })
32373            }
32374            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
32375            _ => {
32376                return None;
32377            }
32378        };
32379        Some(res)
32380    }
32381    #[inline]
32382    fn syntax(&self) -> &SyntaxNode {
32383        match self {
32384            TransactionMode::Deferrable(it) => &it.syntax,
32385            TransactionMode::NotDeferrable(it) => &it.syntax,
32386            TransactionMode::ReadCommitted(it) => &it.syntax,
32387            TransactionMode::ReadOnly(it) => &it.syntax,
32388            TransactionMode::ReadUncommitted(it) => &it.syntax,
32389            TransactionMode::ReadWrite(it) => &it.syntax,
32390            TransactionMode::RepeatableRead(it) => &it.syntax,
32391            TransactionMode::Serializable(it) => &it.syntax,
32392        }
32393    }
32394}
32395impl From<Deferrable> for TransactionMode {
32396    #[inline]
32397    fn from(node: Deferrable) -> TransactionMode {
32398        TransactionMode::Deferrable(node)
32399    }
32400}
32401impl From<NotDeferrable> for TransactionMode {
32402    #[inline]
32403    fn from(node: NotDeferrable) -> TransactionMode {
32404        TransactionMode::NotDeferrable(node)
32405    }
32406}
32407impl From<ReadCommitted> for TransactionMode {
32408    #[inline]
32409    fn from(node: ReadCommitted) -> TransactionMode {
32410        TransactionMode::ReadCommitted(node)
32411    }
32412}
32413impl From<ReadOnly> for TransactionMode {
32414    #[inline]
32415    fn from(node: ReadOnly) -> TransactionMode {
32416        TransactionMode::ReadOnly(node)
32417    }
32418}
32419impl From<ReadUncommitted> for TransactionMode {
32420    #[inline]
32421    fn from(node: ReadUncommitted) -> TransactionMode {
32422        TransactionMode::ReadUncommitted(node)
32423    }
32424}
32425impl From<ReadWrite> for TransactionMode {
32426    #[inline]
32427    fn from(node: ReadWrite) -> TransactionMode {
32428        TransactionMode::ReadWrite(node)
32429    }
32430}
32431impl From<RepeatableRead> for TransactionMode {
32432    #[inline]
32433    fn from(node: RepeatableRead) -> TransactionMode {
32434        TransactionMode::RepeatableRead(node)
32435    }
32436}
32437impl From<Serializable> for TransactionMode {
32438    #[inline]
32439    fn from(node: Serializable) -> TransactionMode {
32440        TransactionMode::Serializable(node)
32441    }
32442}
32443impl AstNode for Type {
32444    #[inline]
32445    fn can_cast(kind: SyntaxKind) -> bool {
32446        matches!(
32447            kind,
32448            SyntaxKind::ARRAY_TYPE
32449                | SyntaxKind::BIT_TYPE
32450                | SyntaxKind::CHAR_TYPE
32451                | SyntaxKind::DOUBLE_TYPE
32452                | SyntaxKind::EXPR_TYPE
32453                | SyntaxKind::INTERVAL_TYPE
32454                | SyntaxKind::PATH_TYPE
32455                | SyntaxKind::PERCENT_TYPE
32456                | SyntaxKind::TIME_TYPE
32457        )
32458    }
32459    #[inline]
32460    fn cast(syntax: SyntaxNode) -> Option<Self> {
32461        let res = match syntax.kind() {
32462            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
32463            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
32464            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
32465            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
32466            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
32467            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
32468            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
32469            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
32470            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
32471            _ => {
32472                return None;
32473            }
32474        };
32475        Some(res)
32476    }
32477    #[inline]
32478    fn syntax(&self) -> &SyntaxNode {
32479        match self {
32480            Type::ArrayType(it) => &it.syntax,
32481            Type::BitType(it) => &it.syntax,
32482            Type::CharType(it) => &it.syntax,
32483            Type::DoubleType(it) => &it.syntax,
32484            Type::ExprType(it) => &it.syntax,
32485            Type::IntervalType(it) => &it.syntax,
32486            Type::PathType(it) => &it.syntax,
32487            Type::PercentType(it) => &it.syntax,
32488            Type::TimeType(it) => &it.syntax,
32489        }
32490    }
32491}
32492impl From<ArrayType> for Type {
32493    #[inline]
32494    fn from(node: ArrayType) -> Type {
32495        Type::ArrayType(node)
32496    }
32497}
32498impl From<BitType> for Type {
32499    #[inline]
32500    fn from(node: BitType) -> Type {
32501        Type::BitType(node)
32502    }
32503}
32504impl From<CharType> for Type {
32505    #[inline]
32506    fn from(node: CharType) -> Type {
32507        Type::CharType(node)
32508    }
32509}
32510impl From<DoubleType> for Type {
32511    #[inline]
32512    fn from(node: DoubleType) -> Type {
32513        Type::DoubleType(node)
32514    }
32515}
32516impl From<ExprType> for Type {
32517    #[inline]
32518    fn from(node: ExprType) -> Type {
32519        Type::ExprType(node)
32520    }
32521}
32522impl From<IntervalType> for Type {
32523    #[inline]
32524    fn from(node: IntervalType) -> Type {
32525        Type::IntervalType(node)
32526    }
32527}
32528impl From<PathType> for Type {
32529    #[inline]
32530    fn from(node: PathType) -> Type {
32531        Type::PathType(node)
32532    }
32533}
32534impl From<PercentType> for Type {
32535    #[inline]
32536    fn from(node: PercentType) -> Type {
32537        Type::PercentType(node)
32538    }
32539}
32540impl From<TimeType> for Type {
32541    #[inline]
32542    fn from(node: TimeType) -> Type {
32543        Type::TimeType(node)
32544    }
32545}
32546impl AstNode for WithQuery {
32547    #[inline]
32548    fn can_cast(kind: SyntaxKind) -> bool {
32549        matches!(
32550            kind,
32551            SyntaxKind::COMPOUND_SELECT
32552                | SyntaxKind::DELETE
32553                | SyntaxKind::INSERT
32554                | SyntaxKind::MERGE
32555                | SyntaxKind::PAREN_SELECT
32556                | SyntaxKind::SELECT
32557                | SyntaxKind::TABLE
32558                | SyntaxKind::UPDATE
32559                | SyntaxKind::VALUES
32560        )
32561    }
32562    #[inline]
32563    fn cast(syntax: SyntaxNode) -> Option<Self> {
32564        let res = match syntax.kind() {
32565            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
32566            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
32567            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
32568            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
32569            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
32570            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
32571            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
32572            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
32573            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
32574            _ => {
32575                return None;
32576            }
32577        };
32578        Some(res)
32579    }
32580    #[inline]
32581    fn syntax(&self) -> &SyntaxNode {
32582        match self {
32583            WithQuery::CompoundSelect(it) => &it.syntax,
32584            WithQuery::Delete(it) => &it.syntax,
32585            WithQuery::Insert(it) => &it.syntax,
32586            WithQuery::Merge(it) => &it.syntax,
32587            WithQuery::ParenSelect(it) => &it.syntax,
32588            WithQuery::Select(it) => &it.syntax,
32589            WithQuery::Table(it) => &it.syntax,
32590            WithQuery::Update(it) => &it.syntax,
32591            WithQuery::Values(it) => &it.syntax,
32592        }
32593    }
32594}
32595impl From<CompoundSelect> for WithQuery {
32596    #[inline]
32597    fn from(node: CompoundSelect) -> WithQuery {
32598        WithQuery::CompoundSelect(node)
32599    }
32600}
32601impl From<Delete> for WithQuery {
32602    #[inline]
32603    fn from(node: Delete) -> WithQuery {
32604        WithQuery::Delete(node)
32605    }
32606}
32607impl From<Insert> for WithQuery {
32608    #[inline]
32609    fn from(node: Insert) -> WithQuery {
32610        WithQuery::Insert(node)
32611    }
32612}
32613impl From<Merge> for WithQuery {
32614    #[inline]
32615    fn from(node: Merge) -> WithQuery {
32616        WithQuery::Merge(node)
32617    }
32618}
32619impl From<ParenSelect> for WithQuery {
32620    #[inline]
32621    fn from(node: ParenSelect) -> WithQuery {
32622        WithQuery::ParenSelect(node)
32623    }
32624}
32625impl From<Select> for WithQuery {
32626    #[inline]
32627    fn from(node: Select) -> WithQuery {
32628        WithQuery::Select(node)
32629    }
32630}
32631impl From<Table> for WithQuery {
32632    #[inline]
32633    fn from(node: Table) -> WithQuery {
32634        WithQuery::Table(node)
32635    }
32636}
32637impl From<Update> for WithQuery {
32638    #[inline]
32639    fn from(node: Update) -> WithQuery {
32640        WithQuery::Update(node)
32641    }
32642}
32643impl From<Values> for WithQuery {
32644    #[inline]
32645    fn from(node: Values) -> WithQuery {
32646        WithQuery::Values(node)
32647    }
32648}