squawk_syntax/ast/generated/
nodes.rs

1use crate::SyntaxKind;
2use crate::ast::AstNode;
3use crate::ast::{AstChildren, support};
4use crate::syntax_node::SyntaxNode;
5use crate::syntax_node::SyntaxToken;
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8pub struct AddColumn {
9    pub(crate) syntax: SyntaxNode,
10}
11impl AddColumn {
12    #[inline]
13    pub fn collate(&self) -> Option<Collate> {
14        support::child(&self.syntax)
15    }
16    #[inline]
17    pub fn constraints(&self) -> AstChildren<Constraint> {
18        support::children(&self.syntax)
19    }
20    #[inline]
21    pub fn if_not_exists(&self) -> Option<IfNotExists> {
22        support::child(&self.syntax)
23    }
24    #[inline]
25    pub fn name(&self) -> Option<Name> {
26        support::child(&self.syntax)
27    }
28    #[inline]
29    pub fn ty(&self) -> Option<Type> {
30        support::child(&self.syntax)
31    }
32    #[inline]
33    pub fn add_token(&self) -> Option<SyntaxToken> {
34        support::token(&self.syntax, SyntaxKind::ADD_KW)
35    }
36    #[inline]
37    pub fn column_token(&self) -> Option<SyntaxToken> {
38        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
39    }
40}
41
42#[derive(Debug, Clone, PartialEq, Eq, Hash)]
43pub struct AddConstraint {
44    pub(crate) syntax: SyntaxNode,
45}
46impl AddConstraint {
47    #[inline]
48    pub fn constraint(&self) -> Option<Constraint> {
49        support::child(&self.syntax)
50    }
51    #[inline]
52    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
53        support::child(&self.syntax)
54    }
55    #[inline]
56    pub fn enforced(&self) -> Option<Enforced> {
57        support::child(&self.syntax)
58    }
59    #[inline]
60    pub fn initially_deferred_constraint_option(
61        &self,
62    ) -> Option<InitiallyDeferredConstraintOption> {
63        support::child(&self.syntax)
64    }
65    #[inline]
66    pub fn initially_immediate_constraint_option(
67        &self,
68    ) -> Option<InitiallyImmediateConstraintOption> {
69        support::child(&self.syntax)
70    }
71    #[inline]
72    pub fn no_inherit(&self) -> Option<NoInherit> {
73        support::child(&self.syntax)
74    }
75    #[inline]
76    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
77        support::child(&self.syntax)
78    }
79    #[inline]
80    pub fn not_enforced(&self) -> Option<NotEnforced> {
81        support::child(&self.syntax)
82    }
83    #[inline]
84    pub fn not_valid(&self) -> Option<NotValid> {
85        support::child(&self.syntax)
86    }
87    #[inline]
88    pub fn add_token(&self) -> Option<SyntaxToken> {
89        support::token(&self.syntax, SyntaxKind::ADD_KW)
90    }
91}
92
93#[derive(Debug, Clone, PartialEq, Eq, Hash)]
94pub struct AddGenerated {
95    pub(crate) syntax: SyntaxNode,
96}
97impl AddGenerated {
98    #[inline]
99    pub fn add_token(&self) -> Option<SyntaxToken> {
100        support::token(&self.syntax, SyntaxKind::ADD_KW)
101    }
102}
103
104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
105pub struct AddOpClassOptions {
106    pub(crate) syntax: SyntaxNode,
107}
108impl AddOpClassOptions {
109    #[inline]
110    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn add_token(&self) -> Option<SyntaxToken> {
115        support::token(&self.syntax, SyntaxKind::ADD_KW)
116    }
117}
118
119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
120pub struct Aggregate {
121    pub(crate) syntax: SyntaxNode,
122}
123impl Aggregate {
124    #[inline]
125    pub fn param_list(&self) -> Option<ParamList> {
126        support::child(&self.syntax)
127    }
128    #[inline]
129    pub fn path(&self) -> Option<Path> {
130        support::child(&self.syntax)
131    }
132}
133
134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
135pub struct Alias {
136    pub(crate) syntax: SyntaxNode,
137}
138impl Alias {
139    #[inline]
140    pub fn column_list(&self) -> Option<ColumnList> {
141        support::child(&self.syntax)
142    }
143    #[inline]
144    pub fn name(&self) -> Option<Name> {
145        support::child(&self.syntax)
146    }
147    #[inline]
148    pub fn as_token(&self) -> Option<SyntaxToken> {
149        support::token(&self.syntax, SyntaxKind::AS_KW)
150    }
151}
152
153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
154pub struct AllFn {
155    pub(crate) syntax: SyntaxNode,
156}
157impl AllFn {
158    #[inline]
159    pub fn expr(&self) -> Option<Expr> {
160        support::child(&self.syntax)
161    }
162    #[inline]
163    pub fn select_variant(&self) -> Option<SelectVariant> {
164        support::child(&self.syntax)
165    }
166    #[inline]
167    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
168        support::token(&self.syntax, SyntaxKind::L_PAREN)
169    }
170    #[inline]
171    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
172        support::token(&self.syntax, SyntaxKind::R_PAREN)
173    }
174    #[inline]
175    pub fn all_token(&self) -> Option<SyntaxToken> {
176        support::token(&self.syntax, SyntaxKind::ALL_KW)
177    }
178}
179
180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
181pub struct AlterAggregate {
182    pub(crate) syntax: SyntaxNode,
183}
184impl AlterAggregate {
185    #[inline]
186    pub fn aggregate(&self) -> Option<Aggregate> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
191        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
192    }
193    #[inline]
194    pub fn alter_token(&self) -> Option<SyntaxToken> {
195        support::token(&self.syntax, SyntaxKind::ALTER_KW)
196    }
197}
198
199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
200pub struct AlterCollation {
201    pub(crate) syntax: SyntaxNode,
202}
203impl AlterCollation {
204    #[inline]
205    pub fn owner_to(&self) -> Option<OwnerTo> {
206        support::child(&self.syntax)
207    }
208    #[inline]
209    pub fn path(&self) -> Option<Path> {
210        support::child(&self.syntax)
211    }
212    #[inline]
213    pub fn refresh_version(&self) -> Option<RefreshVersion> {
214        support::child(&self.syntax)
215    }
216    #[inline]
217    pub fn rename_to(&self) -> Option<RenameTo> {
218        support::child(&self.syntax)
219    }
220    #[inline]
221    pub fn set_schema(&self) -> Option<SetSchema> {
222        support::child(&self.syntax)
223    }
224    #[inline]
225    pub fn alter_token(&self) -> Option<SyntaxToken> {
226        support::token(&self.syntax, SyntaxKind::ALTER_KW)
227    }
228    #[inline]
229    pub fn collation_token(&self) -> Option<SyntaxToken> {
230        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
231    }
232}
233
234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
235pub struct AlterColumn {
236    pub(crate) syntax: SyntaxNode,
237}
238impl AlterColumn {
239    #[inline]
240    pub fn name_ref(&self) -> Option<NameRef> {
241        support::child(&self.syntax)
242    }
243    #[inline]
244    pub fn option(&self) -> Option<AlterColumnOption> {
245        support::child(&self.syntax)
246    }
247    #[inline]
248    pub fn alter_token(&self) -> Option<SyntaxToken> {
249        support::token(&self.syntax, SyntaxKind::ALTER_KW)
250    }
251    #[inline]
252    pub fn column_token(&self) -> Option<SyntaxToken> {
253        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
254    }
255}
256
257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
258pub struct AlterConstraint {
259    pub(crate) syntax: SyntaxNode,
260}
261impl AlterConstraint {
262    #[inline]
263    pub fn option(&self) -> Option<AlterColumnOption> {
264        support::child(&self.syntax)
265    }
266    #[inline]
267    pub fn alter_token(&self) -> Option<SyntaxToken> {
268        support::token(&self.syntax, SyntaxKind::ALTER_KW)
269    }
270    #[inline]
271    pub fn constraint_token(&self) -> Option<SyntaxToken> {
272        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
273    }
274}
275
276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
277pub struct AlterConversion {
278    pub(crate) syntax: SyntaxNode,
279}
280impl AlterConversion {
281    #[inline]
282    pub fn owner_to(&self) -> Option<OwnerTo> {
283        support::child(&self.syntax)
284    }
285    #[inline]
286    pub fn path(&self) -> Option<Path> {
287        support::child(&self.syntax)
288    }
289    #[inline]
290    pub fn rename_to(&self) -> Option<RenameTo> {
291        support::child(&self.syntax)
292    }
293    #[inline]
294    pub fn set_schema(&self) -> Option<SetSchema> {
295        support::child(&self.syntax)
296    }
297    #[inline]
298    pub fn alter_token(&self) -> Option<SyntaxToken> {
299        support::token(&self.syntax, SyntaxKind::ALTER_KW)
300    }
301    #[inline]
302    pub fn conversion_token(&self) -> Option<SyntaxToken> {
303        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
304    }
305}
306
307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
308pub struct AlterDatabase {
309    pub(crate) syntax: SyntaxNode,
310}
311impl AlterDatabase {
312    #[inline]
313    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
314        support::child(&self.syntax)
315    }
316    #[inline]
317    pub fn name_ref(&self) -> Option<NameRef> {
318        support::child(&self.syntax)
319    }
320    #[inline]
321    pub fn owner_to(&self) -> Option<OwnerTo> {
322        support::child(&self.syntax)
323    }
324    #[inline]
325    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
326        support::child(&self.syntax)
327    }
328    #[inline]
329    pub fn rename_to(&self) -> Option<RenameTo> {
330        support::child(&self.syntax)
331    }
332    #[inline]
333    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
334        support::child(&self.syntax)
335    }
336    #[inline]
337    pub fn set_config_param(&self) -> Option<SetConfigParam> {
338        support::child(&self.syntax)
339    }
340    #[inline]
341    pub fn set_tablespace(&self) -> Option<SetTablespace> {
342        support::child(&self.syntax)
343    }
344    #[inline]
345    pub fn alter_token(&self) -> Option<SyntaxToken> {
346        support::token(&self.syntax, SyntaxKind::ALTER_KW)
347    }
348    #[inline]
349    pub fn database_token(&self) -> Option<SyntaxToken> {
350        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
351    }
352}
353
354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
355pub struct AlterDefaultPrivileges {
356    pub(crate) syntax: SyntaxNode,
357}
358impl AlterDefaultPrivileges {
359    #[inline]
360    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
361        support::child(&self.syntax)
362    }
363    #[inline]
364    pub fn name_refs(&self) -> AstChildren<NameRef> {
365        support::children(&self.syntax)
366    }
367    #[inline]
368    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
369        support::child(&self.syntax)
370    }
371    #[inline]
372    pub fn role_list(&self) -> Option<RoleList> {
373        support::child(&self.syntax)
374    }
375    #[inline]
376    pub fn alter_token(&self) -> Option<SyntaxToken> {
377        support::token(&self.syntax, SyntaxKind::ALTER_KW)
378    }
379    #[inline]
380    pub fn default_token(&self) -> Option<SyntaxToken> {
381        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
382    }
383    #[inline]
384    pub fn for_token(&self) -> Option<SyntaxToken> {
385        support::token(&self.syntax, SyntaxKind::FOR_KW)
386    }
387    #[inline]
388    pub fn in_token(&self) -> Option<SyntaxToken> {
389        support::token(&self.syntax, SyntaxKind::IN_KW)
390    }
391    #[inline]
392    pub fn privileges_token(&self) -> Option<SyntaxToken> {
393        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
394    }
395    #[inline]
396    pub fn role_token(&self) -> Option<SyntaxToken> {
397        support::token(&self.syntax, SyntaxKind::ROLE_KW)
398    }
399    #[inline]
400    pub fn schema_token(&self) -> Option<SyntaxToken> {
401        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
402    }
403    #[inline]
404    pub fn user_token(&self) -> Option<SyntaxToken> {
405        support::token(&self.syntax, SyntaxKind::USER_KW)
406    }
407}
408
409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
410pub struct AlterDomain {
411    pub(crate) syntax: SyntaxNode,
412}
413impl AlterDomain {
414    #[inline]
415    pub fn action(&self) -> Option<AlterDomainAction> {
416        support::child(&self.syntax)
417    }
418    #[inline]
419    pub fn path(&self) -> Option<Path> {
420        support::child(&self.syntax)
421    }
422    #[inline]
423    pub fn alter_token(&self) -> Option<SyntaxToken> {
424        support::token(&self.syntax, SyntaxKind::ALTER_KW)
425    }
426    #[inline]
427    pub fn domain_token(&self) -> Option<SyntaxToken> {
428        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
429    }
430}
431
432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
433pub struct AlterEventTrigger {
434    pub(crate) syntax: SyntaxNode,
435}
436impl AlterEventTrigger {
437    #[inline]
438    pub fn name_ref(&self) -> Option<NameRef> {
439        support::child(&self.syntax)
440    }
441    #[inline]
442    pub fn owner_to(&self) -> Option<OwnerTo> {
443        support::child(&self.syntax)
444    }
445    #[inline]
446    pub fn rename_to(&self) -> Option<RenameTo> {
447        support::child(&self.syntax)
448    }
449    #[inline]
450    pub fn alter_token(&self) -> Option<SyntaxToken> {
451        support::token(&self.syntax, SyntaxKind::ALTER_KW)
452    }
453    #[inline]
454    pub fn always_token(&self) -> Option<SyntaxToken> {
455        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
456    }
457    #[inline]
458    pub fn disable_token(&self) -> Option<SyntaxToken> {
459        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
460    }
461    #[inline]
462    pub fn enable_token(&self) -> Option<SyntaxToken> {
463        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
464    }
465    #[inline]
466    pub fn event_token(&self) -> Option<SyntaxToken> {
467        support::token(&self.syntax, SyntaxKind::EVENT_KW)
468    }
469    #[inline]
470    pub fn replica_token(&self) -> Option<SyntaxToken> {
471        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
472    }
473    #[inline]
474    pub fn trigger_token(&self) -> Option<SyntaxToken> {
475        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
476    }
477}
478
479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
480pub struct AlterExtension {
481    pub(crate) syntax: SyntaxNode,
482}
483impl AlterExtension {
484    #[inline]
485    pub fn name_ref(&self) -> Option<NameRef> {
486        support::child(&self.syntax)
487    }
488    #[inline]
489    pub fn alter_token(&self) -> Option<SyntaxToken> {
490        support::token(&self.syntax, SyntaxKind::ALTER_KW)
491    }
492    #[inline]
493    pub fn extension_token(&self) -> Option<SyntaxToken> {
494        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
495    }
496}
497
498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
499pub struct AlterForeignDataWrapper {
500    pub(crate) syntax: SyntaxNode,
501}
502impl AlterForeignDataWrapper {
503    #[inline]
504    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
505        support::child(&self.syntax)
506    }
507    #[inline]
508    pub fn name_ref(&self) -> Option<NameRef> {
509        support::child(&self.syntax)
510    }
511    #[inline]
512    pub fn owner_to(&self) -> Option<OwnerTo> {
513        support::child(&self.syntax)
514    }
515    #[inline]
516    pub fn rename_to(&self) -> Option<RenameTo> {
517        support::child(&self.syntax)
518    }
519    #[inline]
520    pub fn alter_token(&self) -> Option<SyntaxToken> {
521        support::token(&self.syntax, SyntaxKind::ALTER_KW)
522    }
523    #[inline]
524    pub fn data_token(&self) -> Option<SyntaxToken> {
525        support::token(&self.syntax, SyntaxKind::DATA_KW)
526    }
527    #[inline]
528    pub fn foreign_token(&self) -> Option<SyntaxToken> {
529        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
530    }
531    #[inline]
532    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
533        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
534    }
535}
536
537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
538pub struct AlterForeignTable {
539    pub(crate) syntax: SyntaxNode,
540}
541impl AlterForeignTable {
542    #[inline]
543    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
544        support::children(&self.syntax)
545    }
546    #[inline]
547    pub fn if_exists(&self) -> Option<IfExists> {
548        support::child(&self.syntax)
549    }
550    #[inline]
551    pub fn relation_name(&self) -> Option<RelationName> {
552        support::child(&self.syntax)
553    }
554    #[inline]
555    pub fn rename_column(&self) -> Option<RenameColumn> {
556        support::child(&self.syntax)
557    }
558    #[inline]
559    pub fn rename_to(&self) -> Option<RenameTo> {
560        support::child(&self.syntax)
561    }
562    #[inline]
563    pub fn set_schema(&self) -> Option<SetSchema> {
564        support::child(&self.syntax)
565    }
566    #[inline]
567    pub fn alter_token(&self) -> Option<SyntaxToken> {
568        support::token(&self.syntax, SyntaxKind::ALTER_KW)
569    }
570    #[inline]
571    pub fn foreign_token(&self) -> Option<SyntaxToken> {
572        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
573    }
574    #[inline]
575    pub fn table_token(&self) -> Option<SyntaxToken> {
576        support::token(&self.syntax, SyntaxKind::TABLE_KW)
577    }
578}
579
580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
581pub struct AlterFunction {
582    pub(crate) syntax: SyntaxNode,
583}
584impl AlterFunction {
585    #[inline]
586    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
587        support::child(&self.syntax)
588    }
589    #[inline]
590    pub fn func_option_list(&self) -> Option<FuncOptionList> {
591        support::child(&self.syntax)
592    }
593    #[inline]
594    pub fn function_sig(&self) -> Option<FunctionSig> {
595        support::child(&self.syntax)
596    }
597    #[inline]
598    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
599        support::child(&self.syntax)
600    }
601    #[inline]
602    pub fn owner_to(&self) -> Option<OwnerTo> {
603        support::child(&self.syntax)
604    }
605    #[inline]
606    pub fn rename_to(&self) -> Option<RenameTo> {
607        support::child(&self.syntax)
608    }
609    #[inline]
610    pub fn set_schema(&self) -> Option<SetSchema> {
611        support::child(&self.syntax)
612    }
613    #[inline]
614    pub fn alter_token(&self) -> Option<SyntaxToken> {
615        support::token(&self.syntax, SyntaxKind::ALTER_KW)
616    }
617    #[inline]
618    pub fn function_token(&self) -> Option<SyntaxToken> {
619        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
620    }
621    #[inline]
622    pub fn restrict_token(&self) -> Option<SyntaxToken> {
623        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
624    }
625}
626
627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
628pub struct AlterGroup {
629    pub(crate) syntax: SyntaxNode,
630}
631impl AlterGroup {
632    #[inline]
633    pub fn name_refs(&self) -> AstChildren<NameRef> {
634        support::children(&self.syntax)
635    }
636    #[inline]
637    pub fn rename_to(&self) -> Option<RenameTo> {
638        support::child(&self.syntax)
639    }
640    #[inline]
641    pub fn role(&self) -> Option<Role> {
642        support::child(&self.syntax)
643    }
644    #[inline]
645    pub fn add_token(&self) -> Option<SyntaxToken> {
646        support::token(&self.syntax, SyntaxKind::ADD_KW)
647    }
648    #[inline]
649    pub fn alter_token(&self) -> Option<SyntaxToken> {
650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
651    }
652    #[inline]
653    pub fn drop_token(&self) -> Option<SyntaxToken> {
654        support::token(&self.syntax, SyntaxKind::DROP_KW)
655    }
656    #[inline]
657    pub fn group_token(&self) -> Option<SyntaxToken> {
658        support::token(&self.syntax, SyntaxKind::GROUP_KW)
659    }
660    #[inline]
661    pub fn user_token(&self) -> Option<SyntaxToken> {
662        support::token(&self.syntax, SyntaxKind::USER_KW)
663    }
664}
665
666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
667pub struct AlterIndex {
668    pub(crate) syntax: SyntaxNode,
669}
670impl AlterIndex {
671    #[inline]
672    pub fn if_exists(&self) -> Option<IfExists> {
673        support::child(&self.syntax)
674    }
675    #[inline]
676    pub fn path(&self) -> Option<Path> {
677        support::child(&self.syntax)
678    }
679    #[inline]
680    pub fn alter_token(&self) -> Option<SyntaxToken> {
681        support::token(&self.syntax, SyntaxKind::ALTER_KW)
682    }
683    #[inline]
684    pub fn index_token(&self) -> Option<SyntaxToken> {
685        support::token(&self.syntax, SyntaxKind::INDEX_KW)
686    }
687}
688
689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
690pub struct AlterLanguage {
691    pub(crate) syntax: SyntaxNode,
692}
693impl AlterLanguage {
694    #[inline]
695    pub fn name_ref(&self) -> Option<NameRef> {
696        support::child(&self.syntax)
697    }
698    #[inline]
699    pub fn owner_to(&self) -> Option<OwnerTo> {
700        support::child(&self.syntax)
701    }
702    #[inline]
703    pub fn rename_to(&self) -> Option<RenameTo> {
704        support::child(&self.syntax)
705    }
706    #[inline]
707    pub fn alter_token(&self) -> Option<SyntaxToken> {
708        support::token(&self.syntax, SyntaxKind::ALTER_KW)
709    }
710    #[inline]
711    pub fn language_token(&self) -> Option<SyntaxToken> {
712        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
713    }
714}
715
716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
717pub struct AlterLargeObject {
718    pub(crate) syntax: SyntaxNode,
719}
720impl AlterLargeObject {
721    #[inline]
722    pub fn alter_token(&self) -> Option<SyntaxToken> {
723        support::token(&self.syntax, SyntaxKind::ALTER_KW)
724    }
725    #[inline]
726    pub fn large_token(&self) -> Option<SyntaxToken> {
727        support::token(&self.syntax, SyntaxKind::LARGE_KW)
728    }
729    #[inline]
730    pub fn object_token(&self) -> Option<SyntaxToken> {
731        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
732    }
733}
734
735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
736pub struct AlterMaterializedView {
737    pub(crate) syntax: SyntaxNode,
738}
739impl AlterMaterializedView {
740    #[inline]
741    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
742        support::children(&self.syntax)
743    }
744    #[inline]
745    pub fn if_exists(&self) -> Option<IfExists> {
746        support::child(&self.syntax)
747    }
748    #[inline]
749    pub fn name(&self) -> Option<Name> {
750        support::child(&self.syntax)
751    }
752    #[inline]
753    pub fn name_ref(&self) -> Option<NameRef> {
754        support::child(&self.syntax)
755    }
756    #[inline]
757    pub fn path(&self) -> Option<Path> {
758        support::child(&self.syntax)
759    }
760    #[inline]
761    pub fn role_list(&self) -> Option<RoleList> {
762        support::child(&self.syntax)
763    }
764    #[inline]
765    pub fn all_token(&self) -> Option<SyntaxToken> {
766        support::token(&self.syntax, SyntaxKind::ALL_KW)
767    }
768    #[inline]
769    pub fn alter_token(&self) -> Option<SyntaxToken> {
770        support::token(&self.syntax, SyntaxKind::ALTER_KW)
771    }
772    #[inline]
773    pub fn by_token(&self) -> Option<SyntaxToken> {
774        support::token(&self.syntax, SyntaxKind::BY_KW)
775    }
776    #[inline]
777    pub fn in_token(&self) -> Option<SyntaxToken> {
778        support::token(&self.syntax, SyntaxKind::IN_KW)
779    }
780    #[inline]
781    pub fn materialized_token(&self) -> Option<SyntaxToken> {
782        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
783    }
784    #[inline]
785    pub fn nowait_token(&self) -> Option<SyntaxToken> {
786        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
787    }
788    #[inline]
789    pub fn owned_token(&self) -> Option<SyntaxToken> {
790        support::token(&self.syntax, SyntaxKind::OWNED_KW)
791    }
792    #[inline]
793    pub fn set_token(&self) -> Option<SyntaxToken> {
794        support::token(&self.syntax, SyntaxKind::SET_KW)
795    }
796    #[inline]
797    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
798        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
799    }
800    #[inline]
801    pub fn view_token(&self) -> Option<SyntaxToken> {
802        support::token(&self.syntax, SyntaxKind::VIEW_KW)
803    }
804}
805
806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
807pub struct AlterOperator {
808    pub(crate) syntax: SyntaxNode,
809}
810impl AlterOperator {
811    #[inline]
812    pub fn op_sig(&self) -> Option<OpSig> {
813        support::child(&self.syntax)
814    }
815    #[inline]
816    pub fn owner_to(&self) -> Option<OwnerTo> {
817        support::child(&self.syntax)
818    }
819    #[inline]
820    pub fn set_options(&self) -> Option<SetOptions> {
821        support::child(&self.syntax)
822    }
823    #[inline]
824    pub fn set_schema(&self) -> Option<SetSchema> {
825        support::child(&self.syntax)
826    }
827    #[inline]
828    pub fn alter_token(&self) -> Option<SyntaxToken> {
829        support::token(&self.syntax, SyntaxKind::ALTER_KW)
830    }
831    #[inline]
832    pub fn operator_token(&self) -> Option<SyntaxToken> {
833        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
834    }
835}
836
837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
838pub struct AlterOperatorClass {
839    pub(crate) syntax: SyntaxNode,
840}
841impl AlterOperatorClass {
842    #[inline]
843    pub fn name_ref(&self) -> Option<NameRef> {
844        support::child(&self.syntax)
845    }
846    #[inline]
847    pub fn owner_to(&self) -> Option<OwnerTo> {
848        support::child(&self.syntax)
849    }
850    #[inline]
851    pub fn path(&self) -> Option<Path> {
852        support::child(&self.syntax)
853    }
854    #[inline]
855    pub fn rename_to(&self) -> Option<RenameTo> {
856        support::child(&self.syntax)
857    }
858    #[inline]
859    pub fn set_schema(&self) -> Option<SetSchema> {
860        support::child(&self.syntax)
861    }
862    #[inline]
863    pub fn alter_token(&self) -> Option<SyntaxToken> {
864        support::token(&self.syntax, SyntaxKind::ALTER_KW)
865    }
866    #[inline]
867    pub fn class_token(&self) -> Option<SyntaxToken> {
868        support::token(&self.syntax, SyntaxKind::CLASS_KW)
869    }
870    #[inline]
871    pub fn operator_token(&self) -> Option<SyntaxToken> {
872        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
873    }
874    #[inline]
875    pub fn using_token(&self) -> Option<SyntaxToken> {
876        support::token(&self.syntax, SyntaxKind::USING_KW)
877    }
878}
879
880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
881pub struct AlterOperatorFamily {
882    pub(crate) syntax: SyntaxNode,
883}
884impl AlterOperatorFamily {
885    #[inline]
886    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
887        support::child(&self.syntax)
888    }
889    #[inline]
890    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
891        support::child(&self.syntax)
892    }
893    #[inline]
894    pub fn name_ref(&self) -> Option<NameRef> {
895        support::child(&self.syntax)
896    }
897    #[inline]
898    pub fn owner_to(&self) -> Option<OwnerTo> {
899        support::child(&self.syntax)
900    }
901    #[inline]
902    pub fn path(&self) -> Option<Path> {
903        support::child(&self.syntax)
904    }
905    #[inline]
906    pub fn rename_to(&self) -> Option<RenameTo> {
907        support::child(&self.syntax)
908    }
909    #[inline]
910    pub fn set_schema(&self) -> Option<SetSchema> {
911        support::child(&self.syntax)
912    }
913    #[inline]
914    pub fn alter_token(&self) -> Option<SyntaxToken> {
915        support::token(&self.syntax, SyntaxKind::ALTER_KW)
916    }
917    #[inline]
918    pub fn family_token(&self) -> Option<SyntaxToken> {
919        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
920    }
921    #[inline]
922    pub fn operator_token(&self) -> Option<SyntaxToken> {
923        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
924    }
925    #[inline]
926    pub fn using_token(&self) -> Option<SyntaxToken> {
927        support::token(&self.syntax, SyntaxKind::USING_KW)
928    }
929}
930
931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
932pub struct AlterOption {
933    pub(crate) syntax: SyntaxNode,
934}
935impl AlterOption {
936    #[inline]
937    pub fn literal(&self) -> Option<Literal> {
938        support::child(&self.syntax)
939    }
940    #[inline]
941    pub fn name_ref(&self) -> Option<NameRef> {
942        support::child(&self.syntax)
943    }
944    #[inline]
945    pub fn add_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::ADD_KW)
947    }
948    #[inline]
949    pub fn drop_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::DROP_KW)
951    }
952    #[inline]
953    pub fn set_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::SET_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterOptionList {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterOptionList {
963    #[inline]
964    pub fn alter_options(&self) -> AstChildren<AlterOption> {
965        support::children(&self.syntax)
966    }
967}
968
969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
970pub struct AlterPolicy {
971    pub(crate) syntax: SyntaxNode,
972}
973impl AlterPolicy {
974    #[inline]
975    pub fn expr(&self) -> Option<Expr> {
976        support::child(&self.syntax)
977    }
978    #[inline]
979    pub fn name_ref(&self) -> Option<NameRef> {
980        support::child(&self.syntax)
981    }
982    #[inline]
983    pub fn on_table(&self) -> Option<OnTable> {
984        support::child(&self.syntax)
985    }
986    #[inline]
987    pub fn rename_to(&self) -> Option<RenameTo> {
988        support::child(&self.syntax)
989    }
990    #[inline]
991    pub fn role_list(&self) -> Option<RoleList> {
992        support::child(&self.syntax)
993    }
994    #[inline]
995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
996        support::token(&self.syntax, SyntaxKind::L_PAREN)
997    }
998    #[inline]
999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1000        support::token(&self.syntax, SyntaxKind::R_PAREN)
1001    }
1002    #[inline]
1003    pub fn alter_token(&self) -> Option<SyntaxToken> {
1004        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1005    }
1006    #[inline]
1007    pub fn check_token(&self) -> Option<SyntaxToken> {
1008        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1009    }
1010    #[inline]
1011    pub fn policy_token(&self) -> Option<SyntaxToken> {
1012        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1013    }
1014    #[inline]
1015    pub fn to_token(&self) -> Option<SyntaxToken> {
1016        support::token(&self.syntax, SyntaxKind::TO_KW)
1017    }
1018    #[inline]
1019    pub fn using_token(&self) -> Option<SyntaxToken> {
1020        support::token(&self.syntax, SyntaxKind::USING_KW)
1021    }
1022    #[inline]
1023    pub fn with_token(&self) -> Option<SyntaxToken> {
1024        support::token(&self.syntax, SyntaxKind::WITH_KW)
1025    }
1026}
1027
1028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1029pub struct AlterProcedure {
1030    pub(crate) syntax: SyntaxNode,
1031}
1032impl AlterProcedure {
1033    #[inline]
1034    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1035        support::child(&self.syntax)
1036    }
1037    #[inline]
1038    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1039        support::child(&self.syntax)
1040    }
1041    #[inline]
1042    pub fn function_sig(&self) -> Option<FunctionSig> {
1043        support::child(&self.syntax)
1044    }
1045    #[inline]
1046    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1047        support::child(&self.syntax)
1048    }
1049    #[inline]
1050    pub fn owner_to(&self) -> Option<OwnerTo> {
1051        support::child(&self.syntax)
1052    }
1053    #[inline]
1054    pub fn rename_to(&self) -> Option<RenameTo> {
1055        support::child(&self.syntax)
1056    }
1057    #[inline]
1058    pub fn set_schema(&self) -> Option<SetSchema> {
1059        support::child(&self.syntax)
1060    }
1061    #[inline]
1062    pub fn alter_token(&self) -> Option<SyntaxToken> {
1063        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1064    }
1065    #[inline]
1066    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1067        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1068    }
1069    #[inline]
1070    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1071        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1072    }
1073}
1074
1075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1076pub struct AlterPublication {
1077    pub(crate) syntax: SyntaxNode,
1078}
1079impl AlterPublication {
1080    #[inline]
1081    pub fn name_ref(&self) -> Option<NameRef> {
1082        support::child(&self.syntax)
1083    }
1084    #[inline]
1085    pub fn alter_token(&self) -> Option<SyntaxToken> {
1086        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1087    }
1088    #[inline]
1089    pub fn publication_token(&self) -> Option<SyntaxToken> {
1090        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1091    }
1092}
1093
1094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1095pub struct AlterRole {
1096    pub(crate) syntax: SyntaxNode,
1097}
1098impl AlterRole {
1099    #[inline]
1100    pub fn role(&self) -> Option<Role> {
1101        support::child(&self.syntax)
1102    }
1103    #[inline]
1104    pub fn alter_token(&self) -> Option<SyntaxToken> {
1105        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1106    }
1107    #[inline]
1108    pub fn role_token(&self) -> Option<SyntaxToken> {
1109        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1110    }
1111}
1112
1113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1114pub struct AlterRoutine {
1115    pub(crate) syntax: SyntaxNode,
1116}
1117impl AlterRoutine {
1118    #[inline]
1119    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1120        support::child(&self.syntax)
1121    }
1122    #[inline]
1123    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1124        support::child(&self.syntax)
1125    }
1126    #[inline]
1127    pub fn function_sig(&self) -> Option<FunctionSig> {
1128        support::child(&self.syntax)
1129    }
1130    #[inline]
1131    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1132        support::child(&self.syntax)
1133    }
1134    #[inline]
1135    pub fn owner_to(&self) -> Option<OwnerTo> {
1136        support::child(&self.syntax)
1137    }
1138    #[inline]
1139    pub fn rename_to(&self) -> Option<RenameTo> {
1140        support::child(&self.syntax)
1141    }
1142    #[inline]
1143    pub fn set_schema(&self) -> Option<SetSchema> {
1144        support::child(&self.syntax)
1145    }
1146    #[inline]
1147    pub fn alter_token(&self) -> Option<SyntaxToken> {
1148        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1149    }
1150    #[inline]
1151    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1152        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1153    }
1154    #[inline]
1155    pub fn routine_token(&self) -> Option<SyntaxToken> {
1156        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1157    }
1158}
1159
1160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1161pub struct AlterRule {
1162    pub(crate) syntax: SyntaxNode,
1163}
1164impl AlterRule {
1165    #[inline]
1166    pub fn name_ref(&self) -> Option<NameRef> {
1167        support::child(&self.syntax)
1168    }
1169    #[inline]
1170    pub fn on_table(&self) -> Option<OnTable> {
1171        support::child(&self.syntax)
1172    }
1173    #[inline]
1174    pub fn rename_to(&self) -> Option<RenameTo> {
1175        support::child(&self.syntax)
1176    }
1177    #[inline]
1178    pub fn alter_token(&self) -> Option<SyntaxToken> {
1179        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1180    }
1181    #[inline]
1182    pub fn on_token(&self) -> Option<SyntaxToken> {
1183        support::token(&self.syntax, SyntaxKind::ON_KW)
1184    }
1185    #[inline]
1186    pub fn rule_token(&self) -> Option<SyntaxToken> {
1187        support::token(&self.syntax, SyntaxKind::RULE_KW)
1188    }
1189}
1190
1191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1192pub struct AlterSchema {
1193    pub(crate) syntax: SyntaxNode,
1194}
1195impl AlterSchema {
1196    #[inline]
1197    pub fn name_ref(&self) -> Option<NameRef> {
1198        support::child(&self.syntax)
1199    }
1200    #[inline]
1201    pub fn owner_to(&self) -> Option<OwnerTo> {
1202        support::child(&self.syntax)
1203    }
1204    #[inline]
1205    pub fn rename_to(&self) -> Option<RenameTo> {
1206        support::child(&self.syntax)
1207    }
1208    #[inline]
1209    pub fn alter_token(&self) -> Option<SyntaxToken> {
1210        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1211    }
1212    #[inline]
1213    pub fn schema_token(&self) -> Option<SyntaxToken> {
1214        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1215    }
1216}
1217
1218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1219pub struct AlterSequence {
1220    pub(crate) syntax: SyntaxNode,
1221}
1222impl AlterSequence {
1223    #[inline]
1224    pub fn if_exists(&self) -> Option<IfExists> {
1225        support::child(&self.syntax)
1226    }
1227    #[inline]
1228    pub fn path(&self) -> Option<Path> {
1229        support::child(&self.syntax)
1230    }
1231    #[inline]
1232    pub fn alter_token(&self) -> Option<SyntaxToken> {
1233        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1234    }
1235    #[inline]
1236    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1237        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1238    }
1239}
1240
1241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1242pub struct AlterServer {
1243    pub(crate) syntax: SyntaxNode,
1244}
1245impl AlterServer {
1246    #[inline]
1247    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1248        support::child(&self.syntax)
1249    }
1250    #[inline]
1251    pub fn name_ref(&self) -> Option<NameRef> {
1252        support::child(&self.syntax)
1253    }
1254    #[inline]
1255    pub fn alter_token(&self) -> Option<SyntaxToken> {
1256        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1257    }
1258    #[inline]
1259    pub fn server_token(&self) -> Option<SyntaxToken> {
1260        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1261    }
1262}
1263
1264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1265pub struct AlterSetStatistics {
1266    pub(crate) syntax: SyntaxNode,
1267}
1268impl AlterSetStatistics {
1269    #[inline]
1270    pub fn literal(&self) -> Option<Literal> {
1271        support::child(&self.syntax)
1272    }
1273    #[inline]
1274    pub fn name_ref(&self) -> Option<NameRef> {
1275        support::child(&self.syntax)
1276    }
1277    #[inline]
1278    pub fn column_token(&self) -> Option<SyntaxToken> {
1279        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1280    }
1281    #[inline]
1282    pub fn set_token(&self) -> Option<SyntaxToken> {
1283        support::token(&self.syntax, SyntaxKind::SET_KW)
1284    }
1285    #[inline]
1286    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1287        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1288    }
1289}
1290
1291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1292pub struct AlterStatistics {
1293    pub(crate) syntax: SyntaxNode,
1294}
1295impl AlterStatistics {
1296    #[inline]
1297    pub fn path(&self) -> Option<Path> {
1298        support::child(&self.syntax)
1299    }
1300    #[inline]
1301    pub fn alter_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1303    }
1304    #[inline]
1305    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1306        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1307    }
1308}
1309
1310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1311pub struct AlterSubscription {
1312    pub(crate) syntax: SyntaxNode,
1313}
1314impl AlterSubscription {
1315    #[inline]
1316    pub fn name_ref(&self) -> Option<NameRef> {
1317        support::child(&self.syntax)
1318    }
1319    #[inline]
1320    pub fn alter_token(&self) -> Option<SyntaxToken> {
1321        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1322    }
1323    #[inline]
1324    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1326    }
1327}
1328
1329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1330pub struct AlterSystem {
1331    pub(crate) syntax: SyntaxNode,
1332}
1333impl AlterSystem {
1334    #[inline]
1335    pub fn alter_token(&self) -> Option<SyntaxToken> {
1336        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1337    }
1338    #[inline]
1339    pub fn set_token(&self) -> Option<SyntaxToken> {
1340        support::token(&self.syntax, SyntaxKind::SET_KW)
1341    }
1342    #[inline]
1343    pub fn system_token(&self) -> Option<SyntaxToken> {
1344        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1345    }
1346}
1347
1348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1349pub struct AlterTable {
1350    pub(crate) syntax: SyntaxNode,
1351}
1352impl AlterTable {
1353    #[inline]
1354    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1355        support::children(&self.syntax)
1356    }
1357    #[inline]
1358    pub fn relation_name(&self) -> Option<RelationName> {
1359        support::child(&self.syntax)
1360    }
1361    #[inline]
1362    pub fn alter_token(&self) -> Option<SyntaxToken> {
1363        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1364    }
1365    #[inline]
1366    pub fn table_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1368    }
1369}
1370
1371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1372pub struct AlterTablespace {
1373    pub(crate) syntax: SyntaxNode,
1374}
1375impl AlterTablespace {
1376    #[inline]
1377    pub fn owner_to(&self) -> Option<OwnerTo> {
1378        support::child(&self.syntax)
1379    }
1380    #[inline]
1381    pub fn path(&self) -> Option<Path> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn rename_to(&self) -> Option<RenameTo> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn reset_options(&self) -> Option<ResetOptions> {
1390        support::child(&self.syntax)
1391    }
1392    #[inline]
1393    pub fn set_options(&self) -> Option<SetOptions> {
1394        support::child(&self.syntax)
1395    }
1396    #[inline]
1397    pub fn alter_token(&self) -> Option<SyntaxToken> {
1398        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1399    }
1400    #[inline]
1401    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1402        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1403    }
1404}
1405
1406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1407pub struct AlterTextSearchConfiguration {
1408    pub(crate) syntax: SyntaxNode,
1409}
1410impl AlterTextSearchConfiguration {
1411    #[inline]
1412    pub fn owner_to(&self) -> Option<OwnerTo> {
1413        support::child(&self.syntax)
1414    }
1415    #[inline]
1416    pub fn path(&self) -> Option<Path> {
1417        support::child(&self.syntax)
1418    }
1419    #[inline]
1420    pub fn rename_to(&self) -> Option<RenameTo> {
1421        support::child(&self.syntax)
1422    }
1423    #[inline]
1424    pub fn set_schema(&self) -> Option<SetSchema> {
1425        support::child(&self.syntax)
1426    }
1427    #[inline]
1428    pub fn alter_token(&self) -> Option<SyntaxToken> {
1429        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1430    }
1431    #[inline]
1432    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1433        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1434    }
1435    #[inline]
1436    pub fn search_token(&self) -> Option<SyntaxToken> {
1437        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1438    }
1439    #[inline]
1440    pub fn text_token(&self) -> Option<SyntaxToken> {
1441        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1442    }
1443}
1444
1445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1446pub struct AlterTextSearchDictionary {
1447    pub(crate) syntax: SyntaxNode,
1448}
1449impl AlterTextSearchDictionary {
1450    #[inline]
1451    pub fn attribute_list(&self) -> Option<AttributeList> {
1452        support::child(&self.syntax)
1453    }
1454    #[inline]
1455    pub fn owner_to(&self) -> Option<OwnerTo> {
1456        support::child(&self.syntax)
1457    }
1458    #[inline]
1459    pub fn path(&self) -> Option<Path> {
1460        support::child(&self.syntax)
1461    }
1462    #[inline]
1463    pub fn rename_to(&self) -> Option<RenameTo> {
1464        support::child(&self.syntax)
1465    }
1466    #[inline]
1467    pub fn set_schema(&self) -> Option<SetSchema> {
1468        support::child(&self.syntax)
1469    }
1470    #[inline]
1471    pub fn alter_token(&self) -> Option<SyntaxToken> {
1472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1473    }
1474    #[inline]
1475    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1476        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1477    }
1478    #[inline]
1479    pub fn search_token(&self) -> Option<SyntaxToken> {
1480        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1481    }
1482    #[inline]
1483    pub fn text_token(&self) -> Option<SyntaxToken> {
1484        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1485    }
1486}
1487
1488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1489pub struct AlterTextSearchParser {
1490    pub(crate) syntax: SyntaxNode,
1491}
1492impl AlterTextSearchParser {
1493    #[inline]
1494    pub fn path(&self) -> Option<Path> {
1495        support::child(&self.syntax)
1496    }
1497    #[inline]
1498    pub fn rename_to(&self) -> Option<RenameTo> {
1499        support::child(&self.syntax)
1500    }
1501    #[inline]
1502    pub fn set_schema(&self) -> Option<SetSchema> {
1503        support::child(&self.syntax)
1504    }
1505    #[inline]
1506    pub fn alter_token(&self) -> Option<SyntaxToken> {
1507        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1508    }
1509    #[inline]
1510    pub fn parser_token(&self) -> Option<SyntaxToken> {
1511        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1512    }
1513    #[inline]
1514    pub fn search_token(&self) -> Option<SyntaxToken> {
1515        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1516    }
1517    #[inline]
1518    pub fn text_token(&self) -> Option<SyntaxToken> {
1519        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1520    }
1521}
1522
1523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1524pub struct AlterTextSearchTemplate {
1525    pub(crate) syntax: SyntaxNode,
1526}
1527impl AlterTextSearchTemplate {
1528    #[inline]
1529    pub fn path(&self) -> Option<Path> {
1530        support::child(&self.syntax)
1531    }
1532    #[inline]
1533    pub fn rename_to(&self) -> Option<RenameTo> {
1534        support::child(&self.syntax)
1535    }
1536    #[inline]
1537    pub fn set_schema(&self) -> Option<SetSchema> {
1538        support::child(&self.syntax)
1539    }
1540    #[inline]
1541    pub fn alter_token(&self) -> Option<SyntaxToken> {
1542        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1543    }
1544    #[inline]
1545    pub fn search_token(&self) -> Option<SyntaxToken> {
1546        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1547    }
1548    #[inline]
1549    pub fn template_token(&self) -> Option<SyntaxToken> {
1550        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1551    }
1552    #[inline]
1553    pub fn text_token(&self) -> Option<SyntaxToken> {
1554        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1555    }
1556}
1557
1558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1559pub struct AlterTrigger {
1560    pub(crate) syntax: SyntaxNode,
1561}
1562impl AlterTrigger {
1563    #[inline]
1564    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1565        support::child(&self.syntax)
1566    }
1567    #[inline]
1568    pub fn name_ref(&self) -> Option<NameRef> {
1569        support::child(&self.syntax)
1570    }
1571    #[inline]
1572    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1573        support::child(&self.syntax)
1574    }
1575    #[inline]
1576    pub fn on_table(&self) -> Option<OnTable> {
1577        support::child(&self.syntax)
1578    }
1579    #[inline]
1580    pub fn rename_to(&self) -> Option<RenameTo> {
1581        support::child(&self.syntax)
1582    }
1583    #[inline]
1584    pub fn alter_token(&self) -> Option<SyntaxToken> {
1585        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1586    }
1587    #[inline]
1588    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1589        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1590    }
1591}
1592
1593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1594pub struct AlterType {
1595    pub(crate) syntax: SyntaxNode,
1596}
1597impl AlterType {
1598    #[inline]
1599    pub fn path(&self) -> Option<Path> {
1600        support::child(&self.syntax)
1601    }
1602    #[inline]
1603    pub fn alter_token(&self) -> Option<SyntaxToken> {
1604        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1605    }
1606    #[inline]
1607    pub fn type_token(&self) -> Option<SyntaxToken> {
1608        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1609    }
1610}
1611
1612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1613pub struct AlterUser {
1614    pub(crate) syntax: SyntaxNode,
1615}
1616impl AlterUser {
1617    #[inline]
1618    pub fn role(&self) -> Option<Role> {
1619        support::child(&self.syntax)
1620    }
1621    #[inline]
1622    pub fn alter_token(&self) -> Option<SyntaxToken> {
1623        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1624    }
1625    #[inline]
1626    pub fn user_token(&self) -> Option<SyntaxToken> {
1627        support::token(&self.syntax, SyntaxKind::USER_KW)
1628    }
1629}
1630
1631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1632pub struct AlterUserMapping {
1633    pub(crate) syntax: SyntaxNode,
1634}
1635impl AlterUserMapping {
1636    #[inline]
1637    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1638        support::child(&self.syntax)
1639    }
1640    #[inline]
1641    pub fn name_ref(&self) -> Option<NameRef> {
1642        support::child(&self.syntax)
1643    }
1644    #[inline]
1645    pub fn role(&self) -> Option<Role> {
1646        support::child(&self.syntax)
1647    }
1648    #[inline]
1649    pub fn alter_token(&self) -> Option<SyntaxToken> {
1650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1651    }
1652    #[inline]
1653    pub fn for_token(&self) -> Option<SyntaxToken> {
1654        support::token(&self.syntax, SyntaxKind::FOR_KW)
1655    }
1656    #[inline]
1657    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1658        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1659    }
1660    #[inline]
1661    pub fn server_token(&self) -> Option<SyntaxToken> {
1662        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1663    }
1664    #[inline]
1665    pub fn user_token(&self) -> Option<SyntaxToken> {
1666        support::token(&self.syntax, SyntaxKind::USER_KW)
1667    }
1668}
1669
1670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1671pub struct AlterView {
1672    pub(crate) syntax: SyntaxNode,
1673}
1674impl AlterView {
1675    #[inline]
1676    pub fn path(&self) -> Option<Path> {
1677        support::child(&self.syntax)
1678    }
1679    #[inline]
1680    pub fn alter_token(&self) -> Option<SyntaxToken> {
1681        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1682    }
1683    #[inline]
1684    pub fn view_token(&self) -> Option<SyntaxToken> {
1685        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1686    }
1687}
1688
1689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1690pub struct Analyze {
1691    pub(crate) syntax: SyntaxNode,
1692}
1693impl Analyze {
1694    #[inline]
1695    pub fn option_item_list(&self) -> Option<OptionItemList> {
1696        support::child(&self.syntax)
1697    }
1698    #[inline]
1699    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1700        support::child(&self.syntax)
1701    }
1702    #[inline]
1703    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1704        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1705    }
1706    #[inline]
1707    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1708        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1709    }
1710    #[inline]
1711    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1712        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1713    }
1714}
1715
1716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1717pub struct AnyFn {
1718    pub(crate) syntax: SyntaxNode,
1719}
1720impl AnyFn {
1721    #[inline]
1722    pub fn expr(&self) -> Option<Expr> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn select_variant(&self) -> Option<SelectVariant> {
1727        support::child(&self.syntax)
1728    }
1729    #[inline]
1730    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::L_PAREN)
1732    }
1733    #[inline]
1734    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::R_PAREN)
1736    }
1737    #[inline]
1738    pub fn any_token(&self) -> Option<SyntaxToken> {
1739        support::token(&self.syntax, SyntaxKind::ANY_KW)
1740    }
1741}
1742
1743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1744pub struct Arg {
1745    pub(crate) syntax: SyntaxNode,
1746}
1747impl Arg {
1748    #[inline]
1749    pub fn expr(&self) -> Option<Expr> {
1750        support::child(&self.syntax)
1751    }
1752}
1753
1754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1755pub struct ArgList {
1756    pub(crate) syntax: SyntaxNode,
1757}
1758impl ArgList {
1759    #[inline]
1760    pub fn args(&self) -> AstChildren<Expr> {
1761        support::children(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn expr(&self) -> Option<Expr> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::L_PAREN)
1770    }
1771    #[inline]
1772    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::R_PAREN)
1774    }
1775    #[inline]
1776    pub fn star_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::STAR)
1778    }
1779    #[inline]
1780    pub fn all_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::ALL_KW)
1782    }
1783    #[inline]
1784    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1785        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1786    }
1787    #[inline]
1788    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1789        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1790    }
1791}
1792
1793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1794pub struct ArrayExpr {
1795    pub(crate) syntax: SyntaxNode,
1796}
1797impl ArrayExpr {
1798    #[inline]
1799    pub fn exprs(&self) -> AstChildren<Expr> {
1800        support::children(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn select(&self) -> Option<Select> {
1804        support::child(&self.syntax)
1805    }
1806    #[inline]
1807    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::L_PAREN)
1809    }
1810    #[inline]
1811    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::R_PAREN)
1813    }
1814    #[inline]
1815    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::L_BRACK)
1817    }
1818    #[inline]
1819    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1820        support::token(&self.syntax, SyntaxKind::R_BRACK)
1821    }
1822    #[inline]
1823    pub fn array_token(&self) -> Option<SyntaxToken> {
1824        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1825    }
1826}
1827
1828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1829pub struct ArrayType {
1830    pub(crate) syntax: SyntaxNode,
1831}
1832impl ArrayType {
1833    #[inline]
1834    pub fn expr(&self) -> Option<Expr> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn name_ref(&self) -> Option<NameRef> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn ty(&self) -> Option<Type> {
1843        support::child(&self.syntax)
1844    }
1845    #[inline]
1846    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::L_BRACK)
1848    }
1849    #[inline]
1850    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::R_BRACK)
1852    }
1853    #[inline]
1854    pub fn array_token(&self) -> Option<SyntaxToken> {
1855        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1856    }
1857}
1858
1859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1860pub struct AsFuncOption {
1861    pub(crate) syntax: SyntaxNode,
1862}
1863impl AsFuncOption {
1864    #[inline]
1865    pub fn definition(&self) -> Option<Literal> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn link_symbol(&self) -> Option<Literal> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn obj_file(&self) -> Option<Literal> {
1874        support::child(&self.syntax)
1875    }
1876    #[inline]
1877    pub fn comma_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::COMMA)
1879    }
1880    #[inline]
1881    pub fn as_token(&self) -> Option<SyntaxToken> {
1882        support::token(&self.syntax, SyntaxKind::AS_KW)
1883    }
1884}
1885
1886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1887pub struct AsName {
1888    pub(crate) syntax: SyntaxNode,
1889}
1890impl AsName {
1891    #[inline]
1892    pub fn name(&self) -> Option<Name> {
1893        support::child(&self.syntax)
1894    }
1895    #[inline]
1896    pub fn as_token(&self) -> Option<SyntaxToken> {
1897        support::token(&self.syntax, SyntaxKind::AS_KW)
1898    }
1899}
1900
1901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1902pub struct AtTimeZone {
1903    pub(crate) syntax: SyntaxNode,
1904}
1905impl AtTimeZone {
1906    #[inline]
1907    pub fn at_token(&self) -> Option<SyntaxToken> {
1908        support::token(&self.syntax, SyntaxKind::AT_KW)
1909    }
1910    #[inline]
1911    pub fn time_token(&self) -> Option<SyntaxToken> {
1912        support::token(&self.syntax, SyntaxKind::TIME_KW)
1913    }
1914    #[inline]
1915    pub fn zone_token(&self) -> Option<SyntaxToken> {
1916        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1917    }
1918}
1919
1920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1921pub struct AttachPartition {
1922    pub(crate) syntax: SyntaxNode,
1923}
1924impl AttachPartition {
1925    #[inline]
1926    pub fn partition_type(&self) -> Option<PartitionType> {
1927        support::child(&self.syntax)
1928    }
1929    #[inline]
1930    pub fn path(&self) -> Option<Path> {
1931        support::child(&self.syntax)
1932    }
1933    #[inline]
1934    pub fn attach_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1936    }
1937    #[inline]
1938    pub fn partition_token(&self) -> Option<SyntaxToken> {
1939        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1940    }
1941}
1942
1943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1944pub struct AttributeList {
1945    pub(crate) syntax: SyntaxNode,
1946}
1947impl AttributeList {
1948    #[inline]
1949    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1950        support::children(&self.syntax)
1951    }
1952    #[inline]
1953    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1954        support::token(&self.syntax, SyntaxKind::L_PAREN)
1955    }
1956    #[inline]
1957    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1958        support::token(&self.syntax, SyntaxKind::R_PAREN)
1959    }
1960}
1961
1962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1963pub struct AttributeOption {
1964    pub(crate) syntax: SyntaxNode,
1965}
1966impl AttributeOption {
1967    #[inline]
1968    pub fn attribute_value(&self) -> Option<AttributeValue> {
1969        support::child(&self.syntax)
1970    }
1971    #[inline]
1972    pub fn name(&self) -> Option<Name> {
1973        support::child(&self.syntax)
1974    }
1975    #[inline]
1976    pub fn dot_token(&self) -> Option<SyntaxToken> {
1977        support::token(&self.syntax, SyntaxKind::DOT)
1978    }
1979    #[inline]
1980    pub fn eq_token(&self) -> Option<SyntaxToken> {
1981        support::token(&self.syntax, SyntaxKind::EQ)
1982    }
1983}
1984
1985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1986pub struct AttributeValue {
1987    pub(crate) syntax: SyntaxNode,
1988}
1989impl AttributeValue {
1990    #[inline]
1991    pub fn literal(&self) -> Option<Literal> {
1992        support::child(&self.syntax)
1993    }
1994    #[inline]
1995    pub fn op(&self) -> Option<Op> {
1996        support::child(&self.syntax)
1997    }
1998    #[inline]
1999    pub fn ty(&self) -> Option<Type> {
2000        support::child(&self.syntax)
2001    }
2002    #[inline]
2003    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2004        support::token(&self.syntax, SyntaxKind::L_PAREN)
2005    }
2006    #[inline]
2007    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2008        support::token(&self.syntax, SyntaxKind::R_PAREN)
2009    }
2010    #[inline]
2011    pub fn none_token(&self) -> Option<SyntaxToken> {
2012        support::token(&self.syntax, SyntaxKind::NONE_KW)
2013    }
2014    #[inline]
2015    pub fn operator_token(&self) -> Option<SyntaxToken> {
2016        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2017    }
2018}
2019
2020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2021pub struct Begin {
2022    pub(crate) syntax: SyntaxNode,
2023}
2024impl Begin {
2025    #[inline]
2026    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2027        support::child(&self.syntax)
2028    }
2029    #[inline]
2030    pub fn begin_token(&self) -> Option<SyntaxToken> {
2031        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2032    }
2033    #[inline]
2034    pub fn start_token(&self) -> Option<SyntaxToken> {
2035        support::token(&self.syntax, SyntaxKind::START_KW)
2036    }
2037    #[inline]
2038    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2039        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2040    }
2041    #[inline]
2042    pub fn work_token(&self) -> Option<SyntaxToken> {
2043        support::token(&self.syntax, SyntaxKind::WORK_KW)
2044    }
2045}
2046
2047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2048pub struct BeginFuncOption {
2049    pub(crate) syntax: SyntaxNode,
2050}
2051impl BeginFuncOption {
2052    #[inline]
2053    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2054        support::child(&self.syntax)
2055    }
2056    #[inline]
2057    pub fn stmt(&self) -> Option<Stmt> {
2058        support::child(&self.syntax)
2059    }
2060    #[inline]
2061    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2062        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2063    }
2064}
2065
2066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2067pub struct BeginFuncOptionList {
2068    pub(crate) syntax: SyntaxNode,
2069}
2070impl BeginFuncOptionList {
2071    #[inline]
2072    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2073        support::children(&self.syntax)
2074    }
2075    #[inline]
2076    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2077        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2078    }
2079    #[inline]
2080    pub fn begin_token(&self) -> Option<SyntaxToken> {
2081        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2082    }
2083    #[inline]
2084    pub fn end_token(&self) -> Option<SyntaxToken> {
2085        support::token(&self.syntax, SyntaxKind::END_KW)
2086    }
2087}
2088
2089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2090pub struct BetweenExpr {
2091    pub(crate) syntax: SyntaxNode,
2092}
2093impl BetweenExpr {
2094    #[inline]
2095    pub fn and_token(&self) -> Option<SyntaxToken> {
2096        support::token(&self.syntax, SyntaxKind::AND_KW)
2097    }
2098    #[inline]
2099    pub fn between_token(&self) -> Option<SyntaxToken> {
2100        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2101    }
2102}
2103
2104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2105pub struct BinExpr {
2106    pub(crate) syntax: SyntaxNode,
2107}
2108impl BinExpr {
2109    #[inline]
2110    pub fn op(&self) -> Option<Op> {
2111        support::child(&self.syntax)
2112    }
2113}
2114
2115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2116pub struct BitType {
2117    pub(crate) syntax: SyntaxNode,
2118}
2119impl BitType {
2120    #[inline]
2121    pub fn arg_list(&self) -> Option<ArgList> {
2122        support::child(&self.syntax)
2123    }
2124    #[inline]
2125    pub fn bit_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::BIT_KW)
2127    }
2128    #[inline]
2129    pub fn varying_token(&self) -> Option<SyntaxToken> {
2130        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2131    }
2132}
2133
2134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2135pub struct Call {
2136    pub(crate) syntax: SyntaxNode,
2137}
2138impl Call {
2139    #[inline]
2140    pub fn arg_list(&self) -> Option<ArgList> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn path(&self) -> Option<Path> {
2145        support::child(&self.syntax)
2146    }
2147    #[inline]
2148    pub fn call_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::CALL_KW)
2150    }
2151}
2152
2153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2154pub struct CallExpr {
2155    pub(crate) syntax: SyntaxNode,
2156}
2157impl CallExpr {
2158    #[inline]
2159    pub fn all_fn(&self) -> Option<AllFn> {
2160        support::child(&self.syntax)
2161    }
2162    #[inline]
2163    pub fn any_fn(&self) -> Option<AnyFn> {
2164        support::child(&self.syntax)
2165    }
2166    #[inline]
2167    pub fn arg_list(&self) -> Option<ArgList> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn exists_fn(&self) -> Option<ExistsFn> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn expr(&self) -> Option<Expr> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn extract_fn(&self) -> Option<ExtractFn> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn filter_clause(&self) -> Option<FilterClause> {
2184        support::child(&self.syntax)
2185    }
2186    #[inline]
2187    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2188        support::child(&self.syntax)
2189    }
2190    #[inline]
2191    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2192        support::child(&self.syntax)
2193    }
2194    #[inline]
2195    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2196        support::child(&self.syntax)
2197    }
2198    #[inline]
2199    pub fn json_fn(&self) -> Option<JsonFn> {
2200        support::child(&self.syntax)
2201    }
2202    #[inline]
2203    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2204        support::child(&self.syntax)
2205    }
2206    #[inline]
2207    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2208        support::child(&self.syntax)
2209    }
2210    #[inline]
2211    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2212        support::child(&self.syntax)
2213    }
2214    #[inline]
2215    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2216        support::child(&self.syntax)
2217    }
2218    #[inline]
2219    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2220        support::child(&self.syntax)
2221    }
2222    #[inline]
2223    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2224        support::child(&self.syntax)
2225    }
2226    #[inline]
2227    pub fn over_clause(&self) -> Option<OverClause> {
2228        support::child(&self.syntax)
2229    }
2230    #[inline]
2231    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2232        support::child(&self.syntax)
2233    }
2234    #[inline]
2235    pub fn position_fn(&self) -> Option<PositionFn> {
2236        support::child(&self.syntax)
2237    }
2238    #[inline]
2239    pub fn some_fn(&self) -> Option<SomeFn> {
2240        support::child(&self.syntax)
2241    }
2242    #[inline]
2243    pub fn substring_fn(&self) -> Option<SubstringFn> {
2244        support::child(&self.syntax)
2245    }
2246    #[inline]
2247    pub fn trim_fn(&self) -> Option<TrimFn> {
2248        support::child(&self.syntax)
2249    }
2250    #[inline]
2251    pub fn within_clause(&self) -> Option<WithinClause> {
2252        support::child(&self.syntax)
2253    }
2254    #[inline]
2255    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2256        support::child(&self.syntax)
2257    }
2258    #[inline]
2259    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2260        support::child(&self.syntax)
2261    }
2262    #[inline]
2263    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2264        support::child(&self.syntax)
2265    }
2266    #[inline]
2267    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2268        support::child(&self.syntax)
2269    }
2270    #[inline]
2271    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2272        support::child(&self.syntax)
2273    }
2274    #[inline]
2275    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2276        support::child(&self.syntax)
2277    }
2278    #[inline]
2279    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2280        support::child(&self.syntax)
2281    }
2282}
2283
2284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2285pub struct Cascade {
2286    pub(crate) syntax: SyntaxNode,
2287}
2288impl Cascade {
2289    #[inline]
2290    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct CaseExpr {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl CaseExpr {
2300    #[inline]
2301    pub fn else_clause(&self) -> Option<ElseClause> {
2302        support::child(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn expr(&self) -> Option<Expr> {
2306        support::child(&self.syntax)
2307    }
2308    #[inline]
2309    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2310        support::child(&self.syntax)
2311    }
2312    #[inline]
2313    pub fn case_token(&self) -> Option<SyntaxToken> {
2314        support::token(&self.syntax, SyntaxKind::CASE_KW)
2315    }
2316}
2317
2318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2319pub struct CastExpr {
2320    pub(crate) syntax: SyntaxNode,
2321}
2322impl CastExpr {
2323    #[inline]
2324    pub fn colon_colon(&self) -> Option<ColonColon> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn expr(&self) -> Option<Expr> {
2329        support::child(&self.syntax)
2330    }
2331    #[inline]
2332    pub fn literal(&self) -> Option<Literal> {
2333        support::child(&self.syntax)
2334    }
2335    #[inline]
2336    pub fn ty(&self) -> Option<Type> {
2337        support::child(&self.syntax)
2338    }
2339    #[inline]
2340    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2341        support::token(&self.syntax, SyntaxKind::L_PAREN)
2342    }
2343    #[inline]
2344    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2345        support::token(&self.syntax, SyntaxKind::R_PAREN)
2346    }
2347    #[inline]
2348    pub fn as_token(&self) -> Option<SyntaxToken> {
2349        support::token(&self.syntax, SyntaxKind::AS_KW)
2350    }
2351    #[inline]
2352    pub fn cast_token(&self) -> Option<SyntaxToken> {
2353        support::token(&self.syntax, SyntaxKind::CAST_KW)
2354    }
2355    #[inline]
2356    pub fn treat_token(&self) -> Option<SyntaxToken> {
2357        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2358    }
2359}
2360
2361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2362pub struct CastSig {
2363    pub(crate) syntax: SyntaxNode,
2364}
2365impl CastSig {
2366    #[inline]
2367    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::L_PAREN)
2369    }
2370    #[inline]
2371    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::R_PAREN)
2373    }
2374    #[inline]
2375    pub fn as_token(&self) -> Option<SyntaxToken> {
2376        support::token(&self.syntax, SyntaxKind::AS_KW)
2377    }
2378}
2379
2380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2381pub struct CharType {
2382    pub(crate) syntax: SyntaxNode,
2383}
2384impl CharType {
2385    #[inline]
2386    pub fn arg_list(&self) -> Option<ArgList> {
2387        support::child(&self.syntax)
2388    }
2389    #[inline]
2390    pub fn char_token(&self) -> Option<SyntaxToken> {
2391        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2392    }
2393    #[inline]
2394    pub fn character_token(&self) -> Option<SyntaxToken> {
2395        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2396    }
2397    #[inline]
2398    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2399        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2400    }
2401    #[inline]
2402    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2403        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2404    }
2405    #[inline]
2406    pub fn varying_token(&self) -> Option<SyntaxToken> {
2407        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2408    }
2409}
2410
2411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2412pub struct CheckConstraint {
2413    pub(crate) syntax: SyntaxNode,
2414}
2415impl CheckConstraint {
2416    #[inline]
2417    pub fn expr(&self) -> Option<Expr> {
2418        support::child(&self.syntax)
2419    }
2420    #[inline]
2421    pub fn name(&self) -> Option<Name> {
2422        support::child(&self.syntax)
2423    }
2424    #[inline]
2425    pub fn no_inherit(&self) -> Option<NoInherit> {
2426        support::child(&self.syntax)
2427    }
2428    #[inline]
2429    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2430        support::token(&self.syntax, SyntaxKind::L_PAREN)
2431    }
2432    #[inline]
2433    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2434        support::token(&self.syntax, SyntaxKind::R_PAREN)
2435    }
2436    #[inline]
2437    pub fn check_token(&self) -> Option<SyntaxToken> {
2438        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2439    }
2440    #[inline]
2441    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2442        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2443    }
2444}
2445
2446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2447pub struct Checkpoint {
2448    pub(crate) syntax: SyntaxNode,
2449}
2450impl Checkpoint {
2451    #[inline]
2452    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2453        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2454    }
2455}
2456
2457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2458pub struct Close {
2459    pub(crate) syntax: SyntaxNode,
2460}
2461impl Close {
2462    #[inline]
2463    pub fn name_ref(&self) -> Option<NameRef> {
2464        support::child(&self.syntax)
2465    }
2466    #[inline]
2467    pub fn close_token(&self) -> Option<SyntaxToken> {
2468        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2469    }
2470}
2471
2472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2473pub struct Cluster {
2474    pub(crate) syntax: SyntaxNode,
2475}
2476impl Cluster {
2477    #[inline]
2478    pub fn option_item_list(&self) -> Option<OptionItemList> {
2479        support::child(&self.syntax)
2480    }
2481    #[inline]
2482    pub fn path(&self) -> Option<Path> {
2483        support::child(&self.syntax)
2484    }
2485    #[inline]
2486    pub fn using_method(&self) -> Option<UsingMethod> {
2487        support::child(&self.syntax)
2488    }
2489    #[inline]
2490    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2491        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2492    }
2493    #[inline]
2494    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2495        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2496    }
2497}
2498
2499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2500pub struct ClusterOn {
2501    pub(crate) syntax: SyntaxNode,
2502}
2503impl ClusterOn {
2504    #[inline]
2505    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2506        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2507    }
2508    #[inline]
2509    pub fn on_token(&self) -> Option<SyntaxToken> {
2510        support::token(&self.syntax, SyntaxKind::ON_KW)
2511    }
2512}
2513
2514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2515pub struct Collate {
2516    pub(crate) syntax: SyntaxNode,
2517}
2518impl Collate {
2519    #[inline]
2520    pub fn path(&self) -> Option<Path> {
2521        support::child(&self.syntax)
2522    }
2523    #[inline]
2524    pub fn collate_token(&self) -> Option<SyntaxToken> {
2525        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2526    }
2527}
2528
2529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2530pub struct ColonColon {
2531    pub(crate) syntax: SyntaxNode,
2532}
2533impl ColonColon {
2534    #[inline]
2535    pub fn colon_token(&self) -> Option<SyntaxToken> {
2536        support::token(&self.syntax, SyntaxKind::COLON)
2537    }
2538}
2539
2540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2541pub struct ColonEq {
2542    pub(crate) syntax: SyntaxNode,
2543}
2544impl ColonEq {
2545    #[inline]
2546    pub fn colon_token(&self) -> Option<SyntaxToken> {
2547        support::token(&self.syntax, SyntaxKind::COLON)
2548    }
2549    #[inline]
2550    pub fn eq_token(&self) -> Option<SyntaxToken> {
2551        support::token(&self.syntax, SyntaxKind::EQ)
2552    }
2553}
2554
2555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2556pub struct Column {
2557    pub(crate) syntax: SyntaxNode,
2558}
2559impl Column {
2560    #[inline]
2561    pub fn collate(&self) -> Option<Collate> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn compression_method(&self) -> Option<CompressionMethod> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn constraint(&self) -> Option<ColumnConstraint> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn enforced(&self) -> Option<Enforced> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn index_expr(&self) -> Option<IndexExpr> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn initially_deferred_constraint_option(
2586        &self,
2587    ) -> Option<InitiallyDeferredConstraintOption> {
2588        support::child(&self.syntax)
2589    }
2590    #[inline]
2591    pub fn initially_immediate_constraint_option(
2592        &self,
2593    ) -> Option<InitiallyImmediateConstraintOption> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn name(&self) -> Option<Name> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn name_ref(&self) -> Option<NameRef> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn not_enforced(&self) -> Option<NotEnforced> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn storage(&self) -> Option<Storage> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn ty(&self) -> Option<Type> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn with_options(&self) -> Option<WithOptions> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn period_token(&self) -> Option<SyntaxToken> {
2626        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2627    }
2628}
2629
2630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2631pub struct ColumnList {
2632    pub(crate) syntax: SyntaxNode,
2633}
2634impl ColumnList {
2635    #[inline]
2636    pub fn columns(&self) -> AstChildren<Column> {
2637        support::children(&self.syntax)
2638    }
2639    #[inline]
2640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2641        support::token(&self.syntax, SyntaxKind::L_PAREN)
2642    }
2643    #[inline]
2644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2645        support::token(&self.syntax, SyntaxKind::R_PAREN)
2646    }
2647}
2648
2649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2650pub struct CommentOn {
2651    pub(crate) syntax: SyntaxNode,
2652}
2653impl CommentOn {
2654    #[inline]
2655    pub fn literal(&self) -> Option<Literal> {
2656        support::child(&self.syntax)
2657    }
2658    #[inline]
2659    pub fn name_ref(&self) -> Option<NameRef> {
2660        support::child(&self.syntax)
2661    }
2662    #[inline]
2663    pub fn path(&self) -> Option<Path> {
2664        support::child(&self.syntax)
2665    }
2666    #[inline]
2667    pub fn comment_token(&self) -> Option<SyntaxToken> {
2668        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2669    }
2670    #[inline]
2671    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2672        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2673    }
2674    #[inline]
2675    pub fn domain_token(&self) -> Option<SyntaxToken> {
2676        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2677    }
2678    #[inline]
2679    pub fn is_token(&self) -> Option<SyntaxToken> {
2680        support::token(&self.syntax, SyntaxKind::IS_KW)
2681    }
2682    #[inline]
2683    pub fn null_token(&self) -> Option<SyntaxToken> {
2684        support::token(&self.syntax, SyntaxKind::NULL_KW)
2685    }
2686    #[inline]
2687    pub fn on_token(&self) -> Option<SyntaxToken> {
2688        support::token(&self.syntax, SyntaxKind::ON_KW)
2689    }
2690    #[inline]
2691    pub fn table_token(&self) -> Option<SyntaxToken> {
2692        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2693    }
2694}
2695
2696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2697pub struct Commit {
2698    pub(crate) syntax: SyntaxNode,
2699}
2700impl Commit {
2701    #[inline]
2702    pub fn literal(&self) -> Option<Literal> {
2703        support::child(&self.syntax)
2704    }
2705    #[inline]
2706    pub fn and_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::AND_KW)
2708    }
2709    #[inline]
2710    pub fn chain_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2712    }
2713    #[inline]
2714    pub fn commit_token(&self) -> Option<SyntaxToken> {
2715        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2716    }
2717    #[inline]
2718    pub fn no_token(&self) -> Option<SyntaxToken> {
2719        support::token(&self.syntax, SyntaxKind::NO_KW)
2720    }
2721    #[inline]
2722    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2724    }
2725    #[inline]
2726    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2728    }
2729    #[inline]
2730    pub fn work_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::WORK_KW)
2732    }
2733}
2734
2735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2736pub struct CompoundSelect {
2737    pub(crate) syntax: SyntaxNode,
2738}
2739impl CompoundSelect {
2740    #[inline]
2741    pub fn except_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2743    }
2744    #[inline]
2745    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2747    }
2748    #[inline]
2749    pub fn union_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::UNION_KW)
2751    }
2752}
2753
2754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2755pub struct CompressionMethod {
2756    pub(crate) syntax: SyntaxNode,
2757}
2758impl CompressionMethod {
2759    #[inline]
2760    pub fn compression_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2762    }
2763    #[inline]
2764    pub fn default_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2766    }
2767    #[inline]
2768    pub fn ident_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::IDENT)
2770    }
2771}
2772
2773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2774pub struct ConflictDoNothing {
2775    pub(crate) syntax: SyntaxNode,
2776}
2777impl ConflictDoNothing {
2778    #[inline]
2779    pub fn do_token(&self) -> Option<SyntaxToken> {
2780        support::token(&self.syntax, SyntaxKind::DO_KW)
2781    }
2782    #[inline]
2783    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2784        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2785    }
2786}
2787
2788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2789pub struct ConflictDoUpdateSet {
2790    pub(crate) syntax: SyntaxNode,
2791}
2792impl ConflictDoUpdateSet {
2793    #[inline]
2794    pub fn set_clause(&self) -> Option<SetClause> {
2795        support::child(&self.syntax)
2796    }
2797    #[inline]
2798    pub fn where_clause(&self) -> Option<WhereClause> {
2799        support::child(&self.syntax)
2800    }
2801    #[inline]
2802    pub fn do_token(&self) -> Option<SyntaxToken> {
2803        support::token(&self.syntax, SyntaxKind::DO_KW)
2804    }
2805    #[inline]
2806    pub fn update_token(&self) -> Option<SyntaxToken> {
2807        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2808    }
2809}
2810
2811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2812pub struct ConflictIndexItem {
2813    pub(crate) syntax: SyntaxNode,
2814}
2815impl ConflictIndexItem {
2816    #[inline]
2817    pub fn collate(&self) -> Option<Collate> {
2818        support::child(&self.syntax)
2819    }
2820    #[inline]
2821    pub fn expr(&self) -> Option<Expr> {
2822        support::child(&self.syntax)
2823    }
2824    #[inline]
2825    pub fn ident_token(&self) -> Option<SyntaxToken> {
2826        support::token(&self.syntax, SyntaxKind::IDENT)
2827    }
2828}
2829
2830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2831pub struct ConflictIndexItemList {
2832    pub(crate) syntax: SyntaxNode,
2833}
2834impl ConflictIndexItemList {
2835    #[inline]
2836    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2837        support::children(&self.syntax)
2838    }
2839    #[inline]
2840    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2841        support::token(&self.syntax, SyntaxKind::L_PAREN)
2842    }
2843    #[inline]
2844    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2845        support::token(&self.syntax, SyntaxKind::R_PAREN)
2846    }
2847}
2848
2849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2850pub struct ConflictOnConstraint {
2851    pub(crate) syntax: SyntaxNode,
2852}
2853impl ConflictOnConstraint {
2854    #[inline]
2855    pub fn name_ref(&self) -> Option<NameRef> {
2856        support::child(&self.syntax)
2857    }
2858    #[inline]
2859    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2860        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2861    }
2862    #[inline]
2863    pub fn on_token(&self) -> Option<SyntaxToken> {
2864        support::token(&self.syntax, SyntaxKind::ON_KW)
2865    }
2866}
2867
2868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2869pub struct ConflictOnIndex {
2870    pub(crate) syntax: SyntaxNode,
2871}
2872impl ConflictOnIndex {
2873    #[inline]
2874    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2875        support::child(&self.syntax)
2876    }
2877    #[inline]
2878    pub fn where_clause(&self) -> Option<WhereClause> {
2879        support::child(&self.syntax)
2880    }
2881}
2882
2883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2884pub struct ConstraintExclusion {
2885    pub(crate) syntax: SyntaxNode,
2886}
2887impl ConstraintExclusion {
2888    #[inline]
2889    pub fn expr(&self) -> Option<Expr> {
2890        support::child(&self.syntax)
2891    }
2892    #[inline]
2893    pub fn op(&self) -> Option<Op> {
2894        support::child(&self.syntax)
2895    }
2896    #[inline]
2897    pub fn with_token(&self) -> Option<SyntaxToken> {
2898        support::token(&self.syntax, SyntaxKind::WITH_KW)
2899    }
2900}
2901
2902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2903pub struct ConstraintExclusionList {
2904    pub(crate) syntax: SyntaxNode,
2905}
2906impl ConstraintExclusionList {
2907    #[inline]
2908    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2909        support::children(&self.syntax)
2910    }
2911    #[inline]
2912    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2913        support::token(&self.syntax, SyntaxKind::L_PAREN)
2914    }
2915    #[inline]
2916    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2917        support::token(&self.syntax, SyntaxKind::R_PAREN)
2918    }
2919}
2920
2921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2922pub struct ConstraintIncludeClause {
2923    pub(crate) syntax: SyntaxNode,
2924}
2925impl ConstraintIncludeClause {
2926    #[inline]
2927    pub fn include_token(&self) -> Option<SyntaxToken> {
2928        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2929    }
2930}
2931
2932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2933pub struct ConstraintIndexMethod {
2934    pub(crate) syntax: SyntaxNode,
2935}
2936impl ConstraintIndexMethod {
2937    #[inline]
2938    pub fn using_token(&self) -> Option<SyntaxToken> {
2939        support::token(&self.syntax, SyntaxKind::USING_KW)
2940    }
2941}
2942
2943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2944pub struct ConstraintIndexTablespace {
2945    pub(crate) syntax: SyntaxNode,
2946}
2947impl ConstraintIndexTablespace {
2948    #[inline]
2949    pub fn name_ref(&self) -> Option<NameRef> {
2950        support::child(&self.syntax)
2951    }
2952    #[inline]
2953    pub fn index_token(&self) -> Option<SyntaxToken> {
2954        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2955    }
2956    #[inline]
2957    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2958        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2959    }
2960    #[inline]
2961    pub fn using_token(&self) -> Option<SyntaxToken> {
2962        support::token(&self.syntax, SyntaxKind::USING_KW)
2963    }
2964}
2965
2966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2967pub struct Copy {
2968    pub(crate) syntax: SyntaxNode,
2969}
2970impl Copy {
2971    #[inline]
2972    pub fn column_list(&self) -> Option<ColumnList> {
2973        support::child(&self.syntax)
2974    }
2975    #[inline]
2976    pub fn literal(&self) -> Option<Literal> {
2977        support::child(&self.syntax)
2978    }
2979    #[inline]
2980    pub fn path(&self) -> Option<Path> {
2981        support::child(&self.syntax)
2982    }
2983    #[inline]
2984    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
2985        support::child(&self.syntax)
2986    }
2987    #[inline]
2988    pub fn where_clause(&self) -> Option<WhereClause> {
2989        support::child(&self.syntax)
2990    }
2991    #[inline]
2992    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2993        support::token(&self.syntax, SyntaxKind::L_PAREN)
2994    }
2995    #[inline]
2996    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2997        support::token(&self.syntax, SyntaxKind::R_PAREN)
2998    }
2999    #[inline]
3000    pub fn binary_token(&self) -> Option<SyntaxToken> {
3001        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3002    }
3003    #[inline]
3004    pub fn copy_token(&self) -> Option<SyntaxToken> {
3005        support::token(&self.syntax, SyntaxKind::COPY_KW)
3006    }
3007    #[inline]
3008    pub fn from_token(&self) -> Option<SyntaxToken> {
3009        support::token(&self.syntax, SyntaxKind::FROM_KW)
3010    }
3011    #[inline]
3012    pub fn program_token(&self) -> Option<SyntaxToken> {
3013        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3014    }
3015    #[inline]
3016    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3017        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3018    }
3019    #[inline]
3020    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3021        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3022    }
3023    #[inline]
3024    pub fn to_token(&self) -> Option<SyntaxToken> {
3025        support::token(&self.syntax, SyntaxKind::TO_KW)
3026    }
3027    #[inline]
3028    pub fn with_token(&self) -> Option<SyntaxToken> {
3029        support::token(&self.syntax, SyntaxKind::WITH_KW)
3030    }
3031}
3032
3033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3034pub struct CopyOption {
3035    pub(crate) syntax: SyntaxNode,
3036}
3037impl CopyOption {
3038    #[inline]
3039    pub fn name(&self) -> Option<Name> {
3040        support::child(&self.syntax)
3041    }
3042}
3043
3044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3045pub struct CopyOptionList {
3046    pub(crate) syntax: SyntaxNode,
3047}
3048impl CopyOptionList {
3049    #[inline]
3050    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3051        support::children(&self.syntax)
3052    }
3053    #[inline]
3054    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3055        support::token(&self.syntax, SyntaxKind::L_PAREN)
3056    }
3057    #[inline]
3058    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3059        support::token(&self.syntax, SyntaxKind::R_PAREN)
3060    }
3061}
3062
3063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3064pub struct CostFuncOption {
3065    pub(crate) syntax: SyntaxNode,
3066}
3067impl CostFuncOption {
3068    #[inline]
3069    pub fn cost_token(&self) -> Option<SyntaxToken> {
3070        support::token(&self.syntax, SyntaxKind::COST_KW)
3071    }
3072}
3073
3074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3075pub struct CreateAccessMethod {
3076    pub(crate) syntax: SyntaxNode,
3077}
3078impl CreateAccessMethod {
3079    #[inline]
3080    pub fn handler_clause(&self) -> Option<HandlerClause> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn name(&self) -> Option<Path> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn access_token(&self) -> Option<SyntaxToken> {
3089        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3090    }
3091    #[inline]
3092    pub fn create_token(&self) -> Option<SyntaxToken> {
3093        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3094    }
3095    #[inline]
3096    pub fn index_token(&self) -> Option<SyntaxToken> {
3097        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3098    }
3099    #[inline]
3100    pub fn method_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3102    }
3103    #[inline]
3104    pub fn table_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3106    }
3107    #[inline]
3108    pub fn type_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3110    }
3111}
3112
3113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3114pub struct CreateAggregate {
3115    pub(crate) syntax: SyntaxNode,
3116}
3117impl CreateAggregate {
3118    #[inline]
3119    pub fn or_replace(&self) -> Option<OrReplace> {
3120        support::child(&self.syntax)
3121    }
3122    #[inline]
3123    pub fn param_list(&self) -> Option<ParamList> {
3124        support::child(&self.syntax)
3125    }
3126    #[inline]
3127    pub fn path(&self) -> Option<Path> {
3128        support::child(&self.syntax)
3129    }
3130    #[inline]
3131    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3132        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3133    }
3134    #[inline]
3135    pub fn create_token(&self) -> Option<SyntaxToken> {
3136        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3137    }
3138}
3139
3140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3141pub struct CreateCast {
3142    pub(crate) syntax: SyntaxNode,
3143}
3144impl CreateCast {
3145    #[inline]
3146    pub fn cast_sig(&self) -> Option<CastSig> {
3147        support::child(&self.syntax)
3148    }
3149    #[inline]
3150    pub fn function_sig(&self) -> Option<FunctionSig> {
3151        support::child(&self.syntax)
3152    }
3153    #[inline]
3154    pub fn as_token(&self) -> Option<SyntaxToken> {
3155        support::token(&self.syntax, SyntaxKind::AS_KW)
3156    }
3157    #[inline]
3158    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3159        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3160    }
3161    #[inline]
3162    pub fn cast_token(&self) -> Option<SyntaxToken> {
3163        support::token(&self.syntax, SyntaxKind::CAST_KW)
3164    }
3165    #[inline]
3166    pub fn create_token(&self) -> Option<SyntaxToken> {
3167        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3168    }
3169    #[inline]
3170    pub fn function_token(&self) -> Option<SyntaxToken> {
3171        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3172    }
3173    #[inline]
3174    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3175        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3176    }
3177    #[inline]
3178    pub fn inout_token(&self) -> Option<SyntaxToken> {
3179        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3180    }
3181    #[inline]
3182    pub fn with_token(&self) -> Option<SyntaxToken> {
3183        support::token(&self.syntax, SyntaxKind::WITH_KW)
3184    }
3185    #[inline]
3186    pub fn without_token(&self) -> Option<SyntaxToken> {
3187        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3188    }
3189}
3190
3191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3192pub struct CreateCollation {
3193    pub(crate) syntax: SyntaxNode,
3194}
3195impl CreateCollation {
3196    #[inline]
3197    pub fn path(&self) -> Option<Path> {
3198        support::child(&self.syntax)
3199    }
3200    #[inline]
3201    pub fn collation_token(&self) -> Option<SyntaxToken> {
3202        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3203    }
3204    #[inline]
3205    pub fn create_token(&self) -> Option<SyntaxToken> {
3206        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3207    }
3208}
3209
3210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3211pub struct CreateConversion {
3212    pub(crate) syntax: SyntaxNode,
3213}
3214impl CreateConversion {
3215    #[inline]
3216    pub fn literal(&self) -> Option<Literal> {
3217        support::child(&self.syntax)
3218    }
3219    #[inline]
3220    pub fn path(&self) -> Option<Path> {
3221        support::child(&self.syntax)
3222    }
3223    #[inline]
3224    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3226    }
3227    #[inline]
3228    pub fn create_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3230    }
3231    #[inline]
3232    pub fn default_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3234    }
3235    #[inline]
3236    pub fn for_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::FOR_KW)
3238    }
3239    #[inline]
3240    pub fn from_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::FROM_KW)
3242    }
3243    #[inline]
3244    pub fn to_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::TO_KW)
3246    }
3247}
3248
3249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3250pub struct CreateDatabase {
3251    pub(crate) syntax: SyntaxNode,
3252}
3253impl CreateDatabase {
3254    #[inline]
3255    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3256        support::child(&self.syntax)
3257    }
3258    #[inline]
3259    pub fn name(&self) -> Option<Name> {
3260        support::child(&self.syntax)
3261    }
3262    #[inline]
3263    pub fn create_token(&self) -> Option<SyntaxToken> {
3264        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3265    }
3266    #[inline]
3267    pub fn database_token(&self) -> Option<SyntaxToken> {
3268        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3269    }
3270}
3271
3272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3273pub struct CreateDatabaseOption {
3274    pub(crate) syntax: SyntaxNode,
3275}
3276impl CreateDatabaseOption {
3277    #[inline]
3278    pub fn literal(&self) -> Option<Literal> {
3279        support::child(&self.syntax)
3280    }
3281    #[inline]
3282    pub fn eq_token(&self) -> Option<SyntaxToken> {
3283        support::token(&self.syntax, SyntaxKind::EQ)
3284    }
3285    #[inline]
3286    pub fn connection_token(&self) -> Option<SyntaxToken> {
3287        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3288    }
3289    #[inline]
3290    pub fn default_token(&self) -> Option<SyntaxToken> {
3291        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3292    }
3293    #[inline]
3294    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3295        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3296    }
3297    #[inline]
3298    pub fn ident_token(&self) -> Option<SyntaxToken> {
3299        support::token(&self.syntax, SyntaxKind::IDENT)
3300    }
3301    #[inline]
3302    pub fn limit_token(&self) -> Option<SyntaxToken> {
3303        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3304    }
3305    #[inline]
3306    pub fn owner_token(&self) -> Option<SyntaxToken> {
3307        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3308    }
3309    #[inline]
3310    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3311        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3312    }
3313    #[inline]
3314    pub fn template_token(&self) -> Option<SyntaxToken> {
3315        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3316    }
3317}
3318
3319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3320pub struct CreateDatabaseOptionList {
3321    pub(crate) syntax: SyntaxNode,
3322}
3323impl CreateDatabaseOptionList {
3324    #[inline]
3325    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3326        support::children(&self.syntax)
3327    }
3328    #[inline]
3329    pub fn with_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::WITH_KW)
3331    }
3332}
3333
3334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3335pub struct CreateDomain {
3336    pub(crate) syntax: SyntaxNode,
3337}
3338impl CreateDomain {
3339    #[inline]
3340    pub fn collate(&self) -> Option<Collate> {
3341        support::child(&self.syntax)
3342    }
3343    #[inline]
3344    pub fn constraints(&self) -> AstChildren<Constraint> {
3345        support::children(&self.syntax)
3346    }
3347    #[inline]
3348    pub fn path(&self) -> Option<Path> {
3349        support::child(&self.syntax)
3350    }
3351    #[inline]
3352    pub fn ty(&self) -> Option<Type> {
3353        support::child(&self.syntax)
3354    }
3355    #[inline]
3356    pub fn as_token(&self) -> Option<SyntaxToken> {
3357        support::token(&self.syntax, SyntaxKind::AS_KW)
3358    }
3359    #[inline]
3360    pub fn create_token(&self) -> Option<SyntaxToken> {
3361        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3362    }
3363    #[inline]
3364    pub fn domain_token(&self) -> Option<SyntaxToken> {
3365        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3366    }
3367}
3368
3369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3370pub struct CreateEventTrigger {
3371    pub(crate) syntax: SyntaxNode,
3372}
3373impl CreateEventTrigger {
3374    #[inline]
3375    pub fn call_expr(&self) -> Option<CallExpr> {
3376        support::child(&self.syntax)
3377    }
3378    #[inline]
3379    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3380        support::child(&self.syntax)
3381    }
3382    #[inline]
3383    pub fn name(&self) -> Option<Name> {
3384        support::child(&self.syntax)
3385    }
3386    #[inline]
3387    pub fn name_ref(&self) -> Option<NameRef> {
3388        support::child(&self.syntax)
3389    }
3390    #[inline]
3391    pub fn create_token(&self) -> Option<SyntaxToken> {
3392        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3393    }
3394    #[inline]
3395    pub fn event_token(&self) -> Option<SyntaxToken> {
3396        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3397    }
3398    #[inline]
3399    pub fn execute_token(&self) -> Option<SyntaxToken> {
3400        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3401    }
3402    #[inline]
3403    pub fn function_token(&self) -> Option<SyntaxToken> {
3404        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3405    }
3406    #[inline]
3407    pub fn on_token(&self) -> Option<SyntaxToken> {
3408        support::token(&self.syntax, SyntaxKind::ON_KW)
3409    }
3410    #[inline]
3411    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3412        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3413    }
3414    #[inline]
3415    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3416        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3417    }
3418}
3419
3420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3421pub struct CreateExtension {
3422    pub(crate) syntax: SyntaxNode,
3423}
3424impl CreateExtension {
3425    #[inline]
3426    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3427        support::child(&self.syntax)
3428    }
3429    #[inline]
3430    pub fn name(&self) -> Option<Name> {
3431        support::child(&self.syntax)
3432    }
3433    #[inline]
3434    pub fn create_token(&self) -> Option<SyntaxToken> {
3435        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3436    }
3437    #[inline]
3438    pub fn extension_token(&self) -> Option<SyntaxToken> {
3439        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3440    }
3441}
3442
3443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3444pub struct CreateForeignDataWrapper {
3445    pub(crate) syntax: SyntaxNode,
3446}
3447impl CreateForeignDataWrapper {
3448    #[inline]
3449    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3450        support::child(&self.syntax)
3451    }
3452    #[inline]
3453    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3454        support::child(&self.syntax)
3455    }
3456    #[inline]
3457    pub fn name(&self) -> Option<Name> {
3458        support::child(&self.syntax)
3459    }
3460    #[inline]
3461    pub fn create_token(&self) -> Option<SyntaxToken> {
3462        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3463    }
3464    #[inline]
3465    pub fn data_token(&self) -> Option<SyntaxToken> {
3466        support::token(&self.syntax, SyntaxKind::DATA_KW)
3467    }
3468    #[inline]
3469    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3470        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3471    }
3472    #[inline]
3473    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3474        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3475    }
3476}
3477
3478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3479pub struct CreateForeignTable {
3480    pub(crate) syntax: SyntaxNode,
3481}
3482impl CreateForeignTable {
3483    #[inline]
3484    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3485        support::child(&self.syntax)
3486    }
3487    #[inline]
3488    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3489        support::child(&self.syntax)
3490    }
3491    #[inline]
3492    pub fn inherits(&self) -> Option<Inherits> {
3493        support::child(&self.syntax)
3494    }
3495    #[inline]
3496    pub fn name_ref(&self) -> Option<NameRef> {
3497        support::child(&self.syntax)
3498    }
3499    #[inline]
3500    pub fn partition_of(&self) -> Option<PartitionOf> {
3501        support::child(&self.syntax)
3502    }
3503    #[inline]
3504    pub fn partition_type(&self) -> Option<PartitionType> {
3505        support::child(&self.syntax)
3506    }
3507    #[inline]
3508    pub fn path(&self) -> Option<Path> {
3509        support::child(&self.syntax)
3510    }
3511    #[inline]
3512    pub fn table_arg_list(&self) -> Option<TableArgList> {
3513        support::child(&self.syntax)
3514    }
3515    #[inline]
3516    pub fn create_token(&self) -> Option<SyntaxToken> {
3517        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3518    }
3519    #[inline]
3520    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3521        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3522    }
3523    #[inline]
3524    pub fn server_token(&self) -> Option<SyntaxToken> {
3525        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3526    }
3527    #[inline]
3528    pub fn table_token(&self) -> Option<SyntaxToken> {
3529        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3530    }
3531}
3532
3533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3534pub struct CreateFunction {
3535    pub(crate) syntax: SyntaxNode,
3536}
3537impl CreateFunction {
3538    #[inline]
3539    pub fn option_list(&self) -> Option<FuncOptionList> {
3540        support::child(&self.syntax)
3541    }
3542    #[inline]
3543    pub fn or_replace(&self) -> Option<OrReplace> {
3544        support::child(&self.syntax)
3545    }
3546    #[inline]
3547    pub fn param_list(&self) -> Option<ParamList> {
3548        support::child(&self.syntax)
3549    }
3550    #[inline]
3551    pub fn path(&self) -> Option<Path> {
3552        support::child(&self.syntax)
3553    }
3554    #[inline]
3555    pub fn ret_type(&self) -> Option<RetType> {
3556        support::child(&self.syntax)
3557    }
3558    #[inline]
3559    pub fn create_token(&self) -> Option<SyntaxToken> {
3560        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3561    }
3562    #[inline]
3563    pub fn function_token(&self) -> Option<SyntaxToken> {
3564        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3565    }
3566}
3567
3568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3569pub struct CreateGroup {
3570    pub(crate) syntax: SyntaxNode,
3571}
3572impl CreateGroup {
3573    #[inline]
3574    pub fn name(&self) -> Option<Name> {
3575        support::child(&self.syntax)
3576    }
3577    #[inline]
3578    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3579        support::child(&self.syntax)
3580    }
3581    #[inline]
3582    pub fn create_token(&self) -> Option<SyntaxToken> {
3583        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3584    }
3585    #[inline]
3586    pub fn group_token(&self) -> Option<SyntaxToken> {
3587        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3588    }
3589}
3590
3591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3592pub struct CreateIndex {
3593    pub(crate) syntax: SyntaxNode,
3594}
3595impl CreateIndex {
3596    #[inline]
3597    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3598        support::child(&self.syntax)
3599    }
3600    #[inline]
3601    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3602        support::child(&self.syntax)
3603    }
3604    #[inline]
3605    pub fn name(&self) -> Option<Name> {
3606        support::child(&self.syntax)
3607    }
3608    #[inline]
3609    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3610        support::child(&self.syntax)
3611    }
3612    #[inline]
3613    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3614        support::child(&self.syntax)
3615    }
3616    #[inline]
3617    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3618        support::child(&self.syntax)
3619    }
3620    #[inline]
3621    pub fn relation_name(&self) -> Option<RelationName> {
3622        support::child(&self.syntax)
3623    }
3624    #[inline]
3625    pub fn tablespace(&self) -> Option<Tablespace> {
3626        support::child(&self.syntax)
3627    }
3628    #[inline]
3629    pub fn using_method(&self) -> Option<UsingMethod> {
3630        support::child(&self.syntax)
3631    }
3632    #[inline]
3633    pub fn where_clause(&self) -> Option<WhereClause> {
3634        support::child(&self.syntax)
3635    }
3636    #[inline]
3637    pub fn with_params(&self) -> Option<WithParams> {
3638        support::child(&self.syntax)
3639    }
3640    #[inline]
3641    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3642        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3643    }
3644    #[inline]
3645    pub fn create_token(&self) -> Option<SyntaxToken> {
3646        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3647    }
3648    #[inline]
3649    pub fn index_token(&self) -> Option<SyntaxToken> {
3650        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3651    }
3652    #[inline]
3653    pub fn on_token(&self) -> Option<SyntaxToken> {
3654        support::token(&self.syntax, SyntaxKind::ON_KW)
3655    }
3656    #[inline]
3657    pub fn unique_token(&self) -> Option<SyntaxToken> {
3658        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3659    }
3660}
3661
3662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3663pub struct CreateLanguage {
3664    pub(crate) syntax: SyntaxNode,
3665}
3666impl CreateLanguage {
3667    #[inline]
3668    pub fn name(&self) -> Option<Name> {
3669        support::child(&self.syntax)
3670    }
3671    #[inline]
3672    pub fn or_replace(&self) -> Option<OrReplace> {
3673        support::child(&self.syntax)
3674    }
3675    #[inline]
3676    pub fn path(&self) -> Option<Path> {
3677        support::child(&self.syntax)
3678    }
3679    #[inline]
3680    pub fn create_token(&self) -> Option<SyntaxToken> {
3681        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3682    }
3683    #[inline]
3684    pub fn handler_token(&self) -> Option<SyntaxToken> {
3685        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3686    }
3687    #[inline]
3688    pub fn inline_token(&self) -> Option<SyntaxToken> {
3689        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3690    }
3691    #[inline]
3692    pub fn language_token(&self) -> Option<SyntaxToken> {
3693        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3694    }
3695    #[inline]
3696    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3697        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3698    }
3699    #[inline]
3700    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3701        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3702    }
3703    #[inline]
3704    pub fn validator_token(&self) -> Option<SyntaxToken> {
3705        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3706    }
3707}
3708
3709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3710pub struct CreateMaterializedView {
3711    pub(crate) syntax: SyntaxNode,
3712}
3713impl CreateMaterializedView {
3714    #[inline]
3715    pub fn column_list(&self) -> Option<ColumnList> {
3716        support::child(&self.syntax)
3717    }
3718    #[inline]
3719    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3720        support::child(&self.syntax)
3721    }
3722    #[inline]
3723    pub fn path(&self) -> Option<Path> {
3724        support::child(&self.syntax)
3725    }
3726    #[inline]
3727    pub fn query(&self) -> Option<SelectVariant> {
3728        support::child(&self.syntax)
3729    }
3730    #[inline]
3731    pub fn tablespace(&self) -> Option<Tablespace> {
3732        support::child(&self.syntax)
3733    }
3734    #[inline]
3735    pub fn using_method(&self) -> Option<UsingMethod> {
3736        support::child(&self.syntax)
3737    }
3738    #[inline]
3739    pub fn with_data(&self) -> Option<WithData> {
3740        support::child(&self.syntax)
3741    }
3742    #[inline]
3743    pub fn with_no_data(&self) -> Option<WithNoData> {
3744        support::child(&self.syntax)
3745    }
3746    #[inline]
3747    pub fn with_params(&self) -> Option<WithParams> {
3748        support::child(&self.syntax)
3749    }
3750    #[inline]
3751    pub fn as_token(&self) -> Option<SyntaxToken> {
3752        support::token(&self.syntax, SyntaxKind::AS_KW)
3753    }
3754    #[inline]
3755    pub fn create_token(&self) -> Option<SyntaxToken> {
3756        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3757    }
3758    #[inline]
3759    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3760        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3761    }
3762    #[inline]
3763    pub fn view_token(&self) -> Option<SyntaxToken> {
3764        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3765    }
3766}
3767
3768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3769pub struct CreateOperator {
3770    pub(crate) syntax: SyntaxNode,
3771}
3772impl CreateOperator {
3773    #[inline]
3774    pub fn attribute_list(&self) -> Option<AttributeList> {
3775        support::child(&self.syntax)
3776    }
3777    #[inline]
3778    pub fn op(&self) -> Option<Op> {
3779        support::child(&self.syntax)
3780    }
3781    #[inline]
3782    pub fn path(&self) -> Option<Path> {
3783        support::child(&self.syntax)
3784    }
3785    #[inline]
3786    pub fn create_token(&self) -> Option<SyntaxToken> {
3787        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3788    }
3789    #[inline]
3790    pub fn operator_token(&self) -> Option<SyntaxToken> {
3791        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3792    }
3793}
3794
3795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3796pub struct CreateOperatorClass {
3797    pub(crate) syntax: SyntaxNode,
3798}
3799impl CreateOperatorClass {
3800    #[inline]
3801    pub fn name_ref(&self) -> Option<NameRef> {
3802        support::child(&self.syntax)
3803    }
3804    #[inline]
3805    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3806        support::child(&self.syntax)
3807    }
3808    #[inline]
3809    pub fn path(&self) -> Option<Path> {
3810        support::child(&self.syntax)
3811    }
3812    #[inline]
3813    pub fn ty(&self) -> Option<Type> {
3814        support::child(&self.syntax)
3815    }
3816    #[inline]
3817    pub fn as_token(&self) -> Option<SyntaxToken> {
3818        support::token(&self.syntax, SyntaxKind::AS_KW)
3819    }
3820    #[inline]
3821    pub fn class_token(&self) -> Option<SyntaxToken> {
3822        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3823    }
3824    #[inline]
3825    pub fn create_token(&self) -> Option<SyntaxToken> {
3826        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3827    }
3828    #[inline]
3829    pub fn default_token(&self) -> Option<SyntaxToken> {
3830        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3831    }
3832    #[inline]
3833    pub fn family_token(&self) -> Option<SyntaxToken> {
3834        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3835    }
3836    #[inline]
3837    pub fn for_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::FOR_KW)
3839    }
3840    #[inline]
3841    pub fn operator_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3843    }
3844    #[inline]
3845    pub fn type_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3847    }
3848    #[inline]
3849    pub fn using_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::USING_KW)
3851    }
3852}
3853
3854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3855pub struct CreateOperatorFamily {
3856    pub(crate) syntax: SyntaxNode,
3857}
3858impl CreateOperatorFamily {
3859    #[inline]
3860    pub fn name_ref(&self) -> Option<NameRef> {
3861        support::child(&self.syntax)
3862    }
3863    #[inline]
3864    pub fn path(&self) -> Option<Path> {
3865        support::child(&self.syntax)
3866    }
3867    #[inline]
3868    pub fn create_token(&self) -> Option<SyntaxToken> {
3869        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3870    }
3871    #[inline]
3872    pub fn family_token(&self) -> Option<SyntaxToken> {
3873        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3874    }
3875    #[inline]
3876    pub fn operator_token(&self) -> Option<SyntaxToken> {
3877        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3878    }
3879    #[inline]
3880    pub fn using_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::USING_KW)
3882    }
3883}
3884
3885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3886pub struct CreatePolicy {
3887    pub(crate) syntax: SyntaxNode,
3888}
3889impl CreatePolicy {
3890    #[inline]
3891    pub fn expr(&self) -> Option<Expr> {
3892        support::child(&self.syntax)
3893    }
3894    #[inline]
3895    pub fn name(&self) -> Option<Name> {
3896        support::child(&self.syntax)
3897    }
3898    #[inline]
3899    pub fn on_table(&self) -> Option<OnTable> {
3900        support::child(&self.syntax)
3901    }
3902    #[inline]
3903    pub fn role_list(&self) -> Option<RoleList> {
3904        support::child(&self.syntax)
3905    }
3906    #[inline]
3907    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::L_PAREN)
3909    }
3910    #[inline]
3911    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::R_PAREN)
3913    }
3914    #[inline]
3915    pub fn all_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::ALL_KW)
3917    }
3918    #[inline]
3919    pub fn as_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::AS_KW)
3921    }
3922    #[inline]
3923    pub fn check_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3925    }
3926    #[inline]
3927    pub fn create_token(&self) -> Option<SyntaxToken> {
3928        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3929    }
3930    #[inline]
3931    pub fn delete_token(&self) -> Option<SyntaxToken> {
3932        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3933    }
3934    #[inline]
3935    pub fn for_token(&self) -> Option<SyntaxToken> {
3936        support::token(&self.syntax, SyntaxKind::FOR_KW)
3937    }
3938    #[inline]
3939    pub fn ident_token(&self) -> Option<SyntaxToken> {
3940        support::token(&self.syntax, SyntaxKind::IDENT)
3941    }
3942    #[inline]
3943    pub fn insert_token(&self) -> Option<SyntaxToken> {
3944        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3945    }
3946    #[inline]
3947    pub fn policy_token(&self) -> Option<SyntaxToken> {
3948        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3949    }
3950    #[inline]
3951    pub fn select_token(&self) -> Option<SyntaxToken> {
3952        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3953    }
3954    #[inline]
3955    pub fn to_token(&self) -> Option<SyntaxToken> {
3956        support::token(&self.syntax, SyntaxKind::TO_KW)
3957    }
3958    #[inline]
3959    pub fn update_token(&self) -> Option<SyntaxToken> {
3960        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3961    }
3962    #[inline]
3963    pub fn using_token(&self) -> Option<SyntaxToken> {
3964        support::token(&self.syntax, SyntaxKind::USING_KW)
3965    }
3966    #[inline]
3967    pub fn with_token(&self) -> Option<SyntaxToken> {
3968        support::token(&self.syntax, SyntaxKind::WITH_KW)
3969    }
3970}
3971
3972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3973pub struct CreateProcedure {
3974    pub(crate) syntax: SyntaxNode,
3975}
3976impl CreateProcedure {
3977    #[inline]
3978    pub fn option_list(&self) -> Option<FuncOptionList> {
3979        support::child(&self.syntax)
3980    }
3981    #[inline]
3982    pub fn or_replace(&self) -> Option<OrReplace> {
3983        support::child(&self.syntax)
3984    }
3985    #[inline]
3986    pub fn param_list(&self) -> Option<ParamList> {
3987        support::child(&self.syntax)
3988    }
3989    #[inline]
3990    pub fn path(&self) -> Option<Path> {
3991        support::child(&self.syntax)
3992    }
3993    #[inline]
3994    pub fn create_token(&self) -> Option<SyntaxToken> {
3995        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3996    }
3997    #[inline]
3998    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3999        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4000    }
4001}
4002
4003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4004pub struct CreatePublication {
4005    pub(crate) syntax: SyntaxNode,
4006}
4007impl CreatePublication {
4008    #[inline]
4009    pub fn name(&self) -> Option<Name> {
4010        support::child(&self.syntax)
4011    }
4012    #[inline]
4013    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4014        support::children(&self.syntax)
4015    }
4016    #[inline]
4017    pub fn with_params(&self) -> Option<WithParams> {
4018        support::child(&self.syntax)
4019    }
4020    #[inline]
4021    pub fn all_token(&self) -> Option<SyntaxToken> {
4022        support::token(&self.syntax, SyntaxKind::ALL_KW)
4023    }
4024    #[inline]
4025    pub fn create_token(&self) -> Option<SyntaxToken> {
4026        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4027    }
4028    #[inline]
4029    pub fn for_token(&self) -> Option<SyntaxToken> {
4030        support::token(&self.syntax, SyntaxKind::FOR_KW)
4031    }
4032    #[inline]
4033    pub fn publication_token(&self) -> Option<SyntaxToken> {
4034        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4035    }
4036    #[inline]
4037    pub fn tables_token(&self) -> Option<SyntaxToken> {
4038        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4039    }
4040}
4041
4042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4043pub struct CreateRole {
4044    pub(crate) syntax: SyntaxNode,
4045}
4046impl CreateRole {
4047    #[inline]
4048    pub fn name(&self) -> Option<Name> {
4049        support::child(&self.syntax)
4050    }
4051    #[inline]
4052    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4053        support::child(&self.syntax)
4054    }
4055    #[inline]
4056    pub fn create_token(&self) -> Option<SyntaxToken> {
4057        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4058    }
4059    #[inline]
4060    pub fn role_token(&self) -> Option<SyntaxToken> {
4061        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4062    }
4063}
4064
4065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4066pub struct CreateRule {
4067    pub(crate) syntax: SyntaxNode,
4068}
4069impl CreateRule {
4070    #[inline]
4071    pub fn name(&self) -> Option<Name> {
4072        support::child(&self.syntax)
4073    }
4074    #[inline]
4075    pub fn or_replace(&self) -> Option<OrReplace> {
4076        support::child(&self.syntax)
4077    }
4078    #[inline]
4079    pub fn path(&self) -> Option<Path> {
4080        support::child(&self.syntax)
4081    }
4082    #[inline]
4083    pub fn stmt(&self) -> Option<Stmt> {
4084        support::child(&self.syntax)
4085    }
4086    #[inline]
4087    pub fn stmts(&self) -> AstChildren<Stmt> {
4088        support::children(&self.syntax)
4089    }
4090    #[inline]
4091    pub fn where_clause(&self) -> Option<WhereClause> {
4092        support::child(&self.syntax)
4093    }
4094    #[inline]
4095    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4096        support::token(&self.syntax, SyntaxKind::L_PAREN)
4097    }
4098    #[inline]
4099    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4100        support::token(&self.syntax, SyntaxKind::R_PAREN)
4101    }
4102    #[inline]
4103    pub fn also_token(&self) -> Option<SyntaxToken> {
4104        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4105    }
4106    #[inline]
4107    pub fn as_token(&self) -> Option<SyntaxToken> {
4108        support::token(&self.syntax, SyntaxKind::AS_KW)
4109    }
4110    #[inline]
4111    pub fn create_token(&self) -> Option<SyntaxToken> {
4112        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4113    }
4114    #[inline]
4115    pub fn delete_token(&self) -> Option<SyntaxToken> {
4116        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4117    }
4118    #[inline]
4119    pub fn do_token(&self) -> Option<SyntaxToken> {
4120        support::token(&self.syntax, SyntaxKind::DO_KW)
4121    }
4122    #[inline]
4123    pub fn ident_token(&self) -> Option<SyntaxToken> {
4124        support::token(&self.syntax, SyntaxKind::IDENT)
4125    }
4126    #[inline]
4127    pub fn insert_token(&self) -> Option<SyntaxToken> {
4128        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4129    }
4130    #[inline]
4131    pub fn instead_token(&self) -> Option<SyntaxToken> {
4132        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4133    }
4134    #[inline]
4135    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4136        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4137    }
4138    #[inline]
4139    pub fn on_token(&self) -> Option<SyntaxToken> {
4140        support::token(&self.syntax, SyntaxKind::ON_KW)
4141    }
4142    #[inline]
4143    pub fn rule_token(&self) -> Option<SyntaxToken> {
4144        support::token(&self.syntax, SyntaxKind::RULE_KW)
4145    }
4146    #[inline]
4147    pub fn select_token(&self) -> Option<SyntaxToken> {
4148        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4149    }
4150    #[inline]
4151    pub fn to_token(&self) -> Option<SyntaxToken> {
4152        support::token(&self.syntax, SyntaxKind::TO_KW)
4153    }
4154    #[inline]
4155    pub fn update_token(&self) -> Option<SyntaxToken> {
4156        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4157    }
4158}
4159
4160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4161pub struct CreateSchema {
4162    pub(crate) syntax: SyntaxNode,
4163}
4164impl CreateSchema {
4165    #[inline]
4166    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4167        support::child(&self.syntax)
4168    }
4169    #[inline]
4170    pub fn name(&self) -> Option<Name> {
4171        support::child(&self.syntax)
4172    }
4173    #[inline]
4174    pub fn schema_authorization(&self) -> Option<SchemaAuthorization> {
4175        support::child(&self.syntax)
4176    }
4177    #[inline]
4178    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4179        support::children(&self.syntax)
4180    }
4181    #[inline]
4182    pub fn create_token(&self) -> Option<SyntaxToken> {
4183        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4184    }
4185    #[inline]
4186    pub fn schema_token(&self) -> Option<SyntaxToken> {
4187        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4188    }
4189}
4190
4191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4192pub struct CreateSequence {
4193    pub(crate) syntax: SyntaxNode,
4194}
4195impl CreateSequence {
4196    #[inline]
4197    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4198        support::child(&self.syntax)
4199    }
4200    #[inline]
4201    pub fn path(&self) -> Option<Path> {
4202        support::child(&self.syntax)
4203    }
4204    #[inline]
4205    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4206        support::children(&self.syntax)
4207    }
4208    #[inline]
4209    pub fn create_token(&self) -> Option<SyntaxToken> {
4210        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4211    }
4212    #[inline]
4213    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4214        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4215    }
4216    #[inline]
4217    pub fn temp_token(&self) -> Option<SyntaxToken> {
4218        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4219    }
4220    #[inline]
4221    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4222        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4223    }
4224    #[inline]
4225    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4226        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4227    }
4228}
4229
4230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4231pub struct CreateServer {
4232    pub(crate) syntax: SyntaxNode,
4233}
4234impl CreateServer {
4235    #[inline]
4236    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4237        support::child(&self.syntax)
4238    }
4239    #[inline]
4240    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4241        support::child(&self.syntax)
4242    }
4243    #[inline]
4244    pub fn literal(&self) -> Option<Literal> {
4245        support::child(&self.syntax)
4246    }
4247    #[inline]
4248    pub fn name(&self) -> Option<Name> {
4249        support::child(&self.syntax)
4250    }
4251    #[inline]
4252    pub fn name_ref(&self) -> Option<NameRef> {
4253        support::child(&self.syntax)
4254    }
4255    #[inline]
4256    pub fn create_token(&self) -> Option<SyntaxToken> {
4257        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4258    }
4259    #[inline]
4260    pub fn data_token(&self) -> Option<SyntaxToken> {
4261        support::token(&self.syntax, SyntaxKind::DATA_KW)
4262    }
4263    #[inline]
4264    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4265        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4266    }
4267    #[inline]
4268    pub fn server_token(&self) -> Option<SyntaxToken> {
4269        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4270    }
4271    #[inline]
4272    pub fn type_token(&self) -> Option<SyntaxToken> {
4273        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4274    }
4275    #[inline]
4276    pub fn version_token(&self) -> Option<SyntaxToken> {
4277        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4278    }
4279    #[inline]
4280    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4281        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4282    }
4283}
4284
4285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4286pub struct CreateStatistics {
4287    pub(crate) syntax: SyntaxNode,
4288}
4289impl CreateStatistics {
4290    #[inline]
4291    pub fn from_table(&self) -> Option<FromTable> {
4292        support::child(&self.syntax)
4293    }
4294    #[inline]
4295    pub fn name_refs(&self) -> AstChildren<NameRef> {
4296        support::children(&self.syntax)
4297    }
4298    #[inline]
4299    pub fn path(&self) -> Option<Path> {
4300        support::child(&self.syntax)
4301    }
4302    #[inline]
4303    pub fn create_token(&self) -> Option<SyntaxToken> {
4304        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4305    }
4306    #[inline]
4307    pub fn on_token(&self) -> Option<SyntaxToken> {
4308        support::token(&self.syntax, SyntaxKind::ON_KW)
4309    }
4310    #[inline]
4311    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4313    }
4314}
4315
4316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4317pub struct CreateSubscription {
4318    pub(crate) syntax: SyntaxNode,
4319}
4320impl CreateSubscription {
4321    #[inline]
4322    pub fn literal(&self) -> Option<Literal> {
4323        support::child(&self.syntax)
4324    }
4325    #[inline]
4326    pub fn name(&self) -> Option<Name> {
4327        support::child(&self.syntax)
4328    }
4329    #[inline]
4330    pub fn name_refs(&self) -> AstChildren<NameRef> {
4331        support::children(&self.syntax)
4332    }
4333    #[inline]
4334    pub fn with_params(&self) -> Option<WithParams> {
4335        support::child(&self.syntax)
4336    }
4337    #[inline]
4338    pub fn connection_token(&self) -> Option<SyntaxToken> {
4339        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4340    }
4341    #[inline]
4342    pub fn create_token(&self) -> Option<SyntaxToken> {
4343        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4344    }
4345    #[inline]
4346    pub fn publication_token(&self) -> Option<SyntaxToken> {
4347        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4348    }
4349    #[inline]
4350    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4352    }
4353}
4354
4355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4356pub struct CreateTable {
4357    pub(crate) syntax: SyntaxNode,
4358}
4359impl CreateTable {
4360    #[inline]
4361    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4362        support::child(&self.syntax)
4363    }
4364    #[inline]
4365    pub fn inherits(&self) -> Option<Inherits> {
4366        support::child(&self.syntax)
4367    }
4368    #[inline]
4369    pub fn of_type(&self) -> Option<OfType> {
4370        support::child(&self.syntax)
4371    }
4372    #[inline]
4373    pub fn on_commit(&self) -> Option<OnCommit> {
4374        support::child(&self.syntax)
4375    }
4376    #[inline]
4377    pub fn partition_by(&self) -> Option<PartitionBy> {
4378        support::child(&self.syntax)
4379    }
4380    #[inline]
4381    pub fn partition_of(&self) -> Option<PartitionOf> {
4382        support::child(&self.syntax)
4383    }
4384    #[inline]
4385    pub fn path(&self) -> Option<Path> {
4386        support::child(&self.syntax)
4387    }
4388    #[inline]
4389    pub fn table_arg_list(&self) -> Option<TableArgList> {
4390        support::child(&self.syntax)
4391    }
4392    #[inline]
4393    pub fn tablespace(&self) -> Option<Tablespace> {
4394        support::child(&self.syntax)
4395    }
4396    #[inline]
4397    pub fn using_method(&self) -> Option<UsingMethod> {
4398        support::child(&self.syntax)
4399    }
4400    #[inline]
4401    pub fn with_params(&self) -> Option<WithParams> {
4402        support::child(&self.syntax)
4403    }
4404    #[inline]
4405    pub fn without_oids(&self) -> Option<WithoutOids> {
4406        support::child(&self.syntax)
4407    }
4408    #[inline]
4409    pub fn create_token(&self) -> Option<SyntaxToken> {
4410        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4411    }
4412    #[inline]
4413    pub fn global_token(&self) -> Option<SyntaxToken> {
4414        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4415    }
4416    #[inline]
4417    pub fn local_token(&self) -> Option<SyntaxToken> {
4418        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4419    }
4420    #[inline]
4421    pub fn table_token(&self) -> Option<SyntaxToken> {
4422        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4423    }
4424    #[inline]
4425    pub fn temp_token(&self) -> Option<SyntaxToken> {
4426        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4427    }
4428    #[inline]
4429    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4430        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4431    }
4432    #[inline]
4433    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4434        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4435    }
4436}
4437
4438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4439pub struct CreateTableAs {
4440    pub(crate) syntax: SyntaxNode,
4441}
4442impl CreateTableAs {
4443    #[inline]
4444    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4445        support::child(&self.syntax)
4446    }
4447    #[inline]
4448    pub fn on_commit(&self) -> Option<OnCommit> {
4449        support::child(&self.syntax)
4450    }
4451    #[inline]
4452    pub fn path(&self) -> Option<Path> {
4453        support::child(&self.syntax)
4454    }
4455    #[inline]
4456    pub fn query(&self) -> Option<SelectVariant> {
4457        support::child(&self.syntax)
4458    }
4459    #[inline]
4460    pub fn tablespace(&self) -> Option<Tablespace> {
4461        support::child(&self.syntax)
4462    }
4463    #[inline]
4464    pub fn using_method(&self) -> Option<UsingMethod> {
4465        support::child(&self.syntax)
4466    }
4467    #[inline]
4468    pub fn with_data(&self) -> Option<WithData> {
4469        support::child(&self.syntax)
4470    }
4471    #[inline]
4472    pub fn with_no_data(&self) -> Option<WithNoData> {
4473        support::child(&self.syntax)
4474    }
4475    #[inline]
4476    pub fn with_params(&self) -> Option<WithParams> {
4477        support::child(&self.syntax)
4478    }
4479    #[inline]
4480    pub fn without_oids(&self) -> Option<WithoutOids> {
4481        support::child(&self.syntax)
4482    }
4483    #[inline]
4484    pub fn as_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::AS_KW)
4486    }
4487    #[inline]
4488    pub fn create_token(&self) -> Option<SyntaxToken> {
4489        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4490    }
4491    #[inline]
4492    pub fn global_token(&self) -> Option<SyntaxToken> {
4493        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4494    }
4495    #[inline]
4496    pub fn local_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4498    }
4499    #[inline]
4500    pub fn table_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4502    }
4503    #[inline]
4504    pub fn temp_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4506    }
4507    #[inline]
4508    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4510    }
4511    #[inline]
4512    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4514    }
4515}
4516
4517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4518pub struct CreateTablespace {
4519    pub(crate) syntax: SyntaxNode,
4520}
4521impl CreateTablespace {
4522    #[inline]
4523    pub fn literal(&self) -> Option<Literal> {
4524        support::child(&self.syntax)
4525    }
4526    #[inline]
4527    pub fn name(&self) -> Option<Name> {
4528        support::child(&self.syntax)
4529    }
4530    #[inline]
4531    pub fn role(&self) -> Option<Role> {
4532        support::child(&self.syntax)
4533    }
4534    #[inline]
4535    pub fn with_params(&self) -> Option<WithParams> {
4536        support::child(&self.syntax)
4537    }
4538    #[inline]
4539    pub fn create_token(&self) -> Option<SyntaxToken> {
4540        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4541    }
4542    #[inline]
4543    pub fn location_token(&self) -> Option<SyntaxToken> {
4544        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4545    }
4546    #[inline]
4547    pub fn owner_token(&self) -> Option<SyntaxToken> {
4548        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4549    }
4550    #[inline]
4551    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4553    }
4554}
4555
4556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4557pub struct CreateTextSearchConfiguration {
4558    pub(crate) syntax: SyntaxNode,
4559}
4560impl CreateTextSearchConfiguration {
4561    #[inline]
4562    pub fn attribute_list(&self) -> Option<AttributeList> {
4563        support::child(&self.syntax)
4564    }
4565    #[inline]
4566    pub fn path(&self) -> Option<Path> {
4567        support::child(&self.syntax)
4568    }
4569    #[inline]
4570    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4571        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4572    }
4573    #[inline]
4574    pub fn create_token(&self) -> Option<SyntaxToken> {
4575        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4576    }
4577    #[inline]
4578    pub fn search_token(&self) -> Option<SyntaxToken> {
4579        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4580    }
4581    #[inline]
4582    pub fn text_token(&self) -> Option<SyntaxToken> {
4583        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4584    }
4585}
4586
4587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4588pub struct CreateTextSearchDictionary {
4589    pub(crate) syntax: SyntaxNode,
4590}
4591impl CreateTextSearchDictionary {
4592    #[inline]
4593    pub fn attribute_list(&self) -> Option<AttributeList> {
4594        support::child(&self.syntax)
4595    }
4596    #[inline]
4597    pub fn path(&self) -> Option<Path> {
4598        support::child(&self.syntax)
4599    }
4600    #[inline]
4601    pub fn create_token(&self) -> Option<SyntaxToken> {
4602        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4603    }
4604    #[inline]
4605    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4606        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4607    }
4608    #[inline]
4609    pub fn search_token(&self) -> Option<SyntaxToken> {
4610        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4611    }
4612    #[inline]
4613    pub fn text_token(&self) -> Option<SyntaxToken> {
4614        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4615    }
4616}
4617
4618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4619pub struct CreateTextSearchParser {
4620    pub(crate) syntax: SyntaxNode,
4621}
4622impl CreateTextSearchParser {
4623    #[inline]
4624    pub fn attribute_list(&self) -> Option<AttributeList> {
4625        support::child(&self.syntax)
4626    }
4627    #[inline]
4628    pub fn path(&self) -> Option<Path> {
4629        support::child(&self.syntax)
4630    }
4631    #[inline]
4632    pub fn create_token(&self) -> Option<SyntaxToken> {
4633        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4634    }
4635    #[inline]
4636    pub fn parser_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4638    }
4639    #[inline]
4640    pub fn search_token(&self) -> Option<SyntaxToken> {
4641        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4642    }
4643    #[inline]
4644    pub fn text_token(&self) -> Option<SyntaxToken> {
4645        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4646    }
4647}
4648
4649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4650pub struct CreateTextSearchTemplate {
4651    pub(crate) syntax: SyntaxNode,
4652}
4653impl CreateTextSearchTemplate {
4654    #[inline]
4655    pub fn attribute_list(&self) -> Option<AttributeList> {
4656        support::child(&self.syntax)
4657    }
4658    #[inline]
4659    pub fn path(&self) -> Option<Path> {
4660        support::child(&self.syntax)
4661    }
4662    #[inline]
4663    pub fn create_token(&self) -> Option<SyntaxToken> {
4664        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4665    }
4666    #[inline]
4667    pub fn search_token(&self) -> Option<SyntaxToken> {
4668        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4669    }
4670    #[inline]
4671    pub fn template_token(&self) -> Option<SyntaxToken> {
4672        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4673    }
4674    #[inline]
4675    pub fn text_token(&self) -> Option<SyntaxToken> {
4676        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4677    }
4678}
4679
4680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4681pub struct CreateTransform {
4682    pub(crate) syntax: SyntaxNode,
4683}
4684impl CreateTransform {
4685    #[inline]
4686    pub fn from_func(&self) -> Option<TransformFromFunc> {
4687        support::child(&self.syntax)
4688    }
4689    #[inline]
4690    pub fn language(&self) -> Option<NameRef> {
4691        support::child(&self.syntax)
4692    }
4693    #[inline]
4694    pub fn or_replace(&self) -> Option<OrReplace> {
4695        support::child(&self.syntax)
4696    }
4697    #[inline]
4698    pub fn to_func(&self) -> Option<TransformToFunc> {
4699        support::child(&self.syntax)
4700    }
4701    #[inline]
4702    pub fn ty(&self) -> Option<Type> {
4703        support::child(&self.syntax)
4704    }
4705    #[inline]
4706    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4707        support::token(&self.syntax, SyntaxKind::L_PAREN)
4708    }
4709    #[inline]
4710    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4711        support::token(&self.syntax, SyntaxKind::R_PAREN)
4712    }
4713    #[inline]
4714    pub fn comma_token(&self) -> Option<SyntaxToken> {
4715        support::token(&self.syntax, SyntaxKind::COMMA)
4716    }
4717    #[inline]
4718    pub fn create_token(&self) -> Option<SyntaxToken> {
4719        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4720    }
4721    #[inline]
4722    pub fn for_token(&self) -> Option<SyntaxToken> {
4723        support::token(&self.syntax, SyntaxKind::FOR_KW)
4724    }
4725    #[inline]
4726    pub fn language_token(&self) -> Option<SyntaxToken> {
4727        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4728    }
4729    #[inline]
4730    pub fn transform_token(&self) -> Option<SyntaxToken> {
4731        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4732    }
4733}
4734
4735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4736pub struct CreateTrigger {
4737    pub(crate) syntax: SyntaxNode,
4738}
4739impl CreateTrigger {
4740    #[inline]
4741    pub fn call_expr(&self) -> Option<CallExpr> {
4742        support::child(&self.syntax)
4743    }
4744    #[inline]
4745    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4746        support::child(&self.syntax)
4747    }
4748    #[inline]
4749    pub fn from_table(&self) -> Option<FromTable> {
4750        support::child(&self.syntax)
4751    }
4752    #[inline]
4753    pub fn initially_deferred_constraint_option(
4754        &self,
4755    ) -> Option<InitiallyDeferredConstraintOption> {
4756        support::child(&self.syntax)
4757    }
4758    #[inline]
4759    pub fn initially_immediate_constraint_option(
4760        &self,
4761    ) -> Option<InitiallyImmediateConstraintOption> {
4762        support::child(&self.syntax)
4763    }
4764    #[inline]
4765    pub fn name(&self) -> Option<Name> {
4766        support::child(&self.syntax)
4767    }
4768    #[inline]
4769    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn on_table(&self) -> Option<OnTable> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn or_replace(&self) -> Option<OrReplace> {
4778        support::child(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn referencing(&self) -> Option<Referencing> {
4782        support::child(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn timing(&self) -> Option<Timing> {
4786        support::child(&self.syntax)
4787    }
4788    #[inline]
4789    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4790        support::child(&self.syntax)
4791    }
4792    #[inline]
4793    pub fn when_condition(&self) -> Option<WhenCondition> {
4794        support::child(&self.syntax)
4795    }
4796    #[inline]
4797    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4799    }
4800    #[inline]
4801    pub fn create_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4803    }
4804    #[inline]
4805    pub fn each_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::EACH_KW)
4807    }
4808    #[inline]
4809    pub fn execute_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4811    }
4812    #[inline]
4813    pub fn for_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::FOR_KW)
4815    }
4816    #[inline]
4817    pub fn function_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4819    }
4820    #[inline]
4821    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4823    }
4824    #[inline]
4825    pub fn row_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::ROW_KW)
4827    }
4828    #[inline]
4829    pub fn statement_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4831    }
4832    #[inline]
4833    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4835    }
4836}
4837
4838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4839pub struct CreateType {
4840    pub(crate) syntax: SyntaxNode,
4841}
4842impl CreateType {
4843    #[inline]
4844    pub fn attribute_list(&self) -> Option<AttributeList> {
4845        support::child(&self.syntax)
4846    }
4847    #[inline]
4848    pub fn column_list(&self) -> Option<ColumnList> {
4849        support::child(&self.syntax)
4850    }
4851    #[inline]
4852    pub fn path(&self) -> Option<Path> {
4853        support::child(&self.syntax)
4854    }
4855    #[inline]
4856    pub fn variant_list(&self) -> Option<VariantList> {
4857        support::child(&self.syntax)
4858    }
4859    #[inline]
4860    pub fn as_token(&self) -> Option<SyntaxToken> {
4861        support::token(&self.syntax, SyntaxKind::AS_KW)
4862    }
4863    #[inline]
4864    pub fn create_token(&self) -> Option<SyntaxToken> {
4865        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4866    }
4867    #[inline]
4868    pub fn enum_token(&self) -> Option<SyntaxToken> {
4869        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4870    }
4871    #[inline]
4872    pub fn range_token(&self) -> Option<SyntaxToken> {
4873        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4874    }
4875    #[inline]
4876    pub fn type_token(&self) -> Option<SyntaxToken> {
4877        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4878    }
4879}
4880
4881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4882pub struct CreateUser {
4883    pub(crate) syntax: SyntaxNode,
4884}
4885impl CreateUser {
4886    #[inline]
4887    pub fn name(&self) -> Option<Name> {
4888        support::child(&self.syntax)
4889    }
4890    #[inline]
4891    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4892        support::child(&self.syntax)
4893    }
4894    #[inline]
4895    pub fn create_token(&self) -> Option<SyntaxToken> {
4896        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4897    }
4898    #[inline]
4899    pub fn user_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::USER_KW)
4901    }
4902}
4903
4904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4905pub struct CreateUserMapping {
4906    pub(crate) syntax: SyntaxNode,
4907}
4908impl CreateUserMapping {
4909    #[inline]
4910    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4911        support::child(&self.syntax)
4912    }
4913    #[inline]
4914    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4915        support::child(&self.syntax)
4916    }
4917    #[inline]
4918    pub fn name_ref(&self) -> Option<NameRef> {
4919        support::child(&self.syntax)
4920    }
4921    #[inline]
4922    pub fn role(&self) -> Option<Role> {
4923        support::child(&self.syntax)
4924    }
4925    #[inline]
4926    pub fn create_token(&self) -> Option<SyntaxToken> {
4927        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4928    }
4929    #[inline]
4930    pub fn for_token(&self) -> Option<SyntaxToken> {
4931        support::token(&self.syntax, SyntaxKind::FOR_KW)
4932    }
4933    #[inline]
4934    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4935        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4936    }
4937    #[inline]
4938    pub fn server_token(&self) -> Option<SyntaxToken> {
4939        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4940    }
4941    #[inline]
4942    pub fn user_token(&self) -> Option<SyntaxToken> {
4943        support::token(&self.syntax, SyntaxKind::USER_KW)
4944    }
4945}
4946
4947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4948pub struct CreateView {
4949    pub(crate) syntax: SyntaxNode,
4950}
4951impl CreateView {
4952    #[inline]
4953    pub fn column_list(&self) -> Option<ColumnList> {
4954        support::child(&self.syntax)
4955    }
4956    #[inline]
4957    pub fn or_replace(&self) -> Option<OrReplace> {
4958        support::child(&self.syntax)
4959    }
4960    #[inline]
4961    pub fn path(&self) -> Option<Path> {
4962        support::child(&self.syntax)
4963    }
4964    #[inline]
4965    pub fn query(&self) -> Option<SelectVariant> {
4966        support::child(&self.syntax)
4967    }
4968    #[inline]
4969    pub fn with_params(&self) -> Option<WithParams> {
4970        support::child(&self.syntax)
4971    }
4972    #[inline]
4973    pub fn as_token(&self) -> Option<SyntaxToken> {
4974        support::token(&self.syntax, SyntaxKind::AS_KW)
4975    }
4976    #[inline]
4977    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
4978        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
4979    }
4980    #[inline]
4981    pub fn check_token(&self) -> Option<SyntaxToken> {
4982        support::token(&self.syntax, SyntaxKind::CHECK_KW)
4983    }
4984    #[inline]
4985    pub fn create_token(&self) -> Option<SyntaxToken> {
4986        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4987    }
4988    #[inline]
4989    pub fn local_token(&self) -> Option<SyntaxToken> {
4990        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4991    }
4992    #[inline]
4993    pub fn option_token(&self) -> Option<SyntaxToken> {
4994        support::token(&self.syntax, SyntaxKind::OPTION_KW)
4995    }
4996    #[inline]
4997    pub fn recursive_token(&self) -> Option<SyntaxToken> {
4998        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
4999    }
5000    #[inline]
5001    pub fn temp_token(&self) -> Option<SyntaxToken> {
5002        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5003    }
5004    #[inline]
5005    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5006        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5007    }
5008    #[inline]
5009    pub fn view_token(&self) -> Option<SyntaxToken> {
5010        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5011    }
5012    #[inline]
5013    pub fn with_token(&self) -> Option<SyntaxToken> {
5014        support::token(&self.syntax, SyntaxKind::WITH_KW)
5015    }
5016}
5017
5018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5019pub struct CustomOp {
5020    pub(crate) syntax: SyntaxNode,
5021}
5022impl CustomOp {
5023    #[inline]
5024    pub fn bang_token(&self) -> Option<SyntaxToken> {
5025        support::token(&self.syntax, SyntaxKind::BANG)
5026    }
5027    #[inline]
5028    pub fn pound_token(&self) -> Option<SyntaxToken> {
5029        support::token(&self.syntax, SyntaxKind::POUND)
5030    }
5031    #[inline]
5032    pub fn percent_token(&self) -> Option<SyntaxToken> {
5033        support::token(&self.syntax, SyntaxKind::PERCENT)
5034    }
5035    #[inline]
5036    pub fn amp_token(&self) -> Option<SyntaxToken> {
5037        support::token(&self.syntax, SyntaxKind::AMP)
5038    }
5039    #[inline]
5040    pub fn star_token(&self) -> Option<SyntaxToken> {
5041        support::token(&self.syntax, SyntaxKind::STAR)
5042    }
5043    #[inline]
5044    pub fn plus_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::PLUS)
5046    }
5047    #[inline]
5048    pub fn minus_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::MINUS)
5050    }
5051    #[inline]
5052    pub fn slash_token(&self) -> Option<SyntaxToken> {
5053        support::token(&self.syntax, SyntaxKind::SLASH)
5054    }
5055    #[inline]
5056    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5057        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5058    }
5059    #[inline]
5060    pub fn eq_token(&self) -> Option<SyntaxToken> {
5061        support::token(&self.syntax, SyntaxKind::EQ)
5062    }
5063    #[inline]
5064    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5065        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5066    }
5067    #[inline]
5068    pub fn question_token(&self) -> Option<SyntaxToken> {
5069        support::token(&self.syntax, SyntaxKind::QUESTION)
5070    }
5071    #[inline]
5072    pub fn at_token(&self) -> Option<SyntaxToken> {
5073        support::token(&self.syntax, SyntaxKind::AT)
5074    }
5075    #[inline]
5076    pub fn caret_token(&self) -> Option<SyntaxToken> {
5077        support::token(&self.syntax, SyntaxKind::CARET)
5078    }
5079    #[inline]
5080    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5081        support::token(&self.syntax, SyntaxKind::BACKTICK)
5082    }
5083    #[inline]
5084    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5085        support::token(&self.syntax, SyntaxKind::PIPE)
5086    }
5087    #[inline]
5088    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5089        support::token(&self.syntax, SyntaxKind::TILDE)
5090    }
5091}
5092
5093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5094pub struct Deallocate {
5095    pub(crate) syntax: SyntaxNode,
5096}
5097impl Deallocate {
5098    #[inline]
5099    pub fn name_ref(&self) -> Option<NameRef> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn all_token(&self) -> Option<SyntaxToken> {
5104        support::token(&self.syntax, SyntaxKind::ALL_KW)
5105    }
5106    #[inline]
5107    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5108        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5109    }
5110    #[inline]
5111    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5112        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5113    }
5114}
5115
5116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5117pub struct Declare {
5118    pub(crate) syntax: SyntaxNode,
5119}
5120impl Declare {
5121    #[inline]
5122    pub fn name(&self) -> Option<Name> {
5123        support::child(&self.syntax)
5124    }
5125    #[inline]
5126    pub fn query(&self) -> Option<SelectVariant> {
5127        support::child(&self.syntax)
5128    }
5129    #[inline]
5130    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5131        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5132    }
5133    #[inline]
5134    pub fn binary_token(&self) -> Option<SyntaxToken> {
5135        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5136    }
5137    #[inline]
5138    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5139        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5140    }
5141    #[inline]
5142    pub fn declare_token(&self) -> Option<SyntaxToken> {
5143        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5144    }
5145    #[inline]
5146    pub fn for_token(&self) -> Option<SyntaxToken> {
5147        support::token(&self.syntax, SyntaxKind::FOR_KW)
5148    }
5149    #[inline]
5150    pub fn hold_token(&self) -> Option<SyntaxToken> {
5151        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5152    }
5153    #[inline]
5154    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5155        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5156    }
5157    #[inline]
5158    pub fn no_token(&self) -> Option<SyntaxToken> {
5159        support::token(&self.syntax, SyntaxKind::NO_KW)
5160    }
5161    #[inline]
5162    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5163        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5164    }
5165    #[inline]
5166    pub fn with_token(&self) -> Option<SyntaxToken> {
5167        support::token(&self.syntax, SyntaxKind::WITH_KW)
5168    }
5169    #[inline]
5170    pub fn without_token(&self) -> Option<SyntaxToken> {
5171        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5172    }
5173}
5174
5175#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5176pub struct DefaultConstraint {
5177    pub(crate) syntax: SyntaxNode,
5178}
5179impl DefaultConstraint {
5180    #[inline]
5181    pub fn expr(&self) -> Option<Expr> {
5182        support::child(&self.syntax)
5183    }
5184    #[inline]
5185    pub fn name_ref(&self) -> Option<NameRef> {
5186        support::child(&self.syntax)
5187    }
5188    #[inline]
5189    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5190        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5191    }
5192    #[inline]
5193    pub fn default_token(&self) -> Option<SyntaxToken> {
5194        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5195    }
5196}
5197
5198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5199pub struct Deferrable {
5200    pub(crate) syntax: SyntaxNode,
5201}
5202impl Deferrable {
5203    #[inline]
5204    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5205        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5206    }
5207}
5208
5209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5210pub struct DeferrableConstraintOption {
5211    pub(crate) syntax: SyntaxNode,
5212}
5213impl DeferrableConstraintOption {
5214    #[inline]
5215    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5216        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5217    }
5218}
5219
5220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5221pub struct Delete {
5222    pub(crate) syntax: SyntaxNode,
5223}
5224impl Delete {
5225    #[inline]
5226    pub fn alias(&self) -> Option<Alias> {
5227        support::child(&self.syntax)
5228    }
5229    #[inline]
5230    pub fn relation_name(&self) -> Option<RelationName> {
5231        support::child(&self.syntax)
5232    }
5233    #[inline]
5234    pub fn returning_clause(&self) -> Option<ReturningClause> {
5235        support::child(&self.syntax)
5236    }
5237    #[inline]
5238    pub fn using_clause(&self) -> Option<UsingClause> {
5239        support::child(&self.syntax)
5240    }
5241    #[inline]
5242    pub fn where_clause(&self) -> Option<WhereClause> {
5243        support::child(&self.syntax)
5244    }
5245    #[inline]
5246    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5247        support::child(&self.syntax)
5248    }
5249    #[inline]
5250    pub fn delete_token(&self) -> Option<SyntaxToken> {
5251        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5252    }
5253    #[inline]
5254    pub fn from_token(&self) -> Option<SyntaxToken> {
5255        support::token(&self.syntax, SyntaxKind::FROM_KW)
5256    }
5257}
5258
5259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5260pub struct DeleteRows {
5261    pub(crate) syntax: SyntaxNode,
5262}
5263impl DeleteRows {
5264    #[inline]
5265    pub fn delete_token(&self) -> Option<SyntaxToken> {
5266        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5267    }
5268    #[inline]
5269    pub fn rows_token(&self) -> Option<SyntaxToken> {
5270        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5271    }
5272}
5273
5274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5275pub struct DependsOnExtension {
5276    pub(crate) syntax: SyntaxNode,
5277}
5278impl DependsOnExtension {
5279    #[inline]
5280    pub fn name_ref(&self) -> Option<NameRef> {
5281        support::child(&self.syntax)
5282    }
5283    #[inline]
5284    pub fn depends_token(&self) -> Option<SyntaxToken> {
5285        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5286    }
5287    #[inline]
5288    pub fn extension_token(&self) -> Option<SyntaxToken> {
5289        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5290    }
5291    #[inline]
5292    pub fn on_token(&self) -> Option<SyntaxToken> {
5293        support::token(&self.syntax, SyntaxKind::ON_KW)
5294    }
5295}
5296
5297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5298pub struct DetachPartition {
5299    pub(crate) syntax: SyntaxNode,
5300}
5301impl DetachPartition {
5302    #[inline]
5303    pub fn detach_token(&self) -> Option<SyntaxToken> {
5304        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5305    }
5306    #[inline]
5307    pub fn partition_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5309    }
5310}
5311
5312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5313pub struct DisableRls {
5314    pub(crate) syntax: SyntaxNode,
5315}
5316impl DisableRls {
5317    #[inline]
5318    pub fn disable_token(&self) -> Option<SyntaxToken> {
5319        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5320    }
5321    #[inline]
5322    pub fn level_token(&self) -> Option<SyntaxToken> {
5323        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5324    }
5325    #[inline]
5326    pub fn row_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::ROW_KW)
5328    }
5329    #[inline]
5330    pub fn security_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5332    }
5333}
5334
5335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5336pub struct DisableRule {
5337    pub(crate) syntax: SyntaxNode,
5338}
5339impl DisableRule {
5340    #[inline]
5341    pub fn disable_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5343    }
5344    #[inline]
5345    pub fn rule_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::RULE_KW)
5347    }
5348}
5349
5350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5351pub struct DisableTrigger {
5352    pub(crate) syntax: SyntaxNode,
5353}
5354impl DisableTrigger {
5355    #[inline]
5356    pub fn disable_token(&self) -> Option<SyntaxToken> {
5357        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5358    }
5359    #[inline]
5360    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5361        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5362    }
5363}
5364
5365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5366pub struct Discard {
5367    pub(crate) syntax: SyntaxNode,
5368}
5369impl Discard {
5370    #[inline]
5371    pub fn all_token(&self) -> Option<SyntaxToken> {
5372        support::token(&self.syntax, SyntaxKind::ALL_KW)
5373    }
5374    #[inline]
5375    pub fn discard_token(&self) -> Option<SyntaxToken> {
5376        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5377    }
5378    #[inline]
5379    pub fn plans_token(&self) -> Option<SyntaxToken> {
5380        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5381    }
5382    #[inline]
5383    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5384        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5385    }
5386    #[inline]
5387    pub fn temp_token(&self) -> Option<SyntaxToken> {
5388        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5389    }
5390    #[inline]
5391    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5392        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5393    }
5394}
5395
5396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5397pub struct DistinctClause {
5398    pub(crate) syntax: SyntaxNode,
5399}
5400impl DistinctClause {
5401    #[inline]
5402    pub fn exprs(&self) -> AstChildren<Expr> {
5403        support::children(&self.syntax)
5404    }
5405    #[inline]
5406    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5407        support::token(&self.syntax, SyntaxKind::L_PAREN)
5408    }
5409    #[inline]
5410    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5411        support::token(&self.syntax, SyntaxKind::R_PAREN)
5412    }
5413    #[inline]
5414    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5415        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5416    }
5417    #[inline]
5418    pub fn on_token(&self) -> Option<SyntaxToken> {
5419        support::token(&self.syntax, SyntaxKind::ON_KW)
5420    }
5421}
5422
5423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5424pub struct Do {
5425    pub(crate) syntax: SyntaxNode,
5426}
5427impl Do {
5428    #[inline]
5429    pub fn do_token(&self) -> Option<SyntaxToken> {
5430        support::token(&self.syntax, SyntaxKind::DO_KW)
5431    }
5432}
5433
5434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5435pub struct DoubleType {
5436    pub(crate) syntax: SyntaxNode,
5437}
5438impl DoubleType {
5439    #[inline]
5440    pub fn double_token(&self) -> Option<SyntaxToken> {
5441        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5442    }
5443    #[inline]
5444    pub fn precision_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5446    }
5447}
5448
5449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5450pub struct Drop {
5451    pub(crate) syntax: SyntaxNode,
5452}
5453impl Drop {
5454    #[inline]
5455    pub fn drop_token(&self) -> Option<SyntaxToken> {
5456        support::token(&self.syntax, SyntaxKind::DROP_KW)
5457    }
5458}
5459
5460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5461pub struct DropAccessMethod {
5462    pub(crate) syntax: SyntaxNode,
5463}
5464impl DropAccessMethod {
5465    #[inline]
5466    pub fn if_exists(&self) -> Option<IfExists> {
5467        support::child(&self.syntax)
5468    }
5469    #[inline]
5470    pub fn name_ref(&self) -> Option<NameRef> {
5471        support::child(&self.syntax)
5472    }
5473    #[inline]
5474    pub fn access_token(&self) -> Option<SyntaxToken> {
5475        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5476    }
5477    #[inline]
5478    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5479        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5480    }
5481    #[inline]
5482    pub fn drop_token(&self) -> Option<SyntaxToken> {
5483        support::token(&self.syntax, SyntaxKind::DROP_KW)
5484    }
5485    #[inline]
5486    pub fn method_token(&self) -> Option<SyntaxToken> {
5487        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5488    }
5489    #[inline]
5490    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5491        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5492    }
5493}
5494
5495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5496pub struct DropAggregate {
5497    pub(crate) syntax: SyntaxNode,
5498}
5499impl DropAggregate {
5500    #[inline]
5501    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5502        support::children(&self.syntax)
5503    }
5504    #[inline]
5505    pub fn if_exists(&self) -> Option<IfExists> {
5506        support::child(&self.syntax)
5507    }
5508    #[inline]
5509    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5510        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5511    }
5512    #[inline]
5513    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5514        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5515    }
5516    #[inline]
5517    pub fn drop_token(&self) -> Option<SyntaxToken> {
5518        support::token(&self.syntax, SyntaxKind::DROP_KW)
5519    }
5520    #[inline]
5521    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5522        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5523    }
5524}
5525
5526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5527pub struct DropCast {
5528    pub(crate) syntax: SyntaxNode,
5529}
5530impl DropCast {
5531    #[inline]
5532    pub fn cast_sig(&self) -> Option<CastSig> {
5533        support::child(&self.syntax)
5534    }
5535    #[inline]
5536    pub fn if_exists(&self) -> Option<IfExists> {
5537        support::child(&self.syntax)
5538    }
5539    #[inline]
5540    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5541        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5542    }
5543    #[inline]
5544    pub fn cast_token(&self) -> Option<SyntaxToken> {
5545        support::token(&self.syntax, SyntaxKind::CAST_KW)
5546    }
5547    #[inline]
5548    pub fn drop_token(&self) -> Option<SyntaxToken> {
5549        support::token(&self.syntax, SyntaxKind::DROP_KW)
5550    }
5551    #[inline]
5552    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5554    }
5555}
5556
5557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5558pub struct DropCollation {
5559    pub(crate) syntax: SyntaxNode,
5560}
5561impl DropCollation {
5562    #[inline]
5563    pub fn if_exists(&self) -> Option<IfExists> {
5564        support::child(&self.syntax)
5565    }
5566    #[inline]
5567    pub fn paths(&self) -> AstChildren<Path> {
5568        support::children(&self.syntax)
5569    }
5570    #[inline]
5571    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5572        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5573    }
5574    #[inline]
5575    pub fn collation_token(&self) -> Option<SyntaxToken> {
5576        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5577    }
5578    #[inline]
5579    pub fn drop_token(&self) -> Option<SyntaxToken> {
5580        support::token(&self.syntax, SyntaxKind::DROP_KW)
5581    }
5582    #[inline]
5583    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5584        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5585    }
5586}
5587
5588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5589pub struct DropColumn {
5590    pub(crate) syntax: SyntaxNode,
5591}
5592impl DropColumn {
5593    #[inline]
5594    pub fn if_exists(&self) -> Option<IfExists> {
5595        support::child(&self.syntax)
5596    }
5597    #[inline]
5598    pub fn name_ref(&self) -> Option<NameRef> {
5599        support::child(&self.syntax)
5600    }
5601    #[inline]
5602    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5603        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5604    }
5605    #[inline]
5606    pub fn column_token(&self) -> Option<SyntaxToken> {
5607        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5608    }
5609    #[inline]
5610    pub fn drop_token(&self) -> Option<SyntaxToken> {
5611        support::token(&self.syntax, SyntaxKind::DROP_KW)
5612    }
5613    #[inline]
5614    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5615        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5616    }
5617}
5618
5619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5620pub struct DropConstraint {
5621    pub(crate) syntax: SyntaxNode,
5622}
5623impl DropConstraint {
5624    #[inline]
5625    pub fn if_exists(&self) -> Option<IfExists> {
5626        support::child(&self.syntax)
5627    }
5628    #[inline]
5629    pub fn name_ref(&self) -> Option<NameRef> {
5630        support::child(&self.syntax)
5631    }
5632    #[inline]
5633    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5634        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5635    }
5636    #[inline]
5637    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5638        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5639    }
5640    #[inline]
5641    pub fn drop_token(&self) -> Option<SyntaxToken> {
5642        support::token(&self.syntax, SyntaxKind::DROP_KW)
5643    }
5644    #[inline]
5645    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5646        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5647    }
5648}
5649
5650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5651pub struct DropConversion {
5652    pub(crate) syntax: SyntaxNode,
5653}
5654impl DropConversion {
5655    #[inline]
5656    pub fn if_exists(&self) -> Option<IfExists> {
5657        support::child(&self.syntax)
5658    }
5659    #[inline]
5660    pub fn path(&self) -> Option<Path> {
5661        support::child(&self.syntax)
5662    }
5663    #[inline]
5664    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5665        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5666    }
5667    #[inline]
5668    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5669        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5670    }
5671    #[inline]
5672    pub fn drop_token(&self) -> Option<SyntaxToken> {
5673        support::token(&self.syntax, SyntaxKind::DROP_KW)
5674    }
5675    #[inline]
5676    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5677        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5678    }
5679}
5680
5681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5682pub struct DropDatabase {
5683    pub(crate) syntax: SyntaxNode,
5684}
5685impl DropDatabase {
5686    #[inline]
5687    pub fn if_exists(&self) -> Option<IfExists> {
5688        support::child(&self.syntax)
5689    }
5690    #[inline]
5691    pub fn name_ref(&self) -> Option<NameRef> {
5692        support::child(&self.syntax)
5693    }
5694    #[inline]
5695    pub fn database_token(&self) -> Option<SyntaxToken> {
5696        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5697    }
5698    #[inline]
5699    pub fn drop_token(&self) -> Option<SyntaxToken> {
5700        support::token(&self.syntax, SyntaxKind::DROP_KW)
5701    }
5702}
5703
5704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5705pub struct DropDefault {
5706    pub(crate) syntax: SyntaxNode,
5707}
5708impl DropDefault {
5709    #[inline]
5710    pub fn default_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5712    }
5713    #[inline]
5714    pub fn drop_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::DROP_KW)
5716    }
5717}
5718
5719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5720pub struct DropDomain {
5721    pub(crate) syntax: SyntaxNode,
5722}
5723impl DropDomain {
5724    #[inline]
5725    pub fn if_exists(&self) -> Option<IfExists> {
5726        support::child(&self.syntax)
5727    }
5728    #[inline]
5729    pub fn paths(&self) -> AstChildren<Path> {
5730        support::children(&self.syntax)
5731    }
5732    #[inline]
5733    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5734        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5735    }
5736    #[inline]
5737    pub fn domain_token(&self) -> Option<SyntaxToken> {
5738        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5739    }
5740    #[inline]
5741    pub fn drop_token(&self) -> Option<SyntaxToken> {
5742        support::token(&self.syntax, SyntaxKind::DROP_KW)
5743    }
5744    #[inline]
5745    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5746        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5747    }
5748}
5749
5750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5751pub struct DropEventTrigger {
5752    pub(crate) syntax: SyntaxNode,
5753}
5754impl DropEventTrigger {
5755    #[inline]
5756    pub fn if_exists(&self) -> Option<IfExists> {
5757        support::child(&self.syntax)
5758    }
5759    #[inline]
5760    pub fn name_ref(&self) -> Option<NameRef> {
5761        support::child(&self.syntax)
5762    }
5763    #[inline]
5764    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5765        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5766    }
5767    #[inline]
5768    pub fn drop_token(&self) -> Option<SyntaxToken> {
5769        support::token(&self.syntax, SyntaxKind::DROP_KW)
5770    }
5771    #[inline]
5772    pub fn event_token(&self) -> Option<SyntaxToken> {
5773        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5774    }
5775    #[inline]
5776    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5777        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5778    }
5779    #[inline]
5780    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5781        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5782    }
5783}
5784
5785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5786pub struct DropExpression {
5787    pub(crate) syntax: SyntaxNode,
5788}
5789impl DropExpression {
5790    #[inline]
5791    pub fn if_exists(&self) -> Option<IfExists> {
5792        support::child(&self.syntax)
5793    }
5794    #[inline]
5795    pub fn drop_token(&self) -> Option<SyntaxToken> {
5796        support::token(&self.syntax, SyntaxKind::DROP_KW)
5797    }
5798    #[inline]
5799    pub fn expression_token(&self) -> Option<SyntaxToken> {
5800        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5801    }
5802}
5803
5804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5805pub struct DropExtension {
5806    pub(crate) syntax: SyntaxNode,
5807}
5808impl DropExtension {
5809    #[inline]
5810    pub fn if_exists(&self) -> Option<IfExists> {
5811        support::child(&self.syntax)
5812    }
5813    #[inline]
5814    pub fn name_refs(&self) -> AstChildren<NameRef> {
5815        support::children(&self.syntax)
5816    }
5817    #[inline]
5818    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5819        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5820    }
5821    #[inline]
5822    pub fn drop_token(&self) -> Option<SyntaxToken> {
5823        support::token(&self.syntax, SyntaxKind::DROP_KW)
5824    }
5825    #[inline]
5826    pub fn extension_token(&self) -> Option<SyntaxToken> {
5827        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5828    }
5829    #[inline]
5830    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5831        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5832    }
5833}
5834
5835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5836pub struct DropForeignDataWrapper {
5837    pub(crate) syntax: SyntaxNode,
5838}
5839impl DropForeignDataWrapper {
5840    #[inline]
5841    pub fn if_exists(&self) -> Option<IfExists> {
5842        support::child(&self.syntax)
5843    }
5844    #[inline]
5845    pub fn name_refs(&self) -> AstChildren<NameRef> {
5846        support::children(&self.syntax)
5847    }
5848    #[inline]
5849    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5850        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5851    }
5852    #[inline]
5853    pub fn data_token(&self) -> Option<SyntaxToken> {
5854        support::token(&self.syntax, SyntaxKind::DATA_KW)
5855    }
5856    #[inline]
5857    pub fn drop_token(&self) -> Option<SyntaxToken> {
5858        support::token(&self.syntax, SyntaxKind::DROP_KW)
5859    }
5860    #[inline]
5861    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5862        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5863    }
5864    #[inline]
5865    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5866        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5867    }
5868    #[inline]
5869    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5870        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5871    }
5872}
5873
5874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5875pub struct DropForeignTable {
5876    pub(crate) syntax: SyntaxNode,
5877}
5878impl DropForeignTable {
5879    #[inline]
5880    pub fn if_exists(&self) -> Option<IfExists> {
5881        support::child(&self.syntax)
5882    }
5883    #[inline]
5884    pub fn path(&self) -> Option<Path> {
5885        support::child(&self.syntax)
5886    }
5887    #[inline]
5888    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5889        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5890    }
5891    #[inline]
5892    pub fn drop_token(&self) -> Option<SyntaxToken> {
5893        support::token(&self.syntax, SyntaxKind::DROP_KW)
5894    }
5895    #[inline]
5896    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5897        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5898    }
5899    #[inline]
5900    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5901        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5902    }
5903    #[inline]
5904    pub fn table_token(&self) -> Option<SyntaxToken> {
5905        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5906    }
5907}
5908
5909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5910pub struct DropFunction {
5911    pub(crate) syntax: SyntaxNode,
5912}
5913impl DropFunction {
5914    #[inline]
5915    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5916        support::child(&self.syntax)
5917    }
5918    #[inline]
5919    pub fn if_exists(&self) -> Option<IfExists> {
5920        support::child(&self.syntax)
5921    }
5922    #[inline]
5923    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5924        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5925    }
5926    #[inline]
5927    pub fn drop_token(&self) -> Option<SyntaxToken> {
5928        support::token(&self.syntax, SyntaxKind::DROP_KW)
5929    }
5930    #[inline]
5931    pub fn function_token(&self) -> Option<SyntaxToken> {
5932        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5933    }
5934    #[inline]
5935    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5937    }
5938}
5939
5940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5941pub struct DropGroup {
5942    pub(crate) syntax: SyntaxNode,
5943}
5944impl DropGroup {
5945    #[inline]
5946    pub fn if_exists(&self) -> Option<IfExists> {
5947        support::child(&self.syntax)
5948    }
5949    #[inline]
5950    pub fn name_refs(&self) -> AstChildren<NameRef> {
5951        support::children(&self.syntax)
5952    }
5953    #[inline]
5954    pub fn drop_token(&self) -> Option<SyntaxToken> {
5955        support::token(&self.syntax, SyntaxKind::DROP_KW)
5956    }
5957    #[inline]
5958    pub fn group_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5960    }
5961}
5962
5963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5964pub struct DropIdentity {
5965    pub(crate) syntax: SyntaxNode,
5966}
5967impl DropIdentity {
5968    #[inline]
5969    pub fn if_exists(&self) -> Option<IfExists> {
5970        support::child(&self.syntax)
5971    }
5972    #[inline]
5973    pub fn drop_token(&self) -> Option<SyntaxToken> {
5974        support::token(&self.syntax, SyntaxKind::DROP_KW)
5975    }
5976    #[inline]
5977    pub fn identity_token(&self) -> Option<SyntaxToken> {
5978        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5979    }
5980}
5981
5982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5983pub struct DropIndex {
5984    pub(crate) syntax: SyntaxNode,
5985}
5986impl DropIndex {
5987    #[inline]
5988    pub fn if_exists(&self) -> Option<IfExists> {
5989        support::child(&self.syntax)
5990    }
5991    #[inline]
5992    pub fn paths(&self) -> AstChildren<Path> {
5993        support::children(&self.syntax)
5994    }
5995    #[inline]
5996    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5997        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5998    }
5999    #[inline]
6000    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6001        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6002    }
6003    #[inline]
6004    pub fn drop_token(&self) -> Option<SyntaxToken> {
6005        support::token(&self.syntax, SyntaxKind::DROP_KW)
6006    }
6007    #[inline]
6008    pub fn index_token(&self) -> Option<SyntaxToken> {
6009        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6010    }
6011    #[inline]
6012    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6013        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6014    }
6015}
6016
6017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6018pub struct DropLanguage {
6019    pub(crate) syntax: SyntaxNode,
6020}
6021impl DropLanguage {
6022    #[inline]
6023    pub fn if_exists(&self) -> Option<IfExists> {
6024        support::child(&self.syntax)
6025    }
6026    #[inline]
6027    pub fn name_ref(&self) -> Option<NameRef> {
6028        support::child(&self.syntax)
6029    }
6030    #[inline]
6031    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6032        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6033    }
6034    #[inline]
6035    pub fn drop_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::DROP_KW)
6037    }
6038    #[inline]
6039    pub fn language_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6041    }
6042    #[inline]
6043    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6045    }
6046    #[inline]
6047    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6049    }
6050}
6051
6052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6053pub struct DropMaterializedView {
6054    pub(crate) syntax: SyntaxNode,
6055}
6056impl DropMaterializedView {
6057    #[inline]
6058    pub fn if_exists(&self) -> Option<IfExists> {
6059        support::child(&self.syntax)
6060    }
6061    #[inline]
6062    pub fn paths(&self) -> AstChildren<Path> {
6063        support::children(&self.syntax)
6064    }
6065    #[inline]
6066    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6067        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6068    }
6069    #[inline]
6070    pub fn drop_token(&self) -> Option<SyntaxToken> {
6071        support::token(&self.syntax, SyntaxKind::DROP_KW)
6072    }
6073    #[inline]
6074    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6075        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6076    }
6077    #[inline]
6078    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6079        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6080    }
6081    #[inline]
6082    pub fn view_token(&self) -> Option<SyntaxToken> {
6083        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6084    }
6085}
6086
6087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6088pub struct DropNotNull {
6089    pub(crate) syntax: SyntaxNode,
6090}
6091impl DropNotNull {
6092    #[inline]
6093    pub fn drop_token(&self) -> Option<SyntaxToken> {
6094        support::token(&self.syntax, SyntaxKind::DROP_KW)
6095    }
6096    #[inline]
6097    pub fn not_token(&self) -> Option<SyntaxToken> {
6098        support::token(&self.syntax, SyntaxKind::NOT_KW)
6099    }
6100    #[inline]
6101    pub fn null_token(&self) -> Option<SyntaxToken> {
6102        support::token(&self.syntax, SyntaxKind::NULL_KW)
6103    }
6104}
6105
6106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6107pub struct DropOpClassOption {
6108    pub(crate) syntax: SyntaxNode,
6109}
6110impl DropOpClassOption {
6111    #[inline]
6112    pub fn literal(&self) -> Option<Literal> {
6113        support::child(&self.syntax)
6114    }
6115    #[inline]
6116    pub fn param_list(&self) -> Option<ParamList> {
6117        support::child(&self.syntax)
6118    }
6119    #[inline]
6120    pub fn function_token(&self) -> Option<SyntaxToken> {
6121        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6122    }
6123    #[inline]
6124    pub fn operator_token(&self) -> Option<SyntaxToken> {
6125        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6126    }
6127}
6128
6129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6130pub struct DropOpClassOptionList {
6131    pub(crate) syntax: SyntaxNode,
6132}
6133impl DropOpClassOptionList {
6134    #[inline]
6135    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6136        support::children(&self.syntax)
6137    }
6138}
6139
6140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6141pub struct DropOpClassOptions {
6142    pub(crate) syntax: SyntaxNode,
6143}
6144impl DropOpClassOptions {
6145    #[inline]
6146    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6147        support::child(&self.syntax)
6148    }
6149    #[inline]
6150    pub fn drop_token(&self) -> Option<SyntaxToken> {
6151        support::token(&self.syntax, SyntaxKind::DROP_KW)
6152    }
6153}
6154
6155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6156pub struct DropOperator {
6157    pub(crate) syntax: SyntaxNode,
6158}
6159impl DropOperator {
6160    #[inline]
6161    pub fn if_exists(&self) -> Option<IfExists> {
6162        support::child(&self.syntax)
6163    }
6164    #[inline]
6165    pub fn op_sig_list(&self) -> Option<OpSigList> {
6166        support::child(&self.syntax)
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 operator_token(&self) -> Option<SyntaxToken> {
6178        support::token(&self.syntax, SyntaxKind::OPERATOR_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 DropOperatorClass {
6188    pub(crate) syntax: SyntaxNode,
6189}
6190impl DropOperatorClass {
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 path(&self) -> Option<Path> {
6201        support::child(&self.syntax)
6202    }
6203    #[inline]
6204    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6205        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6206    }
6207    #[inline]
6208    pub fn class_token(&self) -> Option<SyntaxToken> {
6209        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6210    }
6211    #[inline]
6212    pub fn drop_token(&self) -> Option<SyntaxToken> {
6213        support::token(&self.syntax, SyntaxKind::DROP_KW)
6214    }
6215    #[inline]
6216    pub fn operator_token(&self) -> Option<SyntaxToken> {
6217        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6218    }
6219    #[inline]
6220    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6221        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6222    }
6223    #[inline]
6224    pub fn using_token(&self) -> Option<SyntaxToken> {
6225        support::token(&self.syntax, SyntaxKind::USING_KW)
6226    }
6227}
6228
6229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6230pub struct DropOperatorFamily {
6231    pub(crate) syntax: SyntaxNode,
6232}
6233impl DropOperatorFamily {
6234    #[inline]
6235    pub fn if_exists(&self) -> Option<IfExists> {
6236        support::child(&self.syntax)
6237    }
6238    #[inline]
6239    pub fn name_ref(&self) -> Option<NameRef> {
6240        support::child(&self.syntax)
6241    }
6242    #[inline]
6243    pub fn path(&self) -> Option<Path> {
6244        support::child(&self.syntax)
6245    }
6246    #[inline]
6247    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6248        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6249    }
6250    #[inline]
6251    pub fn drop_token(&self) -> Option<SyntaxToken> {
6252        support::token(&self.syntax, SyntaxKind::DROP_KW)
6253    }
6254    #[inline]
6255    pub fn family_token(&self) -> Option<SyntaxToken> {
6256        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6257    }
6258    #[inline]
6259    pub fn operator_token(&self) -> Option<SyntaxToken> {
6260        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6261    }
6262    #[inline]
6263    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6264        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6265    }
6266    #[inline]
6267    pub fn using_token(&self) -> Option<SyntaxToken> {
6268        support::token(&self.syntax, SyntaxKind::USING_KW)
6269    }
6270}
6271
6272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6273pub struct DropOwned {
6274    pub(crate) syntax: SyntaxNode,
6275}
6276impl DropOwned {
6277    #[inline]
6278    pub fn role_list(&self) -> Option<RoleList> {
6279        support::child(&self.syntax)
6280    }
6281    #[inline]
6282    pub fn by_token(&self) -> Option<SyntaxToken> {
6283        support::token(&self.syntax, SyntaxKind::BY_KW)
6284    }
6285    #[inline]
6286    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6287        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6288    }
6289    #[inline]
6290    pub fn drop_token(&self) -> Option<SyntaxToken> {
6291        support::token(&self.syntax, SyntaxKind::DROP_KW)
6292    }
6293    #[inline]
6294    pub fn owned_token(&self) -> Option<SyntaxToken> {
6295        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6296    }
6297    #[inline]
6298    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6299        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6300    }
6301}
6302
6303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6304pub struct DropPolicy {
6305    pub(crate) syntax: SyntaxNode,
6306}
6307impl DropPolicy {
6308    #[inline]
6309    pub fn if_exists(&self) -> Option<IfExists> {
6310        support::child(&self.syntax)
6311    }
6312    #[inline]
6313    pub fn name_ref(&self) -> Option<NameRef> {
6314        support::child(&self.syntax)
6315    }
6316    #[inline]
6317    pub fn on_table(&self) -> Option<OnTable> {
6318        support::child(&self.syntax)
6319    }
6320    #[inline]
6321    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6322        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6323    }
6324    #[inline]
6325    pub fn drop_token(&self) -> Option<SyntaxToken> {
6326        support::token(&self.syntax, SyntaxKind::DROP_KW)
6327    }
6328    #[inline]
6329    pub fn policy_token(&self) -> Option<SyntaxToken> {
6330        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6331    }
6332    #[inline]
6333    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6334        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6335    }
6336}
6337
6338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6339pub struct DropProcedure {
6340    pub(crate) syntax: SyntaxNode,
6341}
6342impl DropProcedure {
6343    #[inline]
6344    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6345        support::child(&self.syntax)
6346    }
6347    #[inline]
6348    pub fn if_exists(&self) -> Option<IfExists> {
6349        support::child(&self.syntax)
6350    }
6351    #[inline]
6352    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6353        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6354    }
6355    #[inline]
6356    pub fn drop_token(&self) -> Option<SyntaxToken> {
6357        support::token(&self.syntax, SyntaxKind::DROP_KW)
6358    }
6359    #[inline]
6360    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6361        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6362    }
6363    #[inline]
6364    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6365        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6366    }
6367}
6368
6369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6370pub struct DropPublication {
6371    pub(crate) syntax: SyntaxNode,
6372}
6373impl DropPublication {
6374    #[inline]
6375    pub fn if_exists(&self) -> Option<IfExists> {
6376        support::child(&self.syntax)
6377    }
6378    #[inline]
6379    pub fn name_refs(&self) -> AstChildren<NameRef> {
6380        support::children(&self.syntax)
6381    }
6382    #[inline]
6383    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6384        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6385    }
6386    #[inline]
6387    pub fn drop_token(&self) -> Option<SyntaxToken> {
6388        support::token(&self.syntax, SyntaxKind::DROP_KW)
6389    }
6390    #[inline]
6391    pub fn publication_token(&self) -> Option<SyntaxToken> {
6392        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6393    }
6394    #[inline]
6395    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6396        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6397    }
6398}
6399
6400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6401pub struct DropRole {
6402    pub(crate) syntax: SyntaxNode,
6403}
6404impl DropRole {
6405    #[inline]
6406    pub fn if_exists(&self) -> Option<IfExists> {
6407        support::child(&self.syntax)
6408    }
6409    #[inline]
6410    pub fn name_refs(&self) -> AstChildren<NameRef> {
6411        support::children(&self.syntax)
6412    }
6413    #[inline]
6414    pub fn drop_token(&self) -> Option<SyntaxToken> {
6415        support::token(&self.syntax, SyntaxKind::DROP_KW)
6416    }
6417    #[inline]
6418    pub fn role_token(&self) -> Option<SyntaxToken> {
6419        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6420    }
6421}
6422
6423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6424pub struct DropRoutine {
6425    pub(crate) syntax: SyntaxNode,
6426}
6427impl DropRoutine {
6428    #[inline]
6429    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6430        support::child(&self.syntax)
6431    }
6432    #[inline]
6433    pub fn if_exists(&self) -> Option<IfExists> {
6434        support::child(&self.syntax)
6435    }
6436    #[inline]
6437    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6438        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6439    }
6440    #[inline]
6441    pub fn drop_token(&self) -> Option<SyntaxToken> {
6442        support::token(&self.syntax, SyntaxKind::DROP_KW)
6443    }
6444    #[inline]
6445    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6446        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6447    }
6448    #[inline]
6449    pub fn routine_token(&self) -> Option<SyntaxToken> {
6450        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6451    }
6452}
6453
6454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6455pub struct DropRule {
6456    pub(crate) syntax: SyntaxNode,
6457}
6458impl DropRule {
6459    #[inline]
6460    pub fn if_exists(&self) -> Option<IfExists> {
6461        support::child(&self.syntax)
6462    }
6463    #[inline]
6464    pub fn name_ref(&self) -> Option<NameRef> {
6465        support::child(&self.syntax)
6466    }
6467    #[inline]
6468    pub fn on_table(&self) -> Option<OnTable> {
6469        support::child(&self.syntax)
6470    }
6471    #[inline]
6472    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6473        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6474    }
6475    #[inline]
6476    pub fn drop_token(&self) -> Option<SyntaxToken> {
6477        support::token(&self.syntax, SyntaxKind::DROP_KW)
6478    }
6479    #[inline]
6480    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6481        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6482    }
6483    #[inline]
6484    pub fn rule_token(&self) -> Option<SyntaxToken> {
6485        support::token(&self.syntax, SyntaxKind::RULE_KW)
6486    }
6487}
6488
6489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6490pub struct DropSchema {
6491    pub(crate) syntax: SyntaxNode,
6492}
6493impl DropSchema {
6494    #[inline]
6495    pub fn if_exists(&self) -> Option<IfExists> {
6496        support::child(&self.syntax)
6497    }
6498    #[inline]
6499    pub fn name_refs(&self) -> AstChildren<NameRef> {
6500        support::children(&self.syntax)
6501    }
6502    #[inline]
6503    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6504        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6505    }
6506    #[inline]
6507    pub fn drop_token(&self) -> Option<SyntaxToken> {
6508        support::token(&self.syntax, SyntaxKind::DROP_KW)
6509    }
6510    #[inline]
6511    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6512        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6513    }
6514    #[inline]
6515    pub fn schema_token(&self) -> Option<SyntaxToken> {
6516        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6517    }
6518}
6519
6520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6521pub struct DropSequence {
6522    pub(crate) syntax: SyntaxNode,
6523}
6524impl DropSequence {
6525    #[inline]
6526    pub fn if_exists(&self) -> Option<IfExists> {
6527        support::child(&self.syntax)
6528    }
6529    #[inline]
6530    pub fn paths(&self) -> AstChildren<Path> {
6531        support::children(&self.syntax)
6532    }
6533    #[inline]
6534    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6535        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6536    }
6537    #[inline]
6538    pub fn drop_token(&self) -> Option<SyntaxToken> {
6539        support::token(&self.syntax, SyntaxKind::DROP_KW)
6540    }
6541    #[inline]
6542    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6543        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6544    }
6545    #[inline]
6546    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6547        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6548    }
6549}
6550
6551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6552pub struct DropServer {
6553    pub(crate) syntax: SyntaxNode,
6554}
6555impl DropServer {
6556    #[inline]
6557    pub fn if_exists(&self) -> Option<IfExists> {
6558        support::child(&self.syntax)
6559    }
6560    #[inline]
6561    pub fn name_ref(&self) -> Option<NameRef> {
6562        support::child(&self.syntax)
6563    }
6564    #[inline]
6565    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6566        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6567    }
6568    #[inline]
6569    pub fn drop_token(&self) -> Option<SyntaxToken> {
6570        support::token(&self.syntax, SyntaxKind::DROP_KW)
6571    }
6572    #[inline]
6573    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6574        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6575    }
6576    #[inline]
6577    pub fn server_token(&self) -> Option<SyntaxToken> {
6578        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6579    }
6580}
6581
6582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6583pub struct DropStatistics {
6584    pub(crate) syntax: SyntaxNode,
6585}
6586impl DropStatistics {
6587    #[inline]
6588    pub fn if_exists(&self) -> Option<IfExists> {
6589        support::child(&self.syntax)
6590    }
6591    #[inline]
6592    pub fn paths(&self) -> AstChildren<Path> {
6593        support::children(&self.syntax)
6594    }
6595    #[inline]
6596    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6597        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6598    }
6599    #[inline]
6600    pub fn drop_token(&self) -> Option<SyntaxToken> {
6601        support::token(&self.syntax, SyntaxKind::DROP_KW)
6602    }
6603    #[inline]
6604    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6605        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6606    }
6607    #[inline]
6608    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6609        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6610    }
6611}
6612
6613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6614pub struct DropSubscription {
6615    pub(crate) syntax: SyntaxNode,
6616}
6617impl DropSubscription {
6618    #[inline]
6619    pub fn if_exists(&self) -> Option<IfExists> {
6620        support::child(&self.syntax)
6621    }
6622    #[inline]
6623    pub fn name_ref(&self) -> Option<NameRef> {
6624        support::child(&self.syntax)
6625    }
6626    #[inline]
6627    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6628        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6629    }
6630    #[inline]
6631    pub fn drop_token(&self) -> Option<SyntaxToken> {
6632        support::token(&self.syntax, SyntaxKind::DROP_KW)
6633    }
6634    #[inline]
6635    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6636        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6637    }
6638    #[inline]
6639    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6640        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6641    }
6642}
6643
6644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6645pub struct DropTable {
6646    pub(crate) syntax: SyntaxNode,
6647}
6648impl DropTable {
6649    #[inline]
6650    pub fn if_exists(&self) -> Option<IfExists> {
6651        support::child(&self.syntax)
6652    }
6653    #[inline]
6654    pub fn path(&self) -> Option<Path> {
6655        support::child(&self.syntax)
6656    }
6657    #[inline]
6658    pub fn comma_token(&self) -> Option<SyntaxToken> {
6659        support::token(&self.syntax, SyntaxKind::COMMA)
6660    }
6661    #[inline]
6662    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6663        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6664    }
6665    #[inline]
6666    pub fn drop_token(&self) -> Option<SyntaxToken> {
6667        support::token(&self.syntax, SyntaxKind::DROP_KW)
6668    }
6669    #[inline]
6670    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6671        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6672    }
6673    #[inline]
6674    pub fn table_token(&self) -> Option<SyntaxToken> {
6675        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6676    }
6677}
6678
6679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6680pub struct DropTablespace {
6681    pub(crate) syntax: SyntaxNode,
6682}
6683impl DropTablespace {
6684    #[inline]
6685    pub fn if_exists(&self) -> Option<IfExists> {
6686        support::child(&self.syntax)
6687    }
6688    #[inline]
6689    pub fn name_ref(&self) -> Option<NameRef> {
6690        support::child(&self.syntax)
6691    }
6692    #[inline]
6693    pub fn drop_token(&self) -> Option<SyntaxToken> {
6694        support::token(&self.syntax, SyntaxKind::DROP_KW)
6695    }
6696    #[inline]
6697    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6698        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6699    }
6700}
6701
6702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6703pub struct DropTextSearchConfig {
6704    pub(crate) syntax: SyntaxNode,
6705}
6706impl DropTextSearchConfig {
6707    #[inline]
6708    pub fn if_exists(&self) -> Option<IfExists> {
6709        support::child(&self.syntax)
6710    }
6711    #[inline]
6712    pub fn path(&self) -> Option<Path> {
6713        support::child(&self.syntax)
6714    }
6715    #[inline]
6716    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6717        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6718    }
6719    #[inline]
6720    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6721        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6722    }
6723    #[inline]
6724    pub fn drop_token(&self) -> Option<SyntaxToken> {
6725        support::token(&self.syntax, SyntaxKind::DROP_KW)
6726    }
6727    #[inline]
6728    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6729        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6730    }
6731    #[inline]
6732    pub fn search_token(&self) -> Option<SyntaxToken> {
6733        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6734    }
6735    #[inline]
6736    pub fn text_token(&self) -> Option<SyntaxToken> {
6737        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6738    }
6739}
6740
6741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6742pub struct DropTextSearchDict {
6743    pub(crate) syntax: SyntaxNode,
6744}
6745impl DropTextSearchDict {
6746    #[inline]
6747    pub fn if_exists(&self) -> Option<IfExists> {
6748        support::child(&self.syntax)
6749    }
6750    #[inline]
6751    pub fn path(&self) -> Option<Path> {
6752        support::child(&self.syntax)
6753    }
6754    #[inline]
6755    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6756        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6757    }
6758    #[inline]
6759    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6760        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6761    }
6762    #[inline]
6763    pub fn drop_token(&self) -> Option<SyntaxToken> {
6764        support::token(&self.syntax, SyntaxKind::DROP_KW)
6765    }
6766    #[inline]
6767    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6768        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6769    }
6770    #[inline]
6771    pub fn search_token(&self) -> Option<SyntaxToken> {
6772        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6773    }
6774    #[inline]
6775    pub fn text_token(&self) -> Option<SyntaxToken> {
6776        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6777    }
6778}
6779
6780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6781pub struct DropTextSearchParser {
6782    pub(crate) syntax: SyntaxNode,
6783}
6784impl DropTextSearchParser {
6785    #[inline]
6786    pub fn if_exists(&self) -> Option<IfExists> {
6787        support::child(&self.syntax)
6788    }
6789    #[inline]
6790    pub fn path(&self) -> Option<Path> {
6791        support::child(&self.syntax)
6792    }
6793    #[inline]
6794    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6795        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6796    }
6797    #[inline]
6798    pub fn drop_token(&self) -> Option<SyntaxToken> {
6799        support::token(&self.syntax, SyntaxKind::DROP_KW)
6800    }
6801    #[inline]
6802    pub fn parser_token(&self) -> Option<SyntaxToken> {
6803        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6804    }
6805    #[inline]
6806    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6807        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6808    }
6809    #[inline]
6810    pub fn search_token(&self) -> Option<SyntaxToken> {
6811        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6812    }
6813    #[inline]
6814    pub fn text_token(&self) -> Option<SyntaxToken> {
6815        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6816    }
6817}
6818
6819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6820pub struct DropTextSearchTemplate {
6821    pub(crate) syntax: SyntaxNode,
6822}
6823impl DropTextSearchTemplate {
6824    #[inline]
6825    pub fn if_exists(&self) -> Option<IfExists> {
6826        support::child(&self.syntax)
6827    }
6828    #[inline]
6829    pub fn path(&self) -> Option<Path> {
6830        support::child(&self.syntax)
6831    }
6832    #[inline]
6833    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6834        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6835    }
6836    #[inline]
6837    pub fn drop_token(&self) -> Option<SyntaxToken> {
6838        support::token(&self.syntax, SyntaxKind::DROP_KW)
6839    }
6840    #[inline]
6841    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6842        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6843    }
6844    #[inline]
6845    pub fn search_token(&self) -> Option<SyntaxToken> {
6846        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6847    }
6848    #[inline]
6849    pub fn template_token(&self) -> Option<SyntaxToken> {
6850        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6851    }
6852    #[inline]
6853    pub fn text_token(&self) -> Option<SyntaxToken> {
6854        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6855    }
6856}
6857
6858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6859pub struct DropTransform {
6860    pub(crate) syntax: SyntaxNode,
6861}
6862impl DropTransform {
6863    #[inline]
6864    pub fn if_exists(&self) -> Option<IfExists> {
6865        support::child(&self.syntax)
6866    }
6867    #[inline]
6868    pub fn language(&self) -> Option<NameRef> {
6869        support::child(&self.syntax)
6870    }
6871    #[inline]
6872    pub fn ty(&self) -> Option<Type> {
6873        support::child(&self.syntax)
6874    }
6875    #[inline]
6876    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6877        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6878    }
6879    #[inline]
6880    pub fn drop_token(&self) -> Option<SyntaxToken> {
6881        support::token(&self.syntax, SyntaxKind::DROP_KW)
6882    }
6883    #[inline]
6884    pub fn for_token(&self) -> Option<SyntaxToken> {
6885        support::token(&self.syntax, SyntaxKind::FOR_KW)
6886    }
6887    #[inline]
6888    pub fn language_token(&self) -> Option<SyntaxToken> {
6889        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6890    }
6891    #[inline]
6892    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6894    }
6895    #[inline]
6896    pub fn transform_token(&self) -> Option<SyntaxToken> {
6897        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6898    }
6899}
6900
6901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6902pub struct DropTrigger {
6903    pub(crate) syntax: SyntaxNode,
6904}
6905impl DropTrigger {
6906    #[inline]
6907    pub fn if_exists(&self) -> Option<IfExists> {
6908        support::child(&self.syntax)
6909    }
6910    #[inline]
6911    pub fn on_table(&self) -> Option<OnTable> {
6912        support::child(&self.syntax)
6913    }
6914    #[inline]
6915    pub fn path(&self) -> Option<Path> {
6916        support::child(&self.syntax)
6917    }
6918    #[inline]
6919    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6920        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6921    }
6922    #[inline]
6923    pub fn drop_token(&self) -> Option<SyntaxToken> {
6924        support::token(&self.syntax, SyntaxKind::DROP_KW)
6925    }
6926    #[inline]
6927    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6928        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6929    }
6930    #[inline]
6931    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6932        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6933    }
6934}
6935
6936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6937pub struct DropType {
6938    pub(crate) syntax: SyntaxNode,
6939}
6940impl DropType {
6941    #[inline]
6942    pub fn if_exists(&self) -> Option<IfExists> {
6943        support::child(&self.syntax)
6944    }
6945    #[inline]
6946    pub fn paths(&self) -> AstChildren<Path> {
6947        support::children(&self.syntax)
6948    }
6949    #[inline]
6950    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6951        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6952    }
6953    #[inline]
6954    pub fn drop_token(&self) -> Option<SyntaxToken> {
6955        support::token(&self.syntax, SyntaxKind::DROP_KW)
6956    }
6957    #[inline]
6958    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6959        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6960    }
6961    #[inline]
6962    pub fn type_token(&self) -> Option<SyntaxToken> {
6963        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6964    }
6965}
6966
6967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6968pub struct DropUser {
6969    pub(crate) syntax: SyntaxNode,
6970}
6971impl DropUser {
6972    #[inline]
6973    pub fn if_exists(&self) -> Option<IfExists> {
6974        support::child(&self.syntax)
6975    }
6976    #[inline]
6977    pub fn name_refs(&self) -> AstChildren<NameRef> {
6978        support::children(&self.syntax)
6979    }
6980    #[inline]
6981    pub fn drop_token(&self) -> Option<SyntaxToken> {
6982        support::token(&self.syntax, SyntaxKind::DROP_KW)
6983    }
6984    #[inline]
6985    pub fn user_token(&self) -> Option<SyntaxToken> {
6986        support::token(&self.syntax, SyntaxKind::USER_KW)
6987    }
6988}
6989
6990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6991pub struct DropUserMapping {
6992    pub(crate) syntax: SyntaxNode,
6993}
6994impl DropUserMapping {
6995    #[inline]
6996    pub fn if_exists(&self) -> Option<IfExists> {
6997        support::child(&self.syntax)
6998    }
6999    #[inline]
7000    pub fn name_ref(&self) -> Option<NameRef> {
7001        support::child(&self.syntax)
7002    }
7003    #[inline]
7004    pub fn role(&self) -> Option<Role> {
7005        support::child(&self.syntax)
7006    }
7007    #[inline]
7008    pub fn drop_token(&self) -> Option<SyntaxToken> {
7009        support::token(&self.syntax, SyntaxKind::DROP_KW)
7010    }
7011    #[inline]
7012    pub fn for_token(&self) -> Option<SyntaxToken> {
7013        support::token(&self.syntax, SyntaxKind::FOR_KW)
7014    }
7015    #[inline]
7016    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7017        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7018    }
7019    #[inline]
7020    pub fn server_token(&self) -> Option<SyntaxToken> {
7021        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7022    }
7023    #[inline]
7024    pub fn user_token(&self) -> Option<SyntaxToken> {
7025        support::token(&self.syntax, SyntaxKind::USER_KW)
7026    }
7027}
7028
7029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7030pub struct DropView {
7031    pub(crate) syntax: SyntaxNode,
7032}
7033impl DropView {
7034    #[inline]
7035    pub fn if_exists(&self) -> Option<IfExists> {
7036        support::child(&self.syntax)
7037    }
7038    #[inline]
7039    pub fn path(&self) -> Option<Path> {
7040        support::child(&self.syntax)
7041    }
7042    #[inline]
7043    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7044        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7045    }
7046    #[inline]
7047    pub fn drop_token(&self) -> Option<SyntaxToken> {
7048        support::token(&self.syntax, SyntaxKind::DROP_KW)
7049    }
7050    #[inline]
7051    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7052        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7053    }
7054    #[inline]
7055    pub fn view_token(&self) -> Option<SyntaxToken> {
7056        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7057    }
7058}
7059
7060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7061pub struct ElseClause {
7062    pub(crate) syntax: SyntaxNode,
7063}
7064impl ElseClause {
7065    #[inline]
7066    pub fn expr(&self) -> Option<Expr> {
7067        support::child(&self.syntax)
7068    }
7069    #[inline]
7070    pub fn else_token(&self) -> Option<SyntaxToken> {
7071        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7072    }
7073}
7074
7075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7076pub struct EnableAlwaysRule {
7077    pub(crate) syntax: SyntaxNode,
7078}
7079impl EnableAlwaysRule {
7080    #[inline]
7081    pub fn always_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7083    }
7084    #[inline]
7085    pub fn enable_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7087    }
7088    #[inline]
7089    pub fn rule_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::RULE_KW)
7091    }
7092}
7093
7094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7095pub struct EnableAlwaysTrigger {
7096    pub(crate) syntax: SyntaxNode,
7097}
7098impl EnableAlwaysTrigger {
7099    #[inline]
7100    pub fn always_token(&self) -> Option<SyntaxToken> {
7101        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7102    }
7103    #[inline]
7104    pub fn enable_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7106    }
7107    #[inline]
7108    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7110    }
7111}
7112
7113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7114pub struct EnableReplicaRule {
7115    pub(crate) syntax: SyntaxNode,
7116}
7117impl EnableReplicaRule {
7118    #[inline]
7119    pub fn enable_token(&self) -> Option<SyntaxToken> {
7120        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7121    }
7122    #[inline]
7123    pub fn replica_token(&self) -> Option<SyntaxToken> {
7124        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7125    }
7126    #[inline]
7127    pub fn rule_token(&self) -> Option<SyntaxToken> {
7128        support::token(&self.syntax, SyntaxKind::RULE_KW)
7129    }
7130}
7131
7132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7133pub struct EnableReplicaTrigger {
7134    pub(crate) syntax: SyntaxNode,
7135}
7136impl EnableReplicaTrigger {
7137    #[inline]
7138    pub fn enable_token(&self) -> Option<SyntaxToken> {
7139        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7140    }
7141    #[inline]
7142    pub fn replica_token(&self) -> Option<SyntaxToken> {
7143        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7144    }
7145    #[inline]
7146    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7147        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7148    }
7149}
7150
7151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7152pub struct EnableRls {
7153    pub(crate) syntax: SyntaxNode,
7154}
7155impl EnableRls {
7156    #[inline]
7157    pub fn enable_token(&self) -> Option<SyntaxToken> {
7158        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7159    }
7160    #[inline]
7161    pub fn level_token(&self) -> Option<SyntaxToken> {
7162        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7163    }
7164    #[inline]
7165    pub fn row_token(&self) -> Option<SyntaxToken> {
7166        support::token(&self.syntax, SyntaxKind::ROW_KW)
7167    }
7168    #[inline]
7169    pub fn security_token(&self) -> Option<SyntaxToken> {
7170        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7171    }
7172}
7173
7174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7175pub struct EnableRule {
7176    pub(crate) syntax: SyntaxNode,
7177}
7178impl EnableRule {
7179    #[inline]
7180    pub fn enable_token(&self) -> Option<SyntaxToken> {
7181        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7182    }
7183    #[inline]
7184    pub fn rule_token(&self) -> Option<SyntaxToken> {
7185        support::token(&self.syntax, SyntaxKind::RULE_KW)
7186    }
7187}
7188
7189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7190pub struct EnableTrigger {
7191    pub(crate) syntax: SyntaxNode,
7192}
7193impl EnableTrigger {
7194    #[inline]
7195    pub fn enable_token(&self) -> Option<SyntaxToken> {
7196        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7197    }
7198    #[inline]
7199    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7200        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7201    }
7202}
7203
7204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7205pub struct Enforced {
7206    pub(crate) syntax: SyntaxNode,
7207}
7208impl Enforced {
7209    #[inline]
7210    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7211        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7212    }
7213}
7214
7215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7216pub struct EventTriggerWhen {
7217    pub(crate) syntax: SyntaxNode,
7218}
7219impl EventTriggerWhen {
7220    #[inline]
7221    pub fn literals(&self) -> AstChildren<Literal> {
7222        support::children(&self.syntax)
7223    }
7224    #[inline]
7225    pub fn name_ref(&self) -> Option<NameRef> {
7226        support::child(&self.syntax)
7227    }
7228    #[inline]
7229    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7230        support::token(&self.syntax, SyntaxKind::L_PAREN)
7231    }
7232    #[inline]
7233    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7234        support::token(&self.syntax, SyntaxKind::R_PAREN)
7235    }
7236    #[inline]
7237    pub fn in_token(&self) -> Option<SyntaxToken> {
7238        support::token(&self.syntax, SyntaxKind::IN_KW)
7239    }
7240}
7241
7242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7243pub struct EventTriggerWhenClause {
7244    pub(crate) syntax: SyntaxNode,
7245}
7246impl EventTriggerWhenClause {
7247    #[inline]
7248    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7249        support::children(&self.syntax)
7250    }
7251    #[inline]
7252    pub fn when_token(&self) -> Option<SyntaxToken> {
7253        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7254    }
7255}
7256
7257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7258pub struct ExceptTables {
7259    pub(crate) syntax: SyntaxNode,
7260}
7261impl ExceptTables {
7262    #[inline]
7263    pub fn name_refs(&self) -> AstChildren<NameRef> {
7264        support::children(&self.syntax)
7265    }
7266    #[inline]
7267    pub fn except_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7269    }
7270}
7271
7272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7273pub struct ExcludeConstraint {
7274    pub(crate) syntax: SyntaxNode,
7275}
7276impl ExcludeConstraint {
7277    #[inline]
7278    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7279        support::child(&self.syntax)
7280    }
7281    #[inline]
7282    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7283        support::child(&self.syntax)
7284    }
7285    #[inline]
7286    pub fn name(&self) -> Option<Name> {
7287        support::child(&self.syntax)
7288    }
7289    #[inline]
7290    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7291        support::child(&self.syntax)
7292    }
7293    #[inline]
7294    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7295        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7296    }
7297    #[inline]
7298    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7299        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7300    }
7301}
7302
7303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7304pub struct Execute {
7305    pub(crate) syntax: SyntaxNode,
7306}
7307impl Execute {
7308    #[inline]
7309    pub fn arg_list(&self) -> Option<ArgList> {
7310        support::child(&self.syntax)
7311    }
7312    #[inline]
7313    pub fn name_ref(&self) -> Option<NameRef> {
7314        support::child(&self.syntax)
7315    }
7316    #[inline]
7317    pub fn execute_token(&self) -> Option<SyntaxToken> {
7318        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7319    }
7320}
7321
7322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7323pub struct ExistsFn {
7324    pub(crate) syntax: SyntaxNode,
7325}
7326impl ExistsFn {
7327    #[inline]
7328    pub fn select_variant(&self) -> Option<SelectVariant> {
7329        support::child(&self.syntax)
7330    }
7331    #[inline]
7332    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7333        support::token(&self.syntax, SyntaxKind::L_PAREN)
7334    }
7335    #[inline]
7336    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7337        support::token(&self.syntax, SyntaxKind::R_PAREN)
7338    }
7339    #[inline]
7340    pub fn exists_token(&self) -> Option<SyntaxToken> {
7341        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7342    }
7343}
7344
7345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7346pub struct Explain {
7347    pub(crate) syntax: SyntaxNode,
7348}
7349impl Explain {
7350    #[inline]
7351    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7352        support::child(&self.syntax)
7353    }
7354    #[inline]
7355    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7356        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7357    }
7358    #[inline]
7359    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7360        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7361    }
7362    #[inline]
7363    pub fn explain_token(&self) -> Option<SyntaxToken> {
7364        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7365    }
7366    #[inline]
7367    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7368        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7369    }
7370}
7371
7372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7373pub struct ExprAsName {
7374    pub(crate) syntax: SyntaxNode,
7375}
7376impl ExprAsName {
7377    #[inline]
7378    pub fn as_name(&self) -> Option<AsName> {
7379        support::child(&self.syntax)
7380    }
7381    #[inline]
7382    pub fn expr(&self) -> Option<Expr> {
7383        support::child(&self.syntax)
7384    }
7385}
7386
7387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7388pub struct ExprType {
7389    pub(crate) syntax: SyntaxNode,
7390}
7391impl ExprType {
7392    #[inline]
7393    pub fn expr(&self) -> Option<Expr> {
7394        support::child(&self.syntax)
7395    }
7396}
7397
7398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7399pub struct ExtractFn {
7400    pub(crate) syntax: SyntaxNode,
7401}
7402impl ExtractFn {
7403    #[inline]
7404    pub fn expr(&self) -> Option<Expr> {
7405        support::child(&self.syntax)
7406    }
7407    #[inline]
7408    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7409        support::token(&self.syntax, SyntaxKind::L_PAREN)
7410    }
7411    #[inline]
7412    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7413        support::token(&self.syntax, SyntaxKind::R_PAREN)
7414    }
7415    #[inline]
7416    pub fn day_token(&self) -> Option<SyntaxToken> {
7417        support::token(&self.syntax, SyntaxKind::DAY_KW)
7418    }
7419    #[inline]
7420    pub fn extract_token(&self) -> Option<SyntaxToken> {
7421        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7422    }
7423    #[inline]
7424    pub fn from_token(&self) -> Option<SyntaxToken> {
7425        support::token(&self.syntax, SyntaxKind::FROM_KW)
7426    }
7427    #[inline]
7428    pub fn hour_token(&self) -> Option<SyntaxToken> {
7429        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7430    }
7431    #[inline]
7432    pub fn ident_token(&self) -> Option<SyntaxToken> {
7433        support::token(&self.syntax, SyntaxKind::IDENT)
7434    }
7435    #[inline]
7436    pub fn minute_token(&self) -> Option<SyntaxToken> {
7437        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7438    }
7439    #[inline]
7440    pub fn month_token(&self) -> Option<SyntaxToken> {
7441        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7442    }
7443    #[inline]
7444    pub fn second_token(&self) -> Option<SyntaxToken> {
7445        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7446    }
7447    #[inline]
7448    pub fn string_token(&self) -> Option<SyntaxToken> {
7449        support::token(&self.syntax, SyntaxKind::STRING_KW)
7450    }
7451    #[inline]
7452    pub fn year_token(&self) -> Option<SyntaxToken> {
7453        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7454    }
7455}
7456
7457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7458pub struct FatArrow {
7459    pub(crate) syntax: SyntaxNode,
7460}
7461impl FatArrow {
7462    #[inline]
7463    pub fn eq_token(&self) -> Option<SyntaxToken> {
7464        support::token(&self.syntax, SyntaxKind::EQ)
7465    }
7466    #[inline]
7467    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7468        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7469    }
7470}
7471
7472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7473pub struct FdwOption {
7474    pub(crate) syntax: SyntaxNode,
7475}
7476impl FdwOption {
7477    #[inline]
7478    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7479        support::child(&self.syntax)
7480    }
7481    #[inline]
7482    pub fn path(&self) -> Option<Path> {
7483        support::child(&self.syntax)
7484    }
7485    #[inline]
7486    pub fn handler_token(&self) -> Option<SyntaxToken> {
7487        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7488    }
7489    #[inline]
7490    pub fn no_token(&self) -> Option<SyntaxToken> {
7491        support::token(&self.syntax, SyntaxKind::NO_KW)
7492    }
7493    #[inline]
7494    pub fn options_token(&self) -> Option<SyntaxToken> {
7495        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7496    }
7497    #[inline]
7498    pub fn validator_token(&self) -> Option<SyntaxToken> {
7499        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7500    }
7501}
7502
7503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7504pub struct FdwOptionList {
7505    pub(crate) syntax: SyntaxNode,
7506}
7507impl FdwOptionList {
7508    #[inline]
7509    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7510        support::children(&self.syntax)
7511    }
7512}
7513
7514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7515pub struct Fetch {
7516    pub(crate) syntax: SyntaxNode,
7517}
7518impl Fetch {
7519    #[inline]
7520    pub fn name_ref(&self) -> Option<NameRef> {
7521        support::child(&self.syntax)
7522    }
7523    #[inline]
7524    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7525        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7526    }
7527    #[inline]
7528    pub fn from_token(&self) -> Option<SyntaxToken> {
7529        support::token(&self.syntax, SyntaxKind::FROM_KW)
7530    }
7531    #[inline]
7532    pub fn in_token(&self) -> Option<SyntaxToken> {
7533        support::token(&self.syntax, SyntaxKind::IN_KW)
7534    }
7535}
7536
7537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7538pub struct FetchClause {
7539    pub(crate) syntax: SyntaxNode,
7540}
7541impl FetchClause {
7542    #[inline]
7543    pub fn expr(&self) -> Option<Expr> {
7544        support::child(&self.syntax)
7545    }
7546    #[inline]
7547    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7548        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7549    }
7550    #[inline]
7551    pub fn first_token(&self) -> Option<SyntaxToken> {
7552        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7553    }
7554    #[inline]
7555    pub fn next_token(&self) -> Option<SyntaxToken> {
7556        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7557    }
7558    #[inline]
7559    pub fn only_token(&self) -> Option<SyntaxToken> {
7560        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7561    }
7562    #[inline]
7563    pub fn row_token(&self) -> Option<SyntaxToken> {
7564        support::token(&self.syntax, SyntaxKind::ROW_KW)
7565    }
7566    #[inline]
7567    pub fn rows_token(&self) -> Option<SyntaxToken> {
7568        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7569    }
7570    #[inline]
7571    pub fn ties_token(&self) -> Option<SyntaxToken> {
7572        support::token(&self.syntax, SyntaxKind::TIES_KW)
7573    }
7574    #[inline]
7575    pub fn with_token(&self) -> Option<SyntaxToken> {
7576        support::token(&self.syntax, SyntaxKind::WITH_KW)
7577    }
7578}
7579
7580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7581pub struct FieldExpr {
7582    pub(crate) syntax: SyntaxNode,
7583}
7584impl FieldExpr {
7585    #[inline]
7586    pub fn star_token(&self) -> Option<SyntaxToken> {
7587        support::token(&self.syntax, SyntaxKind::STAR)
7588    }
7589    #[inline]
7590    pub fn dot_token(&self) -> Option<SyntaxToken> {
7591        support::token(&self.syntax, SyntaxKind::DOT)
7592    }
7593}
7594
7595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7596pub struct FilterClause {
7597    pub(crate) syntax: SyntaxNode,
7598}
7599impl FilterClause {
7600    #[inline]
7601    pub fn expr(&self) -> Option<Expr> {
7602        support::child(&self.syntax)
7603    }
7604    #[inline]
7605    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7606        support::token(&self.syntax, SyntaxKind::L_PAREN)
7607    }
7608    #[inline]
7609    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7610        support::token(&self.syntax, SyntaxKind::R_PAREN)
7611    }
7612    #[inline]
7613    pub fn filter_token(&self) -> Option<SyntaxToken> {
7614        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7615    }
7616    #[inline]
7617    pub fn where_token(&self) -> Option<SyntaxToken> {
7618        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7619    }
7620}
7621
7622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7623pub struct ForProvider {
7624    pub(crate) syntax: SyntaxNode,
7625}
7626impl ForProvider {
7627    #[inline]
7628    pub fn literal(&self) -> Option<Literal> {
7629        support::child(&self.syntax)
7630    }
7631    #[inline]
7632    pub fn name_ref(&self) -> Option<NameRef> {
7633        support::child(&self.syntax)
7634    }
7635    #[inline]
7636    pub fn for_token(&self) -> Option<SyntaxToken> {
7637        support::token(&self.syntax, SyntaxKind::FOR_KW)
7638    }
7639}
7640
7641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7642pub struct ForceRls {
7643    pub(crate) syntax: SyntaxNode,
7644}
7645impl ForceRls {
7646    #[inline]
7647    pub fn force_token(&self) -> Option<SyntaxToken> {
7648        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7649    }
7650    #[inline]
7651    pub fn level_token(&self) -> Option<SyntaxToken> {
7652        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7653    }
7654    #[inline]
7655    pub fn row_token(&self) -> Option<SyntaxToken> {
7656        support::token(&self.syntax, SyntaxKind::ROW_KW)
7657    }
7658    #[inline]
7659    pub fn security_token(&self) -> Option<SyntaxToken> {
7660        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7661    }
7662}
7663
7664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7665pub struct ForeignKeyConstraint {
7666    pub(crate) syntax: SyntaxNode,
7667}
7668impl ForeignKeyConstraint {
7669    #[inline]
7670    pub fn match_type(&self) -> Option<MatchType> {
7671        support::child(&self.syntax)
7672    }
7673    #[inline]
7674    pub fn name(&self) -> Option<Name> {
7675        support::child(&self.syntax)
7676    }
7677    #[inline]
7678    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7679        support::child(&self.syntax)
7680    }
7681    #[inline]
7682    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7683        support::child(&self.syntax)
7684    }
7685    #[inline]
7686    pub fn path(&self) -> Option<Path> {
7687        support::child(&self.syntax)
7688    }
7689    #[inline]
7690    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7691        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7692    }
7693    #[inline]
7694    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7695        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7696    }
7697    #[inline]
7698    pub fn key_token(&self) -> Option<SyntaxToken> {
7699        support::token(&self.syntax, SyntaxKind::KEY_KW)
7700    }
7701    #[inline]
7702    pub fn references_token(&self) -> Option<SyntaxToken> {
7703        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7704    }
7705}
7706
7707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7708pub struct FrameClause {
7709    pub(crate) syntax: SyntaxNode,
7710}
7711impl FrameClause {
7712    #[inline]
7713    pub fn groups_token(&self) -> Option<SyntaxToken> {
7714        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7715    }
7716    #[inline]
7717    pub fn range_token(&self) -> Option<SyntaxToken> {
7718        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7719    }
7720    #[inline]
7721    pub fn rows_token(&self) -> Option<SyntaxToken> {
7722        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7723    }
7724}
7725
7726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7727pub struct FromClause {
7728    pub(crate) syntax: SyntaxNode,
7729}
7730impl FromClause {
7731    #[inline]
7732    pub fn from_items(&self) -> AstChildren<FromItem> {
7733        support::children(&self.syntax)
7734    }
7735    #[inline]
7736    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7737        support::children(&self.syntax)
7738    }
7739    #[inline]
7740    pub fn from_token(&self) -> Option<SyntaxToken> {
7741        support::token(&self.syntax, SyntaxKind::FROM_KW)
7742    }
7743}
7744
7745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7746pub struct FromItem {
7747    pub(crate) syntax: SyntaxNode,
7748}
7749impl FromItem {
7750    #[inline]
7751    pub fn alias(&self) -> Option<Alias> {
7752        support::child(&self.syntax)
7753    }
7754    #[inline]
7755    pub fn call_expr(&self) -> Option<CallExpr> {
7756        support::child(&self.syntax)
7757    }
7758    #[inline]
7759    pub fn cast_expr(&self) -> Option<CastExpr> {
7760        support::child(&self.syntax)
7761    }
7762    #[inline]
7763    pub fn field_expr(&self) -> Option<FieldExpr> {
7764        support::child(&self.syntax)
7765    }
7766    #[inline]
7767    pub fn json_table(&self) -> Option<JsonTable> {
7768        support::child(&self.syntax)
7769    }
7770    #[inline]
7771    pub fn name_ref(&self) -> Option<NameRef> {
7772        support::child(&self.syntax)
7773    }
7774    #[inline]
7775    pub fn paren_select(&self) -> Option<ParenSelect> {
7776        support::child(&self.syntax)
7777    }
7778    #[inline]
7779    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7780        support::child(&self.syntax)
7781    }
7782    #[inline]
7783    pub fn xml_table(&self) -> Option<XmlTable> {
7784        support::child(&self.syntax)
7785    }
7786    #[inline]
7787    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7788        support::token(&self.syntax, SyntaxKind::L_PAREN)
7789    }
7790    #[inline]
7791    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7792        support::token(&self.syntax, SyntaxKind::R_PAREN)
7793    }
7794    #[inline]
7795    pub fn star_token(&self) -> Option<SyntaxToken> {
7796        support::token(&self.syntax, SyntaxKind::STAR)
7797    }
7798    #[inline]
7799    pub fn from_token(&self) -> Option<SyntaxToken> {
7800        support::token(&self.syntax, SyntaxKind::FROM_KW)
7801    }
7802    #[inline]
7803    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7804        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7805    }
7806    #[inline]
7807    pub fn only_token(&self) -> Option<SyntaxToken> {
7808        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7809    }
7810    #[inline]
7811    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7813    }
7814    #[inline]
7815    pub fn rows_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7817    }
7818    #[inline]
7819    pub fn with_token(&self) -> Option<SyntaxToken> {
7820        support::token(&self.syntax, SyntaxKind::WITH_KW)
7821    }
7822}
7823
7824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7825pub struct FromServer {
7826    pub(crate) syntax: SyntaxNode,
7827}
7828impl FromServer {
7829    #[inline]
7830    pub fn name_ref(&self) -> Option<NameRef> {
7831        support::child(&self.syntax)
7832    }
7833    #[inline]
7834    pub fn from_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::FROM_KW)
7836    }
7837    #[inline]
7838    pub fn server_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7840    }
7841}
7842
7843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7844pub struct FromTable {
7845    pub(crate) syntax: SyntaxNode,
7846}
7847impl FromTable {
7848    #[inline]
7849    pub fn path(&self) -> Option<Path> {
7850        support::child(&self.syntax)
7851    }
7852    #[inline]
7853    pub fn from_token(&self) -> Option<SyntaxToken> {
7854        support::token(&self.syntax, SyntaxKind::FROM_KW)
7855    }
7856}
7857
7858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7859pub struct FuncOptionList {
7860    pub(crate) syntax: SyntaxNode,
7861}
7862impl FuncOptionList {
7863    #[inline]
7864    pub fn options(&self) -> AstChildren<FuncOption> {
7865        support::children(&self.syntax)
7866    }
7867}
7868
7869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7870pub struct FunctionSig {
7871    pub(crate) syntax: SyntaxNode,
7872}
7873impl FunctionSig {
7874    #[inline]
7875    pub fn param_list(&self) -> Option<ParamList> {
7876        support::child(&self.syntax)
7877    }
7878    #[inline]
7879    pub fn path(&self) -> Option<Path> {
7880        support::child(&self.syntax)
7881    }
7882}
7883
7884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7885pub struct FunctionSigList {
7886    pub(crate) syntax: SyntaxNode,
7887}
7888impl FunctionSigList {
7889    #[inline]
7890    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7891        support::children(&self.syntax)
7892    }
7893}
7894
7895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7896pub struct GeneratedConstraint {
7897    pub(crate) syntax: SyntaxNode,
7898}
7899impl GeneratedConstraint {
7900    #[inline]
7901    pub fn expr(&self) -> Option<Expr> {
7902        support::child(&self.syntax)
7903    }
7904    #[inline]
7905    pub fn name_ref(&self) -> Option<NameRef> {
7906        support::child(&self.syntax)
7907    }
7908    #[inline]
7909    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7910        support::child(&self.syntax)
7911    }
7912    #[inline]
7913    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7914        support::token(&self.syntax, SyntaxKind::L_PAREN)
7915    }
7916    #[inline]
7917    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7918        support::token(&self.syntax, SyntaxKind::R_PAREN)
7919    }
7920    #[inline]
7921    pub fn always_token(&self) -> Option<SyntaxToken> {
7922        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7923    }
7924    #[inline]
7925    pub fn as_token(&self) -> Option<SyntaxToken> {
7926        support::token(&self.syntax, SyntaxKind::AS_KW)
7927    }
7928    #[inline]
7929    pub fn by_token(&self) -> Option<SyntaxToken> {
7930        support::token(&self.syntax, SyntaxKind::BY_KW)
7931    }
7932    #[inline]
7933    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7934        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7935    }
7936    #[inline]
7937    pub fn default_token(&self) -> Option<SyntaxToken> {
7938        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7939    }
7940    #[inline]
7941    pub fn generated_token(&self) -> Option<SyntaxToken> {
7942        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7943    }
7944    #[inline]
7945    pub fn identity_token(&self) -> Option<SyntaxToken> {
7946        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7947    }
7948    #[inline]
7949    pub fn stored_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::STORED_KW)
7951    }
7952}
7953
7954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7955pub struct Grant {
7956    pub(crate) syntax: SyntaxNode,
7957}
7958impl Grant {
7959    #[inline]
7960    pub fn name_refs(&self) -> AstChildren<NameRef> {
7961        support::children(&self.syntax)
7962    }
7963    #[inline]
7964    pub fn paths(&self) -> AstChildren<Path> {
7965        support::children(&self.syntax)
7966    }
7967    #[inline]
7968    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7969        support::child(&self.syntax)
7970    }
7971    #[inline]
7972    pub fn role(&self) -> Option<Role> {
7973        support::child(&self.syntax)
7974    }
7975    #[inline]
7976    pub fn role_list(&self) -> Option<RoleList> {
7977        support::child(&self.syntax)
7978    }
7979    #[inline]
7980    pub fn all_token(&self) -> Option<SyntaxToken> {
7981        support::token(&self.syntax, SyntaxKind::ALL_KW)
7982    }
7983    #[inline]
7984    pub fn by_token(&self) -> Option<SyntaxToken> {
7985        support::token(&self.syntax, SyntaxKind::BY_KW)
7986    }
7987    #[inline]
7988    pub fn grant_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7990    }
7991    #[inline]
7992    pub fn granted_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
7994    }
7995    #[inline]
7996    pub fn in_token(&self) -> Option<SyntaxToken> {
7997        support::token(&self.syntax, SyntaxKind::IN_KW)
7998    }
7999    #[inline]
8000    pub fn on_token(&self) -> Option<SyntaxToken> {
8001        support::token(&self.syntax, SyntaxKind::ON_KW)
8002    }
8003    #[inline]
8004    pub fn option_token(&self) -> Option<SyntaxToken> {
8005        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8006    }
8007    #[inline]
8008    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8009        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8010    }
8011    #[inline]
8012    pub fn schema_token(&self) -> Option<SyntaxToken> {
8013        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8014    }
8015    #[inline]
8016    pub fn table_token(&self) -> Option<SyntaxToken> {
8017        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8018    }
8019    #[inline]
8020    pub fn tables_token(&self) -> Option<SyntaxToken> {
8021        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8022    }
8023    #[inline]
8024    pub fn to_token(&self) -> Option<SyntaxToken> {
8025        support::token(&self.syntax, SyntaxKind::TO_KW)
8026    }
8027    #[inline]
8028    pub fn with_token(&self) -> Option<SyntaxToken> {
8029        support::token(&self.syntax, SyntaxKind::WITH_KW)
8030    }
8031}
8032
8033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8034pub struct GrantDefaultPrivileges {
8035    pub(crate) syntax: SyntaxNode,
8036}
8037impl GrantDefaultPrivileges {
8038    #[inline]
8039    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8040        support::child(&self.syntax)
8041    }
8042    #[inline]
8043    pub fn privileges(&self) -> Option<Privileges> {
8044        support::child(&self.syntax)
8045    }
8046    #[inline]
8047    pub fn role_list(&self) -> Option<RoleList> {
8048        support::child(&self.syntax)
8049    }
8050    #[inline]
8051    pub fn grant_token(&self) -> Option<SyntaxToken> {
8052        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8053    }
8054    #[inline]
8055    pub fn on_token(&self) -> Option<SyntaxToken> {
8056        support::token(&self.syntax, SyntaxKind::ON_KW)
8057    }
8058    #[inline]
8059    pub fn option_token(&self) -> Option<SyntaxToken> {
8060        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8061    }
8062    #[inline]
8063    pub fn to_token(&self) -> Option<SyntaxToken> {
8064        support::token(&self.syntax, SyntaxKind::TO_KW)
8065    }
8066    #[inline]
8067    pub fn with_token(&self) -> Option<SyntaxToken> {
8068        support::token(&self.syntax, SyntaxKind::WITH_KW)
8069    }
8070}
8071
8072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8073pub struct GroupByClause {
8074    pub(crate) syntax: SyntaxNode,
8075}
8076impl GroupByClause {
8077    #[inline]
8078    pub fn group_by_list(&self) -> Option<GroupByList> {
8079        support::child(&self.syntax)
8080    }
8081    #[inline]
8082    pub fn all_token(&self) -> Option<SyntaxToken> {
8083        support::token(&self.syntax, SyntaxKind::ALL_KW)
8084    }
8085    #[inline]
8086    pub fn by_token(&self) -> Option<SyntaxToken> {
8087        support::token(&self.syntax, SyntaxKind::BY_KW)
8088    }
8089    #[inline]
8090    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8091        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8092    }
8093    #[inline]
8094    pub fn group_token(&self) -> Option<SyntaxToken> {
8095        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8096    }
8097}
8098
8099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8100pub struct GroupByList {
8101    pub(crate) syntax: SyntaxNode,
8102}
8103impl GroupByList {
8104    #[inline]
8105    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8106        support::children(&self.syntax)
8107    }
8108}
8109
8110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8111pub struct GroupingCube {
8112    pub(crate) syntax: SyntaxNode,
8113}
8114impl GroupingCube {
8115    #[inline]
8116    pub fn expr(&self) -> Option<Expr> {
8117        support::child(&self.syntax)
8118    }
8119    #[inline]
8120    pub fn cube_token(&self) -> Option<SyntaxToken> {
8121        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8122    }
8123}
8124
8125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8126pub struct GroupingExpr {
8127    pub(crate) syntax: SyntaxNode,
8128}
8129impl GroupingExpr {
8130    #[inline]
8131    pub fn expr(&self) -> Option<Expr> {
8132        support::child(&self.syntax)
8133    }
8134}
8135
8136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8137pub struct GroupingRollup {
8138    pub(crate) syntax: SyntaxNode,
8139}
8140impl GroupingRollup {
8141    #[inline]
8142    pub fn expr(&self) -> Option<Expr> {
8143        support::child(&self.syntax)
8144    }
8145    #[inline]
8146    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8147        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8148    }
8149}
8150
8151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8152pub struct GroupingSets {
8153    pub(crate) syntax: SyntaxNode,
8154}
8155impl GroupingSets {
8156    #[inline]
8157    pub fn expr(&self) -> Option<Expr> {
8158        support::child(&self.syntax)
8159    }
8160    #[inline]
8161    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8162        support::token(&self.syntax, SyntaxKind::L_PAREN)
8163    }
8164    #[inline]
8165    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8166        support::token(&self.syntax, SyntaxKind::R_PAREN)
8167    }
8168    #[inline]
8169    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8170        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8171    }
8172    #[inline]
8173    pub fn sets_token(&self) -> Option<SyntaxToken> {
8174        support::token(&self.syntax, SyntaxKind::SETS_KW)
8175    }
8176}
8177
8178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8179pub struct Gteq {
8180    pub(crate) syntax: SyntaxNode,
8181}
8182impl Gteq {
8183    #[inline]
8184    pub fn eq_token(&self) -> Option<SyntaxToken> {
8185        support::token(&self.syntax, SyntaxKind::EQ)
8186    }
8187    #[inline]
8188    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8189        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8190    }
8191}
8192
8193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8194pub struct HandlerClause {
8195    pub(crate) syntax: SyntaxNode,
8196}
8197impl HandlerClause {
8198    #[inline]
8199    pub fn path(&self) -> Option<Path> {
8200        support::child(&self.syntax)
8201    }
8202    #[inline]
8203    pub fn handler_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8205    }
8206}
8207
8208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8209pub struct HavingClause {
8210    pub(crate) syntax: SyntaxNode,
8211}
8212impl HavingClause {
8213    #[inline]
8214    pub fn expr(&self) -> Option<Expr> {
8215        support::child(&self.syntax)
8216    }
8217    #[inline]
8218    pub fn having_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8220    }
8221}
8222
8223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8224pub struct IfExists {
8225    pub(crate) syntax: SyntaxNode,
8226}
8227impl IfExists {
8228    #[inline]
8229    pub fn exists_token(&self) -> Option<SyntaxToken> {
8230        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8231    }
8232    #[inline]
8233    pub fn if_token(&self) -> Option<SyntaxToken> {
8234        support::token(&self.syntax, SyntaxKind::IF_KW)
8235    }
8236}
8237
8238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8239pub struct IfNotExists {
8240    pub(crate) syntax: SyntaxNode,
8241}
8242impl IfNotExists {
8243    #[inline]
8244    pub fn exists_token(&self) -> Option<SyntaxToken> {
8245        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8246    }
8247    #[inline]
8248    pub fn if_token(&self) -> Option<SyntaxToken> {
8249        support::token(&self.syntax, SyntaxKind::IF_KW)
8250    }
8251    #[inline]
8252    pub fn not_token(&self) -> Option<SyntaxToken> {
8253        support::token(&self.syntax, SyntaxKind::NOT_KW)
8254    }
8255}
8256
8257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8258pub struct ImportForeignSchema {
8259    pub(crate) syntax: SyntaxNode,
8260}
8261impl ImportForeignSchema {
8262    #[inline]
8263    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8264        support::child(&self.syntax)
8265    }
8266    #[inline]
8267    pub fn except_tables(&self) -> Option<ExceptTables> {
8268        support::child(&self.syntax)
8269    }
8270    #[inline]
8271    pub fn from_server(&self) -> Option<FromServer> {
8272        support::child(&self.syntax)
8273    }
8274    #[inline]
8275    pub fn into_schema(&self) -> Option<IntoSchema> {
8276        support::child(&self.syntax)
8277    }
8278    #[inline]
8279    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8280        support::child(&self.syntax)
8281    }
8282    #[inline]
8283    pub fn name_ref(&self) -> Option<NameRef> {
8284        support::child(&self.syntax)
8285    }
8286    #[inline]
8287    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8288        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8289    }
8290    #[inline]
8291    pub fn import_token(&self) -> Option<SyntaxToken> {
8292        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8293    }
8294    #[inline]
8295    pub fn schema_token(&self) -> Option<SyntaxToken> {
8296        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8297    }
8298}
8299
8300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8301pub struct IndexExpr {
8302    pub(crate) syntax: SyntaxNode,
8303}
8304impl IndexExpr {
8305    #[inline]
8306    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8307        support::token(&self.syntax, SyntaxKind::L_BRACK)
8308    }
8309    #[inline]
8310    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8311        support::token(&self.syntax, SyntaxKind::R_BRACK)
8312    }
8313}
8314
8315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8316pub struct Inherit {
8317    pub(crate) syntax: SyntaxNode,
8318}
8319impl Inherit {
8320    #[inline]
8321    pub fn path(&self) -> Option<Path> {
8322        support::child(&self.syntax)
8323    }
8324    #[inline]
8325    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8326        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8327    }
8328}
8329
8330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8331pub struct InheritTable {
8332    pub(crate) syntax: SyntaxNode,
8333}
8334impl InheritTable {
8335    #[inline]
8336    pub fn path(&self) -> Option<Path> {
8337        support::child(&self.syntax)
8338    }
8339    #[inline]
8340    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8341        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8342    }
8343}
8344
8345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8346pub struct Inherits {
8347    pub(crate) syntax: SyntaxNode,
8348}
8349impl Inherits {
8350    #[inline]
8351    pub fn paths(&self) -> AstChildren<Path> {
8352        support::children(&self.syntax)
8353    }
8354    #[inline]
8355    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8356        support::token(&self.syntax, SyntaxKind::L_PAREN)
8357    }
8358    #[inline]
8359    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8360        support::token(&self.syntax, SyntaxKind::R_PAREN)
8361    }
8362    #[inline]
8363    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8364        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8365    }
8366}
8367
8368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8369pub struct InitiallyDeferredConstraintOption {
8370    pub(crate) syntax: SyntaxNode,
8371}
8372impl InitiallyDeferredConstraintOption {
8373    #[inline]
8374    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8375        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8376    }
8377    #[inline]
8378    pub fn initially_token(&self) -> Option<SyntaxToken> {
8379        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8380    }
8381}
8382
8383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8384pub struct InitiallyImmediateConstraintOption {
8385    pub(crate) syntax: SyntaxNode,
8386}
8387impl InitiallyImmediateConstraintOption {
8388    #[inline]
8389    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8390        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8391    }
8392    #[inline]
8393    pub fn initially_token(&self) -> Option<SyntaxToken> {
8394        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8395    }
8396}
8397
8398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8399pub struct Insert {
8400    pub(crate) syntax: SyntaxNode,
8401}
8402impl Insert {
8403    #[inline]
8404    pub fn alias(&self) -> Option<Alias> {
8405        support::child(&self.syntax)
8406    }
8407    #[inline]
8408    pub fn column_list(&self) -> Option<ColumnList> {
8409        support::child(&self.syntax)
8410    }
8411    #[inline]
8412    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8413        support::child(&self.syntax)
8414    }
8415    #[inline]
8416    pub fn path(&self) -> Option<Path> {
8417        support::child(&self.syntax)
8418    }
8419    #[inline]
8420    pub fn returning_clause(&self) -> Option<ReturningClause> {
8421        support::child(&self.syntax)
8422    }
8423    #[inline]
8424    pub fn stmt(&self) -> Option<Stmt> {
8425        support::child(&self.syntax)
8426    }
8427    #[inline]
8428    pub fn values(&self) -> Option<Values> {
8429        support::child(&self.syntax)
8430    }
8431    #[inline]
8432    pub fn default_token(&self) -> Option<SyntaxToken> {
8433        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8434    }
8435    #[inline]
8436    pub fn insert_token(&self) -> Option<SyntaxToken> {
8437        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8438    }
8439    #[inline]
8440    pub fn into_token(&self) -> Option<SyntaxToken> {
8441        support::token(&self.syntax, SyntaxKind::INTO_KW)
8442    }
8443    #[inline]
8444    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8445        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8446    }
8447    #[inline]
8448    pub fn system_token(&self) -> Option<SyntaxToken> {
8449        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8450    }
8451    #[inline]
8452    pub fn user_token(&self) -> Option<SyntaxToken> {
8453        support::token(&self.syntax, SyntaxKind::USER_KW)
8454    }
8455    #[inline]
8456    pub fn value_token(&self) -> Option<SyntaxToken> {
8457        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8458    }
8459    #[inline]
8460    pub fn values_token(&self) -> Option<SyntaxToken> {
8461        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8462    }
8463}
8464
8465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8466pub struct IntervalType {
8467    pub(crate) syntax: SyntaxNode,
8468}
8469impl IntervalType {
8470    #[inline]
8471    pub fn literal(&self) -> Option<Literal> {
8472        support::child(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8476        support::token(&self.syntax, SyntaxKind::L_PAREN)
8477    }
8478    #[inline]
8479    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8480        support::token(&self.syntax, SyntaxKind::R_PAREN)
8481    }
8482    #[inline]
8483    pub fn day_token(&self) -> Option<SyntaxToken> {
8484        support::token(&self.syntax, SyntaxKind::DAY_KW)
8485    }
8486    #[inline]
8487    pub fn hour_token(&self) -> Option<SyntaxToken> {
8488        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8489    }
8490    #[inline]
8491    pub fn interval_token(&self) -> Option<SyntaxToken> {
8492        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8493    }
8494    #[inline]
8495    pub fn minute_token(&self) -> Option<SyntaxToken> {
8496        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8497    }
8498    #[inline]
8499    pub fn month_token(&self) -> Option<SyntaxToken> {
8500        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8501    }
8502    #[inline]
8503    pub fn second_token(&self) -> Option<SyntaxToken> {
8504        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8505    }
8506    #[inline]
8507    pub fn to_token(&self) -> Option<SyntaxToken> {
8508        support::token(&self.syntax, SyntaxKind::TO_KW)
8509    }
8510    #[inline]
8511    pub fn year_token(&self) -> Option<SyntaxToken> {
8512        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8513    }
8514}
8515
8516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8517pub struct IntoClause {
8518    pub(crate) syntax: SyntaxNode,
8519}
8520impl IntoClause {
8521    #[inline]
8522    pub fn path(&self) -> Option<Path> {
8523        support::child(&self.syntax)
8524    }
8525    #[inline]
8526    pub fn into_token(&self) -> Option<SyntaxToken> {
8527        support::token(&self.syntax, SyntaxKind::INTO_KW)
8528    }
8529}
8530
8531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8532pub struct IntoSchema {
8533    pub(crate) syntax: SyntaxNode,
8534}
8535impl IntoSchema {
8536    #[inline]
8537    pub fn name_ref(&self) -> Option<NameRef> {
8538        support::child(&self.syntax)
8539    }
8540    #[inline]
8541    pub fn into_token(&self) -> Option<SyntaxToken> {
8542        support::token(&self.syntax, SyntaxKind::INTO_KW)
8543    }
8544}
8545
8546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8547pub struct IsDistinctFrom {
8548    pub(crate) syntax: SyntaxNode,
8549}
8550impl IsDistinctFrom {
8551    #[inline]
8552    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8553        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8554    }
8555    #[inline]
8556    pub fn from_token(&self) -> Option<SyntaxToken> {
8557        support::token(&self.syntax, SyntaxKind::FROM_KW)
8558    }
8559    #[inline]
8560    pub fn is_token(&self) -> Option<SyntaxToken> {
8561        support::token(&self.syntax, SyntaxKind::IS_KW)
8562    }
8563}
8564
8565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8566pub struct IsJson {
8567    pub(crate) syntax: SyntaxNode,
8568}
8569impl IsJson {
8570    #[inline]
8571    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8572        support::child(&self.syntax)
8573    }
8574    #[inline]
8575    pub fn is_token(&self) -> Option<SyntaxToken> {
8576        support::token(&self.syntax, SyntaxKind::IS_KW)
8577    }
8578    #[inline]
8579    pub fn json_token(&self) -> Option<SyntaxToken> {
8580        support::token(&self.syntax, SyntaxKind::JSON_KW)
8581    }
8582}
8583
8584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8585pub struct IsJsonArray {
8586    pub(crate) syntax: SyntaxNode,
8587}
8588impl IsJsonArray {
8589    #[inline]
8590    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8591        support::child(&self.syntax)
8592    }
8593    #[inline]
8594    pub fn array_token(&self) -> Option<SyntaxToken> {
8595        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8596    }
8597    #[inline]
8598    pub fn is_token(&self) -> Option<SyntaxToken> {
8599        support::token(&self.syntax, SyntaxKind::IS_KW)
8600    }
8601    #[inline]
8602    pub fn json_token(&self) -> Option<SyntaxToken> {
8603        support::token(&self.syntax, SyntaxKind::JSON_KW)
8604    }
8605}
8606
8607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8608pub struct IsJsonObject {
8609    pub(crate) syntax: SyntaxNode,
8610}
8611impl IsJsonObject {
8612    #[inline]
8613    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8614        support::child(&self.syntax)
8615    }
8616    #[inline]
8617    pub fn is_token(&self) -> Option<SyntaxToken> {
8618        support::token(&self.syntax, SyntaxKind::IS_KW)
8619    }
8620    #[inline]
8621    pub fn json_token(&self) -> Option<SyntaxToken> {
8622        support::token(&self.syntax, SyntaxKind::JSON_KW)
8623    }
8624    #[inline]
8625    pub fn object_token(&self) -> Option<SyntaxToken> {
8626        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8627    }
8628}
8629
8630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8631pub struct IsJsonScalar {
8632    pub(crate) syntax: SyntaxNode,
8633}
8634impl IsJsonScalar {
8635    #[inline]
8636    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8637        support::child(&self.syntax)
8638    }
8639    #[inline]
8640    pub fn is_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::IS_KW)
8642    }
8643    #[inline]
8644    pub fn json_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::JSON_KW)
8646    }
8647    #[inline]
8648    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8650    }
8651}
8652
8653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8654pub struct IsJsonValue {
8655    pub(crate) syntax: SyntaxNode,
8656}
8657impl IsJsonValue {
8658    #[inline]
8659    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8660        support::child(&self.syntax)
8661    }
8662    #[inline]
8663    pub fn is_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::IS_KW)
8665    }
8666    #[inline]
8667    pub fn json_token(&self) -> Option<SyntaxToken> {
8668        support::token(&self.syntax, SyntaxKind::JSON_KW)
8669    }
8670    #[inline]
8671    pub fn value_token(&self) -> Option<SyntaxToken> {
8672        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8673    }
8674}
8675
8676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8677pub struct IsNormalized {
8678    pub(crate) syntax: SyntaxNode,
8679}
8680impl IsNormalized {
8681    #[inline]
8682    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8683        support::child(&self.syntax)
8684    }
8685    #[inline]
8686    pub fn is_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::IS_KW)
8688    }
8689    #[inline]
8690    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8692    }
8693}
8694
8695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8696pub struct IsNot {
8697    pub(crate) syntax: SyntaxNode,
8698}
8699impl IsNot {
8700    #[inline]
8701    pub fn is_token(&self) -> Option<SyntaxToken> {
8702        support::token(&self.syntax, SyntaxKind::IS_KW)
8703    }
8704    #[inline]
8705    pub fn not_token(&self) -> Option<SyntaxToken> {
8706        support::token(&self.syntax, SyntaxKind::NOT_KW)
8707    }
8708}
8709
8710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8711pub struct IsNotDistinctFrom {
8712    pub(crate) syntax: SyntaxNode,
8713}
8714impl IsNotDistinctFrom {
8715    #[inline]
8716    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8717        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8718    }
8719    #[inline]
8720    pub fn from_token(&self) -> Option<SyntaxToken> {
8721        support::token(&self.syntax, SyntaxKind::FROM_KW)
8722    }
8723    #[inline]
8724    pub fn is_token(&self) -> Option<SyntaxToken> {
8725        support::token(&self.syntax, SyntaxKind::IS_KW)
8726    }
8727    #[inline]
8728    pub fn not_token(&self) -> Option<SyntaxToken> {
8729        support::token(&self.syntax, SyntaxKind::NOT_KW)
8730    }
8731}
8732
8733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8734pub struct IsNotJson {
8735    pub(crate) syntax: SyntaxNode,
8736}
8737impl IsNotJson {
8738    #[inline]
8739    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8740        support::child(&self.syntax)
8741    }
8742    #[inline]
8743    pub fn is_token(&self) -> Option<SyntaxToken> {
8744        support::token(&self.syntax, SyntaxKind::IS_KW)
8745    }
8746    #[inline]
8747    pub fn json_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::JSON_KW)
8749    }
8750    #[inline]
8751    pub fn not_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::NOT_KW)
8753    }
8754}
8755
8756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8757pub struct IsNotJsonArray {
8758    pub(crate) syntax: SyntaxNode,
8759}
8760impl IsNotJsonArray {
8761    #[inline]
8762    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8763        support::child(&self.syntax)
8764    }
8765    #[inline]
8766    pub fn array_token(&self) -> Option<SyntaxToken> {
8767        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8768    }
8769    #[inline]
8770    pub fn is_token(&self) -> Option<SyntaxToken> {
8771        support::token(&self.syntax, SyntaxKind::IS_KW)
8772    }
8773    #[inline]
8774    pub fn json_token(&self) -> Option<SyntaxToken> {
8775        support::token(&self.syntax, SyntaxKind::JSON_KW)
8776    }
8777    #[inline]
8778    pub fn not_token(&self) -> Option<SyntaxToken> {
8779        support::token(&self.syntax, SyntaxKind::NOT_KW)
8780    }
8781}
8782
8783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8784pub struct IsNotJsonObject {
8785    pub(crate) syntax: SyntaxNode,
8786}
8787impl IsNotJsonObject {
8788    #[inline]
8789    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8790        support::child(&self.syntax)
8791    }
8792    #[inline]
8793    pub fn is_token(&self) -> Option<SyntaxToken> {
8794        support::token(&self.syntax, SyntaxKind::IS_KW)
8795    }
8796    #[inline]
8797    pub fn json_token(&self) -> Option<SyntaxToken> {
8798        support::token(&self.syntax, SyntaxKind::JSON_KW)
8799    }
8800    #[inline]
8801    pub fn not_token(&self) -> Option<SyntaxToken> {
8802        support::token(&self.syntax, SyntaxKind::NOT_KW)
8803    }
8804    #[inline]
8805    pub fn object_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8807    }
8808}
8809
8810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8811pub struct IsNotJsonScalar {
8812    pub(crate) syntax: SyntaxNode,
8813}
8814impl IsNotJsonScalar {
8815    #[inline]
8816    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8817        support::child(&self.syntax)
8818    }
8819    #[inline]
8820    pub fn is_token(&self) -> Option<SyntaxToken> {
8821        support::token(&self.syntax, SyntaxKind::IS_KW)
8822    }
8823    #[inline]
8824    pub fn json_token(&self) -> Option<SyntaxToken> {
8825        support::token(&self.syntax, SyntaxKind::JSON_KW)
8826    }
8827    #[inline]
8828    pub fn not_token(&self) -> Option<SyntaxToken> {
8829        support::token(&self.syntax, SyntaxKind::NOT_KW)
8830    }
8831    #[inline]
8832    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8833        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8834    }
8835}
8836
8837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8838pub struct IsNotJsonValue {
8839    pub(crate) syntax: SyntaxNode,
8840}
8841impl IsNotJsonValue {
8842    #[inline]
8843    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8844        support::child(&self.syntax)
8845    }
8846    #[inline]
8847    pub fn is_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::IS_KW)
8849    }
8850    #[inline]
8851    pub fn json_token(&self) -> Option<SyntaxToken> {
8852        support::token(&self.syntax, SyntaxKind::JSON_KW)
8853    }
8854    #[inline]
8855    pub fn not_token(&self) -> Option<SyntaxToken> {
8856        support::token(&self.syntax, SyntaxKind::NOT_KW)
8857    }
8858    #[inline]
8859    pub fn value_token(&self) -> Option<SyntaxToken> {
8860        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8861    }
8862}
8863
8864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8865pub struct IsNotNormalized {
8866    pub(crate) syntax: SyntaxNode,
8867}
8868impl IsNotNormalized {
8869    #[inline]
8870    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8871        support::child(&self.syntax)
8872    }
8873    #[inline]
8874    pub fn is_token(&self) -> Option<SyntaxToken> {
8875        support::token(&self.syntax, SyntaxKind::IS_KW)
8876    }
8877    #[inline]
8878    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8879        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8880    }
8881    #[inline]
8882    pub fn not_token(&self) -> Option<SyntaxToken> {
8883        support::token(&self.syntax, SyntaxKind::NOT_KW)
8884    }
8885}
8886
8887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8888pub struct Join {
8889    pub(crate) syntax: SyntaxNode,
8890}
8891impl Join {
8892    #[inline]
8893    pub fn from_item(&self) -> Option<FromItem> {
8894        support::child(&self.syntax)
8895    }
8896    #[inline]
8897    pub fn join_type(&self) -> Option<JoinType> {
8898        support::child(&self.syntax)
8899    }
8900    #[inline]
8901    pub fn on_clause(&self) -> Option<OnClause> {
8902        support::child(&self.syntax)
8903    }
8904    #[inline]
8905    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8906        support::child(&self.syntax)
8907    }
8908    #[inline]
8909    pub fn natural_token(&self) -> Option<SyntaxToken> {
8910        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8911    }
8912}
8913
8914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8915pub struct JoinCross {
8916    pub(crate) syntax: SyntaxNode,
8917}
8918impl JoinCross {
8919    #[inline]
8920    pub fn cross_token(&self) -> Option<SyntaxToken> {
8921        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8922    }
8923    #[inline]
8924    pub fn join_token(&self) -> Option<SyntaxToken> {
8925        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8926    }
8927}
8928
8929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8930pub struct JoinExpr {
8931    pub(crate) syntax: SyntaxNode,
8932}
8933impl JoinExpr {
8934    #[inline]
8935    pub fn from_item(&self) -> Option<FromItem> {
8936        support::child(&self.syntax)
8937    }
8938    #[inline]
8939    pub fn join(&self) -> Option<Join> {
8940        support::child(&self.syntax)
8941    }
8942    #[inline]
8943    pub fn join_expr(&self) -> Option<JoinExpr> {
8944        support::child(&self.syntax)
8945    }
8946}
8947
8948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8949pub struct JoinFull {
8950    pub(crate) syntax: SyntaxNode,
8951}
8952impl JoinFull {
8953    #[inline]
8954    pub fn full_token(&self) -> Option<SyntaxToken> {
8955        support::token(&self.syntax, SyntaxKind::FULL_KW)
8956    }
8957    #[inline]
8958    pub fn join_token(&self) -> Option<SyntaxToken> {
8959        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8960    }
8961    #[inline]
8962    pub fn outer_token(&self) -> Option<SyntaxToken> {
8963        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8964    }
8965}
8966
8967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8968pub struct JoinInner {
8969    pub(crate) syntax: SyntaxNode,
8970}
8971impl JoinInner {
8972    #[inline]
8973    pub fn inner_token(&self) -> Option<SyntaxToken> {
8974        support::token(&self.syntax, SyntaxKind::INNER_KW)
8975    }
8976    #[inline]
8977    pub fn join_token(&self) -> Option<SyntaxToken> {
8978        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8979    }
8980}
8981
8982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8983pub struct JoinLeft {
8984    pub(crate) syntax: SyntaxNode,
8985}
8986impl JoinLeft {
8987    #[inline]
8988    pub fn join_token(&self) -> Option<SyntaxToken> {
8989        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8990    }
8991    #[inline]
8992    pub fn left_token(&self) -> Option<SyntaxToken> {
8993        support::token(&self.syntax, SyntaxKind::LEFT_KW)
8994    }
8995    #[inline]
8996    pub fn outer_token(&self) -> Option<SyntaxToken> {
8997        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8998    }
8999}
9000
9001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9002pub struct JoinRight {
9003    pub(crate) syntax: SyntaxNode,
9004}
9005impl JoinRight {
9006    #[inline]
9007    pub fn join_token(&self) -> Option<SyntaxToken> {
9008        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9009    }
9010    #[inline]
9011    pub fn outer_token(&self) -> Option<SyntaxToken> {
9012        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9013    }
9014    #[inline]
9015    pub fn right_token(&self) -> Option<SyntaxToken> {
9016        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9017    }
9018}
9019
9020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9021pub struct JoinUsingClause {
9022    pub(crate) syntax: SyntaxNode,
9023}
9024impl JoinUsingClause {
9025    #[inline]
9026    pub fn alias(&self) -> Option<Alias> {
9027        support::child(&self.syntax)
9028    }
9029    #[inline]
9030    pub fn column_list(&self) -> Option<ColumnList> {
9031        support::child(&self.syntax)
9032    }
9033    #[inline]
9034    pub fn using_token(&self) -> Option<SyntaxToken> {
9035        support::token(&self.syntax, SyntaxKind::USING_KW)
9036    }
9037}
9038
9039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9040pub struct JsonArrayAggFn {
9041    pub(crate) syntax: SyntaxNode,
9042}
9043impl JsonArrayAggFn {
9044    #[inline]
9045    pub fn expr(&self) -> Option<Expr> {
9046        support::child(&self.syntax)
9047    }
9048    #[inline]
9049    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9050        support::child(&self.syntax)
9051    }
9052    #[inline]
9053    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9054        support::child(&self.syntax)
9055    }
9056    #[inline]
9057    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9058        support::children(&self.syntax)
9059    }
9060    #[inline]
9061    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9062        support::token(&self.syntax, SyntaxKind::L_PAREN)
9063    }
9064    #[inline]
9065    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9066        support::token(&self.syntax, SyntaxKind::R_PAREN)
9067    }
9068    #[inline]
9069    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9070        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9071    }
9072}
9073
9074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9075pub struct JsonArrayFn {
9076    pub(crate) syntax: SyntaxNode,
9077}
9078impl JsonArrayFn {
9079    #[inline]
9080    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9081        support::children(&self.syntax)
9082    }
9083    #[inline]
9084    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9085        support::child(&self.syntax)
9086    }
9087    #[inline]
9088    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9089        support::child(&self.syntax)
9090    }
9091    #[inline]
9092    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9093        support::children(&self.syntax)
9094    }
9095    #[inline]
9096    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9097        support::token(&self.syntax, SyntaxKind::L_PAREN)
9098    }
9099    #[inline]
9100    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9101        support::token(&self.syntax, SyntaxKind::R_PAREN)
9102    }
9103    #[inline]
9104    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9105        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9106    }
9107}
9108
9109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9110pub struct JsonBehaviorClause {
9111    pub(crate) syntax: SyntaxNode,
9112}
9113impl JsonBehaviorClause {
9114    #[inline]
9115    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9116        support::child(&self.syntax)
9117    }
9118}
9119
9120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9121pub struct JsonBehaviorDefault {
9122    pub(crate) syntax: SyntaxNode,
9123}
9124impl JsonBehaviorDefault {
9125    #[inline]
9126    pub fn expr(&self) -> Option<Expr> {
9127        support::child(&self.syntax)
9128    }
9129    #[inline]
9130    pub fn default_token(&self) -> Option<SyntaxToken> {
9131        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9132    }
9133}
9134
9135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9136pub struct JsonBehaviorEmptyArray {
9137    pub(crate) syntax: SyntaxNode,
9138}
9139impl JsonBehaviorEmptyArray {
9140    #[inline]
9141    pub fn array_token(&self) -> Option<SyntaxToken> {
9142        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9143    }
9144    #[inline]
9145    pub fn empty_token(&self) -> Option<SyntaxToken> {
9146        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9147    }
9148}
9149
9150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9151pub struct JsonBehaviorEmptyObject {
9152    pub(crate) syntax: SyntaxNode,
9153}
9154impl JsonBehaviorEmptyObject {
9155    #[inline]
9156    pub fn empty_token(&self) -> Option<SyntaxToken> {
9157        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9158    }
9159    #[inline]
9160    pub fn object_token(&self) -> Option<SyntaxToken> {
9161        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9162    }
9163}
9164
9165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9166pub struct JsonBehaviorError {
9167    pub(crate) syntax: SyntaxNode,
9168}
9169impl JsonBehaviorError {
9170    #[inline]
9171    pub fn error_token(&self) -> Option<SyntaxToken> {
9172        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9173    }
9174}
9175
9176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9177pub struct JsonBehaviorFalse {
9178    pub(crate) syntax: SyntaxNode,
9179}
9180impl JsonBehaviorFalse {
9181    #[inline]
9182    pub fn false_token(&self) -> Option<SyntaxToken> {
9183        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9184    }
9185}
9186
9187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9188pub struct JsonBehaviorNull {
9189    pub(crate) syntax: SyntaxNode,
9190}
9191impl JsonBehaviorNull {
9192    #[inline]
9193    pub fn null_token(&self) -> Option<SyntaxToken> {
9194        support::token(&self.syntax, SyntaxKind::NULL_KW)
9195    }
9196}
9197
9198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9199pub struct JsonBehaviorTrue {
9200    pub(crate) syntax: SyntaxNode,
9201}
9202impl JsonBehaviorTrue {
9203    #[inline]
9204    pub fn true_token(&self) -> Option<SyntaxToken> {
9205        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9206    }
9207}
9208
9209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9210pub struct JsonBehaviorUnknown {
9211    pub(crate) syntax: SyntaxNode,
9212}
9213impl JsonBehaviorUnknown {
9214    #[inline]
9215    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9216        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9217    }
9218}
9219
9220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9221pub struct JsonEncodingClause {
9222    pub(crate) syntax: SyntaxNode,
9223}
9224impl JsonEncodingClause {
9225    #[inline]
9226    pub fn name_ref(&self) -> Option<NameRef> {
9227        support::child(&self.syntax)
9228    }
9229    #[inline]
9230    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9231        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9232    }
9233}
9234
9235#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9236pub struct JsonExistsFn {
9237    pub(crate) syntax: SyntaxNode,
9238}
9239impl JsonExistsFn {
9240    #[inline]
9241    pub fn expr(&self) -> Option<Expr> {
9242        support::child(&self.syntax)
9243    }
9244    #[inline]
9245    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9246        support::child(&self.syntax)
9247    }
9248    #[inline]
9249    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9250        support::child(&self.syntax)
9251    }
9252    #[inline]
9253    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9254        support::child(&self.syntax)
9255    }
9256    #[inline]
9257    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9258        support::token(&self.syntax, SyntaxKind::L_PAREN)
9259    }
9260    #[inline]
9261    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9262        support::token(&self.syntax, SyntaxKind::R_PAREN)
9263    }
9264    #[inline]
9265    pub fn comma_token(&self) -> Option<SyntaxToken> {
9266        support::token(&self.syntax, SyntaxKind::COMMA)
9267    }
9268    #[inline]
9269    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9270        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9271    }
9272}
9273
9274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9275pub struct JsonExprFormat {
9276    pub(crate) syntax: SyntaxNode,
9277}
9278impl JsonExprFormat {
9279    #[inline]
9280    pub fn expr(&self) -> Option<Expr> {
9281        support::child(&self.syntax)
9282    }
9283    #[inline]
9284    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9285        support::child(&self.syntax)
9286    }
9287}
9288
9289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9290pub struct JsonFn {
9291    pub(crate) syntax: SyntaxNode,
9292}
9293impl JsonFn {
9294    #[inline]
9295    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9296        support::child(&self.syntax)
9297    }
9298    #[inline]
9299    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9300        support::child(&self.syntax)
9301    }
9302    #[inline]
9303    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9304        support::token(&self.syntax, SyntaxKind::L_PAREN)
9305    }
9306    #[inline]
9307    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9308        support::token(&self.syntax, SyntaxKind::R_PAREN)
9309    }
9310    #[inline]
9311    pub fn json_token(&self) -> Option<SyntaxToken> {
9312        support::token(&self.syntax, SyntaxKind::JSON_KW)
9313    }
9314}
9315
9316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9317pub struct JsonFormatClause {
9318    pub(crate) syntax: SyntaxNode,
9319}
9320impl JsonFormatClause {
9321    #[inline]
9322    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9323        support::child(&self.syntax)
9324    }
9325    #[inline]
9326    pub fn format_token(&self) -> Option<SyntaxToken> {
9327        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9328    }
9329    #[inline]
9330    pub fn json_token(&self) -> Option<SyntaxToken> {
9331        support::token(&self.syntax, SyntaxKind::JSON_KW)
9332    }
9333}
9334
9335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9336pub struct JsonKeyValue {
9337    pub(crate) syntax: SyntaxNode,
9338}
9339impl JsonKeyValue {
9340    #[inline]
9341    pub fn expr(&self) -> Option<Expr> {
9342        support::child(&self.syntax)
9343    }
9344    #[inline]
9345    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9346        support::child(&self.syntax)
9347    }
9348    #[inline]
9349    pub fn colon_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::COLON)
9351    }
9352}
9353
9354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9355pub struct JsonKeysUniqueClause {
9356    pub(crate) syntax: SyntaxNode,
9357}
9358impl JsonKeysUniqueClause {
9359    #[inline]
9360    pub fn keys_token(&self) -> Option<SyntaxToken> {
9361        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9362    }
9363    #[inline]
9364    pub fn unique_token(&self) -> Option<SyntaxToken> {
9365        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9366    }
9367    #[inline]
9368    pub fn with_token(&self) -> Option<SyntaxToken> {
9369        support::token(&self.syntax, SyntaxKind::WITH_KW)
9370    }
9371    #[inline]
9372    pub fn without_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9374    }
9375}
9376
9377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9378pub struct JsonNullClause {
9379    pub(crate) syntax: SyntaxNode,
9380}
9381impl JsonNullClause {
9382    #[inline]
9383    pub fn absent_token(&self) -> Option<SyntaxToken> {
9384        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9385    }
9386    #[inline]
9387    pub fn null_token(&self) -> Option<SyntaxToken> {
9388        support::token(&self.syntax, SyntaxKind::NULL_KW)
9389    }
9390    #[inline]
9391    pub fn on_token(&self) -> Option<SyntaxToken> {
9392        support::token(&self.syntax, SyntaxKind::ON_KW)
9393    }
9394}
9395
9396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9397pub struct JsonObjectAggFn {
9398    pub(crate) syntax: SyntaxNode,
9399}
9400impl JsonObjectAggFn {
9401    #[inline]
9402    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9403        support::child(&self.syntax)
9404    }
9405    #[inline]
9406    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9407        support::child(&self.syntax)
9408    }
9409    #[inline]
9410    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9411        support::child(&self.syntax)
9412    }
9413    #[inline]
9414    pub fn returning_clause(&self) -> Option<ReturningClause> {
9415        support::child(&self.syntax)
9416    }
9417    #[inline]
9418    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9419        support::token(&self.syntax, SyntaxKind::L_PAREN)
9420    }
9421    #[inline]
9422    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9423        support::token(&self.syntax, SyntaxKind::R_PAREN)
9424    }
9425    #[inline]
9426    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9427        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9428    }
9429}
9430
9431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9432pub struct JsonObjectFn {
9433    pub(crate) syntax: SyntaxNode,
9434}
9435impl JsonObjectFn {
9436    #[inline]
9437    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9438        support::children(&self.syntax)
9439    }
9440    #[inline]
9441    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9442        support::child(&self.syntax)
9443    }
9444    #[inline]
9445    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9446        support::child(&self.syntax)
9447    }
9448    #[inline]
9449    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9450        support::child(&self.syntax)
9451    }
9452    #[inline]
9453    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9454        support::token(&self.syntax, SyntaxKind::L_PAREN)
9455    }
9456    #[inline]
9457    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9458        support::token(&self.syntax, SyntaxKind::R_PAREN)
9459    }
9460    #[inline]
9461    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9462        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9463    }
9464}
9465
9466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9467pub struct JsonOnEmptyClause {
9468    pub(crate) syntax: SyntaxNode,
9469}
9470impl JsonOnEmptyClause {
9471    #[inline]
9472    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9473        support::child(&self.syntax)
9474    }
9475    #[inline]
9476    pub fn empty_token(&self) -> Option<SyntaxToken> {
9477        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9478    }
9479    #[inline]
9480    pub fn on_token(&self) -> Option<SyntaxToken> {
9481        support::token(&self.syntax, SyntaxKind::ON_KW)
9482    }
9483}
9484
9485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9486pub struct JsonOnErrorClause {
9487    pub(crate) syntax: SyntaxNode,
9488}
9489impl JsonOnErrorClause {
9490    #[inline]
9491    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9492        support::child(&self.syntax)
9493    }
9494    #[inline]
9495    pub fn error_token(&self) -> Option<SyntaxToken> {
9496        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9497    }
9498    #[inline]
9499    pub fn on_token(&self) -> Option<SyntaxToken> {
9500        support::token(&self.syntax, SyntaxKind::ON_KW)
9501    }
9502}
9503
9504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9505pub struct JsonPassingArg {
9506    pub(crate) syntax: SyntaxNode,
9507}
9508impl JsonPassingArg {
9509    #[inline]
9510    pub fn expr(&self) -> Option<Expr> {
9511        support::child(&self.syntax)
9512    }
9513}
9514
9515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9516pub struct JsonPassingClause {
9517    pub(crate) syntax: SyntaxNode,
9518}
9519impl JsonPassingClause {
9520    #[inline]
9521    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9522        support::children(&self.syntax)
9523    }
9524    #[inline]
9525    pub fn passing_token(&self) -> Option<SyntaxToken> {
9526        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9527    }
9528}
9529
9530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9531pub struct JsonPathClause {
9532    pub(crate) syntax: SyntaxNode,
9533}
9534impl JsonPathClause {
9535    #[inline]
9536    pub fn expr(&self) -> Option<Expr> {
9537        support::child(&self.syntax)
9538    }
9539    #[inline]
9540    pub fn path_token(&self) -> Option<SyntaxToken> {
9541        support::token(&self.syntax, SyntaxKind::PATH_KW)
9542    }
9543}
9544
9545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9546pub struct JsonQueryFn {
9547    pub(crate) syntax: SyntaxNode,
9548}
9549impl JsonQueryFn {
9550    #[inline]
9551    pub fn expr(&self) -> Option<Expr> {
9552        support::child(&self.syntax)
9553    }
9554    #[inline]
9555    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9556        support::child(&self.syntax)
9557    }
9558    #[inline]
9559    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9560        support::child(&self.syntax)
9561    }
9562    #[inline]
9563    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9564        support::child(&self.syntax)
9565    }
9566    #[inline]
9567    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9568        support::child(&self.syntax)
9569    }
9570    #[inline]
9571    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9572        support::child(&self.syntax)
9573    }
9574    #[inline]
9575    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9576        support::child(&self.syntax)
9577    }
9578    #[inline]
9579    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9580        support::token(&self.syntax, SyntaxKind::L_PAREN)
9581    }
9582    #[inline]
9583    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9584        support::token(&self.syntax, SyntaxKind::R_PAREN)
9585    }
9586    #[inline]
9587    pub fn comma_token(&self) -> Option<SyntaxToken> {
9588        support::token(&self.syntax, SyntaxKind::COMMA)
9589    }
9590    #[inline]
9591    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9592        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9593    }
9594}
9595
9596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9597pub struct JsonQuotesClause {
9598    pub(crate) syntax: SyntaxNode,
9599}
9600impl JsonQuotesClause {
9601    #[inline]
9602    pub fn keep_token(&self) -> Option<SyntaxToken> {
9603        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9604    }
9605    #[inline]
9606    pub fn omit_token(&self) -> Option<SyntaxToken> {
9607        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9608    }
9609    #[inline]
9610    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9611        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9612    }
9613}
9614
9615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9616pub struct JsonReturningClause {
9617    pub(crate) syntax: SyntaxNode,
9618}
9619impl JsonReturningClause {
9620    #[inline]
9621    pub fn ty(&self) -> Option<Type> {
9622        support::child(&self.syntax)
9623    }
9624    #[inline]
9625    pub fn returning_token(&self) -> Option<SyntaxToken> {
9626        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9627    }
9628}
9629
9630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9631pub struct JsonScalarFn {
9632    pub(crate) syntax: SyntaxNode,
9633}
9634impl JsonScalarFn {
9635    #[inline]
9636    pub fn expr(&self) -> Option<Expr> {
9637        support::child(&self.syntax)
9638    }
9639    #[inline]
9640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9641        support::token(&self.syntax, SyntaxKind::L_PAREN)
9642    }
9643    #[inline]
9644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9645        support::token(&self.syntax, SyntaxKind::R_PAREN)
9646    }
9647    #[inline]
9648    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9649        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9650    }
9651}
9652
9653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9654pub struct JsonSelectFormat {
9655    pub(crate) syntax: SyntaxNode,
9656}
9657impl JsonSelectFormat {
9658    #[inline]
9659    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9660        support::child(&self.syntax)
9661    }
9662    #[inline]
9663    pub fn select_variant(&self) -> Option<SelectVariant> {
9664        support::child(&self.syntax)
9665    }
9666}
9667
9668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9669pub struct JsonSerializeFn {
9670    pub(crate) syntax: SyntaxNode,
9671}
9672impl JsonSerializeFn {
9673    #[inline]
9674    pub fn expr(&self) -> Option<Expr> {
9675        support::child(&self.syntax)
9676    }
9677    #[inline]
9678    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9679        support::child(&self.syntax)
9680    }
9681    #[inline]
9682    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9683        support::child(&self.syntax)
9684    }
9685    #[inline]
9686    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9687        support::token(&self.syntax, SyntaxKind::L_PAREN)
9688    }
9689    #[inline]
9690    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9691        support::token(&self.syntax, SyntaxKind::R_PAREN)
9692    }
9693    #[inline]
9694    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9695        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9696    }
9697}
9698
9699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9700pub struct JsonTable {
9701    pub(crate) syntax: SyntaxNode,
9702}
9703impl JsonTable {
9704    #[inline]
9705    pub fn expr(&self) -> Option<Expr> {
9706        support::child(&self.syntax)
9707    }
9708    #[inline]
9709    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9710        support::child(&self.syntax)
9711    }
9712    #[inline]
9713    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9714        support::child(&self.syntax)
9715    }
9716    #[inline]
9717    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9718        support::child(&self.syntax)
9719    }
9720    #[inline]
9721    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9722        support::child(&self.syntax)
9723    }
9724    #[inline]
9725    pub fn name(&self) -> Option<Name> {
9726        support::child(&self.syntax)
9727    }
9728    #[inline]
9729    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9730        support::token(&self.syntax, SyntaxKind::L_PAREN)
9731    }
9732    #[inline]
9733    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9734        support::token(&self.syntax, SyntaxKind::R_PAREN)
9735    }
9736    #[inline]
9737    pub fn comma_token(&self) -> Option<SyntaxToken> {
9738        support::token(&self.syntax, SyntaxKind::COMMA)
9739    }
9740    #[inline]
9741    pub fn as_token(&self) -> Option<SyntaxToken> {
9742        support::token(&self.syntax, SyntaxKind::AS_KW)
9743    }
9744    #[inline]
9745    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9746        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9747    }
9748}
9749
9750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9751pub struct JsonTableColumn {
9752    pub(crate) syntax: SyntaxNode,
9753}
9754impl JsonTableColumn {
9755    #[inline]
9756    pub fn expr(&self) -> Option<Expr> {
9757        support::child(&self.syntax)
9758    }
9759    #[inline]
9760    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9761        support::child(&self.syntax)
9762    }
9763    #[inline]
9764    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9765        support::child(&self.syntax)
9766    }
9767    #[inline]
9768    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9769        support::child(&self.syntax)
9770    }
9771    #[inline]
9772    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9773        support::child(&self.syntax)
9774    }
9775    #[inline]
9776    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9777        support::child(&self.syntax)
9778    }
9779    #[inline]
9780    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9781        support::child(&self.syntax)
9782    }
9783    #[inline]
9784    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9785        support::child(&self.syntax)
9786    }
9787    #[inline]
9788    pub fn name(&self) -> Option<Name> {
9789        support::child(&self.syntax)
9790    }
9791    #[inline]
9792    pub fn ty(&self) -> Option<Type> {
9793        support::child(&self.syntax)
9794    }
9795    #[inline]
9796    pub fn as_token(&self) -> Option<SyntaxToken> {
9797        support::token(&self.syntax, SyntaxKind::AS_KW)
9798    }
9799    #[inline]
9800    pub fn exists_token(&self) -> Option<SyntaxToken> {
9801        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9802    }
9803    #[inline]
9804    pub fn for_token(&self) -> Option<SyntaxToken> {
9805        support::token(&self.syntax, SyntaxKind::FOR_KW)
9806    }
9807    #[inline]
9808    pub fn nested_token(&self) -> Option<SyntaxToken> {
9809        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9810    }
9811    #[inline]
9812    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9813        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9814    }
9815    #[inline]
9816    pub fn path_token(&self) -> Option<SyntaxToken> {
9817        support::token(&self.syntax, SyntaxKind::PATH_KW)
9818    }
9819}
9820
9821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9822pub struct JsonTableColumnList {
9823    pub(crate) syntax: SyntaxNode,
9824}
9825impl JsonTableColumnList {
9826    #[inline]
9827    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9828        support::children(&self.syntax)
9829    }
9830    #[inline]
9831    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::L_PAREN)
9833    }
9834    #[inline]
9835    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9836        support::token(&self.syntax, SyntaxKind::R_PAREN)
9837    }
9838    #[inline]
9839    pub fn columns_token(&self) -> Option<SyntaxToken> {
9840        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9841    }
9842}
9843
9844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9845pub struct JsonValueExpr {
9846    pub(crate) syntax: SyntaxNode,
9847}
9848impl JsonValueExpr {
9849    #[inline]
9850    pub fn expr(&self) -> Option<Expr> {
9851        support::child(&self.syntax)
9852    }
9853    #[inline]
9854    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9855        support::child(&self.syntax)
9856    }
9857}
9858
9859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9860pub struct JsonValueFn {
9861    pub(crate) syntax: SyntaxNode,
9862}
9863impl JsonValueFn {
9864    #[inline]
9865    pub fn expr(&self) -> Option<Expr> {
9866        support::child(&self.syntax)
9867    }
9868    #[inline]
9869    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9870        support::child(&self.syntax)
9871    }
9872    #[inline]
9873    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9874        support::child(&self.syntax)
9875    }
9876    #[inline]
9877    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9878        support::child(&self.syntax)
9879    }
9880    #[inline]
9881    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9882        support::child(&self.syntax)
9883    }
9884    #[inline]
9885    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::L_PAREN)
9887    }
9888    #[inline]
9889    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::R_PAREN)
9891    }
9892    #[inline]
9893    pub fn comma_token(&self) -> Option<SyntaxToken> {
9894        support::token(&self.syntax, SyntaxKind::COMMA)
9895    }
9896    #[inline]
9897    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9898        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9899    }
9900}
9901
9902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9903pub struct JsonWrapperBehaviorClause {
9904    pub(crate) syntax: SyntaxNode,
9905}
9906impl JsonWrapperBehaviorClause {
9907    #[inline]
9908    pub fn array_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9910    }
9911    #[inline]
9912    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9914    }
9915    #[inline]
9916    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9917        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9918    }
9919    #[inline]
9920    pub fn with_token(&self) -> Option<SyntaxToken> {
9921        support::token(&self.syntax, SyntaxKind::WITH_KW)
9922    }
9923    #[inline]
9924    pub fn without_token(&self) -> Option<SyntaxToken> {
9925        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9926    }
9927    #[inline]
9928    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9929        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9930    }
9931}
9932
9933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9934pub struct LanguageFuncOption {
9935    pub(crate) syntax: SyntaxNode,
9936}
9937impl LanguageFuncOption {
9938    #[inline]
9939    pub fn name_ref(&self) -> Option<NameRef> {
9940        support::child(&self.syntax)
9941    }
9942    #[inline]
9943    pub fn language_token(&self) -> Option<SyntaxToken> {
9944        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9945    }
9946}
9947
9948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9949pub struct LeakproofFuncOption {
9950    pub(crate) syntax: SyntaxNode,
9951}
9952impl LeakproofFuncOption {
9953    #[inline]
9954    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9956    }
9957    #[inline]
9958    pub fn not_token(&self) -> Option<SyntaxToken> {
9959        support::token(&self.syntax, SyntaxKind::NOT_KW)
9960    }
9961}
9962
9963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9964pub struct LikeClause {
9965    pub(crate) syntax: SyntaxNode,
9966}
9967impl LikeClause {
9968    #[inline]
9969    pub fn like_options(&self) -> AstChildren<LikeOption> {
9970        support::children(&self.syntax)
9971    }
9972    #[inline]
9973    pub fn path(&self) -> Option<Path> {
9974        support::child(&self.syntax)
9975    }
9976    #[inline]
9977    pub fn like_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::LIKE_KW)
9979    }
9980}
9981
9982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9983pub struct LikeOption {
9984    pub(crate) syntax: SyntaxNode,
9985}
9986impl LikeOption {
9987    #[inline]
9988    pub fn all_token(&self) -> Option<SyntaxToken> {
9989        support::token(&self.syntax, SyntaxKind::ALL_KW)
9990    }
9991    #[inline]
9992    pub fn comments_token(&self) -> Option<SyntaxToken> {
9993        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
9994    }
9995    #[inline]
9996    pub fn compression_token(&self) -> Option<SyntaxToken> {
9997        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9998    }
9999    #[inline]
10000    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10001        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10002    }
10003    #[inline]
10004    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10005        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10006    }
10007    #[inline]
10008    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10009        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10010    }
10011    #[inline]
10012    pub fn generated_token(&self) -> Option<SyntaxToken> {
10013        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10014    }
10015    #[inline]
10016    pub fn identity_token(&self) -> Option<SyntaxToken> {
10017        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10018    }
10019    #[inline]
10020    pub fn including_token(&self) -> Option<SyntaxToken> {
10021        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10022    }
10023    #[inline]
10024    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10025        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10026    }
10027    #[inline]
10028    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10029        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10030    }
10031    #[inline]
10032    pub fn storage_token(&self) -> Option<SyntaxToken> {
10033        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10034    }
10035}
10036
10037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10038pub struct LimitClause {
10039    pub(crate) syntax: SyntaxNode,
10040}
10041impl LimitClause {
10042    #[inline]
10043    pub fn expr(&self) -> Option<Expr> {
10044        support::child(&self.syntax)
10045    }
10046    #[inline]
10047    pub fn all_token(&self) -> Option<SyntaxToken> {
10048        support::token(&self.syntax, SyntaxKind::ALL_KW)
10049    }
10050    #[inline]
10051    pub fn limit_token(&self) -> Option<SyntaxToken> {
10052        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10053    }
10054}
10055
10056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10057pub struct LimitToTables {
10058    pub(crate) syntax: SyntaxNode,
10059}
10060impl LimitToTables {
10061    #[inline]
10062    pub fn name_refs(&self) -> AstChildren<NameRef> {
10063        support::children(&self.syntax)
10064    }
10065    #[inline]
10066    pub fn limit_token(&self) -> Option<SyntaxToken> {
10067        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10068    }
10069    #[inline]
10070    pub fn to_token(&self) -> Option<SyntaxToken> {
10071        support::token(&self.syntax, SyntaxKind::TO_KW)
10072    }
10073}
10074
10075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10076pub struct Listen {
10077    pub(crate) syntax: SyntaxNode,
10078}
10079impl Listen {
10080    #[inline]
10081    pub fn name(&self) -> Option<Name> {
10082        support::child(&self.syntax)
10083    }
10084    #[inline]
10085    pub fn listen_token(&self) -> Option<SyntaxToken> {
10086        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10087    }
10088}
10089
10090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10091pub struct Literal {
10092    pub(crate) syntax: SyntaxNode,
10093}
10094impl Literal {}
10095
10096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10097pub struct Load {
10098    pub(crate) syntax: SyntaxNode,
10099}
10100impl Load {
10101    #[inline]
10102    pub fn literal(&self) -> Option<Literal> {
10103        support::child(&self.syntax)
10104    }
10105    #[inline]
10106    pub fn load_token(&self) -> Option<SyntaxToken> {
10107        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10108    }
10109}
10110
10111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10112pub struct Lock {
10113    pub(crate) syntax: SyntaxNode,
10114}
10115impl Lock {
10116    #[inline]
10117    pub fn table_list(&self) -> Option<TableList> {
10118        support::child(&self.syntax)
10119    }
10120    #[inline]
10121    pub fn lock_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10123    }
10124    #[inline]
10125    pub fn table_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10127    }
10128}
10129
10130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10131pub struct LockingClause {
10132    pub(crate) syntax: SyntaxNode,
10133}
10134impl LockingClause {
10135    #[inline]
10136    pub fn for_token(&self) -> Option<SyntaxToken> {
10137        support::token(&self.syntax, SyntaxKind::FOR_KW)
10138    }
10139}
10140
10141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10142pub struct Lteq {
10143    pub(crate) syntax: SyntaxNode,
10144}
10145impl Lteq {
10146    #[inline]
10147    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10148        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10149    }
10150    #[inline]
10151    pub fn eq_token(&self) -> Option<SyntaxToken> {
10152        support::token(&self.syntax, SyntaxKind::EQ)
10153    }
10154}
10155
10156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10157pub struct MatchFull {
10158    pub(crate) syntax: SyntaxNode,
10159}
10160impl MatchFull {
10161    #[inline]
10162    pub fn full_token(&self) -> Option<SyntaxToken> {
10163        support::token(&self.syntax, SyntaxKind::FULL_KW)
10164    }
10165    #[inline]
10166    pub fn match_token(&self) -> Option<SyntaxToken> {
10167        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10168    }
10169}
10170
10171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10172pub struct MatchPartial {
10173    pub(crate) syntax: SyntaxNode,
10174}
10175impl MatchPartial {
10176    #[inline]
10177    pub fn match_token(&self) -> Option<SyntaxToken> {
10178        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10179    }
10180    #[inline]
10181    pub fn partial_token(&self) -> Option<SyntaxToken> {
10182        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10183    }
10184}
10185
10186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10187pub struct MatchSimple {
10188    pub(crate) syntax: SyntaxNode,
10189}
10190impl MatchSimple {
10191    #[inline]
10192    pub fn match_token(&self) -> Option<SyntaxToken> {
10193        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10194    }
10195    #[inline]
10196    pub fn simple_token(&self) -> Option<SyntaxToken> {
10197        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10198    }
10199}
10200
10201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10202pub struct Materialized {
10203    pub(crate) syntax: SyntaxNode,
10204}
10205impl Materialized {
10206    #[inline]
10207    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10208        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10209    }
10210}
10211
10212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10213pub struct Merge {
10214    pub(crate) syntax: SyntaxNode,
10215}
10216impl Merge {
10217    #[inline]
10218    pub fn alias(&self) -> Option<Alias> {
10219        support::child(&self.syntax)
10220    }
10221    #[inline]
10222    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10223        support::children(&self.syntax)
10224    }
10225    #[inline]
10226    pub fn relation_name(&self) -> Option<RelationName> {
10227        support::child(&self.syntax)
10228    }
10229    #[inline]
10230    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10231        support::child(&self.syntax)
10232    }
10233    #[inline]
10234    pub fn into_token(&self) -> Option<SyntaxToken> {
10235        support::token(&self.syntax, SyntaxKind::INTO_KW)
10236    }
10237    #[inline]
10238    pub fn merge_token(&self) -> Option<SyntaxToken> {
10239        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10240    }
10241}
10242
10243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10244pub struct MergeDelete {
10245    pub(crate) syntax: SyntaxNode,
10246}
10247impl MergeDelete {
10248    #[inline]
10249    pub fn delete_token(&self) -> Option<SyntaxToken> {
10250        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10251    }
10252}
10253
10254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10255pub struct MergeDoNothing {
10256    pub(crate) syntax: SyntaxNode,
10257}
10258impl MergeDoNothing {
10259    #[inline]
10260    pub fn do_token(&self) -> Option<SyntaxToken> {
10261        support::token(&self.syntax, SyntaxKind::DO_KW)
10262    }
10263    #[inline]
10264    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10265        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10266    }
10267}
10268
10269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10270pub struct MergeInsert {
10271    pub(crate) syntax: SyntaxNode,
10272}
10273impl MergeInsert {
10274    #[inline]
10275    pub fn column_list(&self) -> Option<ColumnList> {
10276        support::child(&self.syntax)
10277    }
10278    #[inline]
10279    pub fn values(&self) -> Option<Values> {
10280        support::child(&self.syntax)
10281    }
10282    #[inline]
10283    pub fn default_token(&self) -> Option<SyntaxToken> {
10284        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10285    }
10286    #[inline]
10287    pub fn insert_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10289    }
10290    #[inline]
10291    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10292        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10293    }
10294    #[inline]
10295    pub fn system_token(&self) -> Option<SyntaxToken> {
10296        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10297    }
10298    #[inline]
10299    pub fn user_token(&self) -> Option<SyntaxToken> {
10300        support::token(&self.syntax, SyntaxKind::USER_KW)
10301    }
10302    #[inline]
10303    pub fn values_token(&self) -> Option<SyntaxToken> {
10304        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10305    }
10306}
10307
10308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10309pub struct MergePartitions {
10310    pub(crate) syntax: SyntaxNode,
10311}
10312impl MergePartitions {
10313    #[inline]
10314    pub fn merge_token(&self) -> Option<SyntaxToken> {
10315        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10316    }
10317    #[inline]
10318    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10319        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10320    }
10321}
10322
10323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10324pub struct MergeUpdate {
10325    pub(crate) syntax: SyntaxNode,
10326}
10327impl MergeUpdate {
10328    #[inline]
10329    pub fn set_clause(&self) -> Option<SetClause> {
10330        support::child(&self.syntax)
10331    }
10332    #[inline]
10333    pub fn set_token(&self) -> Option<SyntaxToken> {
10334        support::token(&self.syntax, SyntaxKind::SET_KW)
10335    }
10336    #[inline]
10337    pub fn update_token(&self) -> Option<SyntaxToken> {
10338        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10339    }
10340}
10341
10342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10343pub struct MergeWhenMatched {
10344    pub(crate) syntax: SyntaxNode,
10345}
10346impl MergeWhenMatched {
10347    #[inline]
10348    pub fn expr(&self) -> Option<Expr> {
10349        support::child(&self.syntax)
10350    }
10351    #[inline]
10352    pub fn merge_action(&self) -> Option<MergeAction> {
10353        support::child(&self.syntax)
10354    }
10355    #[inline]
10356    pub fn and_token(&self) -> Option<SyntaxToken> {
10357        support::token(&self.syntax, SyntaxKind::AND_KW)
10358    }
10359    #[inline]
10360    pub fn matched_token(&self) -> Option<SyntaxToken> {
10361        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10362    }
10363    #[inline]
10364    pub fn then_token(&self) -> Option<SyntaxToken> {
10365        support::token(&self.syntax, SyntaxKind::THEN_KW)
10366    }
10367    #[inline]
10368    pub fn when_token(&self) -> Option<SyntaxToken> {
10369        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10370    }
10371}
10372
10373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10374pub struct MergeWhenNotMatchedSource {
10375    pub(crate) syntax: SyntaxNode,
10376}
10377impl MergeWhenNotMatchedSource {
10378    #[inline]
10379    pub fn expr(&self) -> Option<Expr> {
10380        support::child(&self.syntax)
10381    }
10382    #[inline]
10383    pub fn merge_action(&self) -> Option<MergeAction> {
10384        support::child(&self.syntax)
10385    }
10386    #[inline]
10387    pub fn and_token(&self) -> Option<SyntaxToken> {
10388        support::token(&self.syntax, SyntaxKind::AND_KW)
10389    }
10390    #[inline]
10391    pub fn by_token(&self) -> Option<SyntaxToken> {
10392        support::token(&self.syntax, SyntaxKind::BY_KW)
10393    }
10394    #[inline]
10395    pub fn matched_token(&self) -> Option<SyntaxToken> {
10396        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10397    }
10398    #[inline]
10399    pub fn not_token(&self) -> Option<SyntaxToken> {
10400        support::token(&self.syntax, SyntaxKind::NOT_KW)
10401    }
10402    #[inline]
10403    pub fn source_token(&self) -> Option<SyntaxToken> {
10404        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10405    }
10406    #[inline]
10407    pub fn then_token(&self) -> Option<SyntaxToken> {
10408        support::token(&self.syntax, SyntaxKind::THEN_KW)
10409    }
10410    #[inline]
10411    pub fn when_token(&self) -> Option<SyntaxToken> {
10412        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10413    }
10414}
10415
10416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10417pub struct MergeWhenNotMatchedTarget {
10418    pub(crate) syntax: SyntaxNode,
10419}
10420impl MergeWhenNotMatchedTarget {
10421    #[inline]
10422    pub fn expr(&self) -> Option<Expr> {
10423        support::child(&self.syntax)
10424    }
10425    #[inline]
10426    pub fn merge_action(&self) -> Option<MergeAction> {
10427        support::child(&self.syntax)
10428    }
10429    #[inline]
10430    pub fn and_token(&self) -> Option<SyntaxToken> {
10431        support::token(&self.syntax, SyntaxKind::AND_KW)
10432    }
10433    #[inline]
10434    pub fn by_token(&self) -> Option<SyntaxToken> {
10435        support::token(&self.syntax, SyntaxKind::BY_KW)
10436    }
10437    #[inline]
10438    pub fn matched_token(&self) -> Option<SyntaxToken> {
10439        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10440    }
10441    #[inline]
10442    pub fn not_token(&self) -> Option<SyntaxToken> {
10443        support::token(&self.syntax, SyntaxKind::NOT_KW)
10444    }
10445    #[inline]
10446    pub fn target_token(&self) -> Option<SyntaxToken> {
10447        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10448    }
10449    #[inline]
10450    pub fn then_token(&self) -> Option<SyntaxToken> {
10451        support::token(&self.syntax, SyntaxKind::THEN_KW)
10452    }
10453    #[inline]
10454    pub fn when_token(&self) -> Option<SyntaxToken> {
10455        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10456    }
10457}
10458
10459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10460pub struct Move {
10461    pub(crate) syntax: SyntaxNode,
10462}
10463impl Move {
10464    #[inline]
10465    pub fn name_ref(&self) -> Option<NameRef> {
10466        support::child(&self.syntax)
10467    }
10468    #[inline]
10469    pub fn from_token(&self) -> Option<SyntaxToken> {
10470        support::token(&self.syntax, SyntaxKind::FROM_KW)
10471    }
10472    #[inline]
10473    pub fn in_token(&self) -> Option<SyntaxToken> {
10474        support::token(&self.syntax, SyntaxKind::IN_KW)
10475    }
10476    #[inline]
10477    pub fn move_token(&self) -> Option<SyntaxToken> {
10478        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10479    }
10480}
10481
10482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10483pub struct Name {
10484    pub(crate) syntax: SyntaxNode,
10485}
10486impl Name {
10487    #[inline]
10488    pub fn ident_token(&self) -> Option<SyntaxToken> {
10489        support::token(&self.syntax, SyntaxKind::IDENT)
10490    }
10491}
10492
10493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10494pub struct NameRef {
10495    pub(crate) syntax: SyntaxNode,
10496}
10497impl NameRef {
10498    #[inline]
10499    pub fn ident_token(&self) -> Option<SyntaxToken> {
10500        support::token(&self.syntax, SyntaxKind::IDENT)
10501    }
10502}
10503
10504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10505pub struct NamedArg {
10506    pub(crate) syntax: SyntaxNode,
10507}
10508impl NamedArg {
10509    #[inline]
10510    pub fn expr(&self) -> Option<Expr> {
10511        support::child(&self.syntax)
10512    }
10513    #[inline]
10514    pub fn fat_arrow(&self) -> Option<FatArrow> {
10515        support::child(&self.syntax)
10516    }
10517    #[inline]
10518    pub fn name_ref(&self) -> Option<NameRef> {
10519        support::child(&self.syntax)
10520    }
10521}
10522
10523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10524pub struct Neq {
10525    pub(crate) syntax: SyntaxNode,
10526}
10527impl Neq {
10528    #[inline]
10529    pub fn bang_token(&self) -> Option<SyntaxToken> {
10530        support::token(&self.syntax, SyntaxKind::BANG)
10531    }
10532    #[inline]
10533    pub fn eq_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::EQ)
10535    }
10536}
10537
10538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10539pub struct Neqb {
10540    pub(crate) syntax: SyntaxNode,
10541}
10542impl Neqb {
10543    #[inline]
10544    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10545        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10546    }
10547    #[inline]
10548    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10549        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10550    }
10551}
10552
10553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10554pub struct NoAction {
10555    pub(crate) syntax: SyntaxNode,
10556}
10557impl NoAction {
10558    #[inline]
10559    pub fn action_token(&self) -> Option<SyntaxToken> {
10560        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10561    }
10562    #[inline]
10563    pub fn no_token(&self) -> Option<SyntaxToken> {
10564        support::token(&self.syntax, SyntaxKind::NO_KW)
10565    }
10566}
10567
10568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10569pub struct NoDependsOnExtension {
10570    pub(crate) syntax: SyntaxNode,
10571}
10572impl NoDependsOnExtension {
10573    #[inline]
10574    pub fn name_ref(&self) -> Option<NameRef> {
10575        support::child(&self.syntax)
10576    }
10577    #[inline]
10578    pub fn depends_token(&self) -> Option<SyntaxToken> {
10579        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10580    }
10581    #[inline]
10582    pub fn extension_token(&self) -> Option<SyntaxToken> {
10583        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10584    }
10585    #[inline]
10586    pub fn no_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::NO_KW)
10588    }
10589    #[inline]
10590    pub fn on_token(&self) -> Option<SyntaxToken> {
10591        support::token(&self.syntax, SyntaxKind::ON_KW)
10592    }
10593}
10594
10595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10596pub struct NoForceRls {
10597    pub(crate) syntax: SyntaxNode,
10598}
10599impl NoForceRls {
10600    #[inline]
10601    pub fn force_token(&self) -> Option<SyntaxToken> {
10602        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10603    }
10604    #[inline]
10605    pub fn level_token(&self) -> Option<SyntaxToken> {
10606        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10607    }
10608    #[inline]
10609    pub fn no_token(&self) -> Option<SyntaxToken> {
10610        support::token(&self.syntax, SyntaxKind::NO_KW)
10611    }
10612    #[inline]
10613    pub fn row_token(&self) -> Option<SyntaxToken> {
10614        support::token(&self.syntax, SyntaxKind::ROW_KW)
10615    }
10616    #[inline]
10617    pub fn security_token(&self) -> Option<SyntaxToken> {
10618        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10619    }
10620}
10621
10622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10623pub struct NoInherit {
10624    pub(crate) syntax: SyntaxNode,
10625}
10626impl NoInherit {
10627    #[inline]
10628    pub fn path(&self) -> Option<Path> {
10629        support::child(&self.syntax)
10630    }
10631    #[inline]
10632    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10633        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10634    }
10635    #[inline]
10636    pub fn no_token(&self) -> Option<SyntaxToken> {
10637        support::token(&self.syntax, SyntaxKind::NO_KW)
10638    }
10639}
10640
10641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10642pub struct NoInheritTable {
10643    pub(crate) syntax: SyntaxNode,
10644}
10645impl NoInheritTable {
10646    #[inline]
10647    pub fn path(&self) -> Option<Path> {
10648        support::child(&self.syntax)
10649    }
10650    #[inline]
10651    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10653    }
10654    #[inline]
10655    pub fn no_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::NO_KW)
10657    }
10658}
10659
10660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10661pub struct NonStandardParam {
10662    pub(crate) syntax: SyntaxNode,
10663}
10664impl NonStandardParam {
10665    #[inline]
10666    pub fn name_ref(&self) -> Option<NameRef> {
10667        support::child(&self.syntax)
10668    }
10669    #[inline]
10670    pub fn colon_token(&self) -> Option<SyntaxToken> {
10671        support::token(&self.syntax, SyntaxKind::COLON)
10672    }
10673}
10674
10675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10676pub struct NotDeferrable {
10677    pub(crate) syntax: SyntaxNode,
10678}
10679impl NotDeferrable {
10680    #[inline]
10681    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10682        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10683    }
10684    #[inline]
10685    pub fn not_token(&self) -> Option<SyntaxToken> {
10686        support::token(&self.syntax, SyntaxKind::NOT_KW)
10687    }
10688}
10689
10690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10691pub struct NotDeferrableConstraintOption {
10692    pub(crate) syntax: SyntaxNode,
10693}
10694impl NotDeferrableConstraintOption {
10695    #[inline]
10696    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10697        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10698    }
10699    #[inline]
10700    pub fn not_token(&self) -> Option<SyntaxToken> {
10701        support::token(&self.syntax, SyntaxKind::NOT_KW)
10702    }
10703}
10704
10705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10706pub struct NotEnforced {
10707    pub(crate) syntax: SyntaxNode,
10708}
10709impl NotEnforced {
10710    #[inline]
10711    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10712        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10713    }
10714    #[inline]
10715    pub fn not_token(&self) -> Option<SyntaxToken> {
10716        support::token(&self.syntax, SyntaxKind::NOT_KW)
10717    }
10718}
10719
10720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10721pub struct NotIlike {
10722    pub(crate) syntax: SyntaxNode,
10723}
10724impl NotIlike {
10725    #[inline]
10726    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10727        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10728    }
10729    #[inline]
10730    pub fn not_token(&self) -> Option<SyntaxToken> {
10731        support::token(&self.syntax, SyntaxKind::NOT_KW)
10732    }
10733}
10734
10735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10736pub struct NotIn {
10737    pub(crate) syntax: SyntaxNode,
10738}
10739impl NotIn {
10740    #[inline]
10741    pub fn in_token(&self) -> Option<SyntaxToken> {
10742        support::token(&self.syntax, SyntaxKind::IN_KW)
10743    }
10744    #[inline]
10745    pub fn not_token(&self) -> Option<SyntaxToken> {
10746        support::token(&self.syntax, SyntaxKind::NOT_KW)
10747    }
10748}
10749
10750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10751pub struct NotLike {
10752    pub(crate) syntax: SyntaxNode,
10753}
10754impl NotLike {
10755    #[inline]
10756    pub fn like_token(&self) -> Option<SyntaxToken> {
10757        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10758    }
10759    #[inline]
10760    pub fn not_token(&self) -> Option<SyntaxToken> {
10761        support::token(&self.syntax, SyntaxKind::NOT_KW)
10762    }
10763}
10764
10765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10766pub struct NotMaterialized {
10767    pub(crate) syntax: SyntaxNode,
10768}
10769impl NotMaterialized {
10770    #[inline]
10771    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10772        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10773    }
10774    #[inline]
10775    pub fn not_token(&self) -> Option<SyntaxToken> {
10776        support::token(&self.syntax, SyntaxKind::NOT_KW)
10777    }
10778}
10779
10780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10781pub struct NotNullConstraint {
10782    pub(crate) syntax: SyntaxNode,
10783}
10784impl NotNullConstraint {
10785    #[inline]
10786    pub fn name_ref(&self) -> Option<NameRef> {
10787        support::child(&self.syntax)
10788    }
10789    #[inline]
10790    pub fn no_inherit(&self) -> Option<NoInherit> {
10791        support::child(&self.syntax)
10792    }
10793    #[inline]
10794    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10795        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10796    }
10797    #[inline]
10798    pub fn not_token(&self) -> Option<SyntaxToken> {
10799        support::token(&self.syntax, SyntaxKind::NOT_KW)
10800    }
10801    #[inline]
10802    pub fn null_token(&self) -> Option<SyntaxToken> {
10803        support::token(&self.syntax, SyntaxKind::NULL_KW)
10804    }
10805}
10806
10807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10808pub struct NotOf {
10809    pub(crate) syntax: SyntaxNode,
10810}
10811impl NotOf {
10812    #[inline]
10813    pub fn not_token(&self) -> Option<SyntaxToken> {
10814        support::token(&self.syntax, SyntaxKind::NOT_KW)
10815    }
10816    #[inline]
10817    pub fn of_token(&self) -> Option<SyntaxToken> {
10818        support::token(&self.syntax, SyntaxKind::OF_KW)
10819    }
10820}
10821
10822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10823pub struct NotSimilarTo {
10824    pub(crate) syntax: SyntaxNode,
10825}
10826impl NotSimilarTo {
10827    #[inline]
10828    pub fn not_token(&self) -> Option<SyntaxToken> {
10829        support::token(&self.syntax, SyntaxKind::NOT_KW)
10830    }
10831    #[inline]
10832    pub fn similar_token(&self) -> Option<SyntaxToken> {
10833        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10834    }
10835    #[inline]
10836    pub fn to_token(&self) -> Option<SyntaxToken> {
10837        support::token(&self.syntax, SyntaxKind::TO_KW)
10838    }
10839}
10840
10841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10842pub struct NotValid {
10843    pub(crate) syntax: SyntaxNode,
10844}
10845impl NotValid {
10846    #[inline]
10847    pub fn not_token(&self) -> Option<SyntaxToken> {
10848        support::token(&self.syntax, SyntaxKind::NOT_KW)
10849    }
10850    #[inline]
10851    pub fn valid_token(&self) -> Option<SyntaxToken> {
10852        support::token(&self.syntax, SyntaxKind::VALID_KW)
10853    }
10854}
10855
10856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10857pub struct Notify {
10858    pub(crate) syntax: SyntaxNode,
10859}
10860impl Notify {
10861    #[inline]
10862    pub fn literal(&self) -> Option<Literal> {
10863        support::child(&self.syntax)
10864    }
10865    #[inline]
10866    pub fn name_ref(&self) -> Option<NameRef> {
10867        support::child(&self.syntax)
10868    }
10869    #[inline]
10870    pub fn comma_token(&self) -> Option<SyntaxToken> {
10871        support::token(&self.syntax, SyntaxKind::COMMA)
10872    }
10873    #[inline]
10874    pub fn notify_token(&self) -> Option<SyntaxToken> {
10875        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10876    }
10877}
10878
10879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10880pub struct NullConstraint {
10881    pub(crate) syntax: SyntaxNode,
10882}
10883impl NullConstraint {
10884    #[inline]
10885    pub fn name_ref(&self) -> Option<NameRef> {
10886        support::child(&self.syntax)
10887    }
10888    #[inline]
10889    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10890        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10891    }
10892    #[inline]
10893    pub fn null_token(&self) -> Option<SyntaxToken> {
10894        support::token(&self.syntax, SyntaxKind::NULL_KW)
10895    }
10896}
10897
10898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10899pub struct NullsDistinct {
10900    pub(crate) syntax: SyntaxNode,
10901}
10902impl NullsDistinct {
10903    #[inline]
10904    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10905        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10906    }
10907    #[inline]
10908    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10909        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10910    }
10911}
10912
10913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10914pub struct NullsFirst {
10915    pub(crate) syntax: SyntaxNode,
10916}
10917impl NullsFirst {
10918    #[inline]
10919    pub fn first_token(&self) -> Option<SyntaxToken> {
10920        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10921    }
10922    #[inline]
10923    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10924        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10925    }
10926}
10927
10928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10929pub struct NullsLast {
10930    pub(crate) syntax: SyntaxNode,
10931}
10932impl NullsLast {
10933    #[inline]
10934    pub fn last_token(&self) -> Option<SyntaxToken> {
10935        support::token(&self.syntax, SyntaxKind::LAST_KW)
10936    }
10937    #[inline]
10938    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10939        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10940    }
10941}
10942
10943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10944pub struct NullsNotDistinct {
10945    pub(crate) syntax: SyntaxNode,
10946}
10947impl NullsNotDistinct {
10948    #[inline]
10949    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10950        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10951    }
10952    #[inline]
10953    pub fn not_token(&self) -> Option<SyntaxToken> {
10954        support::token(&self.syntax, SyntaxKind::NOT_KW)
10955    }
10956    #[inline]
10957    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10958        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10959    }
10960}
10961
10962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10963pub struct OfType {
10964    pub(crate) syntax: SyntaxNode,
10965}
10966impl OfType {
10967    #[inline]
10968    pub fn ty(&self) -> Option<Type> {
10969        support::child(&self.syntax)
10970    }
10971    #[inline]
10972    pub fn of_token(&self) -> Option<SyntaxToken> {
10973        support::token(&self.syntax, SyntaxKind::OF_KW)
10974    }
10975}
10976
10977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10978pub struct OffsetClause {
10979    pub(crate) syntax: SyntaxNode,
10980}
10981impl OffsetClause {
10982    #[inline]
10983    pub fn expr(&self) -> Option<Expr> {
10984        support::child(&self.syntax)
10985    }
10986    #[inline]
10987    pub fn offset_token(&self) -> Option<SyntaxToken> {
10988        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
10989    }
10990    #[inline]
10991    pub fn row_token(&self) -> Option<SyntaxToken> {
10992        support::token(&self.syntax, SyntaxKind::ROW_KW)
10993    }
10994    #[inline]
10995    pub fn rows_token(&self) -> Option<SyntaxToken> {
10996        support::token(&self.syntax, SyntaxKind::ROWS_KW)
10997    }
10998}
10999
11000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11001pub struct OnClause {
11002    pub(crate) syntax: SyntaxNode,
11003}
11004impl OnClause {
11005    #[inline]
11006    pub fn expr(&self) -> Option<Expr> {
11007        support::child(&self.syntax)
11008    }
11009    #[inline]
11010    pub fn on_token(&self) -> Option<SyntaxToken> {
11011        support::token(&self.syntax, SyntaxKind::ON_KW)
11012    }
11013}
11014
11015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11016pub struct OnCommit {
11017    pub(crate) syntax: SyntaxNode,
11018}
11019impl OnCommit {
11020    #[inline]
11021    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11022        support::child(&self.syntax)
11023    }
11024    #[inline]
11025    pub fn commit_token(&self) -> Option<SyntaxToken> {
11026        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11027    }
11028    #[inline]
11029    pub fn on_token(&self) -> Option<SyntaxToken> {
11030        support::token(&self.syntax, SyntaxKind::ON_KW)
11031    }
11032}
11033
11034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11035pub struct OnConflictClause {
11036    pub(crate) syntax: SyntaxNode,
11037}
11038impl OnConflictClause {
11039    #[inline]
11040    pub fn conflict_action(&self) -> Option<ConflictAction> {
11041        support::child(&self.syntax)
11042    }
11043    #[inline]
11044    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11045        support::child(&self.syntax)
11046    }
11047    #[inline]
11048    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11049        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11050    }
11051    #[inline]
11052    pub fn on_token(&self) -> Option<SyntaxToken> {
11053        support::token(&self.syntax, SyntaxKind::ON_KW)
11054    }
11055}
11056
11057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11058pub struct OnDeleteAction {
11059    pub(crate) syntax: SyntaxNode,
11060}
11061impl OnDeleteAction {
11062    #[inline]
11063    pub fn ref_action(&self) -> Option<RefAction> {
11064        support::child(&self.syntax)
11065    }
11066    #[inline]
11067    pub fn delete_token(&self) -> Option<SyntaxToken> {
11068        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11069    }
11070    #[inline]
11071    pub fn on_token(&self) -> Option<SyntaxToken> {
11072        support::token(&self.syntax, SyntaxKind::ON_KW)
11073    }
11074}
11075
11076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11077pub struct OnTable {
11078    pub(crate) syntax: SyntaxNode,
11079}
11080impl OnTable {
11081    #[inline]
11082    pub fn path(&self) -> Option<Path> {
11083        support::child(&self.syntax)
11084    }
11085    #[inline]
11086    pub fn on_token(&self) -> Option<SyntaxToken> {
11087        support::token(&self.syntax, SyntaxKind::ON_KW)
11088    }
11089}
11090
11091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11092pub struct OnUpdateAction {
11093    pub(crate) syntax: SyntaxNode,
11094}
11095impl OnUpdateAction {
11096    #[inline]
11097    pub fn ref_action(&self) -> Option<RefAction> {
11098        support::child(&self.syntax)
11099    }
11100    #[inline]
11101    pub fn on_token(&self) -> Option<SyntaxToken> {
11102        support::token(&self.syntax, SyntaxKind::ON_KW)
11103    }
11104    #[inline]
11105    pub fn update_token(&self) -> Option<SyntaxToken> {
11106        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11107    }
11108}
11109
11110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11111pub struct Op {
11112    pub(crate) syntax: SyntaxNode,
11113}
11114impl Op {
11115    #[inline]
11116    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11117        support::child(&self.syntax)
11118    }
11119    #[inline]
11120    pub fn colon_colon(&self) -> Option<ColonColon> {
11121        support::child(&self.syntax)
11122    }
11123    #[inline]
11124    pub fn colon_eq(&self) -> Option<ColonEq> {
11125        support::child(&self.syntax)
11126    }
11127    #[inline]
11128    pub fn custom_op(&self) -> Option<CustomOp> {
11129        support::child(&self.syntax)
11130    }
11131    #[inline]
11132    pub fn fat_arrow(&self) -> Option<FatArrow> {
11133        support::child(&self.syntax)
11134    }
11135    #[inline]
11136    pub fn gteq(&self) -> Option<Gteq> {
11137        support::child(&self.syntax)
11138    }
11139    #[inline]
11140    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11141        support::child(&self.syntax)
11142    }
11143    #[inline]
11144    pub fn is_json(&self) -> Option<IsJson> {
11145        support::child(&self.syntax)
11146    }
11147    #[inline]
11148    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11149        support::child(&self.syntax)
11150    }
11151    #[inline]
11152    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11153        support::child(&self.syntax)
11154    }
11155    #[inline]
11156    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11157        support::child(&self.syntax)
11158    }
11159    #[inline]
11160    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11161        support::child(&self.syntax)
11162    }
11163    #[inline]
11164    pub fn is_not(&self) -> Option<IsNot> {
11165        support::child(&self.syntax)
11166    }
11167    #[inline]
11168    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11169        support::child(&self.syntax)
11170    }
11171    #[inline]
11172    pub fn is_not_json(&self) -> Option<IsNotJson> {
11173        support::child(&self.syntax)
11174    }
11175    #[inline]
11176    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11177        support::child(&self.syntax)
11178    }
11179    #[inline]
11180    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11181        support::child(&self.syntax)
11182    }
11183    #[inline]
11184    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11185        support::child(&self.syntax)
11186    }
11187    #[inline]
11188    pub fn lteq(&self) -> Option<Lteq> {
11189        support::child(&self.syntax)
11190    }
11191    #[inline]
11192    pub fn neq(&self) -> Option<Neq> {
11193        support::child(&self.syntax)
11194    }
11195    #[inline]
11196    pub fn neqb(&self) -> Option<Neqb> {
11197        support::child(&self.syntax)
11198    }
11199    #[inline]
11200    pub fn not_ilike(&self) -> Option<NotIlike> {
11201        support::child(&self.syntax)
11202    }
11203    #[inline]
11204    pub fn not_in(&self) -> Option<NotIn> {
11205        support::child(&self.syntax)
11206    }
11207    #[inline]
11208    pub fn not_like(&self) -> Option<NotLike> {
11209        support::child(&self.syntax)
11210    }
11211    #[inline]
11212    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11213        support::child(&self.syntax)
11214    }
11215    #[inline]
11216    pub fn operator_call(&self) -> Option<OperatorCall> {
11217        support::child(&self.syntax)
11218    }
11219    #[inline]
11220    pub fn similar_to(&self) -> Option<SimilarTo> {
11221        support::child(&self.syntax)
11222    }
11223    #[inline]
11224    pub fn percent_token(&self) -> Option<SyntaxToken> {
11225        support::token(&self.syntax, SyntaxKind::PERCENT)
11226    }
11227    #[inline]
11228    pub fn plus_token(&self) -> Option<SyntaxToken> {
11229        support::token(&self.syntax, SyntaxKind::PLUS)
11230    }
11231    #[inline]
11232    pub fn minus_token(&self) -> Option<SyntaxToken> {
11233        support::token(&self.syntax, SyntaxKind::MINUS)
11234    }
11235    #[inline]
11236    pub fn slash_token(&self) -> Option<SyntaxToken> {
11237        support::token(&self.syntax, SyntaxKind::SLASH)
11238    }
11239    #[inline]
11240    pub fn colon_token(&self) -> Option<SyntaxToken> {
11241        support::token(&self.syntax, SyntaxKind::COLON)
11242    }
11243    #[inline]
11244    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11245        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11246    }
11247    #[inline]
11248    pub fn eq_token(&self) -> Option<SyntaxToken> {
11249        support::token(&self.syntax, SyntaxKind::EQ)
11250    }
11251    #[inline]
11252    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11253        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11254    }
11255    #[inline]
11256    pub fn caret_token(&self) -> Option<SyntaxToken> {
11257        support::token(&self.syntax, SyntaxKind::CARET)
11258    }
11259    #[inline]
11260    pub fn and_token(&self) -> Option<SyntaxToken> {
11261        support::token(&self.syntax, SyntaxKind::AND_KW)
11262    }
11263    #[inline]
11264    pub fn collate_token(&self) -> Option<SyntaxToken> {
11265        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11266    }
11267    #[inline]
11268    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11269        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11270    }
11271    #[inline]
11272    pub fn in_token(&self) -> Option<SyntaxToken> {
11273        support::token(&self.syntax, SyntaxKind::IN_KW)
11274    }
11275    #[inline]
11276    pub fn is_token(&self) -> Option<SyntaxToken> {
11277        support::token(&self.syntax, SyntaxKind::IS_KW)
11278    }
11279    #[inline]
11280    pub fn like_token(&self) -> Option<SyntaxToken> {
11281        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11282    }
11283    #[inline]
11284    pub fn or_token(&self) -> Option<SyntaxToken> {
11285        support::token(&self.syntax, SyntaxKind::OR_KW)
11286    }
11287    #[inline]
11288    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11289        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11290    }
11291    #[inline]
11292    pub fn value_token(&self) -> Option<SyntaxToken> {
11293        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11294    }
11295}
11296
11297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11298pub struct OpClassOption {
11299    pub(crate) syntax: SyntaxNode,
11300}
11301impl OpClassOption {
11302    #[inline]
11303    pub fn function_sig(&self) -> Option<FunctionSig> {
11304        support::child(&self.syntax)
11305    }
11306    #[inline]
11307    pub fn literal(&self) -> Option<Literal> {
11308        support::child(&self.syntax)
11309    }
11310    #[inline]
11311    pub fn op(&self) -> Option<Op> {
11312        support::child(&self.syntax)
11313    }
11314    #[inline]
11315    pub fn param_list(&self) -> Option<ParamList> {
11316        support::child(&self.syntax)
11317    }
11318    #[inline]
11319    pub fn path(&self) -> Option<Path> {
11320        support::child(&self.syntax)
11321    }
11322    #[inline]
11323    pub fn ty(&self) -> Option<Type> {
11324        support::child(&self.syntax)
11325    }
11326    #[inline]
11327    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11328        support::token(&self.syntax, SyntaxKind::L_PAREN)
11329    }
11330    #[inline]
11331    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11332        support::token(&self.syntax, SyntaxKind::R_PAREN)
11333    }
11334    #[inline]
11335    pub fn comma_token(&self) -> Option<SyntaxToken> {
11336        support::token(&self.syntax, SyntaxKind::COMMA)
11337    }
11338    #[inline]
11339    pub fn by_token(&self) -> Option<SyntaxToken> {
11340        support::token(&self.syntax, SyntaxKind::BY_KW)
11341    }
11342    #[inline]
11343    pub fn for_token(&self) -> Option<SyntaxToken> {
11344        support::token(&self.syntax, SyntaxKind::FOR_KW)
11345    }
11346    #[inline]
11347    pub fn function_token(&self) -> Option<SyntaxToken> {
11348        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11349    }
11350    #[inline]
11351    pub fn operator_token(&self) -> Option<SyntaxToken> {
11352        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11353    }
11354    #[inline]
11355    pub fn order_token(&self) -> Option<SyntaxToken> {
11356        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11357    }
11358    #[inline]
11359    pub fn search_token(&self) -> Option<SyntaxToken> {
11360        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11361    }
11362    #[inline]
11363    pub fn storage_token(&self) -> Option<SyntaxToken> {
11364        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11365    }
11366}
11367
11368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11369pub struct OpSig {
11370    pub(crate) syntax: SyntaxNode,
11371}
11372impl OpSig {
11373    #[inline]
11374    pub fn op(&self) -> Option<Op> {
11375        support::child(&self.syntax)
11376    }
11377    #[inline]
11378    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11379        support::token(&self.syntax, SyntaxKind::L_PAREN)
11380    }
11381    #[inline]
11382    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11383        support::token(&self.syntax, SyntaxKind::R_PAREN)
11384    }
11385    #[inline]
11386    pub fn comma_token(&self) -> Option<SyntaxToken> {
11387        support::token(&self.syntax, SyntaxKind::COMMA)
11388    }
11389    #[inline]
11390    pub fn none_token(&self) -> Option<SyntaxToken> {
11391        support::token(&self.syntax, SyntaxKind::NONE_KW)
11392    }
11393}
11394
11395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11396pub struct OpSigList {
11397    pub(crate) syntax: SyntaxNode,
11398}
11399impl OpSigList {
11400    #[inline]
11401    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11402        support::children(&self.syntax)
11403    }
11404}
11405
11406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11407pub struct OperatorCall {
11408    pub(crate) syntax: SyntaxNode,
11409}
11410impl OperatorCall {
11411    #[inline]
11412    pub fn op(&self) -> Option<Op> {
11413        support::child(&self.syntax)
11414    }
11415    #[inline]
11416    pub fn path(&self) -> Option<Path> {
11417        support::child(&self.syntax)
11418    }
11419    #[inline]
11420    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11421        support::token(&self.syntax, SyntaxKind::L_PAREN)
11422    }
11423    #[inline]
11424    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11425        support::token(&self.syntax, SyntaxKind::R_PAREN)
11426    }
11427    #[inline]
11428    pub fn dot_token(&self) -> Option<SyntaxToken> {
11429        support::token(&self.syntax, SyntaxKind::DOT)
11430    }
11431    #[inline]
11432    pub fn operator_token(&self) -> Option<SyntaxToken> {
11433        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11434    }
11435}
11436
11437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11438pub struct OperatorClassOptionList {
11439    pub(crate) syntax: SyntaxNode,
11440}
11441impl OperatorClassOptionList {
11442    #[inline]
11443    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11444        support::children(&self.syntax)
11445    }
11446}
11447
11448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11449pub struct OptionItem {
11450    pub(crate) syntax: SyntaxNode,
11451}
11452impl OptionItem {
11453    #[inline]
11454    pub fn expr(&self) -> Option<Expr> {
11455        support::child(&self.syntax)
11456    }
11457    #[inline]
11458    pub fn default_token(&self) -> Option<SyntaxToken> {
11459        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11460    }
11461}
11462
11463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11464pub struct OptionItemList {
11465    pub(crate) syntax: SyntaxNode,
11466}
11467impl OptionItemList {
11468    #[inline]
11469    pub fn option_items(&self) -> AstChildren<OptionItem> {
11470        support::children(&self.syntax)
11471    }
11472    #[inline]
11473    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11474        support::token(&self.syntax, SyntaxKind::L_PAREN)
11475    }
11476    #[inline]
11477    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11478        support::token(&self.syntax, SyntaxKind::R_PAREN)
11479    }
11480}
11481
11482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11483pub struct OrReplace {
11484    pub(crate) syntax: SyntaxNode,
11485}
11486impl OrReplace {
11487    #[inline]
11488    pub fn or_token(&self) -> Option<SyntaxToken> {
11489        support::token(&self.syntax, SyntaxKind::OR_KW)
11490    }
11491    #[inline]
11492    pub fn replace_token(&self) -> Option<SyntaxToken> {
11493        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11494    }
11495}
11496
11497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11498pub struct OrderByClause {
11499    pub(crate) syntax: SyntaxNode,
11500}
11501impl OrderByClause {
11502    #[inline]
11503    pub fn sort_by_list(&self) -> Option<SortByList> {
11504        support::child(&self.syntax)
11505    }
11506    #[inline]
11507    pub fn by_token(&self) -> Option<SyntaxToken> {
11508        support::token(&self.syntax, SyntaxKind::BY_KW)
11509    }
11510    #[inline]
11511    pub fn order_token(&self) -> Option<SyntaxToken> {
11512        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11513    }
11514}
11515
11516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11517pub struct OverClause {
11518    pub(crate) syntax: SyntaxNode,
11519}
11520impl OverClause {
11521    #[inline]
11522    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11523        support::token(&self.syntax, SyntaxKind::L_PAREN)
11524    }
11525    #[inline]
11526    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11527        support::token(&self.syntax, SyntaxKind::R_PAREN)
11528    }
11529    #[inline]
11530    pub fn over_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::OVER_KW)
11532    }
11533}
11534
11535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11536pub struct OverlayFn {
11537    pub(crate) syntax: SyntaxNode,
11538}
11539impl OverlayFn {
11540    #[inline]
11541    pub fn expr(&self) -> Option<Expr> {
11542        support::child(&self.syntax)
11543    }
11544    #[inline]
11545    pub fn exprs(&self) -> AstChildren<Expr> {
11546        support::children(&self.syntax)
11547    }
11548    #[inline]
11549    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11550        support::token(&self.syntax, SyntaxKind::L_PAREN)
11551    }
11552    #[inline]
11553    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11554        support::token(&self.syntax, SyntaxKind::R_PAREN)
11555    }
11556    #[inline]
11557    pub fn for_token(&self) -> Option<SyntaxToken> {
11558        support::token(&self.syntax, SyntaxKind::FOR_KW)
11559    }
11560    #[inline]
11561    pub fn from_token(&self) -> Option<SyntaxToken> {
11562        support::token(&self.syntax, SyntaxKind::FROM_KW)
11563    }
11564    #[inline]
11565    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11566        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11567    }
11568    #[inline]
11569    pub fn placing_token(&self) -> Option<SyntaxToken> {
11570        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11571    }
11572}
11573
11574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11575pub struct OwnerTo {
11576    pub(crate) syntax: SyntaxNode,
11577}
11578impl OwnerTo {
11579    #[inline]
11580    pub fn role(&self) -> Option<Role> {
11581        support::child(&self.syntax)
11582    }
11583    #[inline]
11584    pub fn owner_token(&self) -> Option<SyntaxToken> {
11585        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11586    }
11587    #[inline]
11588    pub fn to_token(&self) -> Option<SyntaxToken> {
11589        support::token(&self.syntax, SyntaxKind::TO_KW)
11590    }
11591}
11592
11593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11594pub struct ParallelFuncOption {
11595    pub(crate) syntax: SyntaxNode,
11596}
11597impl ParallelFuncOption {
11598    #[inline]
11599    pub fn ident_token(&self) -> Option<SyntaxToken> {
11600        support::token(&self.syntax, SyntaxKind::IDENT)
11601    }
11602    #[inline]
11603    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11604        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11605    }
11606}
11607
11608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11609pub struct Param {
11610    pub(crate) syntax: SyntaxNode,
11611}
11612impl Param {
11613    #[inline]
11614    pub fn mode(&self) -> Option<ParamMode> {
11615        support::child(&self.syntax)
11616    }
11617    #[inline]
11618    pub fn name(&self) -> Option<Name> {
11619        support::child(&self.syntax)
11620    }
11621    #[inline]
11622    pub fn param_default(&self) -> Option<ParamDefault> {
11623        support::child(&self.syntax)
11624    }
11625    #[inline]
11626    pub fn ty(&self) -> Option<Type> {
11627        support::child(&self.syntax)
11628    }
11629}
11630
11631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11632pub struct ParamDefault {
11633    pub(crate) syntax: SyntaxNode,
11634}
11635impl ParamDefault {
11636    #[inline]
11637    pub fn expr(&self) -> Option<Expr> {
11638        support::child(&self.syntax)
11639    }
11640    #[inline]
11641    pub fn eq_token(&self) -> Option<SyntaxToken> {
11642        support::token(&self.syntax, SyntaxKind::EQ)
11643    }
11644    #[inline]
11645    pub fn default_token(&self) -> Option<SyntaxToken> {
11646        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11647    }
11648}
11649
11650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11651pub struct ParamIn {
11652    pub(crate) syntax: SyntaxNode,
11653}
11654impl ParamIn {
11655    #[inline]
11656    pub fn in_token(&self) -> Option<SyntaxToken> {
11657        support::token(&self.syntax, SyntaxKind::IN_KW)
11658    }
11659}
11660
11661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11662pub struct ParamInOut {
11663    pub(crate) syntax: SyntaxNode,
11664}
11665impl ParamInOut {
11666    #[inline]
11667    pub fn in_token(&self) -> Option<SyntaxToken> {
11668        support::token(&self.syntax, SyntaxKind::IN_KW)
11669    }
11670    #[inline]
11671    pub fn inout_token(&self) -> Option<SyntaxToken> {
11672        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11673    }
11674    #[inline]
11675    pub fn out_token(&self) -> Option<SyntaxToken> {
11676        support::token(&self.syntax, SyntaxKind::OUT_KW)
11677    }
11678}
11679
11680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11681pub struct ParamList {
11682    pub(crate) syntax: SyntaxNode,
11683}
11684impl ParamList {
11685    #[inline]
11686    pub fn params(&self) -> AstChildren<Param> {
11687        support::children(&self.syntax)
11688    }
11689}
11690
11691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11692pub struct ParamOut {
11693    pub(crate) syntax: SyntaxNode,
11694}
11695impl ParamOut {
11696    #[inline]
11697    pub fn out_token(&self) -> Option<SyntaxToken> {
11698        support::token(&self.syntax, SyntaxKind::OUT_KW)
11699    }
11700}
11701
11702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11703pub struct ParamVariadic {
11704    pub(crate) syntax: SyntaxNode,
11705}
11706impl ParamVariadic {
11707    #[inline]
11708    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11709        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11710    }
11711}
11712
11713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11714pub struct ParenExpr {
11715    pub(crate) syntax: SyntaxNode,
11716}
11717impl ParenExpr {
11718    #[inline]
11719    pub fn expr(&self) -> Option<Expr> {
11720        support::child(&self.syntax)
11721    }
11722    #[inline]
11723    pub fn select(&self) -> Option<Select> {
11724        support::child(&self.syntax)
11725    }
11726    #[inline]
11727    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11728        support::token(&self.syntax, SyntaxKind::L_PAREN)
11729    }
11730    #[inline]
11731    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11732        support::token(&self.syntax, SyntaxKind::R_PAREN)
11733    }
11734}
11735
11736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11737pub struct ParenSelect {
11738    pub(crate) syntax: SyntaxNode,
11739}
11740impl ParenSelect {
11741    #[inline]
11742    pub fn select(&self) -> Option<SelectVariant> {
11743        support::child(&self.syntax)
11744    }
11745    #[inline]
11746    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11747        support::token(&self.syntax, SyntaxKind::L_PAREN)
11748    }
11749    #[inline]
11750    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11751        support::token(&self.syntax, SyntaxKind::R_PAREN)
11752    }
11753}
11754
11755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11756pub struct Partition {
11757    pub(crate) syntax: SyntaxNode,
11758}
11759impl Partition {
11760    #[inline]
11761    pub fn partition_type(&self) -> Option<PartitionType> {
11762        support::child(&self.syntax)
11763    }
11764    #[inline]
11765    pub fn path(&self) -> Option<Path> {
11766        support::child(&self.syntax)
11767    }
11768    #[inline]
11769    pub fn partition_token(&self) -> Option<SyntaxToken> {
11770        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11771    }
11772}
11773
11774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11775pub struct PartitionBy {
11776    pub(crate) syntax: SyntaxNode,
11777}
11778impl PartitionBy {
11779    #[inline]
11780    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11781        support::child(&self.syntax)
11782    }
11783    #[inline]
11784    pub fn by_token(&self) -> Option<SyntaxToken> {
11785        support::token(&self.syntax, SyntaxKind::BY_KW)
11786    }
11787    #[inline]
11788    pub fn ident_token(&self) -> Option<SyntaxToken> {
11789        support::token(&self.syntax, SyntaxKind::IDENT)
11790    }
11791    #[inline]
11792    pub fn partition_token(&self) -> Option<SyntaxToken> {
11793        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11794    }
11795    #[inline]
11796    pub fn range_token(&self) -> Option<SyntaxToken> {
11797        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11798    }
11799}
11800
11801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11802pub struct PartitionDefault {
11803    pub(crate) syntax: SyntaxNode,
11804}
11805impl PartitionDefault {
11806    #[inline]
11807    pub fn default_token(&self) -> Option<SyntaxToken> {
11808        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11809    }
11810}
11811
11812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11813pub struct PartitionForValuesFrom {
11814    pub(crate) syntax: SyntaxNode,
11815}
11816impl PartitionForValuesFrom {
11817    #[inline]
11818    pub fn exprs(&self) -> AstChildren<Expr> {
11819        support::children(&self.syntax)
11820    }
11821    #[inline]
11822    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11823        support::token(&self.syntax, SyntaxKind::L_PAREN)
11824    }
11825    #[inline]
11826    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11827        support::token(&self.syntax, SyntaxKind::R_PAREN)
11828    }
11829    #[inline]
11830    pub fn for_token(&self) -> Option<SyntaxToken> {
11831        support::token(&self.syntax, SyntaxKind::FOR_KW)
11832    }
11833    #[inline]
11834    pub fn from_token(&self) -> Option<SyntaxToken> {
11835        support::token(&self.syntax, SyntaxKind::FROM_KW)
11836    }
11837    #[inline]
11838    pub fn to_token(&self) -> Option<SyntaxToken> {
11839        support::token(&self.syntax, SyntaxKind::TO_KW)
11840    }
11841    #[inline]
11842    pub fn values_token(&self) -> Option<SyntaxToken> {
11843        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11844    }
11845}
11846
11847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11848pub struct PartitionForValuesIn {
11849    pub(crate) syntax: SyntaxNode,
11850}
11851impl PartitionForValuesIn {
11852    #[inline]
11853    pub fn exprs(&self) -> AstChildren<Expr> {
11854        support::children(&self.syntax)
11855    }
11856    #[inline]
11857    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11858        support::token(&self.syntax, SyntaxKind::L_PAREN)
11859    }
11860    #[inline]
11861    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11862        support::token(&self.syntax, SyntaxKind::R_PAREN)
11863    }
11864    #[inline]
11865    pub fn for_token(&self) -> Option<SyntaxToken> {
11866        support::token(&self.syntax, SyntaxKind::FOR_KW)
11867    }
11868    #[inline]
11869    pub fn in_token(&self) -> Option<SyntaxToken> {
11870        support::token(&self.syntax, SyntaxKind::IN_KW)
11871    }
11872    #[inline]
11873    pub fn values_token(&self) -> Option<SyntaxToken> {
11874        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11875    }
11876}
11877
11878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11879pub struct PartitionForValuesWith {
11880    pub(crate) syntax: SyntaxNode,
11881}
11882impl PartitionForValuesWith {
11883    #[inline]
11884    pub fn literal(&self) -> Option<Literal> {
11885        support::child(&self.syntax)
11886    }
11887    #[inline]
11888    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11889        support::token(&self.syntax, SyntaxKind::L_PAREN)
11890    }
11891    #[inline]
11892    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11893        support::token(&self.syntax, SyntaxKind::R_PAREN)
11894    }
11895    #[inline]
11896    pub fn comma_token(&self) -> Option<SyntaxToken> {
11897        support::token(&self.syntax, SyntaxKind::COMMA)
11898    }
11899    #[inline]
11900    pub fn for_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::FOR_KW)
11902    }
11903    #[inline]
11904    pub fn ident_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::IDENT)
11906    }
11907    #[inline]
11908    pub fn values_token(&self) -> Option<SyntaxToken> {
11909        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11910    }
11911    #[inline]
11912    pub fn with_token(&self) -> Option<SyntaxToken> {
11913        support::token(&self.syntax, SyntaxKind::WITH_KW)
11914    }
11915}
11916
11917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11918pub struct PartitionItem {
11919    pub(crate) syntax: SyntaxNode,
11920}
11921impl PartitionItem {
11922    #[inline]
11923    pub fn collate(&self) -> Option<Collate> {
11924        support::child(&self.syntax)
11925    }
11926    #[inline]
11927    pub fn expr(&self) -> Option<Expr> {
11928        support::child(&self.syntax)
11929    }
11930}
11931
11932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11933pub struct PartitionItemList {
11934    pub(crate) syntax: SyntaxNode,
11935}
11936impl PartitionItemList {
11937    #[inline]
11938    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
11939        support::children(&self.syntax)
11940    }
11941    #[inline]
11942    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11943        support::token(&self.syntax, SyntaxKind::L_PAREN)
11944    }
11945    #[inline]
11946    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11947        support::token(&self.syntax, SyntaxKind::R_PAREN)
11948    }
11949}
11950
11951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11952pub struct PartitionList {
11953    pub(crate) syntax: SyntaxNode,
11954}
11955impl PartitionList {
11956    #[inline]
11957    pub fn partitions(&self) -> AstChildren<Partition> {
11958        support::children(&self.syntax)
11959    }
11960    #[inline]
11961    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11962        support::token(&self.syntax, SyntaxKind::L_PAREN)
11963    }
11964    #[inline]
11965    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11966        support::token(&self.syntax, SyntaxKind::R_PAREN)
11967    }
11968}
11969
11970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11971pub struct PartitionOf {
11972    pub(crate) syntax: SyntaxNode,
11973}
11974impl PartitionOf {
11975    #[inline]
11976    pub fn ty(&self) -> Option<Type> {
11977        support::child(&self.syntax)
11978    }
11979    #[inline]
11980    pub fn of_token(&self) -> Option<SyntaxToken> {
11981        support::token(&self.syntax, SyntaxKind::OF_KW)
11982    }
11983    #[inline]
11984    pub fn partition_token(&self) -> Option<SyntaxToken> {
11985        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11986    }
11987}
11988
11989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11990pub struct Path {
11991    pub(crate) syntax: SyntaxNode,
11992}
11993impl Path {
11994    #[inline]
11995    pub fn qualifier(&self) -> Option<Path> {
11996        support::child(&self.syntax)
11997    }
11998    #[inline]
11999    pub fn segment(&self) -> Option<PathSegment> {
12000        support::child(&self.syntax)
12001    }
12002    #[inline]
12003    pub fn dot_token(&self) -> Option<SyntaxToken> {
12004        support::token(&self.syntax, SyntaxKind::DOT)
12005    }
12006}
12007
12008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12009pub struct PathSegment {
12010    pub(crate) syntax: SyntaxNode,
12011}
12012impl PathSegment {
12013    #[inline]
12014    pub fn name(&self) -> Option<Name> {
12015        support::child(&self.syntax)
12016    }
12017    #[inline]
12018    pub fn name_ref(&self) -> Option<NameRef> {
12019        support::child(&self.syntax)
12020    }
12021}
12022
12023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12024pub struct PathType {
12025    pub(crate) syntax: SyntaxNode,
12026}
12027impl PathType {
12028    #[inline]
12029    pub fn arg_list(&self) -> Option<ArgList> {
12030        support::child(&self.syntax)
12031    }
12032    #[inline]
12033    pub fn path(&self) -> Option<Path> {
12034        support::child(&self.syntax)
12035    }
12036}
12037
12038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12039pub struct PercentType {
12040    pub(crate) syntax: SyntaxNode,
12041}
12042impl PercentType {
12043    #[inline]
12044    pub fn percent_token(&self) -> Option<SyntaxToken> {
12045        support::token(&self.syntax, SyntaxKind::PERCENT)
12046    }
12047    #[inline]
12048    pub fn type_token(&self) -> Option<SyntaxToken> {
12049        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12050    }
12051}
12052
12053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12054pub struct PercentTypeClause {
12055    pub(crate) syntax: SyntaxNode,
12056}
12057impl PercentTypeClause {
12058    #[inline]
12059    pub fn path(&self) -> Option<Path> {
12060        support::child(&self.syntax)
12061    }
12062    #[inline]
12063    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12064        support::child(&self.syntax)
12065    }
12066}
12067
12068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12069pub struct PositionFn {
12070    pub(crate) syntax: SyntaxNode,
12071}
12072impl PositionFn {
12073    #[inline]
12074    pub fn expr(&self) -> Option<Expr> {
12075        support::child(&self.syntax)
12076    }
12077    #[inline]
12078    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12079        support::token(&self.syntax, SyntaxKind::L_PAREN)
12080    }
12081    #[inline]
12082    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12083        support::token(&self.syntax, SyntaxKind::R_PAREN)
12084    }
12085    #[inline]
12086    pub fn in_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::IN_KW)
12088    }
12089    #[inline]
12090    pub fn position_token(&self) -> Option<SyntaxToken> {
12091        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12092    }
12093}
12094
12095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12096pub struct PostfixExpr {
12097    pub(crate) syntax: SyntaxNode,
12098}
12099impl PostfixExpr {
12100    #[inline]
12101    pub fn expr(&self) -> Option<Expr> {
12102        support::child(&self.syntax)
12103    }
12104}
12105
12106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12107pub struct PrefixExpr {
12108    pub(crate) syntax: SyntaxNode,
12109}
12110impl PrefixExpr {
12111    #[inline]
12112    pub fn expr(&self) -> Option<Expr> {
12113        support::child(&self.syntax)
12114    }
12115}
12116
12117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12118pub struct Prepare {
12119    pub(crate) syntax: SyntaxNode,
12120}
12121impl Prepare {
12122    #[inline]
12123    pub fn name(&self) -> Option<Name> {
12124        support::child(&self.syntax)
12125    }
12126    #[inline]
12127    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12128        support::child(&self.syntax)
12129    }
12130    #[inline]
12131    pub fn as_token(&self) -> Option<SyntaxToken> {
12132        support::token(&self.syntax, SyntaxKind::AS_KW)
12133    }
12134    #[inline]
12135    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12136        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12137    }
12138}
12139
12140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12141pub struct PrepareTransaction {
12142    pub(crate) syntax: SyntaxNode,
12143}
12144impl PrepareTransaction {
12145    #[inline]
12146    pub fn literal(&self) -> Option<Literal> {
12147        support::child(&self.syntax)
12148    }
12149    #[inline]
12150    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12151        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12152    }
12153    #[inline]
12154    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12155        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12156    }
12157}
12158
12159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12160pub struct PreserveRows {
12161    pub(crate) syntax: SyntaxNode,
12162}
12163impl PreserveRows {
12164    #[inline]
12165    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12166        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12167    }
12168    #[inline]
12169    pub fn rows_token(&self) -> Option<SyntaxToken> {
12170        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12171    }
12172}
12173
12174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12175pub struct PrimaryKeyConstraint {
12176    pub(crate) syntax: SyntaxNode,
12177}
12178impl PrimaryKeyConstraint {
12179    #[inline]
12180    pub fn column_list(&self) -> Option<ColumnList> {
12181        support::child(&self.syntax)
12182    }
12183    #[inline]
12184    pub fn name(&self) -> Option<Name> {
12185        support::child(&self.syntax)
12186    }
12187    #[inline]
12188    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12189        support::child(&self.syntax)
12190    }
12191    #[inline]
12192    pub fn using_index(&self) -> Option<UsingIndex> {
12193        support::child(&self.syntax)
12194    }
12195    #[inline]
12196    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12197        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12198    }
12199    #[inline]
12200    pub fn key_token(&self) -> Option<SyntaxToken> {
12201        support::token(&self.syntax, SyntaxKind::KEY_KW)
12202    }
12203    #[inline]
12204    pub fn primary_token(&self) -> Option<SyntaxToken> {
12205        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12206    }
12207}
12208
12209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12210pub struct PrivilegeTarget {
12211    pub(crate) syntax: SyntaxNode,
12212}
12213impl PrivilegeTarget {
12214    #[inline]
12215    pub fn functions_token(&self) -> Option<SyntaxToken> {
12216        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12217    }
12218    #[inline]
12219    pub fn large_token(&self) -> Option<SyntaxToken> {
12220        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12221    }
12222    #[inline]
12223    pub fn objects_token(&self) -> Option<SyntaxToken> {
12224        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12225    }
12226    #[inline]
12227    pub fn routines_token(&self) -> Option<SyntaxToken> {
12228        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12229    }
12230    #[inline]
12231    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12232        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12233    }
12234    #[inline]
12235    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12237    }
12238    #[inline]
12239    pub fn tables_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12241    }
12242    #[inline]
12243    pub fn types_token(&self) -> Option<SyntaxToken> {
12244        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12245    }
12246}
12247
12248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12249pub struct Privileges {
12250    pub(crate) syntax: SyntaxNode,
12251}
12252impl Privileges {
12253    #[inline]
12254    pub fn column_list(&self) -> Option<ColumnList> {
12255        support::child(&self.syntax)
12256    }
12257    #[inline]
12258    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12259        support::child(&self.syntax)
12260    }
12261    #[inline]
12262    pub fn all_token(&self) -> Option<SyntaxToken> {
12263        support::token(&self.syntax, SyntaxKind::ALL_KW)
12264    }
12265    #[inline]
12266    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12267        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12268    }
12269}
12270
12271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12272pub struct PublicationObject {
12273    pub(crate) syntax: SyntaxNode,
12274}
12275impl PublicationObject {
12276    #[inline]
12277    pub fn column_list(&self) -> Option<ColumnList> {
12278        support::child(&self.syntax)
12279    }
12280    #[inline]
12281    pub fn name_ref(&self) -> Option<NameRef> {
12282        support::child(&self.syntax)
12283    }
12284    #[inline]
12285    pub fn path(&self) -> Option<Path> {
12286        support::child(&self.syntax)
12287    }
12288    #[inline]
12289    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12290        support::child(&self.syntax)
12291    }
12292    #[inline]
12293    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12294        support::token(&self.syntax, SyntaxKind::L_PAREN)
12295    }
12296    #[inline]
12297    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12298        support::token(&self.syntax, SyntaxKind::R_PAREN)
12299    }
12300    #[inline]
12301    pub fn star_token(&self) -> Option<SyntaxToken> {
12302        support::token(&self.syntax, SyntaxKind::STAR)
12303    }
12304    #[inline]
12305    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12306        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12307    }
12308    #[inline]
12309    pub fn in_token(&self) -> Option<SyntaxToken> {
12310        support::token(&self.syntax, SyntaxKind::IN_KW)
12311    }
12312    #[inline]
12313    pub fn only_token(&self) -> Option<SyntaxToken> {
12314        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12315    }
12316    #[inline]
12317    pub fn schema_token(&self) -> Option<SyntaxToken> {
12318        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12319    }
12320    #[inline]
12321    pub fn table_token(&self) -> Option<SyntaxToken> {
12322        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12323    }
12324    #[inline]
12325    pub fn tables_token(&self) -> Option<SyntaxToken> {
12326        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12327    }
12328}
12329
12330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12331pub struct ReadCommitted {
12332    pub(crate) syntax: SyntaxNode,
12333}
12334impl ReadCommitted {
12335    #[inline]
12336    pub fn committed_token(&self) -> Option<SyntaxToken> {
12337        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12338    }
12339    #[inline]
12340    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12341        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12342    }
12343    #[inline]
12344    pub fn level_token(&self) -> Option<SyntaxToken> {
12345        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12346    }
12347    #[inline]
12348    pub fn read_token(&self) -> Option<SyntaxToken> {
12349        support::token(&self.syntax, SyntaxKind::READ_KW)
12350    }
12351}
12352
12353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12354pub struct ReadOnly {
12355    pub(crate) syntax: SyntaxNode,
12356}
12357impl ReadOnly {
12358    #[inline]
12359    pub fn only_token(&self) -> Option<SyntaxToken> {
12360        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12361    }
12362    #[inline]
12363    pub fn read_token(&self) -> Option<SyntaxToken> {
12364        support::token(&self.syntax, SyntaxKind::READ_KW)
12365    }
12366}
12367
12368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12369pub struct ReadUncommitted {
12370    pub(crate) syntax: SyntaxNode,
12371}
12372impl ReadUncommitted {
12373    #[inline]
12374    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12375        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12376    }
12377    #[inline]
12378    pub fn level_token(&self) -> Option<SyntaxToken> {
12379        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12380    }
12381    #[inline]
12382    pub fn read_token(&self) -> Option<SyntaxToken> {
12383        support::token(&self.syntax, SyntaxKind::READ_KW)
12384    }
12385    #[inline]
12386    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12387        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12388    }
12389}
12390
12391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12392pub struct ReadWrite {
12393    pub(crate) syntax: SyntaxNode,
12394}
12395impl ReadWrite {
12396    #[inline]
12397    pub fn read_token(&self) -> Option<SyntaxToken> {
12398        support::token(&self.syntax, SyntaxKind::READ_KW)
12399    }
12400    #[inline]
12401    pub fn write_token(&self) -> Option<SyntaxToken> {
12402        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12403    }
12404}
12405
12406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12407pub struct Reassign {
12408    pub(crate) syntax: SyntaxNode,
12409}
12410impl Reassign {
12411    #[inline]
12412    pub fn new_roles(&self) -> Option<RoleList> {
12413        support::child(&self.syntax)
12414    }
12415    #[inline]
12416    pub fn old_roles(&self) -> Option<RoleList> {
12417        support::child(&self.syntax)
12418    }
12419    #[inline]
12420    pub fn by_token(&self) -> Option<SyntaxToken> {
12421        support::token(&self.syntax, SyntaxKind::BY_KW)
12422    }
12423    #[inline]
12424    pub fn owned_token(&self) -> Option<SyntaxToken> {
12425        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12426    }
12427    #[inline]
12428    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12429        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12430    }
12431    #[inline]
12432    pub fn to_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::TO_KW)
12434    }
12435}
12436
12437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12438pub struct ReferencesConstraint {
12439    pub(crate) syntax: SyntaxNode,
12440}
12441impl ReferencesConstraint {
12442    #[inline]
12443    pub fn match_type(&self) -> Option<MatchType> {
12444        support::child(&self.syntax)
12445    }
12446    #[inline]
12447    pub fn name(&self) -> Option<Name> {
12448        support::child(&self.syntax)
12449    }
12450    #[inline]
12451    pub fn name_ref(&self) -> Option<NameRef> {
12452        support::child(&self.syntax)
12453    }
12454    #[inline]
12455    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12456        support::child(&self.syntax)
12457    }
12458    #[inline]
12459    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12460        support::child(&self.syntax)
12461    }
12462    #[inline]
12463    pub fn path(&self) -> Option<Path> {
12464        support::child(&self.syntax)
12465    }
12466    #[inline]
12467    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12468        support::token(&self.syntax, SyntaxKind::L_PAREN)
12469    }
12470    #[inline]
12471    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12472        support::token(&self.syntax, SyntaxKind::R_PAREN)
12473    }
12474    #[inline]
12475    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12476        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12477    }
12478    #[inline]
12479    pub fn references_token(&self) -> Option<SyntaxToken> {
12480        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12481    }
12482}
12483
12484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12485pub struct Referencing {
12486    pub(crate) syntax: SyntaxNode,
12487}
12488impl Referencing {
12489    #[inline]
12490    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12491        support::children(&self.syntax)
12492    }
12493    #[inline]
12494    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12495        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12496    }
12497}
12498
12499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12500pub struct ReferencingTable {
12501    pub(crate) syntax: SyntaxNode,
12502}
12503impl ReferencingTable {
12504    #[inline]
12505    pub fn name_ref(&self) -> Option<NameRef> {
12506        support::child(&self.syntax)
12507    }
12508    #[inline]
12509    pub fn as_token(&self) -> Option<SyntaxToken> {
12510        support::token(&self.syntax, SyntaxKind::AS_KW)
12511    }
12512    #[inline]
12513    pub fn new_token(&self) -> Option<SyntaxToken> {
12514        support::token(&self.syntax, SyntaxKind::NEW_KW)
12515    }
12516    #[inline]
12517    pub fn old_token(&self) -> Option<SyntaxToken> {
12518        support::token(&self.syntax, SyntaxKind::OLD_KW)
12519    }
12520    #[inline]
12521    pub fn table_token(&self) -> Option<SyntaxToken> {
12522        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12523    }
12524}
12525
12526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12527pub struct Refresh {
12528    pub(crate) syntax: SyntaxNode,
12529}
12530impl Refresh {
12531    #[inline]
12532    pub fn path(&self) -> Option<Path> {
12533        support::child(&self.syntax)
12534    }
12535    #[inline]
12536    pub fn with_data(&self) -> Option<WithData> {
12537        support::child(&self.syntax)
12538    }
12539    #[inline]
12540    pub fn with_no_data(&self) -> Option<WithNoData> {
12541        support::child(&self.syntax)
12542    }
12543    #[inline]
12544    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12545        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12546    }
12547    #[inline]
12548    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12549        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12550    }
12551    #[inline]
12552    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12553        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12554    }
12555    #[inline]
12556    pub fn view_token(&self) -> Option<SyntaxToken> {
12557        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12558    }
12559}
12560
12561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12562pub struct RefreshCollationVersion {
12563    pub(crate) syntax: SyntaxNode,
12564}
12565impl RefreshCollationVersion {
12566    #[inline]
12567    pub fn collation_token(&self) -> Option<SyntaxToken> {
12568        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12569    }
12570    #[inline]
12571    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12572        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12573    }
12574    #[inline]
12575    pub fn version_token(&self) -> Option<SyntaxToken> {
12576        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12577    }
12578}
12579
12580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12581pub struct RefreshVersion {
12582    pub(crate) syntax: SyntaxNode,
12583}
12584impl RefreshVersion {
12585    #[inline]
12586    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12587        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12588    }
12589    #[inline]
12590    pub fn version_token(&self) -> Option<SyntaxToken> {
12591        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12592    }
12593}
12594
12595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12596pub struct Reindex {
12597    pub(crate) syntax: SyntaxNode,
12598}
12599impl Reindex {
12600    #[inline]
12601    pub fn path(&self) -> Option<Path> {
12602        support::child(&self.syntax)
12603    }
12604    #[inline]
12605    pub fn database_token(&self) -> Option<SyntaxToken> {
12606        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12607    }
12608    #[inline]
12609    pub fn index_token(&self) -> Option<SyntaxToken> {
12610        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12611    }
12612    #[inline]
12613    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12614        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12615    }
12616    #[inline]
12617    pub fn schema_token(&self) -> Option<SyntaxToken> {
12618        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12619    }
12620    #[inline]
12621    pub fn system_token(&self) -> Option<SyntaxToken> {
12622        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12623    }
12624    #[inline]
12625    pub fn table_token(&self) -> Option<SyntaxToken> {
12626        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12627    }
12628}
12629
12630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12631pub struct RelationName {
12632    pub(crate) syntax: SyntaxNode,
12633}
12634impl RelationName {
12635    #[inline]
12636    pub fn path(&self) -> Option<Path> {
12637        support::child(&self.syntax)
12638    }
12639    #[inline]
12640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12641        support::token(&self.syntax, SyntaxKind::L_PAREN)
12642    }
12643    #[inline]
12644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12645        support::token(&self.syntax, SyntaxKind::R_PAREN)
12646    }
12647    #[inline]
12648    pub fn star_token(&self) -> Option<SyntaxToken> {
12649        support::token(&self.syntax, SyntaxKind::STAR)
12650    }
12651    #[inline]
12652    pub fn only_token(&self) -> Option<SyntaxToken> {
12653        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12654    }
12655}
12656
12657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12658pub struct ReleaseSavepoint {
12659    pub(crate) syntax: SyntaxNode,
12660}
12661impl ReleaseSavepoint {
12662    #[inline]
12663    pub fn name_ref(&self) -> Option<NameRef> {
12664        support::child(&self.syntax)
12665    }
12666    #[inline]
12667    pub fn release_token(&self) -> Option<SyntaxToken> {
12668        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12669    }
12670    #[inline]
12671    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12672        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12673    }
12674}
12675
12676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12677pub struct RenameColumn {
12678    pub(crate) syntax: SyntaxNode,
12679}
12680impl RenameColumn {
12681    #[inline]
12682    pub fn column_token(&self) -> Option<SyntaxToken> {
12683        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12684    }
12685    #[inline]
12686    pub fn rename_token(&self) -> Option<SyntaxToken> {
12687        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12688    }
12689    #[inline]
12690    pub fn to_token(&self) -> Option<SyntaxToken> {
12691        support::token(&self.syntax, SyntaxKind::TO_KW)
12692    }
12693}
12694
12695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12696pub struct RenameConstraint {
12697    pub(crate) syntax: SyntaxNode,
12698}
12699impl RenameConstraint {
12700    #[inline]
12701    pub fn name(&self) -> Option<Name> {
12702        support::child(&self.syntax)
12703    }
12704    #[inline]
12705    pub fn name_ref(&self) -> Option<NameRef> {
12706        support::child(&self.syntax)
12707    }
12708    #[inline]
12709    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12710        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12711    }
12712    #[inline]
12713    pub fn rename_token(&self) -> Option<SyntaxToken> {
12714        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12715    }
12716    #[inline]
12717    pub fn to_token(&self) -> Option<SyntaxToken> {
12718        support::token(&self.syntax, SyntaxKind::TO_KW)
12719    }
12720}
12721
12722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12723pub struct RenameTo {
12724    pub(crate) syntax: SyntaxNode,
12725}
12726impl RenameTo {
12727    #[inline]
12728    pub fn name(&self) -> Option<Name> {
12729        support::child(&self.syntax)
12730    }
12731    #[inline]
12732    pub fn rename_token(&self) -> Option<SyntaxToken> {
12733        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12734    }
12735    #[inline]
12736    pub fn to_token(&self) -> Option<SyntaxToken> {
12737        support::token(&self.syntax, SyntaxKind::TO_KW)
12738    }
12739}
12740
12741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12742pub struct RepeatableClause {
12743    pub(crate) syntax: SyntaxNode,
12744}
12745impl RepeatableClause {
12746    #[inline]
12747    pub fn expr(&self) -> Option<Expr> {
12748        support::child(&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 repeatable_token(&self) -> Option<SyntaxToken> {
12760        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12761    }
12762}
12763
12764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12765pub struct RepeatableRead {
12766    pub(crate) syntax: SyntaxNode,
12767}
12768impl RepeatableRead {
12769    #[inline]
12770    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12771        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12772    }
12773    #[inline]
12774    pub fn level_token(&self) -> Option<SyntaxToken> {
12775        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12776    }
12777    #[inline]
12778    pub fn read_token(&self) -> Option<SyntaxToken> {
12779        support::token(&self.syntax, SyntaxKind::READ_KW)
12780    }
12781    #[inline]
12782    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12783        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12784    }
12785}
12786
12787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12788pub struct ReplicaIdentity {
12789    pub(crate) syntax: SyntaxNode,
12790}
12791impl ReplicaIdentity {
12792    #[inline]
12793    pub fn identity_token(&self) -> Option<SyntaxToken> {
12794        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
12795    }
12796    #[inline]
12797    pub fn replica_token(&self) -> Option<SyntaxToken> {
12798        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
12799    }
12800}
12801
12802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12803pub struct Reset {
12804    pub(crate) syntax: SyntaxNode,
12805}
12806impl Reset {
12807    #[inline]
12808    pub fn name_ref(&self) -> Option<NameRef> {
12809        support::child(&self.syntax)
12810    }
12811    #[inline]
12812    pub fn all_token(&self) -> Option<SyntaxToken> {
12813        support::token(&self.syntax, SyntaxKind::ALL_KW)
12814    }
12815    #[inline]
12816    pub fn reset_token(&self) -> Option<SyntaxToken> {
12817        support::token(&self.syntax, SyntaxKind::RESET_KW)
12818    }
12819}
12820
12821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12822pub struct ResetConfigParam {
12823    pub(crate) syntax: SyntaxNode,
12824}
12825impl ResetConfigParam {
12826    #[inline]
12827    pub fn path(&self) -> Option<Path> {
12828        support::child(&self.syntax)
12829    }
12830    #[inline]
12831    pub fn all_token(&self) -> Option<SyntaxToken> {
12832        support::token(&self.syntax, SyntaxKind::ALL_KW)
12833    }
12834    #[inline]
12835    pub fn reset_token(&self) -> Option<SyntaxToken> {
12836        support::token(&self.syntax, SyntaxKind::RESET_KW)
12837    }
12838}
12839
12840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12841pub struct ResetFuncOption {
12842    pub(crate) syntax: SyntaxNode,
12843}
12844impl ResetFuncOption {
12845    #[inline]
12846    pub fn name_ref(&self) -> Option<NameRef> {
12847        support::child(&self.syntax)
12848    }
12849    #[inline]
12850    pub fn reset_token(&self) -> Option<SyntaxToken> {
12851        support::token(&self.syntax, SyntaxKind::RESET_KW)
12852    }
12853}
12854
12855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12856pub struct ResetOptions {
12857    pub(crate) syntax: SyntaxNode,
12858}
12859impl ResetOptions {
12860    #[inline]
12861    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12862        support::token(&self.syntax, SyntaxKind::L_PAREN)
12863    }
12864    #[inline]
12865    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12866        support::token(&self.syntax, SyntaxKind::R_PAREN)
12867    }
12868    #[inline]
12869    pub fn reset_token(&self) -> Option<SyntaxToken> {
12870        support::token(&self.syntax, SyntaxKind::RESET_KW)
12871    }
12872}
12873
12874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12875pub struct ResetSessionAuth {
12876    pub(crate) syntax: SyntaxNode,
12877}
12878impl ResetSessionAuth {
12879    #[inline]
12880    pub fn authorization_token(&self) -> Option<SyntaxToken> {
12881        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
12882    }
12883    #[inline]
12884    pub fn reset_token(&self) -> Option<SyntaxToken> {
12885        support::token(&self.syntax, SyntaxKind::RESET_KW)
12886    }
12887    #[inline]
12888    pub fn session_token(&self) -> Option<SyntaxToken> {
12889        support::token(&self.syntax, SyntaxKind::SESSION_KW)
12890    }
12891}
12892
12893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12894pub struct Restart {
12895    pub(crate) syntax: SyntaxNode,
12896}
12897impl Restart {
12898    #[inline]
12899    pub fn restart_token(&self) -> Option<SyntaxToken> {
12900        support::token(&self.syntax, SyntaxKind::RESTART_KW)
12901    }
12902    #[inline]
12903    pub fn with_token(&self) -> Option<SyntaxToken> {
12904        support::token(&self.syntax, SyntaxKind::WITH_KW)
12905    }
12906}
12907
12908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12909pub struct Restrict {
12910    pub(crate) syntax: SyntaxNode,
12911}
12912impl Restrict {
12913    #[inline]
12914    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12915        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12916    }
12917}
12918
12919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12920pub struct RetType {
12921    pub(crate) syntax: SyntaxNode,
12922}
12923impl RetType {
12924    #[inline]
12925    pub fn ty(&self) -> Option<Type> {
12926        support::child(&self.syntax)
12927    }
12928    #[inline]
12929    pub fn returns_token(&self) -> Option<SyntaxToken> {
12930        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
12931    }
12932}
12933
12934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12935pub struct ReturnFuncOption {
12936    pub(crate) syntax: SyntaxNode,
12937}
12938impl ReturnFuncOption {
12939    #[inline]
12940    pub fn expr(&self) -> Option<Expr> {
12941        support::child(&self.syntax)
12942    }
12943    #[inline]
12944    pub fn return_token(&self) -> Option<SyntaxToken> {
12945        support::token(&self.syntax, SyntaxKind::RETURN_KW)
12946    }
12947}
12948
12949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12950pub struct ReturningClause {
12951    pub(crate) syntax: SyntaxNode,
12952}
12953impl ReturningClause {
12954    #[inline]
12955    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
12956        support::child(&self.syntax)
12957    }
12958    #[inline]
12959    pub fn target_list(&self) -> Option<TargetList> {
12960        support::child(&self.syntax)
12961    }
12962    #[inline]
12963    pub fn returning_token(&self) -> Option<SyntaxToken> {
12964        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
12965    }
12966}
12967
12968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12969pub struct ReturningOption {
12970    pub(crate) syntax: SyntaxNode,
12971}
12972impl ReturningOption {
12973    #[inline]
12974    pub fn name(&self) -> Option<Name> {
12975        support::child(&self.syntax)
12976    }
12977    #[inline]
12978    pub fn as_token(&self) -> Option<SyntaxToken> {
12979        support::token(&self.syntax, SyntaxKind::AS_KW)
12980    }
12981    #[inline]
12982    pub fn new_token(&self) -> Option<SyntaxToken> {
12983        support::token(&self.syntax, SyntaxKind::NEW_KW)
12984    }
12985    #[inline]
12986    pub fn old_token(&self) -> Option<SyntaxToken> {
12987        support::token(&self.syntax, SyntaxKind::OLD_KW)
12988    }
12989}
12990
12991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12992pub struct ReturningOptionList {
12993    pub(crate) syntax: SyntaxNode,
12994}
12995impl ReturningOptionList {
12996    #[inline]
12997    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
12998        support::children(&self.syntax)
12999    }
13000    #[inline]
13001    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13002        support::token(&self.syntax, SyntaxKind::L_PAREN)
13003    }
13004    #[inline]
13005    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13006        support::token(&self.syntax, SyntaxKind::R_PAREN)
13007    }
13008    #[inline]
13009    pub fn with_token(&self) -> Option<SyntaxToken> {
13010        support::token(&self.syntax, SyntaxKind::WITH_KW)
13011    }
13012}
13013
13014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13015pub struct Revoke {
13016    pub(crate) syntax: SyntaxNode,
13017}
13018impl Revoke {
13019    #[inline]
13020    pub fn name_refs(&self) -> AstChildren<NameRef> {
13021        support::children(&self.syntax)
13022    }
13023    #[inline]
13024    pub fn paths(&self) -> AstChildren<Path> {
13025        support::children(&self.syntax)
13026    }
13027    #[inline]
13028    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13029        support::child(&self.syntax)
13030    }
13031    #[inline]
13032    pub fn role(&self) -> Option<Role> {
13033        support::child(&self.syntax)
13034    }
13035    #[inline]
13036    pub fn role_list(&self) -> Option<RoleList> {
13037        support::child(&self.syntax)
13038    }
13039    #[inline]
13040    pub fn all_token(&self) -> Option<SyntaxToken> {
13041        support::token(&self.syntax, SyntaxKind::ALL_KW)
13042    }
13043    #[inline]
13044    pub fn by_token(&self) -> Option<SyntaxToken> {
13045        support::token(&self.syntax, SyntaxKind::BY_KW)
13046    }
13047    #[inline]
13048    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13049        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13050    }
13051    #[inline]
13052    pub fn for_token(&self) -> Option<SyntaxToken> {
13053        support::token(&self.syntax, SyntaxKind::FOR_KW)
13054    }
13055    #[inline]
13056    pub fn from_token(&self) -> Option<SyntaxToken> {
13057        support::token(&self.syntax, SyntaxKind::FROM_KW)
13058    }
13059    #[inline]
13060    pub fn grant_token(&self) -> Option<SyntaxToken> {
13061        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13062    }
13063    #[inline]
13064    pub fn granted_token(&self) -> Option<SyntaxToken> {
13065        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13066    }
13067    #[inline]
13068    pub fn in_token(&self) -> Option<SyntaxToken> {
13069        support::token(&self.syntax, SyntaxKind::IN_KW)
13070    }
13071    #[inline]
13072    pub fn on_token(&self) -> Option<SyntaxToken> {
13073        support::token(&self.syntax, SyntaxKind::ON_KW)
13074    }
13075    #[inline]
13076    pub fn option_token(&self) -> Option<SyntaxToken> {
13077        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13078    }
13079    #[inline]
13080    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13081        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13082    }
13083    #[inline]
13084    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13085        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13086    }
13087    #[inline]
13088    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13089        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13090    }
13091    #[inline]
13092    pub fn schema_token(&self) -> Option<SyntaxToken> {
13093        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13094    }
13095    #[inline]
13096    pub fn table_token(&self) -> Option<SyntaxToken> {
13097        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13098    }
13099    #[inline]
13100    pub fn tables_token(&self) -> Option<SyntaxToken> {
13101        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13102    }
13103}
13104
13105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13106pub struct RevokeCommand {
13107    pub(crate) syntax: SyntaxNode,
13108}
13109impl RevokeCommand {
13110    #[inline]
13111    pub fn role(&self) -> Option<Role> {
13112        support::child(&self.syntax)
13113    }
13114    #[inline]
13115    pub fn all_token(&self) -> Option<SyntaxToken> {
13116        support::token(&self.syntax, SyntaxKind::ALL_KW)
13117    }
13118    #[inline]
13119    pub fn alter_token(&self) -> Option<SyntaxToken> {
13120        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13121    }
13122    #[inline]
13123    pub fn create_token(&self) -> Option<SyntaxToken> {
13124        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13125    }
13126    #[inline]
13127    pub fn delete_token(&self) -> Option<SyntaxToken> {
13128        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13129    }
13130    #[inline]
13131    pub fn execute_token(&self) -> Option<SyntaxToken> {
13132        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13133    }
13134    #[inline]
13135    pub fn ident_token(&self) -> Option<SyntaxToken> {
13136        support::token(&self.syntax, SyntaxKind::IDENT)
13137    }
13138    #[inline]
13139    pub fn insert_token(&self) -> Option<SyntaxToken> {
13140        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13141    }
13142    #[inline]
13143    pub fn references_token(&self) -> Option<SyntaxToken> {
13144        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13145    }
13146    #[inline]
13147    pub fn select_token(&self) -> Option<SyntaxToken> {
13148        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13149    }
13150    #[inline]
13151    pub fn system_token(&self) -> Option<SyntaxToken> {
13152        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13153    }
13154    #[inline]
13155    pub fn temp_token(&self) -> Option<SyntaxToken> {
13156        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13157    }
13158    #[inline]
13159    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13160        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13161    }
13162    #[inline]
13163    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13164        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13165    }
13166    #[inline]
13167    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13168        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13169    }
13170    #[inline]
13171    pub fn update_token(&self) -> Option<SyntaxToken> {
13172        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13173    }
13174}
13175
13176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13177pub struct RevokeCommandList {
13178    pub(crate) syntax: SyntaxNode,
13179}
13180impl RevokeCommandList {
13181    #[inline]
13182    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13183        support::children(&self.syntax)
13184    }
13185}
13186
13187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13188pub struct RevokeDefaultPrivileges {
13189    pub(crate) syntax: SyntaxNode,
13190}
13191impl RevokeDefaultPrivileges {
13192    #[inline]
13193    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13194        support::child(&self.syntax)
13195    }
13196    #[inline]
13197    pub fn privileges(&self) -> Option<Privileges> {
13198        support::child(&self.syntax)
13199    }
13200    #[inline]
13201    pub fn role_list(&self) -> Option<RoleList> {
13202        support::child(&self.syntax)
13203    }
13204    #[inline]
13205    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13206        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13207    }
13208    #[inline]
13209    pub fn for_token(&self) -> Option<SyntaxToken> {
13210        support::token(&self.syntax, SyntaxKind::FOR_KW)
13211    }
13212    #[inline]
13213    pub fn from_token(&self) -> Option<SyntaxToken> {
13214        support::token(&self.syntax, SyntaxKind::FROM_KW)
13215    }
13216    #[inline]
13217    pub fn grant_token(&self) -> Option<SyntaxToken> {
13218        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13219    }
13220    #[inline]
13221    pub fn on_token(&self) -> Option<SyntaxToken> {
13222        support::token(&self.syntax, SyntaxKind::ON_KW)
13223    }
13224    #[inline]
13225    pub fn option_token(&self) -> Option<SyntaxToken> {
13226        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13227    }
13228    #[inline]
13229    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13230        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13231    }
13232    #[inline]
13233    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13234        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13235    }
13236}
13237
13238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13239pub struct Role {
13240    pub(crate) syntax: SyntaxNode,
13241}
13242impl Role {
13243    #[inline]
13244    pub fn name_ref(&self) -> Option<NameRef> {
13245        support::child(&self.syntax)
13246    }
13247    #[inline]
13248    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13249        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13250    }
13251    #[inline]
13252    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13253        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13254    }
13255    #[inline]
13256    pub fn group_token(&self) -> Option<SyntaxToken> {
13257        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13258    }
13259    #[inline]
13260    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13261        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13262    }
13263}
13264
13265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13266pub struct RoleList {
13267    pub(crate) syntax: SyntaxNode,
13268}
13269impl RoleList {
13270    #[inline]
13271    pub fn roles(&self) -> AstChildren<Role> {
13272        support::children(&self.syntax)
13273    }
13274}
13275
13276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13277pub struct RoleOption {
13278    pub(crate) syntax: SyntaxNode,
13279}
13280impl RoleOption {
13281    #[inline]
13282    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13283        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13284    }
13285}
13286
13287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13288pub struct RoleOptionList {
13289    pub(crate) syntax: SyntaxNode,
13290}
13291impl RoleOptionList {
13292    #[inline]
13293    pub fn role_options(&self) -> AstChildren<RoleOption> {
13294        support::children(&self.syntax)
13295    }
13296    #[inline]
13297    pub fn with_token(&self) -> Option<SyntaxToken> {
13298        support::token(&self.syntax, SyntaxKind::WITH_KW)
13299    }
13300}
13301
13302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13303pub struct Rollback {
13304    pub(crate) syntax: SyntaxNode,
13305}
13306impl Rollback {
13307    #[inline]
13308    pub fn literal(&self) -> Option<Literal> {
13309        support::child(&self.syntax)
13310    }
13311    #[inline]
13312    pub fn name_ref(&self) -> Option<NameRef> {
13313        support::child(&self.syntax)
13314    }
13315    #[inline]
13316    pub fn abort_token(&self) -> Option<SyntaxToken> {
13317        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13318    }
13319    #[inline]
13320    pub fn and_token(&self) -> Option<SyntaxToken> {
13321        support::token(&self.syntax, SyntaxKind::AND_KW)
13322    }
13323    #[inline]
13324    pub fn chain_token(&self) -> Option<SyntaxToken> {
13325        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13326    }
13327    #[inline]
13328    pub fn no_token(&self) -> Option<SyntaxToken> {
13329        support::token(&self.syntax, SyntaxKind::NO_KW)
13330    }
13331    #[inline]
13332    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13333        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13334    }
13335    #[inline]
13336    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13337        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13338    }
13339    #[inline]
13340    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13341        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13342    }
13343    #[inline]
13344    pub fn to_token(&self) -> Option<SyntaxToken> {
13345        support::token(&self.syntax, SyntaxKind::TO_KW)
13346    }
13347    #[inline]
13348    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13349        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13350    }
13351    #[inline]
13352    pub fn work_token(&self) -> Option<SyntaxToken> {
13353        support::token(&self.syntax, SyntaxKind::WORK_KW)
13354    }
13355}
13356
13357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13358pub struct Row {
13359    pub(crate) syntax: SyntaxNode,
13360}
13361impl Row {
13362    #[inline]
13363    pub fn exprs(&self) -> AstChildren<Expr> {
13364        support::children(&self.syntax)
13365    }
13366}
13367
13368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13369pub struct RowList {
13370    pub(crate) syntax: SyntaxNode,
13371}
13372impl RowList {
13373    #[inline]
13374    pub fn rows(&self) -> AstChildren<Row> {
13375        support::children(&self.syntax)
13376    }
13377}
13378
13379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13380pub struct RowsFuncOption {
13381    pub(crate) syntax: SyntaxNode,
13382}
13383impl RowsFuncOption {
13384    #[inline]
13385    pub fn rows_token(&self) -> Option<SyntaxToken> {
13386        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13387    }
13388}
13389
13390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13391pub struct Savepoint {
13392    pub(crate) syntax: SyntaxNode,
13393}
13394impl Savepoint {
13395    #[inline]
13396    pub fn name(&self) -> Option<Name> {
13397        support::child(&self.syntax)
13398    }
13399    #[inline]
13400    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13401        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13402    }
13403}
13404
13405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13406pub struct SchemaAuthorization {
13407    pub(crate) syntax: SyntaxNode,
13408}
13409impl SchemaAuthorization {
13410    #[inline]
13411    pub fn role(&self) -> Option<Role> {
13412        support::child(&self.syntax)
13413    }
13414    #[inline]
13415    pub fn authorization_token(&self) -> Option<SyntaxToken> {
13416        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
13417    }
13418}
13419
13420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13421pub struct SecurityFuncOption {
13422    pub(crate) syntax: SyntaxNode,
13423}
13424impl SecurityFuncOption {
13425    #[inline]
13426    pub fn definer_token(&self) -> Option<SyntaxToken> {
13427        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13428    }
13429    #[inline]
13430    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13431        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13432    }
13433    #[inline]
13434    pub fn security_token(&self) -> Option<SyntaxToken> {
13435        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13436    }
13437}
13438
13439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13440pub struct SecurityLabel {
13441    pub(crate) syntax: SyntaxNode,
13442}
13443impl SecurityLabel {
13444    #[inline]
13445    pub fn aggregate(&self) -> Option<Aggregate> {
13446        support::child(&self.syntax)
13447    }
13448    #[inline]
13449    pub fn for_provider(&self) -> Option<ForProvider> {
13450        support::child(&self.syntax)
13451    }
13452    #[inline]
13453    pub fn function_sig(&self) -> Option<FunctionSig> {
13454        support::child(&self.syntax)
13455    }
13456    #[inline]
13457    pub fn literal(&self) -> Option<Literal> {
13458        support::child(&self.syntax)
13459    }
13460    #[inline]
13461    pub fn path(&self) -> Option<Path> {
13462        support::child(&self.syntax)
13463    }
13464    #[inline]
13465    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13466        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13467    }
13468    #[inline]
13469    pub fn column_token(&self) -> Option<SyntaxToken> {
13470        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13471    }
13472    #[inline]
13473    pub fn database_token(&self) -> Option<SyntaxToken> {
13474        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13475    }
13476    #[inline]
13477    pub fn domain_token(&self) -> Option<SyntaxToken> {
13478        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13479    }
13480    #[inline]
13481    pub fn event_token(&self) -> Option<SyntaxToken> {
13482        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13483    }
13484    #[inline]
13485    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13486        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13487    }
13488    #[inline]
13489    pub fn function_token(&self) -> Option<SyntaxToken> {
13490        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13491    }
13492    #[inline]
13493    pub fn is_token(&self) -> Option<SyntaxToken> {
13494        support::token(&self.syntax, SyntaxKind::IS_KW)
13495    }
13496    #[inline]
13497    pub fn label_token(&self) -> Option<SyntaxToken> {
13498        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13499    }
13500    #[inline]
13501    pub fn language_token(&self) -> Option<SyntaxToken> {
13502        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13503    }
13504    #[inline]
13505    pub fn large_token(&self) -> Option<SyntaxToken> {
13506        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13507    }
13508    #[inline]
13509    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13510        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13511    }
13512    #[inline]
13513    pub fn null_token(&self) -> Option<SyntaxToken> {
13514        support::token(&self.syntax, SyntaxKind::NULL_KW)
13515    }
13516    #[inline]
13517    pub fn object_token(&self) -> Option<SyntaxToken> {
13518        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13519    }
13520    #[inline]
13521    pub fn on_token(&self) -> Option<SyntaxToken> {
13522        support::token(&self.syntax, SyntaxKind::ON_KW)
13523    }
13524    #[inline]
13525    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13526        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13527    }
13528    #[inline]
13529    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13530        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13531    }
13532    #[inline]
13533    pub fn publication_token(&self) -> Option<SyntaxToken> {
13534        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13535    }
13536    #[inline]
13537    pub fn role_token(&self) -> Option<SyntaxToken> {
13538        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13539    }
13540    #[inline]
13541    pub fn routine_token(&self) -> Option<SyntaxToken> {
13542        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13543    }
13544    #[inline]
13545    pub fn schema_token(&self) -> Option<SyntaxToken> {
13546        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13547    }
13548    #[inline]
13549    pub fn security_token(&self) -> Option<SyntaxToken> {
13550        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13551    }
13552    #[inline]
13553    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13554        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13555    }
13556    #[inline]
13557    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13558        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13559    }
13560    #[inline]
13561    pub fn table_token(&self) -> Option<SyntaxToken> {
13562        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13563    }
13564    #[inline]
13565    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13566        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13567    }
13568    #[inline]
13569    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13570        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13571    }
13572    #[inline]
13573    pub fn type_token(&self) -> Option<SyntaxToken> {
13574        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13575    }
13576    #[inline]
13577    pub fn view_token(&self) -> Option<SyntaxToken> {
13578        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13579    }
13580}
13581
13582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13583pub struct Select {
13584    pub(crate) syntax: SyntaxNode,
13585}
13586impl Select {
13587    #[inline]
13588    pub fn fetch_clause(&self) -> Option<FetchClause> {
13589        support::child(&self.syntax)
13590    }
13591    #[inline]
13592    pub fn filter_clause(&self) -> Option<FilterClause> {
13593        support::child(&self.syntax)
13594    }
13595    #[inline]
13596    pub fn from_clause(&self) -> Option<FromClause> {
13597        support::child(&self.syntax)
13598    }
13599    #[inline]
13600    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13601        support::child(&self.syntax)
13602    }
13603    #[inline]
13604    pub fn having_clause(&self) -> Option<HavingClause> {
13605        support::child(&self.syntax)
13606    }
13607    #[inline]
13608    pub fn limit_clause(&self) -> Option<LimitClause> {
13609        support::child(&self.syntax)
13610    }
13611    #[inline]
13612    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13613        support::children(&self.syntax)
13614    }
13615    #[inline]
13616    pub fn offset_clause(&self) -> Option<OffsetClause> {
13617        support::child(&self.syntax)
13618    }
13619    #[inline]
13620    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13621        support::child(&self.syntax)
13622    }
13623    #[inline]
13624    pub fn select_clause(&self) -> Option<SelectClause> {
13625        support::child(&self.syntax)
13626    }
13627    #[inline]
13628    pub fn where_clause(&self) -> Option<WhereClause> {
13629        support::child(&self.syntax)
13630    }
13631    #[inline]
13632    pub fn window_clause(&self) -> Option<WindowClause> {
13633        support::child(&self.syntax)
13634    }
13635    #[inline]
13636    pub fn with_clause(&self) -> Option<WithClause> {
13637        support::child(&self.syntax)
13638    }
13639}
13640
13641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13642pub struct SelectClause {
13643    pub(crate) syntax: SyntaxNode,
13644}
13645impl SelectClause {
13646    #[inline]
13647    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13648        support::child(&self.syntax)
13649    }
13650    #[inline]
13651    pub fn target_list(&self) -> Option<TargetList> {
13652        support::child(&self.syntax)
13653    }
13654    #[inline]
13655    pub fn all_token(&self) -> Option<SyntaxToken> {
13656        support::token(&self.syntax, SyntaxKind::ALL_KW)
13657    }
13658    #[inline]
13659    pub fn select_token(&self) -> Option<SyntaxToken> {
13660        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13661    }
13662}
13663
13664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13665pub struct SelectInto {
13666    pub(crate) syntax: SyntaxNode,
13667}
13668impl SelectInto {
13669    #[inline]
13670    pub fn filter_clause(&self) -> Option<FilterClause> {
13671        support::child(&self.syntax)
13672    }
13673    #[inline]
13674    pub fn from_clause(&self) -> Option<FromClause> {
13675        support::child(&self.syntax)
13676    }
13677    #[inline]
13678    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13679        support::child(&self.syntax)
13680    }
13681    #[inline]
13682    pub fn having_clause(&self) -> Option<HavingClause> {
13683        support::child(&self.syntax)
13684    }
13685    #[inline]
13686    pub fn into_clause(&self) -> Option<IntoClause> {
13687        support::child(&self.syntax)
13688    }
13689    #[inline]
13690    pub fn limit_clause(&self) -> Option<LimitClause> {
13691        support::child(&self.syntax)
13692    }
13693    #[inline]
13694    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13695        support::children(&self.syntax)
13696    }
13697    #[inline]
13698    pub fn offset_clause(&self) -> Option<OffsetClause> {
13699        support::child(&self.syntax)
13700    }
13701    #[inline]
13702    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13703        support::child(&self.syntax)
13704    }
13705    #[inline]
13706    pub fn select_clause(&self) -> Option<SelectClause> {
13707        support::child(&self.syntax)
13708    }
13709    #[inline]
13710    pub fn where_clause(&self) -> Option<WhereClause> {
13711        support::child(&self.syntax)
13712    }
13713    #[inline]
13714    pub fn window_clause(&self) -> Option<WindowClause> {
13715        support::child(&self.syntax)
13716    }
13717    #[inline]
13718    pub fn with_clause(&self) -> Option<WithClause> {
13719        support::child(&self.syntax)
13720    }
13721}
13722
13723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13724pub struct SequenceOption {
13725    pub(crate) syntax: SyntaxNode,
13726}
13727impl SequenceOption {
13728    #[inline]
13729    pub fn literal(&self) -> Option<Literal> {
13730        support::child(&self.syntax)
13731    }
13732    #[inline]
13733    pub fn name_ref(&self) -> Option<NameRef> {
13734        support::child(&self.syntax)
13735    }
13736    #[inline]
13737    pub fn path(&self) -> Option<Path> {
13738        support::child(&self.syntax)
13739    }
13740    #[inline]
13741    pub fn ty(&self) -> Option<Type> {
13742        support::child(&self.syntax)
13743    }
13744    #[inline]
13745    pub fn as_token(&self) -> Option<SyntaxToken> {
13746        support::token(&self.syntax, SyntaxKind::AS_KW)
13747    }
13748    #[inline]
13749    pub fn by_token(&self) -> Option<SyntaxToken> {
13750        support::token(&self.syntax, SyntaxKind::BY_KW)
13751    }
13752    #[inline]
13753    pub fn cycle_token(&self) -> Option<SyntaxToken> {
13754        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
13755    }
13756    #[inline]
13757    pub fn increment_token(&self) -> Option<SyntaxToken> {
13758        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
13759    }
13760    #[inline]
13761    pub fn logged_token(&self) -> Option<SyntaxToken> {
13762        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13763    }
13764    #[inline]
13765    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
13766        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
13767    }
13768    #[inline]
13769    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
13770        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
13771    }
13772    #[inline]
13773    pub fn name_token(&self) -> Option<SyntaxToken> {
13774        support::token(&self.syntax, SyntaxKind::NAME_KW)
13775    }
13776    #[inline]
13777    pub fn no_token(&self) -> Option<SyntaxToken> {
13778        support::token(&self.syntax, SyntaxKind::NO_KW)
13779    }
13780    #[inline]
13781    pub fn none_token(&self) -> Option<SyntaxToken> {
13782        support::token(&self.syntax, SyntaxKind::NONE_KW)
13783    }
13784    #[inline]
13785    pub fn owned_token(&self) -> Option<SyntaxToken> {
13786        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13787    }
13788    #[inline]
13789    pub fn restart_token(&self) -> Option<SyntaxToken> {
13790        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13791    }
13792    #[inline]
13793    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13794        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13795    }
13796    #[inline]
13797    pub fn start_token(&self) -> Option<SyntaxToken> {
13798        support::token(&self.syntax, SyntaxKind::START_KW)
13799    }
13800    #[inline]
13801    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
13802        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
13803    }
13804    #[inline]
13805    pub fn with_token(&self) -> Option<SyntaxToken> {
13806        support::token(&self.syntax, SyntaxKind::WITH_KW)
13807    }
13808}
13809
13810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13811pub struct SequenceOptionList {
13812    pub(crate) syntax: SyntaxNode,
13813}
13814impl SequenceOptionList {
13815    #[inline]
13816    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
13817        support::children(&self.syntax)
13818    }
13819    #[inline]
13820    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13821        support::token(&self.syntax, SyntaxKind::L_PAREN)
13822    }
13823    #[inline]
13824    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13825        support::token(&self.syntax, SyntaxKind::R_PAREN)
13826    }
13827}
13828
13829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13830pub struct Serializable {
13831    pub(crate) syntax: SyntaxNode,
13832}
13833impl Serializable {
13834    #[inline]
13835    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13836        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13837    }
13838    #[inline]
13839    pub fn level_token(&self) -> Option<SyntaxToken> {
13840        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13841    }
13842    #[inline]
13843    pub fn serializable_token(&self) -> Option<SyntaxToken> {
13844        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
13845    }
13846}
13847
13848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13849pub struct Set {
13850    pub(crate) syntax: SyntaxNode,
13851}
13852impl Set {
13853    #[inline]
13854    pub fn config_value(&self) -> Option<ConfigValue> {
13855        support::child(&self.syntax)
13856    }
13857    #[inline]
13858    pub fn config_values(&self) -> AstChildren<ConfigValue> {
13859        support::children(&self.syntax)
13860    }
13861    #[inline]
13862    pub fn literal(&self) -> Option<Literal> {
13863        support::child(&self.syntax)
13864    }
13865    #[inline]
13866    pub fn path(&self) -> Option<Path> {
13867        support::child(&self.syntax)
13868    }
13869    #[inline]
13870    pub fn eq_token(&self) -> Option<SyntaxToken> {
13871        support::token(&self.syntax, SyntaxKind::EQ)
13872    }
13873    #[inline]
13874    pub fn catalog_token(&self) -> Option<SyntaxToken> {
13875        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
13876    }
13877    #[inline]
13878    pub fn content_token(&self) -> Option<SyntaxToken> {
13879        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
13880    }
13881    #[inline]
13882    pub fn current_token(&self) -> Option<SyntaxToken> {
13883        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
13884    }
13885    #[inline]
13886    pub fn default_token(&self) -> Option<SyntaxToken> {
13887        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13888    }
13889    #[inline]
13890    pub fn document_token(&self) -> Option<SyntaxToken> {
13891        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
13892    }
13893    #[inline]
13894    pub fn from_token(&self) -> Option<SyntaxToken> {
13895        support::token(&self.syntax, SyntaxKind::FROM_KW)
13896    }
13897    #[inline]
13898    pub fn local_token(&self) -> Option<SyntaxToken> {
13899        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13900    }
13901    #[inline]
13902    pub fn option_token(&self) -> Option<SyntaxToken> {
13903        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13904    }
13905    #[inline]
13906    pub fn schema_token(&self) -> Option<SyntaxToken> {
13907        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13908    }
13909    #[inline]
13910    pub fn session_token(&self) -> Option<SyntaxToken> {
13911        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13912    }
13913    #[inline]
13914    pub fn set_token(&self) -> Option<SyntaxToken> {
13915        support::token(&self.syntax, SyntaxKind::SET_KW)
13916    }
13917    #[inline]
13918    pub fn time_token(&self) -> Option<SyntaxToken> {
13919        support::token(&self.syntax, SyntaxKind::TIME_KW)
13920    }
13921    #[inline]
13922    pub fn to_token(&self) -> Option<SyntaxToken> {
13923        support::token(&self.syntax, SyntaxKind::TO_KW)
13924    }
13925    #[inline]
13926    pub fn xml_token(&self) -> Option<SyntaxToken> {
13927        support::token(&self.syntax, SyntaxKind::XML_KW)
13928    }
13929    #[inline]
13930    pub fn zone_token(&self) -> Option<SyntaxToken> {
13931        support::token(&self.syntax, SyntaxKind::ZONE_KW)
13932    }
13933}
13934
13935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13936pub struct SetAccessMethod {
13937    pub(crate) syntax: SyntaxNode,
13938}
13939impl SetAccessMethod {
13940    #[inline]
13941    pub fn name_ref(&self) -> Option<NameRef> {
13942        support::child(&self.syntax)
13943    }
13944    #[inline]
13945    pub fn access_token(&self) -> Option<SyntaxToken> {
13946        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
13947    }
13948    #[inline]
13949    pub fn method_token(&self) -> Option<SyntaxToken> {
13950        support::token(&self.syntax, SyntaxKind::METHOD_KW)
13951    }
13952    #[inline]
13953    pub fn set_token(&self) -> Option<SyntaxToken> {
13954        support::token(&self.syntax, SyntaxKind::SET_KW)
13955    }
13956}
13957
13958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13959pub struct SetClause {
13960    pub(crate) syntax: SyntaxNode,
13961}
13962impl SetClause {
13963    #[inline]
13964    pub fn set_column_list(&self) -> Option<SetColumnList> {
13965        support::child(&self.syntax)
13966    }
13967    #[inline]
13968    pub fn set_token(&self) -> Option<SyntaxToken> {
13969        support::token(&self.syntax, SyntaxKind::SET_KW)
13970    }
13971}
13972
13973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13974pub struct SetColumnList {
13975    pub(crate) syntax: SyntaxNode,
13976}
13977impl SetColumnList {
13978    #[inline]
13979    pub fn set_columns(&self) -> AstChildren<SetColumn> {
13980        support::children(&self.syntax)
13981    }
13982}
13983
13984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13985pub struct SetCompression {
13986    pub(crate) syntax: SyntaxNode,
13987}
13988impl SetCompression {
13989    #[inline]
13990    pub fn compression_token(&self) -> Option<SyntaxToken> {
13991        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
13992    }
13993    #[inline]
13994    pub fn set_token(&self) -> Option<SyntaxToken> {
13995        support::token(&self.syntax, SyntaxKind::SET_KW)
13996    }
13997}
13998
13999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14000pub struct SetConfigParam {
14001    pub(crate) syntax: SyntaxNode,
14002}
14003impl SetConfigParam {
14004    #[inline]
14005    pub fn path(&self) -> Option<Path> {
14006        support::child(&self.syntax)
14007    }
14008    #[inline]
14009    pub fn set_token(&self) -> Option<SyntaxToken> {
14010        support::token(&self.syntax, SyntaxKind::SET_KW)
14011    }
14012}
14013
14014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14015pub struct SetConstraints {
14016    pub(crate) syntax: SyntaxNode,
14017}
14018impl SetConstraints {
14019    #[inline]
14020    pub fn paths(&self) -> AstChildren<Path> {
14021        support::children(&self.syntax)
14022    }
14023    #[inline]
14024    pub fn all_token(&self) -> Option<SyntaxToken> {
14025        support::token(&self.syntax, SyntaxKind::ALL_KW)
14026    }
14027    #[inline]
14028    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14029        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14030    }
14031    #[inline]
14032    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14033        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14034    }
14035    #[inline]
14036    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14037        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14038    }
14039    #[inline]
14040    pub fn set_token(&self) -> Option<SyntaxToken> {
14041        support::token(&self.syntax, SyntaxKind::SET_KW)
14042    }
14043}
14044
14045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14046pub struct SetDefault {
14047    pub(crate) syntax: SyntaxNode,
14048}
14049impl SetDefault {
14050    #[inline]
14051    pub fn expr(&self) -> Option<Expr> {
14052        support::child(&self.syntax)
14053    }
14054    #[inline]
14055    pub fn default_token(&self) -> Option<SyntaxToken> {
14056        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14057    }
14058    #[inline]
14059    pub fn set_token(&self) -> Option<SyntaxToken> {
14060        support::token(&self.syntax, SyntaxKind::SET_KW)
14061    }
14062}
14063
14064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14065pub struct SetDefaultColumns {
14066    pub(crate) syntax: SyntaxNode,
14067}
14068impl SetDefaultColumns {
14069    #[inline]
14070    pub fn column_list(&self) -> Option<ColumnList> {
14071        support::child(&self.syntax)
14072    }
14073    #[inline]
14074    pub fn default_token(&self) -> Option<SyntaxToken> {
14075        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14076    }
14077    #[inline]
14078    pub fn set_token(&self) -> Option<SyntaxToken> {
14079        support::token(&self.syntax, SyntaxKind::SET_KW)
14080    }
14081}
14082
14083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14084pub struct SetExpr {
14085    pub(crate) syntax: SyntaxNode,
14086}
14087impl SetExpr {
14088    #[inline]
14089    pub fn expr(&self) -> Option<Expr> {
14090        support::child(&self.syntax)
14091    }
14092    #[inline]
14093    pub fn default_token(&self) -> Option<SyntaxToken> {
14094        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14095    }
14096}
14097
14098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14099pub struct SetExprList {
14100    pub(crate) syntax: SyntaxNode,
14101}
14102impl SetExprList {
14103    #[inline]
14104    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14105        support::children(&self.syntax)
14106    }
14107    #[inline]
14108    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14109        support::token(&self.syntax, SyntaxKind::L_PAREN)
14110    }
14111    #[inline]
14112    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14113        support::token(&self.syntax, SyntaxKind::R_PAREN)
14114    }
14115    #[inline]
14116    pub fn row_token(&self) -> Option<SyntaxToken> {
14117        support::token(&self.syntax, SyntaxKind::ROW_KW)
14118    }
14119}
14120
14121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14122pub struct SetExpression {
14123    pub(crate) syntax: SyntaxNode,
14124}
14125impl SetExpression {
14126    #[inline]
14127    pub fn expr(&self) -> Option<Expr> {
14128        support::child(&self.syntax)
14129    }
14130    #[inline]
14131    pub fn expression_token(&self) -> Option<SyntaxToken> {
14132        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14133    }
14134    #[inline]
14135    pub fn set_token(&self) -> Option<SyntaxToken> {
14136        support::token(&self.syntax, SyntaxKind::SET_KW)
14137    }
14138}
14139
14140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14141pub struct SetFuncOption {
14142    pub(crate) syntax: SyntaxNode,
14143}
14144impl SetFuncOption {
14145    #[inline]
14146    pub fn set_token(&self) -> Option<SyntaxToken> {
14147        support::token(&self.syntax, SyntaxKind::SET_KW)
14148    }
14149}
14150
14151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14152pub struct SetGenerated {
14153    pub(crate) syntax: SyntaxNode,
14154}
14155impl SetGenerated {
14156    #[inline]
14157    pub fn set_token(&self) -> Option<SyntaxToken> {
14158        support::token(&self.syntax, SyntaxKind::SET_KW)
14159    }
14160}
14161
14162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14163pub struct SetGeneratedOptions {
14164    pub(crate) syntax: SyntaxNode,
14165}
14166impl SetGeneratedOptions {
14167    #[inline]
14168    pub fn generated_token(&self) -> Option<SyntaxToken> {
14169        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14170    }
14171    #[inline]
14172    pub fn set_token(&self) -> Option<SyntaxToken> {
14173        support::token(&self.syntax, SyntaxKind::SET_KW)
14174    }
14175}
14176
14177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14178pub struct SetLogged {
14179    pub(crate) syntax: SyntaxNode,
14180}
14181impl SetLogged {
14182    #[inline]
14183    pub fn logged_token(&self) -> Option<SyntaxToken> {
14184        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14185    }
14186    #[inline]
14187    pub fn set_token(&self) -> Option<SyntaxToken> {
14188        support::token(&self.syntax, SyntaxKind::SET_KW)
14189    }
14190}
14191
14192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14193pub struct SetMultipleColumns {
14194    pub(crate) syntax: SyntaxNode,
14195}
14196impl SetMultipleColumns {
14197    #[inline]
14198    pub fn column_list(&self) -> Option<ColumnList> {
14199        support::child(&self.syntax)
14200    }
14201    #[inline]
14202    pub fn paren_select(&self) -> Option<ParenSelect> {
14203        support::child(&self.syntax)
14204    }
14205    #[inline]
14206    pub fn set_expr_list(&self) -> Option<SetExprList> {
14207        support::child(&self.syntax)
14208    }
14209    #[inline]
14210    pub fn eq_token(&self) -> Option<SyntaxToken> {
14211        support::token(&self.syntax, SyntaxKind::EQ)
14212    }
14213}
14214
14215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14216pub struct SetNotNull {
14217    pub(crate) syntax: SyntaxNode,
14218}
14219impl SetNotNull {
14220    #[inline]
14221    pub fn not_token(&self) -> Option<SyntaxToken> {
14222        support::token(&self.syntax, SyntaxKind::NOT_KW)
14223    }
14224    #[inline]
14225    pub fn null_token(&self) -> Option<SyntaxToken> {
14226        support::token(&self.syntax, SyntaxKind::NULL_KW)
14227    }
14228    #[inline]
14229    pub fn set_token(&self) -> Option<SyntaxToken> {
14230        support::token(&self.syntax, SyntaxKind::SET_KW)
14231    }
14232}
14233
14234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14235pub struct SetNullColumns {
14236    pub(crate) syntax: SyntaxNode,
14237}
14238impl SetNullColumns {
14239    #[inline]
14240    pub fn column_list(&self) -> Option<ColumnList> {
14241        support::child(&self.syntax)
14242    }
14243    #[inline]
14244    pub fn null_token(&self) -> Option<SyntaxToken> {
14245        support::token(&self.syntax, SyntaxKind::NULL_KW)
14246    }
14247    #[inline]
14248    pub fn set_token(&self) -> Option<SyntaxToken> {
14249        support::token(&self.syntax, SyntaxKind::SET_KW)
14250    }
14251}
14252
14253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14254pub struct SetOptions {
14255    pub(crate) syntax: SyntaxNode,
14256}
14257impl SetOptions {
14258    #[inline]
14259    pub fn attribute_list(&self) -> Option<AttributeList> {
14260        support::child(&self.syntax)
14261    }
14262    #[inline]
14263    pub fn set_token(&self) -> Option<SyntaxToken> {
14264        support::token(&self.syntax, SyntaxKind::SET_KW)
14265    }
14266}
14267
14268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14269pub struct SetOptionsList {
14270    pub(crate) syntax: SyntaxNode,
14271}
14272impl SetOptionsList {
14273    #[inline]
14274    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14275        support::child(&self.syntax)
14276    }
14277    #[inline]
14278    pub fn options_token(&self) -> Option<SyntaxToken> {
14279        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14280    }
14281    #[inline]
14282    pub fn set_token(&self) -> Option<SyntaxToken> {
14283        support::token(&self.syntax, SyntaxKind::SET_KW)
14284    }
14285}
14286
14287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14288pub struct SetRole {
14289    pub(crate) syntax: SyntaxNode,
14290}
14291impl SetRole {
14292    #[inline]
14293    pub fn role(&self) -> Option<Role> {
14294        support::child(&self.syntax)
14295    }
14296    #[inline]
14297    pub fn local_token(&self) -> Option<SyntaxToken> {
14298        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14299    }
14300    #[inline]
14301    pub fn none_token(&self) -> Option<SyntaxToken> {
14302        support::token(&self.syntax, SyntaxKind::NONE_KW)
14303    }
14304    #[inline]
14305    pub fn reset_token(&self) -> Option<SyntaxToken> {
14306        support::token(&self.syntax, SyntaxKind::RESET_KW)
14307    }
14308    #[inline]
14309    pub fn role_token(&self) -> Option<SyntaxToken> {
14310        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14311    }
14312    #[inline]
14313    pub fn session_token(&self) -> Option<SyntaxToken> {
14314        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14315    }
14316    #[inline]
14317    pub fn set_token(&self) -> Option<SyntaxToken> {
14318        support::token(&self.syntax, SyntaxKind::SET_KW)
14319    }
14320}
14321
14322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14323pub struct SetSchema {
14324    pub(crate) syntax: SyntaxNode,
14325}
14326impl SetSchema {
14327    #[inline]
14328    pub fn name_ref(&self) -> Option<NameRef> {
14329        support::child(&self.syntax)
14330    }
14331    #[inline]
14332    pub fn schema_token(&self) -> Option<SyntaxToken> {
14333        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14334    }
14335    #[inline]
14336    pub fn set_token(&self) -> Option<SyntaxToken> {
14337        support::token(&self.syntax, SyntaxKind::SET_KW)
14338    }
14339}
14340
14341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14342pub struct SetSequenceOption {
14343    pub(crate) syntax: SyntaxNode,
14344}
14345impl SetSequenceOption {
14346    #[inline]
14347    pub fn set_token(&self) -> Option<SyntaxToken> {
14348        support::token(&self.syntax, SyntaxKind::SET_KW)
14349    }
14350}
14351
14352#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14353pub struct SetSessionAuth {
14354    pub(crate) syntax: SyntaxNode,
14355}
14356impl SetSessionAuth {
14357    #[inline]
14358    pub fn literal(&self) -> Option<Literal> {
14359        support::child(&self.syntax)
14360    }
14361    #[inline]
14362    pub fn role(&self) -> Option<Role> {
14363        support::child(&self.syntax)
14364    }
14365    #[inline]
14366    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14367        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14368    }
14369    #[inline]
14370    pub fn default_token(&self) -> Option<SyntaxToken> {
14371        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14372    }
14373    #[inline]
14374    pub fn local_token(&self) -> Option<SyntaxToken> {
14375        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14376    }
14377    #[inline]
14378    pub fn session_token(&self) -> Option<SyntaxToken> {
14379        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14380    }
14381    #[inline]
14382    pub fn set_token(&self) -> Option<SyntaxToken> {
14383        support::token(&self.syntax, SyntaxKind::SET_KW)
14384    }
14385}
14386
14387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14388pub struct SetSingleColumn {
14389    pub(crate) syntax: SyntaxNode,
14390}
14391impl SetSingleColumn {
14392    #[inline]
14393    pub fn column(&self) -> Option<Column> {
14394        support::child(&self.syntax)
14395    }
14396    #[inline]
14397    pub fn set_expr(&self) -> Option<SetExpr> {
14398        support::child(&self.syntax)
14399    }
14400    #[inline]
14401    pub fn eq_token(&self) -> Option<SyntaxToken> {
14402        support::token(&self.syntax, SyntaxKind::EQ)
14403    }
14404}
14405
14406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14407pub struct SetStatistics {
14408    pub(crate) syntax: SyntaxNode,
14409}
14410impl SetStatistics {
14411    #[inline]
14412    pub fn set_token(&self) -> Option<SyntaxToken> {
14413        support::token(&self.syntax, SyntaxKind::SET_KW)
14414    }
14415    #[inline]
14416    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14417        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14418    }
14419}
14420
14421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14422pub struct SetStorage {
14423    pub(crate) syntax: SyntaxNode,
14424}
14425impl SetStorage {
14426    #[inline]
14427    pub fn set_token(&self) -> Option<SyntaxToken> {
14428        support::token(&self.syntax, SyntaxKind::SET_KW)
14429    }
14430    #[inline]
14431    pub fn storage_token(&self) -> Option<SyntaxToken> {
14432        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14433    }
14434}
14435
14436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14437pub struct SetTablespace {
14438    pub(crate) syntax: SyntaxNode,
14439}
14440impl SetTablespace {
14441    #[inline]
14442    pub fn path(&self) -> Option<Path> {
14443        support::child(&self.syntax)
14444    }
14445    #[inline]
14446    pub fn set_token(&self) -> Option<SyntaxToken> {
14447        support::token(&self.syntax, SyntaxKind::SET_KW)
14448    }
14449    #[inline]
14450    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14451        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14452    }
14453}
14454
14455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14456pub struct SetTransaction {
14457    pub(crate) syntax: SyntaxNode,
14458}
14459impl SetTransaction {
14460    #[inline]
14461    pub fn literal(&self) -> Option<Literal> {
14462        support::child(&self.syntax)
14463    }
14464    #[inline]
14465    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14466        support::child(&self.syntax)
14467    }
14468    #[inline]
14469    pub fn as_token(&self) -> Option<SyntaxToken> {
14470        support::token(&self.syntax, SyntaxKind::AS_KW)
14471    }
14472    #[inline]
14473    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14474        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14475    }
14476    #[inline]
14477    pub fn session_token(&self) -> Option<SyntaxToken> {
14478        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14479    }
14480    #[inline]
14481    pub fn set_token(&self) -> Option<SyntaxToken> {
14482        support::token(&self.syntax, SyntaxKind::SET_KW)
14483    }
14484    #[inline]
14485    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14486        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14487    }
14488    #[inline]
14489    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14490        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14491    }
14492}
14493
14494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14495pub struct SetType {
14496    pub(crate) syntax: SyntaxNode,
14497}
14498impl SetType {
14499    #[inline]
14500    pub fn collate(&self) -> Option<Collate> {
14501        support::child(&self.syntax)
14502    }
14503    #[inline]
14504    pub fn ty(&self) -> Option<Type> {
14505        support::child(&self.syntax)
14506    }
14507    #[inline]
14508    pub fn set_token(&self) -> Option<SyntaxToken> {
14509        support::token(&self.syntax, SyntaxKind::SET_KW)
14510    }
14511    #[inline]
14512    pub fn type_token(&self) -> Option<SyntaxToken> {
14513        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14514    }
14515}
14516
14517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14518pub struct SetUnlogged {
14519    pub(crate) syntax: SyntaxNode,
14520}
14521impl SetUnlogged {
14522    #[inline]
14523    pub fn set_token(&self) -> Option<SyntaxToken> {
14524        support::token(&self.syntax, SyntaxKind::SET_KW)
14525    }
14526    #[inline]
14527    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14528        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14529    }
14530}
14531
14532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14533pub struct SetWithoutCluster {
14534    pub(crate) syntax: SyntaxNode,
14535}
14536impl SetWithoutCluster {
14537    #[inline]
14538    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14539        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14540    }
14541    #[inline]
14542    pub fn set_token(&self) -> Option<SyntaxToken> {
14543        support::token(&self.syntax, SyntaxKind::SET_KW)
14544    }
14545    #[inline]
14546    pub fn without_token(&self) -> Option<SyntaxToken> {
14547        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14548    }
14549}
14550
14551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14552pub struct SetWithoutOids {
14553    pub(crate) syntax: SyntaxNode,
14554}
14555impl SetWithoutOids {
14556    #[inline]
14557    pub fn oids_token(&self) -> Option<SyntaxToken> {
14558        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14559    }
14560    #[inline]
14561    pub fn set_token(&self) -> Option<SyntaxToken> {
14562        support::token(&self.syntax, SyntaxKind::SET_KW)
14563    }
14564    #[inline]
14565    pub fn without_token(&self) -> Option<SyntaxToken> {
14566        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14567    }
14568}
14569
14570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14571pub struct Show {
14572    pub(crate) syntax: SyntaxNode,
14573}
14574impl Show {
14575    #[inline]
14576    pub fn show_token(&self) -> Option<SyntaxToken> {
14577        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14578    }
14579}
14580
14581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14582pub struct SimilarTo {
14583    pub(crate) syntax: SyntaxNode,
14584}
14585impl SimilarTo {
14586    #[inline]
14587    pub fn similar_token(&self) -> Option<SyntaxToken> {
14588        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14589    }
14590    #[inline]
14591    pub fn to_token(&self) -> Option<SyntaxToken> {
14592        support::token(&self.syntax, SyntaxKind::TO_KW)
14593    }
14594}
14595
14596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14597pub struct SliceExpr {
14598    pub(crate) syntax: SyntaxNode,
14599}
14600impl SliceExpr {
14601    #[inline]
14602    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14603        support::token(&self.syntax, SyntaxKind::L_BRACK)
14604    }
14605    #[inline]
14606    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14607        support::token(&self.syntax, SyntaxKind::R_BRACK)
14608    }
14609    #[inline]
14610    pub fn colon_token(&self) -> Option<SyntaxToken> {
14611        support::token(&self.syntax, SyntaxKind::COLON)
14612    }
14613}
14614
14615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14616pub struct SomeFn {
14617    pub(crate) syntax: SyntaxNode,
14618}
14619impl SomeFn {
14620    #[inline]
14621    pub fn expr(&self) -> Option<Expr> {
14622        support::child(&self.syntax)
14623    }
14624    #[inline]
14625    pub fn select_variant(&self) -> Option<SelectVariant> {
14626        support::child(&self.syntax)
14627    }
14628    #[inline]
14629    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14630        support::token(&self.syntax, SyntaxKind::L_PAREN)
14631    }
14632    #[inline]
14633    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14634        support::token(&self.syntax, SyntaxKind::R_PAREN)
14635    }
14636    #[inline]
14637    pub fn some_token(&self) -> Option<SyntaxToken> {
14638        support::token(&self.syntax, SyntaxKind::SOME_KW)
14639    }
14640}
14641
14642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14643pub struct SortAsc {
14644    pub(crate) syntax: SyntaxNode,
14645}
14646impl SortAsc {
14647    #[inline]
14648    pub fn asc_token(&self) -> Option<SyntaxToken> {
14649        support::token(&self.syntax, SyntaxKind::ASC_KW)
14650    }
14651}
14652
14653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14654pub struct SortBy {
14655    pub(crate) syntax: SyntaxNode,
14656}
14657impl SortBy {
14658    #[inline]
14659    pub fn expr(&self) -> Option<Expr> {
14660        support::child(&self.syntax)
14661    }
14662    #[inline]
14663    pub fn nulls_first(&self) -> Option<NullsFirst> {
14664        support::child(&self.syntax)
14665    }
14666    #[inline]
14667    pub fn nulls_last(&self) -> Option<NullsLast> {
14668        support::child(&self.syntax)
14669    }
14670    #[inline]
14671    pub fn sort_asc(&self) -> Option<SortAsc> {
14672        support::child(&self.syntax)
14673    }
14674    #[inline]
14675    pub fn sort_desc(&self) -> Option<SortDesc> {
14676        support::child(&self.syntax)
14677    }
14678    #[inline]
14679    pub fn sort_using(&self) -> Option<SortUsing> {
14680        support::child(&self.syntax)
14681    }
14682}
14683
14684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14685pub struct SortByList {
14686    pub(crate) syntax: SyntaxNode,
14687}
14688impl SortByList {
14689    #[inline]
14690    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14691        support::children(&self.syntax)
14692    }
14693}
14694
14695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14696pub struct SortDesc {
14697    pub(crate) syntax: SyntaxNode,
14698}
14699impl SortDesc {
14700    #[inline]
14701    pub fn desc_token(&self) -> Option<SyntaxToken> {
14702        support::token(&self.syntax, SyntaxKind::DESC_KW)
14703    }
14704}
14705
14706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14707pub struct SortUsing {
14708    pub(crate) syntax: SyntaxNode,
14709}
14710impl SortUsing {
14711    #[inline]
14712    pub fn op(&self) -> Option<Op> {
14713        support::child(&self.syntax)
14714    }
14715    #[inline]
14716    pub fn using_token(&self) -> Option<SyntaxToken> {
14717        support::token(&self.syntax, SyntaxKind::USING_KW)
14718    }
14719}
14720
14721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14722pub struct SourceFile {
14723    pub(crate) syntax: SyntaxNode,
14724}
14725impl SourceFile {
14726    #[inline]
14727    pub fn stmts(&self) -> AstChildren<Stmt> {
14728        support::children(&self.syntax)
14729    }
14730}
14731
14732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14733pub struct SplitPartition {
14734    pub(crate) syntax: SyntaxNode,
14735}
14736impl SplitPartition {
14737    #[inline]
14738    pub fn partition_list(&self) -> Option<PartitionList> {
14739        support::child(&self.syntax)
14740    }
14741    #[inline]
14742    pub fn partition_token(&self) -> Option<SyntaxToken> {
14743        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14744    }
14745    #[inline]
14746    pub fn split_token(&self) -> Option<SyntaxToken> {
14747        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
14748    }
14749}
14750
14751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14752pub struct Storage {
14753    pub(crate) syntax: SyntaxNode,
14754}
14755impl Storage {
14756    #[inline]
14757    pub fn default_token(&self) -> Option<SyntaxToken> {
14758        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14759    }
14760    #[inline]
14761    pub fn external_token(&self) -> Option<SyntaxToken> {
14762        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14763    }
14764    #[inline]
14765    pub fn ident_token(&self) -> Option<SyntaxToken> {
14766        support::token(&self.syntax, SyntaxKind::IDENT)
14767    }
14768    #[inline]
14769    pub fn storage_token(&self) -> Option<SyntaxToken> {
14770        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14771    }
14772}
14773
14774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14775pub struct StrictFuncOption {
14776    pub(crate) syntax: SyntaxNode,
14777}
14778impl StrictFuncOption {
14779    #[inline]
14780    pub fn called_token(&self) -> Option<SyntaxToken> {
14781        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14782    }
14783    #[inline]
14784    pub fn input_token(&self) -> Option<SyntaxToken> {
14785        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14786    }
14787    #[inline]
14788    pub fn null_token(&self) -> Option<SyntaxToken> {
14789        support::token(&self.syntax, SyntaxKind::NULL_KW)
14790    }
14791    #[inline]
14792    pub fn on_token(&self) -> Option<SyntaxToken> {
14793        support::token(&self.syntax, SyntaxKind::ON_KW)
14794    }
14795    #[inline]
14796    pub fn returns_token(&self) -> Option<SyntaxToken> {
14797        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14798    }
14799    #[inline]
14800    pub fn strict_token(&self) -> Option<SyntaxToken> {
14801        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14802    }
14803}
14804
14805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14806pub struct SubstringFn {
14807    pub(crate) syntax: SyntaxNode,
14808}
14809impl SubstringFn {
14810    #[inline]
14811    pub fn expr(&self) -> Option<Expr> {
14812        support::child(&self.syntax)
14813    }
14814    #[inline]
14815    pub fn exprs(&self) -> AstChildren<Expr> {
14816        support::children(&self.syntax)
14817    }
14818    #[inline]
14819    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14820        support::token(&self.syntax, SyntaxKind::L_PAREN)
14821    }
14822    #[inline]
14823    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14824        support::token(&self.syntax, SyntaxKind::R_PAREN)
14825    }
14826    #[inline]
14827    pub fn for_token(&self) -> Option<SyntaxToken> {
14828        support::token(&self.syntax, SyntaxKind::FOR_KW)
14829    }
14830    #[inline]
14831    pub fn from_token(&self) -> Option<SyntaxToken> {
14832        support::token(&self.syntax, SyntaxKind::FROM_KW)
14833    }
14834    #[inline]
14835    pub fn similar_token(&self) -> Option<SyntaxToken> {
14836        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14837    }
14838    #[inline]
14839    pub fn substring_token(&self) -> Option<SyntaxToken> {
14840        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14841    }
14842}
14843
14844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14845pub struct SupportFuncOption {
14846    pub(crate) syntax: SyntaxNode,
14847}
14848impl SupportFuncOption {
14849    #[inline]
14850    pub fn support_token(&self) -> Option<SyntaxToken> {
14851        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14852    }
14853}
14854
14855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14856pub struct Table {
14857    pub(crate) syntax: SyntaxNode,
14858}
14859impl Table {
14860    #[inline]
14861    pub fn relation_name(&self) -> Option<RelationName> {
14862        support::child(&self.syntax)
14863    }
14864    #[inline]
14865    pub fn table_token(&self) -> Option<SyntaxToken> {
14866        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14867    }
14868}
14869
14870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14871pub struct TableAndColumns {
14872    pub(crate) syntax: SyntaxNode,
14873}
14874impl TableAndColumns {
14875    #[inline]
14876    pub fn column_list(&self) -> Option<ColumnList> {
14877        support::child(&self.syntax)
14878    }
14879    #[inline]
14880    pub fn relation_name(&self) -> Option<RelationName> {
14881        support::child(&self.syntax)
14882    }
14883}
14884
14885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14886pub struct TableAndColumnsList {
14887    pub(crate) syntax: SyntaxNode,
14888}
14889impl TableAndColumnsList {
14890    #[inline]
14891    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
14892        support::children(&self.syntax)
14893    }
14894}
14895
14896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14897pub struct TableArgList {
14898    pub(crate) syntax: SyntaxNode,
14899}
14900impl TableArgList {
14901    #[inline]
14902    pub fn args(&self) -> AstChildren<TableArg> {
14903        support::children(&self.syntax)
14904    }
14905    #[inline]
14906    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14907        support::token(&self.syntax, SyntaxKind::L_PAREN)
14908    }
14909    #[inline]
14910    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14911        support::token(&self.syntax, SyntaxKind::R_PAREN)
14912    }
14913}
14914
14915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14916pub struct TableList {
14917    pub(crate) syntax: SyntaxNode,
14918}
14919impl TableList {
14920    #[inline]
14921    pub fn relation_names(&self) -> AstChildren<RelationName> {
14922        support::children(&self.syntax)
14923    }
14924}
14925
14926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14927pub struct TablesampleClause {
14928    pub(crate) syntax: SyntaxNode,
14929}
14930impl TablesampleClause {
14931    #[inline]
14932    pub fn call_expr(&self) -> Option<CallExpr> {
14933        support::child(&self.syntax)
14934    }
14935    #[inline]
14936    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
14937        support::child(&self.syntax)
14938    }
14939    #[inline]
14940    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
14941        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
14942    }
14943}
14944
14945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14946pub struct Tablespace {
14947    pub(crate) syntax: SyntaxNode,
14948}
14949impl Tablespace {
14950    #[inline]
14951    pub fn name_ref(&self) -> Option<NameRef> {
14952        support::child(&self.syntax)
14953    }
14954    #[inline]
14955    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14956        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14957    }
14958}
14959
14960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14961pub struct Target {
14962    pub(crate) syntax: SyntaxNode,
14963}
14964impl Target {
14965    #[inline]
14966    pub fn as_name(&self) -> Option<AsName> {
14967        support::child(&self.syntax)
14968    }
14969    #[inline]
14970    pub fn expr(&self) -> Option<Expr> {
14971        support::child(&self.syntax)
14972    }
14973    #[inline]
14974    pub fn star_token(&self) -> Option<SyntaxToken> {
14975        support::token(&self.syntax, SyntaxKind::STAR)
14976    }
14977}
14978
14979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14980pub struct TargetList {
14981    pub(crate) syntax: SyntaxNode,
14982}
14983impl TargetList {
14984    #[inline]
14985    pub fn targets(&self) -> AstChildren<Target> {
14986        support::children(&self.syntax)
14987    }
14988}
14989
14990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14991pub struct TimeType {
14992    pub(crate) syntax: SyntaxNode,
14993}
14994impl TimeType {
14995    #[inline]
14996    pub fn literal(&self) -> Option<Literal> {
14997        support::child(&self.syntax)
14998    }
14999    #[inline]
15000    pub fn timezone(&self) -> Option<Timezone> {
15001        support::child(&self.syntax)
15002    }
15003    #[inline]
15004    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15005        support::token(&self.syntax, SyntaxKind::L_PAREN)
15006    }
15007    #[inline]
15008    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15009        support::token(&self.syntax, SyntaxKind::R_PAREN)
15010    }
15011    #[inline]
15012    pub fn time_token(&self) -> Option<SyntaxToken> {
15013        support::token(&self.syntax, SyntaxKind::TIME_KW)
15014    }
15015    #[inline]
15016    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15017        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15018    }
15019}
15020
15021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15022pub struct Timing {
15023    pub(crate) syntax: SyntaxNode,
15024}
15025impl Timing {
15026    #[inline]
15027    pub fn after_token(&self) -> Option<SyntaxToken> {
15028        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15029    }
15030    #[inline]
15031    pub fn before_token(&self) -> Option<SyntaxToken> {
15032        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15033    }
15034    #[inline]
15035    pub fn instead_token(&self) -> Option<SyntaxToken> {
15036        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15037    }
15038    #[inline]
15039    pub fn of_token(&self) -> Option<SyntaxToken> {
15040        support::token(&self.syntax, SyntaxKind::OF_KW)
15041    }
15042}
15043
15044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15045pub struct TransactionModeList {
15046    pub(crate) syntax: SyntaxNode,
15047}
15048impl TransactionModeList {
15049    #[inline]
15050    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15051        support::children(&self.syntax)
15052    }
15053}
15054
15055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15056pub struct TransformFromFunc {
15057    pub(crate) syntax: SyntaxNode,
15058}
15059impl TransformFromFunc {
15060    #[inline]
15061    pub fn function_sig(&self) -> Option<FunctionSig> {
15062        support::child(&self.syntax)
15063    }
15064    #[inline]
15065    pub fn from_token(&self) -> Option<SyntaxToken> {
15066        support::token(&self.syntax, SyntaxKind::FROM_KW)
15067    }
15068    #[inline]
15069    pub fn function_token(&self) -> Option<SyntaxToken> {
15070        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15071    }
15072    #[inline]
15073    pub fn sql_token(&self) -> Option<SyntaxToken> {
15074        support::token(&self.syntax, SyntaxKind::SQL_KW)
15075    }
15076    #[inline]
15077    pub fn with_token(&self) -> Option<SyntaxToken> {
15078        support::token(&self.syntax, SyntaxKind::WITH_KW)
15079    }
15080}
15081
15082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15083pub struct TransformFuncOption {
15084    pub(crate) syntax: SyntaxNode,
15085}
15086impl TransformFuncOption {
15087    #[inline]
15088    pub fn transform_token(&self) -> Option<SyntaxToken> {
15089        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15090    }
15091}
15092
15093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15094pub struct TransformToFunc {
15095    pub(crate) syntax: SyntaxNode,
15096}
15097impl TransformToFunc {
15098    #[inline]
15099    pub fn function_sig(&self) -> Option<FunctionSig> {
15100        support::child(&self.syntax)
15101    }
15102    #[inline]
15103    pub fn function_token(&self) -> Option<SyntaxToken> {
15104        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15105    }
15106    #[inline]
15107    pub fn sql_token(&self) -> Option<SyntaxToken> {
15108        support::token(&self.syntax, SyntaxKind::SQL_KW)
15109    }
15110    #[inline]
15111    pub fn to_token(&self) -> Option<SyntaxToken> {
15112        support::token(&self.syntax, SyntaxKind::TO_KW)
15113    }
15114    #[inline]
15115    pub fn with_token(&self) -> Option<SyntaxToken> {
15116        support::token(&self.syntax, SyntaxKind::WITH_KW)
15117    }
15118}
15119
15120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15121pub struct TriggerEvent {
15122    pub(crate) syntax: SyntaxNode,
15123}
15124impl TriggerEvent {
15125    #[inline]
15126    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15127        support::child(&self.syntax)
15128    }
15129    #[inline]
15130    pub fn delete_token(&self) -> Option<SyntaxToken> {
15131        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15132    }
15133    #[inline]
15134    pub fn insert_token(&self) -> Option<SyntaxToken> {
15135        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15136    }
15137    #[inline]
15138    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15139        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15140    }
15141}
15142
15143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15144pub struct TriggerEventList {
15145    pub(crate) syntax: SyntaxNode,
15146}
15147impl TriggerEventList {
15148    #[inline]
15149    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15150        support::children(&self.syntax)
15151    }
15152}
15153
15154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15155pub struct TriggerEventUpdate {
15156    pub(crate) syntax: SyntaxNode,
15157}
15158impl TriggerEventUpdate {
15159    #[inline]
15160    pub fn name_refs(&self) -> AstChildren<NameRef> {
15161        support::children(&self.syntax)
15162    }
15163    #[inline]
15164    pub fn of_token(&self) -> Option<SyntaxToken> {
15165        support::token(&self.syntax, SyntaxKind::OF_KW)
15166    }
15167    #[inline]
15168    pub fn update_token(&self) -> Option<SyntaxToken> {
15169        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15170    }
15171}
15172
15173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15174pub struct TrimFn {
15175    pub(crate) syntax: SyntaxNode,
15176}
15177impl TrimFn {
15178    #[inline]
15179    pub fn expr(&self) -> Option<Expr> {
15180        support::child(&self.syntax)
15181    }
15182    #[inline]
15183    pub fn exprs(&self) -> AstChildren<Expr> {
15184        support::children(&self.syntax)
15185    }
15186    #[inline]
15187    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15188        support::token(&self.syntax, SyntaxKind::L_PAREN)
15189    }
15190    #[inline]
15191    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15192        support::token(&self.syntax, SyntaxKind::R_PAREN)
15193    }
15194    #[inline]
15195    pub fn from_token(&self) -> Option<SyntaxToken> {
15196        support::token(&self.syntax, SyntaxKind::FROM_KW)
15197    }
15198    #[inline]
15199    pub fn trim_token(&self) -> Option<SyntaxToken> {
15200        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15201    }
15202}
15203
15204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15205pub struct Truncate {
15206    pub(crate) syntax: SyntaxNode,
15207}
15208impl Truncate {
15209    #[inline]
15210    pub fn table_list(&self) -> Option<TableList> {
15211        support::child(&self.syntax)
15212    }
15213    #[inline]
15214    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15215        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15216    }
15217    #[inline]
15218    pub fn continue_token(&self) -> Option<SyntaxToken> {
15219        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15220    }
15221    #[inline]
15222    pub fn identity_token(&self) -> Option<SyntaxToken> {
15223        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15224    }
15225    #[inline]
15226    pub fn restart_token(&self) -> Option<SyntaxToken> {
15227        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15228    }
15229    #[inline]
15230    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15231        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15232    }
15233    #[inline]
15234    pub fn table_token(&self) -> Option<SyntaxToken> {
15235        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15236    }
15237    #[inline]
15238    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15239        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15240    }
15241}
15242
15243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15244pub struct TupleExpr {
15245    pub(crate) syntax: SyntaxNode,
15246}
15247impl TupleExpr {
15248    #[inline]
15249    pub fn exprs(&self) -> AstChildren<Expr> {
15250        support::children(&self.syntax)
15251    }
15252    #[inline]
15253    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15254        support::token(&self.syntax, SyntaxKind::L_PAREN)
15255    }
15256    #[inline]
15257    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15258        support::token(&self.syntax, SyntaxKind::R_PAREN)
15259    }
15260}
15261
15262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15263pub struct UnicodeNormalForm {
15264    pub(crate) syntax: SyntaxNode,
15265}
15266impl UnicodeNormalForm {
15267    #[inline]
15268    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15269        support::token(&self.syntax, SyntaxKind::NFC_KW)
15270    }
15271    #[inline]
15272    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15273        support::token(&self.syntax, SyntaxKind::NFD_KW)
15274    }
15275    #[inline]
15276    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15277        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15278    }
15279    #[inline]
15280    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15281        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15282    }
15283}
15284
15285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15286pub struct UniqueConstraint {
15287    pub(crate) syntax: SyntaxNode,
15288}
15289impl UniqueConstraint {
15290    #[inline]
15291    pub fn column_list(&self) -> Option<ColumnList> {
15292        support::child(&self.syntax)
15293    }
15294    #[inline]
15295    pub fn name(&self) -> Option<Name> {
15296        support::child(&self.syntax)
15297    }
15298    #[inline]
15299    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15300        support::child(&self.syntax)
15301    }
15302    #[inline]
15303    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15304        support::child(&self.syntax)
15305    }
15306    #[inline]
15307    pub fn using_index(&self) -> Option<UsingIndex> {
15308        support::child(&self.syntax)
15309    }
15310    #[inline]
15311    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15312        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15313    }
15314    #[inline]
15315    pub fn unique_token(&self) -> Option<SyntaxToken> {
15316        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15317    }
15318}
15319
15320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15321pub struct Unlisten {
15322    pub(crate) syntax: SyntaxNode,
15323}
15324impl Unlisten {
15325    #[inline]
15326    pub fn name_ref(&self) -> Option<NameRef> {
15327        support::child(&self.syntax)
15328    }
15329    #[inline]
15330    pub fn star_token(&self) -> Option<SyntaxToken> {
15331        support::token(&self.syntax, SyntaxKind::STAR)
15332    }
15333    #[inline]
15334    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15335        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15336    }
15337}
15338
15339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15340pub struct Update {
15341    pub(crate) syntax: SyntaxNode,
15342}
15343impl Update {
15344    #[inline]
15345    pub fn alias(&self) -> Option<Alias> {
15346        support::child(&self.syntax)
15347    }
15348    #[inline]
15349    pub fn from_clause(&self) -> Option<FromClause> {
15350        support::child(&self.syntax)
15351    }
15352    #[inline]
15353    pub fn relation_name(&self) -> Option<RelationName> {
15354        support::child(&self.syntax)
15355    }
15356    #[inline]
15357    pub fn returning_clause(&self) -> Option<ReturningClause> {
15358        support::child(&self.syntax)
15359    }
15360    #[inline]
15361    pub fn set_clause(&self) -> Option<SetClause> {
15362        support::child(&self.syntax)
15363    }
15364    #[inline]
15365    pub fn where_clause(&self) -> Option<WhereClause> {
15366        support::child(&self.syntax)
15367    }
15368    #[inline]
15369    pub fn update_token(&self) -> Option<SyntaxToken> {
15370        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15371    }
15372}
15373
15374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15375pub struct UsingClause {
15376    pub(crate) syntax: SyntaxNode,
15377}
15378impl UsingClause {
15379    #[inline]
15380    pub fn from_items(&self) -> AstChildren<FromItem> {
15381        support::children(&self.syntax)
15382    }
15383    #[inline]
15384    pub fn using_token(&self) -> Option<SyntaxToken> {
15385        support::token(&self.syntax, SyntaxKind::USING_KW)
15386    }
15387}
15388
15389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15390pub struct UsingIndex {
15391    pub(crate) syntax: SyntaxNode,
15392}
15393impl UsingIndex {
15394    #[inline]
15395    pub fn name_ref(&self) -> Option<NameRef> {
15396        support::child(&self.syntax)
15397    }
15398    #[inline]
15399    pub fn index_token(&self) -> Option<SyntaxToken> {
15400        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15401    }
15402    #[inline]
15403    pub fn using_token(&self) -> Option<SyntaxToken> {
15404        support::token(&self.syntax, SyntaxKind::USING_KW)
15405    }
15406}
15407
15408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15409pub struct UsingMethod {
15410    pub(crate) syntax: SyntaxNode,
15411}
15412impl UsingMethod {
15413    #[inline]
15414    pub fn name_ref(&self) -> Option<NameRef> {
15415        support::child(&self.syntax)
15416    }
15417    #[inline]
15418    pub fn using_token(&self) -> Option<SyntaxToken> {
15419        support::token(&self.syntax, SyntaxKind::USING_KW)
15420    }
15421}
15422
15423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15424pub struct UsingOnClause {
15425    pub(crate) syntax: SyntaxNode,
15426}
15427impl UsingOnClause {
15428    #[inline]
15429    pub fn from_item(&self) -> Option<FromItem> {
15430        support::child(&self.syntax)
15431    }
15432    #[inline]
15433    pub fn on_clause(&self) -> Option<OnClause> {
15434        support::child(&self.syntax)
15435    }
15436    #[inline]
15437    pub fn using_token(&self) -> Option<SyntaxToken> {
15438        support::token(&self.syntax, SyntaxKind::USING_KW)
15439    }
15440}
15441
15442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15443pub struct Vacuum {
15444    pub(crate) syntax: SyntaxNode,
15445}
15446impl Vacuum {
15447    #[inline]
15448    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15449        support::child(&self.syntax)
15450    }
15451    #[inline]
15452    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15453        support::child(&self.syntax)
15454    }
15455    #[inline]
15456    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15457        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15458    }
15459    #[inline]
15460    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15461        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15462    }
15463    #[inline]
15464    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15465        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15466    }
15467    #[inline]
15468    pub fn full_token(&self) -> Option<SyntaxToken> {
15469        support::token(&self.syntax, SyntaxKind::FULL_KW)
15470    }
15471    #[inline]
15472    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15473        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15474    }
15475    #[inline]
15476    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15477        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15478    }
15479}
15480
15481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15482pub struct VacuumOption {
15483    pub(crate) syntax: SyntaxNode,
15484}
15485impl VacuumOption {
15486    #[inline]
15487    pub fn literal(&self) -> Option<Literal> {
15488        support::child(&self.syntax)
15489    }
15490}
15491
15492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15493pub struct VacuumOptionList {
15494    pub(crate) syntax: SyntaxNode,
15495}
15496impl VacuumOptionList {
15497    #[inline]
15498    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15499        support::children(&self.syntax)
15500    }
15501    #[inline]
15502    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15503        support::token(&self.syntax, SyntaxKind::L_PAREN)
15504    }
15505    #[inline]
15506    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15507        support::token(&self.syntax, SyntaxKind::R_PAREN)
15508    }
15509}
15510
15511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15512pub struct ValidateConstraint {
15513    pub(crate) syntax: SyntaxNode,
15514}
15515impl ValidateConstraint {
15516    #[inline]
15517    pub fn name_ref(&self) -> Option<NameRef> {
15518        support::child(&self.syntax)
15519    }
15520    #[inline]
15521    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15522        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15523    }
15524    #[inline]
15525    pub fn validate_token(&self) -> Option<SyntaxToken> {
15526        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15527    }
15528}
15529
15530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15531pub struct Values {
15532    pub(crate) syntax: SyntaxNode,
15533}
15534impl Values {
15535    #[inline]
15536    pub fn row_list(&self) -> Option<RowList> {
15537        support::child(&self.syntax)
15538    }
15539    #[inline]
15540    pub fn values_token(&self) -> Option<SyntaxToken> {
15541        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15542    }
15543}
15544
15545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15546pub struct Variant {
15547    pub(crate) syntax: SyntaxNode,
15548}
15549impl Variant {
15550    #[inline]
15551    pub fn literal(&self) -> Option<Literal> {
15552        support::child(&self.syntax)
15553    }
15554}
15555
15556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15557pub struct VariantList {
15558    pub(crate) syntax: SyntaxNode,
15559}
15560impl VariantList {
15561    #[inline]
15562    pub fn variants(&self) -> AstChildren<Variant> {
15563        support::children(&self.syntax)
15564    }
15565    #[inline]
15566    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15567        support::token(&self.syntax, SyntaxKind::L_PAREN)
15568    }
15569    #[inline]
15570    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15571        support::token(&self.syntax, SyntaxKind::R_PAREN)
15572    }
15573}
15574
15575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15576pub struct VolatilityFuncOption {
15577    pub(crate) syntax: SyntaxNode,
15578}
15579impl VolatilityFuncOption {
15580    #[inline]
15581    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15582        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15583    }
15584    #[inline]
15585    pub fn stable_token(&self) -> Option<SyntaxToken> {
15586        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15587    }
15588    #[inline]
15589    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15590        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15591    }
15592}
15593
15594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15595pub struct WhenClause {
15596    pub(crate) syntax: SyntaxNode,
15597}
15598impl WhenClause {
15599    #[inline]
15600    pub fn then_token(&self) -> Option<SyntaxToken> {
15601        support::token(&self.syntax, SyntaxKind::THEN_KW)
15602    }
15603    #[inline]
15604    pub fn when_token(&self) -> Option<SyntaxToken> {
15605        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15606    }
15607}
15608
15609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15610pub struct WhenClauseList {
15611    pub(crate) syntax: SyntaxNode,
15612}
15613impl WhenClauseList {
15614    #[inline]
15615    pub fn when_clause(&self) -> Option<WhenClause> {
15616        support::child(&self.syntax)
15617    }
15618    #[inline]
15619    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15620        support::children(&self.syntax)
15621    }
15622}
15623
15624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15625pub struct WhenCondition {
15626    pub(crate) syntax: SyntaxNode,
15627}
15628impl WhenCondition {
15629    #[inline]
15630    pub fn expr(&self) -> Option<Expr> {
15631        support::child(&self.syntax)
15632    }
15633    #[inline]
15634    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15635        support::token(&self.syntax, SyntaxKind::L_PAREN)
15636    }
15637    #[inline]
15638    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15639        support::token(&self.syntax, SyntaxKind::R_PAREN)
15640    }
15641    #[inline]
15642    pub fn when_token(&self) -> Option<SyntaxToken> {
15643        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15644    }
15645}
15646
15647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15648pub struct WhereClause {
15649    pub(crate) syntax: SyntaxNode,
15650}
15651impl WhereClause {
15652    #[inline]
15653    pub fn expr(&self) -> Option<Expr> {
15654        support::child(&self.syntax)
15655    }
15656    #[inline]
15657    pub fn where_token(&self) -> Option<SyntaxToken> {
15658        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15659    }
15660}
15661
15662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15663pub struct WhereConditionClause {
15664    pub(crate) syntax: SyntaxNode,
15665}
15666impl WhereConditionClause {
15667    #[inline]
15668    pub fn expr(&self) -> Option<Expr> {
15669        support::child(&self.syntax)
15670    }
15671    #[inline]
15672    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15673        support::token(&self.syntax, SyntaxKind::L_PAREN)
15674    }
15675    #[inline]
15676    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15677        support::token(&self.syntax, SyntaxKind::R_PAREN)
15678    }
15679    #[inline]
15680    pub fn where_token(&self) -> Option<SyntaxToken> {
15681        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15682    }
15683}
15684
15685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15686pub struct WhereCurrentOf {
15687    pub(crate) syntax: SyntaxNode,
15688}
15689impl WhereCurrentOf {
15690    #[inline]
15691    pub fn name_ref(&self) -> Option<NameRef> {
15692        support::child(&self.syntax)
15693    }
15694    #[inline]
15695    pub fn current_token(&self) -> Option<SyntaxToken> {
15696        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15697    }
15698    #[inline]
15699    pub fn of_token(&self) -> Option<SyntaxToken> {
15700        support::token(&self.syntax, SyntaxKind::OF_KW)
15701    }
15702    #[inline]
15703    pub fn where_token(&self) -> Option<SyntaxToken> {
15704        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15705    }
15706}
15707
15708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15709pub struct WindowClause {
15710    pub(crate) syntax: SyntaxNode,
15711}
15712impl WindowClause {
15713    #[inline]
15714    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15715        support::children(&self.syntax)
15716    }
15717    #[inline]
15718    pub fn window_token(&self) -> Option<SyntaxToken> {
15719        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15720    }
15721}
15722
15723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15724pub struct WindowDef {
15725    pub(crate) syntax: SyntaxNode,
15726}
15727impl WindowDef {
15728    #[inline]
15729    pub fn name(&self) -> Option<Name> {
15730        support::child(&self.syntax)
15731    }
15732    #[inline]
15733    pub fn window_spec(&self) -> Option<WindowSpec> {
15734        support::child(&self.syntax)
15735    }
15736    #[inline]
15737    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15738        support::token(&self.syntax, SyntaxKind::L_PAREN)
15739    }
15740    #[inline]
15741    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15742        support::token(&self.syntax, SyntaxKind::R_PAREN)
15743    }
15744    #[inline]
15745    pub fn as_token(&self) -> Option<SyntaxToken> {
15746        support::token(&self.syntax, SyntaxKind::AS_KW)
15747    }
15748}
15749
15750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15751pub struct WindowFuncOption {
15752    pub(crate) syntax: SyntaxNode,
15753}
15754impl WindowFuncOption {
15755    #[inline]
15756    pub fn window_token(&self) -> Option<SyntaxToken> {
15757        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15758    }
15759}
15760
15761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15762pub struct WindowSpec {
15763    pub(crate) syntax: SyntaxNode,
15764}
15765impl WindowSpec {
15766    #[inline]
15767    pub fn exprs(&self) -> AstChildren<Expr> {
15768        support::children(&self.syntax)
15769    }
15770    #[inline]
15771    pub fn frame_clause(&self) -> Option<FrameClause> {
15772        support::child(&self.syntax)
15773    }
15774    #[inline]
15775    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15776        support::child(&self.syntax)
15777    }
15778    #[inline]
15779    pub fn by_token(&self) -> Option<SyntaxToken> {
15780        support::token(&self.syntax, SyntaxKind::BY_KW)
15781    }
15782    #[inline]
15783    pub fn ident_token(&self) -> Option<SyntaxToken> {
15784        support::token(&self.syntax, SyntaxKind::IDENT)
15785    }
15786    #[inline]
15787    pub fn partition_token(&self) -> Option<SyntaxToken> {
15788        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15789    }
15790}
15791
15792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15793pub struct WithClause {
15794    pub(crate) syntax: SyntaxNode,
15795}
15796impl WithClause {
15797    #[inline]
15798    pub fn with_tables(&self) -> AstChildren<WithTable> {
15799        support::children(&self.syntax)
15800    }
15801    #[inline]
15802    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15803        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15804    }
15805    #[inline]
15806    pub fn with_token(&self) -> Option<SyntaxToken> {
15807        support::token(&self.syntax, SyntaxKind::WITH_KW)
15808    }
15809}
15810
15811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15812pub struct WithData {
15813    pub(crate) syntax: SyntaxNode,
15814}
15815impl WithData {
15816    #[inline]
15817    pub fn data_token(&self) -> Option<SyntaxToken> {
15818        support::token(&self.syntax, SyntaxKind::DATA_KW)
15819    }
15820    #[inline]
15821    pub fn with_token(&self) -> Option<SyntaxToken> {
15822        support::token(&self.syntax, SyntaxKind::WITH_KW)
15823    }
15824}
15825
15826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15827pub struct WithNoData {
15828    pub(crate) syntax: SyntaxNode,
15829}
15830impl WithNoData {
15831    #[inline]
15832    pub fn data_token(&self) -> Option<SyntaxToken> {
15833        support::token(&self.syntax, SyntaxKind::DATA_KW)
15834    }
15835    #[inline]
15836    pub fn no_token(&self) -> Option<SyntaxToken> {
15837        support::token(&self.syntax, SyntaxKind::NO_KW)
15838    }
15839    #[inline]
15840    pub fn with_token(&self) -> Option<SyntaxToken> {
15841        support::token(&self.syntax, SyntaxKind::WITH_KW)
15842    }
15843}
15844
15845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15846pub struct WithOptions {
15847    pub(crate) syntax: SyntaxNode,
15848}
15849impl WithOptions {
15850    #[inline]
15851    pub fn options_token(&self) -> Option<SyntaxToken> {
15852        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15853    }
15854    #[inline]
15855    pub fn with_token(&self) -> Option<SyntaxToken> {
15856        support::token(&self.syntax, SyntaxKind::WITH_KW)
15857    }
15858}
15859
15860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15861pub struct WithParams {
15862    pub(crate) syntax: SyntaxNode,
15863}
15864impl WithParams {
15865    #[inline]
15866    pub fn attribute_list(&self) -> Option<AttributeList> {
15867        support::child(&self.syntax)
15868    }
15869    #[inline]
15870    pub fn with_token(&self) -> Option<SyntaxToken> {
15871        support::token(&self.syntax, SyntaxKind::WITH_KW)
15872    }
15873}
15874
15875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15876pub struct WithTable {
15877    pub(crate) syntax: SyntaxNode,
15878}
15879impl WithTable {
15880    #[inline]
15881    pub fn column_list(&self) -> Option<ColumnList> {
15882        support::child(&self.syntax)
15883    }
15884    #[inline]
15885    pub fn materialized(&self) -> Option<Materialized> {
15886        support::child(&self.syntax)
15887    }
15888    #[inline]
15889    pub fn name(&self) -> Option<Name> {
15890        support::child(&self.syntax)
15891    }
15892    #[inline]
15893    pub fn not_materialized(&self) -> Option<NotMaterialized> {
15894        support::child(&self.syntax)
15895    }
15896    #[inline]
15897    pub fn query(&self) -> Option<WithQuery> {
15898        support::child(&self.syntax)
15899    }
15900    #[inline]
15901    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15902        support::token(&self.syntax, SyntaxKind::L_PAREN)
15903    }
15904    #[inline]
15905    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15906        support::token(&self.syntax, SyntaxKind::R_PAREN)
15907    }
15908    #[inline]
15909    pub fn as_token(&self) -> Option<SyntaxToken> {
15910        support::token(&self.syntax, SyntaxKind::AS_KW)
15911    }
15912}
15913
15914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15915pub struct WithTimezone {
15916    pub(crate) syntax: SyntaxNode,
15917}
15918impl WithTimezone {
15919    #[inline]
15920    pub fn time_token(&self) -> Option<SyntaxToken> {
15921        support::token(&self.syntax, SyntaxKind::TIME_KW)
15922    }
15923    #[inline]
15924    pub fn with_token(&self) -> Option<SyntaxToken> {
15925        support::token(&self.syntax, SyntaxKind::WITH_KW)
15926    }
15927    #[inline]
15928    pub fn zone_token(&self) -> Option<SyntaxToken> {
15929        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15930    }
15931}
15932
15933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15934pub struct WithinClause {
15935    pub(crate) syntax: SyntaxNode,
15936}
15937impl WithinClause {
15938    #[inline]
15939    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15940        support::child(&self.syntax)
15941    }
15942    #[inline]
15943    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15944        support::token(&self.syntax, SyntaxKind::L_PAREN)
15945    }
15946    #[inline]
15947    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15948        support::token(&self.syntax, SyntaxKind::R_PAREN)
15949    }
15950    #[inline]
15951    pub fn group_token(&self) -> Option<SyntaxToken> {
15952        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15953    }
15954    #[inline]
15955    pub fn within_token(&self) -> Option<SyntaxToken> {
15956        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
15957    }
15958}
15959
15960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15961pub struct WithoutOids {
15962    pub(crate) syntax: SyntaxNode,
15963}
15964impl WithoutOids {
15965    #[inline]
15966    pub fn oids_token(&self) -> Option<SyntaxToken> {
15967        support::token(&self.syntax, SyntaxKind::OIDS_KW)
15968    }
15969    #[inline]
15970    pub fn without_token(&self) -> Option<SyntaxToken> {
15971        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15972    }
15973}
15974
15975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15976pub struct WithoutTimezone {
15977    pub(crate) syntax: SyntaxNode,
15978}
15979impl WithoutTimezone {
15980    #[inline]
15981    pub fn time_token(&self) -> Option<SyntaxToken> {
15982        support::token(&self.syntax, SyntaxKind::TIME_KW)
15983    }
15984    #[inline]
15985    pub fn without_token(&self) -> Option<SyntaxToken> {
15986        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
15987    }
15988    #[inline]
15989    pub fn zone_token(&self) -> Option<SyntaxToken> {
15990        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15991    }
15992}
15993
15994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15995pub struct XmlAttributeList {
15996    pub(crate) syntax: SyntaxNode,
15997}
15998impl XmlAttributeList {
15999    #[inline]
16000    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16001        support::children(&self.syntax)
16002    }
16003}
16004
16005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16006pub struct XmlColumnOption {
16007    pub(crate) syntax: SyntaxNode,
16008}
16009impl XmlColumnOption {
16010    #[inline]
16011    pub fn expr(&self) -> Option<Expr> {
16012        support::child(&self.syntax)
16013    }
16014    #[inline]
16015    pub fn default_token(&self) -> Option<SyntaxToken> {
16016        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16017    }
16018    #[inline]
16019    pub fn ident_token(&self) -> Option<SyntaxToken> {
16020        support::token(&self.syntax, SyntaxKind::IDENT)
16021    }
16022    #[inline]
16023    pub fn not_token(&self) -> Option<SyntaxToken> {
16024        support::token(&self.syntax, SyntaxKind::NOT_KW)
16025    }
16026    #[inline]
16027    pub fn null_token(&self) -> Option<SyntaxToken> {
16028        support::token(&self.syntax, SyntaxKind::NULL_KW)
16029    }
16030    #[inline]
16031    pub fn path_token(&self) -> Option<SyntaxToken> {
16032        support::token(&self.syntax, SyntaxKind::PATH_KW)
16033    }
16034}
16035
16036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16037pub struct XmlColumnOptionList {
16038    pub(crate) syntax: SyntaxNode,
16039}
16040impl XmlColumnOptionList {
16041    #[inline]
16042    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16043        support::child(&self.syntax)
16044    }
16045    #[inline]
16046    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16047        support::children(&self.syntax)
16048    }
16049}
16050
16051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16052pub struct XmlElementFn {
16053    pub(crate) syntax: SyntaxNode,
16054}
16055impl XmlElementFn {
16056    #[inline]
16057    pub fn exprs(&self) -> AstChildren<Expr> {
16058        support::children(&self.syntax)
16059    }
16060    #[inline]
16061    pub fn name(&self) -> Option<Name> {
16062        support::child(&self.syntax)
16063    }
16064    #[inline]
16065    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16066        support::child(&self.syntax)
16067    }
16068    #[inline]
16069    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16070        support::token(&self.syntax, SyntaxKind::L_PAREN)
16071    }
16072    #[inline]
16073    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16074        support::token(&self.syntax, SyntaxKind::R_PAREN)
16075    }
16076    #[inline]
16077    pub fn comma_token(&self) -> Option<SyntaxToken> {
16078        support::token(&self.syntax, SyntaxKind::COMMA)
16079    }
16080    #[inline]
16081    pub fn name_token(&self) -> Option<SyntaxToken> {
16082        support::token(&self.syntax, SyntaxKind::NAME_KW)
16083    }
16084    #[inline]
16085    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16086        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16087    }
16088    #[inline]
16089    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16090        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16091    }
16092}
16093
16094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16095pub struct XmlExistsFn {
16096    pub(crate) syntax: SyntaxNode,
16097}
16098impl XmlExistsFn {
16099    #[inline]
16100    pub fn expr(&self) -> Option<Expr> {
16101        support::child(&self.syntax)
16102    }
16103    #[inline]
16104    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16105        support::child(&self.syntax)
16106    }
16107    #[inline]
16108    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16109        support::token(&self.syntax, SyntaxKind::L_PAREN)
16110    }
16111    #[inline]
16112    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16113        support::token(&self.syntax, SyntaxKind::R_PAREN)
16114    }
16115    #[inline]
16116    pub fn passing_token(&self) -> Option<SyntaxToken> {
16117        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16118    }
16119    #[inline]
16120    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16121        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16122    }
16123}
16124
16125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16126pub struct XmlForestFn {
16127    pub(crate) syntax: SyntaxNode,
16128}
16129impl XmlForestFn {
16130    #[inline]
16131    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16132        support::child(&self.syntax)
16133    }
16134    #[inline]
16135    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16136        support::token(&self.syntax, SyntaxKind::L_PAREN)
16137    }
16138    #[inline]
16139    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16140        support::token(&self.syntax, SyntaxKind::R_PAREN)
16141    }
16142    #[inline]
16143    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16144        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16145    }
16146}
16147
16148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16149pub struct XmlNamespace {
16150    pub(crate) syntax: SyntaxNode,
16151}
16152impl XmlNamespace {
16153    #[inline]
16154    pub fn expr(&self) -> Option<Expr> {
16155        support::child(&self.syntax)
16156    }
16157    #[inline]
16158    pub fn name(&self) -> Option<Name> {
16159        support::child(&self.syntax)
16160    }
16161    #[inline]
16162    pub fn as_token(&self) -> Option<SyntaxToken> {
16163        support::token(&self.syntax, SyntaxKind::AS_KW)
16164    }
16165    #[inline]
16166    pub fn default_token(&self) -> Option<SyntaxToken> {
16167        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16168    }
16169}
16170
16171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16172pub struct XmlNamespaceList {
16173    pub(crate) syntax: SyntaxNode,
16174}
16175impl XmlNamespaceList {
16176    #[inline]
16177    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16178        support::children(&self.syntax)
16179    }
16180    #[inline]
16181    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16182        support::token(&self.syntax, SyntaxKind::L_PAREN)
16183    }
16184    #[inline]
16185    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16186        support::token(&self.syntax, SyntaxKind::R_PAREN)
16187    }
16188}
16189
16190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16191pub struct XmlParseFn {
16192    pub(crate) syntax: SyntaxNode,
16193}
16194impl XmlParseFn {
16195    #[inline]
16196    pub fn expr(&self) -> Option<Expr> {
16197        support::child(&self.syntax)
16198    }
16199    #[inline]
16200    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16201        support::token(&self.syntax, SyntaxKind::L_PAREN)
16202    }
16203    #[inline]
16204    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16205        support::token(&self.syntax, SyntaxKind::R_PAREN)
16206    }
16207    #[inline]
16208    pub fn content_token(&self) -> Option<SyntaxToken> {
16209        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16210    }
16211    #[inline]
16212    pub fn document_token(&self) -> Option<SyntaxToken> {
16213        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16214    }
16215    #[inline]
16216    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16217        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16218    }
16219    #[inline]
16220    pub fn strip_token(&self) -> Option<SyntaxToken> {
16221        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16222    }
16223    #[inline]
16224    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16225        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16226    }
16227    #[inline]
16228    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16229        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16230    }
16231}
16232
16233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16234pub struct XmlPassingMech {
16235    pub(crate) syntax: SyntaxNode,
16236}
16237impl XmlPassingMech {
16238    #[inline]
16239    pub fn by_token(&self) -> Option<SyntaxToken> {
16240        support::token(&self.syntax, SyntaxKind::BY_KW)
16241    }
16242    #[inline]
16243    pub fn ref_token(&self) -> Option<SyntaxToken> {
16244        support::token(&self.syntax, SyntaxKind::REF_KW)
16245    }
16246    #[inline]
16247    pub fn value_token(&self) -> Option<SyntaxToken> {
16248        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16249    }
16250}
16251
16252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16253pub struct XmlPiFn {
16254    pub(crate) syntax: SyntaxNode,
16255}
16256impl XmlPiFn {
16257    #[inline]
16258    pub fn expr(&self) -> Option<Expr> {
16259        support::child(&self.syntax)
16260    }
16261    #[inline]
16262    pub fn name(&self) -> Option<Name> {
16263        support::child(&self.syntax)
16264    }
16265    #[inline]
16266    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::L_PAREN)
16268    }
16269    #[inline]
16270    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16271        support::token(&self.syntax, SyntaxKind::R_PAREN)
16272    }
16273    #[inline]
16274    pub fn comma_token(&self) -> Option<SyntaxToken> {
16275        support::token(&self.syntax, SyntaxKind::COMMA)
16276    }
16277    #[inline]
16278    pub fn name_token(&self) -> Option<SyntaxToken> {
16279        support::token(&self.syntax, SyntaxKind::NAME_KW)
16280    }
16281    #[inline]
16282    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16283        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16284    }
16285}
16286
16287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16288pub struct XmlRootFn {
16289    pub(crate) syntax: SyntaxNode,
16290}
16291impl XmlRootFn {
16292    #[inline]
16293    pub fn expr(&self) -> Option<Expr> {
16294        support::child(&self.syntax)
16295    }
16296    #[inline]
16297    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16298        support::token(&self.syntax, SyntaxKind::L_PAREN)
16299    }
16300    #[inline]
16301    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16302        support::token(&self.syntax, SyntaxKind::R_PAREN)
16303    }
16304    #[inline]
16305    pub fn comma_token(&self) -> Option<SyntaxToken> {
16306        support::token(&self.syntax, SyntaxKind::COMMA)
16307    }
16308    #[inline]
16309    pub fn no_token(&self) -> Option<SyntaxToken> {
16310        support::token(&self.syntax, SyntaxKind::NO_KW)
16311    }
16312    #[inline]
16313    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16314        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16315    }
16316    #[inline]
16317    pub fn value_token(&self) -> Option<SyntaxToken> {
16318        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16319    }
16320    #[inline]
16321    pub fn version_token(&self) -> Option<SyntaxToken> {
16322        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16323    }
16324    #[inline]
16325    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16326        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16327    }
16328    #[inline]
16329    pub fn yes_token(&self) -> Option<SyntaxToken> {
16330        support::token(&self.syntax, SyntaxKind::YES_KW)
16331    }
16332}
16333
16334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16335pub struct XmlRowPassingClause {
16336    pub(crate) syntax: SyntaxNode,
16337}
16338impl XmlRowPassingClause {
16339    #[inline]
16340    pub fn expr(&self) -> Option<Expr> {
16341        support::child(&self.syntax)
16342    }
16343    #[inline]
16344    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16345        support::child(&self.syntax)
16346    }
16347    #[inline]
16348    pub fn passing_token(&self) -> Option<SyntaxToken> {
16349        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16350    }
16351}
16352
16353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16354pub struct XmlSerializeFn {
16355    pub(crate) syntax: SyntaxNode,
16356}
16357impl XmlSerializeFn {
16358    #[inline]
16359    pub fn expr(&self) -> Option<Expr> {
16360        support::child(&self.syntax)
16361    }
16362    #[inline]
16363    pub fn ty(&self) -> Option<Type> {
16364        support::child(&self.syntax)
16365    }
16366    #[inline]
16367    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16368        support::token(&self.syntax, SyntaxKind::L_PAREN)
16369    }
16370    #[inline]
16371    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16372        support::token(&self.syntax, SyntaxKind::R_PAREN)
16373    }
16374    #[inline]
16375    pub fn as_token(&self) -> Option<SyntaxToken> {
16376        support::token(&self.syntax, SyntaxKind::AS_KW)
16377    }
16378    #[inline]
16379    pub fn content_token(&self) -> Option<SyntaxToken> {
16380        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16381    }
16382    #[inline]
16383    pub fn document_token(&self) -> Option<SyntaxToken> {
16384        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16385    }
16386    #[inline]
16387    pub fn ident_token(&self) -> Option<SyntaxToken> {
16388        support::token(&self.syntax, SyntaxKind::IDENT)
16389    }
16390    #[inline]
16391    pub fn no_token(&self) -> Option<SyntaxToken> {
16392        support::token(&self.syntax, SyntaxKind::NO_KW)
16393    }
16394    #[inline]
16395    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16396        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16397    }
16398}
16399
16400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16401pub struct XmlTable {
16402    pub(crate) syntax: SyntaxNode,
16403}
16404impl XmlTable {
16405    #[inline]
16406    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16407        support::child(&self.syntax)
16408    }
16409    #[inline]
16410    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16411        support::child(&self.syntax)
16412    }
16413    #[inline]
16414    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16415        support::child(&self.syntax)
16416    }
16417    #[inline]
16418    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16419        support::token(&self.syntax, SyntaxKind::L_PAREN)
16420    }
16421    #[inline]
16422    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16423        support::token(&self.syntax, SyntaxKind::R_PAREN)
16424    }
16425    #[inline]
16426    pub fn comma_token(&self) -> Option<SyntaxToken> {
16427        support::token(&self.syntax, SyntaxKind::COMMA)
16428    }
16429    #[inline]
16430    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16431        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16432    }
16433    #[inline]
16434    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16435        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16436    }
16437}
16438
16439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16440pub struct XmlTableColumn {
16441    pub(crate) syntax: SyntaxNode,
16442}
16443impl XmlTableColumn {
16444    #[inline]
16445    pub fn name(&self) -> Option<Name> {
16446        support::child(&self.syntax)
16447    }
16448    #[inline]
16449    pub fn ty(&self) -> Option<Type> {
16450        support::child(&self.syntax)
16451    }
16452    #[inline]
16453    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16454        support::child(&self.syntax)
16455    }
16456    #[inline]
16457    pub fn for_token(&self) -> Option<SyntaxToken> {
16458        support::token(&self.syntax, SyntaxKind::FOR_KW)
16459    }
16460    #[inline]
16461    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16462        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16463    }
16464}
16465
16466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16467pub struct XmlTableColumnList {
16468    pub(crate) syntax: SyntaxNode,
16469}
16470impl XmlTableColumnList {
16471    #[inline]
16472    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16473        support::children(&self.syntax)
16474    }
16475}
16476
16477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16478pub enum AlterColumnOption {
16479    AddGenerated(AddGenerated),
16480    DropDefault(DropDefault),
16481    DropExpression(DropExpression),
16482    DropIdentity(DropIdentity),
16483    DropNotNull(DropNotNull),
16484    ResetOptions(ResetOptions),
16485    Restart(Restart),
16486    SetCompression(SetCompression),
16487    SetDefault(SetDefault),
16488    SetExpression(SetExpression),
16489    SetGenerated(SetGenerated),
16490    SetGeneratedOptions(SetGeneratedOptions),
16491    SetNotNull(SetNotNull),
16492    SetOptions(SetOptions),
16493    SetOptionsList(SetOptionsList),
16494    SetSequenceOption(SetSequenceOption),
16495    SetStatistics(SetStatistics),
16496    SetStorage(SetStorage),
16497    SetType(SetType),
16498}
16499
16500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16501pub enum AlterDomainAction {
16502    AddConstraint(AddConstraint),
16503    DropConstraint(DropConstraint),
16504    DropDefault(DropDefault),
16505    DropNotNull(DropNotNull),
16506    OwnerTo(OwnerTo),
16507    RenameConstraint(RenameConstraint),
16508    RenameTo(RenameTo),
16509    SetDefault(SetDefault),
16510    SetNotNull(SetNotNull),
16511    SetSchema(SetSchema),
16512    ValidateConstraint(ValidateConstraint),
16513}
16514
16515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16516pub enum AlterMaterializedViewAction {
16517    DependsOnExtension(DependsOnExtension),
16518    NoDependsOnExtension(NoDependsOnExtension),
16519    RenameColumn(RenameColumn),
16520    RenameTo(RenameTo),
16521    SetSchema(SetSchema),
16522    AlterTableAction(AlterTableAction),
16523}
16524
16525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16526pub enum AlterTableAction {
16527    AddColumn(AddColumn),
16528    AddConstraint(AddConstraint),
16529    AlterColumn(AlterColumn),
16530    AlterConstraint(AlterConstraint),
16531    AttachPartition(AttachPartition),
16532    ClusterOn(ClusterOn),
16533    DetachPartition(DetachPartition),
16534    DisableRls(DisableRls),
16535    DisableRule(DisableRule),
16536    DisableTrigger(DisableTrigger),
16537    DropColumn(DropColumn),
16538    DropConstraint(DropConstraint),
16539    EnableAlwaysRule(EnableAlwaysRule),
16540    EnableAlwaysTrigger(EnableAlwaysTrigger),
16541    EnableReplicaRule(EnableReplicaRule),
16542    EnableReplicaTrigger(EnableReplicaTrigger),
16543    EnableRls(EnableRls),
16544    EnableRule(EnableRule),
16545    EnableTrigger(EnableTrigger),
16546    ForceRls(ForceRls),
16547    InheritTable(InheritTable),
16548    MergePartitions(MergePartitions),
16549    NoForceRls(NoForceRls),
16550    NoInheritTable(NoInheritTable),
16551    NotOf(NotOf),
16552    OfType(OfType),
16553    OptionItemList(OptionItemList),
16554    OwnerTo(OwnerTo),
16555    RenameColumn(RenameColumn),
16556    RenameConstraint(RenameConstraint),
16557    RenameTo(RenameTo),
16558    ReplicaIdentity(ReplicaIdentity),
16559    ResetOptions(ResetOptions),
16560    SetAccessMethod(SetAccessMethod),
16561    SetLogged(SetLogged),
16562    SetOptions(SetOptions),
16563    SetSchema(SetSchema),
16564    SetTablespace(SetTablespace),
16565    SetUnlogged(SetUnlogged),
16566    SetWithoutCluster(SetWithoutCluster),
16567    SetWithoutOids(SetWithoutOids),
16568    SplitPartition(SplitPartition),
16569    ValidateConstraint(ValidateConstraint),
16570}
16571
16572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16573pub enum ColumnConstraint {
16574    CheckConstraint(CheckConstraint),
16575    DefaultConstraint(DefaultConstraint),
16576    ExcludeConstraint(ExcludeConstraint),
16577    NotNullConstraint(NotNullConstraint),
16578    PrimaryKeyConstraint(PrimaryKeyConstraint),
16579    ReferencesConstraint(ReferencesConstraint),
16580    UniqueConstraint(UniqueConstraint),
16581}
16582
16583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16584pub enum ConfigValue {
16585    Literal(Literal),
16586    NameRef(NameRef),
16587}
16588
16589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16590pub enum ConflictAction {
16591    ConflictDoNothing(ConflictDoNothing),
16592    ConflictDoUpdateSet(ConflictDoUpdateSet),
16593}
16594
16595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16596pub enum ConflictTarget {
16597    ConflictOnConstraint(ConflictOnConstraint),
16598    ConflictOnIndex(ConflictOnIndex),
16599}
16600
16601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16602pub enum Constraint {
16603    CheckConstraint(CheckConstraint),
16604    DefaultConstraint(DefaultConstraint),
16605    ForeignKeyConstraint(ForeignKeyConstraint),
16606    GeneratedConstraint(GeneratedConstraint),
16607    NotNullConstraint(NotNullConstraint),
16608    NullConstraint(NullConstraint),
16609    PrimaryKeyConstraint(PrimaryKeyConstraint),
16610    ReferencesConstraint(ReferencesConstraint),
16611    UniqueConstraint(UniqueConstraint),
16612}
16613
16614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16615pub enum ExplainStmt {
16616    CompoundSelect(CompoundSelect),
16617    CreateMaterializedView(CreateMaterializedView),
16618    CreateTableAs(CreateTableAs),
16619    Declare(Declare),
16620    Delete(Delete),
16621    Execute(Execute),
16622    Insert(Insert),
16623    Merge(Merge),
16624    ParenSelect(ParenSelect),
16625    Select(Select),
16626    SelectInto(SelectInto),
16627    Table(Table),
16628    Update(Update),
16629    Values(Values),
16630}
16631
16632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16633pub enum Expr {
16634    ArrayExpr(ArrayExpr),
16635    BetweenExpr(BetweenExpr),
16636    BinExpr(BinExpr),
16637    CallExpr(CallExpr),
16638    CaseExpr(CaseExpr),
16639    CastExpr(CastExpr),
16640    FieldExpr(FieldExpr),
16641    IndexExpr(IndexExpr),
16642    Literal(Literal),
16643    NameRef(NameRef),
16644    ParenExpr(ParenExpr),
16645    PostfixExpr(PostfixExpr),
16646    PrefixExpr(PrefixExpr),
16647    SliceExpr(SliceExpr),
16648    TupleExpr(TupleExpr),
16649}
16650
16651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16652pub enum FuncOption {
16653    AsFuncOption(AsFuncOption),
16654    BeginFuncOptionList(BeginFuncOptionList),
16655    CostFuncOption(CostFuncOption),
16656    LanguageFuncOption(LanguageFuncOption),
16657    LeakproofFuncOption(LeakproofFuncOption),
16658    ParallelFuncOption(ParallelFuncOption),
16659    ResetFuncOption(ResetFuncOption),
16660    ReturnFuncOption(ReturnFuncOption),
16661    RowsFuncOption(RowsFuncOption),
16662    SecurityFuncOption(SecurityFuncOption),
16663    SetFuncOption(SetFuncOption),
16664    StrictFuncOption(StrictFuncOption),
16665    SupportFuncOption(SupportFuncOption),
16666    TransformFuncOption(TransformFuncOption),
16667    VolatilityFuncOption(VolatilityFuncOption),
16668    WindowFuncOption(WindowFuncOption),
16669}
16670
16671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16672pub enum GroupBy {
16673    GroupingCube(GroupingCube),
16674    GroupingExpr(GroupingExpr),
16675    GroupingRollup(GroupingRollup),
16676    GroupingSets(GroupingSets),
16677}
16678
16679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16680pub enum JoinType {
16681    JoinCross(JoinCross),
16682    JoinFull(JoinFull),
16683    JoinInner(JoinInner),
16684    JoinLeft(JoinLeft),
16685    JoinRight(JoinRight),
16686}
16687
16688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16689pub enum JsonBehavior {
16690    JsonBehaviorDefault(JsonBehaviorDefault),
16691    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16692    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16693    JsonBehaviorError(JsonBehaviorError),
16694    JsonBehaviorFalse(JsonBehaviorFalse),
16695    JsonBehaviorNull(JsonBehaviorNull),
16696    JsonBehaviorTrue(JsonBehaviorTrue),
16697    JsonBehaviorUnknown(JsonBehaviorUnknown),
16698}
16699
16700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16701pub enum MatchType {
16702    MatchFull(MatchFull),
16703    MatchPartial(MatchPartial),
16704    MatchSimple(MatchSimple),
16705}
16706
16707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16708pub enum MergeAction {
16709    MergeDelete(MergeDelete),
16710    MergeDoNothing(MergeDoNothing),
16711    MergeInsert(MergeInsert),
16712    MergeUpdate(MergeUpdate),
16713}
16714
16715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16716pub enum MergeWhenClause {
16717    MergeWhenMatched(MergeWhenMatched),
16718    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16719    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16720}
16721
16722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16723pub enum OnCommitAction {
16724    DeleteRows(DeleteRows),
16725    Drop(Drop),
16726    PreserveRows(PreserveRows),
16727}
16728
16729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16730pub enum ParamMode {
16731    ParamIn(ParamIn),
16732    ParamInOut(ParamInOut),
16733    ParamOut(ParamOut),
16734    ParamVariadic(ParamVariadic),
16735}
16736
16737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16738pub enum PartitionType {
16739    PartitionDefault(PartitionDefault),
16740    PartitionForValuesFrom(PartitionForValuesFrom),
16741    PartitionForValuesIn(PartitionForValuesIn),
16742    PartitionForValuesWith(PartitionForValuesWith),
16743}
16744
16745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16746pub enum PreparableStmt {
16747    CompoundSelect(CompoundSelect),
16748    Delete(Delete),
16749    Insert(Insert),
16750    Merge(Merge),
16751    Select(Select),
16752    SelectInto(SelectInto),
16753    Table(Table),
16754    Update(Update),
16755    Values(Values),
16756}
16757
16758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16759pub enum RefAction {
16760    Cascade(Cascade),
16761    NoAction(NoAction),
16762    Restrict(Restrict),
16763    SetDefaultColumns(SetDefaultColumns),
16764    SetNullColumns(SetNullColumns),
16765}
16766
16767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16768pub enum SchemaElement {
16769    CreateIndex(CreateIndex),
16770    CreateSequence(CreateSequence),
16771    CreateTable(CreateTable),
16772    CreateTrigger(CreateTrigger),
16773    CreateView(CreateView),
16774    Grant(Grant),
16775}
16776
16777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16778pub enum SelectVariant {
16779    CompoundSelect(CompoundSelect),
16780    ParenSelect(ParenSelect),
16781    Select(Select),
16782    SelectInto(SelectInto),
16783    Table(Table),
16784    Values(Values),
16785}
16786
16787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16788pub enum SetColumn {
16789    SetMultipleColumns(SetMultipleColumns),
16790    SetSingleColumn(SetSingleColumn),
16791}
16792
16793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16794pub enum Stmt {
16795    AlterAggregate(AlterAggregate),
16796    AlterCollation(AlterCollation),
16797    AlterConversion(AlterConversion),
16798    AlterDatabase(AlterDatabase),
16799    AlterDefaultPrivileges(AlterDefaultPrivileges),
16800    AlterDomain(AlterDomain),
16801    AlterEventTrigger(AlterEventTrigger),
16802    AlterExtension(AlterExtension),
16803    AlterForeignDataWrapper(AlterForeignDataWrapper),
16804    AlterForeignTable(AlterForeignTable),
16805    AlterFunction(AlterFunction),
16806    AlterGroup(AlterGroup),
16807    AlterIndex(AlterIndex),
16808    AlterLanguage(AlterLanguage),
16809    AlterLargeObject(AlterLargeObject),
16810    AlterMaterializedView(AlterMaterializedView),
16811    AlterOperator(AlterOperator),
16812    AlterOperatorClass(AlterOperatorClass),
16813    AlterOperatorFamily(AlterOperatorFamily),
16814    AlterPolicy(AlterPolicy),
16815    AlterProcedure(AlterProcedure),
16816    AlterPublication(AlterPublication),
16817    AlterRole(AlterRole),
16818    AlterRoutine(AlterRoutine),
16819    AlterRule(AlterRule),
16820    AlterSchema(AlterSchema),
16821    AlterSequence(AlterSequence),
16822    AlterServer(AlterServer),
16823    AlterStatistics(AlterStatistics),
16824    AlterSubscription(AlterSubscription),
16825    AlterSystem(AlterSystem),
16826    AlterTable(AlterTable),
16827    AlterTablespace(AlterTablespace),
16828    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16829    AlterTextSearchDictionary(AlterTextSearchDictionary),
16830    AlterTextSearchParser(AlterTextSearchParser),
16831    AlterTextSearchTemplate(AlterTextSearchTemplate),
16832    AlterTrigger(AlterTrigger),
16833    AlterType(AlterType),
16834    AlterUser(AlterUser),
16835    AlterUserMapping(AlterUserMapping),
16836    AlterView(AlterView),
16837    Analyze(Analyze),
16838    Begin(Begin),
16839    Call(Call),
16840    Checkpoint(Checkpoint),
16841    Close(Close),
16842    Cluster(Cluster),
16843    CommentOn(CommentOn),
16844    Commit(Commit),
16845    Copy(Copy),
16846    CreateAccessMethod(CreateAccessMethod),
16847    CreateAggregate(CreateAggregate),
16848    CreateCast(CreateCast),
16849    CreateCollation(CreateCollation),
16850    CreateConversion(CreateConversion),
16851    CreateDatabase(CreateDatabase),
16852    CreateDomain(CreateDomain),
16853    CreateEventTrigger(CreateEventTrigger),
16854    CreateExtension(CreateExtension),
16855    CreateForeignDataWrapper(CreateForeignDataWrapper),
16856    CreateForeignTable(CreateForeignTable),
16857    CreateFunction(CreateFunction),
16858    CreateGroup(CreateGroup),
16859    CreateIndex(CreateIndex),
16860    CreateLanguage(CreateLanguage),
16861    CreateMaterializedView(CreateMaterializedView),
16862    CreateOperator(CreateOperator),
16863    CreateOperatorClass(CreateOperatorClass),
16864    CreateOperatorFamily(CreateOperatorFamily),
16865    CreatePolicy(CreatePolicy),
16866    CreateProcedure(CreateProcedure),
16867    CreatePublication(CreatePublication),
16868    CreateRole(CreateRole),
16869    CreateRule(CreateRule),
16870    CreateSchema(CreateSchema),
16871    CreateSequence(CreateSequence),
16872    CreateServer(CreateServer),
16873    CreateStatistics(CreateStatistics),
16874    CreateSubscription(CreateSubscription),
16875    CreateTable(CreateTable),
16876    CreateTableAs(CreateTableAs),
16877    CreateTablespace(CreateTablespace),
16878    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
16879    CreateTextSearchDictionary(CreateTextSearchDictionary),
16880    CreateTextSearchParser(CreateTextSearchParser),
16881    CreateTextSearchTemplate(CreateTextSearchTemplate),
16882    CreateTransform(CreateTransform),
16883    CreateTrigger(CreateTrigger),
16884    CreateType(CreateType),
16885    CreateUser(CreateUser),
16886    CreateUserMapping(CreateUserMapping),
16887    CreateView(CreateView),
16888    Deallocate(Deallocate),
16889    Declare(Declare),
16890    Delete(Delete),
16891    Discard(Discard),
16892    Do(Do),
16893    DropAccessMethod(DropAccessMethod),
16894    DropAggregate(DropAggregate),
16895    DropCast(DropCast),
16896    DropCollation(DropCollation),
16897    DropConversion(DropConversion),
16898    DropDatabase(DropDatabase),
16899    DropDomain(DropDomain),
16900    DropEventTrigger(DropEventTrigger),
16901    DropExtension(DropExtension),
16902    DropForeignDataWrapper(DropForeignDataWrapper),
16903    DropForeignTable(DropForeignTable),
16904    DropFunction(DropFunction),
16905    DropGroup(DropGroup),
16906    DropIndex(DropIndex),
16907    DropLanguage(DropLanguage),
16908    DropMaterializedView(DropMaterializedView),
16909    DropOperator(DropOperator),
16910    DropOperatorClass(DropOperatorClass),
16911    DropOperatorFamily(DropOperatorFamily),
16912    DropOwned(DropOwned),
16913    DropPolicy(DropPolicy),
16914    DropProcedure(DropProcedure),
16915    DropPublication(DropPublication),
16916    DropRole(DropRole),
16917    DropRoutine(DropRoutine),
16918    DropRule(DropRule),
16919    DropSchema(DropSchema),
16920    DropSequence(DropSequence),
16921    DropServer(DropServer),
16922    DropStatistics(DropStatistics),
16923    DropSubscription(DropSubscription),
16924    DropTable(DropTable),
16925    DropTablespace(DropTablespace),
16926    DropTextSearchConfig(DropTextSearchConfig),
16927    DropTextSearchDict(DropTextSearchDict),
16928    DropTextSearchParser(DropTextSearchParser),
16929    DropTextSearchTemplate(DropTextSearchTemplate),
16930    DropTransform(DropTransform),
16931    DropTrigger(DropTrigger),
16932    DropType(DropType),
16933    DropUser(DropUser),
16934    DropUserMapping(DropUserMapping),
16935    DropView(DropView),
16936    Execute(Execute),
16937    Explain(Explain),
16938    Fetch(Fetch),
16939    Grant(Grant),
16940    ImportForeignSchema(ImportForeignSchema),
16941    Insert(Insert),
16942    Listen(Listen),
16943    Load(Load),
16944    Lock(Lock),
16945    Merge(Merge),
16946    Move(Move),
16947    Notify(Notify),
16948    ParenSelect(ParenSelect),
16949    Prepare(Prepare),
16950    PrepareTransaction(PrepareTransaction),
16951    Reassign(Reassign),
16952    Refresh(Refresh),
16953    Reindex(Reindex),
16954    ReleaseSavepoint(ReleaseSavepoint),
16955    Reset(Reset),
16956    ResetSessionAuth(ResetSessionAuth),
16957    Revoke(Revoke),
16958    Rollback(Rollback),
16959    Savepoint(Savepoint),
16960    SecurityLabel(SecurityLabel),
16961    Select(Select),
16962    SelectInto(SelectInto),
16963    Set(Set),
16964    SetConstraints(SetConstraints),
16965    SetRole(SetRole),
16966    SetSessionAuth(SetSessionAuth),
16967    SetTransaction(SetTransaction),
16968    Show(Show),
16969    Table(Table),
16970    Truncate(Truncate),
16971    Unlisten(Unlisten),
16972    Update(Update),
16973    Vacuum(Vacuum),
16974    Values(Values),
16975}
16976
16977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16978pub enum TableArg {
16979    Column(Column),
16980    LikeClause(LikeClause),
16981    TableConstraint(TableConstraint),
16982}
16983
16984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16985pub enum TableConstraint {
16986    CheckConstraint(CheckConstraint),
16987    ExcludeConstraint(ExcludeConstraint),
16988    ForeignKeyConstraint(ForeignKeyConstraint),
16989    PrimaryKeyConstraint(PrimaryKeyConstraint),
16990    UniqueConstraint(UniqueConstraint),
16991}
16992
16993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16994pub enum Timezone {
16995    WithTimezone(WithTimezone),
16996    WithoutTimezone(WithoutTimezone),
16997}
16998
16999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17000pub enum TransactionMode {
17001    Deferrable(Deferrable),
17002    NotDeferrable(NotDeferrable),
17003    ReadCommitted(ReadCommitted),
17004    ReadOnly(ReadOnly),
17005    ReadUncommitted(ReadUncommitted),
17006    ReadWrite(ReadWrite),
17007    RepeatableRead(RepeatableRead),
17008    Serializable(Serializable),
17009}
17010
17011#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17012pub enum Type {
17013    ArrayType(ArrayType),
17014    BitType(BitType),
17015    CharType(CharType),
17016    DoubleType(DoubleType),
17017    ExprType(ExprType),
17018    IntervalType(IntervalType),
17019    PathType(PathType),
17020    PercentType(PercentType),
17021    TimeType(TimeType),
17022}
17023
17024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17025pub enum WithQuery {
17026    CompoundSelect(CompoundSelect),
17027    Delete(Delete),
17028    Insert(Insert),
17029    Merge(Merge),
17030    ParenSelect(ParenSelect),
17031    Select(Select),
17032    Table(Table),
17033    Update(Update),
17034    Values(Values),
17035}
17036impl AstNode for AddColumn {
17037    #[inline]
17038    fn can_cast(kind: SyntaxKind) -> bool {
17039        kind == SyntaxKind::ADD_COLUMN
17040    }
17041    #[inline]
17042    fn cast(syntax: SyntaxNode) -> Option<Self> {
17043        if Self::can_cast(syntax.kind()) {
17044            Some(Self { syntax })
17045        } else {
17046            None
17047        }
17048    }
17049    #[inline]
17050    fn syntax(&self) -> &SyntaxNode {
17051        &self.syntax
17052    }
17053}
17054impl AstNode for AddConstraint {
17055    #[inline]
17056    fn can_cast(kind: SyntaxKind) -> bool {
17057        kind == SyntaxKind::ADD_CONSTRAINT
17058    }
17059    #[inline]
17060    fn cast(syntax: SyntaxNode) -> Option<Self> {
17061        if Self::can_cast(syntax.kind()) {
17062            Some(Self { syntax })
17063        } else {
17064            None
17065        }
17066    }
17067    #[inline]
17068    fn syntax(&self) -> &SyntaxNode {
17069        &self.syntax
17070    }
17071}
17072impl AstNode for AddGenerated {
17073    #[inline]
17074    fn can_cast(kind: SyntaxKind) -> bool {
17075        kind == SyntaxKind::ADD_GENERATED
17076    }
17077    #[inline]
17078    fn cast(syntax: SyntaxNode) -> Option<Self> {
17079        if Self::can_cast(syntax.kind()) {
17080            Some(Self { syntax })
17081        } else {
17082            None
17083        }
17084    }
17085    #[inline]
17086    fn syntax(&self) -> &SyntaxNode {
17087        &self.syntax
17088    }
17089}
17090impl AstNode for AddOpClassOptions {
17091    #[inline]
17092    fn can_cast(kind: SyntaxKind) -> bool {
17093        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17094    }
17095    #[inline]
17096    fn cast(syntax: SyntaxNode) -> Option<Self> {
17097        if Self::can_cast(syntax.kind()) {
17098            Some(Self { syntax })
17099        } else {
17100            None
17101        }
17102    }
17103    #[inline]
17104    fn syntax(&self) -> &SyntaxNode {
17105        &self.syntax
17106    }
17107}
17108impl AstNode for Aggregate {
17109    #[inline]
17110    fn can_cast(kind: SyntaxKind) -> bool {
17111        kind == SyntaxKind::AGGREGATE
17112    }
17113    #[inline]
17114    fn cast(syntax: SyntaxNode) -> Option<Self> {
17115        if Self::can_cast(syntax.kind()) {
17116            Some(Self { syntax })
17117        } else {
17118            None
17119        }
17120    }
17121    #[inline]
17122    fn syntax(&self) -> &SyntaxNode {
17123        &self.syntax
17124    }
17125}
17126impl AstNode for Alias {
17127    #[inline]
17128    fn can_cast(kind: SyntaxKind) -> bool {
17129        kind == SyntaxKind::ALIAS
17130    }
17131    #[inline]
17132    fn cast(syntax: SyntaxNode) -> Option<Self> {
17133        if Self::can_cast(syntax.kind()) {
17134            Some(Self { syntax })
17135        } else {
17136            None
17137        }
17138    }
17139    #[inline]
17140    fn syntax(&self) -> &SyntaxNode {
17141        &self.syntax
17142    }
17143}
17144impl AstNode for AllFn {
17145    #[inline]
17146    fn can_cast(kind: SyntaxKind) -> bool {
17147        kind == SyntaxKind::ALL_FN
17148    }
17149    #[inline]
17150    fn cast(syntax: SyntaxNode) -> Option<Self> {
17151        if Self::can_cast(syntax.kind()) {
17152            Some(Self { syntax })
17153        } else {
17154            None
17155        }
17156    }
17157    #[inline]
17158    fn syntax(&self) -> &SyntaxNode {
17159        &self.syntax
17160    }
17161}
17162impl AstNode for AlterAggregate {
17163    #[inline]
17164    fn can_cast(kind: SyntaxKind) -> bool {
17165        kind == SyntaxKind::ALTER_AGGREGATE
17166    }
17167    #[inline]
17168    fn cast(syntax: SyntaxNode) -> Option<Self> {
17169        if Self::can_cast(syntax.kind()) {
17170            Some(Self { syntax })
17171        } else {
17172            None
17173        }
17174    }
17175    #[inline]
17176    fn syntax(&self) -> &SyntaxNode {
17177        &self.syntax
17178    }
17179}
17180impl AstNode for AlterCollation {
17181    #[inline]
17182    fn can_cast(kind: SyntaxKind) -> bool {
17183        kind == SyntaxKind::ALTER_COLLATION
17184    }
17185    #[inline]
17186    fn cast(syntax: SyntaxNode) -> Option<Self> {
17187        if Self::can_cast(syntax.kind()) {
17188            Some(Self { syntax })
17189        } else {
17190            None
17191        }
17192    }
17193    #[inline]
17194    fn syntax(&self) -> &SyntaxNode {
17195        &self.syntax
17196    }
17197}
17198impl AstNode for AlterColumn {
17199    #[inline]
17200    fn can_cast(kind: SyntaxKind) -> bool {
17201        kind == SyntaxKind::ALTER_COLUMN
17202    }
17203    #[inline]
17204    fn cast(syntax: SyntaxNode) -> Option<Self> {
17205        if Self::can_cast(syntax.kind()) {
17206            Some(Self { syntax })
17207        } else {
17208            None
17209        }
17210    }
17211    #[inline]
17212    fn syntax(&self) -> &SyntaxNode {
17213        &self.syntax
17214    }
17215}
17216impl AstNode for AlterConstraint {
17217    #[inline]
17218    fn can_cast(kind: SyntaxKind) -> bool {
17219        kind == SyntaxKind::ALTER_CONSTRAINT
17220    }
17221    #[inline]
17222    fn cast(syntax: SyntaxNode) -> Option<Self> {
17223        if Self::can_cast(syntax.kind()) {
17224            Some(Self { syntax })
17225        } else {
17226            None
17227        }
17228    }
17229    #[inline]
17230    fn syntax(&self) -> &SyntaxNode {
17231        &self.syntax
17232    }
17233}
17234impl AstNode for AlterConversion {
17235    #[inline]
17236    fn can_cast(kind: SyntaxKind) -> bool {
17237        kind == SyntaxKind::ALTER_CONVERSION
17238    }
17239    #[inline]
17240    fn cast(syntax: SyntaxNode) -> Option<Self> {
17241        if Self::can_cast(syntax.kind()) {
17242            Some(Self { syntax })
17243        } else {
17244            None
17245        }
17246    }
17247    #[inline]
17248    fn syntax(&self) -> &SyntaxNode {
17249        &self.syntax
17250    }
17251}
17252impl AstNode for AlterDatabase {
17253    #[inline]
17254    fn can_cast(kind: SyntaxKind) -> bool {
17255        kind == SyntaxKind::ALTER_DATABASE
17256    }
17257    #[inline]
17258    fn cast(syntax: SyntaxNode) -> Option<Self> {
17259        if Self::can_cast(syntax.kind()) {
17260            Some(Self { syntax })
17261        } else {
17262            None
17263        }
17264    }
17265    #[inline]
17266    fn syntax(&self) -> &SyntaxNode {
17267        &self.syntax
17268    }
17269}
17270impl AstNode for AlterDefaultPrivileges {
17271    #[inline]
17272    fn can_cast(kind: SyntaxKind) -> bool {
17273        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17274    }
17275    #[inline]
17276    fn cast(syntax: SyntaxNode) -> Option<Self> {
17277        if Self::can_cast(syntax.kind()) {
17278            Some(Self { syntax })
17279        } else {
17280            None
17281        }
17282    }
17283    #[inline]
17284    fn syntax(&self) -> &SyntaxNode {
17285        &self.syntax
17286    }
17287}
17288impl AstNode for AlterDomain {
17289    #[inline]
17290    fn can_cast(kind: SyntaxKind) -> bool {
17291        kind == SyntaxKind::ALTER_DOMAIN
17292    }
17293    #[inline]
17294    fn cast(syntax: SyntaxNode) -> Option<Self> {
17295        if Self::can_cast(syntax.kind()) {
17296            Some(Self { syntax })
17297        } else {
17298            None
17299        }
17300    }
17301    #[inline]
17302    fn syntax(&self) -> &SyntaxNode {
17303        &self.syntax
17304    }
17305}
17306impl AstNode for AlterEventTrigger {
17307    #[inline]
17308    fn can_cast(kind: SyntaxKind) -> bool {
17309        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17310    }
17311    #[inline]
17312    fn cast(syntax: SyntaxNode) -> Option<Self> {
17313        if Self::can_cast(syntax.kind()) {
17314            Some(Self { syntax })
17315        } else {
17316            None
17317        }
17318    }
17319    #[inline]
17320    fn syntax(&self) -> &SyntaxNode {
17321        &self.syntax
17322    }
17323}
17324impl AstNode for AlterExtension {
17325    #[inline]
17326    fn can_cast(kind: SyntaxKind) -> bool {
17327        kind == SyntaxKind::ALTER_EXTENSION
17328    }
17329    #[inline]
17330    fn cast(syntax: SyntaxNode) -> Option<Self> {
17331        if Self::can_cast(syntax.kind()) {
17332            Some(Self { syntax })
17333        } else {
17334            None
17335        }
17336    }
17337    #[inline]
17338    fn syntax(&self) -> &SyntaxNode {
17339        &self.syntax
17340    }
17341}
17342impl AstNode for AlterForeignDataWrapper {
17343    #[inline]
17344    fn can_cast(kind: SyntaxKind) -> bool {
17345        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17346    }
17347    #[inline]
17348    fn cast(syntax: SyntaxNode) -> Option<Self> {
17349        if Self::can_cast(syntax.kind()) {
17350            Some(Self { syntax })
17351        } else {
17352            None
17353        }
17354    }
17355    #[inline]
17356    fn syntax(&self) -> &SyntaxNode {
17357        &self.syntax
17358    }
17359}
17360impl AstNode for AlterForeignTable {
17361    #[inline]
17362    fn can_cast(kind: SyntaxKind) -> bool {
17363        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17364    }
17365    #[inline]
17366    fn cast(syntax: SyntaxNode) -> Option<Self> {
17367        if Self::can_cast(syntax.kind()) {
17368            Some(Self { syntax })
17369        } else {
17370            None
17371        }
17372    }
17373    #[inline]
17374    fn syntax(&self) -> &SyntaxNode {
17375        &self.syntax
17376    }
17377}
17378impl AstNode for AlterFunction {
17379    #[inline]
17380    fn can_cast(kind: SyntaxKind) -> bool {
17381        kind == SyntaxKind::ALTER_FUNCTION
17382    }
17383    #[inline]
17384    fn cast(syntax: SyntaxNode) -> Option<Self> {
17385        if Self::can_cast(syntax.kind()) {
17386            Some(Self { syntax })
17387        } else {
17388            None
17389        }
17390    }
17391    #[inline]
17392    fn syntax(&self) -> &SyntaxNode {
17393        &self.syntax
17394    }
17395}
17396impl AstNode for AlterGroup {
17397    #[inline]
17398    fn can_cast(kind: SyntaxKind) -> bool {
17399        kind == SyntaxKind::ALTER_GROUP
17400    }
17401    #[inline]
17402    fn cast(syntax: SyntaxNode) -> Option<Self> {
17403        if Self::can_cast(syntax.kind()) {
17404            Some(Self { syntax })
17405        } else {
17406            None
17407        }
17408    }
17409    #[inline]
17410    fn syntax(&self) -> &SyntaxNode {
17411        &self.syntax
17412    }
17413}
17414impl AstNode for AlterIndex {
17415    #[inline]
17416    fn can_cast(kind: SyntaxKind) -> bool {
17417        kind == SyntaxKind::ALTER_INDEX
17418    }
17419    #[inline]
17420    fn cast(syntax: SyntaxNode) -> Option<Self> {
17421        if Self::can_cast(syntax.kind()) {
17422            Some(Self { syntax })
17423        } else {
17424            None
17425        }
17426    }
17427    #[inline]
17428    fn syntax(&self) -> &SyntaxNode {
17429        &self.syntax
17430    }
17431}
17432impl AstNode for AlterLanguage {
17433    #[inline]
17434    fn can_cast(kind: SyntaxKind) -> bool {
17435        kind == SyntaxKind::ALTER_LANGUAGE
17436    }
17437    #[inline]
17438    fn cast(syntax: SyntaxNode) -> Option<Self> {
17439        if Self::can_cast(syntax.kind()) {
17440            Some(Self { syntax })
17441        } else {
17442            None
17443        }
17444    }
17445    #[inline]
17446    fn syntax(&self) -> &SyntaxNode {
17447        &self.syntax
17448    }
17449}
17450impl AstNode for AlterLargeObject {
17451    #[inline]
17452    fn can_cast(kind: SyntaxKind) -> bool {
17453        kind == SyntaxKind::ALTER_LARGE_OBJECT
17454    }
17455    #[inline]
17456    fn cast(syntax: SyntaxNode) -> Option<Self> {
17457        if Self::can_cast(syntax.kind()) {
17458            Some(Self { syntax })
17459        } else {
17460            None
17461        }
17462    }
17463    #[inline]
17464    fn syntax(&self) -> &SyntaxNode {
17465        &self.syntax
17466    }
17467}
17468impl AstNode for AlterMaterializedView {
17469    #[inline]
17470    fn can_cast(kind: SyntaxKind) -> bool {
17471        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17472    }
17473    #[inline]
17474    fn cast(syntax: SyntaxNode) -> Option<Self> {
17475        if Self::can_cast(syntax.kind()) {
17476            Some(Self { syntax })
17477        } else {
17478            None
17479        }
17480    }
17481    #[inline]
17482    fn syntax(&self) -> &SyntaxNode {
17483        &self.syntax
17484    }
17485}
17486impl AstNode for AlterOperator {
17487    #[inline]
17488    fn can_cast(kind: SyntaxKind) -> bool {
17489        kind == SyntaxKind::ALTER_OPERATOR
17490    }
17491    #[inline]
17492    fn cast(syntax: SyntaxNode) -> Option<Self> {
17493        if Self::can_cast(syntax.kind()) {
17494            Some(Self { syntax })
17495        } else {
17496            None
17497        }
17498    }
17499    #[inline]
17500    fn syntax(&self) -> &SyntaxNode {
17501        &self.syntax
17502    }
17503}
17504impl AstNode for AlterOperatorClass {
17505    #[inline]
17506    fn can_cast(kind: SyntaxKind) -> bool {
17507        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17508    }
17509    #[inline]
17510    fn cast(syntax: SyntaxNode) -> Option<Self> {
17511        if Self::can_cast(syntax.kind()) {
17512            Some(Self { syntax })
17513        } else {
17514            None
17515        }
17516    }
17517    #[inline]
17518    fn syntax(&self) -> &SyntaxNode {
17519        &self.syntax
17520    }
17521}
17522impl AstNode for AlterOperatorFamily {
17523    #[inline]
17524    fn can_cast(kind: SyntaxKind) -> bool {
17525        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17526    }
17527    #[inline]
17528    fn cast(syntax: SyntaxNode) -> Option<Self> {
17529        if Self::can_cast(syntax.kind()) {
17530            Some(Self { syntax })
17531        } else {
17532            None
17533        }
17534    }
17535    #[inline]
17536    fn syntax(&self) -> &SyntaxNode {
17537        &self.syntax
17538    }
17539}
17540impl AstNode for AlterOption {
17541    #[inline]
17542    fn can_cast(kind: SyntaxKind) -> bool {
17543        kind == SyntaxKind::ALTER_OPTION
17544    }
17545    #[inline]
17546    fn cast(syntax: SyntaxNode) -> Option<Self> {
17547        if Self::can_cast(syntax.kind()) {
17548            Some(Self { syntax })
17549        } else {
17550            None
17551        }
17552    }
17553    #[inline]
17554    fn syntax(&self) -> &SyntaxNode {
17555        &self.syntax
17556    }
17557}
17558impl AstNode for AlterOptionList {
17559    #[inline]
17560    fn can_cast(kind: SyntaxKind) -> bool {
17561        kind == SyntaxKind::ALTER_OPTION_LIST
17562    }
17563    #[inline]
17564    fn cast(syntax: SyntaxNode) -> Option<Self> {
17565        if Self::can_cast(syntax.kind()) {
17566            Some(Self { syntax })
17567        } else {
17568            None
17569        }
17570    }
17571    #[inline]
17572    fn syntax(&self) -> &SyntaxNode {
17573        &self.syntax
17574    }
17575}
17576impl AstNode for AlterPolicy {
17577    #[inline]
17578    fn can_cast(kind: SyntaxKind) -> bool {
17579        kind == SyntaxKind::ALTER_POLICY
17580    }
17581    #[inline]
17582    fn cast(syntax: SyntaxNode) -> Option<Self> {
17583        if Self::can_cast(syntax.kind()) {
17584            Some(Self { syntax })
17585        } else {
17586            None
17587        }
17588    }
17589    #[inline]
17590    fn syntax(&self) -> &SyntaxNode {
17591        &self.syntax
17592    }
17593}
17594impl AstNode for AlterProcedure {
17595    #[inline]
17596    fn can_cast(kind: SyntaxKind) -> bool {
17597        kind == SyntaxKind::ALTER_PROCEDURE
17598    }
17599    #[inline]
17600    fn cast(syntax: SyntaxNode) -> Option<Self> {
17601        if Self::can_cast(syntax.kind()) {
17602            Some(Self { syntax })
17603        } else {
17604            None
17605        }
17606    }
17607    #[inline]
17608    fn syntax(&self) -> &SyntaxNode {
17609        &self.syntax
17610    }
17611}
17612impl AstNode for AlterPublication {
17613    #[inline]
17614    fn can_cast(kind: SyntaxKind) -> bool {
17615        kind == SyntaxKind::ALTER_PUBLICATION
17616    }
17617    #[inline]
17618    fn cast(syntax: SyntaxNode) -> Option<Self> {
17619        if Self::can_cast(syntax.kind()) {
17620            Some(Self { syntax })
17621        } else {
17622            None
17623        }
17624    }
17625    #[inline]
17626    fn syntax(&self) -> &SyntaxNode {
17627        &self.syntax
17628    }
17629}
17630impl AstNode for AlterRole {
17631    #[inline]
17632    fn can_cast(kind: SyntaxKind) -> bool {
17633        kind == SyntaxKind::ALTER_ROLE
17634    }
17635    #[inline]
17636    fn cast(syntax: SyntaxNode) -> Option<Self> {
17637        if Self::can_cast(syntax.kind()) {
17638            Some(Self { syntax })
17639        } else {
17640            None
17641        }
17642    }
17643    #[inline]
17644    fn syntax(&self) -> &SyntaxNode {
17645        &self.syntax
17646    }
17647}
17648impl AstNode for AlterRoutine {
17649    #[inline]
17650    fn can_cast(kind: SyntaxKind) -> bool {
17651        kind == SyntaxKind::ALTER_ROUTINE
17652    }
17653    #[inline]
17654    fn cast(syntax: SyntaxNode) -> Option<Self> {
17655        if Self::can_cast(syntax.kind()) {
17656            Some(Self { syntax })
17657        } else {
17658            None
17659        }
17660    }
17661    #[inline]
17662    fn syntax(&self) -> &SyntaxNode {
17663        &self.syntax
17664    }
17665}
17666impl AstNode for AlterRule {
17667    #[inline]
17668    fn can_cast(kind: SyntaxKind) -> bool {
17669        kind == SyntaxKind::ALTER_RULE
17670    }
17671    #[inline]
17672    fn cast(syntax: SyntaxNode) -> Option<Self> {
17673        if Self::can_cast(syntax.kind()) {
17674            Some(Self { syntax })
17675        } else {
17676            None
17677        }
17678    }
17679    #[inline]
17680    fn syntax(&self) -> &SyntaxNode {
17681        &self.syntax
17682    }
17683}
17684impl AstNode for AlterSchema {
17685    #[inline]
17686    fn can_cast(kind: SyntaxKind) -> bool {
17687        kind == SyntaxKind::ALTER_SCHEMA
17688    }
17689    #[inline]
17690    fn cast(syntax: SyntaxNode) -> Option<Self> {
17691        if Self::can_cast(syntax.kind()) {
17692            Some(Self { syntax })
17693        } else {
17694            None
17695        }
17696    }
17697    #[inline]
17698    fn syntax(&self) -> &SyntaxNode {
17699        &self.syntax
17700    }
17701}
17702impl AstNode for AlterSequence {
17703    #[inline]
17704    fn can_cast(kind: SyntaxKind) -> bool {
17705        kind == SyntaxKind::ALTER_SEQUENCE
17706    }
17707    #[inline]
17708    fn cast(syntax: SyntaxNode) -> Option<Self> {
17709        if Self::can_cast(syntax.kind()) {
17710            Some(Self { syntax })
17711        } else {
17712            None
17713        }
17714    }
17715    #[inline]
17716    fn syntax(&self) -> &SyntaxNode {
17717        &self.syntax
17718    }
17719}
17720impl AstNode for AlterServer {
17721    #[inline]
17722    fn can_cast(kind: SyntaxKind) -> bool {
17723        kind == SyntaxKind::ALTER_SERVER
17724    }
17725    #[inline]
17726    fn cast(syntax: SyntaxNode) -> Option<Self> {
17727        if Self::can_cast(syntax.kind()) {
17728            Some(Self { syntax })
17729        } else {
17730            None
17731        }
17732    }
17733    #[inline]
17734    fn syntax(&self) -> &SyntaxNode {
17735        &self.syntax
17736    }
17737}
17738impl AstNode for AlterSetStatistics {
17739    #[inline]
17740    fn can_cast(kind: SyntaxKind) -> bool {
17741        kind == SyntaxKind::ALTER_SET_STATISTICS
17742    }
17743    #[inline]
17744    fn cast(syntax: SyntaxNode) -> Option<Self> {
17745        if Self::can_cast(syntax.kind()) {
17746            Some(Self { syntax })
17747        } else {
17748            None
17749        }
17750    }
17751    #[inline]
17752    fn syntax(&self) -> &SyntaxNode {
17753        &self.syntax
17754    }
17755}
17756impl AstNode for AlterStatistics {
17757    #[inline]
17758    fn can_cast(kind: SyntaxKind) -> bool {
17759        kind == SyntaxKind::ALTER_STATISTICS
17760    }
17761    #[inline]
17762    fn cast(syntax: SyntaxNode) -> Option<Self> {
17763        if Self::can_cast(syntax.kind()) {
17764            Some(Self { syntax })
17765        } else {
17766            None
17767        }
17768    }
17769    #[inline]
17770    fn syntax(&self) -> &SyntaxNode {
17771        &self.syntax
17772    }
17773}
17774impl AstNode for AlterSubscription {
17775    #[inline]
17776    fn can_cast(kind: SyntaxKind) -> bool {
17777        kind == SyntaxKind::ALTER_SUBSCRIPTION
17778    }
17779    #[inline]
17780    fn cast(syntax: SyntaxNode) -> Option<Self> {
17781        if Self::can_cast(syntax.kind()) {
17782            Some(Self { syntax })
17783        } else {
17784            None
17785        }
17786    }
17787    #[inline]
17788    fn syntax(&self) -> &SyntaxNode {
17789        &self.syntax
17790    }
17791}
17792impl AstNode for AlterSystem {
17793    #[inline]
17794    fn can_cast(kind: SyntaxKind) -> bool {
17795        kind == SyntaxKind::ALTER_SYSTEM
17796    }
17797    #[inline]
17798    fn cast(syntax: SyntaxNode) -> Option<Self> {
17799        if Self::can_cast(syntax.kind()) {
17800            Some(Self { syntax })
17801        } else {
17802            None
17803        }
17804    }
17805    #[inline]
17806    fn syntax(&self) -> &SyntaxNode {
17807        &self.syntax
17808    }
17809}
17810impl AstNode for AlterTable {
17811    #[inline]
17812    fn can_cast(kind: SyntaxKind) -> bool {
17813        kind == SyntaxKind::ALTER_TABLE
17814    }
17815    #[inline]
17816    fn cast(syntax: SyntaxNode) -> Option<Self> {
17817        if Self::can_cast(syntax.kind()) {
17818            Some(Self { syntax })
17819        } else {
17820            None
17821        }
17822    }
17823    #[inline]
17824    fn syntax(&self) -> &SyntaxNode {
17825        &self.syntax
17826    }
17827}
17828impl AstNode for AlterTablespace {
17829    #[inline]
17830    fn can_cast(kind: SyntaxKind) -> bool {
17831        kind == SyntaxKind::ALTER_TABLESPACE
17832    }
17833    #[inline]
17834    fn cast(syntax: SyntaxNode) -> Option<Self> {
17835        if Self::can_cast(syntax.kind()) {
17836            Some(Self { syntax })
17837        } else {
17838            None
17839        }
17840    }
17841    #[inline]
17842    fn syntax(&self) -> &SyntaxNode {
17843        &self.syntax
17844    }
17845}
17846impl AstNode for AlterTextSearchConfiguration {
17847    #[inline]
17848    fn can_cast(kind: SyntaxKind) -> bool {
17849        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17850    }
17851    #[inline]
17852    fn cast(syntax: SyntaxNode) -> Option<Self> {
17853        if Self::can_cast(syntax.kind()) {
17854            Some(Self { syntax })
17855        } else {
17856            None
17857        }
17858    }
17859    #[inline]
17860    fn syntax(&self) -> &SyntaxNode {
17861        &self.syntax
17862    }
17863}
17864impl AstNode for AlterTextSearchDictionary {
17865    #[inline]
17866    fn can_cast(kind: SyntaxKind) -> bool {
17867        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
17868    }
17869    #[inline]
17870    fn cast(syntax: SyntaxNode) -> Option<Self> {
17871        if Self::can_cast(syntax.kind()) {
17872            Some(Self { syntax })
17873        } else {
17874            None
17875        }
17876    }
17877    #[inline]
17878    fn syntax(&self) -> &SyntaxNode {
17879        &self.syntax
17880    }
17881}
17882impl AstNode for AlterTextSearchParser {
17883    #[inline]
17884    fn can_cast(kind: SyntaxKind) -> bool {
17885        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
17886    }
17887    #[inline]
17888    fn cast(syntax: SyntaxNode) -> Option<Self> {
17889        if Self::can_cast(syntax.kind()) {
17890            Some(Self { syntax })
17891        } else {
17892            None
17893        }
17894    }
17895    #[inline]
17896    fn syntax(&self) -> &SyntaxNode {
17897        &self.syntax
17898    }
17899}
17900impl AstNode for AlterTextSearchTemplate {
17901    #[inline]
17902    fn can_cast(kind: SyntaxKind) -> bool {
17903        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
17904    }
17905    #[inline]
17906    fn cast(syntax: SyntaxNode) -> Option<Self> {
17907        if Self::can_cast(syntax.kind()) {
17908            Some(Self { syntax })
17909        } else {
17910            None
17911        }
17912    }
17913    #[inline]
17914    fn syntax(&self) -> &SyntaxNode {
17915        &self.syntax
17916    }
17917}
17918impl AstNode for AlterTrigger {
17919    #[inline]
17920    fn can_cast(kind: SyntaxKind) -> bool {
17921        kind == SyntaxKind::ALTER_TRIGGER
17922    }
17923    #[inline]
17924    fn cast(syntax: SyntaxNode) -> Option<Self> {
17925        if Self::can_cast(syntax.kind()) {
17926            Some(Self { syntax })
17927        } else {
17928            None
17929        }
17930    }
17931    #[inline]
17932    fn syntax(&self) -> &SyntaxNode {
17933        &self.syntax
17934    }
17935}
17936impl AstNode for AlterType {
17937    #[inline]
17938    fn can_cast(kind: SyntaxKind) -> bool {
17939        kind == SyntaxKind::ALTER_TYPE
17940    }
17941    #[inline]
17942    fn cast(syntax: SyntaxNode) -> Option<Self> {
17943        if Self::can_cast(syntax.kind()) {
17944            Some(Self { syntax })
17945        } else {
17946            None
17947        }
17948    }
17949    #[inline]
17950    fn syntax(&self) -> &SyntaxNode {
17951        &self.syntax
17952    }
17953}
17954impl AstNode for AlterUser {
17955    #[inline]
17956    fn can_cast(kind: SyntaxKind) -> bool {
17957        kind == SyntaxKind::ALTER_USER
17958    }
17959    #[inline]
17960    fn cast(syntax: SyntaxNode) -> Option<Self> {
17961        if Self::can_cast(syntax.kind()) {
17962            Some(Self { syntax })
17963        } else {
17964            None
17965        }
17966    }
17967    #[inline]
17968    fn syntax(&self) -> &SyntaxNode {
17969        &self.syntax
17970    }
17971}
17972impl AstNode for AlterUserMapping {
17973    #[inline]
17974    fn can_cast(kind: SyntaxKind) -> bool {
17975        kind == SyntaxKind::ALTER_USER_MAPPING
17976    }
17977    #[inline]
17978    fn cast(syntax: SyntaxNode) -> Option<Self> {
17979        if Self::can_cast(syntax.kind()) {
17980            Some(Self { syntax })
17981        } else {
17982            None
17983        }
17984    }
17985    #[inline]
17986    fn syntax(&self) -> &SyntaxNode {
17987        &self.syntax
17988    }
17989}
17990impl AstNode for AlterView {
17991    #[inline]
17992    fn can_cast(kind: SyntaxKind) -> bool {
17993        kind == SyntaxKind::ALTER_VIEW
17994    }
17995    #[inline]
17996    fn cast(syntax: SyntaxNode) -> Option<Self> {
17997        if Self::can_cast(syntax.kind()) {
17998            Some(Self { syntax })
17999        } else {
18000            None
18001        }
18002    }
18003    #[inline]
18004    fn syntax(&self) -> &SyntaxNode {
18005        &self.syntax
18006    }
18007}
18008impl AstNode for Analyze {
18009    #[inline]
18010    fn can_cast(kind: SyntaxKind) -> bool {
18011        kind == SyntaxKind::ANALYZE
18012    }
18013    #[inline]
18014    fn cast(syntax: SyntaxNode) -> Option<Self> {
18015        if Self::can_cast(syntax.kind()) {
18016            Some(Self { syntax })
18017        } else {
18018            None
18019        }
18020    }
18021    #[inline]
18022    fn syntax(&self) -> &SyntaxNode {
18023        &self.syntax
18024    }
18025}
18026impl AstNode for AnyFn {
18027    #[inline]
18028    fn can_cast(kind: SyntaxKind) -> bool {
18029        kind == SyntaxKind::ANY_FN
18030    }
18031    #[inline]
18032    fn cast(syntax: SyntaxNode) -> Option<Self> {
18033        if Self::can_cast(syntax.kind()) {
18034            Some(Self { syntax })
18035        } else {
18036            None
18037        }
18038    }
18039    #[inline]
18040    fn syntax(&self) -> &SyntaxNode {
18041        &self.syntax
18042    }
18043}
18044impl AstNode for Arg {
18045    #[inline]
18046    fn can_cast(kind: SyntaxKind) -> bool {
18047        kind == SyntaxKind::ARG
18048    }
18049    #[inline]
18050    fn cast(syntax: SyntaxNode) -> Option<Self> {
18051        if Self::can_cast(syntax.kind()) {
18052            Some(Self { syntax })
18053        } else {
18054            None
18055        }
18056    }
18057    #[inline]
18058    fn syntax(&self) -> &SyntaxNode {
18059        &self.syntax
18060    }
18061}
18062impl AstNode for ArgList {
18063    #[inline]
18064    fn can_cast(kind: SyntaxKind) -> bool {
18065        kind == SyntaxKind::ARG_LIST
18066    }
18067    #[inline]
18068    fn cast(syntax: SyntaxNode) -> Option<Self> {
18069        if Self::can_cast(syntax.kind()) {
18070            Some(Self { syntax })
18071        } else {
18072            None
18073        }
18074    }
18075    #[inline]
18076    fn syntax(&self) -> &SyntaxNode {
18077        &self.syntax
18078    }
18079}
18080impl AstNode for ArrayExpr {
18081    #[inline]
18082    fn can_cast(kind: SyntaxKind) -> bool {
18083        kind == SyntaxKind::ARRAY_EXPR
18084    }
18085    #[inline]
18086    fn cast(syntax: SyntaxNode) -> Option<Self> {
18087        if Self::can_cast(syntax.kind()) {
18088            Some(Self { syntax })
18089        } else {
18090            None
18091        }
18092    }
18093    #[inline]
18094    fn syntax(&self) -> &SyntaxNode {
18095        &self.syntax
18096    }
18097}
18098impl AstNode for ArrayType {
18099    #[inline]
18100    fn can_cast(kind: SyntaxKind) -> bool {
18101        kind == SyntaxKind::ARRAY_TYPE
18102    }
18103    #[inline]
18104    fn cast(syntax: SyntaxNode) -> Option<Self> {
18105        if Self::can_cast(syntax.kind()) {
18106            Some(Self { syntax })
18107        } else {
18108            None
18109        }
18110    }
18111    #[inline]
18112    fn syntax(&self) -> &SyntaxNode {
18113        &self.syntax
18114    }
18115}
18116impl AstNode for AsFuncOption {
18117    #[inline]
18118    fn can_cast(kind: SyntaxKind) -> bool {
18119        kind == SyntaxKind::AS_FUNC_OPTION
18120    }
18121    #[inline]
18122    fn cast(syntax: SyntaxNode) -> Option<Self> {
18123        if Self::can_cast(syntax.kind()) {
18124            Some(Self { syntax })
18125        } else {
18126            None
18127        }
18128    }
18129    #[inline]
18130    fn syntax(&self) -> &SyntaxNode {
18131        &self.syntax
18132    }
18133}
18134impl AstNode for AsName {
18135    #[inline]
18136    fn can_cast(kind: SyntaxKind) -> bool {
18137        kind == SyntaxKind::AS_NAME
18138    }
18139    #[inline]
18140    fn cast(syntax: SyntaxNode) -> Option<Self> {
18141        if Self::can_cast(syntax.kind()) {
18142            Some(Self { syntax })
18143        } else {
18144            None
18145        }
18146    }
18147    #[inline]
18148    fn syntax(&self) -> &SyntaxNode {
18149        &self.syntax
18150    }
18151}
18152impl AstNode for AtTimeZone {
18153    #[inline]
18154    fn can_cast(kind: SyntaxKind) -> bool {
18155        kind == SyntaxKind::AT_TIME_ZONE
18156    }
18157    #[inline]
18158    fn cast(syntax: SyntaxNode) -> Option<Self> {
18159        if Self::can_cast(syntax.kind()) {
18160            Some(Self { syntax })
18161        } else {
18162            None
18163        }
18164    }
18165    #[inline]
18166    fn syntax(&self) -> &SyntaxNode {
18167        &self.syntax
18168    }
18169}
18170impl AstNode for AttachPartition {
18171    #[inline]
18172    fn can_cast(kind: SyntaxKind) -> bool {
18173        kind == SyntaxKind::ATTACH_PARTITION
18174    }
18175    #[inline]
18176    fn cast(syntax: SyntaxNode) -> Option<Self> {
18177        if Self::can_cast(syntax.kind()) {
18178            Some(Self { syntax })
18179        } else {
18180            None
18181        }
18182    }
18183    #[inline]
18184    fn syntax(&self) -> &SyntaxNode {
18185        &self.syntax
18186    }
18187}
18188impl AstNode for AttributeList {
18189    #[inline]
18190    fn can_cast(kind: SyntaxKind) -> bool {
18191        kind == SyntaxKind::ATTRIBUTE_LIST
18192    }
18193    #[inline]
18194    fn cast(syntax: SyntaxNode) -> Option<Self> {
18195        if Self::can_cast(syntax.kind()) {
18196            Some(Self { syntax })
18197        } else {
18198            None
18199        }
18200    }
18201    #[inline]
18202    fn syntax(&self) -> &SyntaxNode {
18203        &self.syntax
18204    }
18205}
18206impl AstNode for AttributeOption {
18207    #[inline]
18208    fn can_cast(kind: SyntaxKind) -> bool {
18209        kind == SyntaxKind::ATTRIBUTE_OPTION
18210    }
18211    #[inline]
18212    fn cast(syntax: SyntaxNode) -> Option<Self> {
18213        if Self::can_cast(syntax.kind()) {
18214            Some(Self { syntax })
18215        } else {
18216            None
18217        }
18218    }
18219    #[inline]
18220    fn syntax(&self) -> &SyntaxNode {
18221        &self.syntax
18222    }
18223}
18224impl AstNode for AttributeValue {
18225    #[inline]
18226    fn can_cast(kind: SyntaxKind) -> bool {
18227        kind == SyntaxKind::ATTRIBUTE_VALUE
18228    }
18229    #[inline]
18230    fn cast(syntax: SyntaxNode) -> Option<Self> {
18231        if Self::can_cast(syntax.kind()) {
18232            Some(Self { syntax })
18233        } else {
18234            None
18235        }
18236    }
18237    #[inline]
18238    fn syntax(&self) -> &SyntaxNode {
18239        &self.syntax
18240    }
18241}
18242impl AstNode for Begin {
18243    #[inline]
18244    fn can_cast(kind: SyntaxKind) -> bool {
18245        kind == SyntaxKind::BEGIN
18246    }
18247    #[inline]
18248    fn cast(syntax: SyntaxNode) -> Option<Self> {
18249        if Self::can_cast(syntax.kind()) {
18250            Some(Self { syntax })
18251        } else {
18252            None
18253        }
18254    }
18255    #[inline]
18256    fn syntax(&self) -> &SyntaxNode {
18257        &self.syntax
18258    }
18259}
18260impl AstNode for BeginFuncOption {
18261    #[inline]
18262    fn can_cast(kind: SyntaxKind) -> bool {
18263        kind == SyntaxKind::BEGIN_FUNC_OPTION
18264    }
18265    #[inline]
18266    fn cast(syntax: SyntaxNode) -> Option<Self> {
18267        if Self::can_cast(syntax.kind()) {
18268            Some(Self { syntax })
18269        } else {
18270            None
18271        }
18272    }
18273    #[inline]
18274    fn syntax(&self) -> &SyntaxNode {
18275        &self.syntax
18276    }
18277}
18278impl AstNode for BeginFuncOptionList {
18279    #[inline]
18280    fn can_cast(kind: SyntaxKind) -> bool {
18281        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18282    }
18283    #[inline]
18284    fn cast(syntax: SyntaxNode) -> Option<Self> {
18285        if Self::can_cast(syntax.kind()) {
18286            Some(Self { syntax })
18287        } else {
18288            None
18289        }
18290    }
18291    #[inline]
18292    fn syntax(&self) -> &SyntaxNode {
18293        &self.syntax
18294    }
18295}
18296impl AstNode for BetweenExpr {
18297    #[inline]
18298    fn can_cast(kind: SyntaxKind) -> bool {
18299        kind == SyntaxKind::BETWEEN_EXPR
18300    }
18301    #[inline]
18302    fn cast(syntax: SyntaxNode) -> Option<Self> {
18303        if Self::can_cast(syntax.kind()) {
18304            Some(Self { syntax })
18305        } else {
18306            None
18307        }
18308    }
18309    #[inline]
18310    fn syntax(&self) -> &SyntaxNode {
18311        &self.syntax
18312    }
18313}
18314impl AstNode for BinExpr {
18315    #[inline]
18316    fn can_cast(kind: SyntaxKind) -> bool {
18317        kind == SyntaxKind::BIN_EXPR
18318    }
18319    #[inline]
18320    fn cast(syntax: SyntaxNode) -> Option<Self> {
18321        if Self::can_cast(syntax.kind()) {
18322            Some(Self { syntax })
18323        } else {
18324            None
18325        }
18326    }
18327    #[inline]
18328    fn syntax(&self) -> &SyntaxNode {
18329        &self.syntax
18330    }
18331}
18332impl AstNode for BitType {
18333    #[inline]
18334    fn can_cast(kind: SyntaxKind) -> bool {
18335        kind == SyntaxKind::BIT_TYPE
18336    }
18337    #[inline]
18338    fn cast(syntax: SyntaxNode) -> Option<Self> {
18339        if Self::can_cast(syntax.kind()) {
18340            Some(Self { syntax })
18341        } else {
18342            None
18343        }
18344    }
18345    #[inline]
18346    fn syntax(&self) -> &SyntaxNode {
18347        &self.syntax
18348    }
18349}
18350impl AstNode for Call {
18351    #[inline]
18352    fn can_cast(kind: SyntaxKind) -> bool {
18353        kind == SyntaxKind::CALL
18354    }
18355    #[inline]
18356    fn cast(syntax: SyntaxNode) -> Option<Self> {
18357        if Self::can_cast(syntax.kind()) {
18358            Some(Self { syntax })
18359        } else {
18360            None
18361        }
18362    }
18363    #[inline]
18364    fn syntax(&self) -> &SyntaxNode {
18365        &self.syntax
18366    }
18367}
18368impl AstNode for CallExpr {
18369    #[inline]
18370    fn can_cast(kind: SyntaxKind) -> bool {
18371        kind == SyntaxKind::CALL_EXPR
18372    }
18373    #[inline]
18374    fn cast(syntax: SyntaxNode) -> Option<Self> {
18375        if Self::can_cast(syntax.kind()) {
18376            Some(Self { syntax })
18377        } else {
18378            None
18379        }
18380    }
18381    #[inline]
18382    fn syntax(&self) -> &SyntaxNode {
18383        &self.syntax
18384    }
18385}
18386impl AstNode for Cascade {
18387    #[inline]
18388    fn can_cast(kind: SyntaxKind) -> bool {
18389        kind == SyntaxKind::CASCADE
18390    }
18391    #[inline]
18392    fn cast(syntax: SyntaxNode) -> Option<Self> {
18393        if Self::can_cast(syntax.kind()) {
18394            Some(Self { syntax })
18395        } else {
18396            None
18397        }
18398    }
18399    #[inline]
18400    fn syntax(&self) -> &SyntaxNode {
18401        &self.syntax
18402    }
18403}
18404impl AstNode for CaseExpr {
18405    #[inline]
18406    fn can_cast(kind: SyntaxKind) -> bool {
18407        kind == SyntaxKind::CASE_EXPR
18408    }
18409    #[inline]
18410    fn cast(syntax: SyntaxNode) -> Option<Self> {
18411        if Self::can_cast(syntax.kind()) {
18412            Some(Self { syntax })
18413        } else {
18414            None
18415        }
18416    }
18417    #[inline]
18418    fn syntax(&self) -> &SyntaxNode {
18419        &self.syntax
18420    }
18421}
18422impl AstNode for CastExpr {
18423    #[inline]
18424    fn can_cast(kind: SyntaxKind) -> bool {
18425        kind == SyntaxKind::CAST_EXPR
18426    }
18427    #[inline]
18428    fn cast(syntax: SyntaxNode) -> Option<Self> {
18429        if Self::can_cast(syntax.kind()) {
18430            Some(Self { syntax })
18431        } else {
18432            None
18433        }
18434    }
18435    #[inline]
18436    fn syntax(&self) -> &SyntaxNode {
18437        &self.syntax
18438    }
18439}
18440impl AstNode for CastSig {
18441    #[inline]
18442    fn can_cast(kind: SyntaxKind) -> bool {
18443        kind == SyntaxKind::CAST_SIG
18444    }
18445    #[inline]
18446    fn cast(syntax: SyntaxNode) -> Option<Self> {
18447        if Self::can_cast(syntax.kind()) {
18448            Some(Self { syntax })
18449        } else {
18450            None
18451        }
18452    }
18453    #[inline]
18454    fn syntax(&self) -> &SyntaxNode {
18455        &self.syntax
18456    }
18457}
18458impl AstNode for CharType {
18459    #[inline]
18460    fn can_cast(kind: SyntaxKind) -> bool {
18461        kind == SyntaxKind::CHAR_TYPE
18462    }
18463    #[inline]
18464    fn cast(syntax: SyntaxNode) -> Option<Self> {
18465        if Self::can_cast(syntax.kind()) {
18466            Some(Self { syntax })
18467        } else {
18468            None
18469        }
18470    }
18471    #[inline]
18472    fn syntax(&self) -> &SyntaxNode {
18473        &self.syntax
18474    }
18475}
18476impl AstNode for CheckConstraint {
18477    #[inline]
18478    fn can_cast(kind: SyntaxKind) -> bool {
18479        kind == SyntaxKind::CHECK_CONSTRAINT
18480    }
18481    #[inline]
18482    fn cast(syntax: SyntaxNode) -> Option<Self> {
18483        if Self::can_cast(syntax.kind()) {
18484            Some(Self { syntax })
18485        } else {
18486            None
18487        }
18488    }
18489    #[inline]
18490    fn syntax(&self) -> &SyntaxNode {
18491        &self.syntax
18492    }
18493}
18494impl AstNode for Checkpoint {
18495    #[inline]
18496    fn can_cast(kind: SyntaxKind) -> bool {
18497        kind == SyntaxKind::CHECKPOINT
18498    }
18499    #[inline]
18500    fn cast(syntax: SyntaxNode) -> Option<Self> {
18501        if Self::can_cast(syntax.kind()) {
18502            Some(Self { syntax })
18503        } else {
18504            None
18505        }
18506    }
18507    #[inline]
18508    fn syntax(&self) -> &SyntaxNode {
18509        &self.syntax
18510    }
18511}
18512impl AstNode for Close {
18513    #[inline]
18514    fn can_cast(kind: SyntaxKind) -> bool {
18515        kind == SyntaxKind::CLOSE
18516    }
18517    #[inline]
18518    fn cast(syntax: SyntaxNode) -> Option<Self> {
18519        if Self::can_cast(syntax.kind()) {
18520            Some(Self { syntax })
18521        } else {
18522            None
18523        }
18524    }
18525    #[inline]
18526    fn syntax(&self) -> &SyntaxNode {
18527        &self.syntax
18528    }
18529}
18530impl AstNode for Cluster {
18531    #[inline]
18532    fn can_cast(kind: SyntaxKind) -> bool {
18533        kind == SyntaxKind::CLUSTER
18534    }
18535    #[inline]
18536    fn cast(syntax: SyntaxNode) -> Option<Self> {
18537        if Self::can_cast(syntax.kind()) {
18538            Some(Self { syntax })
18539        } else {
18540            None
18541        }
18542    }
18543    #[inline]
18544    fn syntax(&self) -> &SyntaxNode {
18545        &self.syntax
18546    }
18547}
18548impl AstNode for ClusterOn {
18549    #[inline]
18550    fn can_cast(kind: SyntaxKind) -> bool {
18551        kind == SyntaxKind::CLUSTER_ON
18552    }
18553    #[inline]
18554    fn cast(syntax: SyntaxNode) -> Option<Self> {
18555        if Self::can_cast(syntax.kind()) {
18556            Some(Self { syntax })
18557        } else {
18558            None
18559        }
18560    }
18561    #[inline]
18562    fn syntax(&self) -> &SyntaxNode {
18563        &self.syntax
18564    }
18565}
18566impl AstNode for Collate {
18567    #[inline]
18568    fn can_cast(kind: SyntaxKind) -> bool {
18569        kind == SyntaxKind::COLLATE
18570    }
18571    #[inline]
18572    fn cast(syntax: SyntaxNode) -> Option<Self> {
18573        if Self::can_cast(syntax.kind()) {
18574            Some(Self { syntax })
18575        } else {
18576            None
18577        }
18578    }
18579    #[inline]
18580    fn syntax(&self) -> &SyntaxNode {
18581        &self.syntax
18582    }
18583}
18584impl AstNode for ColonColon {
18585    #[inline]
18586    fn can_cast(kind: SyntaxKind) -> bool {
18587        kind == SyntaxKind::COLON_COLON
18588    }
18589    #[inline]
18590    fn cast(syntax: SyntaxNode) -> Option<Self> {
18591        if Self::can_cast(syntax.kind()) {
18592            Some(Self { syntax })
18593        } else {
18594            None
18595        }
18596    }
18597    #[inline]
18598    fn syntax(&self) -> &SyntaxNode {
18599        &self.syntax
18600    }
18601}
18602impl AstNode for ColonEq {
18603    #[inline]
18604    fn can_cast(kind: SyntaxKind) -> bool {
18605        kind == SyntaxKind::COLON_EQ
18606    }
18607    #[inline]
18608    fn cast(syntax: SyntaxNode) -> Option<Self> {
18609        if Self::can_cast(syntax.kind()) {
18610            Some(Self { syntax })
18611        } else {
18612            None
18613        }
18614    }
18615    #[inline]
18616    fn syntax(&self) -> &SyntaxNode {
18617        &self.syntax
18618    }
18619}
18620impl AstNode for Column {
18621    #[inline]
18622    fn can_cast(kind: SyntaxKind) -> bool {
18623        kind == SyntaxKind::COLUMN
18624    }
18625    #[inline]
18626    fn cast(syntax: SyntaxNode) -> Option<Self> {
18627        if Self::can_cast(syntax.kind()) {
18628            Some(Self { syntax })
18629        } else {
18630            None
18631        }
18632    }
18633    #[inline]
18634    fn syntax(&self) -> &SyntaxNode {
18635        &self.syntax
18636    }
18637}
18638impl AstNode for ColumnList {
18639    #[inline]
18640    fn can_cast(kind: SyntaxKind) -> bool {
18641        kind == SyntaxKind::COLUMN_LIST
18642    }
18643    #[inline]
18644    fn cast(syntax: SyntaxNode) -> Option<Self> {
18645        if Self::can_cast(syntax.kind()) {
18646            Some(Self { syntax })
18647        } else {
18648            None
18649        }
18650    }
18651    #[inline]
18652    fn syntax(&self) -> &SyntaxNode {
18653        &self.syntax
18654    }
18655}
18656impl AstNode for CommentOn {
18657    #[inline]
18658    fn can_cast(kind: SyntaxKind) -> bool {
18659        kind == SyntaxKind::COMMENT_ON
18660    }
18661    #[inline]
18662    fn cast(syntax: SyntaxNode) -> Option<Self> {
18663        if Self::can_cast(syntax.kind()) {
18664            Some(Self { syntax })
18665        } else {
18666            None
18667        }
18668    }
18669    #[inline]
18670    fn syntax(&self) -> &SyntaxNode {
18671        &self.syntax
18672    }
18673}
18674impl AstNode for Commit {
18675    #[inline]
18676    fn can_cast(kind: SyntaxKind) -> bool {
18677        kind == SyntaxKind::COMMIT
18678    }
18679    #[inline]
18680    fn cast(syntax: SyntaxNode) -> Option<Self> {
18681        if Self::can_cast(syntax.kind()) {
18682            Some(Self { syntax })
18683        } else {
18684            None
18685        }
18686    }
18687    #[inline]
18688    fn syntax(&self) -> &SyntaxNode {
18689        &self.syntax
18690    }
18691}
18692impl AstNode for CompoundSelect {
18693    #[inline]
18694    fn can_cast(kind: SyntaxKind) -> bool {
18695        kind == SyntaxKind::COMPOUND_SELECT
18696    }
18697    #[inline]
18698    fn cast(syntax: SyntaxNode) -> Option<Self> {
18699        if Self::can_cast(syntax.kind()) {
18700            Some(Self { syntax })
18701        } else {
18702            None
18703        }
18704    }
18705    #[inline]
18706    fn syntax(&self) -> &SyntaxNode {
18707        &self.syntax
18708    }
18709}
18710impl AstNode for CompressionMethod {
18711    #[inline]
18712    fn can_cast(kind: SyntaxKind) -> bool {
18713        kind == SyntaxKind::COMPRESSION_METHOD
18714    }
18715    #[inline]
18716    fn cast(syntax: SyntaxNode) -> Option<Self> {
18717        if Self::can_cast(syntax.kind()) {
18718            Some(Self { syntax })
18719        } else {
18720            None
18721        }
18722    }
18723    #[inline]
18724    fn syntax(&self) -> &SyntaxNode {
18725        &self.syntax
18726    }
18727}
18728impl AstNode for ConflictDoNothing {
18729    #[inline]
18730    fn can_cast(kind: SyntaxKind) -> bool {
18731        kind == SyntaxKind::CONFLICT_DO_NOTHING
18732    }
18733    #[inline]
18734    fn cast(syntax: SyntaxNode) -> Option<Self> {
18735        if Self::can_cast(syntax.kind()) {
18736            Some(Self { syntax })
18737        } else {
18738            None
18739        }
18740    }
18741    #[inline]
18742    fn syntax(&self) -> &SyntaxNode {
18743        &self.syntax
18744    }
18745}
18746impl AstNode for ConflictDoUpdateSet {
18747    #[inline]
18748    fn can_cast(kind: SyntaxKind) -> bool {
18749        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18750    }
18751    #[inline]
18752    fn cast(syntax: SyntaxNode) -> Option<Self> {
18753        if Self::can_cast(syntax.kind()) {
18754            Some(Self { syntax })
18755        } else {
18756            None
18757        }
18758    }
18759    #[inline]
18760    fn syntax(&self) -> &SyntaxNode {
18761        &self.syntax
18762    }
18763}
18764impl AstNode for ConflictIndexItem {
18765    #[inline]
18766    fn can_cast(kind: SyntaxKind) -> bool {
18767        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18768    }
18769    #[inline]
18770    fn cast(syntax: SyntaxNode) -> Option<Self> {
18771        if Self::can_cast(syntax.kind()) {
18772            Some(Self { syntax })
18773        } else {
18774            None
18775        }
18776    }
18777    #[inline]
18778    fn syntax(&self) -> &SyntaxNode {
18779        &self.syntax
18780    }
18781}
18782impl AstNode for ConflictIndexItemList {
18783    #[inline]
18784    fn can_cast(kind: SyntaxKind) -> bool {
18785        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18786    }
18787    #[inline]
18788    fn cast(syntax: SyntaxNode) -> Option<Self> {
18789        if Self::can_cast(syntax.kind()) {
18790            Some(Self { syntax })
18791        } else {
18792            None
18793        }
18794    }
18795    #[inline]
18796    fn syntax(&self) -> &SyntaxNode {
18797        &self.syntax
18798    }
18799}
18800impl AstNode for ConflictOnConstraint {
18801    #[inline]
18802    fn can_cast(kind: SyntaxKind) -> bool {
18803        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18804    }
18805    #[inline]
18806    fn cast(syntax: SyntaxNode) -> Option<Self> {
18807        if Self::can_cast(syntax.kind()) {
18808            Some(Self { syntax })
18809        } else {
18810            None
18811        }
18812    }
18813    #[inline]
18814    fn syntax(&self) -> &SyntaxNode {
18815        &self.syntax
18816    }
18817}
18818impl AstNode for ConflictOnIndex {
18819    #[inline]
18820    fn can_cast(kind: SyntaxKind) -> bool {
18821        kind == SyntaxKind::CONFLICT_ON_INDEX
18822    }
18823    #[inline]
18824    fn cast(syntax: SyntaxNode) -> Option<Self> {
18825        if Self::can_cast(syntax.kind()) {
18826            Some(Self { syntax })
18827        } else {
18828            None
18829        }
18830    }
18831    #[inline]
18832    fn syntax(&self) -> &SyntaxNode {
18833        &self.syntax
18834    }
18835}
18836impl AstNode for ConstraintExclusion {
18837    #[inline]
18838    fn can_cast(kind: SyntaxKind) -> bool {
18839        kind == SyntaxKind::CONSTRAINT_EXCLUSION
18840    }
18841    #[inline]
18842    fn cast(syntax: SyntaxNode) -> Option<Self> {
18843        if Self::can_cast(syntax.kind()) {
18844            Some(Self { syntax })
18845        } else {
18846            None
18847        }
18848    }
18849    #[inline]
18850    fn syntax(&self) -> &SyntaxNode {
18851        &self.syntax
18852    }
18853}
18854impl AstNode for ConstraintExclusionList {
18855    #[inline]
18856    fn can_cast(kind: SyntaxKind) -> bool {
18857        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
18858    }
18859    #[inline]
18860    fn cast(syntax: SyntaxNode) -> Option<Self> {
18861        if Self::can_cast(syntax.kind()) {
18862            Some(Self { syntax })
18863        } else {
18864            None
18865        }
18866    }
18867    #[inline]
18868    fn syntax(&self) -> &SyntaxNode {
18869        &self.syntax
18870    }
18871}
18872impl AstNode for ConstraintIncludeClause {
18873    #[inline]
18874    fn can_cast(kind: SyntaxKind) -> bool {
18875        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
18876    }
18877    #[inline]
18878    fn cast(syntax: SyntaxNode) -> Option<Self> {
18879        if Self::can_cast(syntax.kind()) {
18880            Some(Self { syntax })
18881        } else {
18882            None
18883        }
18884    }
18885    #[inline]
18886    fn syntax(&self) -> &SyntaxNode {
18887        &self.syntax
18888    }
18889}
18890impl AstNode for ConstraintIndexMethod {
18891    #[inline]
18892    fn can_cast(kind: SyntaxKind) -> bool {
18893        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
18894    }
18895    #[inline]
18896    fn cast(syntax: SyntaxNode) -> Option<Self> {
18897        if Self::can_cast(syntax.kind()) {
18898            Some(Self { syntax })
18899        } else {
18900            None
18901        }
18902    }
18903    #[inline]
18904    fn syntax(&self) -> &SyntaxNode {
18905        &self.syntax
18906    }
18907}
18908impl AstNode for ConstraintIndexTablespace {
18909    #[inline]
18910    fn can_cast(kind: SyntaxKind) -> bool {
18911        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
18912    }
18913    #[inline]
18914    fn cast(syntax: SyntaxNode) -> Option<Self> {
18915        if Self::can_cast(syntax.kind()) {
18916            Some(Self { syntax })
18917        } else {
18918            None
18919        }
18920    }
18921    #[inline]
18922    fn syntax(&self) -> &SyntaxNode {
18923        &self.syntax
18924    }
18925}
18926impl AstNode for Copy {
18927    #[inline]
18928    fn can_cast(kind: SyntaxKind) -> bool {
18929        kind == SyntaxKind::COPY
18930    }
18931    #[inline]
18932    fn cast(syntax: SyntaxNode) -> Option<Self> {
18933        if Self::can_cast(syntax.kind()) {
18934            Some(Self { syntax })
18935        } else {
18936            None
18937        }
18938    }
18939    #[inline]
18940    fn syntax(&self) -> &SyntaxNode {
18941        &self.syntax
18942    }
18943}
18944impl AstNode for CopyOption {
18945    #[inline]
18946    fn can_cast(kind: SyntaxKind) -> bool {
18947        kind == SyntaxKind::COPY_OPTION
18948    }
18949    #[inline]
18950    fn cast(syntax: SyntaxNode) -> Option<Self> {
18951        if Self::can_cast(syntax.kind()) {
18952            Some(Self { syntax })
18953        } else {
18954            None
18955        }
18956    }
18957    #[inline]
18958    fn syntax(&self) -> &SyntaxNode {
18959        &self.syntax
18960    }
18961}
18962impl AstNode for CopyOptionList {
18963    #[inline]
18964    fn can_cast(kind: SyntaxKind) -> bool {
18965        kind == SyntaxKind::COPY_OPTION_LIST
18966    }
18967    #[inline]
18968    fn cast(syntax: SyntaxNode) -> Option<Self> {
18969        if Self::can_cast(syntax.kind()) {
18970            Some(Self { syntax })
18971        } else {
18972            None
18973        }
18974    }
18975    #[inline]
18976    fn syntax(&self) -> &SyntaxNode {
18977        &self.syntax
18978    }
18979}
18980impl AstNode for CostFuncOption {
18981    #[inline]
18982    fn can_cast(kind: SyntaxKind) -> bool {
18983        kind == SyntaxKind::COST_FUNC_OPTION
18984    }
18985    #[inline]
18986    fn cast(syntax: SyntaxNode) -> Option<Self> {
18987        if Self::can_cast(syntax.kind()) {
18988            Some(Self { syntax })
18989        } else {
18990            None
18991        }
18992    }
18993    #[inline]
18994    fn syntax(&self) -> &SyntaxNode {
18995        &self.syntax
18996    }
18997}
18998impl AstNode for CreateAccessMethod {
18999    #[inline]
19000    fn can_cast(kind: SyntaxKind) -> bool {
19001        kind == SyntaxKind::CREATE_ACCESS_METHOD
19002    }
19003    #[inline]
19004    fn cast(syntax: SyntaxNode) -> Option<Self> {
19005        if Self::can_cast(syntax.kind()) {
19006            Some(Self { syntax })
19007        } else {
19008            None
19009        }
19010    }
19011    #[inline]
19012    fn syntax(&self) -> &SyntaxNode {
19013        &self.syntax
19014    }
19015}
19016impl AstNode for CreateAggregate {
19017    #[inline]
19018    fn can_cast(kind: SyntaxKind) -> bool {
19019        kind == SyntaxKind::CREATE_AGGREGATE
19020    }
19021    #[inline]
19022    fn cast(syntax: SyntaxNode) -> Option<Self> {
19023        if Self::can_cast(syntax.kind()) {
19024            Some(Self { syntax })
19025        } else {
19026            None
19027        }
19028    }
19029    #[inline]
19030    fn syntax(&self) -> &SyntaxNode {
19031        &self.syntax
19032    }
19033}
19034impl AstNode for CreateCast {
19035    #[inline]
19036    fn can_cast(kind: SyntaxKind) -> bool {
19037        kind == SyntaxKind::CREATE_CAST
19038    }
19039    #[inline]
19040    fn cast(syntax: SyntaxNode) -> Option<Self> {
19041        if Self::can_cast(syntax.kind()) {
19042            Some(Self { syntax })
19043        } else {
19044            None
19045        }
19046    }
19047    #[inline]
19048    fn syntax(&self) -> &SyntaxNode {
19049        &self.syntax
19050    }
19051}
19052impl AstNode for CreateCollation {
19053    #[inline]
19054    fn can_cast(kind: SyntaxKind) -> bool {
19055        kind == SyntaxKind::CREATE_COLLATION
19056    }
19057    #[inline]
19058    fn cast(syntax: SyntaxNode) -> Option<Self> {
19059        if Self::can_cast(syntax.kind()) {
19060            Some(Self { syntax })
19061        } else {
19062            None
19063        }
19064    }
19065    #[inline]
19066    fn syntax(&self) -> &SyntaxNode {
19067        &self.syntax
19068    }
19069}
19070impl AstNode for CreateConversion {
19071    #[inline]
19072    fn can_cast(kind: SyntaxKind) -> bool {
19073        kind == SyntaxKind::CREATE_CONVERSION
19074    }
19075    #[inline]
19076    fn cast(syntax: SyntaxNode) -> Option<Self> {
19077        if Self::can_cast(syntax.kind()) {
19078            Some(Self { syntax })
19079        } else {
19080            None
19081        }
19082    }
19083    #[inline]
19084    fn syntax(&self) -> &SyntaxNode {
19085        &self.syntax
19086    }
19087}
19088impl AstNode for CreateDatabase {
19089    #[inline]
19090    fn can_cast(kind: SyntaxKind) -> bool {
19091        kind == SyntaxKind::CREATE_DATABASE
19092    }
19093    #[inline]
19094    fn cast(syntax: SyntaxNode) -> Option<Self> {
19095        if Self::can_cast(syntax.kind()) {
19096            Some(Self { syntax })
19097        } else {
19098            None
19099        }
19100    }
19101    #[inline]
19102    fn syntax(&self) -> &SyntaxNode {
19103        &self.syntax
19104    }
19105}
19106impl AstNode for CreateDatabaseOption {
19107    #[inline]
19108    fn can_cast(kind: SyntaxKind) -> bool {
19109        kind == SyntaxKind::CREATE_DATABASE_OPTION
19110    }
19111    #[inline]
19112    fn cast(syntax: SyntaxNode) -> Option<Self> {
19113        if Self::can_cast(syntax.kind()) {
19114            Some(Self { syntax })
19115        } else {
19116            None
19117        }
19118    }
19119    #[inline]
19120    fn syntax(&self) -> &SyntaxNode {
19121        &self.syntax
19122    }
19123}
19124impl AstNode for CreateDatabaseOptionList {
19125    #[inline]
19126    fn can_cast(kind: SyntaxKind) -> bool {
19127        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19128    }
19129    #[inline]
19130    fn cast(syntax: SyntaxNode) -> Option<Self> {
19131        if Self::can_cast(syntax.kind()) {
19132            Some(Self { syntax })
19133        } else {
19134            None
19135        }
19136    }
19137    #[inline]
19138    fn syntax(&self) -> &SyntaxNode {
19139        &self.syntax
19140    }
19141}
19142impl AstNode for CreateDomain {
19143    #[inline]
19144    fn can_cast(kind: SyntaxKind) -> bool {
19145        kind == SyntaxKind::CREATE_DOMAIN
19146    }
19147    #[inline]
19148    fn cast(syntax: SyntaxNode) -> Option<Self> {
19149        if Self::can_cast(syntax.kind()) {
19150            Some(Self { syntax })
19151        } else {
19152            None
19153        }
19154    }
19155    #[inline]
19156    fn syntax(&self) -> &SyntaxNode {
19157        &self.syntax
19158    }
19159}
19160impl AstNode for CreateEventTrigger {
19161    #[inline]
19162    fn can_cast(kind: SyntaxKind) -> bool {
19163        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19164    }
19165    #[inline]
19166    fn cast(syntax: SyntaxNode) -> Option<Self> {
19167        if Self::can_cast(syntax.kind()) {
19168            Some(Self { syntax })
19169        } else {
19170            None
19171        }
19172    }
19173    #[inline]
19174    fn syntax(&self) -> &SyntaxNode {
19175        &self.syntax
19176    }
19177}
19178impl AstNode for CreateExtension {
19179    #[inline]
19180    fn can_cast(kind: SyntaxKind) -> bool {
19181        kind == SyntaxKind::CREATE_EXTENSION
19182    }
19183    #[inline]
19184    fn cast(syntax: SyntaxNode) -> Option<Self> {
19185        if Self::can_cast(syntax.kind()) {
19186            Some(Self { syntax })
19187        } else {
19188            None
19189        }
19190    }
19191    #[inline]
19192    fn syntax(&self) -> &SyntaxNode {
19193        &self.syntax
19194    }
19195}
19196impl AstNode for CreateForeignDataWrapper {
19197    #[inline]
19198    fn can_cast(kind: SyntaxKind) -> bool {
19199        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19200    }
19201    #[inline]
19202    fn cast(syntax: SyntaxNode) -> Option<Self> {
19203        if Self::can_cast(syntax.kind()) {
19204            Some(Self { syntax })
19205        } else {
19206            None
19207        }
19208    }
19209    #[inline]
19210    fn syntax(&self) -> &SyntaxNode {
19211        &self.syntax
19212    }
19213}
19214impl AstNode for CreateForeignTable {
19215    #[inline]
19216    fn can_cast(kind: SyntaxKind) -> bool {
19217        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19218    }
19219    #[inline]
19220    fn cast(syntax: SyntaxNode) -> Option<Self> {
19221        if Self::can_cast(syntax.kind()) {
19222            Some(Self { syntax })
19223        } else {
19224            None
19225        }
19226    }
19227    #[inline]
19228    fn syntax(&self) -> &SyntaxNode {
19229        &self.syntax
19230    }
19231}
19232impl AstNode for CreateFunction {
19233    #[inline]
19234    fn can_cast(kind: SyntaxKind) -> bool {
19235        kind == SyntaxKind::CREATE_FUNCTION
19236    }
19237    #[inline]
19238    fn cast(syntax: SyntaxNode) -> Option<Self> {
19239        if Self::can_cast(syntax.kind()) {
19240            Some(Self { syntax })
19241        } else {
19242            None
19243        }
19244    }
19245    #[inline]
19246    fn syntax(&self) -> &SyntaxNode {
19247        &self.syntax
19248    }
19249}
19250impl AstNode for CreateGroup {
19251    #[inline]
19252    fn can_cast(kind: SyntaxKind) -> bool {
19253        kind == SyntaxKind::CREATE_GROUP
19254    }
19255    #[inline]
19256    fn cast(syntax: SyntaxNode) -> Option<Self> {
19257        if Self::can_cast(syntax.kind()) {
19258            Some(Self { syntax })
19259        } else {
19260            None
19261        }
19262    }
19263    #[inline]
19264    fn syntax(&self) -> &SyntaxNode {
19265        &self.syntax
19266    }
19267}
19268impl AstNode for CreateIndex {
19269    #[inline]
19270    fn can_cast(kind: SyntaxKind) -> bool {
19271        kind == SyntaxKind::CREATE_INDEX
19272    }
19273    #[inline]
19274    fn cast(syntax: SyntaxNode) -> Option<Self> {
19275        if Self::can_cast(syntax.kind()) {
19276            Some(Self { syntax })
19277        } else {
19278            None
19279        }
19280    }
19281    #[inline]
19282    fn syntax(&self) -> &SyntaxNode {
19283        &self.syntax
19284    }
19285}
19286impl AstNode for CreateLanguage {
19287    #[inline]
19288    fn can_cast(kind: SyntaxKind) -> bool {
19289        kind == SyntaxKind::CREATE_LANGUAGE
19290    }
19291    #[inline]
19292    fn cast(syntax: SyntaxNode) -> Option<Self> {
19293        if Self::can_cast(syntax.kind()) {
19294            Some(Self { syntax })
19295        } else {
19296            None
19297        }
19298    }
19299    #[inline]
19300    fn syntax(&self) -> &SyntaxNode {
19301        &self.syntax
19302    }
19303}
19304impl AstNode for CreateMaterializedView {
19305    #[inline]
19306    fn can_cast(kind: SyntaxKind) -> bool {
19307        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19308    }
19309    #[inline]
19310    fn cast(syntax: SyntaxNode) -> Option<Self> {
19311        if Self::can_cast(syntax.kind()) {
19312            Some(Self { syntax })
19313        } else {
19314            None
19315        }
19316    }
19317    #[inline]
19318    fn syntax(&self) -> &SyntaxNode {
19319        &self.syntax
19320    }
19321}
19322impl AstNode for CreateOperator {
19323    #[inline]
19324    fn can_cast(kind: SyntaxKind) -> bool {
19325        kind == SyntaxKind::CREATE_OPERATOR
19326    }
19327    #[inline]
19328    fn cast(syntax: SyntaxNode) -> Option<Self> {
19329        if Self::can_cast(syntax.kind()) {
19330            Some(Self { syntax })
19331        } else {
19332            None
19333        }
19334    }
19335    #[inline]
19336    fn syntax(&self) -> &SyntaxNode {
19337        &self.syntax
19338    }
19339}
19340impl AstNode for CreateOperatorClass {
19341    #[inline]
19342    fn can_cast(kind: SyntaxKind) -> bool {
19343        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19344    }
19345    #[inline]
19346    fn cast(syntax: SyntaxNode) -> Option<Self> {
19347        if Self::can_cast(syntax.kind()) {
19348            Some(Self { syntax })
19349        } else {
19350            None
19351        }
19352    }
19353    #[inline]
19354    fn syntax(&self) -> &SyntaxNode {
19355        &self.syntax
19356    }
19357}
19358impl AstNode for CreateOperatorFamily {
19359    #[inline]
19360    fn can_cast(kind: SyntaxKind) -> bool {
19361        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19362    }
19363    #[inline]
19364    fn cast(syntax: SyntaxNode) -> Option<Self> {
19365        if Self::can_cast(syntax.kind()) {
19366            Some(Self { syntax })
19367        } else {
19368            None
19369        }
19370    }
19371    #[inline]
19372    fn syntax(&self) -> &SyntaxNode {
19373        &self.syntax
19374    }
19375}
19376impl AstNode for CreatePolicy {
19377    #[inline]
19378    fn can_cast(kind: SyntaxKind) -> bool {
19379        kind == SyntaxKind::CREATE_POLICY
19380    }
19381    #[inline]
19382    fn cast(syntax: SyntaxNode) -> Option<Self> {
19383        if Self::can_cast(syntax.kind()) {
19384            Some(Self { syntax })
19385        } else {
19386            None
19387        }
19388    }
19389    #[inline]
19390    fn syntax(&self) -> &SyntaxNode {
19391        &self.syntax
19392    }
19393}
19394impl AstNode for CreateProcedure {
19395    #[inline]
19396    fn can_cast(kind: SyntaxKind) -> bool {
19397        kind == SyntaxKind::CREATE_PROCEDURE
19398    }
19399    #[inline]
19400    fn cast(syntax: SyntaxNode) -> Option<Self> {
19401        if Self::can_cast(syntax.kind()) {
19402            Some(Self { syntax })
19403        } else {
19404            None
19405        }
19406    }
19407    #[inline]
19408    fn syntax(&self) -> &SyntaxNode {
19409        &self.syntax
19410    }
19411}
19412impl AstNode for CreatePublication {
19413    #[inline]
19414    fn can_cast(kind: SyntaxKind) -> bool {
19415        kind == SyntaxKind::CREATE_PUBLICATION
19416    }
19417    #[inline]
19418    fn cast(syntax: SyntaxNode) -> Option<Self> {
19419        if Self::can_cast(syntax.kind()) {
19420            Some(Self { syntax })
19421        } else {
19422            None
19423        }
19424    }
19425    #[inline]
19426    fn syntax(&self) -> &SyntaxNode {
19427        &self.syntax
19428    }
19429}
19430impl AstNode for CreateRole {
19431    #[inline]
19432    fn can_cast(kind: SyntaxKind) -> bool {
19433        kind == SyntaxKind::CREATE_ROLE
19434    }
19435    #[inline]
19436    fn cast(syntax: SyntaxNode) -> Option<Self> {
19437        if Self::can_cast(syntax.kind()) {
19438            Some(Self { syntax })
19439        } else {
19440            None
19441        }
19442    }
19443    #[inline]
19444    fn syntax(&self) -> &SyntaxNode {
19445        &self.syntax
19446    }
19447}
19448impl AstNode for CreateRule {
19449    #[inline]
19450    fn can_cast(kind: SyntaxKind) -> bool {
19451        kind == SyntaxKind::CREATE_RULE
19452    }
19453    #[inline]
19454    fn cast(syntax: SyntaxNode) -> Option<Self> {
19455        if Self::can_cast(syntax.kind()) {
19456            Some(Self { syntax })
19457        } else {
19458            None
19459        }
19460    }
19461    #[inline]
19462    fn syntax(&self) -> &SyntaxNode {
19463        &self.syntax
19464    }
19465}
19466impl AstNode for CreateSchema {
19467    #[inline]
19468    fn can_cast(kind: SyntaxKind) -> bool {
19469        kind == SyntaxKind::CREATE_SCHEMA
19470    }
19471    #[inline]
19472    fn cast(syntax: SyntaxNode) -> Option<Self> {
19473        if Self::can_cast(syntax.kind()) {
19474            Some(Self { syntax })
19475        } else {
19476            None
19477        }
19478    }
19479    #[inline]
19480    fn syntax(&self) -> &SyntaxNode {
19481        &self.syntax
19482    }
19483}
19484impl AstNode for CreateSequence {
19485    #[inline]
19486    fn can_cast(kind: SyntaxKind) -> bool {
19487        kind == SyntaxKind::CREATE_SEQUENCE
19488    }
19489    #[inline]
19490    fn cast(syntax: SyntaxNode) -> Option<Self> {
19491        if Self::can_cast(syntax.kind()) {
19492            Some(Self { syntax })
19493        } else {
19494            None
19495        }
19496    }
19497    #[inline]
19498    fn syntax(&self) -> &SyntaxNode {
19499        &self.syntax
19500    }
19501}
19502impl AstNode for CreateServer {
19503    #[inline]
19504    fn can_cast(kind: SyntaxKind) -> bool {
19505        kind == SyntaxKind::CREATE_SERVER
19506    }
19507    #[inline]
19508    fn cast(syntax: SyntaxNode) -> Option<Self> {
19509        if Self::can_cast(syntax.kind()) {
19510            Some(Self { syntax })
19511        } else {
19512            None
19513        }
19514    }
19515    #[inline]
19516    fn syntax(&self) -> &SyntaxNode {
19517        &self.syntax
19518    }
19519}
19520impl AstNode for CreateStatistics {
19521    #[inline]
19522    fn can_cast(kind: SyntaxKind) -> bool {
19523        kind == SyntaxKind::CREATE_STATISTICS
19524    }
19525    #[inline]
19526    fn cast(syntax: SyntaxNode) -> Option<Self> {
19527        if Self::can_cast(syntax.kind()) {
19528            Some(Self { syntax })
19529        } else {
19530            None
19531        }
19532    }
19533    #[inline]
19534    fn syntax(&self) -> &SyntaxNode {
19535        &self.syntax
19536    }
19537}
19538impl AstNode for CreateSubscription {
19539    #[inline]
19540    fn can_cast(kind: SyntaxKind) -> bool {
19541        kind == SyntaxKind::CREATE_SUBSCRIPTION
19542    }
19543    #[inline]
19544    fn cast(syntax: SyntaxNode) -> Option<Self> {
19545        if Self::can_cast(syntax.kind()) {
19546            Some(Self { syntax })
19547        } else {
19548            None
19549        }
19550    }
19551    #[inline]
19552    fn syntax(&self) -> &SyntaxNode {
19553        &self.syntax
19554    }
19555}
19556impl AstNode for CreateTable {
19557    #[inline]
19558    fn can_cast(kind: SyntaxKind) -> bool {
19559        kind == SyntaxKind::CREATE_TABLE
19560    }
19561    #[inline]
19562    fn cast(syntax: SyntaxNode) -> Option<Self> {
19563        if Self::can_cast(syntax.kind()) {
19564            Some(Self { syntax })
19565        } else {
19566            None
19567        }
19568    }
19569    #[inline]
19570    fn syntax(&self) -> &SyntaxNode {
19571        &self.syntax
19572    }
19573}
19574impl AstNode for CreateTableAs {
19575    #[inline]
19576    fn can_cast(kind: SyntaxKind) -> bool {
19577        kind == SyntaxKind::CREATE_TABLE_AS
19578    }
19579    #[inline]
19580    fn cast(syntax: SyntaxNode) -> Option<Self> {
19581        if Self::can_cast(syntax.kind()) {
19582            Some(Self { syntax })
19583        } else {
19584            None
19585        }
19586    }
19587    #[inline]
19588    fn syntax(&self) -> &SyntaxNode {
19589        &self.syntax
19590    }
19591}
19592impl AstNode for CreateTablespace {
19593    #[inline]
19594    fn can_cast(kind: SyntaxKind) -> bool {
19595        kind == SyntaxKind::CREATE_TABLESPACE
19596    }
19597    #[inline]
19598    fn cast(syntax: SyntaxNode) -> Option<Self> {
19599        if Self::can_cast(syntax.kind()) {
19600            Some(Self { syntax })
19601        } else {
19602            None
19603        }
19604    }
19605    #[inline]
19606    fn syntax(&self) -> &SyntaxNode {
19607        &self.syntax
19608    }
19609}
19610impl AstNode for CreateTextSearchConfiguration {
19611    #[inline]
19612    fn can_cast(kind: SyntaxKind) -> bool {
19613        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19614    }
19615    #[inline]
19616    fn cast(syntax: SyntaxNode) -> Option<Self> {
19617        if Self::can_cast(syntax.kind()) {
19618            Some(Self { syntax })
19619        } else {
19620            None
19621        }
19622    }
19623    #[inline]
19624    fn syntax(&self) -> &SyntaxNode {
19625        &self.syntax
19626    }
19627}
19628impl AstNode for CreateTextSearchDictionary {
19629    #[inline]
19630    fn can_cast(kind: SyntaxKind) -> bool {
19631        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19632    }
19633    #[inline]
19634    fn cast(syntax: SyntaxNode) -> Option<Self> {
19635        if Self::can_cast(syntax.kind()) {
19636            Some(Self { syntax })
19637        } else {
19638            None
19639        }
19640    }
19641    #[inline]
19642    fn syntax(&self) -> &SyntaxNode {
19643        &self.syntax
19644    }
19645}
19646impl AstNode for CreateTextSearchParser {
19647    #[inline]
19648    fn can_cast(kind: SyntaxKind) -> bool {
19649        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19650    }
19651    #[inline]
19652    fn cast(syntax: SyntaxNode) -> Option<Self> {
19653        if Self::can_cast(syntax.kind()) {
19654            Some(Self { syntax })
19655        } else {
19656            None
19657        }
19658    }
19659    #[inline]
19660    fn syntax(&self) -> &SyntaxNode {
19661        &self.syntax
19662    }
19663}
19664impl AstNode for CreateTextSearchTemplate {
19665    #[inline]
19666    fn can_cast(kind: SyntaxKind) -> bool {
19667        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19668    }
19669    #[inline]
19670    fn cast(syntax: SyntaxNode) -> Option<Self> {
19671        if Self::can_cast(syntax.kind()) {
19672            Some(Self { syntax })
19673        } else {
19674            None
19675        }
19676    }
19677    #[inline]
19678    fn syntax(&self) -> &SyntaxNode {
19679        &self.syntax
19680    }
19681}
19682impl AstNode for CreateTransform {
19683    #[inline]
19684    fn can_cast(kind: SyntaxKind) -> bool {
19685        kind == SyntaxKind::CREATE_TRANSFORM
19686    }
19687    #[inline]
19688    fn cast(syntax: SyntaxNode) -> Option<Self> {
19689        if Self::can_cast(syntax.kind()) {
19690            Some(Self { syntax })
19691        } else {
19692            None
19693        }
19694    }
19695    #[inline]
19696    fn syntax(&self) -> &SyntaxNode {
19697        &self.syntax
19698    }
19699}
19700impl AstNode for CreateTrigger {
19701    #[inline]
19702    fn can_cast(kind: SyntaxKind) -> bool {
19703        kind == SyntaxKind::CREATE_TRIGGER
19704    }
19705    #[inline]
19706    fn cast(syntax: SyntaxNode) -> Option<Self> {
19707        if Self::can_cast(syntax.kind()) {
19708            Some(Self { syntax })
19709        } else {
19710            None
19711        }
19712    }
19713    #[inline]
19714    fn syntax(&self) -> &SyntaxNode {
19715        &self.syntax
19716    }
19717}
19718impl AstNode for CreateType {
19719    #[inline]
19720    fn can_cast(kind: SyntaxKind) -> bool {
19721        kind == SyntaxKind::CREATE_TYPE
19722    }
19723    #[inline]
19724    fn cast(syntax: SyntaxNode) -> Option<Self> {
19725        if Self::can_cast(syntax.kind()) {
19726            Some(Self { syntax })
19727        } else {
19728            None
19729        }
19730    }
19731    #[inline]
19732    fn syntax(&self) -> &SyntaxNode {
19733        &self.syntax
19734    }
19735}
19736impl AstNode for CreateUser {
19737    #[inline]
19738    fn can_cast(kind: SyntaxKind) -> bool {
19739        kind == SyntaxKind::CREATE_USER
19740    }
19741    #[inline]
19742    fn cast(syntax: SyntaxNode) -> Option<Self> {
19743        if Self::can_cast(syntax.kind()) {
19744            Some(Self { syntax })
19745        } else {
19746            None
19747        }
19748    }
19749    #[inline]
19750    fn syntax(&self) -> &SyntaxNode {
19751        &self.syntax
19752    }
19753}
19754impl AstNode for CreateUserMapping {
19755    #[inline]
19756    fn can_cast(kind: SyntaxKind) -> bool {
19757        kind == SyntaxKind::CREATE_USER_MAPPING
19758    }
19759    #[inline]
19760    fn cast(syntax: SyntaxNode) -> Option<Self> {
19761        if Self::can_cast(syntax.kind()) {
19762            Some(Self { syntax })
19763        } else {
19764            None
19765        }
19766    }
19767    #[inline]
19768    fn syntax(&self) -> &SyntaxNode {
19769        &self.syntax
19770    }
19771}
19772impl AstNode for CreateView {
19773    #[inline]
19774    fn can_cast(kind: SyntaxKind) -> bool {
19775        kind == SyntaxKind::CREATE_VIEW
19776    }
19777    #[inline]
19778    fn cast(syntax: SyntaxNode) -> Option<Self> {
19779        if Self::can_cast(syntax.kind()) {
19780            Some(Self { syntax })
19781        } else {
19782            None
19783        }
19784    }
19785    #[inline]
19786    fn syntax(&self) -> &SyntaxNode {
19787        &self.syntax
19788    }
19789}
19790impl AstNode for CustomOp {
19791    #[inline]
19792    fn can_cast(kind: SyntaxKind) -> bool {
19793        kind == SyntaxKind::CUSTOM_OP
19794    }
19795    #[inline]
19796    fn cast(syntax: SyntaxNode) -> Option<Self> {
19797        if Self::can_cast(syntax.kind()) {
19798            Some(Self { syntax })
19799        } else {
19800            None
19801        }
19802    }
19803    #[inline]
19804    fn syntax(&self) -> &SyntaxNode {
19805        &self.syntax
19806    }
19807}
19808impl AstNode for Deallocate {
19809    #[inline]
19810    fn can_cast(kind: SyntaxKind) -> bool {
19811        kind == SyntaxKind::DEALLOCATE
19812    }
19813    #[inline]
19814    fn cast(syntax: SyntaxNode) -> Option<Self> {
19815        if Self::can_cast(syntax.kind()) {
19816            Some(Self { syntax })
19817        } else {
19818            None
19819        }
19820    }
19821    #[inline]
19822    fn syntax(&self) -> &SyntaxNode {
19823        &self.syntax
19824    }
19825}
19826impl AstNode for Declare {
19827    #[inline]
19828    fn can_cast(kind: SyntaxKind) -> bool {
19829        kind == SyntaxKind::DECLARE
19830    }
19831    #[inline]
19832    fn cast(syntax: SyntaxNode) -> Option<Self> {
19833        if Self::can_cast(syntax.kind()) {
19834            Some(Self { syntax })
19835        } else {
19836            None
19837        }
19838    }
19839    #[inline]
19840    fn syntax(&self) -> &SyntaxNode {
19841        &self.syntax
19842    }
19843}
19844impl AstNode for DefaultConstraint {
19845    #[inline]
19846    fn can_cast(kind: SyntaxKind) -> bool {
19847        kind == SyntaxKind::DEFAULT_CONSTRAINT
19848    }
19849    #[inline]
19850    fn cast(syntax: SyntaxNode) -> Option<Self> {
19851        if Self::can_cast(syntax.kind()) {
19852            Some(Self { syntax })
19853        } else {
19854            None
19855        }
19856    }
19857    #[inline]
19858    fn syntax(&self) -> &SyntaxNode {
19859        &self.syntax
19860    }
19861}
19862impl AstNode for Deferrable {
19863    #[inline]
19864    fn can_cast(kind: SyntaxKind) -> bool {
19865        kind == SyntaxKind::DEFERRABLE
19866    }
19867    #[inline]
19868    fn cast(syntax: SyntaxNode) -> Option<Self> {
19869        if Self::can_cast(syntax.kind()) {
19870            Some(Self { syntax })
19871        } else {
19872            None
19873        }
19874    }
19875    #[inline]
19876    fn syntax(&self) -> &SyntaxNode {
19877        &self.syntax
19878    }
19879}
19880impl AstNode for DeferrableConstraintOption {
19881    #[inline]
19882    fn can_cast(kind: SyntaxKind) -> bool {
19883        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
19884    }
19885    #[inline]
19886    fn cast(syntax: SyntaxNode) -> Option<Self> {
19887        if Self::can_cast(syntax.kind()) {
19888            Some(Self { syntax })
19889        } else {
19890            None
19891        }
19892    }
19893    #[inline]
19894    fn syntax(&self) -> &SyntaxNode {
19895        &self.syntax
19896    }
19897}
19898impl AstNode for Delete {
19899    #[inline]
19900    fn can_cast(kind: SyntaxKind) -> bool {
19901        kind == SyntaxKind::DELETE
19902    }
19903    #[inline]
19904    fn cast(syntax: SyntaxNode) -> Option<Self> {
19905        if Self::can_cast(syntax.kind()) {
19906            Some(Self { syntax })
19907        } else {
19908            None
19909        }
19910    }
19911    #[inline]
19912    fn syntax(&self) -> &SyntaxNode {
19913        &self.syntax
19914    }
19915}
19916impl AstNode for DeleteRows {
19917    #[inline]
19918    fn can_cast(kind: SyntaxKind) -> bool {
19919        kind == SyntaxKind::DELETE_ROWS
19920    }
19921    #[inline]
19922    fn cast(syntax: SyntaxNode) -> Option<Self> {
19923        if Self::can_cast(syntax.kind()) {
19924            Some(Self { syntax })
19925        } else {
19926            None
19927        }
19928    }
19929    #[inline]
19930    fn syntax(&self) -> &SyntaxNode {
19931        &self.syntax
19932    }
19933}
19934impl AstNode for DependsOnExtension {
19935    #[inline]
19936    fn can_cast(kind: SyntaxKind) -> bool {
19937        kind == SyntaxKind::DEPENDS_ON_EXTENSION
19938    }
19939    #[inline]
19940    fn cast(syntax: SyntaxNode) -> Option<Self> {
19941        if Self::can_cast(syntax.kind()) {
19942            Some(Self { syntax })
19943        } else {
19944            None
19945        }
19946    }
19947    #[inline]
19948    fn syntax(&self) -> &SyntaxNode {
19949        &self.syntax
19950    }
19951}
19952impl AstNode for DetachPartition {
19953    #[inline]
19954    fn can_cast(kind: SyntaxKind) -> bool {
19955        kind == SyntaxKind::DETACH_PARTITION
19956    }
19957    #[inline]
19958    fn cast(syntax: SyntaxNode) -> Option<Self> {
19959        if Self::can_cast(syntax.kind()) {
19960            Some(Self { syntax })
19961        } else {
19962            None
19963        }
19964    }
19965    #[inline]
19966    fn syntax(&self) -> &SyntaxNode {
19967        &self.syntax
19968    }
19969}
19970impl AstNode for DisableRls {
19971    #[inline]
19972    fn can_cast(kind: SyntaxKind) -> bool {
19973        kind == SyntaxKind::DISABLE_RLS
19974    }
19975    #[inline]
19976    fn cast(syntax: SyntaxNode) -> Option<Self> {
19977        if Self::can_cast(syntax.kind()) {
19978            Some(Self { syntax })
19979        } else {
19980            None
19981        }
19982    }
19983    #[inline]
19984    fn syntax(&self) -> &SyntaxNode {
19985        &self.syntax
19986    }
19987}
19988impl AstNode for DisableRule {
19989    #[inline]
19990    fn can_cast(kind: SyntaxKind) -> bool {
19991        kind == SyntaxKind::DISABLE_RULE
19992    }
19993    #[inline]
19994    fn cast(syntax: SyntaxNode) -> Option<Self> {
19995        if Self::can_cast(syntax.kind()) {
19996            Some(Self { syntax })
19997        } else {
19998            None
19999        }
20000    }
20001    #[inline]
20002    fn syntax(&self) -> &SyntaxNode {
20003        &self.syntax
20004    }
20005}
20006impl AstNode for DisableTrigger {
20007    #[inline]
20008    fn can_cast(kind: SyntaxKind) -> bool {
20009        kind == SyntaxKind::DISABLE_TRIGGER
20010    }
20011    #[inline]
20012    fn cast(syntax: SyntaxNode) -> Option<Self> {
20013        if Self::can_cast(syntax.kind()) {
20014            Some(Self { syntax })
20015        } else {
20016            None
20017        }
20018    }
20019    #[inline]
20020    fn syntax(&self) -> &SyntaxNode {
20021        &self.syntax
20022    }
20023}
20024impl AstNode for Discard {
20025    #[inline]
20026    fn can_cast(kind: SyntaxKind) -> bool {
20027        kind == SyntaxKind::DISCARD
20028    }
20029    #[inline]
20030    fn cast(syntax: SyntaxNode) -> Option<Self> {
20031        if Self::can_cast(syntax.kind()) {
20032            Some(Self { syntax })
20033        } else {
20034            None
20035        }
20036    }
20037    #[inline]
20038    fn syntax(&self) -> &SyntaxNode {
20039        &self.syntax
20040    }
20041}
20042impl AstNode for DistinctClause {
20043    #[inline]
20044    fn can_cast(kind: SyntaxKind) -> bool {
20045        kind == SyntaxKind::DISTINCT_CLAUSE
20046    }
20047    #[inline]
20048    fn cast(syntax: SyntaxNode) -> Option<Self> {
20049        if Self::can_cast(syntax.kind()) {
20050            Some(Self { syntax })
20051        } else {
20052            None
20053        }
20054    }
20055    #[inline]
20056    fn syntax(&self) -> &SyntaxNode {
20057        &self.syntax
20058    }
20059}
20060impl AstNode for Do {
20061    #[inline]
20062    fn can_cast(kind: SyntaxKind) -> bool {
20063        kind == SyntaxKind::DO
20064    }
20065    #[inline]
20066    fn cast(syntax: SyntaxNode) -> Option<Self> {
20067        if Self::can_cast(syntax.kind()) {
20068            Some(Self { syntax })
20069        } else {
20070            None
20071        }
20072    }
20073    #[inline]
20074    fn syntax(&self) -> &SyntaxNode {
20075        &self.syntax
20076    }
20077}
20078impl AstNode for DoubleType {
20079    #[inline]
20080    fn can_cast(kind: SyntaxKind) -> bool {
20081        kind == SyntaxKind::DOUBLE_TYPE
20082    }
20083    #[inline]
20084    fn cast(syntax: SyntaxNode) -> Option<Self> {
20085        if Self::can_cast(syntax.kind()) {
20086            Some(Self { syntax })
20087        } else {
20088            None
20089        }
20090    }
20091    #[inline]
20092    fn syntax(&self) -> &SyntaxNode {
20093        &self.syntax
20094    }
20095}
20096impl AstNode for Drop {
20097    #[inline]
20098    fn can_cast(kind: SyntaxKind) -> bool {
20099        kind == SyntaxKind::DROP
20100    }
20101    #[inline]
20102    fn cast(syntax: SyntaxNode) -> Option<Self> {
20103        if Self::can_cast(syntax.kind()) {
20104            Some(Self { syntax })
20105        } else {
20106            None
20107        }
20108    }
20109    #[inline]
20110    fn syntax(&self) -> &SyntaxNode {
20111        &self.syntax
20112    }
20113}
20114impl AstNode for DropAccessMethod {
20115    #[inline]
20116    fn can_cast(kind: SyntaxKind) -> bool {
20117        kind == SyntaxKind::DROP_ACCESS_METHOD
20118    }
20119    #[inline]
20120    fn cast(syntax: SyntaxNode) -> Option<Self> {
20121        if Self::can_cast(syntax.kind()) {
20122            Some(Self { syntax })
20123        } else {
20124            None
20125        }
20126    }
20127    #[inline]
20128    fn syntax(&self) -> &SyntaxNode {
20129        &self.syntax
20130    }
20131}
20132impl AstNode for DropAggregate {
20133    #[inline]
20134    fn can_cast(kind: SyntaxKind) -> bool {
20135        kind == SyntaxKind::DROP_AGGREGATE
20136    }
20137    #[inline]
20138    fn cast(syntax: SyntaxNode) -> Option<Self> {
20139        if Self::can_cast(syntax.kind()) {
20140            Some(Self { syntax })
20141        } else {
20142            None
20143        }
20144    }
20145    #[inline]
20146    fn syntax(&self) -> &SyntaxNode {
20147        &self.syntax
20148    }
20149}
20150impl AstNode for DropCast {
20151    #[inline]
20152    fn can_cast(kind: SyntaxKind) -> bool {
20153        kind == SyntaxKind::DROP_CAST
20154    }
20155    #[inline]
20156    fn cast(syntax: SyntaxNode) -> Option<Self> {
20157        if Self::can_cast(syntax.kind()) {
20158            Some(Self { syntax })
20159        } else {
20160            None
20161        }
20162    }
20163    #[inline]
20164    fn syntax(&self) -> &SyntaxNode {
20165        &self.syntax
20166    }
20167}
20168impl AstNode for DropCollation {
20169    #[inline]
20170    fn can_cast(kind: SyntaxKind) -> bool {
20171        kind == SyntaxKind::DROP_COLLATION
20172    }
20173    #[inline]
20174    fn cast(syntax: SyntaxNode) -> Option<Self> {
20175        if Self::can_cast(syntax.kind()) {
20176            Some(Self { syntax })
20177        } else {
20178            None
20179        }
20180    }
20181    #[inline]
20182    fn syntax(&self) -> &SyntaxNode {
20183        &self.syntax
20184    }
20185}
20186impl AstNode for DropColumn {
20187    #[inline]
20188    fn can_cast(kind: SyntaxKind) -> bool {
20189        kind == SyntaxKind::DROP_COLUMN
20190    }
20191    #[inline]
20192    fn cast(syntax: SyntaxNode) -> Option<Self> {
20193        if Self::can_cast(syntax.kind()) {
20194            Some(Self { syntax })
20195        } else {
20196            None
20197        }
20198    }
20199    #[inline]
20200    fn syntax(&self) -> &SyntaxNode {
20201        &self.syntax
20202    }
20203}
20204impl AstNode for DropConstraint {
20205    #[inline]
20206    fn can_cast(kind: SyntaxKind) -> bool {
20207        kind == SyntaxKind::DROP_CONSTRAINT
20208    }
20209    #[inline]
20210    fn cast(syntax: SyntaxNode) -> Option<Self> {
20211        if Self::can_cast(syntax.kind()) {
20212            Some(Self { syntax })
20213        } else {
20214            None
20215        }
20216    }
20217    #[inline]
20218    fn syntax(&self) -> &SyntaxNode {
20219        &self.syntax
20220    }
20221}
20222impl AstNode for DropConversion {
20223    #[inline]
20224    fn can_cast(kind: SyntaxKind) -> bool {
20225        kind == SyntaxKind::DROP_CONVERSION
20226    }
20227    #[inline]
20228    fn cast(syntax: SyntaxNode) -> Option<Self> {
20229        if Self::can_cast(syntax.kind()) {
20230            Some(Self { syntax })
20231        } else {
20232            None
20233        }
20234    }
20235    #[inline]
20236    fn syntax(&self) -> &SyntaxNode {
20237        &self.syntax
20238    }
20239}
20240impl AstNode for DropDatabase {
20241    #[inline]
20242    fn can_cast(kind: SyntaxKind) -> bool {
20243        kind == SyntaxKind::DROP_DATABASE
20244    }
20245    #[inline]
20246    fn cast(syntax: SyntaxNode) -> Option<Self> {
20247        if Self::can_cast(syntax.kind()) {
20248            Some(Self { syntax })
20249        } else {
20250            None
20251        }
20252    }
20253    #[inline]
20254    fn syntax(&self) -> &SyntaxNode {
20255        &self.syntax
20256    }
20257}
20258impl AstNode for DropDefault {
20259    #[inline]
20260    fn can_cast(kind: SyntaxKind) -> bool {
20261        kind == SyntaxKind::DROP_DEFAULT
20262    }
20263    #[inline]
20264    fn cast(syntax: SyntaxNode) -> Option<Self> {
20265        if Self::can_cast(syntax.kind()) {
20266            Some(Self { syntax })
20267        } else {
20268            None
20269        }
20270    }
20271    #[inline]
20272    fn syntax(&self) -> &SyntaxNode {
20273        &self.syntax
20274    }
20275}
20276impl AstNode for DropDomain {
20277    #[inline]
20278    fn can_cast(kind: SyntaxKind) -> bool {
20279        kind == SyntaxKind::DROP_DOMAIN
20280    }
20281    #[inline]
20282    fn cast(syntax: SyntaxNode) -> Option<Self> {
20283        if Self::can_cast(syntax.kind()) {
20284            Some(Self { syntax })
20285        } else {
20286            None
20287        }
20288    }
20289    #[inline]
20290    fn syntax(&self) -> &SyntaxNode {
20291        &self.syntax
20292    }
20293}
20294impl AstNode for DropEventTrigger {
20295    #[inline]
20296    fn can_cast(kind: SyntaxKind) -> bool {
20297        kind == SyntaxKind::DROP_EVENT_TRIGGER
20298    }
20299    #[inline]
20300    fn cast(syntax: SyntaxNode) -> Option<Self> {
20301        if Self::can_cast(syntax.kind()) {
20302            Some(Self { syntax })
20303        } else {
20304            None
20305        }
20306    }
20307    #[inline]
20308    fn syntax(&self) -> &SyntaxNode {
20309        &self.syntax
20310    }
20311}
20312impl AstNode for DropExpression {
20313    #[inline]
20314    fn can_cast(kind: SyntaxKind) -> bool {
20315        kind == SyntaxKind::DROP_EXPRESSION
20316    }
20317    #[inline]
20318    fn cast(syntax: SyntaxNode) -> Option<Self> {
20319        if Self::can_cast(syntax.kind()) {
20320            Some(Self { syntax })
20321        } else {
20322            None
20323        }
20324    }
20325    #[inline]
20326    fn syntax(&self) -> &SyntaxNode {
20327        &self.syntax
20328    }
20329}
20330impl AstNode for DropExtension {
20331    #[inline]
20332    fn can_cast(kind: SyntaxKind) -> bool {
20333        kind == SyntaxKind::DROP_EXTENSION
20334    }
20335    #[inline]
20336    fn cast(syntax: SyntaxNode) -> Option<Self> {
20337        if Self::can_cast(syntax.kind()) {
20338            Some(Self { syntax })
20339        } else {
20340            None
20341        }
20342    }
20343    #[inline]
20344    fn syntax(&self) -> &SyntaxNode {
20345        &self.syntax
20346    }
20347}
20348impl AstNode for DropForeignDataWrapper {
20349    #[inline]
20350    fn can_cast(kind: SyntaxKind) -> bool {
20351        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20352    }
20353    #[inline]
20354    fn cast(syntax: SyntaxNode) -> Option<Self> {
20355        if Self::can_cast(syntax.kind()) {
20356            Some(Self { syntax })
20357        } else {
20358            None
20359        }
20360    }
20361    #[inline]
20362    fn syntax(&self) -> &SyntaxNode {
20363        &self.syntax
20364    }
20365}
20366impl AstNode for DropForeignTable {
20367    #[inline]
20368    fn can_cast(kind: SyntaxKind) -> bool {
20369        kind == SyntaxKind::DROP_FOREIGN_TABLE
20370    }
20371    #[inline]
20372    fn cast(syntax: SyntaxNode) -> Option<Self> {
20373        if Self::can_cast(syntax.kind()) {
20374            Some(Self { syntax })
20375        } else {
20376            None
20377        }
20378    }
20379    #[inline]
20380    fn syntax(&self) -> &SyntaxNode {
20381        &self.syntax
20382    }
20383}
20384impl AstNode for DropFunction {
20385    #[inline]
20386    fn can_cast(kind: SyntaxKind) -> bool {
20387        kind == SyntaxKind::DROP_FUNCTION
20388    }
20389    #[inline]
20390    fn cast(syntax: SyntaxNode) -> Option<Self> {
20391        if Self::can_cast(syntax.kind()) {
20392            Some(Self { syntax })
20393        } else {
20394            None
20395        }
20396    }
20397    #[inline]
20398    fn syntax(&self) -> &SyntaxNode {
20399        &self.syntax
20400    }
20401}
20402impl AstNode for DropGroup {
20403    #[inline]
20404    fn can_cast(kind: SyntaxKind) -> bool {
20405        kind == SyntaxKind::DROP_GROUP
20406    }
20407    #[inline]
20408    fn cast(syntax: SyntaxNode) -> Option<Self> {
20409        if Self::can_cast(syntax.kind()) {
20410            Some(Self { syntax })
20411        } else {
20412            None
20413        }
20414    }
20415    #[inline]
20416    fn syntax(&self) -> &SyntaxNode {
20417        &self.syntax
20418    }
20419}
20420impl AstNode for DropIdentity {
20421    #[inline]
20422    fn can_cast(kind: SyntaxKind) -> bool {
20423        kind == SyntaxKind::DROP_IDENTITY
20424    }
20425    #[inline]
20426    fn cast(syntax: SyntaxNode) -> Option<Self> {
20427        if Self::can_cast(syntax.kind()) {
20428            Some(Self { syntax })
20429        } else {
20430            None
20431        }
20432    }
20433    #[inline]
20434    fn syntax(&self) -> &SyntaxNode {
20435        &self.syntax
20436    }
20437}
20438impl AstNode for DropIndex {
20439    #[inline]
20440    fn can_cast(kind: SyntaxKind) -> bool {
20441        kind == SyntaxKind::DROP_INDEX
20442    }
20443    #[inline]
20444    fn cast(syntax: SyntaxNode) -> Option<Self> {
20445        if Self::can_cast(syntax.kind()) {
20446            Some(Self { syntax })
20447        } else {
20448            None
20449        }
20450    }
20451    #[inline]
20452    fn syntax(&self) -> &SyntaxNode {
20453        &self.syntax
20454    }
20455}
20456impl AstNode for DropLanguage {
20457    #[inline]
20458    fn can_cast(kind: SyntaxKind) -> bool {
20459        kind == SyntaxKind::DROP_LANGUAGE
20460    }
20461    #[inline]
20462    fn cast(syntax: SyntaxNode) -> Option<Self> {
20463        if Self::can_cast(syntax.kind()) {
20464            Some(Self { syntax })
20465        } else {
20466            None
20467        }
20468    }
20469    #[inline]
20470    fn syntax(&self) -> &SyntaxNode {
20471        &self.syntax
20472    }
20473}
20474impl AstNode for DropMaterializedView {
20475    #[inline]
20476    fn can_cast(kind: SyntaxKind) -> bool {
20477        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20478    }
20479    #[inline]
20480    fn cast(syntax: SyntaxNode) -> Option<Self> {
20481        if Self::can_cast(syntax.kind()) {
20482            Some(Self { syntax })
20483        } else {
20484            None
20485        }
20486    }
20487    #[inline]
20488    fn syntax(&self) -> &SyntaxNode {
20489        &self.syntax
20490    }
20491}
20492impl AstNode for DropNotNull {
20493    #[inline]
20494    fn can_cast(kind: SyntaxKind) -> bool {
20495        kind == SyntaxKind::DROP_NOT_NULL
20496    }
20497    #[inline]
20498    fn cast(syntax: SyntaxNode) -> Option<Self> {
20499        if Self::can_cast(syntax.kind()) {
20500            Some(Self { syntax })
20501        } else {
20502            None
20503        }
20504    }
20505    #[inline]
20506    fn syntax(&self) -> &SyntaxNode {
20507        &self.syntax
20508    }
20509}
20510impl AstNode for DropOpClassOption {
20511    #[inline]
20512    fn can_cast(kind: SyntaxKind) -> bool {
20513        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20514    }
20515    #[inline]
20516    fn cast(syntax: SyntaxNode) -> Option<Self> {
20517        if Self::can_cast(syntax.kind()) {
20518            Some(Self { syntax })
20519        } else {
20520            None
20521        }
20522    }
20523    #[inline]
20524    fn syntax(&self) -> &SyntaxNode {
20525        &self.syntax
20526    }
20527}
20528impl AstNode for DropOpClassOptionList {
20529    #[inline]
20530    fn can_cast(kind: SyntaxKind) -> bool {
20531        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20532    }
20533    #[inline]
20534    fn cast(syntax: SyntaxNode) -> Option<Self> {
20535        if Self::can_cast(syntax.kind()) {
20536            Some(Self { syntax })
20537        } else {
20538            None
20539        }
20540    }
20541    #[inline]
20542    fn syntax(&self) -> &SyntaxNode {
20543        &self.syntax
20544    }
20545}
20546impl AstNode for DropOpClassOptions {
20547    #[inline]
20548    fn can_cast(kind: SyntaxKind) -> bool {
20549        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20550    }
20551    #[inline]
20552    fn cast(syntax: SyntaxNode) -> Option<Self> {
20553        if Self::can_cast(syntax.kind()) {
20554            Some(Self { syntax })
20555        } else {
20556            None
20557        }
20558    }
20559    #[inline]
20560    fn syntax(&self) -> &SyntaxNode {
20561        &self.syntax
20562    }
20563}
20564impl AstNode for DropOperator {
20565    #[inline]
20566    fn can_cast(kind: SyntaxKind) -> bool {
20567        kind == SyntaxKind::DROP_OPERATOR
20568    }
20569    #[inline]
20570    fn cast(syntax: SyntaxNode) -> Option<Self> {
20571        if Self::can_cast(syntax.kind()) {
20572            Some(Self { syntax })
20573        } else {
20574            None
20575        }
20576    }
20577    #[inline]
20578    fn syntax(&self) -> &SyntaxNode {
20579        &self.syntax
20580    }
20581}
20582impl AstNode for DropOperatorClass {
20583    #[inline]
20584    fn can_cast(kind: SyntaxKind) -> bool {
20585        kind == SyntaxKind::DROP_OPERATOR_CLASS
20586    }
20587    #[inline]
20588    fn cast(syntax: SyntaxNode) -> Option<Self> {
20589        if Self::can_cast(syntax.kind()) {
20590            Some(Self { syntax })
20591        } else {
20592            None
20593        }
20594    }
20595    #[inline]
20596    fn syntax(&self) -> &SyntaxNode {
20597        &self.syntax
20598    }
20599}
20600impl AstNode for DropOperatorFamily {
20601    #[inline]
20602    fn can_cast(kind: SyntaxKind) -> bool {
20603        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20604    }
20605    #[inline]
20606    fn cast(syntax: SyntaxNode) -> Option<Self> {
20607        if Self::can_cast(syntax.kind()) {
20608            Some(Self { syntax })
20609        } else {
20610            None
20611        }
20612    }
20613    #[inline]
20614    fn syntax(&self) -> &SyntaxNode {
20615        &self.syntax
20616    }
20617}
20618impl AstNode for DropOwned {
20619    #[inline]
20620    fn can_cast(kind: SyntaxKind) -> bool {
20621        kind == SyntaxKind::DROP_OWNED
20622    }
20623    #[inline]
20624    fn cast(syntax: SyntaxNode) -> Option<Self> {
20625        if Self::can_cast(syntax.kind()) {
20626            Some(Self { syntax })
20627        } else {
20628            None
20629        }
20630    }
20631    #[inline]
20632    fn syntax(&self) -> &SyntaxNode {
20633        &self.syntax
20634    }
20635}
20636impl AstNode for DropPolicy {
20637    #[inline]
20638    fn can_cast(kind: SyntaxKind) -> bool {
20639        kind == SyntaxKind::DROP_POLICY
20640    }
20641    #[inline]
20642    fn cast(syntax: SyntaxNode) -> Option<Self> {
20643        if Self::can_cast(syntax.kind()) {
20644            Some(Self { syntax })
20645        } else {
20646            None
20647        }
20648    }
20649    #[inline]
20650    fn syntax(&self) -> &SyntaxNode {
20651        &self.syntax
20652    }
20653}
20654impl AstNode for DropProcedure {
20655    #[inline]
20656    fn can_cast(kind: SyntaxKind) -> bool {
20657        kind == SyntaxKind::DROP_PROCEDURE
20658    }
20659    #[inline]
20660    fn cast(syntax: SyntaxNode) -> Option<Self> {
20661        if Self::can_cast(syntax.kind()) {
20662            Some(Self { syntax })
20663        } else {
20664            None
20665        }
20666    }
20667    #[inline]
20668    fn syntax(&self) -> &SyntaxNode {
20669        &self.syntax
20670    }
20671}
20672impl AstNode for DropPublication {
20673    #[inline]
20674    fn can_cast(kind: SyntaxKind) -> bool {
20675        kind == SyntaxKind::DROP_PUBLICATION
20676    }
20677    #[inline]
20678    fn cast(syntax: SyntaxNode) -> Option<Self> {
20679        if Self::can_cast(syntax.kind()) {
20680            Some(Self { syntax })
20681        } else {
20682            None
20683        }
20684    }
20685    #[inline]
20686    fn syntax(&self) -> &SyntaxNode {
20687        &self.syntax
20688    }
20689}
20690impl AstNode for DropRole {
20691    #[inline]
20692    fn can_cast(kind: SyntaxKind) -> bool {
20693        kind == SyntaxKind::DROP_ROLE
20694    }
20695    #[inline]
20696    fn cast(syntax: SyntaxNode) -> Option<Self> {
20697        if Self::can_cast(syntax.kind()) {
20698            Some(Self { syntax })
20699        } else {
20700            None
20701        }
20702    }
20703    #[inline]
20704    fn syntax(&self) -> &SyntaxNode {
20705        &self.syntax
20706    }
20707}
20708impl AstNode for DropRoutine {
20709    #[inline]
20710    fn can_cast(kind: SyntaxKind) -> bool {
20711        kind == SyntaxKind::DROP_ROUTINE
20712    }
20713    #[inline]
20714    fn cast(syntax: SyntaxNode) -> Option<Self> {
20715        if Self::can_cast(syntax.kind()) {
20716            Some(Self { syntax })
20717        } else {
20718            None
20719        }
20720    }
20721    #[inline]
20722    fn syntax(&self) -> &SyntaxNode {
20723        &self.syntax
20724    }
20725}
20726impl AstNode for DropRule {
20727    #[inline]
20728    fn can_cast(kind: SyntaxKind) -> bool {
20729        kind == SyntaxKind::DROP_RULE
20730    }
20731    #[inline]
20732    fn cast(syntax: SyntaxNode) -> Option<Self> {
20733        if Self::can_cast(syntax.kind()) {
20734            Some(Self { syntax })
20735        } else {
20736            None
20737        }
20738    }
20739    #[inline]
20740    fn syntax(&self) -> &SyntaxNode {
20741        &self.syntax
20742    }
20743}
20744impl AstNode for DropSchema {
20745    #[inline]
20746    fn can_cast(kind: SyntaxKind) -> bool {
20747        kind == SyntaxKind::DROP_SCHEMA
20748    }
20749    #[inline]
20750    fn cast(syntax: SyntaxNode) -> Option<Self> {
20751        if Self::can_cast(syntax.kind()) {
20752            Some(Self { syntax })
20753        } else {
20754            None
20755        }
20756    }
20757    #[inline]
20758    fn syntax(&self) -> &SyntaxNode {
20759        &self.syntax
20760    }
20761}
20762impl AstNode for DropSequence {
20763    #[inline]
20764    fn can_cast(kind: SyntaxKind) -> bool {
20765        kind == SyntaxKind::DROP_SEQUENCE
20766    }
20767    #[inline]
20768    fn cast(syntax: SyntaxNode) -> Option<Self> {
20769        if Self::can_cast(syntax.kind()) {
20770            Some(Self { syntax })
20771        } else {
20772            None
20773        }
20774    }
20775    #[inline]
20776    fn syntax(&self) -> &SyntaxNode {
20777        &self.syntax
20778    }
20779}
20780impl AstNode for DropServer {
20781    #[inline]
20782    fn can_cast(kind: SyntaxKind) -> bool {
20783        kind == SyntaxKind::DROP_SERVER
20784    }
20785    #[inline]
20786    fn cast(syntax: SyntaxNode) -> Option<Self> {
20787        if Self::can_cast(syntax.kind()) {
20788            Some(Self { syntax })
20789        } else {
20790            None
20791        }
20792    }
20793    #[inline]
20794    fn syntax(&self) -> &SyntaxNode {
20795        &self.syntax
20796    }
20797}
20798impl AstNode for DropStatistics {
20799    #[inline]
20800    fn can_cast(kind: SyntaxKind) -> bool {
20801        kind == SyntaxKind::DROP_STATISTICS
20802    }
20803    #[inline]
20804    fn cast(syntax: SyntaxNode) -> Option<Self> {
20805        if Self::can_cast(syntax.kind()) {
20806            Some(Self { syntax })
20807        } else {
20808            None
20809        }
20810    }
20811    #[inline]
20812    fn syntax(&self) -> &SyntaxNode {
20813        &self.syntax
20814    }
20815}
20816impl AstNode for DropSubscription {
20817    #[inline]
20818    fn can_cast(kind: SyntaxKind) -> bool {
20819        kind == SyntaxKind::DROP_SUBSCRIPTION
20820    }
20821    #[inline]
20822    fn cast(syntax: SyntaxNode) -> Option<Self> {
20823        if Self::can_cast(syntax.kind()) {
20824            Some(Self { syntax })
20825        } else {
20826            None
20827        }
20828    }
20829    #[inline]
20830    fn syntax(&self) -> &SyntaxNode {
20831        &self.syntax
20832    }
20833}
20834impl AstNode for DropTable {
20835    #[inline]
20836    fn can_cast(kind: SyntaxKind) -> bool {
20837        kind == SyntaxKind::DROP_TABLE
20838    }
20839    #[inline]
20840    fn cast(syntax: SyntaxNode) -> Option<Self> {
20841        if Self::can_cast(syntax.kind()) {
20842            Some(Self { syntax })
20843        } else {
20844            None
20845        }
20846    }
20847    #[inline]
20848    fn syntax(&self) -> &SyntaxNode {
20849        &self.syntax
20850    }
20851}
20852impl AstNode for DropTablespace {
20853    #[inline]
20854    fn can_cast(kind: SyntaxKind) -> bool {
20855        kind == SyntaxKind::DROP_TABLESPACE
20856    }
20857    #[inline]
20858    fn cast(syntax: SyntaxNode) -> Option<Self> {
20859        if Self::can_cast(syntax.kind()) {
20860            Some(Self { syntax })
20861        } else {
20862            None
20863        }
20864    }
20865    #[inline]
20866    fn syntax(&self) -> &SyntaxNode {
20867        &self.syntax
20868    }
20869}
20870impl AstNode for DropTextSearchConfig {
20871    #[inline]
20872    fn can_cast(kind: SyntaxKind) -> bool {
20873        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
20874    }
20875    #[inline]
20876    fn cast(syntax: SyntaxNode) -> Option<Self> {
20877        if Self::can_cast(syntax.kind()) {
20878            Some(Self { syntax })
20879        } else {
20880            None
20881        }
20882    }
20883    #[inline]
20884    fn syntax(&self) -> &SyntaxNode {
20885        &self.syntax
20886    }
20887}
20888impl AstNode for DropTextSearchDict {
20889    #[inline]
20890    fn can_cast(kind: SyntaxKind) -> bool {
20891        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
20892    }
20893    #[inline]
20894    fn cast(syntax: SyntaxNode) -> Option<Self> {
20895        if Self::can_cast(syntax.kind()) {
20896            Some(Self { syntax })
20897        } else {
20898            None
20899        }
20900    }
20901    #[inline]
20902    fn syntax(&self) -> &SyntaxNode {
20903        &self.syntax
20904    }
20905}
20906impl AstNode for DropTextSearchParser {
20907    #[inline]
20908    fn can_cast(kind: SyntaxKind) -> bool {
20909        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
20910    }
20911    #[inline]
20912    fn cast(syntax: SyntaxNode) -> Option<Self> {
20913        if Self::can_cast(syntax.kind()) {
20914            Some(Self { syntax })
20915        } else {
20916            None
20917        }
20918    }
20919    #[inline]
20920    fn syntax(&self) -> &SyntaxNode {
20921        &self.syntax
20922    }
20923}
20924impl AstNode for DropTextSearchTemplate {
20925    #[inline]
20926    fn can_cast(kind: SyntaxKind) -> bool {
20927        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
20928    }
20929    #[inline]
20930    fn cast(syntax: SyntaxNode) -> Option<Self> {
20931        if Self::can_cast(syntax.kind()) {
20932            Some(Self { syntax })
20933        } else {
20934            None
20935        }
20936    }
20937    #[inline]
20938    fn syntax(&self) -> &SyntaxNode {
20939        &self.syntax
20940    }
20941}
20942impl AstNode for DropTransform {
20943    #[inline]
20944    fn can_cast(kind: SyntaxKind) -> bool {
20945        kind == SyntaxKind::DROP_TRANSFORM
20946    }
20947    #[inline]
20948    fn cast(syntax: SyntaxNode) -> Option<Self> {
20949        if Self::can_cast(syntax.kind()) {
20950            Some(Self { syntax })
20951        } else {
20952            None
20953        }
20954    }
20955    #[inline]
20956    fn syntax(&self) -> &SyntaxNode {
20957        &self.syntax
20958    }
20959}
20960impl AstNode for DropTrigger {
20961    #[inline]
20962    fn can_cast(kind: SyntaxKind) -> bool {
20963        kind == SyntaxKind::DROP_TRIGGER
20964    }
20965    #[inline]
20966    fn cast(syntax: SyntaxNode) -> Option<Self> {
20967        if Self::can_cast(syntax.kind()) {
20968            Some(Self { syntax })
20969        } else {
20970            None
20971        }
20972    }
20973    #[inline]
20974    fn syntax(&self) -> &SyntaxNode {
20975        &self.syntax
20976    }
20977}
20978impl AstNode for DropType {
20979    #[inline]
20980    fn can_cast(kind: SyntaxKind) -> bool {
20981        kind == SyntaxKind::DROP_TYPE
20982    }
20983    #[inline]
20984    fn cast(syntax: SyntaxNode) -> Option<Self> {
20985        if Self::can_cast(syntax.kind()) {
20986            Some(Self { syntax })
20987        } else {
20988            None
20989        }
20990    }
20991    #[inline]
20992    fn syntax(&self) -> &SyntaxNode {
20993        &self.syntax
20994    }
20995}
20996impl AstNode for DropUser {
20997    #[inline]
20998    fn can_cast(kind: SyntaxKind) -> bool {
20999        kind == SyntaxKind::DROP_USER
21000    }
21001    #[inline]
21002    fn cast(syntax: SyntaxNode) -> Option<Self> {
21003        if Self::can_cast(syntax.kind()) {
21004            Some(Self { syntax })
21005        } else {
21006            None
21007        }
21008    }
21009    #[inline]
21010    fn syntax(&self) -> &SyntaxNode {
21011        &self.syntax
21012    }
21013}
21014impl AstNode for DropUserMapping {
21015    #[inline]
21016    fn can_cast(kind: SyntaxKind) -> bool {
21017        kind == SyntaxKind::DROP_USER_MAPPING
21018    }
21019    #[inline]
21020    fn cast(syntax: SyntaxNode) -> Option<Self> {
21021        if Self::can_cast(syntax.kind()) {
21022            Some(Self { syntax })
21023        } else {
21024            None
21025        }
21026    }
21027    #[inline]
21028    fn syntax(&self) -> &SyntaxNode {
21029        &self.syntax
21030    }
21031}
21032impl AstNode for DropView {
21033    #[inline]
21034    fn can_cast(kind: SyntaxKind) -> bool {
21035        kind == SyntaxKind::DROP_VIEW
21036    }
21037    #[inline]
21038    fn cast(syntax: SyntaxNode) -> Option<Self> {
21039        if Self::can_cast(syntax.kind()) {
21040            Some(Self { syntax })
21041        } else {
21042            None
21043        }
21044    }
21045    #[inline]
21046    fn syntax(&self) -> &SyntaxNode {
21047        &self.syntax
21048    }
21049}
21050impl AstNode for ElseClause {
21051    #[inline]
21052    fn can_cast(kind: SyntaxKind) -> bool {
21053        kind == SyntaxKind::ELSE_CLAUSE
21054    }
21055    #[inline]
21056    fn cast(syntax: SyntaxNode) -> Option<Self> {
21057        if Self::can_cast(syntax.kind()) {
21058            Some(Self { syntax })
21059        } else {
21060            None
21061        }
21062    }
21063    #[inline]
21064    fn syntax(&self) -> &SyntaxNode {
21065        &self.syntax
21066    }
21067}
21068impl AstNode for EnableAlwaysRule {
21069    #[inline]
21070    fn can_cast(kind: SyntaxKind) -> bool {
21071        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21072    }
21073    #[inline]
21074    fn cast(syntax: SyntaxNode) -> Option<Self> {
21075        if Self::can_cast(syntax.kind()) {
21076            Some(Self { syntax })
21077        } else {
21078            None
21079        }
21080    }
21081    #[inline]
21082    fn syntax(&self) -> &SyntaxNode {
21083        &self.syntax
21084    }
21085}
21086impl AstNode for EnableAlwaysTrigger {
21087    #[inline]
21088    fn can_cast(kind: SyntaxKind) -> bool {
21089        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21090    }
21091    #[inline]
21092    fn cast(syntax: SyntaxNode) -> Option<Self> {
21093        if Self::can_cast(syntax.kind()) {
21094            Some(Self { syntax })
21095        } else {
21096            None
21097        }
21098    }
21099    #[inline]
21100    fn syntax(&self) -> &SyntaxNode {
21101        &self.syntax
21102    }
21103}
21104impl AstNode for EnableReplicaRule {
21105    #[inline]
21106    fn can_cast(kind: SyntaxKind) -> bool {
21107        kind == SyntaxKind::ENABLE_REPLICA_RULE
21108    }
21109    #[inline]
21110    fn cast(syntax: SyntaxNode) -> Option<Self> {
21111        if Self::can_cast(syntax.kind()) {
21112            Some(Self { syntax })
21113        } else {
21114            None
21115        }
21116    }
21117    #[inline]
21118    fn syntax(&self) -> &SyntaxNode {
21119        &self.syntax
21120    }
21121}
21122impl AstNode for EnableReplicaTrigger {
21123    #[inline]
21124    fn can_cast(kind: SyntaxKind) -> bool {
21125        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21126    }
21127    #[inline]
21128    fn cast(syntax: SyntaxNode) -> Option<Self> {
21129        if Self::can_cast(syntax.kind()) {
21130            Some(Self { syntax })
21131        } else {
21132            None
21133        }
21134    }
21135    #[inline]
21136    fn syntax(&self) -> &SyntaxNode {
21137        &self.syntax
21138    }
21139}
21140impl AstNode for EnableRls {
21141    #[inline]
21142    fn can_cast(kind: SyntaxKind) -> bool {
21143        kind == SyntaxKind::ENABLE_RLS
21144    }
21145    #[inline]
21146    fn cast(syntax: SyntaxNode) -> Option<Self> {
21147        if Self::can_cast(syntax.kind()) {
21148            Some(Self { syntax })
21149        } else {
21150            None
21151        }
21152    }
21153    #[inline]
21154    fn syntax(&self) -> &SyntaxNode {
21155        &self.syntax
21156    }
21157}
21158impl AstNode for EnableRule {
21159    #[inline]
21160    fn can_cast(kind: SyntaxKind) -> bool {
21161        kind == SyntaxKind::ENABLE_RULE
21162    }
21163    #[inline]
21164    fn cast(syntax: SyntaxNode) -> Option<Self> {
21165        if Self::can_cast(syntax.kind()) {
21166            Some(Self { syntax })
21167        } else {
21168            None
21169        }
21170    }
21171    #[inline]
21172    fn syntax(&self) -> &SyntaxNode {
21173        &self.syntax
21174    }
21175}
21176impl AstNode for EnableTrigger {
21177    #[inline]
21178    fn can_cast(kind: SyntaxKind) -> bool {
21179        kind == SyntaxKind::ENABLE_TRIGGER
21180    }
21181    #[inline]
21182    fn cast(syntax: SyntaxNode) -> Option<Self> {
21183        if Self::can_cast(syntax.kind()) {
21184            Some(Self { syntax })
21185        } else {
21186            None
21187        }
21188    }
21189    #[inline]
21190    fn syntax(&self) -> &SyntaxNode {
21191        &self.syntax
21192    }
21193}
21194impl AstNode for Enforced {
21195    #[inline]
21196    fn can_cast(kind: SyntaxKind) -> bool {
21197        kind == SyntaxKind::ENFORCED
21198    }
21199    #[inline]
21200    fn cast(syntax: SyntaxNode) -> Option<Self> {
21201        if Self::can_cast(syntax.kind()) {
21202            Some(Self { syntax })
21203        } else {
21204            None
21205        }
21206    }
21207    #[inline]
21208    fn syntax(&self) -> &SyntaxNode {
21209        &self.syntax
21210    }
21211}
21212impl AstNode for EventTriggerWhen {
21213    #[inline]
21214    fn can_cast(kind: SyntaxKind) -> bool {
21215        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21216    }
21217    #[inline]
21218    fn cast(syntax: SyntaxNode) -> Option<Self> {
21219        if Self::can_cast(syntax.kind()) {
21220            Some(Self { syntax })
21221        } else {
21222            None
21223        }
21224    }
21225    #[inline]
21226    fn syntax(&self) -> &SyntaxNode {
21227        &self.syntax
21228    }
21229}
21230impl AstNode for EventTriggerWhenClause {
21231    #[inline]
21232    fn can_cast(kind: SyntaxKind) -> bool {
21233        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21234    }
21235    #[inline]
21236    fn cast(syntax: SyntaxNode) -> Option<Self> {
21237        if Self::can_cast(syntax.kind()) {
21238            Some(Self { syntax })
21239        } else {
21240            None
21241        }
21242    }
21243    #[inline]
21244    fn syntax(&self) -> &SyntaxNode {
21245        &self.syntax
21246    }
21247}
21248impl AstNode for ExceptTables {
21249    #[inline]
21250    fn can_cast(kind: SyntaxKind) -> bool {
21251        kind == SyntaxKind::EXCEPT_TABLES
21252    }
21253    #[inline]
21254    fn cast(syntax: SyntaxNode) -> Option<Self> {
21255        if Self::can_cast(syntax.kind()) {
21256            Some(Self { syntax })
21257        } else {
21258            None
21259        }
21260    }
21261    #[inline]
21262    fn syntax(&self) -> &SyntaxNode {
21263        &self.syntax
21264    }
21265}
21266impl AstNode for ExcludeConstraint {
21267    #[inline]
21268    fn can_cast(kind: SyntaxKind) -> bool {
21269        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21270    }
21271    #[inline]
21272    fn cast(syntax: SyntaxNode) -> Option<Self> {
21273        if Self::can_cast(syntax.kind()) {
21274            Some(Self { syntax })
21275        } else {
21276            None
21277        }
21278    }
21279    #[inline]
21280    fn syntax(&self) -> &SyntaxNode {
21281        &self.syntax
21282    }
21283}
21284impl AstNode for Execute {
21285    #[inline]
21286    fn can_cast(kind: SyntaxKind) -> bool {
21287        kind == SyntaxKind::EXECUTE
21288    }
21289    #[inline]
21290    fn cast(syntax: SyntaxNode) -> Option<Self> {
21291        if Self::can_cast(syntax.kind()) {
21292            Some(Self { syntax })
21293        } else {
21294            None
21295        }
21296    }
21297    #[inline]
21298    fn syntax(&self) -> &SyntaxNode {
21299        &self.syntax
21300    }
21301}
21302impl AstNode for ExistsFn {
21303    #[inline]
21304    fn can_cast(kind: SyntaxKind) -> bool {
21305        kind == SyntaxKind::EXISTS_FN
21306    }
21307    #[inline]
21308    fn cast(syntax: SyntaxNode) -> Option<Self> {
21309        if Self::can_cast(syntax.kind()) {
21310            Some(Self { syntax })
21311        } else {
21312            None
21313        }
21314    }
21315    #[inline]
21316    fn syntax(&self) -> &SyntaxNode {
21317        &self.syntax
21318    }
21319}
21320impl AstNode for Explain {
21321    #[inline]
21322    fn can_cast(kind: SyntaxKind) -> bool {
21323        kind == SyntaxKind::EXPLAIN
21324    }
21325    #[inline]
21326    fn cast(syntax: SyntaxNode) -> Option<Self> {
21327        if Self::can_cast(syntax.kind()) {
21328            Some(Self { syntax })
21329        } else {
21330            None
21331        }
21332    }
21333    #[inline]
21334    fn syntax(&self) -> &SyntaxNode {
21335        &self.syntax
21336    }
21337}
21338impl AstNode for ExprAsName {
21339    #[inline]
21340    fn can_cast(kind: SyntaxKind) -> bool {
21341        kind == SyntaxKind::EXPR_AS_NAME
21342    }
21343    #[inline]
21344    fn cast(syntax: SyntaxNode) -> Option<Self> {
21345        if Self::can_cast(syntax.kind()) {
21346            Some(Self { syntax })
21347        } else {
21348            None
21349        }
21350    }
21351    #[inline]
21352    fn syntax(&self) -> &SyntaxNode {
21353        &self.syntax
21354    }
21355}
21356impl AstNode for ExprType {
21357    #[inline]
21358    fn can_cast(kind: SyntaxKind) -> bool {
21359        kind == SyntaxKind::EXPR_TYPE
21360    }
21361    #[inline]
21362    fn cast(syntax: SyntaxNode) -> Option<Self> {
21363        if Self::can_cast(syntax.kind()) {
21364            Some(Self { syntax })
21365        } else {
21366            None
21367        }
21368    }
21369    #[inline]
21370    fn syntax(&self) -> &SyntaxNode {
21371        &self.syntax
21372    }
21373}
21374impl AstNode for ExtractFn {
21375    #[inline]
21376    fn can_cast(kind: SyntaxKind) -> bool {
21377        kind == SyntaxKind::EXTRACT_FN
21378    }
21379    #[inline]
21380    fn cast(syntax: SyntaxNode) -> Option<Self> {
21381        if Self::can_cast(syntax.kind()) {
21382            Some(Self { syntax })
21383        } else {
21384            None
21385        }
21386    }
21387    #[inline]
21388    fn syntax(&self) -> &SyntaxNode {
21389        &self.syntax
21390    }
21391}
21392impl AstNode for FatArrow {
21393    #[inline]
21394    fn can_cast(kind: SyntaxKind) -> bool {
21395        kind == SyntaxKind::FAT_ARROW
21396    }
21397    #[inline]
21398    fn cast(syntax: SyntaxNode) -> Option<Self> {
21399        if Self::can_cast(syntax.kind()) {
21400            Some(Self { syntax })
21401        } else {
21402            None
21403        }
21404    }
21405    #[inline]
21406    fn syntax(&self) -> &SyntaxNode {
21407        &self.syntax
21408    }
21409}
21410impl AstNode for FdwOption {
21411    #[inline]
21412    fn can_cast(kind: SyntaxKind) -> bool {
21413        kind == SyntaxKind::FDW_OPTION
21414    }
21415    #[inline]
21416    fn cast(syntax: SyntaxNode) -> Option<Self> {
21417        if Self::can_cast(syntax.kind()) {
21418            Some(Self { syntax })
21419        } else {
21420            None
21421        }
21422    }
21423    #[inline]
21424    fn syntax(&self) -> &SyntaxNode {
21425        &self.syntax
21426    }
21427}
21428impl AstNode for FdwOptionList {
21429    #[inline]
21430    fn can_cast(kind: SyntaxKind) -> bool {
21431        kind == SyntaxKind::FDW_OPTION_LIST
21432    }
21433    #[inline]
21434    fn cast(syntax: SyntaxNode) -> Option<Self> {
21435        if Self::can_cast(syntax.kind()) {
21436            Some(Self { syntax })
21437        } else {
21438            None
21439        }
21440    }
21441    #[inline]
21442    fn syntax(&self) -> &SyntaxNode {
21443        &self.syntax
21444    }
21445}
21446impl AstNode for Fetch {
21447    #[inline]
21448    fn can_cast(kind: SyntaxKind) -> bool {
21449        kind == SyntaxKind::FETCH
21450    }
21451    #[inline]
21452    fn cast(syntax: SyntaxNode) -> Option<Self> {
21453        if Self::can_cast(syntax.kind()) {
21454            Some(Self { syntax })
21455        } else {
21456            None
21457        }
21458    }
21459    #[inline]
21460    fn syntax(&self) -> &SyntaxNode {
21461        &self.syntax
21462    }
21463}
21464impl AstNode for FetchClause {
21465    #[inline]
21466    fn can_cast(kind: SyntaxKind) -> bool {
21467        kind == SyntaxKind::FETCH_CLAUSE
21468    }
21469    #[inline]
21470    fn cast(syntax: SyntaxNode) -> Option<Self> {
21471        if Self::can_cast(syntax.kind()) {
21472            Some(Self { syntax })
21473        } else {
21474            None
21475        }
21476    }
21477    #[inline]
21478    fn syntax(&self) -> &SyntaxNode {
21479        &self.syntax
21480    }
21481}
21482impl AstNode for FieldExpr {
21483    #[inline]
21484    fn can_cast(kind: SyntaxKind) -> bool {
21485        kind == SyntaxKind::FIELD_EXPR
21486    }
21487    #[inline]
21488    fn cast(syntax: SyntaxNode) -> Option<Self> {
21489        if Self::can_cast(syntax.kind()) {
21490            Some(Self { syntax })
21491        } else {
21492            None
21493        }
21494    }
21495    #[inline]
21496    fn syntax(&self) -> &SyntaxNode {
21497        &self.syntax
21498    }
21499}
21500impl AstNode for FilterClause {
21501    #[inline]
21502    fn can_cast(kind: SyntaxKind) -> bool {
21503        kind == SyntaxKind::FILTER_CLAUSE
21504    }
21505    #[inline]
21506    fn cast(syntax: SyntaxNode) -> Option<Self> {
21507        if Self::can_cast(syntax.kind()) {
21508            Some(Self { syntax })
21509        } else {
21510            None
21511        }
21512    }
21513    #[inline]
21514    fn syntax(&self) -> &SyntaxNode {
21515        &self.syntax
21516    }
21517}
21518impl AstNode for ForProvider {
21519    #[inline]
21520    fn can_cast(kind: SyntaxKind) -> bool {
21521        kind == SyntaxKind::FOR_PROVIDER
21522    }
21523    #[inline]
21524    fn cast(syntax: SyntaxNode) -> Option<Self> {
21525        if Self::can_cast(syntax.kind()) {
21526            Some(Self { syntax })
21527        } else {
21528            None
21529        }
21530    }
21531    #[inline]
21532    fn syntax(&self) -> &SyntaxNode {
21533        &self.syntax
21534    }
21535}
21536impl AstNode for ForceRls {
21537    #[inline]
21538    fn can_cast(kind: SyntaxKind) -> bool {
21539        kind == SyntaxKind::FORCE_RLS
21540    }
21541    #[inline]
21542    fn cast(syntax: SyntaxNode) -> Option<Self> {
21543        if Self::can_cast(syntax.kind()) {
21544            Some(Self { syntax })
21545        } else {
21546            None
21547        }
21548    }
21549    #[inline]
21550    fn syntax(&self) -> &SyntaxNode {
21551        &self.syntax
21552    }
21553}
21554impl AstNode for ForeignKeyConstraint {
21555    #[inline]
21556    fn can_cast(kind: SyntaxKind) -> bool {
21557        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21558    }
21559    #[inline]
21560    fn cast(syntax: SyntaxNode) -> Option<Self> {
21561        if Self::can_cast(syntax.kind()) {
21562            Some(Self { syntax })
21563        } else {
21564            None
21565        }
21566    }
21567    #[inline]
21568    fn syntax(&self) -> &SyntaxNode {
21569        &self.syntax
21570    }
21571}
21572impl AstNode for FrameClause {
21573    #[inline]
21574    fn can_cast(kind: SyntaxKind) -> bool {
21575        kind == SyntaxKind::FRAME_CLAUSE
21576    }
21577    #[inline]
21578    fn cast(syntax: SyntaxNode) -> Option<Self> {
21579        if Self::can_cast(syntax.kind()) {
21580            Some(Self { syntax })
21581        } else {
21582            None
21583        }
21584    }
21585    #[inline]
21586    fn syntax(&self) -> &SyntaxNode {
21587        &self.syntax
21588    }
21589}
21590impl AstNode for FromClause {
21591    #[inline]
21592    fn can_cast(kind: SyntaxKind) -> bool {
21593        kind == SyntaxKind::FROM_CLAUSE
21594    }
21595    #[inline]
21596    fn cast(syntax: SyntaxNode) -> Option<Self> {
21597        if Self::can_cast(syntax.kind()) {
21598            Some(Self { syntax })
21599        } else {
21600            None
21601        }
21602    }
21603    #[inline]
21604    fn syntax(&self) -> &SyntaxNode {
21605        &self.syntax
21606    }
21607}
21608impl AstNode for FromItem {
21609    #[inline]
21610    fn can_cast(kind: SyntaxKind) -> bool {
21611        kind == SyntaxKind::FROM_ITEM
21612    }
21613    #[inline]
21614    fn cast(syntax: SyntaxNode) -> Option<Self> {
21615        if Self::can_cast(syntax.kind()) {
21616            Some(Self { syntax })
21617        } else {
21618            None
21619        }
21620    }
21621    #[inline]
21622    fn syntax(&self) -> &SyntaxNode {
21623        &self.syntax
21624    }
21625}
21626impl AstNode for FromServer {
21627    #[inline]
21628    fn can_cast(kind: SyntaxKind) -> bool {
21629        kind == SyntaxKind::FROM_SERVER
21630    }
21631    #[inline]
21632    fn cast(syntax: SyntaxNode) -> Option<Self> {
21633        if Self::can_cast(syntax.kind()) {
21634            Some(Self { syntax })
21635        } else {
21636            None
21637        }
21638    }
21639    #[inline]
21640    fn syntax(&self) -> &SyntaxNode {
21641        &self.syntax
21642    }
21643}
21644impl AstNode for FromTable {
21645    #[inline]
21646    fn can_cast(kind: SyntaxKind) -> bool {
21647        kind == SyntaxKind::FROM_TABLE
21648    }
21649    #[inline]
21650    fn cast(syntax: SyntaxNode) -> Option<Self> {
21651        if Self::can_cast(syntax.kind()) {
21652            Some(Self { syntax })
21653        } else {
21654            None
21655        }
21656    }
21657    #[inline]
21658    fn syntax(&self) -> &SyntaxNode {
21659        &self.syntax
21660    }
21661}
21662impl AstNode for FuncOptionList {
21663    #[inline]
21664    fn can_cast(kind: SyntaxKind) -> bool {
21665        kind == SyntaxKind::FUNC_OPTION_LIST
21666    }
21667    #[inline]
21668    fn cast(syntax: SyntaxNode) -> Option<Self> {
21669        if Self::can_cast(syntax.kind()) {
21670            Some(Self { syntax })
21671        } else {
21672            None
21673        }
21674    }
21675    #[inline]
21676    fn syntax(&self) -> &SyntaxNode {
21677        &self.syntax
21678    }
21679}
21680impl AstNode for FunctionSig {
21681    #[inline]
21682    fn can_cast(kind: SyntaxKind) -> bool {
21683        kind == SyntaxKind::FUNCTION_SIG
21684    }
21685    #[inline]
21686    fn cast(syntax: SyntaxNode) -> Option<Self> {
21687        if Self::can_cast(syntax.kind()) {
21688            Some(Self { syntax })
21689        } else {
21690            None
21691        }
21692    }
21693    #[inline]
21694    fn syntax(&self) -> &SyntaxNode {
21695        &self.syntax
21696    }
21697}
21698impl AstNode for FunctionSigList {
21699    #[inline]
21700    fn can_cast(kind: SyntaxKind) -> bool {
21701        kind == SyntaxKind::FUNCTION_SIG_LIST
21702    }
21703    #[inline]
21704    fn cast(syntax: SyntaxNode) -> Option<Self> {
21705        if Self::can_cast(syntax.kind()) {
21706            Some(Self { syntax })
21707        } else {
21708            None
21709        }
21710    }
21711    #[inline]
21712    fn syntax(&self) -> &SyntaxNode {
21713        &self.syntax
21714    }
21715}
21716impl AstNode for GeneratedConstraint {
21717    #[inline]
21718    fn can_cast(kind: SyntaxKind) -> bool {
21719        kind == SyntaxKind::GENERATED_CONSTRAINT
21720    }
21721    #[inline]
21722    fn cast(syntax: SyntaxNode) -> Option<Self> {
21723        if Self::can_cast(syntax.kind()) {
21724            Some(Self { syntax })
21725        } else {
21726            None
21727        }
21728    }
21729    #[inline]
21730    fn syntax(&self) -> &SyntaxNode {
21731        &self.syntax
21732    }
21733}
21734impl AstNode for Grant {
21735    #[inline]
21736    fn can_cast(kind: SyntaxKind) -> bool {
21737        kind == SyntaxKind::GRANT
21738    }
21739    #[inline]
21740    fn cast(syntax: SyntaxNode) -> Option<Self> {
21741        if Self::can_cast(syntax.kind()) {
21742            Some(Self { syntax })
21743        } else {
21744            None
21745        }
21746    }
21747    #[inline]
21748    fn syntax(&self) -> &SyntaxNode {
21749        &self.syntax
21750    }
21751}
21752impl AstNode for GrantDefaultPrivileges {
21753    #[inline]
21754    fn can_cast(kind: SyntaxKind) -> bool {
21755        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21756    }
21757    #[inline]
21758    fn cast(syntax: SyntaxNode) -> Option<Self> {
21759        if Self::can_cast(syntax.kind()) {
21760            Some(Self { syntax })
21761        } else {
21762            None
21763        }
21764    }
21765    #[inline]
21766    fn syntax(&self) -> &SyntaxNode {
21767        &self.syntax
21768    }
21769}
21770impl AstNode for GroupByClause {
21771    #[inline]
21772    fn can_cast(kind: SyntaxKind) -> bool {
21773        kind == SyntaxKind::GROUP_BY_CLAUSE
21774    }
21775    #[inline]
21776    fn cast(syntax: SyntaxNode) -> Option<Self> {
21777        if Self::can_cast(syntax.kind()) {
21778            Some(Self { syntax })
21779        } else {
21780            None
21781        }
21782    }
21783    #[inline]
21784    fn syntax(&self) -> &SyntaxNode {
21785        &self.syntax
21786    }
21787}
21788impl AstNode for GroupByList {
21789    #[inline]
21790    fn can_cast(kind: SyntaxKind) -> bool {
21791        kind == SyntaxKind::GROUP_BY_LIST
21792    }
21793    #[inline]
21794    fn cast(syntax: SyntaxNode) -> Option<Self> {
21795        if Self::can_cast(syntax.kind()) {
21796            Some(Self { syntax })
21797        } else {
21798            None
21799        }
21800    }
21801    #[inline]
21802    fn syntax(&self) -> &SyntaxNode {
21803        &self.syntax
21804    }
21805}
21806impl AstNode for GroupingCube {
21807    #[inline]
21808    fn can_cast(kind: SyntaxKind) -> bool {
21809        kind == SyntaxKind::GROUPING_CUBE
21810    }
21811    #[inline]
21812    fn cast(syntax: SyntaxNode) -> Option<Self> {
21813        if Self::can_cast(syntax.kind()) {
21814            Some(Self { syntax })
21815        } else {
21816            None
21817        }
21818    }
21819    #[inline]
21820    fn syntax(&self) -> &SyntaxNode {
21821        &self.syntax
21822    }
21823}
21824impl AstNode for GroupingExpr {
21825    #[inline]
21826    fn can_cast(kind: SyntaxKind) -> bool {
21827        kind == SyntaxKind::GROUPING_EXPR
21828    }
21829    #[inline]
21830    fn cast(syntax: SyntaxNode) -> Option<Self> {
21831        if Self::can_cast(syntax.kind()) {
21832            Some(Self { syntax })
21833        } else {
21834            None
21835        }
21836    }
21837    #[inline]
21838    fn syntax(&self) -> &SyntaxNode {
21839        &self.syntax
21840    }
21841}
21842impl AstNode for GroupingRollup {
21843    #[inline]
21844    fn can_cast(kind: SyntaxKind) -> bool {
21845        kind == SyntaxKind::GROUPING_ROLLUP
21846    }
21847    #[inline]
21848    fn cast(syntax: SyntaxNode) -> Option<Self> {
21849        if Self::can_cast(syntax.kind()) {
21850            Some(Self { syntax })
21851        } else {
21852            None
21853        }
21854    }
21855    #[inline]
21856    fn syntax(&self) -> &SyntaxNode {
21857        &self.syntax
21858    }
21859}
21860impl AstNode for GroupingSets {
21861    #[inline]
21862    fn can_cast(kind: SyntaxKind) -> bool {
21863        kind == SyntaxKind::GROUPING_SETS
21864    }
21865    #[inline]
21866    fn cast(syntax: SyntaxNode) -> Option<Self> {
21867        if Self::can_cast(syntax.kind()) {
21868            Some(Self { syntax })
21869        } else {
21870            None
21871        }
21872    }
21873    #[inline]
21874    fn syntax(&self) -> &SyntaxNode {
21875        &self.syntax
21876    }
21877}
21878impl AstNode for Gteq {
21879    #[inline]
21880    fn can_cast(kind: SyntaxKind) -> bool {
21881        kind == SyntaxKind::GTEQ
21882    }
21883    #[inline]
21884    fn cast(syntax: SyntaxNode) -> Option<Self> {
21885        if Self::can_cast(syntax.kind()) {
21886            Some(Self { syntax })
21887        } else {
21888            None
21889        }
21890    }
21891    #[inline]
21892    fn syntax(&self) -> &SyntaxNode {
21893        &self.syntax
21894    }
21895}
21896impl AstNode for HandlerClause {
21897    #[inline]
21898    fn can_cast(kind: SyntaxKind) -> bool {
21899        kind == SyntaxKind::HANDLER_CLAUSE
21900    }
21901    #[inline]
21902    fn cast(syntax: SyntaxNode) -> Option<Self> {
21903        if Self::can_cast(syntax.kind()) {
21904            Some(Self { syntax })
21905        } else {
21906            None
21907        }
21908    }
21909    #[inline]
21910    fn syntax(&self) -> &SyntaxNode {
21911        &self.syntax
21912    }
21913}
21914impl AstNode for HavingClause {
21915    #[inline]
21916    fn can_cast(kind: SyntaxKind) -> bool {
21917        kind == SyntaxKind::HAVING_CLAUSE
21918    }
21919    #[inline]
21920    fn cast(syntax: SyntaxNode) -> Option<Self> {
21921        if Self::can_cast(syntax.kind()) {
21922            Some(Self { syntax })
21923        } else {
21924            None
21925        }
21926    }
21927    #[inline]
21928    fn syntax(&self) -> &SyntaxNode {
21929        &self.syntax
21930    }
21931}
21932impl AstNode for IfExists {
21933    #[inline]
21934    fn can_cast(kind: SyntaxKind) -> bool {
21935        kind == SyntaxKind::IF_EXISTS
21936    }
21937    #[inline]
21938    fn cast(syntax: SyntaxNode) -> Option<Self> {
21939        if Self::can_cast(syntax.kind()) {
21940            Some(Self { syntax })
21941        } else {
21942            None
21943        }
21944    }
21945    #[inline]
21946    fn syntax(&self) -> &SyntaxNode {
21947        &self.syntax
21948    }
21949}
21950impl AstNode for IfNotExists {
21951    #[inline]
21952    fn can_cast(kind: SyntaxKind) -> bool {
21953        kind == SyntaxKind::IF_NOT_EXISTS
21954    }
21955    #[inline]
21956    fn cast(syntax: SyntaxNode) -> Option<Self> {
21957        if Self::can_cast(syntax.kind()) {
21958            Some(Self { syntax })
21959        } else {
21960            None
21961        }
21962    }
21963    #[inline]
21964    fn syntax(&self) -> &SyntaxNode {
21965        &self.syntax
21966    }
21967}
21968impl AstNode for ImportForeignSchema {
21969    #[inline]
21970    fn can_cast(kind: SyntaxKind) -> bool {
21971        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
21972    }
21973    #[inline]
21974    fn cast(syntax: SyntaxNode) -> Option<Self> {
21975        if Self::can_cast(syntax.kind()) {
21976            Some(Self { syntax })
21977        } else {
21978            None
21979        }
21980    }
21981    #[inline]
21982    fn syntax(&self) -> &SyntaxNode {
21983        &self.syntax
21984    }
21985}
21986impl AstNode for IndexExpr {
21987    #[inline]
21988    fn can_cast(kind: SyntaxKind) -> bool {
21989        kind == SyntaxKind::INDEX_EXPR
21990    }
21991    #[inline]
21992    fn cast(syntax: SyntaxNode) -> Option<Self> {
21993        if Self::can_cast(syntax.kind()) {
21994            Some(Self { syntax })
21995        } else {
21996            None
21997        }
21998    }
21999    #[inline]
22000    fn syntax(&self) -> &SyntaxNode {
22001        &self.syntax
22002    }
22003}
22004impl AstNode for Inherit {
22005    #[inline]
22006    fn can_cast(kind: SyntaxKind) -> bool {
22007        kind == SyntaxKind::INHERIT
22008    }
22009    #[inline]
22010    fn cast(syntax: SyntaxNode) -> Option<Self> {
22011        if Self::can_cast(syntax.kind()) {
22012            Some(Self { syntax })
22013        } else {
22014            None
22015        }
22016    }
22017    #[inline]
22018    fn syntax(&self) -> &SyntaxNode {
22019        &self.syntax
22020    }
22021}
22022impl AstNode for InheritTable {
22023    #[inline]
22024    fn can_cast(kind: SyntaxKind) -> bool {
22025        kind == SyntaxKind::INHERIT_TABLE
22026    }
22027    #[inline]
22028    fn cast(syntax: SyntaxNode) -> Option<Self> {
22029        if Self::can_cast(syntax.kind()) {
22030            Some(Self { syntax })
22031        } else {
22032            None
22033        }
22034    }
22035    #[inline]
22036    fn syntax(&self) -> &SyntaxNode {
22037        &self.syntax
22038    }
22039}
22040impl AstNode for Inherits {
22041    #[inline]
22042    fn can_cast(kind: SyntaxKind) -> bool {
22043        kind == SyntaxKind::INHERITS
22044    }
22045    #[inline]
22046    fn cast(syntax: SyntaxNode) -> Option<Self> {
22047        if Self::can_cast(syntax.kind()) {
22048            Some(Self { syntax })
22049        } else {
22050            None
22051        }
22052    }
22053    #[inline]
22054    fn syntax(&self) -> &SyntaxNode {
22055        &self.syntax
22056    }
22057}
22058impl AstNode for InitiallyDeferredConstraintOption {
22059    #[inline]
22060    fn can_cast(kind: SyntaxKind) -> bool {
22061        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22062    }
22063    #[inline]
22064    fn cast(syntax: SyntaxNode) -> Option<Self> {
22065        if Self::can_cast(syntax.kind()) {
22066            Some(Self { syntax })
22067        } else {
22068            None
22069        }
22070    }
22071    #[inline]
22072    fn syntax(&self) -> &SyntaxNode {
22073        &self.syntax
22074    }
22075}
22076impl AstNode for InitiallyImmediateConstraintOption {
22077    #[inline]
22078    fn can_cast(kind: SyntaxKind) -> bool {
22079        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22080    }
22081    #[inline]
22082    fn cast(syntax: SyntaxNode) -> Option<Self> {
22083        if Self::can_cast(syntax.kind()) {
22084            Some(Self { syntax })
22085        } else {
22086            None
22087        }
22088    }
22089    #[inline]
22090    fn syntax(&self) -> &SyntaxNode {
22091        &self.syntax
22092    }
22093}
22094impl AstNode for Insert {
22095    #[inline]
22096    fn can_cast(kind: SyntaxKind) -> bool {
22097        kind == SyntaxKind::INSERT
22098    }
22099    #[inline]
22100    fn cast(syntax: SyntaxNode) -> Option<Self> {
22101        if Self::can_cast(syntax.kind()) {
22102            Some(Self { syntax })
22103        } else {
22104            None
22105        }
22106    }
22107    #[inline]
22108    fn syntax(&self) -> &SyntaxNode {
22109        &self.syntax
22110    }
22111}
22112impl AstNode for IntervalType {
22113    #[inline]
22114    fn can_cast(kind: SyntaxKind) -> bool {
22115        kind == SyntaxKind::INTERVAL_TYPE
22116    }
22117    #[inline]
22118    fn cast(syntax: SyntaxNode) -> Option<Self> {
22119        if Self::can_cast(syntax.kind()) {
22120            Some(Self { syntax })
22121        } else {
22122            None
22123        }
22124    }
22125    #[inline]
22126    fn syntax(&self) -> &SyntaxNode {
22127        &self.syntax
22128    }
22129}
22130impl AstNode for IntoClause {
22131    #[inline]
22132    fn can_cast(kind: SyntaxKind) -> bool {
22133        kind == SyntaxKind::INTO_CLAUSE
22134    }
22135    #[inline]
22136    fn cast(syntax: SyntaxNode) -> Option<Self> {
22137        if Self::can_cast(syntax.kind()) {
22138            Some(Self { syntax })
22139        } else {
22140            None
22141        }
22142    }
22143    #[inline]
22144    fn syntax(&self) -> &SyntaxNode {
22145        &self.syntax
22146    }
22147}
22148impl AstNode for IntoSchema {
22149    #[inline]
22150    fn can_cast(kind: SyntaxKind) -> bool {
22151        kind == SyntaxKind::INTO_SCHEMA
22152    }
22153    #[inline]
22154    fn cast(syntax: SyntaxNode) -> Option<Self> {
22155        if Self::can_cast(syntax.kind()) {
22156            Some(Self { syntax })
22157        } else {
22158            None
22159        }
22160    }
22161    #[inline]
22162    fn syntax(&self) -> &SyntaxNode {
22163        &self.syntax
22164    }
22165}
22166impl AstNode for IsDistinctFrom {
22167    #[inline]
22168    fn can_cast(kind: SyntaxKind) -> bool {
22169        kind == SyntaxKind::IS_DISTINCT_FROM
22170    }
22171    #[inline]
22172    fn cast(syntax: SyntaxNode) -> Option<Self> {
22173        if Self::can_cast(syntax.kind()) {
22174            Some(Self { syntax })
22175        } else {
22176            None
22177        }
22178    }
22179    #[inline]
22180    fn syntax(&self) -> &SyntaxNode {
22181        &self.syntax
22182    }
22183}
22184impl AstNode for IsJson {
22185    #[inline]
22186    fn can_cast(kind: SyntaxKind) -> bool {
22187        kind == SyntaxKind::IS_JSON
22188    }
22189    #[inline]
22190    fn cast(syntax: SyntaxNode) -> Option<Self> {
22191        if Self::can_cast(syntax.kind()) {
22192            Some(Self { syntax })
22193        } else {
22194            None
22195        }
22196    }
22197    #[inline]
22198    fn syntax(&self) -> &SyntaxNode {
22199        &self.syntax
22200    }
22201}
22202impl AstNode for IsJsonArray {
22203    #[inline]
22204    fn can_cast(kind: SyntaxKind) -> bool {
22205        kind == SyntaxKind::IS_JSON_ARRAY
22206    }
22207    #[inline]
22208    fn cast(syntax: SyntaxNode) -> Option<Self> {
22209        if Self::can_cast(syntax.kind()) {
22210            Some(Self { syntax })
22211        } else {
22212            None
22213        }
22214    }
22215    #[inline]
22216    fn syntax(&self) -> &SyntaxNode {
22217        &self.syntax
22218    }
22219}
22220impl AstNode for IsJsonObject {
22221    #[inline]
22222    fn can_cast(kind: SyntaxKind) -> bool {
22223        kind == SyntaxKind::IS_JSON_OBJECT
22224    }
22225    #[inline]
22226    fn cast(syntax: SyntaxNode) -> Option<Self> {
22227        if Self::can_cast(syntax.kind()) {
22228            Some(Self { syntax })
22229        } else {
22230            None
22231        }
22232    }
22233    #[inline]
22234    fn syntax(&self) -> &SyntaxNode {
22235        &self.syntax
22236    }
22237}
22238impl AstNode for IsJsonScalar {
22239    #[inline]
22240    fn can_cast(kind: SyntaxKind) -> bool {
22241        kind == SyntaxKind::IS_JSON_SCALAR
22242    }
22243    #[inline]
22244    fn cast(syntax: SyntaxNode) -> Option<Self> {
22245        if Self::can_cast(syntax.kind()) {
22246            Some(Self { syntax })
22247        } else {
22248            None
22249        }
22250    }
22251    #[inline]
22252    fn syntax(&self) -> &SyntaxNode {
22253        &self.syntax
22254    }
22255}
22256impl AstNode for IsJsonValue {
22257    #[inline]
22258    fn can_cast(kind: SyntaxKind) -> bool {
22259        kind == SyntaxKind::IS_JSON_VALUE
22260    }
22261    #[inline]
22262    fn cast(syntax: SyntaxNode) -> Option<Self> {
22263        if Self::can_cast(syntax.kind()) {
22264            Some(Self { syntax })
22265        } else {
22266            None
22267        }
22268    }
22269    #[inline]
22270    fn syntax(&self) -> &SyntaxNode {
22271        &self.syntax
22272    }
22273}
22274impl AstNode for IsNormalized {
22275    #[inline]
22276    fn can_cast(kind: SyntaxKind) -> bool {
22277        kind == SyntaxKind::IS_NORMALIZED
22278    }
22279    #[inline]
22280    fn cast(syntax: SyntaxNode) -> Option<Self> {
22281        if Self::can_cast(syntax.kind()) {
22282            Some(Self { syntax })
22283        } else {
22284            None
22285        }
22286    }
22287    #[inline]
22288    fn syntax(&self) -> &SyntaxNode {
22289        &self.syntax
22290    }
22291}
22292impl AstNode for IsNot {
22293    #[inline]
22294    fn can_cast(kind: SyntaxKind) -> bool {
22295        kind == SyntaxKind::IS_NOT
22296    }
22297    #[inline]
22298    fn cast(syntax: SyntaxNode) -> Option<Self> {
22299        if Self::can_cast(syntax.kind()) {
22300            Some(Self { syntax })
22301        } else {
22302            None
22303        }
22304    }
22305    #[inline]
22306    fn syntax(&self) -> &SyntaxNode {
22307        &self.syntax
22308    }
22309}
22310impl AstNode for IsNotDistinctFrom {
22311    #[inline]
22312    fn can_cast(kind: SyntaxKind) -> bool {
22313        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22314    }
22315    #[inline]
22316    fn cast(syntax: SyntaxNode) -> Option<Self> {
22317        if Self::can_cast(syntax.kind()) {
22318            Some(Self { syntax })
22319        } else {
22320            None
22321        }
22322    }
22323    #[inline]
22324    fn syntax(&self) -> &SyntaxNode {
22325        &self.syntax
22326    }
22327}
22328impl AstNode for IsNotJson {
22329    #[inline]
22330    fn can_cast(kind: SyntaxKind) -> bool {
22331        kind == SyntaxKind::IS_NOT_JSON
22332    }
22333    #[inline]
22334    fn cast(syntax: SyntaxNode) -> Option<Self> {
22335        if Self::can_cast(syntax.kind()) {
22336            Some(Self { syntax })
22337        } else {
22338            None
22339        }
22340    }
22341    #[inline]
22342    fn syntax(&self) -> &SyntaxNode {
22343        &self.syntax
22344    }
22345}
22346impl AstNode for IsNotJsonArray {
22347    #[inline]
22348    fn can_cast(kind: SyntaxKind) -> bool {
22349        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22350    }
22351    #[inline]
22352    fn cast(syntax: SyntaxNode) -> Option<Self> {
22353        if Self::can_cast(syntax.kind()) {
22354            Some(Self { syntax })
22355        } else {
22356            None
22357        }
22358    }
22359    #[inline]
22360    fn syntax(&self) -> &SyntaxNode {
22361        &self.syntax
22362    }
22363}
22364impl AstNode for IsNotJsonObject {
22365    #[inline]
22366    fn can_cast(kind: SyntaxKind) -> bool {
22367        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22368    }
22369    #[inline]
22370    fn cast(syntax: SyntaxNode) -> Option<Self> {
22371        if Self::can_cast(syntax.kind()) {
22372            Some(Self { syntax })
22373        } else {
22374            None
22375        }
22376    }
22377    #[inline]
22378    fn syntax(&self) -> &SyntaxNode {
22379        &self.syntax
22380    }
22381}
22382impl AstNode for IsNotJsonScalar {
22383    #[inline]
22384    fn can_cast(kind: SyntaxKind) -> bool {
22385        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22386    }
22387    #[inline]
22388    fn cast(syntax: SyntaxNode) -> Option<Self> {
22389        if Self::can_cast(syntax.kind()) {
22390            Some(Self { syntax })
22391        } else {
22392            None
22393        }
22394    }
22395    #[inline]
22396    fn syntax(&self) -> &SyntaxNode {
22397        &self.syntax
22398    }
22399}
22400impl AstNode for IsNotJsonValue {
22401    #[inline]
22402    fn can_cast(kind: SyntaxKind) -> bool {
22403        kind == SyntaxKind::IS_NOT_JSON_VALUE
22404    }
22405    #[inline]
22406    fn cast(syntax: SyntaxNode) -> Option<Self> {
22407        if Self::can_cast(syntax.kind()) {
22408            Some(Self { syntax })
22409        } else {
22410            None
22411        }
22412    }
22413    #[inline]
22414    fn syntax(&self) -> &SyntaxNode {
22415        &self.syntax
22416    }
22417}
22418impl AstNode for IsNotNormalized {
22419    #[inline]
22420    fn can_cast(kind: SyntaxKind) -> bool {
22421        kind == SyntaxKind::IS_NOT_NORMALIZED
22422    }
22423    #[inline]
22424    fn cast(syntax: SyntaxNode) -> Option<Self> {
22425        if Self::can_cast(syntax.kind()) {
22426            Some(Self { syntax })
22427        } else {
22428            None
22429        }
22430    }
22431    #[inline]
22432    fn syntax(&self) -> &SyntaxNode {
22433        &self.syntax
22434    }
22435}
22436impl AstNode for Join {
22437    #[inline]
22438    fn can_cast(kind: SyntaxKind) -> bool {
22439        kind == SyntaxKind::JOIN
22440    }
22441    #[inline]
22442    fn cast(syntax: SyntaxNode) -> Option<Self> {
22443        if Self::can_cast(syntax.kind()) {
22444            Some(Self { syntax })
22445        } else {
22446            None
22447        }
22448    }
22449    #[inline]
22450    fn syntax(&self) -> &SyntaxNode {
22451        &self.syntax
22452    }
22453}
22454impl AstNode for JoinCross {
22455    #[inline]
22456    fn can_cast(kind: SyntaxKind) -> bool {
22457        kind == SyntaxKind::JOIN_CROSS
22458    }
22459    #[inline]
22460    fn cast(syntax: SyntaxNode) -> Option<Self> {
22461        if Self::can_cast(syntax.kind()) {
22462            Some(Self { syntax })
22463        } else {
22464            None
22465        }
22466    }
22467    #[inline]
22468    fn syntax(&self) -> &SyntaxNode {
22469        &self.syntax
22470    }
22471}
22472impl AstNode for JoinExpr {
22473    #[inline]
22474    fn can_cast(kind: SyntaxKind) -> bool {
22475        kind == SyntaxKind::JOIN_EXPR
22476    }
22477    #[inline]
22478    fn cast(syntax: SyntaxNode) -> Option<Self> {
22479        if Self::can_cast(syntax.kind()) {
22480            Some(Self { syntax })
22481        } else {
22482            None
22483        }
22484    }
22485    #[inline]
22486    fn syntax(&self) -> &SyntaxNode {
22487        &self.syntax
22488    }
22489}
22490impl AstNode for JoinFull {
22491    #[inline]
22492    fn can_cast(kind: SyntaxKind) -> bool {
22493        kind == SyntaxKind::JOIN_FULL
22494    }
22495    #[inline]
22496    fn cast(syntax: SyntaxNode) -> Option<Self> {
22497        if Self::can_cast(syntax.kind()) {
22498            Some(Self { syntax })
22499        } else {
22500            None
22501        }
22502    }
22503    #[inline]
22504    fn syntax(&self) -> &SyntaxNode {
22505        &self.syntax
22506    }
22507}
22508impl AstNode for JoinInner {
22509    #[inline]
22510    fn can_cast(kind: SyntaxKind) -> bool {
22511        kind == SyntaxKind::JOIN_INNER
22512    }
22513    #[inline]
22514    fn cast(syntax: SyntaxNode) -> Option<Self> {
22515        if Self::can_cast(syntax.kind()) {
22516            Some(Self { syntax })
22517        } else {
22518            None
22519        }
22520    }
22521    #[inline]
22522    fn syntax(&self) -> &SyntaxNode {
22523        &self.syntax
22524    }
22525}
22526impl AstNode for JoinLeft {
22527    #[inline]
22528    fn can_cast(kind: SyntaxKind) -> bool {
22529        kind == SyntaxKind::JOIN_LEFT
22530    }
22531    #[inline]
22532    fn cast(syntax: SyntaxNode) -> Option<Self> {
22533        if Self::can_cast(syntax.kind()) {
22534            Some(Self { syntax })
22535        } else {
22536            None
22537        }
22538    }
22539    #[inline]
22540    fn syntax(&self) -> &SyntaxNode {
22541        &self.syntax
22542    }
22543}
22544impl AstNode for JoinRight {
22545    #[inline]
22546    fn can_cast(kind: SyntaxKind) -> bool {
22547        kind == SyntaxKind::JOIN_RIGHT
22548    }
22549    #[inline]
22550    fn cast(syntax: SyntaxNode) -> Option<Self> {
22551        if Self::can_cast(syntax.kind()) {
22552            Some(Self { syntax })
22553        } else {
22554            None
22555        }
22556    }
22557    #[inline]
22558    fn syntax(&self) -> &SyntaxNode {
22559        &self.syntax
22560    }
22561}
22562impl AstNode for JoinUsingClause {
22563    #[inline]
22564    fn can_cast(kind: SyntaxKind) -> bool {
22565        kind == SyntaxKind::JOIN_USING_CLAUSE
22566    }
22567    #[inline]
22568    fn cast(syntax: SyntaxNode) -> Option<Self> {
22569        if Self::can_cast(syntax.kind()) {
22570            Some(Self { syntax })
22571        } else {
22572            None
22573        }
22574    }
22575    #[inline]
22576    fn syntax(&self) -> &SyntaxNode {
22577        &self.syntax
22578    }
22579}
22580impl AstNode for JsonArrayAggFn {
22581    #[inline]
22582    fn can_cast(kind: SyntaxKind) -> bool {
22583        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22584    }
22585    #[inline]
22586    fn cast(syntax: SyntaxNode) -> Option<Self> {
22587        if Self::can_cast(syntax.kind()) {
22588            Some(Self { syntax })
22589        } else {
22590            None
22591        }
22592    }
22593    #[inline]
22594    fn syntax(&self) -> &SyntaxNode {
22595        &self.syntax
22596    }
22597}
22598impl AstNode for JsonArrayFn {
22599    #[inline]
22600    fn can_cast(kind: SyntaxKind) -> bool {
22601        kind == SyntaxKind::JSON_ARRAY_FN
22602    }
22603    #[inline]
22604    fn cast(syntax: SyntaxNode) -> Option<Self> {
22605        if Self::can_cast(syntax.kind()) {
22606            Some(Self { syntax })
22607        } else {
22608            None
22609        }
22610    }
22611    #[inline]
22612    fn syntax(&self) -> &SyntaxNode {
22613        &self.syntax
22614    }
22615}
22616impl AstNode for JsonBehaviorClause {
22617    #[inline]
22618    fn can_cast(kind: SyntaxKind) -> bool {
22619        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22620    }
22621    #[inline]
22622    fn cast(syntax: SyntaxNode) -> Option<Self> {
22623        if Self::can_cast(syntax.kind()) {
22624            Some(Self { syntax })
22625        } else {
22626            None
22627        }
22628    }
22629    #[inline]
22630    fn syntax(&self) -> &SyntaxNode {
22631        &self.syntax
22632    }
22633}
22634impl AstNode for JsonBehaviorDefault {
22635    #[inline]
22636    fn can_cast(kind: SyntaxKind) -> bool {
22637        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22638    }
22639    #[inline]
22640    fn cast(syntax: SyntaxNode) -> Option<Self> {
22641        if Self::can_cast(syntax.kind()) {
22642            Some(Self { syntax })
22643        } else {
22644            None
22645        }
22646    }
22647    #[inline]
22648    fn syntax(&self) -> &SyntaxNode {
22649        &self.syntax
22650    }
22651}
22652impl AstNode for JsonBehaviorEmptyArray {
22653    #[inline]
22654    fn can_cast(kind: SyntaxKind) -> bool {
22655        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22656    }
22657    #[inline]
22658    fn cast(syntax: SyntaxNode) -> Option<Self> {
22659        if Self::can_cast(syntax.kind()) {
22660            Some(Self { syntax })
22661        } else {
22662            None
22663        }
22664    }
22665    #[inline]
22666    fn syntax(&self) -> &SyntaxNode {
22667        &self.syntax
22668    }
22669}
22670impl AstNode for JsonBehaviorEmptyObject {
22671    #[inline]
22672    fn can_cast(kind: SyntaxKind) -> bool {
22673        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22674    }
22675    #[inline]
22676    fn cast(syntax: SyntaxNode) -> Option<Self> {
22677        if Self::can_cast(syntax.kind()) {
22678            Some(Self { syntax })
22679        } else {
22680            None
22681        }
22682    }
22683    #[inline]
22684    fn syntax(&self) -> &SyntaxNode {
22685        &self.syntax
22686    }
22687}
22688impl AstNode for JsonBehaviorError {
22689    #[inline]
22690    fn can_cast(kind: SyntaxKind) -> bool {
22691        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22692    }
22693    #[inline]
22694    fn cast(syntax: SyntaxNode) -> Option<Self> {
22695        if Self::can_cast(syntax.kind()) {
22696            Some(Self { syntax })
22697        } else {
22698            None
22699        }
22700    }
22701    #[inline]
22702    fn syntax(&self) -> &SyntaxNode {
22703        &self.syntax
22704    }
22705}
22706impl AstNode for JsonBehaviorFalse {
22707    #[inline]
22708    fn can_cast(kind: SyntaxKind) -> bool {
22709        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22710    }
22711    #[inline]
22712    fn cast(syntax: SyntaxNode) -> Option<Self> {
22713        if Self::can_cast(syntax.kind()) {
22714            Some(Self { syntax })
22715        } else {
22716            None
22717        }
22718    }
22719    #[inline]
22720    fn syntax(&self) -> &SyntaxNode {
22721        &self.syntax
22722    }
22723}
22724impl AstNode for JsonBehaviorNull {
22725    #[inline]
22726    fn can_cast(kind: SyntaxKind) -> bool {
22727        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22728    }
22729    #[inline]
22730    fn cast(syntax: SyntaxNode) -> Option<Self> {
22731        if Self::can_cast(syntax.kind()) {
22732            Some(Self { syntax })
22733        } else {
22734            None
22735        }
22736    }
22737    #[inline]
22738    fn syntax(&self) -> &SyntaxNode {
22739        &self.syntax
22740    }
22741}
22742impl AstNode for JsonBehaviorTrue {
22743    #[inline]
22744    fn can_cast(kind: SyntaxKind) -> bool {
22745        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22746    }
22747    #[inline]
22748    fn cast(syntax: SyntaxNode) -> Option<Self> {
22749        if Self::can_cast(syntax.kind()) {
22750            Some(Self { syntax })
22751        } else {
22752            None
22753        }
22754    }
22755    #[inline]
22756    fn syntax(&self) -> &SyntaxNode {
22757        &self.syntax
22758    }
22759}
22760impl AstNode for JsonBehaviorUnknown {
22761    #[inline]
22762    fn can_cast(kind: SyntaxKind) -> bool {
22763        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22764    }
22765    #[inline]
22766    fn cast(syntax: SyntaxNode) -> Option<Self> {
22767        if Self::can_cast(syntax.kind()) {
22768            Some(Self { syntax })
22769        } else {
22770            None
22771        }
22772    }
22773    #[inline]
22774    fn syntax(&self) -> &SyntaxNode {
22775        &self.syntax
22776    }
22777}
22778impl AstNode for JsonEncodingClause {
22779    #[inline]
22780    fn can_cast(kind: SyntaxKind) -> bool {
22781        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22782    }
22783    #[inline]
22784    fn cast(syntax: SyntaxNode) -> Option<Self> {
22785        if Self::can_cast(syntax.kind()) {
22786            Some(Self { syntax })
22787        } else {
22788            None
22789        }
22790    }
22791    #[inline]
22792    fn syntax(&self) -> &SyntaxNode {
22793        &self.syntax
22794    }
22795}
22796impl AstNode for JsonExistsFn {
22797    #[inline]
22798    fn can_cast(kind: SyntaxKind) -> bool {
22799        kind == SyntaxKind::JSON_EXISTS_FN
22800    }
22801    #[inline]
22802    fn cast(syntax: SyntaxNode) -> Option<Self> {
22803        if Self::can_cast(syntax.kind()) {
22804            Some(Self { syntax })
22805        } else {
22806            None
22807        }
22808    }
22809    #[inline]
22810    fn syntax(&self) -> &SyntaxNode {
22811        &self.syntax
22812    }
22813}
22814impl AstNode for JsonExprFormat {
22815    #[inline]
22816    fn can_cast(kind: SyntaxKind) -> bool {
22817        kind == SyntaxKind::JSON_EXPR_FORMAT
22818    }
22819    #[inline]
22820    fn cast(syntax: SyntaxNode) -> Option<Self> {
22821        if Self::can_cast(syntax.kind()) {
22822            Some(Self { syntax })
22823        } else {
22824            None
22825        }
22826    }
22827    #[inline]
22828    fn syntax(&self) -> &SyntaxNode {
22829        &self.syntax
22830    }
22831}
22832impl AstNode for JsonFn {
22833    #[inline]
22834    fn can_cast(kind: SyntaxKind) -> bool {
22835        kind == SyntaxKind::JSON_FN
22836    }
22837    #[inline]
22838    fn cast(syntax: SyntaxNode) -> Option<Self> {
22839        if Self::can_cast(syntax.kind()) {
22840            Some(Self { syntax })
22841        } else {
22842            None
22843        }
22844    }
22845    #[inline]
22846    fn syntax(&self) -> &SyntaxNode {
22847        &self.syntax
22848    }
22849}
22850impl AstNode for JsonFormatClause {
22851    #[inline]
22852    fn can_cast(kind: SyntaxKind) -> bool {
22853        kind == SyntaxKind::JSON_FORMAT_CLAUSE
22854    }
22855    #[inline]
22856    fn cast(syntax: SyntaxNode) -> Option<Self> {
22857        if Self::can_cast(syntax.kind()) {
22858            Some(Self { syntax })
22859        } else {
22860            None
22861        }
22862    }
22863    #[inline]
22864    fn syntax(&self) -> &SyntaxNode {
22865        &self.syntax
22866    }
22867}
22868impl AstNode for JsonKeyValue {
22869    #[inline]
22870    fn can_cast(kind: SyntaxKind) -> bool {
22871        kind == SyntaxKind::JSON_KEY_VALUE
22872    }
22873    #[inline]
22874    fn cast(syntax: SyntaxNode) -> Option<Self> {
22875        if Self::can_cast(syntax.kind()) {
22876            Some(Self { syntax })
22877        } else {
22878            None
22879        }
22880    }
22881    #[inline]
22882    fn syntax(&self) -> &SyntaxNode {
22883        &self.syntax
22884    }
22885}
22886impl AstNode for JsonKeysUniqueClause {
22887    #[inline]
22888    fn can_cast(kind: SyntaxKind) -> bool {
22889        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
22890    }
22891    #[inline]
22892    fn cast(syntax: SyntaxNode) -> Option<Self> {
22893        if Self::can_cast(syntax.kind()) {
22894            Some(Self { syntax })
22895        } else {
22896            None
22897        }
22898    }
22899    #[inline]
22900    fn syntax(&self) -> &SyntaxNode {
22901        &self.syntax
22902    }
22903}
22904impl AstNode for JsonNullClause {
22905    #[inline]
22906    fn can_cast(kind: SyntaxKind) -> bool {
22907        kind == SyntaxKind::JSON_NULL_CLAUSE
22908    }
22909    #[inline]
22910    fn cast(syntax: SyntaxNode) -> Option<Self> {
22911        if Self::can_cast(syntax.kind()) {
22912            Some(Self { syntax })
22913        } else {
22914            None
22915        }
22916    }
22917    #[inline]
22918    fn syntax(&self) -> &SyntaxNode {
22919        &self.syntax
22920    }
22921}
22922impl AstNode for JsonObjectAggFn {
22923    #[inline]
22924    fn can_cast(kind: SyntaxKind) -> bool {
22925        kind == SyntaxKind::JSON_OBJECT_AGG_FN
22926    }
22927    #[inline]
22928    fn cast(syntax: SyntaxNode) -> Option<Self> {
22929        if Self::can_cast(syntax.kind()) {
22930            Some(Self { syntax })
22931        } else {
22932            None
22933        }
22934    }
22935    #[inline]
22936    fn syntax(&self) -> &SyntaxNode {
22937        &self.syntax
22938    }
22939}
22940impl AstNode for JsonObjectFn {
22941    #[inline]
22942    fn can_cast(kind: SyntaxKind) -> bool {
22943        kind == SyntaxKind::JSON_OBJECT_FN
22944    }
22945    #[inline]
22946    fn cast(syntax: SyntaxNode) -> Option<Self> {
22947        if Self::can_cast(syntax.kind()) {
22948            Some(Self { syntax })
22949        } else {
22950            None
22951        }
22952    }
22953    #[inline]
22954    fn syntax(&self) -> &SyntaxNode {
22955        &self.syntax
22956    }
22957}
22958impl AstNode for JsonOnEmptyClause {
22959    #[inline]
22960    fn can_cast(kind: SyntaxKind) -> bool {
22961        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
22962    }
22963    #[inline]
22964    fn cast(syntax: SyntaxNode) -> Option<Self> {
22965        if Self::can_cast(syntax.kind()) {
22966            Some(Self { syntax })
22967        } else {
22968            None
22969        }
22970    }
22971    #[inline]
22972    fn syntax(&self) -> &SyntaxNode {
22973        &self.syntax
22974    }
22975}
22976impl AstNode for JsonOnErrorClause {
22977    #[inline]
22978    fn can_cast(kind: SyntaxKind) -> bool {
22979        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
22980    }
22981    #[inline]
22982    fn cast(syntax: SyntaxNode) -> Option<Self> {
22983        if Self::can_cast(syntax.kind()) {
22984            Some(Self { syntax })
22985        } else {
22986            None
22987        }
22988    }
22989    #[inline]
22990    fn syntax(&self) -> &SyntaxNode {
22991        &self.syntax
22992    }
22993}
22994impl AstNode for JsonPassingArg {
22995    #[inline]
22996    fn can_cast(kind: SyntaxKind) -> bool {
22997        kind == SyntaxKind::JSON_PASSING_ARG
22998    }
22999    #[inline]
23000    fn cast(syntax: SyntaxNode) -> Option<Self> {
23001        if Self::can_cast(syntax.kind()) {
23002            Some(Self { syntax })
23003        } else {
23004            None
23005        }
23006    }
23007    #[inline]
23008    fn syntax(&self) -> &SyntaxNode {
23009        &self.syntax
23010    }
23011}
23012impl AstNode for JsonPassingClause {
23013    #[inline]
23014    fn can_cast(kind: SyntaxKind) -> bool {
23015        kind == SyntaxKind::JSON_PASSING_CLAUSE
23016    }
23017    #[inline]
23018    fn cast(syntax: SyntaxNode) -> Option<Self> {
23019        if Self::can_cast(syntax.kind()) {
23020            Some(Self { syntax })
23021        } else {
23022            None
23023        }
23024    }
23025    #[inline]
23026    fn syntax(&self) -> &SyntaxNode {
23027        &self.syntax
23028    }
23029}
23030impl AstNode for JsonPathClause {
23031    #[inline]
23032    fn can_cast(kind: SyntaxKind) -> bool {
23033        kind == SyntaxKind::JSON_PATH_CLAUSE
23034    }
23035    #[inline]
23036    fn cast(syntax: SyntaxNode) -> Option<Self> {
23037        if Self::can_cast(syntax.kind()) {
23038            Some(Self { syntax })
23039        } else {
23040            None
23041        }
23042    }
23043    #[inline]
23044    fn syntax(&self) -> &SyntaxNode {
23045        &self.syntax
23046    }
23047}
23048impl AstNode for JsonQueryFn {
23049    #[inline]
23050    fn can_cast(kind: SyntaxKind) -> bool {
23051        kind == SyntaxKind::JSON_QUERY_FN
23052    }
23053    #[inline]
23054    fn cast(syntax: SyntaxNode) -> Option<Self> {
23055        if Self::can_cast(syntax.kind()) {
23056            Some(Self { syntax })
23057        } else {
23058            None
23059        }
23060    }
23061    #[inline]
23062    fn syntax(&self) -> &SyntaxNode {
23063        &self.syntax
23064    }
23065}
23066impl AstNode for JsonQuotesClause {
23067    #[inline]
23068    fn can_cast(kind: SyntaxKind) -> bool {
23069        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23070    }
23071    #[inline]
23072    fn cast(syntax: SyntaxNode) -> Option<Self> {
23073        if Self::can_cast(syntax.kind()) {
23074            Some(Self { syntax })
23075        } else {
23076            None
23077        }
23078    }
23079    #[inline]
23080    fn syntax(&self) -> &SyntaxNode {
23081        &self.syntax
23082    }
23083}
23084impl AstNode for JsonReturningClause {
23085    #[inline]
23086    fn can_cast(kind: SyntaxKind) -> bool {
23087        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23088    }
23089    #[inline]
23090    fn cast(syntax: SyntaxNode) -> Option<Self> {
23091        if Self::can_cast(syntax.kind()) {
23092            Some(Self { syntax })
23093        } else {
23094            None
23095        }
23096    }
23097    #[inline]
23098    fn syntax(&self) -> &SyntaxNode {
23099        &self.syntax
23100    }
23101}
23102impl AstNode for JsonScalarFn {
23103    #[inline]
23104    fn can_cast(kind: SyntaxKind) -> bool {
23105        kind == SyntaxKind::JSON_SCALAR_FN
23106    }
23107    #[inline]
23108    fn cast(syntax: SyntaxNode) -> Option<Self> {
23109        if Self::can_cast(syntax.kind()) {
23110            Some(Self { syntax })
23111        } else {
23112            None
23113        }
23114    }
23115    #[inline]
23116    fn syntax(&self) -> &SyntaxNode {
23117        &self.syntax
23118    }
23119}
23120impl AstNode for JsonSelectFormat {
23121    #[inline]
23122    fn can_cast(kind: SyntaxKind) -> bool {
23123        kind == SyntaxKind::JSON_SELECT_FORMAT
23124    }
23125    #[inline]
23126    fn cast(syntax: SyntaxNode) -> Option<Self> {
23127        if Self::can_cast(syntax.kind()) {
23128            Some(Self { syntax })
23129        } else {
23130            None
23131        }
23132    }
23133    #[inline]
23134    fn syntax(&self) -> &SyntaxNode {
23135        &self.syntax
23136    }
23137}
23138impl AstNode for JsonSerializeFn {
23139    #[inline]
23140    fn can_cast(kind: SyntaxKind) -> bool {
23141        kind == SyntaxKind::JSON_SERIALIZE_FN
23142    }
23143    #[inline]
23144    fn cast(syntax: SyntaxNode) -> Option<Self> {
23145        if Self::can_cast(syntax.kind()) {
23146            Some(Self { syntax })
23147        } else {
23148            None
23149        }
23150    }
23151    #[inline]
23152    fn syntax(&self) -> &SyntaxNode {
23153        &self.syntax
23154    }
23155}
23156impl AstNode for JsonTable {
23157    #[inline]
23158    fn can_cast(kind: SyntaxKind) -> bool {
23159        kind == SyntaxKind::JSON_TABLE
23160    }
23161    #[inline]
23162    fn cast(syntax: SyntaxNode) -> Option<Self> {
23163        if Self::can_cast(syntax.kind()) {
23164            Some(Self { syntax })
23165        } else {
23166            None
23167        }
23168    }
23169    #[inline]
23170    fn syntax(&self) -> &SyntaxNode {
23171        &self.syntax
23172    }
23173}
23174impl AstNode for JsonTableColumn {
23175    #[inline]
23176    fn can_cast(kind: SyntaxKind) -> bool {
23177        kind == SyntaxKind::JSON_TABLE_COLUMN
23178    }
23179    #[inline]
23180    fn cast(syntax: SyntaxNode) -> Option<Self> {
23181        if Self::can_cast(syntax.kind()) {
23182            Some(Self { syntax })
23183        } else {
23184            None
23185        }
23186    }
23187    #[inline]
23188    fn syntax(&self) -> &SyntaxNode {
23189        &self.syntax
23190    }
23191}
23192impl AstNode for JsonTableColumnList {
23193    #[inline]
23194    fn can_cast(kind: SyntaxKind) -> bool {
23195        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23196    }
23197    #[inline]
23198    fn cast(syntax: SyntaxNode) -> Option<Self> {
23199        if Self::can_cast(syntax.kind()) {
23200            Some(Self { syntax })
23201        } else {
23202            None
23203        }
23204    }
23205    #[inline]
23206    fn syntax(&self) -> &SyntaxNode {
23207        &self.syntax
23208    }
23209}
23210impl AstNode for JsonValueExpr {
23211    #[inline]
23212    fn can_cast(kind: SyntaxKind) -> bool {
23213        kind == SyntaxKind::JSON_VALUE_EXPR
23214    }
23215    #[inline]
23216    fn cast(syntax: SyntaxNode) -> Option<Self> {
23217        if Self::can_cast(syntax.kind()) {
23218            Some(Self { syntax })
23219        } else {
23220            None
23221        }
23222    }
23223    #[inline]
23224    fn syntax(&self) -> &SyntaxNode {
23225        &self.syntax
23226    }
23227}
23228impl AstNode for JsonValueFn {
23229    #[inline]
23230    fn can_cast(kind: SyntaxKind) -> bool {
23231        kind == SyntaxKind::JSON_VALUE_FN
23232    }
23233    #[inline]
23234    fn cast(syntax: SyntaxNode) -> Option<Self> {
23235        if Self::can_cast(syntax.kind()) {
23236            Some(Self { syntax })
23237        } else {
23238            None
23239        }
23240    }
23241    #[inline]
23242    fn syntax(&self) -> &SyntaxNode {
23243        &self.syntax
23244    }
23245}
23246impl AstNode for JsonWrapperBehaviorClause {
23247    #[inline]
23248    fn can_cast(kind: SyntaxKind) -> bool {
23249        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23250    }
23251    #[inline]
23252    fn cast(syntax: SyntaxNode) -> Option<Self> {
23253        if Self::can_cast(syntax.kind()) {
23254            Some(Self { syntax })
23255        } else {
23256            None
23257        }
23258    }
23259    #[inline]
23260    fn syntax(&self) -> &SyntaxNode {
23261        &self.syntax
23262    }
23263}
23264impl AstNode for LanguageFuncOption {
23265    #[inline]
23266    fn can_cast(kind: SyntaxKind) -> bool {
23267        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23268    }
23269    #[inline]
23270    fn cast(syntax: SyntaxNode) -> Option<Self> {
23271        if Self::can_cast(syntax.kind()) {
23272            Some(Self { syntax })
23273        } else {
23274            None
23275        }
23276    }
23277    #[inline]
23278    fn syntax(&self) -> &SyntaxNode {
23279        &self.syntax
23280    }
23281}
23282impl AstNode for LeakproofFuncOption {
23283    #[inline]
23284    fn can_cast(kind: SyntaxKind) -> bool {
23285        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23286    }
23287    #[inline]
23288    fn cast(syntax: SyntaxNode) -> Option<Self> {
23289        if Self::can_cast(syntax.kind()) {
23290            Some(Self { syntax })
23291        } else {
23292            None
23293        }
23294    }
23295    #[inline]
23296    fn syntax(&self) -> &SyntaxNode {
23297        &self.syntax
23298    }
23299}
23300impl AstNode for LikeClause {
23301    #[inline]
23302    fn can_cast(kind: SyntaxKind) -> bool {
23303        kind == SyntaxKind::LIKE_CLAUSE
23304    }
23305    #[inline]
23306    fn cast(syntax: SyntaxNode) -> Option<Self> {
23307        if Self::can_cast(syntax.kind()) {
23308            Some(Self { syntax })
23309        } else {
23310            None
23311        }
23312    }
23313    #[inline]
23314    fn syntax(&self) -> &SyntaxNode {
23315        &self.syntax
23316    }
23317}
23318impl AstNode for LikeOption {
23319    #[inline]
23320    fn can_cast(kind: SyntaxKind) -> bool {
23321        kind == SyntaxKind::LIKE_OPTION
23322    }
23323    #[inline]
23324    fn cast(syntax: SyntaxNode) -> Option<Self> {
23325        if Self::can_cast(syntax.kind()) {
23326            Some(Self { syntax })
23327        } else {
23328            None
23329        }
23330    }
23331    #[inline]
23332    fn syntax(&self) -> &SyntaxNode {
23333        &self.syntax
23334    }
23335}
23336impl AstNode for LimitClause {
23337    #[inline]
23338    fn can_cast(kind: SyntaxKind) -> bool {
23339        kind == SyntaxKind::LIMIT_CLAUSE
23340    }
23341    #[inline]
23342    fn cast(syntax: SyntaxNode) -> Option<Self> {
23343        if Self::can_cast(syntax.kind()) {
23344            Some(Self { syntax })
23345        } else {
23346            None
23347        }
23348    }
23349    #[inline]
23350    fn syntax(&self) -> &SyntaxNode {
23351        &self.syntax
23352    }
23353}
23354impl AstNode for LimitToTables {
23355    #[inline]
23356    fn can_cast(kind: SyntaxKind) -> bool {
23357        kind == SyntaxKind::LIMIT_TO_TABLES
23358    }
23359    #[inline]
23360    fn cast(syntax: SyntaxNode) -> Option<Self> {
23361        if Self::can_cast(syntax.kind()) {
23362            Some(Self { syntax })
23363        } else {
23364            None
23365        }
23366    }
23367    #[inline]
23368    fn syntax(&self) -> &SyntaxNode {
23369        &self.syntax
23370    }
23371}
23372impl AstNode for Listen {
23373    #[inline]
23374    fn can_cast(kind: SyntaxKind) -> bool {
23375        kind == SyntaxKind::LISTEN
23376    }
23377    #[inline]
23378    fn cast(syntax: SyntaxNode) -> Option<Self> {
23379        if Self::can_cast(syntax.kind()) {
23380            Some(Self { syntax })
23381        } else {
23382            None
23383        }
23384    }
23385    #[inline]
23386    fn syntax(&self) -> &SyntaxNode {
23387        &self.syntax
23388    }
23389}
23390impl AstNode for Literal {
23391    #[inline]
23392    fn can_cast(kind: SyntaxKind) -> bool {
23393        kind == SyntaxKind::LITERAL
23394    }
23395    #[inline]
23396    fn cast(syntax: SyntaxNode) -> Option<Self> {
23397        if Self::can_cast(syntax.kind()) {
23398            Some(Self { syntax })
23399        } else {
23400            None
23401        }
23402    }
23403    #[inline]
23404    fn syntax(&self) -> &SyntaxNode {
23405        &self.syntax
23406    }
23407}
23408impl AstNode for Load {
23409    #[inline]
23410    fn can_cast(kind: SyntaxKind) -> bool {
23411        kind == SyntaxKind::LOAD
23412    }
23413    #[inline]
23414    fn cast(syntax: SyntaxNode) -> Option<Self> {
23415        if Self::can_cast(syntax.kind()) {
23416            Some(Self { syntax })
23417        } else {
23418            None
23419        }
23420    }
23421    #[inline]
23422    fn syntax(&self) -> &SyntaxNode {
23423        &self.syntax
23424    }
23425}
23426impl AstNode for Lock {
23427    #[inline]
23428    fn can_cast(kind: SyntaxKind) -> bool {
23429        kind == SyntaxKind::LOCK
23430    }
23431    #[inline]
23432    fn cast(syntax: SyntaxNode) -> Option<Self> {
23433        if Self::can_cast(syntax.kind()) {
23434            Some(Self { syntax })
23435        } else {
23436            None
23437        }
23438    }
23439    #[inline]
23440    fn syntax(&self) -> &SyntaxNode {
23441        &self.syntax
23442    }
23443}
23444impl AstNode for LockingClause {
23445    #[inline]
23446    fn can_cast(kind: SyntaxKind) -> bool {
23447        kind == SyntaxKind::LOCKING_CLAUSE
23448    }
23449    #[inline]
23450    fn cast(syntax: SyntaxNode) -> Option<Self> {
23451        if Self::can_cast(syntax.kind()) {
23452            Some(Self { syntax })
23453        } else {
23454            None
23455        }
23456    }
23457    #[inline]
23458    fn syntax(&self) -> &SyntaxNode {
23459        &self.syntax
23460    }
23461}
23462impl AstNode for Lteq {
23463    #[inline]
23464    fn can_cast(kind: SyntaxKind) -> bool {
23465        kind == SyntaxKind::LTEQ
23466    }
23467    #[inline]
23468    fn cast(syntax: SyntaxNode) -> Option<Self> {
23469        if Self::can_cast(syntax.kind()) {
23470            Some(Self { syntax })
23471        } else {
23472            None
23473        }
23474    }
23475    #[inline]
23476    fn syntax(&self) -> &SyntaxNode {
23477        &self.syntax
23478    }
23479}
23480impl AstNode for MatchFull {
23481    #[inline]
23482    fn can_cast(kind: SyntaxKind) -> bool {
23483        kind == SyntaxKind::MATCH_FULL
23484    }
23485    #[inline]
23486    fn cast(syntax: SyntaxNode) -> Option<Self> {
23487        if Self::can_cast(syntax.kind()) {
23488            Some(Self { syntax })
23489        } else {
23490            None
23491        }
23492    }
23493    #[inline]
23494    fn syntax(&self) -> &SyntaxNode {
23495        &self.syntax
23496    }
23497}
23498impl AstNode for MatchPartial {
23499    #[inline]
23500    fn can_cast(kind: SyntaxKind) -> bool {
23501        kind == SyntaxKind::MATCH_PARTIAL
23502    }
23503    #[inline]
23504    fn cast(syntax: SyntaxNode) -> Option<Self> {
23505        if Self::can_cast(syntax.kind()) {
23506            Some(Self { syntax })
23507        } else {
23508            None
23509        }
23510    }
23511    #[inline]
23512    fn syntax(&self) -> &SyntaxNode {
23513        &self.syntax
23514    }
23515}
23516impl AstNode for MatchSimple {
23517    #[inline]
23518    fn can_cast(kind: SyntaxKind) -> bool {
23519        kind == SyntaxKind::MATCH_SIMPLE
23520    }
23521    #[inline]
23522    fn cast(syntax: SyntaxNode) -> Option<Self> {
23523        if Self::can_cast(syntax.kind()) {
23524            Some(Self { syntax })
23525        } else {
23526            None
23527        }
23528    }
23529    #[inline]
23530    fn syntax(&self) -> &SyntaxNode {
23531        &self.syntax
23532    }
23533}
23534impl AstNode for Materialized {
23535    #[inline]
23536    fn can_cast(kind: SyntaxKind) -> bool {
23537        kind == SyntaxKind::MATERIALIZED
23538    }
23539    #[inline]
23540    fn cast(syntax: SyntaxNode) -> Option<Self> {
23541        if Self::can_cast(syntax.kind()) {
23542            Some(Self { syntax })
23543        } else {
23544            None
23545        }
23546    }
23547    #[inline]
23548    fn syntax(&self) -> &SyntaxNode {
23549        &self.syntax
23550    }
23551}
23552impl AstNode for Merge {
23553    #[inline]
23554    fn can_cast(kind: SyntaxKind) -> bool {
23555        kind == SyntaxKind::MERGE
23556    }
23557    #[inline]
23558    fn cast(syntax: SyntaxNode) -> Option<Self> {
23559        if Self::can_cast(syntax.kind()) {
23560            Some(Self { syntax })
23561        } else {
23562            None
23563        }
23564    }
23565    #[inline]
23566    fn syntax(&self) -> &SyntaxNode {
23567        &self.syntax
23568    }
23569}
23570impl AstNode for MergeDelete {
23571    #[inline]
23572    fn can_cast(kind: SyntaxKind) -> bool {
23573        kind == SyntaxKind::MERGE_DELETE
23574    }
23575    #[inline]
23576    fn cast(syntax: SyntaxNode) -> Option<Self> {
23577        if Self::can_cast(syntax.kind()) {
23578            Some(Self { syntax })
23579        } else {
23580            None
23581        }
23582    }
23583    #[inline]
23584    fn syntax(&self) -> &SyntaxNode {
23585        &self.syntax
23586    }
23587}
23588impl AstNode for MergeDoNothing {
23589    #[inline]
23590    fn can_cast(kind: SyntaxKind) -> bool {
23591        kind == SyntaxKind::MERGE_DO_NOTHING
23592    }
23593    #[inline]
23594    fn cast(syntax: SyntaxNode) -> Option<Self> {
23595        if Self::can_cast(syntax.kind()) {
23596            Some(Self { syntax })
23597        } else {
23598            None
23599        }
23600    }
23601    #[inline]
23602    fn syntax(&self) -> &SyntaxNode {
23603        &self.syntax
23604    }
23605}
23606impl AstNode for MergeInsert {
23607    #[inline]
23608    fn can_cast(kind: SyntaxKind) -> bool {
23609        kind == SyntaxKind::MERGE_INSERT
23610    }
23611    #[inline]
23612    fn cast(syntax: SyntaxNode) -> Option<Self> {
23613        if Self::can_cast(syntax.kind()) {
23614            Some(Self { syntax })
23615        } else {
23616            None
23617        }
23618    }
23619    #[inline]
23620    fn syntax(&self) -> &SyntaxNode {
23621        &self.syntax
23622    }
23623}
23624impl AstNode for MergePartitions {
23625    #[inline]
23626    fn can_cast(kind: SyntaxKind) -> bool {
23627        kind == SyntaxKind::MERGE_PARTITIONS
23628    }
23629    #[inline]
23630    fn cast(syntax: SyntaxNode) -> Option<Self> {
23631        if Self::can_cast(syntax.kind()) {
23632            Some(Self { syntax })
23633        } else {
23634            None
23635        }
23636    }
23637    #[inline]
23638    fn syntax(&self) -> &SyntaxNode {
23639        &self.syntax
23640    }
23641}
23642impl AstNode for MergeUpdate {
23643    #[inline]
23644    fn can_cast(kind: SyntaxKind) -> bool {
23645        kind == SyntaxKind::MERGE_UPDATE
23646    }
23647    #[inline]
23648    fn cast(syntax: SyntaxNode) -> Option<Self> {
23649        if Self::can_cast(syntax.kind()) {
23650            Some(Self { syntax })
23651        } else {
23652            None
23653        }
23654    }
23655    #[inline]
23656    fn syntax(&self) -> &SyntaxNode {
23657        &self.syntax
23658    }
23659}
23660impl AstNode for MergeWhenMatched {
23661    #[inline]
23662    fn can_cast(kind: SyntaxKind) -> bool {
23663        kind == SyntaxKind::MERGE_WHEN_MATCHED
23664    }
23665    #[inline]
23666    fn cast(syntax: SyntaxNode) -> Option<Self> {
23667        if Self::can_cast(syntax.kind()) {
23668            Some(Self { syntax })
23669        } else {
23670            None
23671        }
23672    }
23673    #[inline]
23674    fn syntax(&self) -> &SyntaxNode {
23675        &self.syntax
23676    }
23677}
23678impl AstNode for MergeWhenNotMatchedSource {
23679    #[inline]
23680    fn can_cast(kind: SyntaxKind) -> bool {
23681        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23682    }
23683    #[inline]
23684    fn cast(syntax: SyntaxNode) -> Option<Self> {
23685        if Self::can_cast(syntax.kind()) {
23686            Some(Self { syntax })
23687        } else {
23688            None
23689        }
23690    }
23691    #[inline]
23692    fn syntax(&self) -> &SyntaxNode {
23693        &self.syntax
23694    }
23695}
23696impl AstNode for MergeWhenNotMatchedTarget {
23697    #[inline]
23698    fn can_cast(kind: SyntaxKind) -> bool {
23699        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23700    }
23701    #[inline]
23702    fn cast(syntax: SyntaxNode) -> Option<Self> {
23703        if Self::can_cast(syntax.kind()) {
23704            Some(Self { syntax })
23705        } else {
23706            None
23707        }
23708    }
23709    #[inline]
23710    fn syntax(&self) -> &SyntaxNode {
23711        &self.syntax
23712    }
23713}
23714impl AstNode for Move {
23715    #[inline]
23716    fn can_cast(kind: SyntaxKind) -> bool {
23717        kind == SyntaxKind::MOVE
23718    }
23719    #[inline]
23720    fn cast(syntax: SyntaxNode) -> Option<Self> {
23721        if Self::can_cast(syntax.kind()) {
23722            Some(Self { syntax })
23723        } else {
23724            None
23725        }
23726    }
23727    #[inline]
23728    fn syntax(&self) -> &SyntaxNode {
23729        &self.syntax
23730    }
23731}
23732impl AstNode for Name {
23733    #[inline]
23734    fn can_cast(kind: SyntaxKind) -> bool {
23735        kind == SyntaxKind::NAME
23736    }
23737    #[inline]
23738    fn cast(syntax: SyntaxNode) -> Option<Self> {
23739        if Self::can_cast(syntax.kind()) {
23740            Some(Self { syntax })
23741        } else {
23742            None
23743        }
23744    }
23745    #[inline]
23746    fn syntax(&self) -> &SyntaxNode {
23747        &self.syntax
23748    }
23749}
23750impl AstNode for NameRef {
23751    #[inline]
23752    fn can_cast(kind: SyntaxKind) -> bool {
23753        kind == SyntaxKind::NAME_REF
23754    }
23755    #[inline]
23756    fn cast(syntax: SyntaxNode) -> Option<Self> {
23757        if Self::can_cast(syntax.kind()) {
23758            Some(Self { syntax })
23759        } else {
23760            None
23761        }
23762    }
23763    #[inline]
23764    fn syntax(&self) -> &SyntaxNode {
23765        &self.syntax
23766    }
23767}
23768impl AstNode for NamedArg {
23769    #[inline]
23770    fn can_cast(kind: SyntaxKind) -> bool {
23771        kind == SyntaxKind::NAMED_ARG
23772    }
23773    #[inline]
23774    fn cast(syntax: SyntaxNode) -> Option<Self> {
23775        if Self::can_cast(syntax.kind()) {
23776            Some(Self { syntax })
23777        } else {
23778            None
23779        }
23780    }
23781    #[inline]
23782    fn syntax(&self) -> &SyntaxNode {
23783        &self.syntax
23784    }
23785}
23786impl AstNode for Neq {
23787    #[inline]
23788    fn can_cast(kind: SyntaxKind) -> bool {
23789        kind == SyntaxKind::NEQ
23790    }
23791    #[inline]
23792    fn cast(syntax: SyntaxNode) -> Option<Self> {
23793        if Self::can_cast(syntax.kind()) {
23794            Some(Self { syntax })
23795        } else {
23796            None
23797        }
23798    }
23799    #[inline]
23800    fn syntax(&self) -> &SyntaxNode {
23801        &self.syntax
23802    }
23803}
23804impl AstNode for Neqb {
23805    #[inline]
23806    fn can_cast(kind: SyntaxKind) -> bool {
23807        kind == SyntaxKind::NEQB
23808    }
23809    #[inline]
23810    fn cast(syntax: SyntaxNode) -> Option<Self> {
23811        if Self::can_cast(syntax.kind()) {
23812            Some(Self { syntax })
23813        } else {
23814            None
23815        }
23816    }
23817    #[inline]
23818    fn syntax(&self) -> &SyntaxNode {
23819        &self.syntax
23820    }
23821}
23822impl AstNode for NoAction {
23823    #[inline]
23824    fn can_cast(kind: SyntaxKind) -> bool {
23825        kind == SyntaxKind::NO_ACTION
23826    }
23827    #[inline]
23828    fn cast(syntax: SyntaxNode) -> Option<Self> {
23829        if Self::can_cast(syntax.kind()) {
23830            Some(Self { syntax })
23831        } else {
23832            None
23833        }
23834    }
23835    #[inline]
23836    fn syntax(&self) -> &SyntaxNode {
23837        &self.syntax
23838    }
23839}
23840impl AstNode for NoDependsOnExtension {
23841    #[inline]
23842    fn can_cast(kind: SyntaxKind) -> bool {
23843        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
23844    }
23845    #[inline]
23846    fn cast(syntax: SyntaxNode) -> Option<Self> {
23847        if Self::can_cast(syntax.kind()) {
23848            Some(Self { syntax })
23849        } else {
23850            None
23851        }
23852    }
23853    #[inline]
23854    fn syntax(&self) -> &SyntaxNode {
23855        &self.syntax
23856    }
23857}
23858impl AstNode for NoForceRls {
23859    #[inline]
23860    fn can_cast(kind: SyntaxKind) -> bool {
23861        kind == SyntaxKind::NO_FORCE_RLS
23862    }
23863    #[inline]
23864    fn cast(syntax: SyntaxNode) -> Option<Self> {
23865        if Self::can_cast(syntax.kind()) {
23866            Some(Self { syntax })
23867        } else {
23868            None
23869        }
23870    }
23871    #[inline]
23872    fn syntax(&self) -> &SyntaxNode {
23873        &self.syntax
23874    }
23875}
23876impl AstNode for NoInherit {
23877    #[inline]
23878    fn can_cast(kind: SyntaxKind) -> bool {
23879        kind == SyntaxKind::NO_INHERIT
23880    }
23881    #[inline]
23882    fn cast(syntax: SyntaxNode) -> Option<Self> {
23883        if Self::can_cast(syntax.kind()) {
23884            Some(Self { syntax })
23885        } else {
23886            None
23887        }
23888    }
23889    #[inline]
23890    fn syntax(&self) -> &SyntaxNode {
23891        &self.syntax
23892    }
23893}
23894impl AstNode for NoInheritTable {
23895    #[inline]
23896    fn can_cast(kind: SyntaxKind) -> bool {
23897        kind == SyntaxKind::NO_INHERIT_TABLE
23898    }
23899    #[inline]
23900    fn cast(syntax: SyntaxNode) -> Option<Self> {
23901        if Self::can_cast(syntax.kind()) {
23902            Some(Self { syntax })
23903        } else {
23904            None
23905        }
23906    }
23907    #[inline]
23908    fn syntax(&self) -> &SyntaxNode {
23909        &self.syntax
23910    }
23911}
23912impl AstNode for NonStandardParam {
23913    #[inline]
23914    fn can_cast(kind: SyntaxKind) -> bool {
23915        kind == SyntaxKind::NON_STANDARD_PARAM
23916    }
23917    #[inline]
23918    fn cast(syntax: SyntaxNode) -> Option<Self> {
23919        if Self::can_cast(syntax.kind()) {
23920            Some(Self { syntax })
23921        } else {
23922            None
23923        }
23924    }
23925    #[inline]
23926    fn syntax(&self) -> &SyntaxNode {
23927        &self.syntax
23928    }
23929}
23930impl AstNode for NotDeferrable {
23931    #[inline]
23932    fn can_cast(kind: SyntaxKind) -> bool {
23933        kind == SyntaxKind::NOT_DEFERRABLE
23934    }
23935    #[inline]
23936    fn cast(syntax: SyntaxNode) -> Option<Self> {
23937        if Self::can_cast(syntax.kind()) {
23938            Some(Self { syntax })
23939        } else {
23940            None
23941        }
23942    }
23943    #[inline]
23944    fn syntax(&self) -> &SyntaxNode {
23945        &self.syntax
23946    }
23947}
23948impl AstNode for NotDeferrableConstraintOption {
23949    #[inline]
23950    fn can_cast(kind: SyntaxKind) -> bool {
23951        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
23952    }
23953    #[inline]
23954    fn cast(syntax: SyntaxNode) -> Option<Self> {
23955        if Self::can_cast(syntax.kind()) {
23956            Some(Self { syntax })
23957        } else {
23958            None
23959        }
23960    }
23961    #[inline]
23962    fn syntax(&self) -> &SyntaxNode {
23963        &self.syntax
23964    }
23965}
23966impl AstNode for NotEnforced {
23967    #[inline]
23968    fn can_cast(kind: SyntaxKind) -> bool {
23969        kind == SyntaxKind::NOT_ENFORCED
23970    }
23971    #[inline]
23972    fn cast(syntax: SyntaxNode) -> Option<Self> {
23973        if Self::can_cast(syntax.kind()) {
23974            Some(Self { syntax })
23975        } else {
23976            None
23977        }
23978    }
23979    #[inline]
23980    fn syntax(&self) -> &SyntaxNode {
23981        &self.syntax
23982    }
23983}
23984impl AstNode for NotIlike {
23985    #[inline]
23986    fn can_cast(kind: SyntaxKind) -> bool {
23987        kind == SyntaxKind::NOT_ILIKE
23988    }
23989    #[inline]
23990    fn cast(syntax: SyntaxNode) -> Option<Self> {
23991        if Self::can_cast(syntax.kind()) {
23992            Some(Self { syntax })
23993        } else {
23994            None
23995        }
23996    }
23997    #[inline]
23998    fn syntax(&self) -> &SyntaxNode {
23999        &self.syntax
24000    }
24001}
24002impl AstNode for NotIn {
24003    #[inline]
24004    fn can_cast(kind: SyntaxKind) -> bool {
24005        kind == SyntaxKind::NOT_IN
24006    }
24007    #[inline]
24008    fn cast(syntax: SyntaxNode) -> Option<Self> {
24009        if Self::can_cast(syntax.kind()) {
24010            Some(Self { syntax })
24011        } else {
24012            None
24013        }
24014    }
24015    #[inline]
24016    fn syntax(&self) -> &SyntaxNode {
24017        &self.syntax
24018    }
24019}
24020impl AstNode for NotLike {
24021    #[inline]
24022    fn can_cast(kind: SyntaxKind) -> bool {
24023        kind == SyntaxKind::NOT_LIKE
24024    }
24025    #[inline]
24026    fn cast(syntax: SyntaxNode) -> Option<Self> {
24027        if Self::can_cast(syntax.kind()) {
24028            Some(Self { syntax })
24029        } else {
24030            None
24031        }
24032    }
24033    #[inline]
24034    fn syntax(&self) -> &SyntaxNode {
24035        &self.syntax
24036    }
24037}
24038impl AstNode for NotMaterialized {
24039    #[inline]
24040    fn can_cast(kind: SyntaxKind) -> bool {
24041        kind == SyntaxKind::NOT_MATERIALIZED
24042    }
24043    #[inline]
24044    fn cast(syntax: SyntaxNode) -> Option<Self> {
24045        if Self::can_cast(syntax.kind()) {
24046            Some(Self { syntax })
24047        } else {
24048            None
24049        }
24050    }
24051    #[inline]
24052    fn syntax(&self) -> &SyntaxNode {
24053        &self.syntax
24054    }
24055}
24056impl AstNode for NotNullConstraint {
24057    #[inline]
24058    fn can_cast(kind: SyntaxKind) -> bool {
24059        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24060    }
24061    #[inline]
24062    fn cast(syntax: SyntaxNode) -> Option<Self> {
24063        if Self::can_cast(syntax.kind()) {
24064            Some(Self { syntax })
24065        } else {
24066            None
24067        }
24068    }
24069    #[inline]
24070    fn syntax(&self) -> &SyntaxNode {
24071        &self.syntax
24072    }
24073}
24074impl AstNode for NotOf {
24075    #[inline]
24076    fn can_cast(kind: SyntaxKind) -> bool {
24077        kind == SyntaxKind::NOT_OF
24078    }
24079    #[inline]
24080    fn cast(syntax: SyntaxNode) -> Option<Self> {
24081        if Self::can_cast(syntax.kind()) {
24082            Some(Self { syntax })
24083        } else {
24084            None
24085        }
24086    }
24087    #[inline]
24088    fn syntax(&self) -> &SyntaxNode {
24089        &self.syntax
24090    }
24091}
24092impl AstNode for NotSimilarTo {
24093    #[inline]
24094    fn can_cast(kind: SyntaxKind) -> bool {
24095        kind == SyntaxKind::NOT_SIMILAR_TO
24096    }
24097    #[inline]
24098    fn cast(syntax: SyntaxNode) -> Option<Self> {
24099        if Self::can_cast(syntax.kind()) {
24100            Some(Self { syntax })
24101        } else {
24102            None
24103        }
24104    }
24105    #[inline]
24106    fn syntax(&self) -> &SyntaxNode {
24107        &self.syntax
24108    }
24109}
24110impl AstNode for NotValid {
24111    #[inline]
24112    fn can_cast(kind: SyntaxKind) -> bool {
24113        kind == SyntaxKind::NOT_VALID
24114    }
24115    #[inline]
24116    fn cast(syntax: SyntaxNode) -> Option<Self> {
24117        if Self::can_cast(syntax.kind()) {
24118            Some(Self { syntax })
24119        } else {
24120            None
24121        }
24122    }
24123    #[inline]
24124    fn syntax(&self) -> &SyntaxNode {
24125        &self.syntax
24126    }
24127}
24128impl AstNode for Notify {
24129    #[inline]
24130    fn can_cast(kind: SyntaxKind) -> bool {
24131        kind == SyntaxKind::NOTIFY
24132    }
24133    #[inline]
24134    fn cast(syntax: SyntaxNode) -> Option<Self> {
24135        if Self::can_cast(syntax.kind()) {
24136            Some(Self { syntax })
24137        } else {
24138            None
24139        }
24140    }
24141    #[inline]
24142    fn syntax(&self) -> &SyntaxNode {
24143        &self.syntax
24144    }
24145}
24146impl AstNode for NullConstraint {
24147    #[inline]
24148    fn can_cast(kind: SyntaxKind) -> bool {
24149        kind == SyntaxKind::NULL_CONSTRAINT
24150    }
24151    #[inline]
24152    fn cast(syntax: SyntaxNode) -> Option<Self> {
24153        if Self::can_cast(syntax.kind()) {
24154            Some(Self { syntax })
24155        } else {
24156            None
24157        }
24158    }
24159    #[inline]
24160    fn syntax(&self) -> &SyntaxNode {
24161        &self.syntax
24162    }
24163}
24164impl AstNode for NullsDistinct {
24165    #[inline]
24166    fn can_cast(kind: SyntaxKind) -> bool {
24167        kind == SyntaxKind::NULLS_DISTINCT
24168    }
24169    #[inline]
24170    fn cast(syntax: SyntaxNode) -> Option<Self> {
24171        if Self::can_cast(syntax.kind()) {
24172            Some(Self { syntax })
24173        } else {
24174            None
24175        }
24176    }
24177    #[inline]
24178    fn syntax(&self) -> &SyntaxNode {
24179        &self.syntax
24180    }
24181}
24182impl AstNode for NullsFirst {
24183    #[inline]
24184    fn can_cast(kind: SyntaxKind) -> bool {
24185        kind == SyntaxKind::NULLS_FIRST
24186    }
24187    #[inline]
24188    fn cast(syntax: SyntaxNode) -> Option<Self> {
24189        if Self::can_cast(syntax.kind()) {
24190            Some(Self { syntax })
24191        } else {
24192            None
24193        }
24194    }
24195    #[inline]
24196    fn syntax(&self) -> &SyntaxNode {
24197        &self.syntax
24198    }
24199}
24200impl AstNode for NullsLast {
24201    #[inline]
24202    fn can_cast(kind: SyntaxKind) -> bool {
24203        kind == SyntaxKind::NULLS_LAST
24204    }
24205    #[inline]
24206    fn cast(syntax: SyntaxNode) -> Option<Self> {
24207        if Self::can_cast(syntax.kind()) {
24208            Some(Self { syntax })
24209        } else {
24210            None
24211        }
24212    }
24213    #[inline]
24214    fn syntax(&self) -> &SyntaxNode {
24215        &self.syntax
24216    }
24217}
24218impl AstNode for NullsNotDistinct {
24219    #[inline]
24220    fn can_cast(kind: SyntaxKind) -> bool {
24221        kind == SyntaxKind::NULLS_NOT_DISTINCT
24222    }
24223    #[inline]
24224    fn cast(syntax: SyntaxNode) -> Option<Self> {
24225        if Self::can_cast(syntax.kind()) {
24226            Some(Self { syntax })
24227        } else {
24228            None
24229        }
24230    }
24231    #[inline]
24232    fn syntax(&self) -> &SyntaxNode {
24233        &self.syntax
24234    }
24235}
24236impl AstNode for OfType {
24237    #[inline]
24238    fn can_cast(kind: SyntaxKind) -> bool {
24239        kind == SyntaxKind::OF_TYPE
24240    }
24241    #[inline]
24242    fn cast(syntax: SyntaxNode) -> Option<Self> {
24243        if Self::can_cast(syntax.kind()) {
24244            Some(Self { syntax })
24245        } else {
24246            None
24247        }
24248    }
24249    #[inline]
24250    fn syntax(&self) -> &SyntaxNode {
24251        &self.syntax
24252    }
24253}
24254impl AstNode for OffsetClause {
24255    #[inline]
24256    fn can_cast(kind: SyntaxKind) -> bool {
24257        kind == SyntaxKind::OFFSET_CLAUSE
24258    }
24259    #[inline]
24260    fn cast(syntax: SyntaxNode) -> Option<Self> {
24261        if Self::can_cast(syntax.kind()) {
24262            Some(Self { syntax })
24263        } else {
24264            None
24265        }
24266    }
24267    #[inline]
24268    fn syntax(&self) -> &SyntaxNode {
24269        &self.syntax
24270    }
24271}
24272impl AstNode for OnClause {
24273    #[inline]
24274    fn can_cast(kind: SyntaxKind) -> bool {
24275        kind == SyntaxKind::ON_CLAUSE
24276    }
24277    #[inline]
24278    fn cast(syntax: SyntaxNode) -> Option<Self> {
24279        if Self::can_cast(syntax.kind()) {
24280            Some(Self { syntax })
24281        } else {
24282            None
24283        }
24284    }
24285    #[inline]
24286    fn syntax(&self) -> &SyntaxNode {
24287        &self.syntax
24288    }
24289}
24290impl AstNode for OnCommit {
24291    #[inline]
24292    fn can_cast(kind: SyntaxKind) -> bool {
24293        kind == SyntaxKind::ON_COMMIT
24294    }
24295    #[inline]
24296    fn cast(syntax: SyntaxNode) -> Option<Self> {
24297        if Self::can_cast(syntax.kind()) {
24298            Some(Self { syntax })
24299        } else {
24300            None
24301        }
24302    }
24303    #[inline]
24304    fn syntax(&self) -> &SyntaxNode {
24305        &self.syntax
24306    }
24307}
24308impl AstNode for OnConflictClause {
24309    #[inline]
24310    fn can_cast(kind: SyntaxKind) -> bool {
24311        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24312    }
24313    #[inline]
24314    fn cast(syntax: SyntaxNode) -> Option<Self> {
24315        if Self::can_cast(syntax.kind()) {
24316            Some(Self { syntax })
24317        } else {
24318            None
24319        }
24320    }
24321    #[inline]
24322    fn syntax(&self) -> &SyntaxNode {
24323        &self.syntax
24324    }
24325}
24326impl AstNode for OnDeleteAction {
24327    #[inline]
24328    fn can_cast(kind: SyntaxKind) -> bool {
24329        kind == SyntaxKind::ON_DELETE_ACTION
24330    }
24331    #[inline]
24332    fn cast(syntax: SyntaxNode) -> Option<Self> {
24333        if Self::can_cast(syntax.kind()) {
24334            Some(Self { syntax })
24335        } else {
24336            None
24337        }
24338    }
24339    #[inline]
24340    fn syntax(&self) -> &SyntaxNode {
24341        &self.syntax
24342    }
24343}
24344impl AstNode for OnTable {
24345    #[inline]
24346    fn can_cast(kind: SyntaxKind) -> bool {
24347        kind == SyntaxKind::ON_TABLE
24348    }
24349    #[inline]
24350    fn cast(syntax: SyntaxNode) -> Option<Self> {
24351        if Self::can_cast(syntax.kind()) {
24352            Some(Self { syntax })
24353        } else {
24354            None
24355        }
24356    }
24357    #[inline]
24358    fn syntax(&self) -> &SyntaxNode {
24359        &self.syntax
24360    }
24361}
24362impl AstNode for OnUpdateAction {
24363    #[inline]
24364    fn can_cast(kind: SyntaxKind) -> bool {
24365        kind == SyntaxKind::ON_UPDATE_ACTION
24366    }
24367    #[inline]
24368    fn cast(syntax: SyntaxNode) -> Option<Self> {
24369        if Self::can_cast(syntax.kind()) {
24370            Some(Self { syntax })
24371        } else {
24372            None
24373        }
24374    }
24375    #[inline]
24376    fn syntax(&self) -> &SyntaxNode {
24377        &self.syntax
24378    }
24379}
24380impl AstNode for Op {
24381    #[inline]
24382    fn can_cast(kind: SyntaxKind) -> bool {
24383        kind == SyntaxKind::OP
24384    }
24385    #[inline]
24386    fn cast(syntax: SyntaxNode) -> Option<Self> {
24387        if Self::can_cast(syntax.kind()) {
24388            Some(Self { syntax })
24389        } else {
24390            None
24391        }
24392    }
24393    #[inline]
24394    fn syntax(&self) -> &SyntaxNode {
24395        &self.syntax
24396    }
24397}
24398impl AstNode for OpClassOption {
24399    #[inline]
24400    fn can_cast(kind: SyntaxKind) -> bool {
24401        kind == SyntaxKind::OP_CLASS_OPTION
24402    }
24403    #[inline]
24404    fn cast(syntax: SyntaxNode) -> Option<Self> {
24405        if Self::can_cast(syntax.kind()) {
24406            Some(Self { syntax })
24407        } else {
24408            None
24409        }
24410    }
24411    #[inline]
24412    fn syntax(&self) -> &SyntaxNode {
24413        &self.syntax
24414    }
24415}
24416impl AstNode for OpSig {
24417    #[inline]
24418    fn can_cast(kind: SyntaxKind) -> bool {
24419        kind == SyntaxKind::OP_SIG
24420    }
24421    #[inline]
24422    fn cast(syntax: SyntaxNode) -> Option<Self> {
24423        if Self::can_cast(syntax.kind()) {
24424            Some(Self { syntax })
24425        } else {
24426            None
24427        }
24428    }
24429    #[inline]
24430    fn syntax(&self) -> &SyntaxNode {
24431        &self.syntax
24432    }
24433}
24434impl AstNode for OpSigList {
24435    #[inline]
24436    fn can_cast(kind: SyntaxKind) -> bool {
24437        kind == SyntaxKind::OP_SIG_LIST
24438    }
24439    #[inline]
24440    fn cast(syntax: SyntaxNode) -> Option<Self> {
24441        if Self::can_cast(syntax.kind()) {
24442            Some(Self { syntax })
24443        } else {
24444            None
24445        }
24446    }
24447    #[inline]
24448    fn syntax(&self) -> &SyntaxNode {
24449        &self.syntax
24450    }
24451}
24452impl AstNode for OperatorCall {
24453    #[inline]
24454    fn can_cast(kind: SyntaxKind) -> bool {
24455        kind == SyntaxKind::OPERATOR_CALL
24456    }
24457    #[inline]
24458    fn cast(syntax: SyntaxNode) -> Option<Self> {
24459        if Self::can_cast(syntax.kind()) {
24460            Some(Self { syntax })
24461        } else {
24462            None
24463        }
24464    }
24465    #[inline]
24466    fn syntax(&self) -> &SyntaxNode {
24467        &self.syntax
24468    }
24469}
24470impl AstNode for OperatorClassOptionList {
24471    #[inline]
24472    fn can_cast(kind: SyntaxKind) -> bool {
24473        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24474    }
24475    #[inline]
24476    fn cast(syntax: SyntaxNode) -> Option<Self> {
24477        if Self::can_cast(syntax.kind()) {
24478            Some(Self { syntax })
24479        } else {
24480            None
24481        }
24482    }
24483    #[inline]
24484    fn syntax(&self) -> &SyntaxNode {
24485        &self.syntax
24486    }
24487}
24488impl AstNode for OptionItem {
24489    #[inline]
24490    fn can_cast(kind: SyntaxKind) -> bool {
24491        kind == SyntaxKind::OPTION_ITEM
24492    }
24493    #[inline]
24494    fn cast(syntax: SyntaxNode) -> Option<Self> {
24495        if Self::can_cast(syntax.kind()) {
24496            Some(Self { syntax })
24497        } else {
24498            None
24499        }
24500    }
24501    #[inline]
24502    fn syntax(&self) -> &SyntaxNode {
24503        &self.syntax
24504    }
24505}
24506impl AstNode for OptionItemList {
24507    #[inline]
24508    fn can_cast(kind: SyntaxKind) -> bool {
24509        kind == SyntaxKind::OPTION_ITEM_LIST
24510    }
24511    #[inline]
24512    fn cast(syntax: SyntaxNode) -> Option<Self> {
24513        if Self::can_cast(syntax.kind()) {
24514            Some(Self { syntax })
24515        } else {
24516            None
24517        }
24518    }
24519    #[inline]
24520    fn syntax(&self) -> &SyntaxNode {
24521        &self.syntax
24522    }
24523}
24524impl AstNode for OrReplace {
24525    #[inline]
24526    fn can_cast(kind: SyntaxKind) -> bool {
24527        kind == SyntaxKind::OR_REPLACE
24528    }
24529    #[inline]
24530    fn cast(syntax: SyntaxNode) -> Option<Self> {
24531        if Self::can_cast(syntax.kind()) {
24532            Some(Self { syntax })
24533        } else {
24534            None
24535        }
24536    }
24537    #[inline]
24538    fn syntax(&self) -> &SyntaxNode {
24539        &self.syntax
24540    }
24541}
24542impl AstNode for OrderByClause {
24543    #[inline]
24544    fn can_cast(kind: SyntaxKind) -> bool {
24545        kind == SyntaxKind::ORDER_BY_CLAUSE
24546    }
24547    #[inline]
24548    fn cast(syntax: SyntaxNode) -> Option<Self> {
24549        if Self::can_cast(syntax.kind()) {
24550            Some(Self { syntax })
24551        } else {
24552            None
24553        }
24554    }
24555    #[inline]
24556    fn syntax(&self) -> &SyntaxNode {
24557        &self.syntax
24558    }
24559}
24560impl AstNode for OverClause {
24561    #[inline]
24562    fn can_cast(kind: SyntaxKind) -> bool {
24563        kind == SyntaxKind::OVER_CLAUSE
24564    }
24565    #[inline]
24566    fn cast(syntax: SyntaxNode) -> Option<Self> {
24567        if Self::can_cast(syntax.kind()) {
24568            Some(Self { syntax })
24569        } else {
24570            None
24571        }
24572    }
24573    #[inline]
24574    fn syntax(&self) -> &SyntaxNode {
24575        &self.syntax
24576    }
24577}
24578impl AstNode for OverlayFn {
24579    #[inline]
24580    fn can_cast(kind: SyntaxKind) -> bool {
24581        kind == SyntaxKind::OVERLAY_FN
24582    }
24583    #[inline]
24584    fn cast(syntax: SyntaxNode) -> Option<Self> {
24585        if Self::can_cast(syntax.kind()) {
24586            Some(Self { syntax })
24587        } else {
24588            None
24589        }
24590    }
24591    #[inline]
24592    fn syntax(&self) -> &SyntaxNode {
24593        &self.syntax
24594    }
24595}
24596impl AstNode for OwnerTo {
24597    #[inline]
24598    fn can_cast(kind: SyntaxKind) -> bool {
24599        kind == SyntaxKind::OWNER_TO
24600    }
24601    #[inline]
24602    fn cast(syntax: SyntaxNode) -> Option<Self> {
24603        if Self::can_cast(syntax.kind()) {
24604            Some(Self { syntax })
24605        } else {
24606            None
24607        }
24608    }
24609    #[inline]
24610    fn syntax(&self) -> &SyntaxNode {
24611        &self.syntax
24612    }
24613}
24614impl AstNode for ParallelFuncOption {
24615    #[inline]
24616    fn can_cast(kind: SyntaxKind) -> bool {
24617        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24618    }
24619    #[inline]
24620    fn cast(syntax: SyntaxNode) -> Option<Self> {
24621        if Self::can_cast(syntax.kind()) {
24622            Some(Self { syntax })
24623        } else {
24624            None
24625        }
24626    }
24627    #[inline]
24628    fn syntax(&self) -> &SyntaxNode {
24629        &self.syntax
24630    }
24631}
24632impl AstNode for Param {
24633    #[inline]
24634    fn can_cast(kind: SyntaxKind) -> bool {
24635        kind == SyntaxKind::PARAM
24636    }
24637    #[inline]
24638    fn cast(syntax: SyntaxNode) -> Option<Self> {
24639        if Self::can_cast(syntax.kind()) {
24640            Some(Self { syntax })
24641        } else {
24642            None
24643        }
24644    }
24645    #[inline]
24646    fn syntax(&self) -> &SyntaxNode {
24647        &self.syntax
24648    }
24649}
24650impl AstNode for ParamDefault {
24651    #[inline]
24652    fn can_cast(kind: SyntaxKind) -> bool {
24653        kind == SyntaxKind::PARAM_DEFAULT
24654    }
24655    #[inline]
24656    fn cast(syntax: SyntaxNode) -> Option<Self> {
24657        if Self::can_cast(syntax.kind()) {
24658            Some(Self { syntax })
24659        } else {
24660            None
24661        }
24662    }
24663    #[inline]
24664    fn syntax(&self) -> &SyntaxNode {
24665        &self.syntax
24666    }
24667}
24668impl AstNode for ParamIn {
24669    #[inline]
24670    fn can_cast(kind: SyntaxKind) -> bool {
24671        kind == SyntaxKind::PARAM_IN
24672    }
24673    #[inline]
24674    fn cast(syntax: SyntaxNode) -> Option<Self> {
24675        if Self::can_cast(syntax.kind()) {
24676            Some(Self { syntax })
24677        } else {
24678            None
24679        }
24680    }
24681    #[inline]
24682    fn syntax(&self) -> &SyntaxNode {
24683        &self.syntax
24684    }
24685}
24686impl AstNode for ParamInOut {
24687    #[inline]
24688    fn can_cast(kind: SyntaxKind) -> bool {
24689        kind == SyntaxKind::PARAM_IN_OUT
24690    }
24691    #[inline]
24692    fn cast(syntax: SyntaxNode) -> Option<Self> {
24693        if Self::can_cast(syntax.kind()) {
24694            Some(Self { syntax })
24695        } else {
24696            None
24697        }
24698    }
24699    #[inline]
24700    fn syntax(&self) -> &SyntaxNode {
24701        &self.syntax
24702    }
24703}
24704impl AstNode for ParamList {
24705    #[inline]
24706    fn can_cast(kind: SyntaxKind) -> bool {
24707        kind == SyntaxKind::PARAM_LIST
24708    }
24709    #[inline]
24710    fn cast(syntax: SyntaxNode) -> Option<Self> {
24711        if Self::can_cast(syntax.kind()) {
24712            Some(Self { syntax })
24713        } else {
24714            None
24715        }
24716    }
24717    #[inline]
24718    fn syntax(&self) -> &SyntaxNode {
24719        &self.syntax
24720    }
24721}
24722impl AstNode for ParamOut {
24723    #[inline]
24724    fn can_cast(kind: SyntaxKind) -> bool {
24725        kind == SyntaxKind::PARAM_OUT
24726    }
24727    #[inline]
24728    fn cast(syntax: SyntaxNode) -> Option<Self> {
24729        if Self::can_cast(syntax.kind()) {
24730            Some(Self { syntax })
24731        } else {
24732            None
24733        }
24734    }
24735    #[inline]
24736    fn syntax(&self) -> &SyntaxNode {
24737        &self.syntax
24738    }
24739}
24740impl AstNode for ParamVariadic {
24741    #[inline]
24742    fn can_cast(kind: SyntaxKind) -> bool {
24743        kind == SyntaxKind::PARAM_VARIADIC
24744    }
24745    #[inline]
24746    fn cast(syntax: SyntaxNode) -> Option<Self> {
24747        if Self::can_cast(syntax.kind()) {
24748            Some(Self { syntax })
24749        } else {
24750            None
24751        }
24752    }
24753    #[inline]
24754    fn syntax(&self) -> &SyntaxNode {
24755        &self.syntax
24756    }
24757}
24758impl AstNode for ParenExpr {
24759    #[inline]
24760    fn can_cast(kind: SyntaxKind) -> bool {
24761        kind == SyntaxKind::PAREN_EXPR
24762    }
24763    #[inline]
24764    fn cast(syntax: SyntaxNode) -> Option<Self> {
24765        if Self::can_cast(syntax.kind()) {
24766            Some(Self { syntax })
24767        } else {
24768            None
24769        }
24770    }
24771    #[inline]
24772    fn syntax(&self) -> &SyntaxNode {
24773        &self.syntax
24774    }
24775}
24776impl AstNode for ParenSelect {
24777    #[inline]
24778    fn can_cast(kind: SyntaxKind) -> bool {
24779        kind == SyntaxKind::PAREN_SELECT
24780    }
24781    #[inline]
24782    fn cast(syntax: SyntaxNode) -> Option<Self> {
24783        if Self::can_cast(syntax.kind()) {
24784            Some(Self { syntax })
24785        } else {
24786            None
24787        }
24788    }
24789    #[inline]
24790    fn syntax(&self) -> &SyntaxNode {
24791        &self.syntax
24792    }
24793}
24794impl AstNode for Partition {
24795    #[inline]
24796    fn can_cast(kind: SyntaxKind) -> bool {
24797        kind == SyntaxKind::PARTITION
24798    }
24799    #[inline]
24800    fn cast(syntax: SyntaxNode) -> Option<Self> {
24801        if Self::can_cast(syntax.kind()) {
24802            Some(Self { syntax })
24803        } else {
24804            None
24805        }
24806    }
24807    #[inline]
24808    fn syntax(&self) -> &SyntaxNode {
24809        &self.syntax
24810    }
24811}
24812impl AstNode for PartitionBy {
24813    #[inline]
24814    fn can_cast(kind: SyntaxKind) -> bool {
24815        kind == SyntaxKind::PARTITION_BY
24816    }
24817    #[inline]
24818    fn cast(syntax: SyntaxNode) -> Option<Self> {
24819        if Self::can_cast(syntax.kind()) {
24820            Some(Self { syntax })
24821        } else {
24822            None
24823        }
24824    }
24825    #[inline]
24826    fn syntax(&self) -> &SyntaxNode {
24827        &self.syntax
24828    }
24829}
24830impl AstNode for PartitionDefault {
24831    #[inline]
24832    fn can_cast(kind: SyntaxKind) -> bool {
24833        kind == SyntaxKind::PARTITION_DEFAULT
24834    }
24835    #[inline]
24836    fn cast(syntax: SyntaxNode) -> Option<Self> {
24837        if Self::can_cast(syntax.kind()) {
24838            Some(Self { syntax })
24839        } else {
24840            None
24841        }
24842    }
24843    #[inline]
24844    fn syntax(&self) -> &SyntaxNode {
24845        &self.syntax
24846    }
24847}
24848impl AstNode for PartitionForValuesFrom {
24849    #[inline]
24850    fn can_cast(kind: SyntaxKind) -> bool {
24851        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
24852    }
24853    #[inline]
24854    fn cast(syntax: SyntaxNode) -> Option<Self> {
24855        if Self::can_cast(syntax.kind()) {
24856            Some(Self { syntax })
24857        } else {
24858            None
24859        }
24860    }
24861    #[inline]
24862    fn syntax(&self) -> &SyntaxNode {
24863        &self.syntax
24864    }
24865}
24866impl AstNode for PartitionForValuesIn {
24867    #[inline]
24868    fn can_cast(kind: SyntaxKind) -> bool {
24869        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
24870    }
24871    #[inline]
24872    fn cast(syntax: SyntaxNode) -> Option<Self> {
24873        if Self::can_cast(syntax.kind()) {
24874            Some(Self { syntax })
24875        } else {
24876            None
24877        }
24878    }
24879    #[inline]
24880    fn syntax(&self) -> &SyntaxNode {
24881        &self.syntax
24882    }
24883}
24884impl AstNode for PartitionForValuesWith {
24885    #[inline]
24886    fn can_cast(kind: SyntaxKind) -> bool {
24887        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
24888    }
24889    #[inline]
24890    fn cast(syntax: SyntaxNode) -> Option<Self> {
24891        if Self::can_cast(syntax.kind()) {
24892            Some(Self { syntax })
24893        } else {
24894            None
24895        }
24896    }
24897    #[inline]
24898    fn syntax(&self) -> &SyntaxNode {
24899        &self.syntax
24900    }
24901}
24902impl AstNode for PartitionItem {
24903    #[inline]
24904    fn can_cast(kind: SyntaxKind) -> bool {
24905        kind == SyntaxKind::PARTITION_ITEM
24906    }
24907    #[inline]
24908    fn cast(syntax: SyntaxNode) -> Option<Self> {
24909        if Self::can_cast(syntax.kind()) {
24910            Some(Self { syntax })
24911        } else {
24912            None
24913        }
24914    }
24915    #[inline]
24916    fn syntax(&self) -> &SyntaxNode {
24917        &self.syntax
24918    }
24919}
24920impl AstNode for PartitionItemList {
24921    #[inline]
24922    fn can_cast(kind: SyntaxKind) -> bool {
24923        kind == SyntaxKind::PARTITION_ITEM_LIST
24924    }
24925    #[inline]
24926    fn cast(syntax: SyntaxNode) -> Option<Self> {
24927        if Self::can_cast(syntax.kind()) {
24928            Some(Self { syntax })
24929        } else {
24930            None
24931        }
24932    }
24933    #[inline]
24934    fn syntax(&self) -> &SyntaxNode {
24935        &self.syntax
24936    }
24937}
24938impl AstNode for PartitionList {
24939    #[inline]
24940    fn can_cast(kind: SyntaxKind) -> bool {
24941        kind == SyntaxKind::PARTITION_LIST
24942    }
24943    #[inline]
24944    fn cast(syntax: SyntaxNode) -> Option<Self> {
24945        if Self::can_cast(syntax.kind()) {
24946            Some(Self { syntax })
24947        } else {
24948            None
24949        }
24950    }
24951    #[inline]
24952    fn syntax(&self) -> &SyntaxNode {
24953        &self.syntax
24954    }
24955}
24956impl AstNode for PartitionOf {
24957    #[inline]
24958    fn can_cast(kind: SyntaxKind) -> bool {
24959        kind == SyntaxKind::PARTITION_OF
24960    }
24961    #[inline]
24962    fn cast(syntax: SyntaxNode) -> Option<Self> {
24963        if Self::can_cast(syntax.kind()) {
24964            Some(Self { syntax })
24965        } else {
24966            None
24967        }
24968    }
24969    #[inline]
24970    fn syntax(&self) -> &SyntaxNode {
24971        &self.syntax
24972    }
24973}
24974impl AstNode for Path {
24975    #[inline]
24976    fn can_cast(kind: SyntaxKind) -> bool {
24977        kind == SyntaxKind::PATH
24978    }
24979    #[inline]
24980    fn cast(syntax: SyntaxNode) -> Option<Self> {
24981        if Self::can_cast(syntax.kind()) {
24982            Some(Self { syntax })
24983        } else {
24984            None
24985        }
24986    }
24987    #[inline]
24988    fn syntax(&self) -> &SyntaxNode {
24989        &self.syntax
24990    }
24991}
24992impl AstNode for PathSegment {
24993    #[inline]
24994    fn can_cast(kind: SyntaxKind) -> bool {
24995        kind == SyntaxKind::PATH_SEGMENT
24996    }
24997    #[inline]
24998    fn cast(syntax: SyntaxNode) -> Option<Self> {
24999        if Self::can_cast(syntax.kind()) {
25000            Some(Self { syntax })
25001        } else {
25002            None
25003        }
25004    }
25005    #[inline]
25006    fn syntax(&self) -> &SyntaxNode {
25007        &self.syntax
25008    }
25009}
25010impl AstNode for PathType {
25011    #[inline]
25012    fn can_cast(kind: SyntaxKind) -> bool {
25013        kind == SyntaxKind::PATH_TYPE
25014    }
25015    #[inline]
25016    fn cast(syntax: SyntaxNode) -> Option<Self> {
25017        if Self::can_cast(syntax.kind()) {
25018            Some(Self { syntax })
25019        } else {
25020            None
25021        }
25022    }
25023    #[inline]
25024    fn syntax(&self) -> &SyntaxNode {
25025        &self.syntax
25026    }
25027}
25028impl AstNode for PercentType {
25029    #[inline]
25030    fn can_cast(kind: SyntaxKind) -> bool {
25031        kind == SyntaxKind::PERCENT_TYPE
25032    }
25033    #[inline]
25034    fn cast(syntax: SyntaxNode) -> Option<Self> {
25035        if Self::can_cast(syntax.kind()) {
25036            Some(Self { syntax })
25037        } else {
25038            None
25039        }
25040    }
25041    #[inline]
25042    fn syntax(&self) -> &SyntaxNode {
25043        &self.syntax
25044    }
25045}
25046impl AstNode for PercentTypeClause {
25047    #[inline]
25048    fn can_cast(kind: SyntaxKind) -> bool {
25049        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25050    }
25051    #[inline]
25052    fn cast(syntax: SyntaxNode) -> Option<Self> {
25053        if Self::can_cast(syntax.kind()) {
25054            Some(Self { syntax })
25055        } else {
25056            None
25057        }
25058    }
25059    #[inline]
25060    fn syntax(&self) -> &SyntaxNode {
25061        &self.syntax
25062    }
25063}
25064impl AstNode for PositionFn {
25065    #[inline]
25066    fn can_cast(kind: SyntaxKind) -> bool {
25067        kind == SyntaxKind::POSITION_FN
25068    }
25069    #[inline]
25070    fn cast(syntax: SyntaxNode) -> Option<Self> {
25071        if Self::can_cast(syntax.kind()) {
25072            Some(Self { syntax })
25073        } else {
25074            None
25075        }
25076    }
25077    #[inline]
25078    fn syntax(&self) -> &SyntaxNode {
25079        &self.syntax
25080    }
25081}
25082impl AstNode for PostfixExpr {
25083    #[inline]
25084    fn can_cast(kind: SyntaxKind) -> bool {
25085        kind == SyntaxKind::POSTFIX_EXPR
25086    }
25087    #[inline]
25088    fn cast(syntax: SyntaxNode) -> Option<Self> {
25089        if Self::can_cast(syntax.kind()) {
25090            Some(Self { syntax })
25091        } else {
25092            None
25093        }
25094    }
25095    #[inline]
25096    fn syntax(&self) -> &SyntaxNode {
25097        &self.syntax
25098    }
25099}
25100impl AstNode for PrefixExpr {
25101    #[inline]
25102    fn can_cast(kind: SyntaxKind) -> bool {
25103        kind == SyntaxKind::PREFIX_EXPR
25104    }
25105    #[inline]
25106    fn cast(syntax: SyntaxNode) -> Option<Self> {
25107        if Self::can_cast(syntax.kind()) {
25108            Some(Self { syntax })
25109        } else {
25110            None
25111        }
25112    }
25113    #[inline]
25114    fn syntax(&self) -> &SyntaxNode {
25115        &self.syntax
25116    }
25117}
25118impl AstNode for Prepare {
25119    #[inline]
25120    fn can_cast(kind: SyntaxKind) -> bool {
25121        kind == SyntaxKind::PREPARE
25122    }
25123    #[inline]
25124    fn cast(syntax: SyntaxNode) -> Option<Self> {
25125        if Self::can_cast(syntax.kind()) {
25126            Some(Self { syntax })
25127        } else {
25128            None
25129        }
25130    }
25131    #[inline]
25132    fn syntax(&self) -> &SyntaxNode {
25133        &self.syntax
25134    }
25135}
25136impl AstNode for PrepareTransaction {
25137    #[inline]
25138    fn can_cast(kind: SyntaxKind) -> bool {
25139        kind == SyntaxKind::PREPARE_TRANSACTION
25140    }
25141    #[inline]
25142    fn cast(syntax: SyntaxNode) -> Option<Self> {
25143        if Self::can_cast(syntax.kind()) {
25144            Some(Self { syntax })
25145        } else {
25146            None
25147        }
25148    }
25149    #[inline]
25150    fn syntax(&self) -> &SyntaxNode {
25151        &self.syntax
25152    }
25153}
25154impl AstNode for PreserveRows {
25155    #[inline]
25156    fn can_cast(kind: SyntaxKind) -> bool {
25157        kind == SyntaxKind::PRESERVE_ROWS
25158    }
25159    #[inline]
25160    fn cast(syntax: SyntaxNode) -> Option<Self> {
25161        if Self::can_cast(syntax.kind()) {
25162            Some(Self { syntax })
25163        } else {
25164            None
25165        }
25166    }
25167    #[inline]
25168    fn syntax(&self) -> &SyntaxNode {
25169        &self.syntax
25170    }
25171}
25172impl AstNode for PrimaryKeyConstraint {
25173    #[inline]
25174    fn can_cast(kind: SyntaxKind) -> bool {
25175        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25176    }
25177    #[inline]
25178    fn cast(syntax: SyntaxNode) -> Option<Self> {
25179        if Self::can_cast(syntax.kind()) {
25180            Some(Self { syntax })
25181        } else {
25182            None
25183        }
25184    }
25185    #[inline]
25186    fn syntax(&self) -> &SyntaxNode {
25187        &self.syntax
25188    }
25189}
25190impl AstNode for PrivilegeTarget {
25191    #[inline]
25192    fn can_cast(kind: SyntaxKind) -> bool {
25193        kind == SyntaxKind::PRIVILEGE_TARGET
25194    }
25195    #[inline]
25196    fn cast(syntax: SyntaxNode) -> Option<Self> {
25197        if Self::can_cast(syntax.kind()) {
25198            Some(Self { syntax })
25199        } else {
25200            None
25201        }
25202    }
25203    #[inline]
25204    fn syntax(&self) -> &SyntaxNode {
25205        &self.syntax
25206    }
25207}
25208impl AstNode for Privileges {
25209    #[inline]
25210    fn can_cast(kind: SyntaxKind) -> bool {
25211        kind == SyntaxKind::PRIVILEGES
25212    }
25213    #[inline]
25214    fn cast(syntax: SyntaxNode) -> Option<Self> {
25215        if Self::can_cast(syntax.kind()) {
25216            Some(Self { syntax })
25217        } else {
25218            None
25219        }
25220    }
25221    #[inline]
25222    fn syntax(&self) -> &SyntaxNode {
25223        &self.syntax
25224    }
25225}
25226impl AstNode for PublicationObject {
25227    #[inline]
25228    fn can_cast(kind: SyntaxKind) -> bool {
25229        kind == SyntaxKind::PUBLICATION_OBJECT
25230    }
25231    #[inline]
25232    fn cast(syntax: SyntaxNode) -> Option<Self> {
25233        if Self::can_cast(syntax.kind()) {
25234            Some(Self { syntax })
25235        } else {
25236            None
25237        }
25238    }
25239    #[inline]
25240    fn syntax(&self) -> &SyntaxNode {
25241        &self.syntax
25242    }
25243}
25244impl AstNode for ReadCommitted {
25245    #[inline]
25246    fn can_cast(kind: SyntaxKind) -> bool {
25247        kind == SyntaxKind::READ_COMMITTED
25248    }
25249    #[inline]
25250    fn cast(syntax: SyntaxNode) -> Option<Self> {
25251        if Self::can_cast(syntax.kind()) {
25252            Some(Self { syntax })
25253        } else {
25254            None
25255        }
25256    }
25257    #[inline]
25258    fn syntax(&self) -> &SyntaxNode {
25259        &self.syntax
25260    }
25261}
25262impl AstNode for ReadOnly {
25263    #[inline]
25264    fn can_cast(kind: SyntaxKind) -> bool {
25265        kind == SyntaxKind::READ_ONLY
25266    }
25267    #[inline]
25268    fn cast(syntax: SyntaxNode) -> Option<Self> {
25269        if Self::can_cast(syntax.kind()) {
25270            Some(Self { syntax })
25271        } else {
25272            None
25273        }
25274    }
25275    #[inline]
25276    fn syntax(&self) -> &SyntaxNode {
25277        &self.syntax
25278    }
25279}
25280impl AstNode for ReadUncommitted {
25281    #[inline]
25282    fn can_cast(kind: SyntaxKind) -> bool {
25283        kind == SyntaxKind::READ_UNCOMMITTED
25284    }
25285    #[inline]
25286    fn cast(syntax: SyntaxNode) -> Option<Self> {
25287        if Self::can_cast(syntax.kind()) {
25288            Some(Self { syntax })
25289        } else {
25290            None
25291        }
25292    }
25293    #[inline]
25294    fn syntax(&self) -> &SyntaxNode {
25295        &self.syntax
25296    }
25297}
25298impl AstNode for ReadWrite {
25299    #[inline]
25300    fn can_cast(kind: SyntaxKind) -> bool {
25301        kind == SyntaxKind::READ_WRITE
25302    }
25303    #[inline]
25304    fn cast(syntax: SyntaxNode) -> Option<Self> {
25305        if Self::can_cast(syntax.kind()) {
25306            Some(Self { syntax })
25307        } else {
25308            None
25309        }
25310    }
25311    #[inline]
25312    fn syntax(&self) -> &SyntaxNode {
25313        &self.syntax
25314    }
25315}
25316impl AstNode for Reassign {
25317    #[inline]
25318    fn can_cast(kind: SyntaxKind) -> bool {
25319        kind == SyntaxKind::REASSIGN
25320    }
25321    #[inline]
25322    fn cast(syntax: SyntaxNode) -> Option<Self> {
25323        if Self::can_cast(syntax.kind()) {
25324            Some(Self { syntax })
25325        } else {
25326            None
25327        }
25328    }
25329    #[inline]
25330    fn syntax(&self) -> &SyntaxNode {
25331        &self.syntax
25332    }
25333}
25334impl AstNode for ReferencesConstraint {
25335    #[inline]
25336    fn can_cast(kind: SyntaxKind) -> bool {
25337        kind == SyntaxKind::REFERENCES_CONSTRAINT
25338    }
25339    #[inline]
25340    fn cast(syntax: SyntaxNode) -> Option<Self> {
25341        if Self::can_cast(syntax.kind()) {
25342            Some(Self { syntax })
25343        } else {
25344            None
25345        }
25346    }
25347    #[inline]
25348    fn syntax(&self) -> &SyntaxNode {
25349        &self.syntax
25350    }
25351}
25352impl AstNode for Referencing {
25353    #[inline]
25354    fn can_cast(kind: SyntaxKind) -> bool {
25355        kind == SyntaxKind::REFERENCING
25356    }
25357    #[inline]
25358    fn cast(syntax: SyntaxNode) -> Option<Self> {
25359        if Self::can_cast(syntax.kind()) {
25360            Some(Self { syntax })
25361        } else {
25362            None
25363        }
25364    }
25365    #[inline]
25366    fn syntax(&self) -> &SyntaxNode {
25367        &self.syntax
25368    }
25369}
25370impl AstNode for ReferencingTable {
25371    #[inline]
25372    fn can_cast(kind: SyntaxKind) -> bool {
25373        kind == SyntaxKind::REFERENCING_TABLE
25374    }
25375    #[inline]
25376    fn cast(syntax: SyntaxNode) -> Option<Self> {
25377        if Self::can_cast(syntax.kind()) {
25378            Some(Self { syntax })
25379        } else {
25380            None
25381        }
25382    }
25383    #[inline]
25384    fn syntax(&self) -> &SyntaxNode {
25385        &self.syntax
25386    }
25387}
25388impl AstNode for Refresh {
25389    #[inline]
25390    fn can_cast(kind: SyntaxKind) -> bool {
25391        kind == SyntaxKind::REFRESH
25392    }
25393    #[inline]
25394    fn cast(syntax: SyntaxNode) -> Option<Self> {
25395        if Self::can_cast(syntax.kind()) {
25396            Some(Self { syntax })
25397        } else {
25398            None
25399        }
25400    }
25401    #[inline]
25402    fn syntax(&self) -> &SyntaxNode {
25403        &self.syntax
25404    }
25405}
25406impl AstNode for RefreshCollationVersion {
25407    #[inline]
25408    fn can_cast(kind: SyntaxKind) -> bool {
25409        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25410    }
25411    #[inline]
25412    fn cast(syntax: SyntaxNode) -> Option<Self> {
25413        if Self::can_cast(syntax.kind()) {
25414            Some(Self { syntax })
25415        } else {
25416            None
25417        }
25418    }
25419    #[inline]
25420    fn syntax(&self) -> &SyntaxNode {
25421        &self.syntax
25422    }
25423}
25424impl AstNode for RefreshVersion {
25425    #[inline]
25426    fn can_cast(kind: SyntaxKind) -> bool {
25427        kind == SyntaxKind::REFRESH_VERSION
25428    }
25429    #[inline]
25430    fn cast(syntax: SyntaxNode) -> Option<Self> {
25431        if Self::can_cast(syntax.kind()) {
25432            Some(Self { syntax })
25433        } else {
25434            None
25435        }
25436    }
25437    #[inline]
25438    fn syntax(&self) -> &SyntaxNode {
25439        &self.syntax
25440    }
25441}
25442impl AstNode for Reindex {
25443    #[inline]
25444    fn can_cast(kind: SyntaxKind) -> bool {
25445        kind == SyntaxKind::REINDEX
25446    }
25447    #[inline]
25448    fn cast(syntax: SyntaxNode) -> Option<Self> {
25449        if Self::can_cast(syntax.kind()) {
25450            Some(Self { syntax })
25451        } else {
25452            None
25453        }
25454    }
25455    #[inline]
25456    fn syntax(&self) -> &SyntaxNode {
25457        &self.syntax
25458    }
25459}
25460impl AstNode for RelationName {
25461    #[inline]
25462    fn can_cast(kind: SyntaxKind) -> bool {
25463        kind == SyntaxKind::RELATION_NAME
25464    }
25465    #[inline]
25466    fn cast(syntax: SyntaxNode) -> Option<Self> {
25467        if Self::can_cast(syntax.kind()) {
25468            Some(Self { syntax })
25469        } else {
25470            None
25471        }
25472    }
25473    #[inline]
25474    fn syntax(&self) -> &SyntaxNode {
25475        &self.syntax
25476    }
25477}
25478impl AstNode for ReleaseSavepoint {
25479    #[inline]
25480    fn can_cast(kind: SyntaxKind) -> bool {
25481        kind == SyntaxKind::RELEASE_SAVEPOINT
25482    }
25483    #[inline]
25484    fn cast(syntax: SyntaxNode) -> Option<Self> {
25485        if Self::can_cast(syntax.kind()) {
25486            Some(Self { syntax })
25487        } else {
25488            None
25489        }
25490    }
25491    #[inline]
25492    fn syntax(&self) -> &SyntaxNode {
25493        &self.syntax
25494    }
25495}
25496impl AstNode for RenameColumn {
25497    #[inline]
25498    fn can_cast(kind: SyntaxKind) -> bool {
25499        kind == SyntaxKind::RENAME_COLUMN
25500    }
25501    #[inline]
25502    fn cast(syntax: SyntaxNode) -> Option<Self> {
25503        if Self::can_cast(syntax.kind()) {
25504            Some(Self { syntax })
25505        } else {
25506            None
25507        }
25508    }
25509    #[inline]
25510    fn syntax(&self) -> &SyntaxNode {
25511        &self.syntax
25512    }
25513}
25514impl AstNode for RenameConstraint {
25515    #[inline]
25516    fn can_cast(kind: SyntaxKind) -> bool {
25517        kind == SyntaxKind::RENAME_CONSTRAINT
25518    }
25519    #[inline]
25520    fn cast(syntax: SyntaxNode) -> Option<Self> {
25521        if Self::can_cast(syntax.kind()) {
25522            Some(Self { syntax })
25523        } else {
25524            None
25525        }
25526    }
25527    #[inline]
25528    fn syntax(&self) -> &SyntaxNode {
25529        &self.syntax
25530    }
25531}
25532impl AstNode for RenameTo {
25533    #[inline]
25534    fn can_cast(kind: SyntaxKind) -> bool {
25535        kind == SyntaxKind::RENAME_TO
25536    }
25537    #[inline]
25538    fn cast(syntax: SyntaxNode) -> Option<Self> {
25539        if Self::can_cast(syntax.kind()) {
25540            Some(Self { syntax })
25541        } else {
25542            None
25543        }
25544    }
25545    #[inline]
25546    fn syntax(&self) -> &SyntaxNode {
25547        &self.syntax
25548    }
25549}
25550impl AstNode for RepeatableClause {
25551    #[inline]
25552    fn can_cast(kind: SyntaxKind) -> bool {
25553        kind == SyntaxKind::REPEATABLE_CLAUSE
25554    }
25555    #[inline]
25556    fn cast(syntax: SyntaxNode) -> Option<Self> {
25557        if Self::can_cast(syntax.kind()) {
25558            Some(Self { syntax })
25559        } else {
25560            None
25561        }
25562    }
25563    #[inline]
25564    fn syntax(&self) -> &SyntaxNode {
25565        &self.syntax
25566    }
25567}
25568impl AstNode for RepeatableRead {
25569    #[inline]
25570    fn can_cast(kind: SyntaxKind) -> bool {
25571        kind == SyntaxKind::REPEATABLE_READ
25572    }
25573    #[inline]
25574    fn cast(syntax: SyntaxNode) -> Option<Self> {
25575        if Self::can_cast(syntax.kind()) {
25576            Some(Self { syntax })
25577        } else {
25578            None
25579        }
25580    }
25581    #[inline]
25582    fn syntax(&self) -> &SyntaxNode {
25583        &self.syntax
25584    }
25585}
25586impl AstNode for ReplicaIdentity {
25587    #[inline]
25588    fn can_cast(kind: SyntaxKind) -> bool {
25589        kind == SyntaxKind::REPLICA_IDENTITY
25590    }
25591    #[inline]
25592    fn cast(syntax: SyntaxNode) -> Option<Self> {
25593        if Self::can_cast(syntax.kind()) {
25594            Some(Self { syntax })
25595        } else {
25596            None
25597        }
25598    }
25599    #[inline]
25600    fn syntax(&self) -> &SyntaxNode {
25601        &self.syntax
25602    }
25603}
25604impl AstNode for Reset {
25605    #[inline]
25606    fn can_cast(kind: SyntaxKind) -> bool {
25607        kind == SyntaxKind::RESET
25608    }
25609    #[inline]
25610    fn cast(syntax: SyntaxNode) -> Option<Self> {
25611        if Self::can_cast(syntax.kind()) {
25612            Some(Self { syntax })
25613        } else {
25614            None
25615        }
25616    }
25617    #[inline]
25618    fn syntax(&self) -> &SyntaxNode {
25619        &self.syntax
25620    }
25621}
25622impl AstNode for ResetConfigParam {
25623    #[inline]
25624    fn can_cast(kind: SyntaxKind) -> bool {
25625        kind == SyntaxKind::RESET_CONFIG_PARAM
25626    }
25627    #[inline]
25628    fn cast(syntax: SyntaxNode) -> Option<Self> {
25629        if Self::can_cast(syntax.kind()) {
25630            Some(Self { syntax })
25631        } else {
25632            None
25633        }
25634    }
25635    #[inline]
25636    fn syntax(&self) -> &SyntaxNode {
25637        &self.syntax
25638    }
25639}
25640impl AstNode for ResetFuncOption {
25641    #[inline]
25642    fn can_cast(kind: SyntaxKind) -> bool {
25643        kind == SyntaxKind::RESET_FUNC_OPTION
25644    }
25645    #[inline]
25646    fn cast(syntax: SyntaxNode) -> Option<Self> {
25647        if Self::can_cast(syntax.kind()) {
25648            Some(Self { syntax })
25649        } else {
25650            None
25651        }
25652    }
25653    #[inline]
25654    fn syntax(&self) -> &SyntaxNode {
25655        &self.syntax
25656    }
25657}
25658impl AstNode for ResetOptions {
25659    #[inline]
25660    fn can_cast(kind: SyntaxKind) -> bool {
25661        kind == SyntaxKind::RESET_OPTIONS
25662    }
25663    #[inline]
25664    fn cast(syntax: SyntaxNode) -> Option<Self> {
25665        if Self::can_cast(syntax.kind()) {
25666            Some(Self { syntax })
25667        } else {
25668            None
25669        }
25670    }
25671    #[inline]
25672    fn syntax(&self) -> &SyntaxNode {
25673        &self.syntax
25674    }
25675}
25676impl AstNode for ResetSessionAuth {
25677    #[inline]
25678    fn can_cast(kind: SyntaxKind) -> bool {
25679        kind == SyntaxKind::RESET_SESSION_AUTH
25680    }
25681    #[inline]
25682    fn cast(syntax: SyntaxNode) -> Option<Self> {
25683        if Self::can_cast(syntax.kind()) {
25684            Some(Self { syntax })
25685        } else {
25686            None
25687        }
25688    }
25689    #[inline]
25690    fn syntax(&self) -> &SyntaxNode {
25691        &self.syntax
25692    }
25693}
25694impl AstNode for Restart {
25695    #[inline]
25696    fn can_cast(kind: SyntaxKind) -> bool {
25697        kind == SyntaxKind::RESTART
25698    }
25699    #[inline]
25700    fn cast(syntax: SyntaxNode) -> Option<Self> {
25701        if Self::can_cast(syntax.kind()) {
25702            Some(Self { syntax })
25703        } else {
25704            None
25705        }
25706    }
25707    #[inline]
25708    fn syntax(&self) -> &SyntaxNode {
25709        &self.syntax
25710    }
25711}
25712impl AstNode for Restrict {
25713    #[inline]
25714    fn can_cast(kind: SyntaxKind) -> bool {
25715        kind == SyntaxKind::RESTRICT
25716    }
25717    #[inline]
25718    fn cast(syntax: SyntaxNode) -> Option<Self> {
25719        if Self::can_cast(syntax.kind()) {
25720            Some(Self { syntax })
25721        } else {
25722            None
25723        }
25724    }
25725    #[inline]
25726    fn syntax(&self) -> &SyntaxNode {
25727        &self.syntax
25728    }
25729}
25730impl AstNode for RetType {
25731    #[inline]
25732    fn can_cast(kind: SyntaxKind) -> bool {
25733        kind == SyntaxKind::RET_TYPE
25734    }
25735    #[inline]
25736    fn cast(syntax: SyntaxNode) -> Option<Self> {
25737        if Self::can_cast(syntax.kind()) {
25738            Some(Self { syntax })
25739        } else {
25740            None
25741        }
25742    }
25743    #[inline]
25744    fn syntax(&self) -> &SyntaxNode {
25745        &self.syntax
25746    }
25747}
25748impl AstNode for ReturnFuncOption {
25749    #[inline]
25750    fn can_cast(kind: SyntaxKind) -> bool {
25751        kind == SyntaxKind::RETURN_FUNC_OPTION
25752    }
25753    #[inline]
25754    fn cast(syntax: SyntaxNode) -> Option<Self> {
25755        if Self::can_cast(syntax.kind()) {
25756            Some(Self { syntax })
25757        } else {
25758            None
25759        }
25760    }
25761    #[inline]
25762    fn syntax(&self) -> &SyntaxNode {
25763        &self.syntax
25764    }
25765}
25766impl AstNode for ReturningClause {
25767    #[inline]
25768    fn can_cast(kind: SyntaxKind) -> bool {
25769        kind == SyntaxKind::RETURNING_CLAUSE
25770    }
25771    #[inline]
25772    fn cast(syntax: SyntaxNode) -> Option<Self> {
25773        if Self::can_cast(syntax.kind()) {
25774            Some(Self { syntax })
25775        } else {
25776            None
25777        }
25778    }
25779    #[inline]
25780    fn syntax(&self) -> &SyntaxNode {
25781        &self.syntax
25782    }
25783}
25784impl AstNode for ReturningOption {
25785    #[inline]
25786    fn can_cast(kind: SyntaxKind) -> bool {
25787        kind == SyntaxKind::RETURNING_OPTION
25788    }
25789    #[inline]
25790    fn cast(syntax: SyntaxNode) -> Option<Self> {
25791        if Self::can_cast(syntax.kind()) {
25792            Some(Self { syntax })
25793        } else {
25794            None
25795        }
25796    }
25797    #[inline]
25798    fn syntax(&self) -> &SyntaxNode {
25799        &self.syntax
25800    }
25801}
25802impl AstNode for ReturningOptionList {
25803    #[inline]
25804    fn can_cast(kind: SyntaxKind) -> bool {
25805        kind == SyntaxKind::RETURNING_OPTION_LIST
25806    }
25807    #[inline]
25808    fn cast(syntax: SyntaxNode) -> Option<Self> {
25809        if Self::can_cast(syntax.kind()) {
25810            Some(Self { syntax })
25811        } else {
25812            None
25813        }
25814    }
25815    #[inline]
25816    fn syntax(&self) -> &SyntaxNode {
25817        &self.syntax
25818    }
25819}
25820impl AstNode for Revoke {
25821    #[inline]
25822    fn can_cast(kind: SyntaxKind) -> bool {
25823        kind == SyntaxKind::REVOKE
25824    }
25825    #[inline]
25826    fn cast(syntax: SyntaxNode) -> Option<Self> {
25827        if Self::can_cast(syntax.kind()) {
25828            Some(Self { syntax })
25829        } else {
25830            None
25831        }
25832    }
25833    #[inline]
25834    fn syntax(&self) -> &SyntaxNode {
25835        &self.syntax
25836    }
25837}
25838impl AstNode for RevokeCommand {
25839    #[inline]
25840    fn can_cast(kind: SyntaxKind) -> bool {
25841        kind == SyntaxKind::REVOKE_COMMAND
25842    }
25843    #[inline]
25844    fn cast(syntax: SyntaxNode) -> Option<Self> {
25845        if Self::can_cast(syntax.kind()) {
25846            Some(Self { syntax })
25847        } else {
25848            None
25849        }
25850    }
25851    #[inline]
25852    fn syntax(&self) -> &SyntaxNode {
25853        &self.syntax
25854    }
25855}
25856impl AstNode for RevokeCommandList {
25857    #[inline]
25858    fn can_cast(kind: SyntaxKind) -> bool {
25859        kind == SyntaxKind::REVOKE_COMMAND_LIST
25860    }
25861    #[inline]
25862    fn cast(syntax: SyntaxNode) -> Option<Self> {
25863        if Self::can_cast(syntax.kind()) {
25864            Some(Self { syntax })
25865        } else {
25866            None
25867        }
25868    }
25869    #[inline]
25870    fn syntax(&self) -> &SyntaxNode {
25871        &self.syntax
25872    }
25873}
25874impl AstNode for RevokeDefaultPrivileges {
25875    #[inline]
25876    fn can_cast(kind: SyntaxKind) -> bool {
25877        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
25878    }
25879    #[inline]
25880    fn cast(syntax: SyntaxNode) -> Option<Self> {
25881        if Self::can_cast(syntax.kind()) {
25882            Some(Self { syntax })
25883        } else {
25884            None
25885        }
25886    }
25887    #[inline]
25888    fn syntax(&self) -> &SyntaxNode {
25889        &self.syntax
25890    }
25891}
25892impl AstNode for Role {
25893    #[inline]
25894    fn can_cast(kind: SyntaxKind) -> bool {
25895        kind == SyntaxKind::ROLE
25896    }
25897    #[inline]
25898    fn cast(syntax: SyntaxNode) -> Option<Self> {
25899        if Self::can_cast(syntax.kind()) {
25900            Some(Self { syntax })
25901        } else {
25902            None
25903        }
25904    }
25905    #[inline]
25906    fn syntax(&self) -> &SyntaxNode {
25907        &self.syntax
25908    }
25909}
25910impl AstNode for RoleList {
25911    #[inline]
25912    fn can_cast(kind: SyntaxKind) -> bool {
25913        kind == SyntaxKind::ROLE_LIST
25914    }
25915    #[inline]
25916    fn cast(syntax: SyntaxNode) -> Option<Self> {
25917        if Self::can_cast(syntax.kind()) {
25918            Some(Self { syntax })
25919        } else {
25920            None
25921        }
25922    }
25923    #[inline]
25924    fn syntax(&self) -> &SyntaxNode {
25925        &self.syntax
25926    }
25927}
25928impl AstNode for RoleOption {
25929    #[inline]
25930    fn can_cast(kind: SyntaxKind) -> bool {
25931        kind == SyntaxKind::ROLE_OPTION
25932    }
25933    #[inline]
25934    fn cast(syntax: SyntaxNode) -> Option<Self> {
25935        if Self::can_cast(syntax.kind()) {
25936            Some(Self { syntax })
25937        } else {
25938            None
25939        }
25940    }
25941    #[inline]
25942    fn syntax(&self) -> &SyntaxNode {
25943        &self.syntax
25944    }
25945}
25946impl AstNode for RoleOptionList {
25947    #[inline]
25948    fn can_cast(kind: SyntaxKind) -> bool {
25949        kind == SyntaxKind::ROLE_OPTION_LIST
25950    }
25951    #[inline]
25952    fn cast(syntax: SyntaxNode) -> Option<Self> {
25953        if Self::can_cast(syntax.kind()) {
25954            Some(Self { syntax })
25955        } else {
25956            None
25957        }
25958    }
25959    #[inline]
25960    fn syntax(&self) -> &SyntaxNode {
25961        &self.syntax
25962    }
25963}
25964impl AstNode for Rollback {
25965    #[inline]
25966    fn can_cast(kind: SyntaxKind) -> bool {
25967        kind == SyntaxKind::ROLLBACK
25968    }
25969    #[inline]
25970    fn cast(syntax: SyntaxNode) -> Option<Self> {
25971        if Self::can_cast(syntax.kind()) {
25972            Some(Self { syntax })
25973        } else {
25974            None
25975        }
25976    }
25977    #[inline]
25978    fn syntax(&self) -> &SyntaxNode {
25979        &self.syntax
25980    }
25981}
25982impl AstNode for Row {
25983    #[inline]
25984    fn can_cast(kind: SyntaxKind) -> bool {
25985        kind == SyntaxKind::ROW
25986    }
25987    #[inline]
25988    fn cast(syntax: SyntaxNode) -> Option<Self> {
25989        if Self::can_cast(syntax.kind()) {
25990            Some(Self { syntax })
25991        } else {
25992            None
25993        }
25994    }
25995    #[inline]
25996    fn syntax(&self) -> &SyntaxNode {
25997        &self.syntax
25998    }
25999}
26000impl AstNode for RowList {
26001    #[inline]
26002    fn can_cast(kind: SyntaxKind) -> bool {
26003        kind == SyntaxKind::ROW_LIST
26004    }
26005    #[inline]
26006    fn cast(syntax: SyntaxNode) -> Option<Self> {
26007        if Self::can_cast(syntax.kind()) {
26008            Some(Self { syntax })
26009        } else {
26010            None
26011        }
26012    }
26013    #[inline]
26014    fn syntax(&self) -> &SyntaxNode {
26015        &self.syntax
26016    }
26017}
26018impl AstNode for RowsFuncOption {
26019    #[inline]
26020    fn can_cast(kind: SyntaxKind) -> bool {
26021        kind == SyntaxKind::ROWS_FUNC_OPTION
26022    }
26023    #[inline]
26024    fn cast(syntax: SyntaxNode) -> Option<Self> {
26025        if Self::can_cast(syntax.kind()) {
26026            Some(Self { syntax })
26027        } else {
26028            None
26029        }
26030    }
26031    #[inline]
26032    fn syntax(&self) -> &SyntaxNode {
26033        &self.syntax
26034    }
26035}
26036impl AstNode for Savepoint {
26037    #[inline]
26038    fn can_cast(kind: SyntaxKind) -> bool {
26039        kind == SyntaxKind::SAVEPOINT
26040    }
26041    #[inline]
26042    fn cast(syntax: SyntaxNode) -> Option<Self> {
26043        if Self::can_cast(syntax.kind()) {
26044            Some(Self { syntax })
26045        } else {
26046            None
26047        }
26048    }
26049    #[inline]
26050    fn syntax(&self) -> &SyntaxNode {
26051        &self.syntax
26052    }
26053}
26054impl AstNode for SchemaAuthorization {
26055    #[inline]
26056    fn can_cast(kind: SyntaxKind) -> bool {
26057        kind == SyntaxKind::SCHEMA_AUTHORIZATION
26058    }
26059    #[inline]
26060    fn cast(syntax: SyntaxNode) -> Option<Self> {
26061        if Self::can_cast(syntax.kind()) {
26062            Some(Self { syntax })
26063        } else {
26064            None
26065        }
26066    }
26067    #[inline]
26068    fn syntax(&self) -> &SyntaxNode {
26069        &self.syntax
26070    }
26071}
26072impl AstNode for SecurityFuncOption {
26073    #[inline]
26074    fn can_cast(kind: SyntaxKind) -> bool {
26075        kind == SyntaxKind::SECURITY_FUNC_OPTION
26076    }
26077    #[inline]
26078    fn cast(syntax: SyntaxNode) -> Option<Self> {
26079        if Self::can_cast(syntax.kind()) {
26080            Some(Self { syntax })
26081        } else {
26082            None
26083        }
26084    }
26085    #[inline]
26086    fn syntax(&self) -> &SyntaxNode {
26087        &self.syntax
26088    }
26089}
26090impl AstNode for SecurityLabel {
26091    #[inline]
26092    fn can_cast(kind: SyntaxKind) -> bool {
26093        kind == SyntaxKind::SECURITY_LABEL
26094    }
26095    #[inline]
26096    fn cast(syntax: SyntaxNode) -> Option<Self> {
26097        if Self::can_cast(syntax.kind()) {
26098            Some(Self { syntax })
26099        } else {
26100            None
26101        }
26102    }
26103    #[inline]
26104    fn syntax(&self) -> &SyntaxNode {
26105        &self.syntax
26106    }
26107}
26108impl AstNode for Select {
26109    #[inline]
26110    fn can_cast(kind: SyntaxKind) -> bool {
26111        kind == SyntaxKind::SELECT
26112    }
26113    #[inline]
26114    fn cast(syntax: SyntaxNode) -> Option<Self> {
26115        if Self::can_cast(syntax.kind()) {
26116            Some(Self { syntax })
26117        } else {
26118            None
26119        }
26120    }
26121    #[inline]
26122    fn syntax(&self) -> &SyntaxNode {
26123        &self.syntax
26124    }
26125}
26126impl AstNode for SelectClause {
26127    #[inline]
26128    fn can_cast(kind: SyntaxKind) -> bool {
26129        kind == SyntaxKind::SELECT_CLAUSE
26130    }
26131    #[inline]
26132    fn cast(syntax: SyntaxNode) -> Option<Self> {
26133        if Self::can_cast(syntax.kind()) {
26134            Some(Self { syntax })
26135        } else {
26136            None
26137        }
26138    }
26139    #[inline]
26140    fn syntax(&self) -> &SyntaxNode {
26141        &self.syntax
26142    }
26143}
26144impl AstNode for SelectInto {
26145    #[inline]
26146    fn can_cast(kind: SyntaxKind) -> bool {
26147        kind == SyntaxKind::SELECT_INTO
26148    }
26149    #[inline]
26150    fn cast(syntax: SyntaxNode) -> Option<Self> {
26151        if Self::can_cast(syntax.kind()) {
26152            Some(Self { syntax })
26153        } else {
26154            None
26155        }
26156    }
26157    #[inline]
26158    fn syntax(&self) -> &SyntaxNode {
26159        &self.syntax
26160    }
26161}
26162impl AstNode for SequenceOption {
26163    #[inline]
26164    fn can_cast(kind: SyntaxKind) -> bool {
26165        kind == SyntaxKind::SEQUENCE_OPTION
26166    }
26167    #[inline]
26168    fn cast(syntax: SyntaxNode) -> Option<Self> {
26169        if Self::can_cast(syntax.kind()) {
26170            Some(Self { syntax })
26171        } else {
26172            None
26173        }
26174    }
26175    #[inline]
26176    fn syntax(&self) -> &SyntaxNode {
26177        &self.syntax
26178    }
26179}
26180impl AstNode for SequenceOptionList {
26181    #[inline]
26182    fn can_cast(kind: SyntaxKind) -> bool {
26183        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26184    }
26185    #[inline]
26186    fn cast(syntax: SyntaxNode) -> Option<Self> {
26187        if Self::can_cast(syntax.kind()) {
26188            Some(Self { syntax })
26189        } else {
26190            None
26191        }
26192    }
26193    #[inline]
26194    fn syntax(&self) -> &SyntaxNode {
26195        &self.syntax
26196    }
26197}
26198impl AstNode for Serializable {
26199    #[inline]
26200    fn can_cast(kind: SyntaxKind) -> bool {
26201        kind == SyntaxKind::SERIALIZABLE
26202    }
26203    #[inline]
26204    fn cast(syntax: SyntaxNode) -> Option<Self> {
26205        if Self::can_cast(syntax.kind()) {
26206            Some(Self { syntax })
26207        } else {
26208            None
26209        }
26210    }
26211    #[inline]
26212    fn syntax(&self) -> &SyntaxNode {
26213        &self.syntax
26214    }
26215}
26216impl AstNode for Set {
26217    #[inline]
26218    fn can_cast(kind: SyntaxKind) -> bool {
26219        kind == SyntaxKind::SET
26220    }
26221    #[inline]
26222    fn cast(syntax: SyntaxNode) -> Option<Self> {
26223        if Self::can_cast(syntax.kind()) {
26224            Some(Self { syntax })
26225        } else {
26226            None
26227        }
26228    }
26229    #[inline]
26230    fn syntax(&self) -> &SyntaxNode {
26231        &self.syntax
26232    }
26233}
26234impl AstNode for SetAccessMethod {
26235    #[inline]
26236    fn can_cast(kind: SyntaxKind) -> bool {
26237        kind == SyntaxKind::SET_ACCESS_METHOD
26238    }
26239    #[inline]
26240    fn cast(syntax: SyntaxNode) -> Option<Self> {
26241        if Self::can_cast(syntax.kind()) {
26242            Some(Self { syntax })
26243        } else {
26244            None
26245        }
26246    }
26247    #[inline]
26248    fn syntax(&self) -> &SyntaxNode {
26249        &self.syntax
26250    }
26251}
26252impl AstNode for SetClause {
26253    #[inline]
26254    fn can_cast(kind: SyntaxKind) -> bool {
26255        kind == SyntaxKind::SET_CLAUSE
26256    }
26257    #[inline]
26258    fn cast(syntax: SyntaxNode) -> Option<Self> {
26259        if Self::can_cast(syntax.kind()) {
26260            Some(Self { syntax })
26261        } else {
26262            None
26263        }
26264    }
26265    #[inline]
26266    fn syntax(&self) -> &SyntaxNode {
26267        &self.syntax
26268    }
26269}
26270impl AstNode for SetColumnList {
26271    #[inline]
26272    fn can_cast(kind: SyntaxKind) -> bool {
26273        kind == SyntaxKind::SET_COLUMN_LIST
26274    }
26275    #[inline]
26276    fn cast(syntax: SyntaxNode) -> Option<Self> {
26277        if Self::can_cast(syntax.kind()) {
26278            Some(Self { syntax })
26279        } else {
26280            None
26281        }
26282    }
26283    #[inline]
26284    fn syntax(&self) -> &SyntaxNode {
26285        &self.syntax
26286    }
26287}
26288impl AstNode for SetCompression {
26289    #[inline]
26290    fn can_cast(kind: SyntaxKind) -> bool {
26291        kind == SyntaxKind::SET_COMPRESSION
26292    }
26293    #[inline]
26294    fn cast(syntax: SyntaxNode) -> Option<Self> {
26295        if Self::can_cast(syntax.kind()) {
26296            Some(Self { syntax })
26297        } else {
26298            None
26299        }
26300    }
26301    #[inline]
26302    fn syntax(&self) -> &SyntaxNode {
26303        &self.syntax
26304    }
26305}
26306impl AstNode for SetConfigParam {
26307    #[inline]
26308    fn can_cast(kind: SyntaxKind) -> bool {
26309        kind == SyntaxKind::SET_CONFIG_PARAM
26310    }
26311    #[inline]
26312    fn cast(syntax: SyntaxNode) -> Option<Self> {
26313        if Self::can_cast(syntax.kind()) {
26314            Some(Self { syntax })
26315        } else {
26316            None
26317        }
26318    }
26319    #[inline]
26320    fn syntax(&self) -> &SyntaxNode {
26321        &self.syntax
26322    }
26323}
26324impl AstNode for SetConstraints {
26325    #[inline]
26326    fn can_cast(kind: SyntaxKind) -> bool {
26327        kind == SyntaxKind::SET_CONSTRAINTS
26328    }
26329    #[inline]
26330    fn cast(syntax: SyntaxNode) -> Option<Self> {
26331        if Self::can_cast(syntax.kind()) {
26332            Some(Self { syntax })
26333        } else {
26334            None
26335        }
26336    }
26337    #[inline]
26338    fn syntax(&self) -> &SyntaxNode {
26339        &self.syntax
26340    }
26341}
26342impl AstNode for SetDefault {
26343    #[inline]
26344    fn can_cast(kind: SyntaxKind) -> bool {
26345        kind == SyntaxKind::SET_DEFAULT
26346    }
26347    #[inline]
26348    fn cast(syntax: SyntaxNode) -> Option<Self> {
26349        if Self::can_cast(syntax.kind()) {
26350            Some(Self { syntax })
26351        } else {
26352            None
26353        }
26354    }
26355    #[inline]
26356    fn syntax(&self) -> &SyntaxNode {
26357        &self.syntax
26358    }
26359}
26360impl AstNode for SetDefaultColumns {
26361    #[inline]
26362    fn can_cast(kind: SyntaxKind) -> bool {
26363        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26364    }
26365    #[inline]
26366    fn cast(syntax: SyntaxNode) -> Option<Self> {
26367        if Self::can_cast(syntax.kind()) {
26368            Some(Self { syntax })
26369        } else {
26370            None
26371        }
26372    }
26373    #[inline]
26374    fn syntax(&self) -> &SyntaxNode {
26375        &self.syntax
26376    }
26377}
26378impl AstNode for SetExpr {
26379    #[inline]
26380    fn can_cast(kind: SyntaxKind) -> bool {
26381        kind == SyntaxKind::SET_EXPR
26382    }
26383    #[inline]
26384    fn cast(syntax: SyntaxNode) -> Option<Self> {
26385        if Self::can_cast(syntax.kind()) {
26386            Some(Self { syntax })
26387        } else {
26388            None
26389        }
26390    }
26391    #[inline]
26392    fn syntax(&self) -> &SyntaxNode {
26393        &self.syntax
26394    }
26395}
26396impl AstNode for SetExprList {
26397    #[inline]
26398    fn can_cast(kind: SyntaxKind) -> bool {
26399        kind == SyntaxKind::SET_EXPR_LIST
26400    }
26401    #[inline]
26402    fn cast(syntax: SyntaxNode) -> Option<Self> {
26403        if Self::can_cast(syntax.kind()) {
26404            Some(Self { syntax })
26405        } else {
26406            None
26407        }
26408    }
26409    #[inline]
26410    fn syntax(&self) -> &SyntaxNode {
26411        &self.syntax
26412    }
26413}
26414impl AstNode for SetExpression {
26415    #[inline]
26416    fn can_cast(kind: SyntaxKind) -> bool {
26417        kind == SyntaxKind::SET_EXPRESSION
26418    }
26419    #[inline]
26420    fn cast(syntax: SyntaxNode) -> Option<Self> {
26421        if Self::can_cast(syntax.kind()) {
26422            Some(Self { syntax })
26423        } else {
26424            None
26425        }
26426    }
26427    #[inline]
26428    fn syntax(&self) -> &SyntaxNode {
26429        &self.syntax
26430    }
26431}
26432impl AstNode for SetFuncOption {
26433    #[inline]
26434    fn can_cast(kind: SyntaxKind) -> bool {
26435        kind == SyntaxKind::SET_FUNC_OPTION
26436    }
26437    #[inline]
26438    fn cast(syntax: SyntaxNode) -> Option<Self> {
26439        if Self::can_cast(syntax.kind()) {
26440            Some(Self { syntax })
26441        } else {
26442            None
26443        }
26444    }
26445    #[inline]
26446    fn syntax(&self) -> &SyntaxNode {
26447        &self.syntax
26448    }
26449}
26450impl AstNode for SetGenerated {
26451    #[inline]
26452    fn can_cast(kind: SyntaxKind) -> bool {
26453        kind == SyntaxKind::SET_GENERATED
26454    }
26455    #[inline]
26456    fn cast(syntax: SyntaxNode) -> Option<Self> {
26457        if Self::can_cast(syntax.kind()) {
26458            Some(Self { syntax })
26459        } else {
26460            None
26461        }
26462    }
26463    #[inline]
26464    fn syntax(&self) -> &SyntaxNode {
26465        &self.syntax
26466    }
26467}
26468impl AstNode for SetGeneratedOptions {
26469    #[inline]
26470    fn can_cast(kind: SyntaxKind) -> bool {
26471        kind == SyntaxKind::SET_GENERATED_OPTIONS
26472    }
26473    #[inline]
26474    fn cast(syntax: SyntaxNode) -> Option<Self> {
26475        if Self::can_cast(syntax.kind()) {
26476            Some(Self { syntax })
26477        } else {
26478            None
26479        }
26480    }
26481    #[inline]
26482    fn syntax(&self) -> &SyntaxNode {
26483        &self.syntax
26484    }
26485}
26486impl AstNode for SetLogged {
26487    #[inline]
26488    fn can_cast(kind: SyntaxKind) -> bool {
26489        kind == SyntaxKind::SET_LOGGED
26490    }
26491    #[inline]
26492    fn cast(syntax: SyntaxNode) -> Option<Self> {
26493        if Self::can_cast(syntax.kind()) {
26494            Some(Self { syntax })
26495        } else {
26496            None
26497        }
26498    }
26499    #[inline]
26500    fn syntax(&self) -> &SyntaxNode {
26501        &self.syntax
26502    }
26503}
26504impl AstNode for SetMultipleColumns {
26505    #[inline]
26506    fn can_cast(kind: SyntaxKind) -> bool {
26507        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26508    }
26509    #[inline]
26510    fn cast(syntax: SyntaxNode) -> Option<Self> {
26511        if Self::can_cast(syntax.kind()) {
26512            Some(Self { syntax })
26513        } else {
26514            None
26515        }
26516    }
26517    #[inline]
26518    fn syntax(&self) -> &SyntaxNode {
26519        &self.syntax
26520    }
26521}
26522impl AstNode for SetNotNull {
26523    #[inline]
26524    fn can_cast(kind: SyntaxKind) -> bool {
26525        kind == SyntaxKind::SET_NOT_NULL
26526    }
26527    #[inline]
26528    fn cast(syntax: SyntaxNode) -> Option<Self> {
26529        if Self::can_cast(syntax.kind()) {
26530            Some(Self { syntax })
26531        } else {
26532            None
26533        }
26534    }
26535    #[inline]
26536    fn syntax(&self) -> &SyntaxNode {
26537        &self.syntax
26538    }
26539}
26540impl AstNode for SetNullColumns {
26541    #[inline]
26542    fn can_cast(kind: SyntaxKind) -> bool {
26543        kind == SyntaxKind::SET_NULL_COLUMNS
26544    }
26545    #[inline]
26546    fn cast(syntax: SyntaxNode) -> Option<Self> {
26547        if Self::can_cast(syntax.kind()) {
26548            Some(Self { syntax })
26549        } else {
26550            None
26551        }
26552    }
26553    #[inline]
26554    fn syntax(&self) -> &SyntaxNode {
26555        &self.syntax
26556    }
26557}
26558impl AstNode for SetOptions {
26559    #[inline]
26560    fn can_cast(kind: SyntaxKind) -> bool {
26561        kind == SyntaxKind::SET_OPTIONS
26562    }
26563    #[inline]
26564    fn cast(syntax: SyntaxNode) -> Option<Self> {
26565        if Self::can_cast(syntax.kind()) {
26566            Some(Self { syntax })
26567        } else {
26568            None
26569        }
26570    }
26571    #[inline]
26572    fn syntax(&self) -> &SyntaxNode {
26573        &self.syntax
26574    }
26575}
26576impl AstNode for SetOptionsList {
26577    #[inline]
26578    fn can_cast(kind: SyntaxKind) -> bool {
26579        kind == SyntaxKind::SET_OPTIONS_LIST
26580    }
26581    #[inline]
26582    fn cast(syntax: SyntaxNode) -> Option<Self> {
26583        if Self::can_cast(syntax.kind()) {
26584            Some(Self { syntax })
26585        } else {
26586            None
26587        }
26588    }
26589    #[inline]
26590    fn syntax(&self) -> &SyntaxNode {
26591        &self.syntax
26592    }
26593}
26594impl AstNode for SetRole {
26595    #[inline]
26596    fn can_cast(kind: SyntaxKind) -> bool {
26597        kind == SyntaxKind::SET_ROLE
26598    }
26599    #[inline]
26600    fn cast(syntax: SyntaxNode) -> Option<Self> {
26601        if Self::can_cast(syntax.kind()) {
26602            Some(Self { syntax })
26603        } else {
26604            None
26605        }
26606    }
26607    #[inline]
26608    fn syntax(&self) -> &SyntaxNode {
26609        &self.syntax
26610    }
26611}
26612impl AstNode for SetSchema {
26613    #[inline]
26614    fn can_cast(kind: SyntaxKind) -> bool {
26615        kind == SyntaxKind::SET_SCHEMA
26616    }
26617    #[inline]
26618    fn cast(syntax: SyntaxNode) -> Option<Self> {
26619        if Self::can_cast(syntax.kind()) {
26620            Some(Self { syntax })
26621        } else {
26622            None
26623        }
26624    }
26625    #[inline]
26626    fn syntax(&self) -> &SyntaxNode {
26627        &self.syntax
26628    }
26629}
26630impl AstNode for SetSequenceOption {
26631    #[inline]
26632    fn can_cast(kind: SyntaxKind) -> bool {
26633        kind == SyntaxKind::SET_SEQUENCE_OPTION
26634    }
26635    #[inline]
26636    fn cast(syntax: SyntaxNode) -> Option<Self> {
26637        if Self::can_cast(syntax.kind()) {
26638            Some(Self { syntax })
26639        } else {
26640            None
26641        }
26642    }
26643    #[inline]
26644    fn syntax(&self) -> &SyntaxNode {
26645        &self.syntax
26646    }
26647}
26648impl AstNode for SetSessionAuth {
26649    #[inline]
26650    fn can_cast(kind: SyntaxKind) -> bool {
26651        kind == SyntaxKind::SET_SESSION_AUTH
26652    }
26653    #[inline]
26654    fn cast(syntax: SyntaxNode) -> Option<Self> {
26655        if Self::can_cast(syntax.kind()) {
26656            Some(Self { syntax })
26657        } else {
26658            None
26659        }
26660    }
26661    #[inline]
26662    fn syntax(&self) -> &SyntaxNode {
26663        &self.syntax
26664    }
26665}
26666impl AstNode for SetSingleColumn {
26667    #[inline]
26668    fn can_cast(kind: SyntaxKind) -> bool {
26669        kind == SyntaxKind::SET_SINGLE_COLUMN
26670    }
26671    #[inline]
26672    fn cast(syntax: SyntaxNode) -> Option<Self> {
26673        if Self::can_cast(syntax.kind()) {
26674            Some(Self { syntax })
26675        } else {
26676            None
26677        }
26678    }
26679    #[inline]
26680    fn syntax(&self) -> &SyntaxNode {
26681        &self.syntax
26682    }
26683}
26684impl AstNode for SetStatistics {
26685    #[inline]
26686    fn can_cast(kind: SyntaxKind) -> bool {
26687        kind == SyntaxKind::SET_STATISTICS
26688    }
26689    #[inline]
26690    fn cast(syntax: SyntaxNode) -> Option<Self> {
26691        if Self::can_cast(syntax.kind()) {
26692            Some(Self { syntax })
26693        } else {
26694            None
26695        }
26696    }
26697    #[inline]
26698    fn syntax(&self) -> &SyntaxNode {
26699        &self.syntax
26700    }
26701}
26702impl AstNode for SetStorage {
26703    #[inline]
26704    fn can_cast(kind: SyntaxKind) -> bool {
26705        kind == SyntaxKind::SET_STORAGE
26706    }
26707    #[inline]
26708    fn cast(syntax: SyntaxNode) -> Option<Self> {
26709        if Self::can_cast(syntax.kind()) {
26710            Some(Self { syntax })
26711        } else {
26712            None
26713        }
26714    }
26715    #[inline]
26716    fn syntax(&self) -> &SyntaxNode {
26717        &self.syntax
26718    }
26719}
26720impl AstNode for SetTablespace {
26721    #[inline]
26722    fn can_cast(kind: SyntaxKind) -> bool {
26723        kind == SyntaxKind::SET_TABLESPACE
26724    }
26725    #[inline]
26726    fn cast(syntax: SyntaxNode) -> Option<Self> {
26727        if Self::can_cast(syntax.kind()) {
26728            Some(Self { syntax })
26729        } else {
26730            None
26731        }
26732    }
26733    #[inline]
26734    fn syntax(&self) -> &SyntaxNode {
26735        &self.syntax
26736    }
26737}
26738impl AstNode for SetTransaction {
26739    #[inline]
26740    fn can_cast(kind: SyntaxKind) -> bool {
26741        kind == SyntaxKind::SET_TRANSACTION
26742    }
26743    #[inline]
26744    fn cast(syntax: SyntaxNode) -> Option<Self> {
26745        if Self::can_cast(syntax.kind()) {
26746            Some(Self { syntax })
26747        } else {
26748            None
26749        }
26750    }
26751    #[inline]
26752    fn syntax(&self) -> &SyntaxNode {
26753        &self.syntax
26754    }
26755}
26756impl AstNode for SetType {
26757    #[inline]
26758    fn can_cast(kind: SyntaxKind) -> bool {
26759        kind == SyntaxKind::SET_TYPE
26760    }
26761    #[inline]
26762    fn cast(syntax: SyntaxNode) -> Option<Self> {
26763        if Self::can_cast(syntax.kind()) {
26764            Some(Self { syntax })
26765        } else {
26766            None
26767        }
26768    }
26769    #[inline]
26770    fn syntax(&self) -> &SyntaxNode {
26771        &self.syntax
26772    }
26773}
26774impl AstNode for SetUnlogged {
26775    #[inline]
26776    fn can_cast(kind: SyntaxKind) -> bool {
26777        kind == SyntaxKind::SET_UNLOGGED
26778    }
26779    #[inline]
26780    fn cast(syntax: SyntaxNode) -> Option<Self> {
26781        if Self::can_cast(syntax.kind()) {
26782            Some(Self { syntax })
26783        } else {
26784            None
26785        }
26786    }
26787    #[inline]
26788    fn syntax(&self) -> &SyntaxNode {
26789        &self.syntax
26790    }
26791}
26792impl AstNode for SetWithoutCluster {
26793    #[inline]
26794    fn can_cast(kind: SyntaxKind) -> bool {
26795        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26796    }
26797    #[inline]
26798    fn cast(syntax: SyntaxNode) -> Option<Self> {
26799        if Self::can_cast(syntax.kind()) {
26800            Some(Self { syntax })
26801        } else {
26802            None
26803        }
26804    }
26805    #[inline]
26806    fn syntax(&self) -> &SyntaxNode {
26807        &self.syntax
26808    }
26809}
26810impl AstNode for SetWithoutOids {
26811    #[inline]
26812    fn can_cast(kind: SyntaxKind) -> bool {
26813        kind == SyntaxKind::SET_WITHOUT_OIDS
26814    }
26815    #[inline]
26816    fn cast(syntax: SyntaxNode) -> Option<Self> {
26817        if Self::can_cast(syntax.kind()) {
26818            Some(Self { syntax })
26819        } else {
26820            None
26821        }
26822    }
26823    #[inline]
26824    fn syntax(&self) -> &SyntaxNode {
26825        &self.syntax
26826    }
26827}
26828impl AstNode for Show {
26829    #[inline]
26830    fn can_cast(kind: SyntaxKind) -> bool {
26831        kind == SyntaxKind::SHOW
26832    }
26833    #[inline]
26834    fn cast(syntax: SyntaxNode) -> Option<Self> {
26835        if Self::can_cast(syntax.kind()) {
26836            Some(Self { syntax })
26837        } else {
26838            None
26839        }
26840    }
26841    #[inline]
26842    fn syntax(&self) -> &SyntaxNode {
26843        &self.syntax
26844    }
26845}
26846impl AstNode for SimilarTo {
26847    #[inline]
26848    fn can_cast(kind: SyntaxKind) -> bool {
26849        kind == SyntaxKind::SIMILAR_TO
26850    }
26851    #[inline]
26852    fn cast(syntax: SyntaxNode) -> Option<Self> {
26853        if Self::can_cast(syntax.kind()) {
26854            Some(Self { syntax })
26855        } else {
26856            None
26857        }
26858    }
26859    #[inline]
26860    fn syntax(&self) -> &SyntaxNode {
26861        &self.syntax
26862    }
26863}
26864impl AstNode for SliceExpr {
26865    #[inline]
26866    fn can_cast(kind: SyntaxKind) -> bool {
26867        kind == SyntaxKind::SLICE_EXPR
26868    }
26869    #[inline]
26870    fn cast(syntax: SyntaxNode) -> Option<Self> {
26871        if Self::can_cast(syntax.kind()) {
26872            Some(Self { syntax })
26873        } else {
26874            None
26875        }
26876    }
26877    #[inline]
26878    fn syntax(&self) -> &SyntaxNode {
26879        &self.syntax
26880    }
26881}
26882impl AstNode for SomeFn {
26883    #[inline]
26884    fn can_cast(kind: SyntaxKind) -> bool {
26885        kind == SyntaxKind::SOME_FN
26886    }
26887    #[inline]
26888    fn cast(syntax: SyntaxNode) -> Option<Self> {
26889        if Self::can_cast(syntax.kind()) {
26890            Some(Self { syntax })
26891        } else {
26892            None
26893        }
26894    }
26895    #[inline]
26896    fn syntax(&self) -> &SyntaxNode {
26897        &self.syntax
26898    }
26899}
26900impl AstNode for SortAsc {
26901    #[inline]
26902    fn can_cast(kind: SyntaxKind) -> bool {
26903        kind == SyntaxKind::SORT_ASC
26904    }
26905    #[inline]
26906    fn cast(syntax: SyntaxNode) -> Option<Self> {
26907        if Self::can_cast(syntax.kind()) {
26908            Some(Self { syntax })
26909        } else {
26910            None
26911        }
26912    }
26913    #[inline]
26914    fn syntax(&self) -> &SyntaxNode {
26915        &self.syntax
26916    }
26917}
26918impl AstNode for SortBy {
26919    #[inline]
26920    fn can_cast(kind: SyntaxKind) -> bool {
26921        kind == SyntaxKind::SORT_BY
26922    }
26923    #[inline]
26924    fn cast(syntax: SyntaxNode) -> Option<Self> {
26925        if Self::can_cast(syntax.kind()) {
26926            Some(Self { syntax })
26927        } else {
26928            None
26929        }
26930    }
26931    #[inline]
26932    fn syntax(&self) -> &SyntaxNode {
26933        &self.syntax
26934    }
26935}
26936impl AstNode for SortByList {
26937    #[inline]
26938    fn can_cast(kind: SyntaxKind) -> bool {
26939        kind == SyntaxKind::SORT_BY_LIST
26940    }
26941    #[inline]
26942    fn cast(syntax: SyntaxNode) -> Option<Self> {
26943        if Self::can_cast(syntax.kind()) {
26944            Some(Self { syntax })
26945        } else {
26946            None
26947        }
26948    }
26949    #[inline]
26950    fn syntax(&self) -> &SyntaxNode {
26951        &self.syntax
26952    }
26953}
26954impl AstNode for SortDesc {
26955    #[inline]
26956    fn can_cast(kind: SyntaxKind) -> bool {
26957        kind == SyntaxKind::SORT_DESC
26958    }
26959    #[inline]
26960    fn cast(syntax: SyntaxNode) -> Option<Self> {
26961        if Self::can_cast(syntax.kind()) {
26962            Some(Self { syntax })
26963        } else {
26964            None
26965        }
26966    }
26967    #[inline]
26968    fn syntax(&self) -> &SyntaxNode {
26969        &self.syntax
26970    }
26971}
26972impl AstNode for SortUsing {
26973    #[inline]
26974    fn can_cast(kind: SyntaxKind) -> bool {
26975        kind == SyntaxKind::SORT_USING
26976    }
26977    #[inline]
26978    fn cast(syntax: SyntaxNode) -> Option<Self> {
26979        if Self::can_cast(syntax.kind()) {
26980            Some(Self { syntax })
26981        } else {
26982            None
26983        }
26984    }
26985    #[inline]
26986    fn syntax(&self) -> &SyntaxNode {
26987        &self.syntax
26988    }
26989}
26990impl AstNode for SourceFile {
26991    #[inline]
26992    fn can_cast(kind: SyntaxKind) -> bool {
26993        kind == SyntaxKind::SOURCE_FILE
26994    }
26995    #[inline]
26996    fn cast(syntax: SyntaxNode) -> Option<Self> {
26997        if Self::can_cast(syntax.kind()) {
26998            Some(Self { syntax })
26999        } else {
27000            None
27001        }
27002    }
27003    #[inline]
27004    fn syntax(&self) -> &SyntaxNode {
27005        &self.syntax
27006    }
27007}
27008impl AstNode for SplitPartition {
27009    #[inline]
27010    fn can_cast(kind: SyntaxKind) -> bool {
27011        kind == SyntaxKind::SPLIT_PARTITION
27012    }
27013    #[inline]
27014    fn cast(syntax: SyntaxNode) -> Option<Self> {
27015        if Self::can_cast(syntax.kind()) {
27016            Some(Self { syntax })
27017        } else {
27018            None
27019        }
27020    }
27021    #[inline]
27022    fn syntax(&self) -> &SyntaxNode {
27023        &self.syntax
27024    }
27025}
27026impl AstNode for Storage {
27027    #[inline]
27028    fn can_cast(kind: SyntaxKind) -> bool {
27029        kind == SyntaxKind::STORAGE
27030    }
27031    #[inline]
27032    fn cast(syntax: SyntaxNode) -> Option<Self> {
27033        if Self::can_cast(syntax.kind()) {
27034            Some(Self { syntax })
27035        } else {
27036            None
27037        }
27038    }
27039    #[inline]
27040    fn syntax(&self) -> &SyntaxNode {
27041        &self.syntax
27042    }
27043}
27044impl AstNode for StrictFuncOption {
27045    #[inline]
27046    fn can_cast(kind: SyntaxKind) -> bool {
27047        kind == SyntaxKind::STRICT_FUNC_OPTION
27048    }
27049    #[inline]
27050    fn cast(syntax: SyntaxNode) -> Option<Self> {
27051        if Self::can_cast(syntax.kind()) {
27052            Some(Self { syntax })
27053        } else {
27054            None
27055        }
27056    }
27057    #[inline]
27058    fn syntax(&self) -> &SyntaxNode {
27059        &self.syntax
27060    }
27061}
27062impl AstNode for SubstringFn {
27063    #[inline]
27064    fn can_cast(kind: SyntaxKind) -> bool {
27065        kind == SyntaxKind::SUBSTRING_FN
27066    }
27067    #[inline]
27068    fn cast(syntax: SyntaxNode) -> Option<Self> {
27069        if Self::can_cast(syntax.kind()) {
27070            Some(Self { syntax })
27071        } else {
27072            None
27073        }
27074    }
27075    #[inline]
27076    fn syntax(&self) -> &SyntaxNode {
27077        &self.syntax
27078    }
27079}
27080impl AstNode for SupportFuncOption {
27081    #[inline]
27082    fn can_cast(kind: SyntaxKind) -> bool {
27083        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27084    }
27085    #[inline]
27086    fn cast(syntax: SyntaxNode) -> Option<Self> {
27087        if Self::can_cast(syntax.kind()) {
27088            Some(Self { syntax })
27089        } else {
27090            None
27091        }
27092    }
27093    #[inline]
27094    fn syntax(&self) -> &SyntaxNode {
27095        &self.syntax
27096    }
27097}
27098impl AstNode for Table {
27099    #[inline]
27100    fn can_cast(kind: SyntaxKind) -> bool {
27101        kind == SyntaxKind::TABLE
27102    }
27103    #[inline]
27104    fn cast(syntax: SyntaxNode) -> Option<Self> {
27105        if Self::can_cast(syntax.kind()) {
27106            Some(Self { syntax })
27107        } else {
27108            None
27109        }
27110    }
27111    #[inline]
27112    fn syntax(&self) -> &SyntaxNode {
27113        &self.syntax
27114    }
27115}
27116impl AstNode for TableAndColumns {
27117    #[inline]
27118    fn can_cast(kind: SyntaxKind) -> bool {
27119        kind == SyntaxKind::TABLE_AND_COLUMNS
27120    }
27121    #[inline]
27122    fn cast(syntax: SyntaxNode) -> Option<Self> {
27123        if Self::can_cast(syntax.kind()) {
27124            Some(Self { syntax })
27125        } else {
27126            None
27127        }
27128    }
27129    #[inline]
27130    fn syntax(&self) -> &SyntaxNode {
27131        &self.syntax
27132    }
27133}
27134impl AstNode for TableAndColumnsList {
27135    #[inline]
27136    fn can_cast(kind: SyntaxKind) -> bool {
27137        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27138    }
27139    #[inline]
27140    fn cast(syntax: SyntaxNode) -> Option<Self> {
27141        if Self::can_cast(syntax.kind()) {
27142            Some(Self { syntax })
27143        } else {
27144            None
27145        }
27146    }
27147    #[inline]
27148    fn syntax(&self) -> &SyntaxNode {
27149        &self.syntax
27150    }
27151}
27152impl AstNode for TableArgList {
27153    #[inline]
27154    fn can_cast(kind: SyntaxKind) -> bool {
27155        kind == SyntaxKind::TABLE_ARG_LIST
27156    }
27157    #[inline]
27158    fn cast(syntax: SyntaxNode) -> Option<Self> {
27159        if Self::can_cast(syntax.kind()) {
27160            Some(Self { syntax })
27161        } else {
27162            None
27163        }
27164    }
27165    #[inline]
27166    fn syntax(&self) -> &SyntaxNode {
27167        &self.syntax
27168    }
27169}
27170impl AstNode for TableList {
27171    #[inline]
27172    fn can_cast(kind: SyntaxKind) -> bool {
27173        kind == SyntaxKind::TABLE_LIST
27174    }
27175    #[inline]
27176    fn cast(syntax: SyntaxNode) -> Option<Self> {
27177        if Self::can_cast(syntax.kind()) {
27178            Some(Self { syntax })
27179        } else {
27180            None
27181        }
27182    }
27183    #[inline]
27184    fn syntax(&self) -> &SyntaxNode {
27185        &self.syntax
27186    }
27187}
27188impl AstNode for TablesampleClause {
27189    #[inline]
27190    fn can_cast(kind: SyntaxKind) -> bool {
27191        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27192    }
27193    #[inline]
27194    fn cast(syntax: SyntaxNode) -> Option<Self> {
27195        if Self::can_cast(syntax.kind()) {
27196            Some(Self { syntax })
27197        } else {
27198            None
27199        }
27200    }
27201    #[inline]
27202    fn syntax(&self) -> &SyntaxNode {
27203        &self.syntax
27204    }
27205}
27206impl AstNode for Tablespace {
27207    #[inline]
27208    fn can_cast(kind: SyntaxKind) -> bool {
27209        kind == SyntaxKind::TABLESPACE
27210    }
27211    #[inline]
27212    fn cast(syntax: SyntaxNode) -> Option<Self> {
27213        if Self::can_cast(syntax.kind()) {
27214            Some(Self { syntax })
27215        } else {
27216            None
27217        }
27218    }
27219    #[inline]
27220    fn syntax(&self) -> &SyntaxNode {
27221        &self.syntax
27222    }
27223}
27224impl AstNode for Target {
27225    #[inline]
27226    fn can_cast(kind: SyntaxKind) -> bool {
27227        kind == SyntaxKind::TARGET
27228    }
27229    #[inline]
27230    fn cast(syntax: SyntaxNode) -> Option<Self> {
27231        if Self::can_cast(syntax.kind()) {
27232            Some(Self { syntax })
27233        } else {
27234            None
27235        }
27236    }
27237    #[inline]
27238    fn syntax(&self) -> &SyntaxNode {
27239        &self.syntax
27240    }
27241}
27242impl AstNode for TargetList {
27243    #[inline]
27244    fn can_cast(kind: SyntaxKind) -> bool {
27245        kind == SyntaxKind::TARGET_LIST
27246    }
27247    #[inline]
27248    fn cast(syntax: SyntaxNode) -> Option<Self> {
27249        if Self::can_cast(syntax.kind()) {
27250            Some(Self { syntax })
27251        } else {
27252            None
27253        }
27254    }
27255    #[inline]
27256    fn syntax(&self) -> &SyntaxNode {
27257        &self.syntax
27258    }
27259}
27260impl AstNode for TimeType {
27261    #[inline]
27262    fn can_cast(kind: SyntaxKind) -> bool {
27263        kind == SyntaxKind::TIME_TYPE
27264    }
27265    #[inline]
27266    fn cast(syntax: SyntaxNode) -> Option<Self> {
27267        if Self::can_cast(syntax.kind()) {
27268            Some(Self { syntax })
27269        } else {
27270            None
27271        }
27272    }
27273    #[inline]
27274    fn syntax(&self) -> &SyntaxNode {
27275        &self.syntax
27276    }
27277}
27278impl AstNode for Timing {
27279    #[inline]
27280    fn can_cast(kind: SyntaxKind) -> bool {
27281        kind == SyntaxKind::TIMING
27282    }
27283    #[inline]
27284    fn cast(syntax: SyntaxNode) -> Option<Self> {
27285        if Self::can_cast(syntax.kind()) {
27286            Some(Self { syntax })
27287        } else {
27288            None
27289        }
27290    }
27291    #[inline]
27292    fn syntax(&self) -> &SyntaxNode {
27293        &self.syntax
27294    }
27295}
27296impl AstNode for TransactionModeList {
27297    #[inline]
27298    fn can_cast(kind: SyntaxKind) -> bool {
27299        kind == SyntaxKind::TRANSACTION_MODE_LIST
27300    }
27301    #[inline]
27302    fn cast(syntax: SyntaxNode) -> Option<Self> {
27303        if Self::can_cast(syntax.kind()) {
27304            Some(Self { syntax })
27305        } else {
27306            None
27307        }
27308    }
27309    #[inline]
27310    fn syntax(&self) -> &SyntaxNode {
27311        &self.syntax
27312    }
27313}
27314impl AstNode for TransformFromFunc {
27315    #[inline]
27316    fn can_cast(kind: SyntaxKind) -> bool {
27317        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27318    }
27319    #[inline]
27320    fn cast(syntax: SyntaxNode) -> Option<Self> {
27321        if Self::can_cast(syntax.kind()) {
27322            Some(Self { syntax })
27323        } else {
27324            None
27325        }
27326    }
27327    #[inline]
27328    fn syntax(&self) -> &SyntaxNode {
27329        &self.syntax
27330    }
27331}
27332impl AstNode for TransformFuncOption {
27333    #[inline]
27334    fn can_cast(kind: SyntaxKind) -> bool {
27335        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27336    }
27337    #[inline]
27338    fn cast(syntax: SyntaxNode) -> Option<Self> {
27339        if Self::can_cast(syntax.kind()) {
27340            Some(Self { syntax })
27341        } else {
27342            None
27343        }
27344    }
27345    #[inline]
27346    fn syntax(&self) -> &SyntaxNode {
27347        &self.syntax
27348    }
27349}
27350impl AstNode for TransformToFunc {
27351    #[inline]
27352    fn can_cast(kind: SyntaxKind) -> bool {
27353        kind == SyntaxKind::TRANSFORM_TO_FUNC
27354    }
27355    #[inline]
27356    fn cast(syntax: SyntaxNode) -> Option<Self> {
27357        if Self::can_cast(syntax.kind()) {
27358            Some(Self { syntax })
27359        } else {
27360            None
27361        }
27362    }
27363    #[inline]
27364    fn syntax(&self) -> &SyntaxNode {
27365        &self.syntax
27366    }
27367}
27368impl AstNode for TriggerEvent {
27369    #[inline]
27370    fn can_cast(kind: SyntaxKind) -> bool {
27371        kind == SyntaxKind::TRIGGER_EVENT
27372    }
27373    #[inline]
27374    fn cast(syntax: SyntaxNode) -> Option<Self> {
27375        if Self::can_cast(syntax.kind()) {
27376            Some(Self { syntax })
27377        } else {
27378            None
27379        }
27380    }
27381    #[inline]
27382    fn syntax(&self) -> &SyntaxNode {
27383        &self.syntax
27384    }
27385}
27386impl AstNode for TriggerEventList {
27387    #[inline]
27388    fn can_cast(kind: SyntaxKind) -> bool {
27389        kind == SyntaxKind::TRIGGER_EVENT_LIST
27390    }
27391    #[inline]
27392    fn cast(syntax: SyntaxNode) -> Option<Self> {
27393        if Self::can_cast(syntax.kind()) {
27394            Some(Self { syntax })
27395        } else {
27396            None
27397        }
27398    }
27399    #[inline]
27400    fn syntax(&self) -> &SyntaxNode {
27401        &self.syntax
27402    }
27403}
27404impl AstNode for TriggerEventUpdate {
27405    #[inline]
27406    fn can_cast(kind: SyntaxKind) -> bool {
27407        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27408    }
27409    #[inline]
27410    fn cast(syntax: SyntaxNode) -> Option<Self> {
27411        if Self::can_cast(syntax.kind()) {
27412            Some(Self { syntax })
27413        } else {
27414            None
27415        }
27416    }
27417    #[inline]
27418    fn syntax(&self) -> &SyntaxNode {
27419        &self.syntax
27420    }
27421}
27422impl AstNode for TrimFn {
27423    #[inline]
27424    fn can_cast(kind: SyntaxKind) -> bool {
27425        kind == SyntaxKind::TRIM_FN
27426    }
27427    #[inline]
27428    fn cast(syntax: SyntaxNode) -> Option<Self> {
27429        if Self::can_cast(syntax.kind()) {
27430            Some(Self { syntax })
27431        } else {
27432            None
27433        }
27434    }
27435    #[inline]
27436    fn syntax(&self) -> &SyntaxNode {
27437        &self.syntax
27438    }
27439}
27440impl AstNode for Truncate {
27441    #[inline]
27442    fn can_cast(kind: SyntaxKind) -> bool {
27443        kind == SyntaxKind::TRUNCATE
27444    }
27445    #[inline]
27446    fn cast(syntax: SyntaxNode) -> Option<Self> {
27447        if Self::can_cast(syntax.kind()) {
27448            Some(Self { syntax })
27449        } else {
27450            None
27451        }
27452    }
27453    #[inline]
27454    fn syntax(&self) -> &SyntaxNode {
27455        &self.syntax
27456    }
27457}
27458impl AstNode for TupleExpr {
27459    #[inline]
27460    fn can_cast(kind: SyntaxKind) -> bool {
27461        kind == SyntaxKind::TUPLE_EXPR
27462    }
27463    #[inline]
27464    fn cast(syntax: SyntaxNode) -> Option<Self> {
27465        if Self::can_cast(syntax.kind()) {
27466            Some(Self { syntax })
27467        } else {
27468            None
27469        }
27470    }
27471    #[inline]
27472    fn syntax(&self) -> &SyntaxNode {
27473        &self.syntax
27474    }
27475}
27476impl AstNode for UnicodeNormalForm {
27477    #[inline]
27478    fn can_cast(kind: SyntaxKind) -> bool {
27479        kind == SyntaxKind::UNICODE_NORMAL_FORM
27480    }
27481    #[inline]
27482    fn cast(syntax: SyntaxNode) -> Option<Self> {
27483        if Self::can_cast(syntax.kind()) {
27484            Some(Self { syntax })
27485        } else {
27486            None
27487        }
27488    }
27489    #[inline]
27490    fn syntax(&self) -> &SyntaxNode {
27491        &self.syntax
27492    }
27493}
27494impl AstNode for UniqueConstraint {
27495    #[inline]
27496    fn can_cast(kind: SyntaxKind) -> bool {
27497        kind == SyntaxKind::UNIQUE_CONSTRAINT
27498    }
27499    #[inline]
27500    fn cast(syntax: SyntaxNode) -> Option<Self> {
27501        if Self::can_cast(syntax.kind()) {
27502            Some(Self { syntax })
27503        } else {
27504            None
27505        }
27506    }
27507    #[inline]
27508    fn syntax(&self) -> &SyntaxNode {
27509        &self.syntax
27510    }
27511}
27512impl AstNode for Unlisten {
27513    #[inline]
27514    fn can_cast(kind: SyntaxKind) -> bool {
27515        kind == SyntaxKind::UNLISTEN
27516    }
27517    #[inline]
27518    fn cast(syntax: SyntaxNode) -> Option<Self> {
27519        if Self::can_cast(syntax.kind()) {
27520            Some(Self { syntax })
27521        } else {
27522            None
27523        }
27524    }
27525    #[inline]
27526    fn syntax(&self) -> &SyntaxNode {
27527        &self.syntax
27528    }
27529}
27530impl AstNode for Update {
27531    #[inline]
27532    fn can_cast(kind: SyntaxKind) -> bool {
27533        kind == SyntaxKind::UPDATE
27534    }
27535    #[inline]
27536    fn cast(syntax: SyntaxNode) -> Option<Self> {
27537        if Self::can_cast(syntax.kind()) {
27538            Some(Self { syntax })
27539        } else {
27540            None
27541        }
27542    }
27543    #[inline]
27544    fn syntax(&self) -> &SyntaxNode {
27545        &self.syntax
27546    }
27547}
27548impl AstNode for UsingClause {
27549    #[inline]
27550    fn can_cast(kind: SyntaxKind) -> bool {
27551        kind == SyntaxKind::USING_CLAUSE
27552    }
27553    #[inline]
27554    fn cast(syntax: SyntaxNode) -> Option<Self> {
27555        if Self::can_cast(syntax.kind()) {
27556            Some(Self { syntax })
27557        } else {
27558            None
27559        }
27560    }
27561    #[inline]
27562    fn syntax(&self) -> &SyntaxNode {
27563        &self.syntax
27564    }
27565}
27566impl AstNode for UsingIndex {
27567    #[inline]
27568    fn can_cast(kind: SyntaxKind) -> bool {
27569        kind == SyntaxKind::USING_INDEX
27570    }
27571    #[inline]
27572    fn cast(syntax: SyntaxNode) -> Option<Self> {
27573        if Self::can_cast(syntax.kind()) {
27574            Some(Self { syntax })
27575        } else {
27576            None
27577        }
27578    }
27579    #[inline]
27580    fn syntax(&self) -> &SyntaxNode {
27581        &self.syntax
27582    }
27583}
27584impl AstNode for UsingMethod {
27585    #[inline]
27586    fn can_cast(kind: SyntaxKind) -> bool {
27587        kind == SyntaxKind::USING_METHOD
27588    }
27589    #[inline]
27590    fn cast(syntax: SyntaxNode) -> Option<Self> {
27591        if Self::can_cast(syntax.kind()) {
27592            Some(Self { syntax })
27593        } else {
27594            None
27595        }
27596    }
27597    #[inline]
27598    fn syntax(&self) -> &SyntaxNode {
27599        &self.syntax
27600    }
27601}
27602impl AstNode for UsingOnClause {
27603    #[inline]
27604    fn can_cast(kind: SyntaxKind) -> bool {
27605        kind == SyntaxKind::USING_ON_CLAUSE
27606    }
27607    #[inline]
27608    fn cast(syntax: SyntaxNode) -> Option<Self> {
27609        if Self::can_cast(syntax.kind()) {
27610            Some(Self { syntax })
27611        } else {
27612            None
27613        }
27614    }
27615    #[inline]
27616    fn syntax(&self) -> &SyntaxNode {
27617        &self.syntax
27618    }
27619}
27620impl AstNode for Vacuum {
27621    #[inline]
27622    fn can_cast(kind: SyntaxKind) -> bool {
27623        kind == SyntaxKind::VACUUM
27624    }
27625    #[inline]
27626    fn cast(syntax: SyntaxNode) -> Option<Self> {
27627        if Self::can_cast(syntax.kind()) {
27628            Some(Self { syntax })
27629        } else {
27630            None
27631        }
27632    }
27633    #[inline]
27634    fn syntax(&self) -> &SyntaxNode {
27635        &self.syntax
27636    }
27637}
27638impl AstNode for VacuumOption {
27639    #[inline]
27640    fn can_cast(kind: SyntaxKind) -> bool {
27641        kind == SyntaxKind::VACUUM_OPTION
27642    }
27643    #[inline]
27644    fn cast(syntax: SyntaxNode) -> Option<Self> {
27645        if Self::can_cast(syntax.kind()) {
27646            Some(Self { syntax })
27647        } else {
27648            None
27649        }
27650    }
27651    #[inline]
27652    fn syntax(&self) -> &SyntaxNode {
27653        &self.syntax
27654    }
27655}
27656impl AstNode for VacuumOptionList {
27657    #[inline]
27658    fn can_cast(kind: SyntaxKind) -> bool {
27659        kind == SyntaxKind::VACUUM_OPTION_LIST
27660    }
27661    #[inline]
27662    fn cast(syntax: SyntaxNode) -> Option<Self> {
27663        if Self::can_cast(syntax.kind()) {
27664            Some(Self { syntax })
27665        } else {
27666            None
27667        }
27668    }
27669    #[inline]
27670    fn syntax(&self) -> &SyntaxNode {
27671        &self.syntax
27672    }
27673}
27674impl AstNode for ValidateConstraint {
27675    #[inline]
27676    fn can_cast(kind: SyntaxKind) -> bool {
27677        kind == SyntaxKind::VALIDATE_CONSTRAINT
27678    }
27679    #[inline]
27680    fn cast(syntax: SyntaxNode) -> Option<Self> {
27681        if Self::can_cast(syntax.kind()) {
27682            Some(Self { syntax })
27683        } else {
27684            None
27685        }
27686    }
27687    #[inline]
27688    fn syntax(&self) -> &SyntaxNode {
27689        &self.syntax
27690    }
27691}
27692impl AstNode for Values {
27693    #[inline]
27694    fn can_cast(kind: SyntaxKind) -> bool {
27695        kind == SyntaxKind::VALUES
27696    }
27697    #[inline]
27698    fn cast(syntax: SyntaxNode) -> Option<Self> {
27699        if Self::can_cast(syntax.kind()) {
27700            Some(Self { syntax })
27701        } else {
27702            None
27703        }
27704    }
27705    #[inline]
27706    fn syntax(&self) -> &SyntaxNode {
27707        &self.syntax
27708    }
27709}
27710impl AstNode for Variant {
27711    #[inline]
27712    fn can_cast(kind: SyntaxKind) -> bool {
27713        kind == SyntaxKind::VARIANT
27714    }
27715    #[inline]
27716    fn cast(syntax: SyntaxNode) -> Option<Self> {
27717        if Self::can_cast(syntax.kind()) {
27718            Some(Self { syntax })
27719        } else {
27720            None
27721        }
27722    }
27723    #[inline]
27724    fn syntax(&self) -> &SyntaxNode {
27725        &self.syntax
27726    }
27727}
27728impl AstNode for VariantList {
27729    #[inline]
27730    fn can_cast(kind: SyntaxKind) -> bool {
27731        kind == SyntaxKind::VARIANT_LIST
27732    }
27733    #[inline]
27734    fn cast(syntax: SyntaxNode) -> Option<Self> {
27735        if Self::can_cast(syntax.kind()) {
27736            Some(Self { syntax })
27737        } else {
27738            None
27739        }
27740    }
27741    #[inline]
27742    fn syntax(&self) -> &SyntaxNode {
27743        &self.syntax
27744    }
27745}
27746impl AstNode for VolatilityFuncOption {
27747    #[inline]
27748    fn can_cast(kind: SyntaxKind) -> bool {
27749        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27750    }
27751    #[inline]
27752    fn cast(syntax: SyntaxNode) -> Option<Self> {
27753        if Self::can_cast(syntax.kind()) {
27754            Some(Self { syntax })
27755        } else {
27756            None
27757        }
27758    }
27759    #[inline]
27760    fn syntax(&self) -> &SyntaxNode {
27761        &self.syntax
27762    }
27763}
27764impl AstNode for WhenClause {
27765    #[inline]
27766    fn can_cast(kind: SyntaxKind) -> bool {
27767        kind == SyntaxKind::WHEN_CLAUSE
27768    }
27769    #[inline]
27770    fn cast(syntax: SyntaxNode) -> Option<Self> {
27771        if Self::can_cast(syntax.kind()) {
27772            Some(Self { syntax })
27773        } else {
27774            None
27775        }
27776    }
27777    #[inline]
27778    fn syntax(&self) -> &SyntaxNode {
27779        &self.syntax
27780    }
27781}
27782impl AstNode for WhenClauseList {
27783    #[inline]
27784    fn can_cast(kind: SyntaxKind) -> bool {
27785        kind == SyntaxKind::WHEN_CLAUSE_LIST
27786    }
27787    #[inline]
27788    fn cast(syntax: SyntaxNode) -> Option<Self> {
27789        if Self::can_cast(syntax.kind()) {
27790            Some(Self { syntax })
27791        } else {
27792            None
27793        }
27794    }
27795    #[inline]
27796    fn syntax(&self) -> &SyntaxNode {
27797        &self.syntax
27798    }
27799}
27800impl AstNode for WhenCondition {
27801    #[inline]
27802    fn can_cast(kind: SyntaxKind) -> bool {
27803        kind == SyntaxKind::WHEN_CONDITION
27804    }
27805    #[inline]
27806    fn cast(syntax: SyntaxNode) -> Option<Self> {
27807        if Self::can_cast(syntax.kind()) {
27808            Some(Self { syntax })
27809        } else {
27810            None
27811        }
27812    }
27813    #[inline]
27814    fn syntax(&self) -> &SyntaxNode {
27815        &self.syntax
27816    }
27817}
27818impl AstNode for WhereClause {
27819    #[inline]
27820    fn can_cast(kind: SyntaxKind) -> bool {
27821        kind == SyntaxKind::WHERE_CLAUSE
27822    }
27823    #[inline]
27824    fn cast(syntax: SyntaxNode) -> Option<Self> {
27825        if Self::can_cast(syntax.kind()) {
27826            Some(Self { syntax })
27827        } else {
27828            None
27829        }
27830    }
27831    #[inline]
27832    fn syntax(&self) -> &SyntaxNode {
27833        &self.syntax
27834    }
27835}
27836impl AstNode for WhereConditionClause {
27837    #[inline]
27838    fn can_cast(kind: SyntaxKind) -> bool {
27839        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
27840    }
27841    #[inline]
27842    fn cast(syntax: SyntaxNode) -> Option<Self> {
27843        if Self::can_cast(syntax.kind()) {
27844            Some(Self { syntax })
27845        } else {
27846            None
27847        }
27848    }
27849    #[inline]
27850    fn syntax(&self) -> &SyntaxNode {
27851        &self.syntax
27852    }
27853}
27854impl AstNode for WhereCurrentOf {
27855    #[inline]
27856    fn can_cast(kind: SyntaxKind) -> bool {
27857        kind == SyntaxKind::WHERE_CURRENT_OF
27858    }
27859    #[inline]
27860    fn cast(syntax: SyntaxNode) -> Option<Self> {
27861        if Self::can_cast(syntax.kind()) {
27862            Some(Self { syntax })
27863        } else {
27864            None
27865        }
27866    }
27867    #[inline]
27868    fn syntax(&self) -> &SyntaxNode {
27869        &self.syntax
27870    }
27871}
27872impl AstNode for WindowClause {
27873    #[inline]
27874    fn can_cast(kind: SyntaxKind) -> bool {
27875        kind == SyntaxKind::WINDOW_CLAUSE
27876    }
27877    #[inline]
27878    fn cast(syntax: SyntaxNode) -> Option<Self> {
27879        if Self::can_cast(syntax.kind()) {
27880            Some(Self { syntax })
27881        } else {
27882            None
27883        }
27884    }
27885    #[inline]
27886    fn syntax(&self) -> &SyntaxNode {
27887        &self.syntax
27888    }
27889}
27890impl AstNode for WindowDef {
27891    #[inline]
27892    fn can_cast(kind: SyntaxKind) -> bool {
27893        kind == SyntaxKind::WINDOW_DEF
27894    }
27895    #[inline]
27896    fn cast(syntax: SyntaxNode) -> Option<Self> {
27897        if Self::can_cast(syntax.kind()) {
27898            Some(Self { syntax })
27899        } else {
27900            None
27901        }
27902    }
27903    #[inline]
27904    fn syntax(&self) -> &SyntaxNode {
27905        &self.syntax
27906    }
27907}
27908impl AstNode for WindowFuncOption {
27909    #[inline]
27910    fn can_cast(kind: SyntaxKind) -> bool {
27911        kind == SyntaxKind::WINDOW_FUNC_OPTION
27912    }
27913    #[inline]
27914    fn cast(syntax: SyntaxNode) -> Option<Self> {
27915        if Self::can_cast(syntax.kind()) {
27916            Some(Self { syntax })
27917        } else {
27918            None
27919        }
27920    }
27921    #[inline]
27922    fn syntax(&self) -> &SyntaxNode {
27923        &self.syntax
27924    }
27925}
27926impl AstNode for WindowSpec {
27927    #[inline]
27928    fn can_cast(kind: SyntaxKind) -> bool {
27929        kind == SyntaxKind::WINDOW_SPEC
27930    }
27931    #[inline]
27932    fn cast(syntax: SyntaxNode) -> Option<Self> {
27933        if Self::can_cast(syntax.kind()) {
27934            Some(Self { syntax })
27935        } else {
27936            None
27937        }
27938    }
27939    #[inline]
27940    fn syntax(&self) -> &SyntaxNode {
27941        &self.syntax
27942    }
27943}
27944impl AstNode for WithClause {
27945    #[inline]
27946    fn can_cast(kind: SyntaxKind) -> bool {
27947        kind == SyntaxKind::WITH_CLAUSE
27948    }
27949    #[inline]
27950    fn cast(syntax: SyntaxNode) -> Option<Self> {
27951        if Self::can_cast(syntax.kind()) {
27952            Some(Self { syntax })
27953        } else {
27954            None
27955        }
27956    }
27957    #[inline]
27958    fn syntax(&self) -> &SyntaxNode {
27959        &self.syntax
27960    }
27961}
27962impl AstNode for WithData {
27963    #[inline]
27964    fn can_cast(kind: SyntaxKind) -> bool {
27965        kind == SyntaxKind::WITH_DATA
27966    }
27967    #[inline]
27968    fn cast(syntax: SyntaxNode) -> Option<Self> {
27969        if Self::can_cast(syntax.kind()) {
27970            Some(Self { syntax })
27971        } else {
27972            None
27973        }
27974    }
27975    #[inline]
27976    fn syntax(&self) -> &SyntaxNode {
27977        &self.syntax
27978    }
27979}
27980impl AstNode for WithNoData {
27981    #[inline]
27982    fn can_cast(kind: SyntaxKind) -> bool {
27983        kind == SyntaxKind::WITH_NO_DATA
27984    }
27985    #[inline]
27986    fn cast(syntax: SyntaxNode) -> Option<Self> {
27987        if Self::can_cast(syntax.kind()) {
27988            Some(Self { syntax })
27989        } else {
27990            None
27991        }
27992    }
27993    #[inline]
27994    fn syntax(&self) -> &SyntaxNode {
27995        &self.syntax
27996    }
27997}
27998impl AstNode for WithOptions {
27999    #[inline]
28000    fn can_cast(kind: SyntaxKind) -> bool {
28001        kind == SyntaxKind::WITH_OPTIONS
28002    }
28003    #[inline]
28004    fn cast(syntax: SyntaxNode) -> Option<Self> {
28005        if Self::can_cast(syntax.kind()) {
28006            Some(Self { syntax })
28007        } else {
28008            None
28009        }
28010    }
28011    #[inline]
28012    fn syntax(&self) -> &SyntaxNode {
28013        &self.syntax
28014    }
28015}
28016impl AstNode for WithParams {
28017    #[inline]
28018    fn can_cast(kind: SyntaxKind) -> bool {
28019        kind == SyntaxKind::WITH_PARAMS
28020    }
28021    #[inline]
28022    fn cast(syntax: SyntaxNode) -> Option<Self> {
28023        if Self::can_cast(syntax.kind()) {
28024            Some(Self { syntax })
28025        } else {
28026            None
28027        }
28028    }
28029    #[inline]
28030    fn syntax(&self) -> &SyntaxNode {
28031        &self.syntax
28032    }
28033}
28034impl AstNode for WithTable {
28035    #[inline]
28036    fn can_cast(kind: SyntaxKind) -> bool {
28037        kind == SyntaxKind::WITH_TABLE
28038    }
28039    #[inline]
28040    fn cast(syntax: SyntaxNode) -> Option<Self> {
28041        if Self::can_cast(syntax.kind()) {
28042            Some(Self { syntax })
28043        } else {
28044            None
28045        }
28046    }
28047    #[inline]
28048    fn syntax(&self) -> &SyntaxNode {
28049        &self.syntax
28050    }
28051}
28052impl AstNode for WithTimezone {
28053    #[inline]
28054    fn can_cast(kind: SyntaxKind) -> bool {
28055        kind == SyntaxKind::WITH_TIMEZONE
28056    }
28057    #[inline]
28058    fn cast(syntax: SyntaxNode) -> Option<Self> {
28059        if Self::can_cast(syntax.kind()) {
28060            Some(Self { syntax })
28061        } else {
28062            None
28063        }
28064    }
28065    #[inline]
28066    fn syntax(&self) -> &SyntaxNode {
28067        &self.syntax
28068    }
28069}
28070impl AstNode for WithinClause {
28071    #[inline]
28072    fn can_cast(kind: SyntaxKind) -> bool {
28073        kind == SyntaxKind::WITHIN_CLAUSE
28074    }
28075    #[inline]
28076    fn cast(syntax: SyntaxNode) -> Option<Self> {
28077        if Self::can_cast(syntax.kind()) {
28078            Some(Self { syntax })
28079        } else {
28080            None
28081        }
28082    }
28083    #[inline]
28084    fn syntax(&self) -> &SyntaxNode {
28085        &self.syntax
28086    }
28087}
28088impl AstNode for WithoutOids {
28089    #[inline]
28090    fn can_cast(kind: SyntaxKind) -> bool {
28091        kind == SyntaxKind::WITHOUT_OIDS
28092    }
28093    #[inline]
28094    fn cast(syntax: SyntaxNode) -> Option<Self> {
28095        if Self::can_cast(syntax.kind()) {
28096            Some(Self { syntax })
28097        } else {
28098            None
28099        }
28100    }
28101    #[inline]
28102    fn syntax(&self) -> &SyntaxNode {
28103        &self.syntax
28104    }
28105}
28106impl AstNode for WithoutTimezone {
28107    #[inline]
28108    fn can_cast(kind: SyntaxKind) -> bool {
28109        kind == SyntaxKind::WITHOUT_TIMEZONE
28110    }
28111    #[inline]
28112    fn cast(syntax: SyntaxNode) -> Option<Self> {
28113        if Self::can_cast(syntax.kind()) {
28114            Some(Self { syntax })
28115        } else {
28116            None
28117        }
28118    }
28119    #[inline]
28120    fn syntax(&self) -> &SyntaxNode {
28121        &self.syntax
28122    }
28123}
28124impl AstNode for XmlAttributeList {
28125    #[inline]
28126    fn can_cast(kind: SyntaxKind) -> bool {
28127        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28128    }
28129    #[inline]
28130    fn cast(syntax: SyntaxNode) -> Option<Self> {
28131        if Self::can_cast(syntax.kind()) {
28132            Some(Self { syntax })
28133        } else {
28134            None
28135        }
28136    }
28137    #[inline]
28138    fn syntax(&self) -> &SyntaxNode {
28139        &self.syntax
28140    }
28141}
28142impl AstNode for XmlColumnOption {
28143    #[inline]
28144    fn can_cast(kind: SyntaxKind) -> bool {
28145        kind == SyntaxKind::XML_COLUMN_OPTION
28146    }
28147    #[inline]
28148    fn cast(syntax: SyntaxNode) -> Option<Self> {
28149        if Self::can_cast(syntax.kind()) {
28150            Some(Self { syntax })
28151        } else {
28152            None
28153        }
28154    }
28155    #[inline]
28156    fn syntax(&self) -> &SyntaxNode {
28157        &self.syntax
28158    }
28159}
28160impl AstNode for XmlColumnOptionList {
28161    #[inline]
28162    fn can_cast(kind: SyntaxKind) -> bool {
28163        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28164    }
28165    #[inline]
28166    fn cast(syntax: SyntaxNode) -> Option<Self> {
28167        if Self::can_cast(syntax.kind()) {
28168            Some(Self { syntax })
28169        } else {
28170            None
28171        }
28172    }
28173    #[inline]
28174    fn syntax(&self) -> &SyntaxNode {
28175        &self.syntax
28176    }
28177}
28178impl AstNode for XmlElementFn {
28179    #[inline]
28180    fn can_cast(kind: SyntaxKind) -> bool {
28181        kind == SyntaxKind::XML_ELEMENT_FN
28182    }
28183    #[inline]
28184    fn cast(syntax: SyntaxNode) -> Option<Self> {
28185        if Self::can_cast(syntax.kind()) {
28186            Some(Self { syntax })
28187        } else {
28188            None
28189        }
28190    }
28191    #[inline]
28192    fn syntax(&self) -> &SyntaxNode {
28193        &self.syntax
28194    }
28195}
28196impl AstNode for XmlExistsFn {
28197    #[inline]
28198    fn can_cast(kind: SyntaxKind) -> bool {
28199        kind == SyntaxKind::XML_EXISTS_FN
28200    }
28201    #[inline]
28202    fn cast(syntax: SyntaxNode) -> Option<Self> {
28203        if Self::can_cast(syntax.kind()) {
28204            Some(Self { syntax })
28205        } else {
28206            None
28207        }
28208    }
28209    #[inline]
28210    fn syntax(&self) -> &SyntaxNode {
28211        &self.syntax
28212    }
28213}
28214impl AstNode for XmlForestFn {
28215    #[inline]
28216    fn can_cast(kind: SyntaxKind) -> bool {
28217        kind == SyntaxKind::XML_FOREST_FN
28218    }
28219    #[inline]
28220    fn cast(syntax: SyntaxNode) -> Option<Self> {
28221        if Self::can_cast(syntax.kind()) {
28222            Some(Self { syntax })
28223        } else {
28224            None
28225        }
28226    }
28227    #[inline]
28228    fn syntax(&self) -> &SyntaxNode {
28229        &self.syntax
28230    }
28231}
28232impl AstNode for XmlNamespace {
28233    #[inline]
28234    fn can_cast(kind: SyntaxKind) -> bool {
28235        kind == SyntaxKind::XML_NAMESPACE
28236    }
28237    #[inline]
28238    fn cast(syntax: SyntaxNode) -> Option<Self> {
28239        if Self::can_cast(syntax.kind()) {
28240            Some(Self { syntax })
28241        } else {
28242            None
28243        }
28244    }
28245    #[inline]
28246    fn syntax(&self) -> &SyntaxNode {
28247        &self.syntax
28248    }
28249}
28250impl AstNode for XmlNamespaceList {
28251    #[inline]
28252    fn can_cast(kind: SyntaxKind) -> bool {
28253        kind == SyntaxKind::XML_NAMESPACE_LIST
28254    }
28255    #[inline]
28256    fn cast(syntax: SyntaxNode) -> Option<Self> {
28257        if Self::can_cast(syntax.kind()) {
28258            Some(Self { syntax })
28259        } else {
28260            None
28261        }
28262    }
28263    #[inline]
28264    fn syntax(&self) -> &SyntaxNode {
28265        &self.syntax
28266    }
28267}
28268impl AstNode for XmlParseFn {
28269    #[inline]
28270    fn can_cast(kind: SyntaxKind) -> bool {
28271        kind == SyntaxKind::XML_PARSE_FN
28272    }
28273    #[inline]
28274    fn cast(syntax: SyntaxNode) -> Option<Self> {
28275        if Self::can_cast(syntax.kind()) {
28276            Some(Self { syntax })
28277        } else {
28278            None
28279        }
28280    }
28281    #[inline]
28282    fn syntax(&self) -> &SyntaxNode {
28283        &self.syntax
28284    }
28285}
28286impl AstNode for XmlPassingMech {
28287    #[inline]
28288    fn can_cast(kind: SyntaxKind) -> bool {
28289        kind == SyntaxKind::XML_PASSING_MECH
28290    }
28291    #[inline]
28292    fn cast(syntax: SyntaxNode) -> Option<Self> {
28293        if Self::can_cast(syntax.kind()) {
28294            Some(Self { syntax })
28295        } else {
28296            None
28297        }
28298    }
28299    #[inline]
28300    fn syntax(&self) -> &SyntaxNode {
28301        &self.syntax
28302    }
28303}
28304impl AstNode for XmlPiFn {
28305    #[inline]
28306    fn can_cast(kind: SyntaxKind) -> bool {
28307        kind == SyntaxKind::XML_PI_FN
28308    }
28309    #[inline]
28310    fn cast(syntax: SyntaxNode) -> Option<Self> {
28311        if Self::can_cast(syntax.kind()) {
28312            Some(Self { syntax })
28313        } else {
28314            None
28315        }
28316    }
28317    #[inline]
28318    fn syntax(&self) -> &SyntaxNode {
28319        &self.syntax
28320    }
28321}
28322impl AstNode for XmlRootFn {
28323    #[inline]
28324    fn can_cast(kind: SyntaxKind) -> bool {
28325        kind == SyntaxKind::XML_ROOT_FN
28326    }
28327    #[inline]
28328    fn cast(syntax: SyntaxNode) -> Option<Self> {
28329        if Self::can_cast(syntax.kind()) {
28330            Some(Self { syntax })
28331        } else {
28332            None
28333        }
28334    }
28335    #[inline]
28336    fn syntax(&self) -> &SyntaxNode {
28337        &self.syntax
28338    }
28339}
28340impl AstNode for XmlRowPassingClause {
28341    #[inline]
28342    fn can_cast(kind: SyntaxKind) -> bool {
28343        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28344    }
28345    #[inline]
28346    fn cast(syntax: SyntaxNode) -> Option<Self> {
28347        if Self::can_cast(syntax.kind()) {
28348            Some(Self { syntax })
28349        } else {
28350            None
28351        }
28352    }
28353    #[inline]
28354    fn syntax(&self) -> &SyntaxNode {
28355        &self.syntax
28356    }
28357}
28358impl AstNode for XmlSerializeFn {
28359    #[inline]
28360    fn can_cast(kind: SyntaxKind) -> bool {
28361        kind == SyntaxKind::XML_SERIALIZE_FN
28362    }
28363    #[inline]
28364    fn cast(syntax: SyntaxNode) -> Option<Self> {
28365        if Self::can_cast(syntax.kind()) {
28366            Some(Self { syntax })
28367        } else {
28368            None
28369        }
28370    }
28371    #[inline]
28372    fn syntax(&self) -> &SyntaxNode {
28373        &self.syntax
28374    }
28375}
28376impl AstNode for XmlTable {
28377    #[inline]
28378    fn can_cast(kind: SyntaxKind) -> bool {
28379        kind == SyntaxKind::XML_TABLE
28380    }
28381    #[inline]
28382    fn cast(syntax: SyntaxNode) -> Option<Self> {
28383        if Self::can_cast(syntax.kind()) {
28384            Some(Self { syntax })
28385        } else {
28386            None
28387        }
28388    }
28389    #[inline]
28390    fn syntax(&self) -> &SyntaxNode {
28391        &self.syntax
28392    }
28393}
28394impl AstNode for XmlTableColumn {
28395    #[inline]
28396    fn can_cast(kind: SyntaxKind) -> bool {
28397        kind == SyntaxKind::XML_TABLE_COLUMN
28398    }
28399    #[inline]
28400    fn cast(syntax: SyntaxNode) -> Option<Self> {
28401        if Self::can_cast(syntax.kind()) {
28402            Some(Self { syntax })
28403        } else {
28404            None
28405        }
28406    }
28407    #[inline]
28408    fn syntax(&self) -> &SyntaxNode {
28409        &self.syntax
28410    }
28411}
28412impl AstNode for XmlTableColumnList {
28413    #[inline]
28414    fn can_cast(kind: SyntaxKind) -> bool {
28415        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28416    }
28417    #[inline]
28418    fn cast(syntax: SyntaxNode) -> Option<Self> {
28419        if Self::can_cast(syntax.kind()) {
28420            Some(Self { syntax })
28421        } else {
28422            None
28423        }
28424    }
28425    #[inline]
28426    fn syntax(&self) -> &SyntaxNode {
28427        &self.syntax
28428    }
28429}
28430impl AstNode for AlterColumnOption {
28431    #[inline]
28432    fn can_cast(kind: SyntaxKind) -> bool {
28433        matches!(
28434            kind,
28435            SyntaxKind::ADD_GENERATED
28436                | SyntaxKind::DROP_DEFAULT
28437                | SyntaxKind::DROP_EXPRESSION
28438                | SyntaxKind::DROP_IDENTITY
28439                | SyntaxKind::DROP_NOT_NULL
28440                | SyntaxKind::RESET_OPTIONS
28441                | SyntaxKind::RESTART
28442                | SyntaxKind::SET_COMPRESSION
28443                | SyntaxKind::SET_DEFAULT
28444                | SyntaxKind::SET_EXPRESSION
28445                | SyntaxKind::SET_GENERATED
28446                | SyntaxKind::SET_GENERATED_OPTIONS
28447                | SyntaxKind::SET_NOT_NULL
28448                | SyntaxKind::SET_OPTIONS
28449                | SyntaxKind::SET_OPTIONS_LIST
28450                | SyntaxKind::SET_SEQUENCE_OPTION
28451                | SyntaxKind::SET_STATISTICS
28452                | SyntaxKind::SET_STORAGE
28453                | SyntaxKind::SET_TYPE
28454        )
28455    }
28456    #[inline]
28457    fn cast(syntax: SyntaxNode) -> Option<Self> {
28458        let res = match syntax.kind() {
28459            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28460            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28461            SyntaxKind::DROP_EXPRESSION => {
28462                AlterColumnOption::DropExpression(DropExpression { syntax })
28463            }
28464            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28465            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28466            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28467            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28468            SyntaxKind::SET_COMPRESSION => {
28469                AlterColumnOption::SetCompression(SetCompression { syntax })
28470            }
28471            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28472            SyntaxKind::SET_EXPRESSION => {
28473                AlterColumnOption::SetExpression(SetExpression { syntax })
28474            }
28475            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28476            SyntaxKind::SET_GENERATED_OPTIONS => {
28477                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28478            }
28479            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28480            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28481            SyntaxKind::SET_OPTIONS_LIST => {
28482                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28483            }
28484            SyntaxKind::SET_SEQUENCE_OPTION => {
28485                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28486            }
28487            SyntaxKind::SET_STATISTICS => {
28488                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28489            }
28490            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28491            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28492            _ => {
28493                return None;
28494            }
28495        };
28496        Some(res)
28497    }
28498    #[inline]
28499    fn syntax(&self) -> &SyntaxNode {
28500        match self {
28501            AlterColumnOption::AddGenerated(it) => &it.syntax,
28502            AlterColumnOption::DropDefault(it) => &it.syntax,
28503            AlterColumnOption::DropExpression(it) => &it.syntax,
28504            AlterColumnOption::DropIdentity(it) => &it.syntax,
28505            AlterColumnOption::DropNotNull(it) => &it.syntax,
28506            AlterColumnOption::ResetOptions(it) => &it.syntax,
28507            AlterColumnOption::Restart(it) => &it.syntax,
28508            AlterColumnOption::SetCompression(it) => &it.syntax,
28509            AlterColumnOption::SetDefault(it) => &it.syntax,
28510            AlterColumnOption::SetExpression(it) => &it.syntax,
28511            AlterColumnOption::SetGenerated(it) => &it.syntax,
28512            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28513            AlterColumnOption::SetNotNull(it) => &it.syntax,
28514            AlterColumnOption::SetOptions(it) => &it.syntax,
28515            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28516            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28517            AlterColumnOption::SetStatistics(it) => &it.syntax,
28518            AlterColumnOption::SetStorage(it) => &it.syntax,
28519            AlterColumnOption::SetType(it) => &it.syntax,
28520        }
28521    }
28522}
28523impl From<AddGenerated> for AlterColumnOption {
28524    #[inline]
28525    fn from(node: AddGenerated) -> AlterColumnOption {
28526        AlterColumnOption::AddGenerated(node)
28527    }
28528}
28529impl From<DropDefault> for AlterColumnOption {
28530    #[inline]
28531    fn from(node: DropDefault) -> AlterColumnOption {
28532        AlterColumnOption::DropDefault(node)
28533    }
28534}
28535impl From<DropExpression> for AlterColumnOption {
28536    #[inline]
28537    fn from(node: DropExpression) -> AlterColumnOption {
28538        AlterColumnOption::DropExpression(node)
28539    }
28540}
28541impl From<DropIdentity> for AlterColumnOption {
28542    #[inline]
28543    fn from(node: DropIdentity) -> AlterColumnOption {
28544        AlterColumnOption::DropIdentity(node)
28545    }
28546}
28547impl From<DropNotNull> for AlterColumnOption {
28548    #[inline]
28549    fn from(node: DropNotNull) -> AlterColumnOption {
28550        AlterColumnOption::DropNotNull(node)
28551    }
28552}
28553impl From<ResetOptions> for AlterColumnOption {
28554    #[inline]
28555    fn from(node: ResetOptions) -> AlterColumnOption {
28556        AlterColumnOption::ResetOptions(node)
28557    }
28558}
28559impl From<Restart> for AlterColumnOption {
28560    #[inline]
28561    fn from(node: Restart) -> AlterColumnOption {
28562        AlterColumnOption::Restart(node)
28563    }
28564}
28565impl From<SetCompression> for AlterColumnOption {
28566    #[inline]
28567    fn from(node: SetCompression) -> AlterColumnOption {
28568        AlterColumnOption::SetCompression(node)
28569    }
28570}
28571impl From<SetDefault> for AlterColumnOption {
28572    #[inline]
28573    fn from(node: SetDefault) -> AlterColumnOption {
28574        AlterColumnOption::SetDefault(node)
28575    }
28576}
28577impl From<SetExpression> for AlterColumnOption {
28578    #[inline]
28579    fn from(node: SetExpression) -> AlterColumnOption {
28580        AlterColumnOption::SetExpression(node)
28581    }
28582}
28583impl From<SetGenerated> for AlterColumnOption {
28584    #[inline]
28585    fn from(node: SetGenerated) -> AlterColumnOption {
28586        AlterColumnOption::SetGenerated(node)
28587    }
28588}
28589impl From<SetGeneratedOptions> for AlterColumnOption {
28590    #[inline]
28591    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28592        AlterColumnOption::SetGeneratedOptions(node)
28593    }
28594}
28595impl From<SetNotNull> for AlterColumnOption {
28596    #[inline]
28597    fn from(node: SetNotNull) -> AlterColumnOption {
28598        AlterColumnOption::SetNotNull(node)
28599    }
28600}
28601impl From<SetOptions> for AlterColumnOption {
28602    #[inline]
28603    fn from(node: SetOptions) -> AlterColumnOption {
28604        AlterColumnOption::SetOptions(node)
28605    }
28606}
28607impl From<SetOptionsList> for AlterColumnOption {
28608    #[inline]
28609    fn from(node: SetOptionsList) -> AlterColumnOption {
28610        AlterColumnOption::SetOptionsList(node)
28611    }
28612}
28613impl From<SetSequenceOption> for AlterColumnOption {
28614    #[inline]
28615    fn from(node: SetSequenceOption) -> AlterColumnOption {
28616        AlterColumnOption::SetSequenceOption(node)
28617    }
28618}
28619impl From<SetStatistics> for AlterColumnOption {
28620    #[inline]
28621    fn from(node: SetStatistics) -> AlterColumnOption {
28622        AlterColumnOption::SetStatistics(node)
28623    }
28624}
28625impl From<SetStorage> for AlterColumnOption {
28626    #[inline]
28627    fn from(node: SetStorage) -> AlterColumnOption {
28628        AlterColumnOption::SetStorage(node)
28629    }
28630}
28631impl From<SetType> for AlterColumnOption {
28632    #[inline]
28633    fn from(node: SetType) -> AlterColumnOption {
28634        AlterColumnOption::SetType(node)
28635    }
28636}
28637impl AstNode for AlterDomainAction {
28638    #[inline]
28639    fn can_cast(kind: SyntaxKind) -> bool {
28640        matches!(
28641            kind,
28642            SyntaxKind::ADD_CONSTRAINT
28643                | SyntaxKind::DROP_CONSTRAINT
28644                | SyntaxKind::DROP_DEFAULT
28645                | SyntaxKind::DROP_NOT_NULL
28646                | SyntaxKind::OWNER_TO
28647                | SyntaxKind::RENAME_CONSTRAINT
28648                | SyntaxKind::RENAME_TO
28649                | SyntaxKind::SET_DEFAULT
28650                | SyntaxKind::SET_NOT_NULL
28651                | SyntaxKind::SET_SCHEMA
28652                | SyntaxKind::VALIDATE_CONSTRAINT
28653        )
28654    }
28655    #[inline]
28656    fn cast(syntax: SyntaxNode) -> Option<Self> {
28657        let res = match syntax.kind() {
28658            SyntaxKind::ADD_CONSTRAINT => {
28659                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28660            }
28661            SyntaxKind::DROP_CONSTRAINT => {
28662                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28663            }
28664            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28665            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28666            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28667            SyntaxKind::RENAME_CONSTRAINT => {
28668                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28669            }
28670            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28671            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28672            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28673            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28674            SyntaxKind::VALIDATE_CONSTRAINT => {
28675                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28676            }
28677            _ => {
28678                return None;
28679            }
28680        };
28681        Some(res)
28682    }
28683    #[inline]
28684    fn syntax(&self) -> &SyntaxNode {
28685        match self {
28686            AlterDomainAction::AddConstraint(it) => &it.syntax,
28687            AlterDomainAction::DropConstraint(it) => &it.syntax,
28688            AlterDomainAction::DropDefault(it) => &it.syntax,
28689            AlterDomainAction::DropNotNull(it) => &it.syntax,
28690            AlterDomainAction::OwnerTo(it) => &it.syntax,
28691            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28692            AlterDomainAction::RenameTo(it) => &it.syntax,
28693            AlterDomainAction::SetDefault(it) => &it.syntax,
28694            AlterDomainAction::SetNotNull(it) => &it.syntax,
28695            AlterDomainAction::SetSchema(it) => &it.syntax,
28696            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28697        }
28698    }
28699}
28700impl From<AddConstraint> for AlterDomainAction {
28701    #[inline]
28702    fn from(node: AddConstraint) -> AlterDomainAction {
28703        AlterDomainAction::AddConstraint(node)
28704    }
28705}
28706impl From<DropConstraint> for AlterDomainAction {
28707    #[inline]
28708    fn from(node: DropConstraint) -> AlterDomainAction {
28709        AlterDomainAction::DropConstraint(node)
28710    }
28711}
28712impl From<DropDefault> for AlterDomainAction {
28713    #[inline]
28714    fn from(node: DropDefault) -> AlterDomainAction {
28715        AlterDomainAction::DropDefault(node)
28716    }
28717}
28718impl From<DropNotNull> for AlterDomainAction {
28719    #[inline]
28720    fn from(node: DropNotNull) -> AlterDomainAction {
28721        AlterDomainAction::DropNotNull(node)
28722    }
28723}
28724impl From<OwnerTo> for AlterDomainAction {
28725    #[inline]
28726    fn from(node: OwnerTo) -> AlterDomainAction {
28727        AlterDomainAction::OwnerTo(node)
28728    }
28729}
28730impl From<RenameConstraint> for AlterDomainAction {
28731    #[inline]
28732    fn from(node: RenameConstraint) -> AlterDomainAction {
28733        AlterDomainAction::RenameConstraint(node)
28734    }
28735}
28736impl From<RenameTo> for AlterDomainAction {
28737    #[inline]
28738    fn from(node: RenameTo) -> AlterDomainAction {
28739        AlterDomainAction::RenameTo(node)
28740    }
28741}
28742impl From<SetDefault> for AlterDomainAction {
28743    #[inline]
28744    fn from(node: SetDefault) -> AlterDomainAction {
28745        AlterDomainAction::SetDefault(node)
28746    }
28747}
28748impl From<SetNotNull> for AlterDomainAction {
28749    #[inline]
28750    fn from(node: SetNotNull) -> AlterDomainAction {
28751        AlterDomainAction::SetNotNull(node)
28752    }
28753}
28754impl From<SetSchema> for AlterDomainAction {
28755    #[inline]
28756    fn from(node: SetSchema) -> AlterDomainAction {
28757        AlterDomainAction::SetSchema(node)
28758    }
28759}
28760impl From<ValidateConstraint> for AlterDomainAction {
28761    #[inline]
28762    fn from(node: ValidateConstraint) -> AlterDomainAction {
28763        AlterDomainAction::ValidateConstraint(node)
28764    }
28765}
28766impl AstNode for AlterMaterializedViewAction {
28767    #[inline]
28768    fn can_cast(kind: SyntaxKind) -> bool {
28769        matches!(
28770            kind,
28771            SyntaxKind::DEPENDS_ON_EXTENSION
28772                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
28773                | SyntaxKind::RENAME_COLUMN
28774                | SyntaxKind::RENAME_TO
28775                | SyntaxKind::SET_SCHEMA
28776        )
28777    }
28778    #[inline]
28779    fn cast(syntax: SyntaxNode) -> Option<Self> {
28780        let res = match syntax.kind() {
28781            SyntaxKind::DEPENDS_ON_EXTENSION => {
28782                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
28783            }
28784            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
28785                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
28786            }
28787            SyntaxKind::RENAME_COLUMN => {
28788                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
28789            }
28790            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
28791            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
28792            _ => {
28793                if let Some(result) = AlterTableAction::cast(syntax) {
28794                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
28795                }
28796                return None;
28797            }
28798        };
28799        Some(res)
28800    }
28801    #[inline]
28802    fn syntax(&self) -> &SyntaxNode {
28803        match self {
28804            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
28805            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
28806            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
28807            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
28808            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
28809            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
28810        }
28811    }
28812}
28813impl From<DependsOnExtension> for AlterMaterializedViewAction {
28814    #[inline]
28815    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
28816        AlterMaterializedViewAction::DependsOnExtension(node)
28817    }
28818}
28819impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
28820    #[inline]
28821    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
28822        AlterMaterializedViewAction::NoDependsOnExtension(node)
28823    }
28824}
28825impl From<RenameColumn> for AlterMaterializedViewAction {
28826    #[inline]
28827    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
28828        AlterMaterializedViewAction::RenameColumn(node)
28829    }
28830}
28831impl From<RenameTo> for AlterMaterializedViewAction {
28832    #[inline]
28833    fn from(node: RenameTo) -> AlterMaterializedViewAction {
28834        AlterMaterializedViewAction::RenameTo(node)
28835    }
28836}
28837impl From<SetSchema> for AlterMaterializedViewAction {
28838    #[inline]
28839    fn from(node: SetSchema) -> AlterMaterializedViewAction {
28840        AlterMaterializedViewAction::SetSchema(node)
28841    }
28842}
28843impl AstNode for AlterTableAction {
28844    #[inline]
28845    fn can_cast(kind: SyntaxKind) -> bool {
28846        matches!(
28847            kind,
28848            SyntaxKind::ADD_COLUMN
28849                | SyntaxKind::ADD_CONSTRAINT
28850                | SyntaxKind::ALTER_COLUMN
28851                | SyntaxKind::ALTER_CONSTRAINT
28852                | SyntaxKind::ATTACH_PARTITION
28853                | SyntaxKind::CLUSTER_ON
28854                | SyntaxKind::DETACH_PARTITION
28855                | SyntaxKind::DISABLE_RLS
28856                | SyntaxKind::DISABLE_RULE
28857                | SyntaxKind::DISABLE_TRIGGER
28858                | SyntaxKind::DROP_COLUMN
28859                | SyntaxKind::DROP_CONSTRAINT
28860                | SyntaxKind::ENABLE_ALWAYS_RULE
28861                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
28862                | SyntaxKind::ENABLE_REPLICA_RULE
28863                | SyntaxKind::ENABLE_REPLICA_TRIGGER
28864                | SyntaxKind::ENABLE_RLS
28865                | SyntaxKind::ENABLE_RULE
28866                | SyntaxKind::ENABLE_TRIGGER
28867                | SyntaxKind::FORCE_RLS
28868                | SyntaxKind::INHERIT_TABLE
28869                | SyntaxKind::MERGE_PARTITIONS
28870                | SyntaxKind::NO_FORCE_RLS
28871                | SyntaxKind::NO_INHERIT_TABLE
28872                | SyntaxKind::NOT_OF
28873                | SyntaxKind::OF_TYPE
28874                | SyntaxKind::OPTION_ITEM_LIST
28875                | SyntaxKind::OWNER_TO
28876                | SyntaxKind::RENAME_COLUMN
28877                | SyntaxKind::RENAME_CONSTRAINT
28878                | SyntaxKind::RENAME_TO
28879                | SyntaxKind::REPLICA_IDENTITY
28880                | SyntaxKind::RESET_OPTIONS
28881                | SyntaxKind::SET_ACCESS_METHOD
28882                | SyntaxKind::SET_LOGGED
28883                | SyntaxKind::SET_OPTIONS
28884                | SyntaxKind::SET_SCHEMA
28885                | SyntaxKind::SET_TABLESPACE
28886                | SyntaxKind::SET_UNLOGGED
28887                | SyntaxKind::SET_WITHOUT_CLUSTER
28888                | SyntaxKind::SET_WITHOUT_OIDS
28889                | SyntaxKind::SPLIT_PARTITION
28890                | SyntaxKind::VALIDATE_CONSTRAINT
28891        )
28892    }
28893    #[inline]
28894    fn cast(syntax: SyntaxNode) -> Option<Self> {
28895        let res = match syntax.kind() {
28896            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
28897            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
28898            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
28899            SyntaxKind::ALTER_CONSTRAINT => {
28900                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
28901            }
28902            SyntaxKind::ATTACH_PARTITION => {
28903                AlterTableAction::AttachPartition(AttachPartition { syntax })
28904            }
28905            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
28906            SyntaxKind::DETACH_PARTITION => {
28907                AlterTableAction::DetachPartition(DetachPartition { syntax })
28908            }
28909            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
28910            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
28911            SyntaxKind::DISABLE_TRIGGER => {
28912                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
28913            }
28914            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
28915            SyntaxKind::DROP_CONSTRAINT => {
28916                AlterTableAction::DropConstraint(DropConstraint { syntax })
28917            }
28918            SyntaxKind::ENABLE_ALWAYS_RULE => {
28919                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
28920            }
28921            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
28922                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
28923            }
28924            SyntaxKind::ENABLE_REPLICA_RULE => {
28925                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
28926            }
28927            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
28928                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
28929            }
28930            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
28931            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
28932            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
28933            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
28934            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
28935            SyntaxKind::MERGE_PARTITIONS => {
28936                AlterTableAction::MergePartitions(MergePartitions { syntax })
28937            }
28938            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
28939            SyntaxKind::NO_INHERIT_TABLE => {
28940                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
28941            }
28942            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
28943            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
28944            SyntaxKind::OPTION_ITEM_LIST => {
28945                AlterTableAction::OptionItemList(OptionItemList { syntax })
28946            }
28947            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
28948            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
28949            SyntaxKind::RENAME_CONSTRAINT => {
28950                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
28951            }
28952            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
28953            SyntaxKind::REPLICA_IDENTITY => {
28954                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
28955            }
28956            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
28957            SyntaxKind::SET_ACCESS_METHOD => {
28958                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
28959            }
28960            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
28961            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
28962            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
28963            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
28964            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
28965            SyntaxKind::SET_WITHOUT_CLUSTER => {
28966                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
28967            }
28968            SyntaxKind::SET_WITHOUT_OIDS => {
28969                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
28970            }
28971            SyntaxKind::SPLIT_PARTITION => {
28972                AlterTableAction::SplitPartition(SplitPartition { syntax })
28973            }
28974            SyntaxKind::VALIDATE_CONSTRAINT => {
28975                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
28976            }
28977            _ => {
28978                return None;
28979            }
28980        };
28981        Some(res)
28982    }
28983    #[inline]
28984    fn syntax(&self) -> &SyntaxNode {
28985        match self {
28986            AlterTableAction::AddColumn(it) => &it.syntax,
28987            AlterTableAction::AddConstraint(it) => &it.syntax,
28988            AlterTableAction::AlterColumn(it) => &it.syntax,
28989            AlterTableAction::AlterConstraint(it) => &it.syntax,
28990            AlterTableAction::AttachPartition(it) => &it.syntax,
28991            AlterTableAction::ClusterOn(it) => &it.syntax,
28992            AlterTableAction::DetachPartition(it) => &it.syntax,
28993            AlterTableAction::DisableRls(it) => &it.syntax,
28994            AlterTableAction::DisableRule(it) => &it.syntax,
28995            AlterTableAction::DisableTrigger(it) => &it.syntax,
28996            AlterTableAction::DropColumn(it) => &it.syntax,
28997            AlterTableAction::DropConstraint(it) => &it.syntax,
28998            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
28999            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29000            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29001            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29002            AlterTableAction::EnableRls(it) => &it.syntax,
29003            AlterTableAction::EnableRule(it) => &it.syntax,
29004            AlterTableAction::EnableTrigger(it) => &it.syntax,
29005            AlterTableAction::ForceRls(it) => &it.syntax,
29006            AlterTableAction::InheritTable(it) => &it.syntax,
29007            AlterTableAction::MergePartitions(it) => &it.syntax,
29008            AlterTableAction::NoForceRls(it) => &it.syntax,
29009            AlterTableAction::NoInheritTable(it) => &it.syntax,
29010            AlterTableAction::NotOf(it) => &it.syntax,
29011            AlterTableAction::OfType(it) => &it.syntax,
29012            AlterTableAction::OptionItemList(it) => &it.syntax,
29013            AlterTableAction::OwnerTo(it) => &it.syntax,
29014            AlterTableAction::RenameColumn(it) => &it.syntax,
29015            AlterTableAction::RenameConstraint(it) => &it.syntax,
29016            AlterTableAction::RenameTo(it) => &it.syntax,
29017            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29018            AlterTableAction::ResetOptions(it) => &it.syntax,
29019            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29020            AlterTableAction::SetLogged(it) => &it.syntax,
29021            AlterTableAction::SetOptions(it) => &it.syntax,
29022            AlterTableAction::SetSchema(it) => &it.syntax,
29023            AlterTableAction::SetTablespace(it) => &it.syntax,
29024            AlterTableAction::SetUnlogged(it) => &it.syntax,
29025            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29026            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29027            AlterTableAction::SplitPartition(it) => &it.syntax,
29028            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29029        }
29030    }
29031}
29032impl From<AddColumn> for AlterTableAction {
29033    #[inline]
29034    fn from(node: AddColumn) -> AlterTableAction {
29035        AlterTableAction::AddColumn(node)
29036    }
29037}
29038impl From<AddConstraint> for AlterTableAction {
29039    #[inline]
29040    fn from(node: AddConstraint) -> AlterTableAction {
29041        AlterTableAction::AddConstraint(node)
29042    }
29043}
29044impl From<AlterColumn> for AlterTableAction {
29045    #[inline]
29046    fn from(node: AlterColumn) -> AlterTableAction {
29047        AlterTableAction::AlterColumn(node)
29048    }
29049}
29050impl From<AlterConstraint> for AlterTableAction {
29051    #[inline]
29052    fn from(node: AlterConstraint) -> AlterTableAction {
29053        AlterTableAction::AlterConstraint(node)
29054    }
29055}
29056impl From<AttachPartition> for AlterTableAction {
29057    #[inline]
29058    fn from(node: AttachPartition) -> AlterTableAction {
29059        AlterTableAction::AttachPartition(node)
29060    }
29061}
29062impl From<ClusterOn> for AlterTableAction {
29063    #[inline]
29064    fn from(node: ClusterOn) -> AlterTableAction {
29065        AlterTableAction::ClusterOn(node)
29066    }
29067}
29068impl From<DetachPartition> for AlterTableAction {
29069    #[inline]
29070    fn from(node: DetachPartition) -> AlterTableAction {
29071        AlterTableAction::DetachPartition(node)
29072    }
29073}
29074impl From<DisableRls> for AlterTableAction {
29075    #[inline]
29076    fn from(node: DisableRls) -> AlterTableAction {
29077        AlterTableAction::DisableRls(node)
29078    }
29079}
29080impl From<DisableRule> for AlterTableAction {
29081    #[inline]
29082    fn from(node: DisableRule) -> AlterTableAction {
29083        AlterTableAction::DisableRule(node)
29084    }
29085}
29086impl From<DisableTrigger> for AlterTableAction {
29087    #[inline]
29088    fn from(node: DisableTrigger) -> AlterTableAction {
29089        AlterTableAction::DisableTrigger(node)
29090    }
29091}
29092impl From<DropColumn> for AlterTableAction {
29093    #[inline]
29094    fn from(node: DropColumn) -> AlterTableAction {
29095        AlterTableAction::DropColumn(node)
29096    }
29097}
29098impl From<DropConstraint> for AlterTableAction {
29099    #[inline]
29100    fn from(node: DropConstraint) -> AlterTableAction {
29101        AlterTableAction::DropConstraint(node)
29102    }
29103}
29104impl From<EnableAlwaysRule> for AlterTableAction {
29105    #[inline]
29106    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29107        AlterTableAction::EnableAlwaysRule(node)
29108    }
29109}
29110impl From<EnableAlwaysTrigger> for AlterTableAction {
29111    #[inline]
29112    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29113        AlterTableAction::EnableAlwaysTrigger(node)
29114    }
29115}
29116impl From<EnableReplicaRule> for AlterTableAction {
29117    #[inline]
29118    fn from(node: EnableReplicaRule) -> AlterTableAction {
29119        AlterTableAction::EnableReplicaRule(node)
29120    }
29121}
29122impl From<EnableReplicaTrigger> for AlterTableAction {
29123    #[inline]
29124    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29125        AlterTableAction::EnableReplicaTrigger(node)
29126    }
29127}
29128impl From<EnableRls> for AlterTableAction {
29129    #[inline]
29130    fn from(node: EnableRls) -> AlterTableAction {
29131        AlterTableAction::EnableRls(node)
29132    }
29133}
29134impl From<EnableRule> for AlterTableAction {
29135    #[inline]
29136    fn from(node: EnableRule) -> AlterTableAction {
29137        AlterTableAction::EnableRule(node)
29138    }
29139}
29140impl From<EnableTrigger> for AlterTableAction {
29141    #[inline]
29142    fn from(node: EnableTrigger) -> AlterTableAction {
29143        AlterTableAction::EnableTrigger(node)
29144    }
29145}
29146impl From<ForceRls> for AlterTableAction {
29147    #[inline]
29148    fn from(node: ForceRls) -> AlterTableAction {
29149        AlterTableAction::ForceRls(node)
29150    }
29151}
29152impl From<InheritTable> for AlterTableAction {
29153    #[inline]
29154    fn from(node: InheritTable) -> AlterTableAction {
29155        AlterTableAction::InheritTable(node)
29156    }
29157}
29158impl From<MergePartitions> for AlterTableAction {
29159    #[inline]
29160    fn from(node: MergePartitions) -> AlterTableAction {
29161        AlterTableAction::MergePartitions(node)
29162    }
29163}
29164impl From<NoForceRls> for AlterTableAction {
29165    #[inline]
29166    fn from(node: NoForceRls) -> AlterTableAction {
29167        AlterTableAction::NoForceRls(node)
29168    }
29169}
29170impl From<NoInheritTable> for AlterTableAction {
29171    #[inline]
29172    fn from(node: NoInheritTable) -> AlterTableAction {
29173        AlterTableAction::NoInheritTable(node)
29174    }
29175}
29176impl From<NotOf> for AlterTableAction {
29177    #[inline]
29178    fn from(node: NotOf) -> AlterTableAction {
29179        AlterTableAction::NotOf(node)
29180    }
29181}
29182impl From<OfType> for AlterTableAction {
29183    #[inline]
29184    fn from(node: OfType) -> AlterTableAction {
29185        AlterTableAction::OfType(node)
29186    }
29187}
29188impl From<OptionItemList> for AlterTableAction {
29189    #[inline]
29190    fn from(node: OptionItemList) -> AlterTableAction {
29191        AlterTableAction::OptionItemList(node)
29192    }
29193}
29194impl From<OwnerTo> for AlterTableAction {
29195    #[inline]
29196    fn from(node: OwnerTo) -> AlterTableAction {
29197        AlterTableAction::OwnerTo(node)
29198    }
29199}
29200impl From<RenameColumn> for AlterTableAction {
29201    #[inline]
29202    fn from(node: RenameColumn) -> AlterTableAction {
29203        AlterTableAction::RenameColumn(node)
29204    }
29205}
29206impl From<RenameConstraint> for AlterTableAction {
29207    #[inline]
29208    fn from(node: RenameConstraint) -> AlterTableAction {
29209        AlterTableAction::RenameConstraint(node)
29210    }
29211}
29212impl From<RenameTo> for AlterTableAction {
29213    #[inline]
29214    fn from(node: RenameTo) -> AlterTableAction {
29215        AlterTableAction::RenameTo(node)
29216    }
29217}
29218impl From<ReplicaIdentity> for AlterTableAction {
29219    #[inline]
29220    fn from(node: ReplicaIdentity) -> AlterTableAction {
29221        AlterTableAction::ReplicaIdentity(node)
29222    }
29223}
29224impl From<ResetOptions> for AlterTableAction {
29225    #[inline]
29226    fn from(node: ResetOptions) -> AlterTableAction {
29227        AlterTableAction::ResetOptions(node)
29228    }
29229}
29230impl From<SetAccessMethod> for AlterTableAction {
29231    #[inline]
29232    fn from(node: SetAccessMethod) -> AlterTableAction {
29233        AlterTableAction::SetAccessMethod(node)
29234    }
29235}
29236impl From<SetLogged> for AlterTableAction {
29237    #[inline]
29238    fn from(node: SetLogged) -> AlterTableAction {
29239        AlterTableAction::SetLogged(node)
29240    }
29241}
29242impl From<SetOptions> for AlterTableAction {
29243    #[inline]
29244    fn from(node: SetOptions) -> AlterTableAction {
29245        AlterTableAction::SetOptions(node)
29246    }
29247}
29248impl From<SetSchema> for AlterTableAction {
29249    #[inline]
29250    fn from(node: SetSchema) -> AlterTableAction {
29251        AlterTableAction::SetSchema(node)
29252    }
29253}
29254impl From<SetTablespace> for AlterTableAction {
29255    #[inline]
29256    fn from(node: SetTablespace) -> AlterTableAction {
29257        AlterTableAction::SetTablespace(node)
29258    }
29259}
29260impl From<SetUnlogged> for AlterTableAction {
29261    #[inline]
29262    fn from(node: SetUnlogged) -> AlterTableAction {
29263        AlterTableAction::SetUnlogged(node)
29264    }
29265}
29266impl From<SetWithoutCluster> for AlterTableAction {
29267    #[inline]
29268    fn from(node: SetWithoutCluster) -> AlterTableAction {
29269        AlterTableAction::SetWithoutCluster(node)
29270    }
29271}
29272impl From<SetWithoutOids> for AlterTableAction {
29273    #[inline]
29274    fn from(node: SetWithoutOids) -> AlterTableAction {
29275        AlterTableAction::SetWithoutOids(node)
29276    }
29277}
29278impl From<SplitPartition> for AlterTableAction {
29279    #[inline]
29280    fn from(node: SplitPartition) -> AlterTableAction {
29281        AlterTableAction::SplitPartition(node)
29282    }
29283}
29284impl From<ValidateConstraint> for AlterTableAction {
29285    #[inline]
29286    fn from(node: ValidateConstraint) -> AlterTableAction {
29287        AlterTableAction::ValidateConstraint(node)
29288    }
29289}
29290impl AstNode for ColumnConstraint {
29291    #[inline]
29292    fn can_cast(kind: SyntaxKind) -> bool {
29293        matches!(
29294            kind,
29295            SyntaxKind::CHECK_CONSTRAINT
29296                | SyntaxKind::DEFAULT_CONSTRAINT
29297                | SyntaxKind::EXCLUDE_CONSTRAINT
29298                | SyntaxKind::NOT_NULL_CONSTRAINT
29299                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29300                | SyntaxKind::REFERENCES_CONSTRAINT
29301                | SyntaxKind::UNIQUE_CONSTRAINT
29302        )
29303    }
29304    #[inline]
29305    fn cast(syntax: SyntaxNode) -> Option<Self> {
29306        let res = match syntax.kind() {
29307            SyntaxKind::CHECK_CONSTRAINT => {
29308                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29309            }
29310            SyntaxKind::DEFAULT_CONSTRAINT => {
29311                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29312            }
29313            SyntaxKind::EXCLUDE_CONSTRAINT => {
29314                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29315            }
29316            SyntaxKind::NOT_NULL_CONSTRAINT => {
29317                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29318            }
29319            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29320                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29321            }
29322            SyntaxKind::REFERENCES_CONSTRAINT => {
29323                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29324            }
29325            SyntaxKind::UNIQUE_CONSTRAINT => {
29326                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29327            }
29328            _ => {
29329                return None;
29330            }
29331        };
29332        Some(res)
29333    }
29334    #[inline]
29335    fn syntax(&self) -> &SyntaxNode {
29336        match self {
29337            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29338            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29339            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29340            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29341            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29342            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29343            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29344        }
29345    }
29346}
29347impl From<CheckConstraint> for ColumnConstraint {
29348    #[inline]
29349    fn from(node: CheckConstraint) -> ColumnConstraint {
29350        ColumnConstraint::CheckConstraint(node)
29351    }
29352}
29353impl From<DefaultConstraint> for ColumnConstraint {
29354    #[inline]
29355    fn from(node: DefaultConstraint) -> ColumnConstraint {
29356        ColumnConstraint::DefaultConstraint(node)
29357    }
29358}
29359impl From<ExcludeConstraint> for ColumnConstraint {
29360    #[inline]
29361    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29362        ColumnConstraint::ExcludeConstraint(node)
29363    }
29364}
29365impl From<NotNullConstraint> for ColumnConstraint {
29366    #[inline]
29367    fn from(node: NotNullConstraint) -> ColumnConstraint {
29368        ColumnConstraint::NotNullConstraint(node)
29369    }
29370}
29371impl From<PrimaryKeyConstraint> for ColumnConstraint {
29372    #[inline]
29373    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29374        ColumnConstraint::PrimaryKeyConstraint(node)
29375    }
29376}
29377impl From<ReferencesConstraint> for ColumnConstraint {
29378    #[inline]
29379    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29380        ColumnConstraint::ReferencesConstraint(node)
29381    }
29382}
29383impl From<UniqueConstraint> for ColumnConstraint {
29384    #[inline]
29385    fn from(node: UniqueConstraint) -> ColumnConstraint {
29386        ColumnConstraint::UniqueConstraint(node)
29387    }
29388}
29389impl AstNode for ConfigValue {
29390    #[inline]
29391    fn can_cast(kind: SyntaxKind) -> bool {
29392        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
29393    }
29394    #[inline]
29395    fn cast(syntax: SyntaxNode) -> Option<Self> {
29396        let res = match syntax.kind() {
29397            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
29398            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
29399            _ => {
29400                return None;
29401            }
29402        };
29403        Some(res)
29404    }
29405    #[inline]
29406    fn syntax(&self) -> &SyntaxNode {
29407        match self {
29408            ConfigValue::Literal(it) => &it.syntax,
29409            ConfigValue::NameRef(it) => &it.syntax,
29410        }
29411    }
29412}
29413impl From<Literal> for ConfigValue {
29414    #[inline]
29415    fn from(node: Literal) -> ConfigValue {
29416        ConfigValue::Literal(node)
29417    }
29418}
29419impl From<NameRef> for ConfigValue {
29420    #[inline]
29421    fn from(node: NameRef) -> ConfigValue {
29422        ConfigValue::NameRef(node)
29423    }
29424}
29425impl AstNode for ConflictAction {
29426    #[inline]
29427    fn can_cast(kind: SyntaxKind) -> bool {
29428        matches!(
29429            kind,
29430            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
29431        )
29432    }
29433    #[inline]
29434    fn cast(syntax: SyntaxNode) -> Option<Self> {
29435        let res = match syntax.kind() {
29436            SyntaxKind::CONFLICT_DO_NOTHING => {
29437                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
29438            }
29439            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
29440                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
29441            }
29442            _ => {
29443                return None;
29444            }
29445        };
29446        Some(res)
29447    }
29448    #[inline]
29449    fn syntax(&self) -> &SyntaxNode {
29450        match self {
29451            ConflictAction::ConflictDoNothing(it) => &it.syntax,
29452            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
29453        }
29454    }
29455}
29456impl From<ConflictDoNothing> for ConflictAction {
29457    #[inline]
29458    fn from(node: ConflictDoNothing) -> ConflictAction {
29459        ConflictAction::ConflictDoNothing(node)
29460    }
29461}
29462impl From<ConflictDoUpdateSet> for ConflictAction {
29463    #[inline]
29464    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
29465        ConflictAction::ConflictDoUpdateSet(node)
29466    }
29467}
29468impl AstNode for ConflictTarget {
29469    #[inline]
29470    fn can_cast(kind: SyntaxKind) -> bool {
29471        matches!(
29472            kind,
29473            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
29474        )
29475    }
29476    #[inline]
29477    fn cast(syntax: SyntaxNode) -> Option<Self> {
29478        let res = match syntax.kind() {
29479            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
29480                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
29481            }
29482            SyntaxKind::CONFLICT_ON_INDEX => {
29483                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
29484            }
29485            _ => {
29486                return None;
29487            }
29488        };
29489        Some(res)
29490    }
29491    #[inline]
29492    fn syntax(&self) -> &SyntaxNode {
29493        match self {
29494            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
29495            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
29496        }
29497    }
29498}
29499impl From<ConflictOnConstraint> for ConflictTarget {
29500    #[inline]
29501    fn from(node: ConflictOnConstraint) -> ConflictTarget {
29502        ConflictTarget::ConflictOnConstraint(node)
29503    }
29504}
29505impl From<ConflictOnIndex> for ConflictTarget {
29506    #[inline]
29507    fn from(node: ConflictOnIndex) -> ConflictTarget {
29508        ConflictTarget::ConflictOnIndex(node)
29509    }
29510}
29511impl AstNode for Constraint {
29512    #[inline]
29513    fn can_cast(kind: SyntaxKind) -> bool {
29514        matches!(
29515            kind,
29516            SyntaxKind::CHECK_CONSTRAINT
29517                | SyntaxKind::DEFAULT_CONSTRAINT
29518                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
29519                | SyntaxKind::GENERATED_CONSTRAINT
29520                | SyntaxKind::NOT_NULL_CONSTRAINT
29521                | SyntaxKind::NULL_CONSTRAINT
29522                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29523                | SyntaxKind::REFERENCES_CONSTRAINT
29524                | SyntaxKind::UNIQUE_CONSTRAINT
29525        )
29526    }
29527    #[inline]
29528    fn cast(syntax: SyntaxNode) -> Option<Self> {
29529        let res = match syntax.kind() {
29530            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
29531            SyntaxKind::DEFAULT_CONSTRAINT => {
29532                Constraint::DefaultConstraint(DefaultConstraint { syntax })
29533            }
29534            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
29535                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
29536            }
29537            SyntaxKind::GENERATED_CONSTRAINT => {
29538                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
29539            }
29540            SyntaxKind::NOT_NULL_CONSTRAINT => {
29541                Constraint::NotNullConstraint(NotNullConstraint { syntax })
29542            }
29543            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
29544            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29545                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29546            }
29547            SyntaxKind::REFERENCES_CONSTRAINT => {
29548                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
29549            }
29550            SyntaxKind::UNIQUE_CONSTRAINT => {
29551                Constraint::UniqueConstraint(UniqueConstraint { syntax })
29552            }
29553            _ => {
29554                return None;
29555            }
29556        };
29557        Some(res)
29558    }
29559    #[inline]
29560    fn syntax(&self) -> &SyntaxNode {
29561        match self {
29562            Constraint::CheckConstraint(it) => &it.syntax,
29563            Constraint::DefaultConstraint(it) => &it.syntax,
29564            Constraint::ForeignKeyConstraint(it) => &it.syntax,
29565            Constraint::GeneratedConstraint(it) => &it.syntax,
29566            Constraint::NotNullConstraint(it) => &it.syntax,
29567            Constraint::NullConstraint(it) => &it.syntax,
29568            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
29569            Constraint::ReferencesConstraint(it) => &it.syntax,
29570            Constraint::UniqueConstraint(it) => &it.syntax,
29571        }
29572    }
29573}
29574impl From<CheckConstraint> for Constraint {
29575    #[inline]
29576    fn from(node: CheckConstraint) -> Constraint {
29577        Constraint::CheckConstraint(node)
29578    }
29579}
29580impl From<DefaultConstraint> for Constraint {
29581    #[inline]
29582    fn from(node: DefaultConstraint) -> Constraint {
29583        Constraint::DefaultConstraint(node)
29584    }
29585}
29586impl From<ForeignKeyConstraint> for Constraint {
29587    #[inline]
29588    fn from(node: ForeignKeyConstraint) -> Constraint {
29589        Constraint::ForeignKeyConstraint(node)
29590    }
29591}
29592impl From<GeneratedConstraint> for Constraint {
29593    #[inline]
29594    fn from(node: GeneratedConstraint) -> Constraint {
29595        Constraint::GeneratedConstraint(node)
29596    }
29597}
29598impl From<NotNullConstraint> for Constraint {
29599    #[inline]
29600    fn from(node: NotNullConstraint) -> Constraint {
29601        Constraint::NotNullConstraint(node)
29602    }
29603}
29604impl From<NullConstraint> for Constraint {
29605    #[inline]
29606    fn from(node: NullConstraint) -> Constraint {
29607        Constraint::NullConstraint(node)
29608    }
29609}
29610impl From<PrimaryKeyConstraint> for Constraint {
29611    #[inline]
29612    fn from(node: PrimaryKeyConstraint) -> Constraint {
29613        Constraint::PrimaryKeyConstraint(node)
29614    }
29615}
29616impl From<ReferencesConstraint> for Constraint {
29617    #[inline]
29618    fn from(node: ReferencesConstraint) -> Constraint {
29619        Constraint::ReferencesConstraint(node)
29620    }
29621}
29622impl From<UniqueConstraint> for Constraint {
29623    #[inline]
29624    fn from(node: UniqueConstraint) -> Constraint {
29625        Constraint::UniqueConstraint(node)
29626    }
29627}
29628impl AstNode for ExplainStmt {
29629    #[inline]
29630    fn can_cast(kind: SyntaxKind) -> bool {
29631        matches!(
29632            kind,
29633            SyntaxKind::COMPOUND_SELECT
29634                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29635                | SyntaxKind::CREATE_TABLE_AS
29636                | SyntaxKind::DECLARE
29637                | SyntaxKind::DELETE
29638                | SyntaxKind::EXECUTE
29639                | SyntaxKind::INSERT
29640                | SyntaxKind::MERGE
29641                | SyntaxKind::PAREN_SELECT
29642                | SyntaxKind::SELECT
29643                | SyntaxKind::SELECT_INTO
29644                | SyntaxKind::TABLE
29645                | SyntaxKind::UPDATE
29646                | SyntaxKind::VALUES
29647        )
29648    }
29649    #[inline]
29650    fn cast(syntax: SyntaxNode) -> Option<Self> {
29651        let res = match syntax.kind() {
29652            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
29653            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
29654                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
29655            }
29656            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
29657            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
29658            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
29659            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
29660            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
29661            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
29662            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
29663            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
29664            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
29665            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
29666            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
29667            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
29668            _ => {
29669                return None;
29670            }
29671        };
29672        Some(res)
29673    }
29674    #[inline]
29675    fn syntax(&self) -> &SyntaxNode {
29676        match self {
29677            ExplainStmt::CompoundSelect(it) => &it.syntax,
29678            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
29679            ExplainStmt::CreateTableAs(it) => &it.syntax,
29680            ExplainStmt::Declare(it) => &it.syntax,
29681            ExplainStmt::Delete(it) => &it.syntax,
29682            ExplainStmt::Execute(it) => &it.syntax,
29683            ExplainStmt::Insert(it) => &it.syntax,
29684            ExplainStmt::Merge(it) => &it.syntax,
29685            ExplainStmt::ParenSelect(it) => &it.syntax,
29686            ExplainStmt::Select(it) => &it.syntax,
29687            ExplainStmt::SelectInto(it) => &it.syntax,
29688            ExplainStmt::Table(it) => &it.syntax,
29689            ExplainStmt::Update(it) => &it.syntax,
29690            ExplainStmt::Values(it) => &it.syntax,
29691        }
29692    }
29693}
29694impl From<CompoundSelect> for ExplainStmt {
29695    #[inline]
29696    fn from(node: CompoundSelect) -> ExplainStmt {
29697        ExplainStmt::CompoundSelect(node)
29698    }
29699}
29700impl From<CreateMaterializedView> for ExplainStmt {
29701    #[inline]
29702    fn from(node: CreateMaterializedView) -> ExplainStmt {
29703        ExplainStmt::CreateMaterializedView(node)
29704    }
29705}
29706impl From<CreateTableAs> for ExplainStmt {
29707    #[inline]
29708    fn from(node: CreateTableAs) -> ExplainStmt {
29709        ExplainStmt::CreateTableAs(node)
29710    }
29711}
29712impl From<Declare> for ExplainStmt {
29713    #[inline]
29714    fn from(node: Declare) -> ExplainStmt {
29715        ExplainStmt::Declare(node)
29716    }
29717}
29718impl From<Delete> for ExplainStmt {
29719    #[inline]
29720    fn from(node: Delete) -> ExplainStmt {
29721        ExplainStmt::Delete(node)
29722    }
29723}
29724impl From<Execute> for ExplainStmt {
29725    #[inline]
29726    fn from(node: Execute) -> ExplainStmt {
29727        ExplainStmt::Execute(node)
29728    }
29729}
29730impl From<Insert> for ExplainStmt {
29731    #[inline]
29732    fn from(node: Insert) -> ExplainStmt {
29733        ExplainStmt::Insert(node)
29734    }
29735}
29736impl From<Merge> for ExplainStmt {
29737    #[inline]
29738    fn from(node: Merge) -> ExplainStmt {
29739        ExplainStmt::Merge(node)
29740    }
29741}
29742impl From<ParenSelect> for ExplainStmt {
29743    #[inline]
29744    fn from(node: ParenSelect) -> ExplainStmt {
29745        ExplainStmt::ParenSelect(node)
29746    }
29747}
29748impl From<Select> for ExplainStmt {
29749    #[inline]
29750    fn from(node: Select) -> ExplainStmt {
29751        ExplainStmt::Select(node)
29752    }
29753}
29754impl From<SelectInto> for ExplainStmt {
29755    #[inline]
29756    fn from(node: SelectInto) -> ExplainStmt {
29757        ExplainStmt::SelectInto(node)
29758    }
29759}
29760impl From<Table> for ExplainStmt {
29761    #[inline]
29762    fn from(node: Table) -> ExplainStmt {
29763        ExplainStmt::Table(node)
29764    }
29765}
29766impl From<Update> for ExplainStmt {
29767    #[inline]
29768    fn from(node: Update) -> ExplainStmt {
29769        ExplainStmt::Update(node)
29770    }
29771}
29772impl From<Values> for ExplainStmt {
29773    #[inline]
29774    fn from(node: Values) -> ExplainStmt {
29775        ExplainStmt::Values(node)
29776    }
29777}
29778impl AstNode for Expr {
29779    #[inline]
29780    fn can_cast(kind: SyntaxKind) -> bool {
29781        matches!(
29782            kind,
29783            SyntaxKind::ARRAY_EXPR
29784                | SyntaxKind::BETWEEN_EXPR
29785                | SyntaxKind::BIN_EXPR
29786                | SyntaxKind::CALL_EXPR
29787                | SyntaxKind::CASE_EXPR
29788                | SyntaxKind::CAST_EXPR
29789                | SyntaxKind::FIELD_EXPR
29790                | SyntaxKind::INDEX_EXPR
29791                | SyntaxKind::LITERAL
29792                | SyntaxKind::NAME_REF
29793                | SyntaxKind::PAREN_EXPR
29794                | SyntaxKind::POSTFIX_EXPR
29795                | SyntaxKind::PREFIX_EXPR
29796                | SyntaxKind::SLICE_EXPR
29797                | SyntaxKind::TUPLE_EXPR
29798        )
29799    }
29800    #[inline]
29801    fn cast(syntax: SyntaxNode) -> Option<Self> {
29802        let res = match syntax.kind() {
29803            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
29804            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
29805            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
29806            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
29807            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
29808            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
29809            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
29810            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
29811            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
29812            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
29813            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
29814            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
29815            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
29816            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
29817            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
29818            _ => {
29819                return None;
29820            }
29821        };
29822        Some(res)
29823    }
29824    #[inline]
29825    fn syntax(&self) -> &SyntaxNode {
29826        match self {
29827            Expr::ArrayExpr(it) => &it.syntax,
29828            Expr::BetweenExpr(it) => &it.syntax,
29829            Expr::BinExpr(it) => &it.syntax,
29830            Expr::CallExpr(it) => &it.syntax,
29831            Expr::CaseExpr(it) => &it.syntax,
29832            Expr::CastExpr(it) => &it.syntax,
29833            Expr::FieldExpr(it) => &it.syntax,
29834            Expr::IndexExpr(it) => &it.syntax,
29835            Expr::Literal(it) => &it.syntax,
29836            Expr::NameRef(it) => &it.syntax,
29837            Expr::ParenExpr(it) => &it.syntax,
29838            Expr::PostfixExpr(it) => &it.syntax,
29839            Expr::PrefixExpr(it) => &it.syntax,
29840            Expr::SliceExpr(it) => &it.syntax,
29841            Expr::TupleExpr(it) => &it.syntax,
29842        }
29843    }
29844}
29845impl From<ArrayExpr> for Expr {
29846    #[inline]
29847    fn from(node: ArrayExpr) -> Expr {
29848        Expr::ArrayExpr(node)
29849    }
29850}
29851impl From<BetweenExpr> for Expr {
29852    #[inline]
29853    fn from(node: BetweenExpr) -> Expr {
29854        Expr::BetweenExpr(node)
29855    }
29856}
29857impl From<BinExpr> for Expr {
29858    #[inline]
29859    fn from(node: BinExpr) -> Expr {
29860        Expr::BinExpr(node)
29861    }
29862}
29863impl From<CallExpr> for Expr {
29864    #[inline]
29865    fn from(node: CallExpr) -> Expr {
29866        Expr::CallExpr(node)
29867    }
29868}
29869impl From<CaseExpr> for Expr {
29870    #[inline]
29871    fn from(node: CaseExpr) -> Expr {
29872        Expr::CaseExpr(node)
29873    }
29874}
29875impl From<CastExpr> for Expr {
29876    #[inline]
29877    fn from(node: CastExpr) -> Expr {
29878        Expr::CastExpr(node)
29879    }
29880}
29881impl From<FieldExpr> for Expr {
29882    #[inline]
29883    fn from(node: FieldExpr) -> Expr {
29884        Expr::FieldExpr(node)
29885    }
29886}
29887impl From<IndexExpr> for Expr {
29888    #[inline]
29889    fn from(node: IndexExpr) -> Expr {
29890        Expr::IndexExpr(node)
29891    }
29892}
29893impl From<Literal> for Expr {
29894    #[inline]
29895    fn from(node: Literal) -> Expr {
29896        Expr::Literal(node)
29897    }
29898}
29899impl From<NameRef> for Expr {
29900    #[inline]
29901    fn from(node: NameRef) -> Expr {
29902        Expr::NameRef(node)
29903    }
29904}
29905impl From<ParenExpr> for Expr {
29906    #[inline]
29907    fn from(node: ParenExpr) -> Expr {
29908        Expr::ParenExpr(node)
29909    }
29910}
29911impl From<PostfixExpr> for Expr {
29912    #[inline]
29913    fn from(node: PostfixExpr) -> Expr {
29914        Expr::PostfixExpr(node)
29915    }
29916}
29917impl From<PrefixExpr> for Expr {
29918    #[inline]
29919    fn from(node: PrefixExpr) -> Expr {
29920        Expr::PrefixExpr(node)
29921    }
29922}
29923impl From<SliceExpr> for Expr {
29924    #[inline]
29925    fn from(node: SliceExpr) -> Expr {
29926        Expr::SliceExpr(node)
29927    }
29928}
29929impl From<TupleExpr> for Expr {
29930    #[inline]
29931    fn from(node: TupleExpr) -> Expr {
29932        Expr::TupleExpr(node)
29933    }
29934}
29935impl AstNode for FuncOption {
29936    #[inline]
29937    fn can_cast(kind: SyntaxKind) -> bool {
29938        matches!(
29939            kind,
29940            SyntaxKind::AS_FUNC_OPTION
29941                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
29942                | SyntaxKind::COST_FUNC_OPTION
29943                | SyntaxKind::LANGUAGE_FUNC_OPTION
29944                | SyntaxKind::LEAKPROOF_FUNC_OPTION
29945                | SyntaxKind::PARALLEL_FUNC_OPTION
29946                | SyntaxKind::RESET_FUNC_OPTION
29947                | SyntaxKind::RETURN_FUNC_OPTION
29948                | SyntaxKind::ROWS_FUNC_OPTION
29949                | SyntaxKind::SECURITY_FUNC_OPTION
29950                | SyntaxKind::SET_FUNC_OPTION
29951                | SyntaxKind::STRICT_FUNC_OPTION
29952                | SyntaxKind::SUPPORT_FUNC_OPTION
29953                | SyntaxKind::TRANSFORM_FUNC_OPTION
29954                | SyntaxKind::VOLATILITY_FUNC_OPTION
29955                | SyntaxKind::WINDOW_FUNC_OPTION
29956        )
29957    }
29958    #[inline]
29959    fn cast(syntax: SyntaxNode) -> Option<Self> {
29960        let res = match syntax.kind() {
29961            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
29962            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
29963                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
29964            }
29965            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
29966            SyntaxKind::LANGUAGE_FUNC_OPTION => {
29967                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
29968            }
29969            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
29970                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
29971            }
29972            SyntaxKind::PARALLEL_FUNC_OPTION => {
29973                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
29974            }
29975            SyntaxKind::RESET_FUNC_OPTION => {
29976                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
29977            }
29978            SyntaxKind::RETURN_FUNC_OPTION => {
29979                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
29980            }
29981            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
29982            SyntaxKind::SECURITY_FUNC_OPTION => {
29983                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
29984            }
29985            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
29986            SyntaxKind::STRICT_FUNC_OPTION => {
29987                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
29988            }
29989            SyntaxKind::SUPPORT_FUNC_OPTION => {
29990                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
29991            }
29992            SyntaxKind::TRANSFORM_FUNC_OPTION => {
29993                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
29994            }
29995            SyntaxKind::VOLATILITY_FUNC_OPTION => {
29996                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
29997            }
29998            SyntaxKind::WINDOW_FUNC_OPTION => {
29999                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30000            }
30001            _ => {
30002                return None;
30003            }
30004        };
30005        Some(res)
30006    }
30007    #[inline]
30008    fn syntax(&self) -> &SyntaxNode {
30009        match self {
30010            FuncOption::AsFuncOption(it) => &it.syntax,
30011            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30012            FuncOption::CostFuncOption(it) => &it.syntax,
30013            FuncOption::LanguageFuncOption(it) => &it.syntax,
30014            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30015            FuncOption::ParallelFuncOption(it) => &it.syntax,
30016            FuncOption::ResetFuncOption(it) => &it.syntax,
30017            FuncOption::ReturnFuncOption(it) => &it.syntax,
30018            FuncOption::RowsFuncOption(it) => &it.syntax,
30019            FuncOption::SecurityFuncOption(it) => &it.syntax,
30020            FuncOption::SetFuncOption(it) => &it.syntax,
30021            FuncOption::StrictFuncOption(it) => &it.syntax,
30022            FuncOption::SupportFuncOption(it) => &it.syntax,
30023            FuncOption::TransformFuncOption(it) => &it.syntax,
30024            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30025            FuncOption::WindowFuncOption(it) => &it.syntax,
30026        }
30027    }
30028}
30029impl From<AsFuncOption> for FuncOption {
30030    #[inline]
30031    fn from(node: AsFuncOption) -> FuncOption {
30032        FuncOption::AsFuncOption(node)
30033    }
30034}
30035impl From<BeginFuncOptionList> for FuncOption {
30036    #[inline]
30037    fn from(node: BeginFuncOptionList) -> FuncOption {
30038        FuncOption::BeginFuncOptionList(node)
30039    }
30040}
30041impl From<CostFuncOption> for FuncOption {
30042    #[inline]
30043    fn from(node: CostFuncOption) -> FuncOption {
30044        FuncOption::CostFuncOption(node)
30045    }
30046}
30047impl From<LanguageFuncOption> for FuncOption {
30048    #[inline]
30049    fn from(node: LanguageFuncOption) -> FuncOption {
30050        FuncOption::LanguageFuncOption(node)
30051    }
30052}
30053impl From<LeakproofFuncOption> for FuncOption {
30054    #[inline]
30055    fn from(node: LeakproofFuncOption) -> FuncOption {
30056        FuncOption::LeakproofFuncOption(node)
30057    }
30058}
30059impl From<ParallelFuncOption> for FuncOption {
30060    #[inline]
30061    fn from(node: ParallelFuncOption) -> FuncOption {
30062        FuncOption::ParallelFuncOption(node)
30063    }
30064}
30065impl From<ResetFuncOption> for FuncOption {
30066    #[inline]
30067    fn from(node: ResetFuncOption) -> FuncOption {
30068        FuncOption::ResetFuncOption(node)
30069    }
30070}
30071impl From<ReturnFuncOption> for FuncOption {
30072    #[inline]
30073    fn from(node: ReturnFuncOption) -> FuncOption {
30074        FuncOption::ReturnFuncOption(node)
30075    }
30076}
30077impl From<RowsFuncOption> for FuncOption {
30078    #[inline]
30079    fn from(node: RowsFuncOption) -> FuncOption {
30080        FuncOption::RowsFuncOption(node)
30081    }
30082}
30083impl From<SecurityFuncOption> for FuncOption {
30084    #[inline]
30085    fn from(node: SecurityFuncOption) -> FuncOption {
30086        FuncOption::SecurityFuncOption(node)
30087    }
30088}
30089impl From<SetFuncOption> for FuncOption {
30090    #[inline]
30091    fn from(node: SetFuncOption) -> FuncOption {
30092        FuncOption::SetFuncOption(node)
30093    }
30094}
30095impl From<StrictFuncOption> for FuncOption {
30096    #[inline]
30097    fn from(node: StrictFuncOption) -> FuncOption {
30098        FuncOption::StrictFuncOption(node)
30099    }
30100}
30101impl From<SupportFuncOption> for FuncOption {
30102    #[inline]
30103    fn from(node: SupportFuncOption) -> FuncOption {
30104        FuncOption::SupportFuncOption(node)
30105    }
30106}
30107impl From<TransformFuncOption> for FuncOption {
30108    #[inline]
30109    fn from(node: TransformFuncOption) -> FuncOption {
30110        FuncOption::TransformFuncOption(node)
30111    }
30112}
30113impl From<VolatilityFuncOption> for FuncOption {
30114    #[inline]
30115    fn from(node: VolatilityFuncOption) -> FuncOption {
30116        FuncOption::VolatilityFuncOption(node)
30117    }
30118}
30119impl From<WindowFuncOption> for FuncOption {
30120    #[inline]
30121    fn from(node: WindowFuncOption) -> FuncOption {
30122        FuncOption::WindowFuncOption(node)
30123    }
30124}
30125impl AstNode for GroupBy {
30126    #[inline]
30127    fn can_cast(kind: SyntaxKind) -> bool {
30128        matches!(
30129            kind,
30130            SyntaxKind::GROUPING_CUBE
30131                | SyntaxKind::GROUPING_EXPR
30132                | SyntaxKind::GROUPING_ROLLUP
30133                | SyntaxKind::GROUPING_SETS
30134        )
30135    }
30136    #[inline]
30137    fn cast(syntax: SyntaxNode) -> Option<Self> {
30138        let res = match syntax.kind() {
30139            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30140            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30141            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30142            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30143            _ => {
30144                return None;
30145            }
30146        };
30147        Some(res)
30148    }
30149    #[inline]
30150    fn syntax(&self) -> &SyntaxNode {
30151        match self {
30152            GroupBy::GroupingCube(it) => &it.syntax,
30153            GroupBy::GroupingExpr(it) => &it.syntax,
30154            GroupBy::GroupingRollup(it) => &it.syntax,
30155            GroupBy::GroupingSets(it) => &it.syntax,
30156        }
30157    }
30158}
30159impl From<GroupingCube> for GroupBy {
30160    #[inline]
30161    fn from(node: GroupingCube) -> GroupBy {
30162        GroupBy::GroupingCube(node)
30163    }
30164}
30165impl From<GroupingExpr> for GroupBy {
30166    #[inline]
30167    fn from(node: GroupingExpr) -> GroupBy {
30168        GroupBy::GroupingExpr(node)
30169    }
30170}
30171impl From<GroupingRollup> for GroupBy {
30172    #[inline]
30173    fn from(node: GroupingRollup) -> GroupBy {
30174        GroupBy::GroupingRollup(node)
30175    }
30176}
30177impl From<GroupingSets> for GroupBy {
30178    #[inline]
30179    fn from(node: GroupingSets) -> GroupBy {
30180        GroupBy::GroupingSets(node)
30181    }
30182}
30183impl AstNode for JoinType {
30184    #[inline]
30185    fn can_cast(kind: SyntaxKind) -> bool {
30186        matches!(
30187            kind,
30188            SyntaxKind::JOIN_CROSS
30189                | SyntaxKind::JOIN_FULL
30190                | SyntaxKind::JOIN_INNER
30191                | SyntaxKind::JOIN_LEFT
30192                | SyntaxKind::JOIN_RIGHT
30193        )
30194    }
30195    #[inline]
30196    fn cast(syntax: SyntaxNode) -> Option<Self> {
30197        let res = match syntax.kind() {
30198            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30199            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30200            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30201            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30202            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30203            _ => {
30204                return None;
30205            }
30206        };
30207        Some(res)
30208    }
30209    #[inline]
30210    fn syntax(&self) -> &SyntaxNode {
30211        match self {
30212            JoinType::JoinCross(it) => &it.syntax,
30213            JoinType::JoinFull(it) => &it.syntax,
30214            JoinType::JoinInner(it) => &it.syntax,
30215            JoinType::JoinLeft(it) => &it.syntax,
30216            JoinType::JoinRight(it) => &it.syntax,
30217        }
30218    }
30219}
30220impl From<JoinCross> for JoinType {
30221    #[inline]
30222    fn from(node: JoinCross) -> JoinType {
30223        JoinType::JoinCross(node)
30224    }
30225}
30226impl From<JoinFull> for JoinType {
30227    #[inline]
30228    fn from(node: JoinFull) -> JoinType {
30229        JoinType::JoinFull(node)
30230    }
30231}
30232impl From<JoinInner> for JoinType {
30233    #[inline]
30234    fn from(node: JoinInner) -> JoinType {
30235        JoinType::JoinInner(node)
30236    }
30237}
30238impl From<JoinLeft> for JoinType {
30239    #[inline]
30240    fn from(node: JoinLeft) -> JoinType {
30241        JoinType::JoinLeft(node)
30242    }
30243}
30244impl From<JoinRight> for JoinType {
30245    #[inline]
30246    fn from(node: JoinRight) -> JoinType {
30247        JoinType::JoinRight(node)
30248    }
30249}
30250impl AstNode for JsonBehavior {
30251    #[inline]
30252    fn can_cast(kind: SyntaxKind) -> bool {
30253        matches!(
30254            kind,
30255            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30256                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30257                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30258                | SyntaxKind::JSON_BEHAVIOR_ERROR
30259                | SyntaxKind::JSON_BEHAVIOR_FALSE
30260                | SyntaxKind::JSON_BEHAVIOR_NULL
30261                | SyntaxKind::JSON_BEHAVIOR_TRUE
30262                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30263        )
30264    }
30265    #[inline]
30266    fn cast(syntax: SyntaxNode) -> Option<Self> {
30267        let res = match syntax.kind() {
30268            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30269                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30270            }
30271            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30272                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30273            }
30274            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30275                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30276            }
30277            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30278                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30279            }
30280            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30281                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30282            }
30283            SyntaxKind::JSON_BEHAVIOR_NULL => {
30284                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30285            }
30286            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30287                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30288            }
30289            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30290                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30291            }
30292            _ => {
30293                return None;
30294            }
30295        };
30296        Some(res)
30297    }
30298    #[inline]
30299    fn syntax(&self) -> &SyntaxNode {
30300        match self {
30301            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30302            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30303            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30304            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30305            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30306            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30307            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30308            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30309        }
30310    }
30311}
30312impl From<JsonBehaviorDefault> for JsonBehavior {
30313    #[inline]
30314    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30315        JsonBehavior::JsonBehaviorDefault(node)
30316    }
30317}
30318impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30319    #[inline]
30320    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30321        JsonBehavior::JsonBehaviorEmptyArray(node)
30322    }
30323}
30324impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30325    #[inline]
30326    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30327        JsonBehavior::JsonBehaviorEmptyObject(node)
30328    }
30329}
30330impl From<JsonBehaviorError> for JsonBehavior {
30331    #[inline]
30332    fn from(node: JsonBehaviorError) -> JsonBehavior {
30333        JsonBehavior::JsonBehaviorError(node)
30334    }
30335}
30336impl From<JsonBehaviorFalse> for JsonBehavior {
30337    #[inline]
30338    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30339        JsonBehavior::JsonBehaviorFalse(node)
30340    }
30341}
30342impl From<JsonBehaviorNull> for JsonBehavior {
30343    #[inline]
30344    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30345        JsonBehavior::JsonBehaviorNull(node)
30346    }
30347}
30348impl From<JsonBehaviorTrue> for JsonBehavior {
30349    #[inline]
30350    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30351        JsonBehavior::JsonBehaviorTrue(node)
30352    }
30353}
30354impl From<JsonBehaviorUnknown> for JsonBehavior {
30355    #[inline]
30356    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30357        JsonBehavior::JsonBehaviorUnknown(node)
30358    }
30359}
30360impl AstNode for MatchType {
30361    #[inline]
30362    fn can_cast(kind: SyntaxKind) -> bool {
30363        matches!(
30364            kind,
30365            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30366        )
30367    }
30368    #[inline]
30369    fn cast(syntax: SyntaxNode) -> Option<Self> {
30370        let res = match syntax.kind() {
30371            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30372            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30373            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30374            _ => {
30375                return None;
30376            }
30377        };
30378        Some(res)
30379    }
30380    #[inline]
30381    fn syntax(&self) -> &SyntaxNode {
30382        match self {
30383            MatchType::MatchFull(it) => &it.syntax,
30384            MatchType::MatchPartial(it) => &it.syntax,
30385            MatchType::MatchSimple(it) => &it.syntax,
30386        }
30387    }
30388}
30389impl From<MatchFull> for MatchType {
30390    #[inline]
30391    fn from(node: MatchFull) -> MatchType {
30392        MatchType::MatchFull(node)
30393    }
30394}
30395impl From<MatchPartial> for MatchType {
30396    #[inline]
30397    fn from(node: MatchPartial) -> MatchType {
30398        MatchType::MatchPartial(node)
30399    }
30400}
30401impl From<MatchSimple> for MatchType {
30402    #[inline]
30403    fn from(node: MatchSimple) -> MatchType {
30404        MatchType::MatchSimple(node)
30405    }
30406}
30407impl AstNode for MergeAction {
30408    #[inline]
30409    fn can_cast(kind: SyntaxKind) -> bool {
30410        matches!(
30411            kind,
30412            SyntaxKind::MERGE_DELETE
30413                | SyntaxKind::MERGE_DO_NOTHING
30414                | SyntaxKind::MERGE_INSERT
30415                | SyntaxKind::MERGE_UPDATE
30416        )
30417    }
30418    #[inline]
30419    fn cast(syntax: SyntaxNode) -> Option<Self> {
30420        let res = match syntax.kind() {
30421            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
30422            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
30423            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
30424            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
30425            _ => {
30426                return None;
30427            }
30428        };
30429        Some(res)
30430    }
30431    #[inline]
30432    fn syntax(&self) -> &SyntaxNode {
30433        match self {
30434            MergeAction::MergeDelete(it) => &it.syntax,
30435            MergeAction::MergeDoNothing(it) => &it.syntax,
30436            MergeAction::MergeInsert(it) => &it.syntax,
30437            MergeAction::MergeUpdate(it) => &it.syntax,
30438        }
30439    }
30440}
30441impl From<MergeDelete> for MergeAction {
30442    #[inline]
30443    fn from(node: MergeDelete) -> MergeAction {
30444        MergeAction::MergeDelete(node)
30445    }
30446}
30447impl From<MergeDoNothing> for MergeAction {
30448    #[inline]
30449    fn from(node: MergeDoNothing) -> MergeAction {
30450        MergeAction::MergeDoNothing(node)
30451    }
30452}
30453impl From<MergeInsert> for MergeAction {
30454    #[inline]
30455    fn from(node: MergeInsert) -> MergeAction {
30456        MergeAction::MergeInsert(node)
30457    }
30458}
30459impl From<MergeUpdate> for MergeAction {
30460    #[inline]
30461    fn from(node: MergeUpdate) -> MergeAction {
30462        MergeAction::MergeUpdate(node)
30463    }
30464}
30465impl AstNode for MergeWhenClause {
30466    #[inline]
30467    fn can_cast(kind: SyntaxKind) -> bool {
30468        matches!(
30469            kind,
30470            SyntaxKind::MERGE_WHEN_MATCHED
30471                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30472                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30473        )
30474    }
30475    #[inline]
30476    fn cast(syntax: SyntaxNode) -> Option<Self> {
30477        let res = match syntax.kind() {
30478            SyntaxKind::MERGE_WHEN_MATCHED => {
30479                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
30480            }
30481            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
30482                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
30483            }
30484            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
30485                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
30486            }
30487            _ => {
30488                return None;
30489            }
30490        };
30491        Some(res)
30492    }
30493    #[inline]
30494    fn syntax(&self) -> &SyntaxNode {
30495        match self {
30496            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
30497            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
30498            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
30499        }
30500    }
30501}
30502impl From<MergeWhenMatched> for MergeWhenClause {
30503    #[inline]
30504    fn from(node: MergeWhenMatched) -> MergeWhenClause {
30505        MergeWhenClause::MergeWhenMatched(node)
30506    }
30507}
30508impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
30509    #[inline]
30510    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
30511        MergeWhenClause::MergeWhenNotMatchedSource(node)
30512    }
30513}
30514impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
30515    #[inline]
30516    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
30517        MergeWhenClause::MergeWhenNotMatchedTarget(node)
30518    }
30519}
30520impl AstNode for OnCommitAction {
30521    #[inline]
30522    fn can_cast(kind: SyntaxKind) -> bool {
30523        matches!(
30524            kind,
30525            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
30526        )
30527    }
30528    #[inline]
30529    fn cast(syntax: SyntaxNode) -> Option<Self> {
30530        let res = match syntax.kind() {
30531            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
30532            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
30533            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
30534            _ => {
30535                return None;
30536            }
30537        };
30538        Some(res)
30539    }
30540    #[inline]
30541    fn syntax(&self) -> &SyntaxNode {
30542        match self {
30543            OnCommitAction::DeleteRows(it) => &it.syntax,
30544            OnCommitAction::Drop(it) => &it.syntax,
30545            OnCommitAction::PreserveRows(it) => &it.syntax,
30546        }
30547    }
30548}
30549impl From<DeleteRows> for OnCommitAction {
30550    #[inline]
30551    fn from(node: DeleteRows) -> OnCommitAction {
30552        OnCommitAction::DeleteRows(node)
30553    }
30554}
30555impl From<Drop> for OnCommitAction {
30556    #[inline]
30557    fn from(node: Drop) -> OnCommitAction {
30558        OnCommitAction::Drop(node)
30559    }
30560}
30561impl From<PreserveRows> for OnCommitAction {
30562    #[inline]
30563    fn from(node: PreserveRows) -> OnCommitAction {
30564        OnCommitAction::PreserveRows(node)
30565    }
30566}
30567impl AstNode for ParamMode {
30568    #[inline]
30569    fn can_cast(kind: SyntaxKind) -> bool {
30570        matches!(
30571            kind,
30572            SyntaxKind::PARAM_IN
30573                | SyntaxKind::PARAM_IN_OUT
30574                | SyntaxKind::PARAM_OUT
30575                | SyntaxKind::PARAM_VARIADIC
30576        )
30577    }
30578    #[inline]
30579    fn cast(syntax: SyntaxNode) -> Option<Self> {
30580        let res = match syntax.kind() {
30581            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30582            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30583            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30584            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30585            _ => {
30586                return None;
30587            }
30588        };
30589        Some(res)
30590    }
30591    #[inline]
30592    fn syntax(&self) -> &SyntaxNode {
30593        match self {
30594            ParamMode::ParamIn(it) => &it.syntax,
30595            ParamMode::ParamInOut(it) => &it.syntax,
30596            ParamMode::ParamOut(it) => &it.syntax,
30597            ParamMode::ParamVariadic(it) => &it.syntax,
30598        }
30599    }
30600}
30601impl From<ParamIn> for ParamMode {
30602    #[inline]
30603    fn from(node: ParamIn) -> ParamMode {
30604        ParamMode::ParamIn(node)
30605    }
30606}
30607impl From<ParamInOut> for ParamMode {
30608    #[inline]
30609    fn from(node: ParamInOut) -> ParamMode {
30610        ParamMode::ParamInOut(node)
30611    }
30612}
30613impl From<ParamOut> for ParamMode {
30614    #[inline]
30615    fn from(node: ParamOut) -> ParamMode {
30616        ParamMode::ParamOut(node)
30617    }
30618}
30619impl From<ParamVariadic> for ParamMode {
30620    #[inline]
30621    fn from(node: ParamVariadic) -> ParamMode {
30622        ParamMode::ParamVariadic(node)
30623    }
30624}
30625impl AstNode for PartitionType {
30626    #[inline]
30627    fn can_cast(kind: SyntaxKind) -> bool {
30628        matches!(
30629            kind,
30630            SyntaxKind::PARTITION_DEFAULT
30631                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30632                | SyntaxKind::PARTITION_FOR_VALUES_IN
30633                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30634        )
30635    }
30636    #[inline]
30637    fn cast(syntax: SyntaxNode) -> Option<Self> {
30638        let res = match syntax.kind() {
30639            SyntaxKind::PARTITION_DEFAULT => {
30640                PartitionType::PartitionDefault(PartitionDefault { syntax })
30641            }
30642            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
30643                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
30644            }
30645            SyntaxKind::PARTITION_FOR_VALUES_IN => {
30646                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
30647            }
30648            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
30649                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
30650            }
30651            _ => {
30652                return None;
30653            }
30654        };
30655        Some(res)
30656    }
30657    #[inline]
30658    fn syntax(&self) -> &SyntaxNode {
30659        match self {
30660            PartitionType::PartitionDefault(it) => &it.syntax,
30661            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
30662            PartitionType::PartitionForValuesIn(it) => &it.syntax,
30663            PartitionType::PartitionForValuesWith(it) => &it.syntax,
30664        }
30665    }
30666}
30667impl From<PartitionDefault> for PartitionType {
30668    #[inline]
30669    fn from(node: PartitionDefault) -> PartitionType {
30670        PartitionType::PartitionDefault(node)
30671    }
30672}
30673impl From<PartitionForValuesFrom> for PartitionType {
30674    #[inline]
30675    fn from(node: PartitionForValuesFrom) -> PartitionType {
30676        PartitionType::PartitionForValuesFrom(node)
30677    }
30678}
30679impl From<PartitionForValuesIn> for PartitionType {
30680    #[inline]
30681    fn from(node: PartitionForValuesIn) -> PartitionType {
30682        PartitionType::PartitionForValuesIn(node)
30683    }
30684}
30685impl From<PartitionForValuesWith> for PartitionType {
30686    #[inline]
30687    fn from(node: PartitionForValuesWith) -> PartitionType {
30688        PartitionType::PartitionForValuesWith(node)
30689    }
30690}
30691impl AstNode for PreparableStmt {
30692    #[inline]
30693    fn can_cast(kind: SyntaxKind) -> bool {
30694        matches!(
30695            kind,
30696            SyntaxKind::COMPOUND_SELECT
30697                | SyntaxKind::DELETE
30698                | SyntaxKind::INSERT
30699                | SyntaxKind::MERGE
30700                | SyntaxKind::SELECT
30701                | SyntaxKind::SELECT_INTO
30702                | SyntaxKind::TABLE
30703                | SyntaxKind::UPDATE
30704                | SyntaxKind::VALUES
30705        )
30706    }
30707    #[inline]
30708    fn cast(syntax: SyntaxNode) -> Option<Self> {
30709        let res = match syntax.kind() {
30710            SyntaxKind::COMPOUND_SELECT => {
30711                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
30712            }
30713            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
30714            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
30715            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
30716            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
30717            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
30718            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
30719            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
30720            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
30721            _ => {
30722                return None;
30723            }
30724        };
30725        Some(res)
30726    }
30727    #[inline]
30728    fn syntax(&self) -> &SyntaxNode {
30729        match self {
30730            PreparableStmt::CompoundSelect(it) => &it.syntax,
30731            PreparableStmt::Delete(it) => &it.syntax,
30732            PreparableStmt::Insert(it) => &it.syntax,
30733            PreparableStmt::Merge(it) => &it.syntax,
30734            PreparableStmt::Select(it) => &it.syntax,
30735            PreparableStmt::SelectInto(it) => &it.syntax,
30736            PreparableStmt::Table(it) => &it.syntax,
30737            PreparableStmt::Update(it) => &it.syntax,
30738            PreparableStmt::Values(it) => &it.syntax,
30739        }
30740    }
30741}
30742impl From<CompoundSelect> for PreparableStmt {
30743    #[inline]
30744    fn from(node: CompoundSelect) -> PreparableStmt {
30745        PreparableStmt::CompoundSelect(node)
30746    }
30747}
30748impl From<Delete> for PreparableStmt {
30749    #[inline]
30750    fn from(node: Delete) -> PreparableStmt {
30751        PreparableStmt::Delete(node)
30752    }
30753}
30754impl From<Insert> for PreparableStmt {
30755    #[inline]
30756    fn from(node: Insert) -> PreparableStmt {
30757        PreparableStmt::Insert(node)
30758    }
30759}
30760impl From<Merge> for PreparableStmt {
30761    #[inline]
30762    fn from(node: Merge) -> PreparableStmt {
30763        PreparableStmt::Merge(node)
30764    }
30765}
30766impl From<Select> for PreparableStmt {
30767    #[inline]
30768    fn from(node: Select) -> PreparableStmt {
30769        PreparableStmt::Select(node)
30770    }
30771}
30772impl From<SelectInto> for PreparableStmt {
30773    #[inline]
30774    fn from(node: SelectInto) -> PreparableStmt {
30775        PreparableStmt::SelectInto(node)
30776    }
30777}
30778impl From<Table> for PreparableStmt {
30779    #[inline]
30780    fn from(node: Table) -> PreparableStmt {
30781        PreparableStmt::Table(node)
30782    }
30783}
30784impl From<Update> for PreparableStmt {
30785    #[inline]
30786    fn from(node: Update) -> PreparableStmt {
30787        PreparableStmt::Update(node)
30788    }
30789}
30790impl From<Values> for PreparableStmt {
30791    #[inline]
30792    fn from(node: Values) -> PreparableStmt {
30793        PreparableStmt::Values(node)
30794    }
30795}
30796impl AstNode for RefAction {
30797    #[inline]
30798    fn can_cast(kind: SyntaxKind) -> bool {
30799        matches!(
30800            kind,
30801            SyntaxKind::CASCADE
30802                | SyntaxKind::NO_ACTION
30803                | SyntaxKind::RESTRICT
30804                | SyntaxKind::SET_DEFAULT_COLUMNS
30805                | SyntaxKind::SET_NULL_COLUMNS
30806        )
30807    }
30808    #[inline]
30809    fn cast(syntax: SyntaxNode) -> Option<Self> {
30810        let res = match syntax.kind() {
30811            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
30812            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
30813            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
30814            SyntaxKind::SET_DEFAULT_COLUMNS => {
30815                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
30816            }
30817            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
30818            _ => {
30819                return None;
30820            }
30821        };
30822        Some(res)
30823    }
30824    #[inline]
30825    fn syntax(&self) -> &SyntaxNode {
30826        match self {
30827            RefAction::Cascade(it) => &it.syntax,
30828            RefAction::NoAction(it) => &it.syntax,
30829            RefAction::Restrict(it) => &it.syntax,
30830            RefAction::SetDefaultColumns(it) => &it.syntax,
30831            RefAction::SetNullColumns(it) => &it.syntax,
30832        }
30833    }
30834}
30835impl From<Cascade> for RefAction {
30836    #[inline]
30837    fn from(node: Cascade) -> RefAction {
30838        RefAction::Cascade(node)
30839    }
30840}
30841impl From<NoAction> for RefAction {
30842    #[inline]
30843    fn from(node: NoAction) -> RefAction {
30844        RefAction::NoAction(node)
30845    }
30846}
30847impl From<Restrict> for RefAction {
30848    #[inline]
30849    fn from(node: Restrict) -> RefAction {
30850        RefAction::Restrict(node)
30851    }
30852}
30853impl From<SetDefaultColumns> for RefAction {
30854    #[inline]
30855    fn from(node: SetDefaultColumns) -> RefAction {
30856        RefAction::SetDefaultColumns(node)
30857    }
30858}
30859impl From<SetNullColumns> for RefAction {
30860    #[inline]
30861    fn from(node: SetNullColumns) -> RefAction {
30862        RefAction::SetNullColumns(node)
30863    }
30864}
30865impl AstNode for SchemaElement {
30866    #[inline]
30867    fn can_cast(kind: SyntaxKind) -> bool {
30868        matches!(
30869            kind,
30870            SyntaxKind::CREATE_INDEX
30871                | SyntaxKind::CREATE_SEQUENCE
30872                | SyntaxKind::CREATE_TABLE
30873                | SyntaxKind::CREATE_TRIGGER
30874                | SyntaxKind::CREATE_VIEW
30875                | SyntaxKind::GRANT
30876        )
30877    }
30878    #[inline]
30879    fn cast(syntax: SyntaxNode) -> Option<Self> {
30880        let res = match syntax.kind() {
30881            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
30882            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
30883            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
30884            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
30885            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
30886            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
30887            _ => {
30888                return None;
30889            }
30890        };
30891        Some(res)
30892    }
30893    #[inline]
30894    fn syntax(&self) -> &SyntaxNode {
30895        match self {
30896            SchemaElement::CreateIndex(it) => &it.syntax,
30897            SchemaElement::CreateSequence(it) => &it.syntax,
30898            SchemaElement::CreateTable(it) => &it.syntax,
30899            SchemaElement::CreateTrigger(it) => &it.syntax,
30900            SchemaElement::CreateView(it) => &it.syntax,
30901            SchemaElement::Grant(it) => &it.syntax,
30902        }
30903    }
30904}
30905impl From<CreateIndex> for SchemaElement {
30906    #[inline]
30907    fn from(node: CreateIndex) -> SchemaElement {
30908        SchemaElement::CreateIndex(node)
30909    }
30910}
30911impl From<CreateSequence> for SchemaElement {
30912    #[inline]
30913    fn from(node: CreateSequence) -> SchemaElement {
30914        SchemaElement::CreateSequence(node)
30915    }
30916}
30917impl From<CreateTable> for SchemaElement {
30918    #[inline]
30919    fn from(node: CreateTable) -> SchemaElement {
30920        SchemaElement::CreateTable(node)
30921    }
30922}
30923impl From<CreateTrigger> for SchemaElement {
30924    #[inline]
30925    fn from(node: CreateTrigger) -> SchemaElement {
30926        SchemaElement::CreateTrigger(node)
30927    }
30928}
30929impl From<CreateView> for SchemaElement {
30930    #[inline]
30931    fn from(node: CreateView) -> SchemaElement {
30932        SchemaElement::CreateView(node)
30933    }
30934}
30935impl From<Grant> for SchemaElement {
30936    #[inline]
30937    fn from(node: Grant) -> SchemaElement {
30938        SchemaElement::Grant(node)
30939    }
30940}
30941impl AstNode for SelectVariant {
30942    #[inline]
30943    fn can_cast(kind: SyntaxKind) -> bool {
30944        matches!(
30945            kind,
30946            SyntaxKind::COMPOUND_SELECT
30947                | SyntaxKind::PAREN_SELECT
30948                | SyntaxKind::SELECT
30949                | SyntaxKind::SELECT_INTO
30950                | SyntaxKind::TABLE
30951                | SyntaxKind::VALUES
30952        )
30953    }
30954    #[inline]
30955    fn cast(syntax: SyntaxNode) -> Option<Self> {
30956        let res = match syntax.kind() {
30957            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
30958            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
30959            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
30960            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
30961            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
30962            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
30963            _ => {
30964                return None;
30965            }
30966        };
30967        Some(res)
30968    }
30969    #[inline]
30970    fn syntax(&self) -> &SyntaxNode {
30971        match self {
30972            SelectVariant::CompoundSelect(it) => &it.syntax,
30973            SelectVariant::ParenSelect(it) => &it.syntax,
30974            SelectVariant::Select(it) => &it.syntax,
30975            SelectVariant::SelectInto(it) => &it.syntax,
30976            SelectVariant::Table(it) => &it.syntax,
30977            SelectVariant::Values(it) => &it.syntax,
30978        }
30979    }
30980}
30981impl From<CompoundSelect> for SelectVariant {
30982    #[inline]
30983    fn from(node: CompoundSelect) -> SelectVariant {
30984        SelectVariant::CompoundSelect(node)
30985    }
30986}
30987impl From<ParenSelect> for SelectVariant {
30988    #[inline]
30989    fn from(node: ParenSelect) -> SelectVariant {
30990        SelectVariant::ParenSelect(node)
30991    }
30992}
30993impl From<Select> for SelectVariant {
30994    #[inline]
30995    fn from(node: Select) -> SelectVariant {
30996        SelectVariant::Select(node)
30997    }
30998}
30999impl From<SelectInto> for SelectVariant {
31000    #[inline]
31001    fn from(node: SelectInto) -> SelectVariant {
31002        SelectVariant::SelectInto(node)
31003    }
31004}
31005impl From<Table> for SelectVariant {
31006    #[inline]
31007    fn from(node: Table) -> SelectVariant {
31008        SelectVariant::Table(node)
31009    }
31010}
31011impl From<Values> for SelectVariant {
31012    #[inline]
31013    fn from(node: Values) -> SelectVariant {
31014        SelectVariant::Values(node)
31015    }
31016}
31017impl AstNode for SetColumn {
31018    #[inline]
31019    fn can_cast(kind: SyntaxKind) -> bool {
31020        matches!(
31021            kind,
31022            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31023        )
31024    }
31025    #[inline]
31026    fn cast(syntax: SyntaxNode) -> Option<Self> {
31027        let res = match syntax.kind() {
31028            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31029                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31030            }
31031            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31032            _ => {
31033                return None;
31034            }
31035        };
31036        Some(res)
31037    }
31038    #[inline]
31039    fn syntax(&self) -> &SyntaxNode {
31040        match self {
31041            SetColumn::SetMultipleColumns(it) => &it.syntax,
31042            SetColumn::SetSingleColumn(it) => &it.syntax,
31043        }
31044    }
31045}
31046impl From<SetMultipleColumns> for SetColumn {
31047    #[inline]
31048    fn from(node: SetMultipleColumns) -> SetColumn {
31049        SetColumn::SetMultipleColumns(node)
31050    }
31051}
31052impl From<SetSingleColumn> for SetColumn {
31053    #[inline]
31054    fn from(node: SetSingleColumn) -> SetColumn {
31055        SetColumn::SetSingleColumn(node)
31056    }
31057}
31058impl AstNode for Stmt {
31059    #[inline]
31060    fn can_cast(kind: SyntaxKind) -> bool {
31061        matches!(
31062            kind,
31063            SyntaxKind::ALTER_AGGREGATE
31064                | SyntaxKind::ALTER_COLLATION
31065                | SyntaxKind::ALTER_CONVERSION
31066                | SyntaxKind::ALTER_DATABASE
31067                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31068                | SyntaxKind::ALTER_DOMAIN
31069                | SyntaxKind::ALTER_EVENT_TRIGGER
31070                | SyntaxKind::ALTER_EXTENSION
31071                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31072                | SyntaxKind::ALTER_FOREIGN_TABLE
31073                | SyntaxKind::ALTER_FUNCTION
31074                | SyntaxKind::ALTER_GROUP
31075                | SyntaxKind::ALTER_INDEX
31076                | SyntaxKind::ALTER_LANGUAGE
31077                | SyntaxKind::ALTER_LARGE_OBJECT
31078                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31079                | SyntaxKind::ALTER_OPERATOR
31080                | SyntaxKind::ALTER_OPERATOR_CLASS
31081                | SyntaxKind::ALTER_OPERATOR_FAMILY
31082                | SyntaxKind::ALTER_POLICY
31083                | SyntaxKind::ALTER_PROCEDURE
31084                | SyntaxKind::ALTER_PUBLICATION
31085                | SyntaxKind::ALTER_ROLE
31086                | SyntaxKind::ALTER_ROUTINE
31087                | SyntaxKind::ALTER_RULE
31088                | SyntaxKind::ALTER_SCHEMA
31089                | SyntaxKind::ALTER_SEQUENCE
31090                | SyntaxKind::ALTER_SERVER
31091                | SyntaxKind::ALTER_STATISTICS
31092                | SyntaxKind::ALTER_SUBSCRIPTION
31093                | SyntaxKind::ALTER_SYSTEM
31094                | SyntaxKind::ALTER_TABLE
31095                | SyntaxKind::ALTER_TABLESPACE
31096                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31097                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31098                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31099                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31100                | SyntaxKind::ALTER_TRIGGER
31101                | SyntaxKind::ALTER_TYPE
31102                | SyntaxKind::ALTER_USER
31103                | SyntaxKind::ALTER_USER_MAPPING
31104                | SyntaxKind::ALTER_VIEW
31105                | SyntaxKind::ANALYZE
31106                | SyntaxKind::BEGIN
31107                | SyntaxKind::CALL
31108                | SyntaxKind::CHECKPOINT
31109                | SyntaxKind::CLOSE
31110                | SyntaxKind::CLUSTER
31111                | SyntaxKind::COMMENT_ON
31112                | SyntaxKind::COMMIT
31113                | SyntaxKind::COPY
31114                | SyntaxKind::CREATE_ACCESS_METHOD
31115                | SyntaxKind::CREATE_AGGREGATE
31116                | SyntaxKind::CREATE_CAST
31117                | SyntaxKind::CREATE_COLLATION
31118                | SyntaxKind::CREATE_CONVERSION
31119                | SyntaxKind::CREATE_DATABASE
31120                | SyntaxKind::CREATE_DOMAIN
31121                | SyntaxKind::CREATE_EVENT_TRIGGER
31122                | SyntaxKind::CREATE_EXTENSION
31123                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31124                | SyntaxKind::CREATE_FOREIGN_TABLE
31125                | SyntaxKind::CREATE_FUNCTION
31126                | SyntaxKind::CREATE_GROUP
31127                | SyntaxKind::CREATE_INDEX
31128                | SyntaxKind::CREATE_LANGUAGE
31129                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31130                | SyntaxKind::CREATE_OPERATOR
31131                | SyntaxKind::CREATE_OPERATOR_CLASS
31132                | SyntaxKind::CREATE_OPERATOR_FAMILY
31133                | SyntaxKind::CREATE_POLICY
31134                | SyntaxKind::CREATE_PROCEDURE
31135                | SyntaxKind::CREATE_PUBLICATION
31136                | SyntaxKind::CREATE_ROLE
31137                | SyntaxKind::CREATE_RULE
31138                | SyntaxKind::CREATE_SCHEMA
31139                | SyntaxKind::CREATE_SEQUENCE
31140                | SyntaxKind::CREATE_SERVER
31141                | SyntaxKind::CREATE_STATISTICS
31142                | SyntaxKind::CREATE_SUBSCRIPTION
31143                | SyntaxKind::CREATE_TABLE
31144                | SyntaxKind::CREATE_TABLE_AS
31145                | SyntaxKind::CREATE_TABLESPACE
31146                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31147                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31148                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31149                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31150                | SyntaxKind::CREATE_TRANSFORM
31151                | SyntaxKind::CREATE_TRIGGER
31152                | SyntaxKind::CREATE_TYPE
31153                | SyntaxKind::CREATE_USER
31154                | SyntaxKind::CREATE_USER_MAPPING
31155                | SyntaxKind::CREATE_VIEW
31156                | SyntaxKind::DEALLOCATE
31157                | SyntaxKind::DECLARE
31158                | SyntaxKind::DELETE
31159                | SyntaxKind::DISCARD
31160                | SyntaxKind::DO
31161                | SyntaxKind::DROP_ACCESS_METHOD
31162                | SyntaxKind::DROP_AGGREGATE
31163                | SyntaxKind::DROP_CAST
31164                | SyntaxKind::DROP_COLLATION
31165                | SyntaxKind::DROP_CONVERSION
31166                | SyntaxKind::DROP_DATABASE
31167                | SyntaxKind::DROP_DOMAIN
31168                | SyntaxKind::DROP_EVENT_TRIGGER
31169                | SyntaxKind::DROP_EXTENSION
31170                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31171                | SyntaxKind::DROP_FOREIGN_TABLE
31172                | SyntaxKind::DROP_FUNCTION
31173                | SyntaxKind::DROP_GROUP
31174                | SyntaxKind::DROP_INDEX
31175                | SyntaxKind::DROP_LANGUAGE
31176                | SyntaxKind::DROP_MATERIALIZED_VIEW
31177                | SyntaxKind::DROP_OPERATOR
31178                | SyntaxKind::DROP_OPERATOR_CLASS
31179                | SyntaxKind::DROP_OPERATOR_FAMILY
31180                | SyntaxKind::DROP_OWNED
31181                | SyntaxKind::DROP_POLICY
31182                | SyntaxKind::DROP_PROCEDURE
31183                | SyntaxKind::DROP_PUBLICATION
31184                | SyntaxKind::DROP_ROLE
31185                | SyntaxKind::DROP_ROUTINE
31186                | SyntaxKind::DROP_RULE
31187                | SyntaxKind::DROP_SCHEMA
31188                | SyntaxKind::DROP_SEQUENCE
31189                | SyntaxKind::DROP_SERVER
31190                | SyntaxKind::DROP_STATISTICS
31191                | SyntaxKind::DROP_SUBSCRIPTION
31192                | SyntaxKind::DROP_TABLE
31193                | SyntaxKind::DROP_TABLESPACE
31194                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31195                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31196                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31197                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31198                | SyntaxKind::DROP_TRANSFORM
31199                | SyntaxKind::DROP_TRIGGER
31200                | SyntaxKind::DROP_TYPE
31201                | SyntaxKind::DROP_USER
31202                | SyntaxKind::DROP_USER_MAPPING
31203                | SyntaxKind::DROP_VIEW
31204                | SyntaxKind::EXECUTE
31205                | SyntaxKind::EXPLAIN
31206                | SyntaxKind::FETCH
31207                | SyntaxKind::GRANT
31208                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31209                | SyntaxKind::INSERT
31210                | SyntaxKind::LISTEN
31211                | SyntaxKind::LOAD
31212                | SyntaxKind::LOCK
31213                | SyntaxKind::MERGE
31214                | SyntaxKind::MOVE
31215                | SyntaxKind::NOTIFY
31216                | SyntaxKind::PAREN_SELECT
31217                | SyntaxKind::PREPARE
31218                | SyntaxKind::PREPARE_TRANSACTION
31219                | SyntaxKind::REASSIGN
31220                | SyntaxKind::REFRESH
31221                | SyntaxKind::REINDEX
31222                | SyntaxKind::RELEASE_SAVEPOINT
31223                | SyntaxKind::RESET
31224                | SyntaxKind::RESET_SESSION_AUTH
31225                | SyntaxKind::REVOKE
31226                | SyntaxKind::ROLLBACK
31227                | SyntaxKind::SAVEPOINT
31228                | SyntaxKind::SECURITY_LABEL
31229                | SyntaxKind::SELECT
31230                | SyntaxKind::SELECT_INTO
31231                | SyntaxKind::SET
31232                | SyntaxKind::SET_CONSTRAINTS
31233                | SyntaxKind::SET_ROLE
31234                | SyntaxKind::SET_SESSION_AUTH
31235                | SyntaxKind::SET_TRANSACTION
31236                | SyntaxKind::SHOW
31237                | SyntaxKind::TABLE
31238                | SyntaxKind::TRUNCATE
31239                | SyntaxKind::UNLISTEN
31240                | SyntaxKind::UPDATE
31241                | SyntaxKind::VACUUM
31242                | SyntaxKind::VALUES
31243        )
31244    }
31245    #[inline]
31246    fn cast(syntax: SyntaxNode) -> Option<Self> {
31247        let res = match syntax.kind() {
31248            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31249            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31250            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31251            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31252            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31253                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31254            }
31255            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31256            SyntaxKind::ALTER_EVENT_TRIGGER => {
31257                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31258            }
31259            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31260            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31261                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31262            }
31263            SyntaxKind::ALTER_FOREIGN_TABLE => {
31264                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31265            }
31266            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31267            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31268            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31269            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31270            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31271            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31272                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31273            }
31274            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31275            SyntaxKind::ALTER_OPERATOR_CLASS => {
31276                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31277            }
31278            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31279                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31280            }
31281            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31282            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31283            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31284            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31285            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31286            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31287            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31288            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31289            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31290            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31291            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31292            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31293            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31294            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31295            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31296                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31297            }
31298            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31299                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31300            }
31301            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31302                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31303            }
31304            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31305                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31306            }
31307            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31308            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31309            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31310            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31311            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31312            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31313            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31314            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31315            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31316            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31317            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31318            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31319            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31320            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31321            SyntaxKind::CREATE_ACCESS_METHOD => {
31322                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31323            }
31324            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31325            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31326            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31327            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31328            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31329            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31330            SyntaxKind::CREATE_EVENT_TRIGGER => {
31331                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31332            }
31333            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31334            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31335                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31336            }
31337            SyntaxKind::CREATE_FOREIGN_TABLE => {
31338                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31339            }
31340            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31341            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31342            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31343            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31344            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31345                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31346            }
31347            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31348            SyntaxKind::CREATE_OPERATOR_CLASS => {
31349                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31350            }
31351            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31352                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31353            }
31354            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31355            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31356            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31357            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31358            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31359            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31360            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31361            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31362            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31363            SyntaxKind::CREATE_SUBSCRIPTION => {
31364                Stmt::CreateSubscription(CreateSubscription { syntax })
31365            }
31366            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31367            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31368            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31369            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31370                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31371            }
31372            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31373                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31374            }
31375            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31376                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31377            }
31378            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31379                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31380            }
31381            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31382            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31383            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31384            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31385            SyntaxKind::CREATE_USER_MAPPING => {
31386                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31387            }
31388            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31389            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31390            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31391            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31392            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31393            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31394            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31395            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31396            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31397            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31398            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31399            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31400            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31401            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31402            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31403            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31404                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31405            }
31406            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31407            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31408            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31409            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31410            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31411            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31412                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31413            }
31414            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31415            SyntaxKind::DROP_OPERATOR_CLASS => {
31416                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31417            }
31418            SyntaxKind::DROP_OPERATOR_FAMILY => {
31419                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31420            }
31421            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
31422            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
31423            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
31424            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
31425            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
31426            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
31427            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
31428            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
31429            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
31430            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
31431            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
31432            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
31433            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
31434            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
31435            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
31436                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
31437            }
31438            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
31439                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
31440            }
31441            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
31442                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
31443            }
31444            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
31445                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
31446            }
31447            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
31448            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
31449            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
31450            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
31451            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
31452            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
31453            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
31454            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
31455            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
31456            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
31457            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
31458                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
31459            }
31460            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
31461            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
31462            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
31463            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
31464            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
31465            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
31466            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
31467            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
31468            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
31469            SyntaxKind::PREPARE_TRANSACTION => {
31470                Stmt::PrepareTransaction(PrepareTransaction { syntax })
31471            }
31472            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
31473            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
31474            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
31475            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
31476            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
31477            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
31478            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
31479            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
31480            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
31481            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
31482            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
31483            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
31484            SyntaxKind::SET => Stmt::Set(Set { syntax }),
31485            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
31486            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
31487            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
31488            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
31489            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
31490            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
31491            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
31492            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
31493            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
31494            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
31495            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
31496            _ => {
31497                return None;
31498            }
31499        };
31500        Some(res)
31501    }
31502    #[inline]
31503    fn syntax(&self) -> &SyntaxNode {
31504        match self {
31505            Stmt::AlterAggregate(it) => &it.syntax,
31506            Stmt::AlterCollation(it) => &it.syntax,
31507            Stmt::AlterConversion(it) => &it.syntax,
31508            Stmt::AlterDatabase(it) => &it.syntax,
31509            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
31510            Stmt::AlterDomain(it) => &it.syntax,
31511            Stmt::AlterEventTrigger(it) => &it.syntax,
31512            Stmt::AlterExtension(it) => &it.syntax,
31513            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
31514            Stmt::AlterForeignTable(it) => &it.syntax,
31515            Stmt::AlterFunction(it) => &it.syntax,
31516            Stmt::AlterGroup(it) => &it.syntax,
31517            Stmt::AlterIndex(it) => &it.syntax,
31518            Stmt::AlterLanguage(it) => &it.syntax,
31519            Stmt::AlterLargeObject(it) => &it.syntax,
31520            Stmt::AlterMaterializedView(it) => &it.syntax,
31521            Stmt::AlterOperator(it) => &it.syntax,
31522            Stmt::AlterOperatorClass(it) => &it.syntax,
31523            Stmt::AlterOperatorFamily(it) => &it.syntax,
31524            Stmt::AlterPolicy(it) => &it.syntax,
31525            Stmt::AlterProcedure(it) => &it.syntax,
31526            Stmt::AlterPublication(it) => &it.syntax,
31527            Stmt::AlterRole(it) => &it.syntax,
31528            Stmt::AlterRoutine(it) => &it.syntax,
31529            Stmt::AlterRule(it) => &it.syntax,
31530            Stmt::AlterSchema(it) => &it.syntax,
31531            Stmt::AlterSequence(it) => &it.syntax,
31532            Stmt::AlterServer(it) => &it.syntax,
31533            Stmt::AlterStatistics(it) => &it.syntax,
31534            Stmt::AlterSubscription(it) => &it.syntax,
31535            Stmt::AlterSystem(it) => &it.syntax,
31536            Stmt::AlterTable(it) => &it.syntax,
31537            Stmt::AlterTablespace(it) => &it.syntax,
31538            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
31539            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
31540            Stmt::AlterTextSearchParser(it) => &it.syntax,
31541            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
31542            Stmt::AlterTrigger(it) => &it.syntax,
31543            Stmt::AlterType(it) => &it.syntax,
31544            Stmt::AlterUser(it) => &it.syntax,
31545            Stmt::AlterUserMapping(it) => &it.syntax,
31546            Stmt::AlterView(it) => &it.syntax,
31547            Stmt::Analyze(it) => &it.syntax,
31548            Stmt::Begin(it) => &it.syntax,
31549            Stmt::Call(it) => &it.syntax,
31550            Stmt::Checkpoint(it) => &it.syntax,
31551            Stmt::Close(it) => &it.syntax,
31552            Stmt::Cluster(it) => &it.syntax,
31553            Stmt::CommentOn(it) => &it.syntax,
31554            Stmt::Commit(it) => &it.syntax,
31555            Stmt::Copy(it) => &it.syntax,
31556            Stmt::CreateAccessMethod(it) => &it.syntax,
31557            Stmt::CreateAggregate(it) => &it.syntax,
31558            Stmt::CreateCast(it) => &it.syntax,
31559            Stmt::CreateCollation(it) => &it.syntax,
31560            Stmt::CreateConversion(it) => &it.syntax,
31561            Stmt::CreateDatabase(it) => &it.syntax,
31562            Stmt::CreateDomain(it) => &it.syntax,
31563            Stmt::CreateEventTrigger(it) => &it.syntax,
31564            Stmt::CreateExtension(it) => &it.syntax,
31565            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
31566            Stmt::CreateForeignTable(it) => &it.syntax,
31567            Stmt::CreateFunction(it) => &it.syntax,
31568            Stmt::CreateGroup(it) => &it.syntax,
31569            Stmt::CreateIndex(it) => &it.syntax,
31570            Stmt::CreateLanguage(it) => &it.syntax,
31571            Stmt::CreateMaterializedView(it) => &it.syntax,
31572            Stmt::CreateOperator(it) => &it.syntax,
31573            Stmt::CreateOperatorClass(it) => &it.syntax,
31574            Stmt::CreateOperatorFamily(it) => &it.syntax,
31575            Stmt::CreatePolicy(it) => &it.syntax,
31576            Stmt::CreateProcedure(it) => &it.syntax,
31577            Stmt::CreatePublication(it) => &it.syntax,
31578            Stmt::CreateRole(it) => &it.syntax,
31579            Stmt::CreateRule(it) => &it.syntax,
31580            Stmt::CreateSchema(it) => &it.syntax,
31581            Stmt::CreateSequence(it) => &it.syntax,
31582            Stmt::CreateServer(it) => &it.syntax,
31583            Stmt::CreateStatistics(it) => &it.syntax,
31584            Stmt::CreateSubscription(it) => &it.syntax,
31585            Stmt::CreateTable(it) => &it.syntax,
31586            Stmt::CreateTableAs(it) => &it.syntax,
31587            Stmt::CreateTablespace(it) => &it.syntax,
31588            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31589            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31590            Stmt::CreateTextSearchParser(it) => &it.syntax,
31591            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31592            Stmt::CreateTransform(it) => &it.syntax,
31593            Stmt::CreateTrigger(it) => &it.syntax,
31594            Stmt::CreateType(it) => &it.syntax,
31595            Stmt::CreateUser(it) => &it.syntax,
31596            Stmt::CreateUserMapping(it) => &it.syntax,
31597            Stmt::CreateView(it) => &it.syntax,
31598            Stmt::Deallocate(it) => &it.syntax,
31599            Stmt::Declare(it) => &it.syntax,
31600            Stmt::Delete(it) => &it.syntax,
31601            Stmt::Discard(it) => &it.syntax,
31602            Stmt::Do(it) => &it.syntax,
31603            Stmt::DropAccessMethod(it) => &it.syntax,
31604            Stmt::DropAggregate(it) => &it.syntax,
31605            Stmt::DropCast(it) => &it.syntax,
31606            Stmt::DropCollation(it) => &it.syntax,
31607            Stmt::DropConversion(it) => &it.syntax,
31608            Stmt::DropDatabase(it) => &it.syntax,
31609            Stmt::DropDomain(it) => &it.syntax,
31610            Stmt::DropEventTrigger(it) => &it.syntax,
31611            Stmt::DropExtension(it) => &it.syntax,
31612            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31613            Stmt::DropForeignTable(it) => &it.syntax,
31614            Stmt::DropFunction(it) => &it.syntax,
31615            Stmt::DropGroup(it) => &it.syntax,
31616            Stmt::DropIndex(it) => &it.syntax,
31617            Stmt::DropLanguage(it) => &it.syntax,
31618            Stmt::DropMaterializedView(it) => &it.syntax,
31619            Stmt::DropOperator(it) => &it.syntax,
31620            Stmt::DropOperatorClass(it) => &it.syntax,
31621            Stmt::DropOperatorFamily(it) => &it.syntax,
31622            Stmt::DropOwned(it) => &it.syntax,
31623            Stmt::DropPolicy(it) => &it.syntax,
31624            Stmt::DropProcedure(it) => &it.syntax,
31625            Stmt::DropPublication(it) => &it.syntax,
31626            Stmt::DropRole(it) => &it.syntax,
31627            Stmt::DropRoutine(it) => &it.syntax,
31628            Stmt::DropRule(it) => &it.syntax,
31629            Stmt::DropSchema(it) => &it.syntax,
31630            Stmt::DropSequence(it) => &it.syntax,
31631            Stmt::DropServer(it) => &it.syntax,
31632            Stmt::DropStatistics(it) => &it.syntax,
31633            Stmt::DropSubscription(it) => &it.syntax,
31634            Stmt::DropTable(it) => &it.syntax,
31635            Stmt::DropTablespace(it) => &it.syntax,
31636            Stmt::DropTextSearchConfig(it) => &it.syntax,
31637            Stmt::DropTextSearchDict(it) => &it.syntax,
31638            Stmt::DropTextSearchParser(it) => &it.syntax,
31639            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31640            Stmt::DropTransform(it) => &it.syntax,
31641            Stmt::DropTrigger(it) => &it.syntax,
31642            Stmt::DropType(it) => &it.syntax,
31643            Stmt::DropUser(it) => &it.syntax,
31644            Stmt::DropUserMapping(it) => &it.syntax,
31645            Stmt::DropView(it) => &it.syntax,
31646            Stmt::Execute(it) => &it.syntax,
31647            Stmt::Explain(it) => &it.syntax,
31648            Stmt::Fetch(it) => &it.syntax,
31649            Stmt::Grant(it) => &it.syntax,
31650            Stmt::ImportForeignSchema(it) => &it.syntax,
31651            Stmt::Insert(it) => &it.syntax,
31652            Stmt::Listen(it) => &it.syntax,
31653            Stmt::Load(it) => &it.syntax,
31654            Stmt::Lock(it) => &it.syntax,
31655            Stmt::Merge(it) => &it.syntax,
31656            Stmt::Move(it) => &it.syntax,
31657            Stmt::Notify(it) => &it.syntax,
31658            Stmt::ParenSelect(it) => &it.syntax,
31659            Stmt::Prepare(it) => &it.syntax,
31660            Stmt::PrepareTransaction(it) => &it.syntax,
31661            Stmt::Reassign(it) => &it.syntax,
31662            Stmt::Refresh(it) => &it.syntax,
31663            Stmt::Reindex(it) => &it.syntax,
31664            Stmt::ReleaseSavepoint(it) => &it.syntax,
31665            Stmt::Reset(it) => &it.syntax,
31666            Stmt::ResetSessionAuth(it) => &it.syntax,
31667            Stmt::Revoke(it) => &it.syntax,
31668            Stmt::Rollback(it) => &it.syntax,
31669            Stmt::Savepoint(it) => &it.syntax,
31670            Stmt::SecurityLabel(it) => &it.syntax,
31671            Stmt::Select(it) => &it.syntax,
31672            Stmt::SelectInto(it) => &it.syntax,
31673            Stmt::Set(it) => &it.syntax,
31674            Stmt::SetConstraints(it) => &it.syntax,
31675            Stmt::SetRole(it) => &it.syntax,
31676            Stmt::SetSessionAuth(it) => &it.syntax,
31677            Stmt::SetTransaction(it) => &it.syntax,
31678            Stmt::Show(it) => &it.syntax,
31679            Stmt::Table(it) => &it.syntax,
31680            Stmt::Truncate(it) => &it.syntax,
31681            Stmt::Unlisten(it) => &it.syntax,
31682            Stmt::Update(it) => &it.syntax,
31683            Stmt::Vacuum(it) => &it.syntax,
31684            Stmt::Values(it) => &it.syntax,
31685        }
31686    }
31687}
31688impl From<AlterAggregate> for Stmt {
31689    #[inline]
31690    fn from(node: AlterAggregate) -> Stmt {
31691        Stmt::AlterAggregate(node)
31692    }
31693}
31694impl From<AlterCollation> for Stmt {
31695    #[inline]
31696    fn from(node: AlterCollation) -> Stmt {
31697        Stmt::AlterCollation(node)
31698    }
31699}
31700impl From<AlterConversion> for Stmt {
31701    #[inline]
31702    fn from(node: AlterConversion) -> Stmt {
31703        Stmt::AlterConversion(node)
31704    }
31705}
31706impl From<AlterDatabase> for Stmt {
31707    #[inline]
31708    fn from(node: AlterDatabase) -> Stmt {
31709        Stmt::AlterDatabase(node)
31710    }
31711}
31712impl From<AlterDefaultPrivileges> for Stmt {
31713    #[inline]
31714    fn from(node: AlterDefaultPrivileges) -> Stmt {
31715        Stmt::AlterDefaultPrivileges(node)
31716    }
31717}
31718impl From<AlterDomain> for Stmt {
31719    #[inline]
31720    fn from(node: AlterDomain) -> Stmt {
31721        Stmt::AlterDomain(node)
31722    }
31723}
31724impl From<AlterEventTrigger> for Stmt {
31725    #[inline]
31726    fn from(node: AlterEventTrigger) -> Stmt {
31727        Stmt::AlterEventTrigger(node)
31728    }
31729}
31730impl From<AlterExtension> for Stmt {
31731    #[inline]
31732    fn from(node: AlterExtension) -> Stmt {
31733        Stmt::AlterExtension(node)
31734    }
31735}
31736impl From<AlterForeignDataWrapper> for Stmt {
31737    #[inline]
31738    fn from(node: AlterForeignDataWrapper) -> Stmt {
31739        Stmt::AlterForeignDataWrapper(node)
31740    }
31741}
31742impl From<AlterForeignTable> for Stmt {
31743    #[inline]
31744    fn from(node: AlterForeignTable) -> Stmt {
31745        Stmt::AlterForeignTable(node)
31746    }
31747}
31748impl From<AlterFunction> for Stmt {
31749    #[inline]
31750    fn from(node: AlterFunction) -> Stmt {
31751        Stmt::AlterFunction(node)
31752    }
31753}
31754impl From<AlterGroup> for Stmt {
31755    #[inline]
31756    fn from(node: AlterGroup) -> Stmt {
31757        Stmt::AlterGroup(node)
31758    }
31759}
31760impl From<AlterIndex> for Stmt {
31761    #[inline]
31762    fn from(node: AlterIndex) -> Stmt {
31763        Stmt::AlterIndex(node)
31764    }
31765}
31766impl From<AlterLanguage> for Stmt {
31767    #[inline]
31768    fn from(node: AlterLanguage) -> Stmt {
31769        Stmt::AlterLanguage(node)
31770    }
31771}
31772impl From<AlterLargeObject> for Stmt {
31773    #[inline]
31774    fn from(node: AlterLargeObject) -> Stmt {
31775        Stmt::AlterLargeObject(node)
31776    }
31777}
31778impl From<AlterMaterializedView> for Stmt {
31779    #[inline]
31780    fn from(node: AlterMaterializedView) -> Stmt {
31781        Stmt::AlterMaterializedView(node)
31782    }
31783}
31784impl From<AlterOperator> for Stmt {
31785    #[inline]
31786    fn from(node: AlterOperator) -> Stmt {
31787        Stmt::AlterOperator(node)
31788    }
31789}
31790impl From<AlterOperatorClass> for Stmt {
31791    #[inline]
31792    fn from(node: AlterOperatorClass) -> Stmt {
31793        Stmt::AlterOperatorClass(node)
31794    }
31795}
31796impl From<AlterOperatorFamily> for Stmt {
31797    #[inline]
31798    fn from(node: AlterOperatorFamily) -> Stmt {
31799        Stmt::AlterOperatorFamily(node)
31800    }
31801}
31802impl From<AlterPolicy> for Stmt {
31803    #[inline]
31804    fn from(node: AlterPolicy) -> Stmt {
31805        Stmt::AlterPolicy(node)
31806    }
31807}
31808impl From<AlterProcedure> for Stmt {
31809    #[inline]
31810    fn from(node: AlterProcedure) -> Stmt {
31811        Stmt::AlterProcedure(node)
31812    }
31813}
31814impl From<AlterPublication> for Stmt {
31815    #[inline]
31816    fn from(node: AlterPublication) -> Stmt {
31817        Stmt::AlterPublication(node)
31818    }
31819}
31820impl From<AlterRole> for Stmt {
31821    #[inline]
31822    fn from(node: AlterRole) -> Stmt {
31823        Stmt::AlterRole(node)
31824    }
31825}
31826impl From<AlterRoutine> for Stmt {
31827    #[inline]
31828    fn from(node: AlterRoutine) -> Stmt {
31829        Stmt::AlterRoutine(node)
31830    }
31831}
31832impl From<AlterRule> for Stmt {
31833    #[inline]
31834    fn from(node: AlterRule) -> Stmt {
31835        Stmt::AlterRule(node)
31836    }
31837}
31838impl From<AlterSchema> for Stmt {
31839    #[inline]
31840    fn from(node: AlterSchema) -> Stmt {
31841        Stmt::AlterSchema(node)
31842    }
31843}
31844impl From<AlterSequence> for Stmt {
31845    #[inline]
31846    fn from(node: AlterSequence) -> Stmt {
31847        Stmt::AlterSequence(node)
31848    }
31849}
31850impl From<AlterServer> for Stmt {
31851    #[inline]
31852    fn from(node: AlterServer) -> Stmt {
31853        Stmt::AlterServer(node)
31854    }
31855}
31856impl From<AlterStatistics> for Stmt {
31857    #[inline]
31858    fn from(node: AlterStatistics) -> Stmt {
31859        Stmt::AlterStatistics(node)
31860    }
31861}
31862impl From<AlterSubscription> for Stmt {
31863    #[inline]
31864    fn from(node: AlterSubscription) -> Stmt {
31865        Stmt::AlterSubscription(node)
31866    }
31867}
31868impl From<AlterSystem> for Stmt {
31869    #[inline]
31870    fn from(node: AlterSystem) -> Stmt {
31871        Stmt::AlterSystem(node)
31872    }
31873}
31874impl From<AlterTable> for Stmt {
31875    #[inline]
31876    fn from(node: AlterTable) -> Stmt {
31877        Stmt::AlterTable(node)
31878    }
31879}
31880impl From<AlterTablespace> for Stmt {
31881    #[inline]
31882    fn from(node: AlterTablespace) -> Stmt {
31883        Stmt::AlterTablespace(node)
31884    }
31885}
31886impl From<AlterTextSearchConfiguration> for Stmt {
31887    #[inline]
31888    fn from(node: AlterTextSearchConfiguration) -> Stmt {
31889        Stmt::AlterTextSearchConfiguration(node)
31890    }
31891}
31892impl From<AlterTextSearchDictionary> for Stmt {
31893    #[inline]
31894    fn from(node: AlterTextSearchDictionary) -> Stmt {
31895        Stmt::AlterTextSearchDictionary(node)
31896    }
31897}
31898impl From<AlterTextSearchParser> for Stmt {
31899    #[inline]
31900    fn from(node: AlterTextSearchParser) -> Stmt {
31901        Stmt::AlterTextSearchParser(node)
31902    }
31903}
31904impl From<AlterTextSearchTemplate> for Stmt {
31905    #[inline]
31906    fn from(node: AlterTextSearchTemplate) -> Stmt {
31907        Stmt::AlterTextSearchTemplate(node)
31908    }
31909}
31910impl From<AlterTrigger> for Stmt {
31911    #[inline]
31912    fn from(node: AlterTrigger) -> Stmt {
31913        Stmt::AlterTrigger(node)
31914    }
31915}
31916impl From<AlterType> for Stmt {
31917    #[inline]
31918    fn from(node: AlterType) -> Stmt {
31919        Stmt::AlterType(node)
31920    }
31921}
31922impl From<AlterUser> for Stmt {
31923    #[inline]
31924    fn from(node: AlterUser) -> Stmt {
31925        Stmt::AlterUser(node)
31926    }
31927}
31928impl From<AlterUserMapping> for Stmt {
31929    #[inline]
31930    fn from(node: AlterUserMapping) -> Stmt {
31931        Stmt::AlterUserMapping(node)
31932    }
31933}
31934impl From<AlterView> for Stmt {
31935    #[inline]
31936    fn from(node: AlterView) -> Stmt {
31937        Stmt::AlterView(node)
31938    }
31939}
31940impl From<Analyze> for Stmt {
31941    #[inline]
31942    fn from(node: Analyze) -> Stmt {
31943        Stmt::Analyze(node)
31944    }
31945}
31946impl From<Begin> for Stmt {
31947    #[inline]
31948    fn from(node: Begin) -> Stmt {
31949        Stmt::Begin(node)
31950    }
31951}
31952impl From<Call> for Stmt {
31953    #[inline]
31954    fn from(node: Call) -> Stmt {
31955        Stmt::Call(node)
31956    }
31957}
31958impl From<Checkpoint> for Stmt {
31959    #[inline]
31960    fn from(node: Checkpoint) -> Stmt {
31961        Stmt::Checkpoint(node)
31962    }
31963}
31964impl From<Close> for Stmt {
31965    #[inline]
31966    fn from(node: Close) -> Stmt {
31967        Stmt::Close(node)
31968    }
31969}
31970impl From<Cluster> for Stmt {
31971    #[inline]
31972    fn from(node: Cluster) -> Stmt {
31973        Stmt::Cluster(node)
31974    }
31975}
31976impl From<CommentOn> for Stmt {
31977    #[inline]
31978    fn from(node: CommentOn) -> Stmt {
31979        Stmt::CommentOn(node)
31980    }
31981}
31982impl From<Commit> for Stmt {
31983    #[inline]
31984    fn from(node: Commit) -> Stmt {
31985        Stmt::Commit(node)
31986    }
31987}
31988impl From<Copy> for Stmt {
31989    #[inline]
31990    fn from(node: Copy) -> Stmt {
31991        Stmt::Copy(node)
31992    }
31993}
31994impl From<CreateAccessMethod> for Stmt {
31995    #[inline]
31996    fn from(node: CreateAccessMethod) -> Stmt {
31997        Stmt::CreateAccessMethod(node)
31998    }
31999}
32000impl From<CreateAggregate> for Stmt {
32001    #[inline]
32002    fn from(node: CreateAggregate) -> Stmt {
32003        Stmt::CreateAggregate(node)
32004    }
32005}
32006impl From<CreateCast> for Stmt {
32007    #[inline]
32008    fn from(node: CreateCast) -> Stmt {
32009        Stmt::CreateCast(node)
32010    }
32011}
32012impl From<CreateCollation> for Stmt {
32013    #[inline]
32014    fn from(node: CreateCollation) -> Stmt {
32015        Stmt::CreateCollation(node)
32016    }
32017}
32018impl From<CreateConversion> for Stmt {
32019    #[inline]
32020    fn from(node: CreateConversion) -> Stmt {
32021        Stmt::CreateConversion(node)
32022    }
32023}
32024impl From<CreateDatabase> for Stmt {
32025    #[inline]
32026    fn from(node: CreateDatabase) -> Stmt {
32027        Stmt::CreateDatabase(node)
32028    }
32029}
32030impl From<CreateDomain> for Stmt {
32031    #[inline]
32032    fn from(node: CreateDomain) -> Stmt {
32033        Stmt::CreateDomain(node)
32034    }
32035}
32036impl From<CreateEventTrigger> for Stmt {
32037    #[inline]
32038    fn from(node: CreateEventTrigger) -> Stmt {
32039        Stmt::CreateEventTrigger(node)
32040    }
32041}
32042impl From<CreateExtension> for Stmt {
32043    #[inline]
32044    fn from(node: CreateExtension) -> Stmt {
32045        Stmt::CreateExtension(node)
32046    }
32047}
32048impl From<CreateForeignDataWrapper> for Stmt {
32049    #[inline]
32050    fn from(node: CreateForeignDataWrapper) -> Stmt {
32051        Stmt::CreateForeignDataWrapper(node)
32052    }
32053}
32054impl From<CreateForeignTable> for Stmt {
32055    #[inline]
32056    fn from(node: CreateForeignTable) -> Stmt {
32057        Stmt::CreateForeignTable(node)
32058    }
32059}
32060impl From<CreateFunction> for Stmt {
32061    #[inline]
32062    fn from(node: CreateFunction) -> Stmt {
32063        Stmt::CreateFunction(node)
32064    }
32065}
32066impl From<CreateGroup> for Stmt {
32067    #[inline]
32068    fn from(node: CreateGroup) -> Stmt {
32069        Stmt::CreateGroup(node)
32070    }
32071}
32072impl From<CreateIndex> for Stmt {
32073    #[inline]
32074    fn from(node: CreateIndex) -> Stmt {
32075        Stmt::CreateIndex(node)
32076    }
32077}
32078impl From<CreateLanguage> for Stmt {
32079    #[inline]
32080    fn from(node: CreateLanguage) -> Stmt {
32081        Stmt::CreateLanguage(node)
32082    }
32083}
32084impl From<CreateMaterializedView> for Stmt {
32085    #[inline]
32086    fn from(node: CreateMaterializedView) -> Stmt {
32087        Stmt::CreateMaterializedView(node)
32088    }
32089}
32090impl From<CreateOperator> for Stmt {
32091    #[inline]
32092    fn from(node: CreateOperator) -> Stmt {
32093        Stmt::CreateOperator(node)
32094    }
32095}
32096impl From<CreateOperatorClass> for Stmt {
32097    #[inline]
32098    fn from(node: CreateOperatorClass) -> Stmt {
32099        Stmt::CreateOperatorClass(node)
32100    }
32101}
32102impl From<CreateOperatorFamily> for Stmt {
32103    #[inline]
32104    fn from(node: CreateOperatorFamily) -> Stmt {
32105        Stmt::CreateOperatorFamily(node)
32106    }
32107}
32108impl From<CreatePolicy> for Stmt {
32109    #[inline]
32110    fn from(node: CreatePolicy) -> Stmt {
32111        Stmt::CreatePolicy(node)
32112    }
32113}
32114impl From<CreateProcedure> for Stmt {
32115    #[inline]
32116    fn from(node: CreateProcedure) -> Stmt {
32117        Stmt::CreateProcedure(node)
32118    }
32119}
32120impl From<CreatePublication> for Stmt {
32121    #[inline]
32122    fn from(node: CreatePublication) -> Stmt {
32123        Stmt::CreatePublication(node)
32124    }
32125}
32126impl From<CreateRole> for Stmt {
32127    #[inline]
32128    fn from(node: CreateRole) -> Stmt {
32129        Stmt::CreateRole(node)
32130    }
32131}
32132impl From<CreateRule> for Stmt {
32133    #[inline]
32134    fn from(node: CreateRule) -> Stmt {
32135        Stmt::CreateRule(node)
32136    }
32137}
32138impl From<CreateSchema> for Stmt {
32139    #[inline]
32140    fn from(node: CreateSchema) -> Stmt {
32141        Stmt::CreateSchema(node)
32142    }
32143}
32144impl From<CreateSequence> for Stmt {
32145    #[inline]
32146    fn from(node: CreateSequence) -> Stmt {
32147        Stmt::CreateSequence(node)
32148    }
32149}
32150impl From<CreateServer> for Stmt {
32151    #[inline]
32152    fn from(node: CreateServer) -> Stmt {
32153        Stmt::CreateServer(node)
32154    }
32155}
32156impl From<CreateStatistics> for Stmt {
32157    #[inline]
32158    fn from(node: CreateStatistics) -> Stmt {
32159        Stmt::CreateStatistics(node)
32160    }
32161}
32162impl From<CreateSubscription> for Stmt {
32163    #[inline]
32164    fn from(node: CreateSubscription) -> Stmt {
32165        Stmt::CreateSubscription(node)
32166    }
32167}
32168impl From<CreateTable> for Stmt {
32169    #[inline]
32170    fn from(node: CreateTable) -> Stmt {
32171        Stmt::CreateTable(node)
32172    }
32173}
32174impl From<CreateTableAs> for Stmt {
32175    #[inline]
32176    fn from(node: CreateTableAs) -> Stmt {
32177        Stmt::CreateTableAs(node)
32178    }
32179}
32180impl From<CreateTablespace> for Stmt {
32181    #[inline]
32182    fn from(node: CreateTablespace) -> Stmt {
32183        Stmt::CreateTablespace(node)
32184    }
32185}
32186impl From<CreateTextSearchConfiguration> for Stmt {
32187    #[inline]
32188    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32189        Stmt::CreateTextSearchConfiguration(node)
32190    }
32191}
32192impl From<CreateTextSearchDictionary> for Stmt {
32193    #[inline]
32194    fn from(node: CreateTextSearchDictionary) -> Stmt {
32195        Stmt::CreateTextSearchDictionary(node)
32196    }
32197}
32198impl From<CreateTextSearchParser> for Stmt {
32199    #[inline]
32200    fn from(node: CreateTextSearchParser) -> Stmt {
32201        Stmt::CreateTextSearchParser(node)
32202    }
32203}
32204impl From<CreateTextSearchTemplate> for Stmt {
32205    #[inline]
32206    fn from(node: CreateTextSearchTemplate) -> Stmt {
32207        Stmt::CreateTextSearchTemplate(node)
32208    }
32209}
32210impl From<CreateTransform> for Stmt {
32211    #[inline]
32212    fn from(node: CreateTransform) -> Stmt {
32213        Stmt::CreateTransform(node)
32214    }
32215}
32216impl From<CreateTrigger> for Stmt {
32217    #[inline]
32218    fn from(node: CreateTrigger) -> Stmt {
32219        Stmt::CreateTrigger(node)
32220    }
32221}
32222impl From<CreateType> for Stmt {
32223    #[inline]
32224    fn from(node: CreateType) -> Stmt {
32225        Stmt::CreateType(node)
32226    }
32227}
32228impl From<CreateUser> for Stmt {
32229    #[inline]
32230    fn from(node: CreateUser) -> Stmt {
32231        Stmt::CreateUser(node)
32232    }
32233}
32234impl From<CreateUserMapping> for Stmt {
32235    #[inline]
32236    fn from(node: CreateUserMapping) -> Stmt {
32237        Stmt::CreateUserMapping(node)
32238    }
32239}
32240impl From<CreateView> for Stmt {
32241    #[inline]
32242    fn from(node: CreateView) -> Stmt {
32243        Stmt::CreateView(node)
32244    }
32245}
32246impl From<Deallocate> for Stmt {
32247    #[inline]
32248    fn from(node: Deallocate) -> Stmt {
32249        Stmt::Deallocate(node)
32250    }
32251}
32252impl From<Declare> for Stmt {
32253    #[inline]
32254    fn from(node: Declare) -> Stmt {
32255        Stmt::Declare(node)
32256    }
32257}
32258impl From<Delete> for Stmt {
32259    #[inline]
32260    fn from(node: Delete) -> Stmt {
32261        Stmt::Delete(node)
32262    }
32263}
32264impl From<Discard> for Stmt {
32265    #[inline]
32266    fn from(node: Discard) -> Stmt {
32267        Stmt::Discard(node)
32268    }
32269}
32270impl From<Do> for Stmt {
32271    #[inline]
32272    fn from(node: Do) -> Stmt {
32273        Stmt::Do(node)
32274    }
32275}
32276impl From<DropAccessMethod> for Stmt {
32277    #[inline]
32278    fn from(node: DropAccessMethod) -> Stmt {
32279        Stmt::DropAccessMethod(node)
32280    }
32281}
32282impl From<DropAggregate> for Stmt {
32283    #[inline]
32284    fn from(node: DropAggregate) -> Stmt {
32285        Stmt::DropAggregate(node)
32286    }
32287}
32288impl From<DropCast> for Stmt {
32289    #[inline]
32290    fn from(node: DropCast) -> Stmt {
32291        Stmt::DropCast(node)
32292    }
32293}
32294impl From<DropCollation> for Stmt {
32295    #[inline]
32296    fn from(node: DropCollation) -> Stmt {
32297        Stmt::DropCollation(node)
32298    }
32299}
32300impl From<DropConversion> for Stmt {
32301    #[inline]
32302    fn from(node: DropConversion) -> Stmt {
32303        Stmt::DropConversion(node)
32304    }
32305}
32306impl From<DropDatabase> for Stmt {
32307    #[inline]
32308    fn from(node: DropDatabase) -> Stmt {
32309        Stmt::DropDatabase(node)
32310    }
32311}
32312impl From<DropDomain> for Stmt {
32313    #[inline]
32314    fn from(node: DropDomain) -> Stmt {
32315        Stmt::DropDomain(node)
32316    }
32317}
32318impl From<DropEventTrigger> for Stmt {
32319    #[inline]
32320    fn from(node: DropEventTrigger) -> Stmt {
32321        Stmt::DropEventTrigger(node)
32322    }
32323}
32324impl From<DropExtension> for Stmt {
32325    #[inline]
32326    fn from(node: DropExtension) -> Stmt {
32327        Stmt::DropExtension(node)
32328    }
32329}
32330impl From<DropForeignDataWrapper> for Stmt {
32331    #[inline]
32332    fn from(node: DropForeignDataWrapper) -> Stmt {
32333        Stmt::DropForeignDataWrapper(node)
32334    }
32335}
32336impl From<DropForeignTable> for Stmt {
32337    #[inline]
32338    fn from(node: DropForeignTable) -> Stmt {
32339        Stmt::DropForeignTable(node)
32340    }
32341}
32342impl From<DropFunction> for Stmt {
32343    #[inline]
32344    fn from(node: DropFunction) -> Stmt {
32345        Stmt::DropFunction(node)
32346    }
32347}
32348impl From<DropGroup> for Stmt {
32349    #[inline]
32350    fn from(node: DropGroup) -> Stmt {
32351        Stmt::DropGroup(node)
32352    }
32353}
32354impl From<DropIndex> for Stmt {
32355    #[inline]
32356    fn from(node: DropIndex) -> Stmt {
32357        Stmt::DropIndex(node)
32358    }
32359}
32360impl From<DropLanguage> for Stmt {
32361    #[inline]
32362    fn from(node: DropLanguage) -> Stmt {
32363        Stmt::DropLanguage(node)
32364    }
32365}
32366impl From<DropMaterializedView> for Stmt {
32367    #[inline]
32368    fn from(node: DropMaterializedView) -> Stmt {
32369        Stmt::DropMaterializedView(node)
32370    }
32371}
32372impl From<DropOperator> for Stmt {
32373    #[inline]
32374    fn from(node: DropOperator) -> Stmt {
32375        Stmt::DropOperator(node)
32376    }
32377}
32378impl From<DropOperatorClass> for Stmt {
32379    #[inline]
32380    fn from(node: DropOperatorClass) -> Stmt {
32381        Stmt::DropOperatorClass(node)
32382    }
32383}
32384impl From<DropOperatorFamily> for Stmt {
32385    #[inline]
32386    fn from(node: DropOperatorFamily) -> Stmt {
32387        Stmt::DropOperatorFamily(node)
32388    }
32389}
32390impl From<DropOwned> for Stmt {
32391    #[inline]
32392    fn from(node: DropOwned) -> Stmt {
32393        Stmt::DropOwned(node)
32394    }
32395}
32396impl From<DropPolicy> for Stmt {
32397    #[inline]
32398    fn from(node: DropPolicy) -> Stmt {
32399        Stmt::DropPolicy(node)
32400    }
32401}
32402impl From<DropProcedure> for Stmt {
32403    #[inline]
32404    fn from(node: DropProcedure) -> Stmt {
32405        Stmt::DropProcedure(node)
32406    }
32407}
32408impl From<DropPublication> for Stmt {
32409    #[inline]
32410    fn from(node: DropPublication) -> Stmt {
32411        Stmt::DropPublication(node)
32412    }
32413}
32414impl From<DropRole> for Stmt {
32415    #[inline]
32416    fn from(node: DropRole) -> Stmt {
32417        Stmt::DropRole(node)
32418    }
32419}
32420impl From<DropRoutine> for Stmt {
32421    #[inline]
32422    fn from(node: DropRoutine) -> Stmt {
32423        Stmt::DropRoutine(node)
32424    }
32425}
32426impl From<DropRule> for Stmt {
32427    #[inline]
32428    fn from(node: DropRule) -> Stmt {
32429        Stmt::DropRule(node)
32430    }
32431}
32432impl From<DropSchema> for Stmt {
32433    #[inline]
32434    fn from(node: DropSchema) -> Stmt {
32435        Stmt::DropSchema(node)
32436    }
32437}
32438impl From<DropSequence> for Stmt {
32439    #[inline]
32440    fn from(node: DropSequence) -> Stmt {
32441        Stmt::DropSequence(node)
32442    }
32443}
32444impl From<DropServer> for Stmt {
32445    #[inline]
32446    fn from(node: DropServer) -> Stmt {
32447        Stmt::DropServer(node)
32448    }
32449}
32450impl From<DropStatistics> for Stmt {
32451    #[inline]
32452    fn from(node: DropStatistics) -> Stmt {
32453        Stmt::DropStatistics(node)
32454    }
32455}
32456impl From<DropSubscription> for Stmt {
32457    #[inline]
32458    fn from(node: DropSubscription) -> Stmt {
32459        Stmt::DropSubscription(node)
32460    }
32461}
32462impl From<DropTable> for Stmt {
32463    #[inline]
32464    fn from(node: DropTable) -> Stmt {
32465        Stmt::DropTable(node)
32466    }
32467}
32468impl From<DropTablespace> for Stmt {
32469    #[inline]
32470    fn from(node: DropTablespace) -> Stmt {
32471        Stmt::DropTablespace(node)
32472    }
32473}
32474impl From<DropTextSearchConfig> for Stmt {
32475    #[inline]
32476    fn from(node: DropTextSearchConfig) -> Stmt {
32477        Stmt::DropTextSearchConfig(node)
32478    }
32479}
32480impl From<DropTextSearchDict> for Stmt {
32481    #[inline]
32482    fn from(node: DropTextSearchDict) -> Stmt {
32483        Stmt::DropTextSearchDict(node)
32484    }
32485}
32486impl From<DropTextSearchParser> for Stmt {
32487    #[inline]
32488    fn from(node: DropTextSearchParser) -> Stmt {
32489        Stmt::DropTextSearchParser(node)
32490    }
32491}
32492impl From<DropTextSearchTemplate> for Stmt {
32493    #[inline]
32494    fn from(node: DropTextSearchTemplate) -> Stmt {
32495        Stmt::DropTextSearchTemplate(node)
32496    }
32497}
32498impl From<DropTransform> for Stmt {
32499    #[inline]
32500    fn from(node: DropTransform) -> Stmt {
32501        Stmt::DropTransform(node)
32502    }
32503}
32504impl From<DropTrigger> for Stmt {
32505    #[inline]
32506    fn from(node: DropTrigger) -> Stmt {
32507        Stmt::DropTrigger(node)
32508    }
32509}
32510impl From<DropType> for Stmt {
32511    #[inline]
32512    fn from(node: DropType) -> Stmt {
32513        Stmt::DropType(node)
32514    }
32515}
32516impl From<DropUser> for Stmt {
32517    #[inline]
32518    fn from(node: DropUser) -> Stmt {
32519        Stmt::DropUser(node)
32520    }
32521}
32522impl From<DropUserMapping> for Stmt {
32523    #[inline]
32524    fn from(node: DropUserMapping) -> Stmt {
32525        Stmt::DropUserMapping(node)
32526    }
32527}
32528impl From<DropView> for Stmt {
32529    #[inline]
32530    fn from(node: DropView) -> Stmt {
32531        Stmt::DropView(node)
32532    }
32533}
32534impl From<Execute> for Stmt {
32535    #[inline]
32536    fn from(node: Execute) -> Stmt {
32537        Stmt::Execute(node)
32538    }
32539}
32540impl From<Explain> for Stmt {
32541    #[inline]
32542    fn from(node: Explain) -> Stmt {
32543        Stmt::Explain(node)
32544    }
32545}
32546impl From<Fetch> for Stmt {
32547    #[inline]
32548    fn from(node: Fetch) -> Stmt {
32549        Stmt::Fetch(node)
32550    }
32551}
32552impl From<Grant> for Stmt {
32553    #[inline]
32554    fn from(node: Grant) -> Stmt {
32555        Stmt::Grant(node)
32556    }
32557}
32558impl From<ImportForeignSchema> for Stmt {
32559    #[inline]
32560    fn from(node: ImportForeignSchema) -> Stmt {
32561        Stmt::ImportForeignSchema(node)
32562    }
32563}
32564impl From<Insert> for Stmt {
32565    #[inline]
32566    fn from(node: Insert) -> Stmt {
32567        Stmt::Insert(node)
32568    }
32569}
32570impl From<Listen> for Stmt {
32571    #[inline]
32572    fn from(node: Listen) -> Stmt {
32573        Stmt::Listen(node)
32574    }
32575}
32576impl From<Load> for Stmt {
32577    #[inline]
32578    fn from(node: Load) -> Stmt {
32579        Stmt::Load(node)
32580    }
32581}
32582impl From<Lock> for Stmt {
32583    #[inline]
32584    fn from(node: Lock) -> Stmt {
32585        Stmt::Lock(node)
32586    }
32587}
32588impl From<Merge> for Stmt {
32589    #[inline]
32590    fn from(node: Merge) -> Stmt {
32591        Stmt::Merge(node)
32592    }
32593}
32594impl From<Move> for Stmt {
32595    #[inline]
32596    fn from(node: Move) -> Stmt {
32597        Stmt::Move(node)
32598    }
32599}
32600impl From<Notify> for Stmt {
32601    #[inline]
32602    fn from(node: Notify) -> Stmt {
32603        Stmt::Notify(node)
32604    }
32605}
32606impl From<ParenSelect> for Stmt {
32607    #[inline]
32608    fn from(node: ParenSelect) -> Stmt {
32609        Stmt::ParenSelect(node)
32610    }
32611}
32612impl From<Prepare> for Stmt {
32613    #[inline]
32614    fn from(node: Prepare) -> Stmt {
32615        Stmt::Prepare(node)
32616    }
32617}
32618impl From<PrepareTransaction> for Stmt {
32619    #[inline]
32620    fn from(node: PrepareTransaction) -> Stmt {
32621        Stmt::PrepareTransaction(node)
32622    }
32623}
32624impl From<Reassign> for Stmt {
32625    #[inline]
32626    fn from(node: Reassign) -> Stmt {
32627        Stmt::Reassign(node)
32628    }
32629}
32630impl From<Refresh> for Stmt {
32631    #[inline]
32632    fn from(node: Refresh) -> Stmt {
32633        Stmt::Refresh(node)
32634    }
32635}
32636impl From<Reindex> for Stmt {
32637    #[inline]
32638    fn from(node: Reindex) -> Stmt {
32639        Stmt::Reindex(node)
32640    }
32641}
32642impl From<ReleaseSavepoint> for Stmt {
32643    #[inline]
32644    fn from(node: ReleaseSavepoint) -> Stmt {
32645        Stmt::ReleaseSavepoint(node)
32646    }
32647}
32648impl From<Reset> for Stmt {
32649    #[inline]
32650    fn from(node: Reset) -> Stmt {
32651        Stmt::Reset(node)
32652    }
32653}
32654impl From<ResetSessionAuth> for Stmt {
32655    #[inline]
32656    fn from(node: ResetSessionAuth) -> Stmt {
32657        Stmt::ResetSessionAuth(node)
32658    }
32659}
32660impl From<Revoke> for Stmt {
32661    #[inline]
32662    fn from(node: Revoke) -> Stmt {
32663        Stmt::Revoke(node)
32664    }
32665}
32666impl From<Rollback> for Stmt {
32667    #[inline]
32668    fn from(node: Rollback) -> Stmt {
32669        Stmt::Rollback(node)
32670    }
32671}
32672impl From<Savepoint> for Stmt {
32673    #[inline]
32674    fn from(node: Savepoint) -> Stmt {
32675        Stmt::Savepoint(node)
32676    }
32677}
32678impl From<SecurityLabel> for Stmt {
32679    #[inline]
32680    fn from(node: SecurityLabel) -> Stmt {
32681        Stmt::SecurityLabel(node)
32682    }
32683}
32684impl From<Select> for Stmt {
32685    #[inline]
32686    fn from(node: Select) -> Stmt {
32687        Stmt::Select(node)
32688    }
32689}
32690impl From<SelectInto> for Stmt {
32691    #[inline]
32692    fn from(node: SelectInto) -> Stmt {
32693        Stmt::SelectInto(node)
32694    }
32695}
32696impl From<Set> for Stmt {
32697    #[inline]
32698    fn from(node: Set) -> Stmt {
32699        Stmt::Set(node)
32700    }
32701}
32702impl From<SetConstraints> for Stmt {
32703    #[inline]
32704    fn from(node: SetConstraints) -> Stmt {
32705        Stmt::SetConstraints(node)
32706    }
32707}
32708impl From<SetRole> for Stmt {
32709    #[inline]
32710    fn from(node: SetRole) -> Stmt {
32711        Stmt::SetRole(node)
32712    }
32713}
32714impl From<SetSessionAuth> for Stmt {
32715    #[inline]
32716    fn from(node: SetSessionAuth) -> Stmt {
32717        Stmt::SetSessionAuth(node)
32718    }
32719}
32720impl From<SetTransaction> for Stmt {
32721    #[inline]
32722    fn from(node: SetTransaction) -> Stmt {
32723        Stmt::SetTransaction(node)
32724    }
32725}
32726impl From<Show> for Stmt {
32727    #[inline]
32728    fn from(node: Show) -> Stmt {
32729        Stmt::Show(node)
32730    }
32731}
32732impl From<Table> for Stmt {
32733    #[inline]
32734    fn from(node: Table) -> Stmt {
32735        Stmt::Table(node)
32736    }
32737}
32738impl From<Truncate> for Stmt {
32739    #[inline]
32740    fn from(node: Truncate) -> Stmt {
32741        Stmt::Truncate(node)
32742    }
32743}
32744impl From<Unlisten> for Stmt {
32745    #[inline]
32746    fn from(node: Unlisten) -> Stmt {
32747        Stmt::Unlisten(node)
32748    }
32749}
32750impl From<Update> for Stmt {
32751    #[inline]
32752    fn from(node: Update) -> Stmt {
32753        Stmt::Update(node)
32754    }
32755}
32756impl From<Vacuum> for Stmt {
32757    #[inline]
32758    fn from(node: Vacuum) -> Stmt {
32759        Stmt::Vacuum(node)
32760    }
32761}
32762impl From<Values> for Stmt {
32763    #[inline]
32764    fn from(node: Values) -> Stmt {
32765        Stmt::Values(node)
32766    }
32767}
32768impl AstNode for TableArg {
32769    #[inline]
32770    fn can_cast(kind: SyntaxKind) -> bool {
32771        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
32772    }
32773    #[inline]
32774    fn cast(syntax: SyntaxNode) -> Option<Self> {
32775        let res = match syntax.kind() {
32776            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
32777            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
32778            _ => {
32779                if let Some(result) = TableConstraint::cast(syntax) {
32780                    return Some(TableArg::TableConstraint(result));
32781                }
32782                return None;
32783            }
32784        };
32785        Some(res)
32786    }
32787    #[inline]
32788    fn syntax(&self) -> &SyntaxNode {
32789        match self {
32790            TableArg::Column(it) => &it.syntax,
32791            TableArg::LikeClause(it) => &it.syntax,
32792            TableArg::TableConstraint(it) => it.syntax(),
32793        }
32794    }
32795}
32796impl From<Column> for TableArg {
32797    #[inline]
32798    fn from(node: Column) -> TableArg {
32799        TableArg::Column(node)
32800    }
32801}
32802impl From<LikeClause> for TableArg {
32803    #[inline]
32804    fn from(node: LikeClause) -> TableArg {
32805        TableArg::LikeClause(node)
32806    }
32807}
32808impl AstNode for TableConstraint {
32809    #[inline]
32810    fn can_cast(kind: SyntaxKind) -> bool {
32811        matches!(
32812            kind,
32813            SyntaxKind::CHECK_CONSTRAINT
32814                | SyntaxKind::EXCLUDE_CONSTRAINT
32815                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32816                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32817                | SyntaxKind::UNIQUE_CONSTRAINT
32818        )
32819    }
32820    #[inline]
32821    fn cast(syntax: SyntaxNode) -> Option<Self> {
32822        let res = match syntax.kind() {
32823            SyntaxKind::CHECK_CONSTRAINT => {
32824                TableConstraint::CheckConstraint(CheckConstraint { syntax })
32825            }
32826            SyntaxKind::EXCLUDE_CONSTRAINT => {
32827                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32828            }
32829            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32830                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32831            }
32832            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32833                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32834            }
32835            SyntaxKind::UNIQUE_CONSTRAINT => {
32836                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
32837            }
32838            _ => {
32839                return None;
32840            }
32841        };
32842        Some(res)
32843    }
32844    #[inline]
32845    fn syntax(&self) -> &SyntaxNode {
32846        match self {
32847            TableConstraint::CheckConstraint(it) => &it.syntax,
32848            TableConstraint::ExcludeConstraint(it) => &it.syntax,
32849            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
32850            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32851            TableConstraint::UniqueConstraint(it) => &it.syntax,
32852        }
32853    }
32854}
32855impl From<CheckConstraint> for TableConstraint {
32856    #[inline]
32857    fn from(node: CheckConstraint) -> TableConstraint {
32858        TableConstraint::CheckConstraint(node)
32859    }
32860}
32861impl From<ExcludeConstraint> for TableConstraint {
32862    #[inline]
32863    fn from(node: ExcludeConstraint) -> TableConstraint {
32864        TableConstraint::ExcludeConstraint(node)
32865    }
32866}
32867impl From<ForeignKeyConstraint> for TableConstraint {
32868    #[inline]
32869    fn from(node: ForeignKeyConstraint) -> TableConstraint {
32870        TableConstraint::ForeignKeyConstraint(node)
32871    }
32872}
32873impl From<PrimaryKeyConstraint> for TableConstraint {
32874    #[inline]
32875    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
32876        TableConstraint::PrimaryKeyConstraint(node)
32877    }
32878}
32879impl From<UniqueConstraint> for TableConstraint {
32880    #[inline]
32881    fn from(node: UniqueConstraint) -> TableConstraint {
32882        TableConstraint::UniqueConstraint(node)
32883    }
32884}
32885impl AstNode for Timezone {
32886    #[inline]
32887    fn can_cast(kind: SyntaxKind) -> bool {
32888        matches!(
32889            kind,
32890            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
32891        )
32892    }
32893    #[inline]
32894    fn cast(syntax: SyntaxNode) -> Option<Self> {
32895        let res = match syntax.kind() {
32896            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
32897            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
32898            _ => {
32899                return None;
32900            }
32901        };
32902        Some(res)
32903    }
32904    #[inline]
32905    fn syntax(&self) -> &SyntaxNode {
32906        match self {
32907            Timezone::WithTimezone(it) => &it.syntax,
32908            Timezone::WithoutTimezone(it) => &it.syntax,
32909        }
32910    }
32911}
32912impl From<WithTimezone> for Timezone {
32913    #[inline]
32914    fn from(node: WithTimezone) -> Timezone {
32915        Timezone::WithTimezone(node)
32916    }
32917}
32918impl From<WithoutTimezone> for Timezone {
32919    #[inline]
32920    fn from(node: WithoutTimezone) -> Timezone {
32921        Timezone::WithoutTimezone(node)
32922    }
32923}
32924impl AstNode for TransactionMode {
32925    #[inline]
32926    fn can_cast(kind: SyntaxKind) -> bool {
32927        matches!(
32928            kind,
32929            SyntaxKind::DEFERRABLE
32930                | SyntaxKind::NOT_DEFERRABLE
32931                | SyntaxKind::READ_COMMITTED
32932                | SyntaxKind::READ_ONLY
32933                | SyntaxKind::READ_UNCOMMITTED
32934                | SyntaxKind::READ_WRITE
32935                | SyntaxKind::REPEATABLE_READ
32936                | SyntaxKind::SERIALIZABLE
32937        )
32938    }
32939    #[inline]
32940    fn cast(syntax: SyntaxNode) -> Option<Self> {
32941        let res = match syntax.kind() {
32942            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
32943            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
32944            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
32945            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
32946            SyntaxKind::READ_UNCOMMITTED => {
32947                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
32948            }
32949            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
32950            SyntaxKind::REPEATABLE_READ => {
32951                TransactionMode::RepeatableRead(RepeatableRead { syntax })
32952            }
32953            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
32954            _ => {
32955                return None;
32956            }
32957        };
32958        Some(res)
32959    }
32960    #[inline]
32961    fn syntax(&self) -> &SyntaxNode {
32962        match self {
32963            TransactionMode::Deferrable(it) => &it.syntax,
32964            TransactionMode::NotDeferrable(it) => &it.syntax,
32965            TransactionMode::ReadCommitted(it) => &it.syntax,
32966            TransactionMode::ReadOnly(it) => &it.syntax,
32967            TransactionMode::ReadUncommitted(it) => &it.syntax,
32968            TransactionMode::ReadWrite(it) => &it.syntax,
32969            TransactionMode::RepeatableRead(it) => &it.syntax,
32970            TransactionMode::Serializable(it) => &it.syntax,
32971        }
32972    }
32973}
32974impl From<Deferrable> for TransactionMode {
32975    #[inline]
32976    fn from(node: Deferrable) -> TransactionMode {
32977        TransactionMode::Deferrable(node)
32978    }
32979}
32980impl From<NotDeferrable> for TransactionMode {
32981    #[inline]
32982    fn from(node: NotDeferrable) -> TransactionMode {
32983        TransactionMode::NotDeferrable(node)
32984    }
32985}
32986impl From<ReadCommitted> for TransactionMode {
32987    #[inline]
32988    fn from(node: ReadCommitted) -> TransactionMode {
32989        TransactionMode::ReadCommitted(node)
32990    }
32991}
32992impl From<ReadOnly> for TransactionMode {
32993    #[inline]
32994    fn from(node: ReadOnly) -> TransactionMode {
32995        TransactionMode::ReadOnly(node)
32996    }
32997}
32998impl From<ReadUncommitted> for TransactionMode {
32999    #[inline]
33000    fn from(node: ReadUncommitted) -> TransactionMode {
33001        TransactionMode::ReadUncommitted(node)
33002    }
33003}
33004impl From<ReadWrite> for TransactionMode {
33005    #[inline]
33006    fn from(node: ReadWrite) -> TransactionMode {
33007        TransactionMode::ReadWrite(node)
33008    }
33009}
33010impl From<RepeatableRead> for TransactionMode {
33011    #[inline]
33012    fn from(node: RepeatableRead) -> TransactionMode {
33013        TransactionMode::RepeatableRead(node)
33014    }
33015}
33016impl From<Serializable> for TransactionMode {
33017    #[inline]
33018    fn from(node: Serializable) -> TransactionMode {
33019        TransactionMode::Serializable(node)
33020    }
33021}
33022impl AstNode for Type {
33023    #[inline]
33024    fn can_cast(kind: SyntaxKind) -> bool {
33025        matches!(
33026            kind,
33027            SyntaxKind::ARRAY_TYPE
33028                | SyntaxKind::BIT_TYPE
33029                | SyntaxKind::CHAR_TYPE
33030                | SyntaxKind::DOUBLE_TYPE
33031                | SyntaxKind::EXPR_TYPE
33032                | SyntaxKind::INTERVAL_TYPE
33033                | SyntaxKind::PATH_TYPE
33034                | SyntaxKind::PERCENT_TYPE
33035                | SyntaxKind::TIME_TYPE
33036        )
33037    }
33038    #[inline]
33039    fn cast(syntax: SyntaxNode) -> Option<Self> {
33040        let res = match syntax.kind() {
33041            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33042            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33043            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33044            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33045            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33046            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33047            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33048            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33049            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33050            _ => {
33051                return None;
33052            }
33053        };
33054        Some(res)
33055    }
33056    #[inline]
33057    fn syntax(&self) -> &SyntaxNode {
33058        match self {
33059            Type::ArrayType(it) => &it.syntax,
33060            Type::BitType(it) => &it.syntax,
33061            Type::CharType(it) => &it.syntax,
33062            Type::DoubleType(it) => &it.syntax,
33063            Type::ExprType(it) => &it.syntax,
33064            Type::IntervalType(it) => &it.syntax,
33065            Type::PathType(it) => &it.syntax,
33066            Type::PercentType(it) => &it.syntax,
33067            Type::TimeType(it) => &it.syntax,
33068        }
33069    }
33070}
33071impl From<ArrayType> for Type {
33072    #[inline]
33073    fn from(node: ArrayType) -> Type {
33074        Type::ArrayType(node)
33075    }
33076}
33077impl From<BitType> for Type {
33078    #[inline]
33079    fn from(node: BitType) -> Type {
33080        Type::BitType(node)
33081    }
33082}
33083impl From<CharType> for Type {
33084    #[inline]
33085    fn from(node: CharType) -> Type {
33086        Type::CharType(node)
33087    }
33088}
33089impl From<DoubleType> for Type {
33090    #[inline]
33091    fn from(node: DoubleType) -> Type {
33092        Type::DoubleType(node)
33093    }
33094}
33095impl From<ExprType> for Type {
33096    #[inline]
33097    fn from(node: ExprType) -> Type {
33098        Type::ExprType(node)
33099    }
33100}
33101impl From<IntervalType> for Type {
33102    #[inline]
33103    fn from(node: IntervalType) -> Type {
33104        Type::IntervalType(node)
33105    }
33106}
33107impl From<PathType> for Type {
33108    #[inline]
33109    fn from(node: PathType) -> Type {
33110        Type::PathType(node)
33111    }
33112}
33113impl From<PercentType> for Type {
33114    #[inline]
33115    fn from(node: PercentType) -> Type {
33116        Type::PercentType(node)
33117    }
33118}
33119impl From<TimeType> for Type {
33120    #[inline]
33121    fn from(node: TimeType) -> Type {
33122        Type::TimeType(node)
33123    }
33124}
33125impl AstNode for WithQuery {
33126    #[inline]
33127    fn can_cast(kind: SyntaxKind) -> bool {
33128        matches!(
33129            kind,
33130            SyntaxKind::COMPOUND_SELECT
33131                | SyntaxKind::DELETE
33132                | SyntaxKind::INSERT
33133                | SyntaxKind::MERGE
33134                | SyntaxKind::PAREN_SELECT
33135                | SyntaxKind::SELECT
33136                | SyntaxKind::TABLE
33137                | SyntaxKind::UPDATE
33138                | SyntaxKind::VALUES
33139        )
33140    }
33141    #[inline]
33142    fn cast(syntax: SyntaxNode) -> Option<Self> {
33143        let res = match syntax.kind() {
33144            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33145            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33146            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33147            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33148            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33149            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33150            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33151            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33152            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33153            _ => {
33154                return None;
33155            }
33156        };
33157        Some(res)
33158    }
33159    #[inline]
33160    fn syntax(&self) -> &SyntaxNode {
33161        match self {
33162            WithQuery::CompoundSelect(it) => &it.syntax,
33163            WithQuery::Delete(it) => &it.syntax,
33164            WithQuery::Insert(it) => &it.syntax,
33165            WithQuery::Merge(it) => &it.syntax,
33166            WithQuery::ParenSelect(it) => &it.syntax,
33167            WithQuery::Select(it) => &it.syntax,
33168            WithQuery::Table(it) => &it.syntax,
33169            WithQuery::Update(it) => &it.syntax,
33170            WithQuery::Values(it) => &it.syntax,
33171        }
33172    }
33173}
33174impl From<CompoundSelect> for WithQuery {
33175    #[inline]
33176    fn from(node: CompoundSelect) -> WithQuery {
33177        WithQuery::CompoundSelect(node)
33178    }
33179}
33180impl From<Delete> for WithQuery {
33181    #[inline]
33182    fn from(node: Delete) -> WithQuery {
33183        WithQuery::Delete(node)
33184    }
33185}
33186impl From<Insert> for WithQuery {
33187    #[inline]
33188    fn from(node: Insert) -> WithQuery {
33189        WithQuery::Insert(node)
33190    }
33191}
33192impl From<Merge> for WithQuery {
33193    #[inline]
33194    fn from(node: Merge) -> WithQuery {
33195        WithQuery::Merge(node)
33196    }
33197}
33198impl From<ParenSelect> for WithQuery {
33199    #[inline]
33200    fn from(node: ParenSelect) -> WithQuery {
33201        WithQuery::ParenSelect(node)
33202    }
33203}
33204impl From<Select> for WithQuery {
33205    #[inline]
33206    fn from(node: Select) -> WithQuery {
33207        WithQuery::Select(node)
33208    }
33209}
33210impl From<Table> for WithQuery {
33211    #[inline]
33212    fn from(node: Table) -> WithQuery {
33213        WithQuery::Table(node)
33214    }
33215}
33216impl From<Update> for WithQuery {
33217    #[inline]
33218    fn from(node: Update) -> WithQuery {
33219        WithQuery::Update(node)
33220    }
33221}
33222impl From<Values> for WithQuery {
33223    #[inline]
33224    fn from(node: Values) -> WithQuery {
33225        WithQuery::Values(node)
33226    }
33227}